首页
好物推荐
薅羊毛领红包
好看壁纸
更多
隐私政策
友情链接
时光机
搜索
1
使用 docker 快速安装 Home Assistant
6,125 阅读
2
Ipad mini2 降级到IOS10.3.3系统
4,121 阅读
3
Home Assistant集成OpenWrt
3,553 阅读
4
华为手机开启ADB进行WIFI远程调试
3,487 阅读
5
小米电视开机广告和乐播投屏广告Hosts屏蔽列表
3,291 阅读
无分类
智能家居
心得随想
文档教程
登录
Search
标签搜索
Linux
JS
教程
CSS
HTML
配置
NodeJS
Docker
解决方案
文档
Git
Java
技术培训
Hadoop
Mac
Windows
RiotJS
Python
VPS
Home Assistant
DONG HAO
累计撰写
154
篇文章
累计收到
59
条评论
首页
栏目
无分类
智能家居
心得随想
文档教程
页面
好物推荐
薅羊毛领红包
好看壁纸
隐私政策
友情链接
时光机
搜索到
124
篇与
无分类
的结果
2016-12-05
Git清除不需要提交的文件并且更新远程
git clean -fdgit reset --hard git pull central master
2016年12月05日
64 阅读
0 评论
0 点赞
2016-12-04
ubuntu打开eclipse提示jdk环境变量缺失报错的解决
Ubuntu在安装完eclipse后打开有时会遇到找不到jdk环境变量的错误:A Java RunTime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No java virtual machine was found after searching the following locations 解决方案如下:1. 进入eclipse,打开终端 2. mkdir jre 3. cd jre 4. ln -s /usr/lib/jvm/jdk1.7/bin bin --(你的JDK目录)
2016年12月04日
214 阅读
0 评论
0 点赞
2016-11-30
酷炫的CSS技巧
1. 黑白图像这段代码会让你的彩色照片显示为黑白照片img.desaturate { filter: grayscale(100%); -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); } 2.页面顶部阴影下面这个简单的 css3 代码片段可以给网页加上漂亮的顶部阴影效果body:before { content: ""; position: fixed; top: -10px; left: 0; width: 100%; height: 10px; -webkit-box-shadow: 0px 0px 10px rgba(0,0,0,.8); -moz-box-shadow: 0px 0px 10px rgba(0,0,0,.8); box-shadow: 0px 0px 10px rgba(0,0,0,.8); z-index: 100; } 3.所有一切都垂直居中要将所有元素垂直居中, 注意:在IE11中要小心flexbox。html, body { height: 100%; margin: 0; } body { -webkit-align-items: center; -ms-flex-align: center; align-items: center; display: -webkit-flex; display: flex; } 4.文本渐变文本渐变效果h2[data-text] { position: relative; } h2[data-text]::after { content: attr(data-text); z-index: 10; color: #e3e3e3; position: absolute; top: 0; left: 0; -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,0)), color-stop(50%, rgba(0,0,0,1)), to(rgba(0,0,0,0))); } 5.禁用鼠标事件CSS3 新增的 pointer-events 让你能够禁用元素的鼠标事件,例如,一个连接如果设置了下面的样式就无法点击了。.disabled { pointer-events: none; } 6.模糊文本简单但很漂亮的文本模糊效果.blur { color: transparent; text-shadow: 0 0 5px rgba(0,0,0,0.5); }
2016年11月30日
82 阅读
0 评论
0 点赞
2016-11-17
【双11我购买的米家产品】网关在手,智能无忧
智能家居与物联网的概念正在普及,小米在自家的智能生态中又做的如何?今天就由我来评测下小米多功能网关(升级版)+小米人体传感器的组合。经历了双十一的剁手,产品到手,上图。然后就是开始迫不及待的拆箱使用,建议大家在使用前阅读下产品说明书,免得不知所措。-------上面都是废话,我是分割线-----------关于智能网关: 1.建议放到高处(吊顶),虽然上面有个按钮(其实在平常使用中基本不需要操作),这样可以避免被孩子玩坏或者意外撞坏。 2.家里没装修的建议在吊顶上装个插座,便于挂载智能设备(摄像头等) 3.智能网关声音较大,记得设置声音小点,免得吓着老人或者影响邻居(我把音量设置在20左右感觉可以) 4.智能网关应该处于家庭中心位置或者在其他传感器设备网络的中心。 关于人体传感器: 1.选择合适的位置,我放的位置正好可以探测到我回家,以及走廊有人活动。 2.选择合适的位置(重复+重要) 3.人体传感器的探测区域如图 个人觉得这个设计只能正放在桌子上,我其实想放在吊顶上,但是底朝上的探测范围就不对了(这个要是小米官方能有不同方向的版本选择就好了) 4.传感器在开始配对的时候探测比较活跃,过一阵子后会一分钟探测一次(为了省电,要工作两年呢),所以会出现人走过没有探测到的现象。 我的智能家庭玩法: 1.联动触发-智能照明: 晚上下班回家,或者家人夜晚上卫生间,在照明度不好的时候,通过人体传感器与智能网关的联动,自动打开智能网关的照明灯。 2.自动化任务-闹铃:我周一9点上班,周二到周五是8点上班,我希望提前一个小时让网关播放铃音然后开启音乐广播。 3.自动化任务-凌晨警戒:在凌晨0:00如果人体传感器5分钟内没有探测到人,就开启警戒模式(防贼) 我的智能场景设置: 回家:小米多功能网关(关警戒模式) > 5秒后 > 小米多功能网关(播放电台) 离家:小米多功能网关(暂停电台) > 5秒后 > 小米多功能网关(开警戒模式) 起床:小米多功能网关(关警戒模式)> 5秒后 > 小米多功能网关(播放播放指定铃音,音量20) > 30秒后 > 小米多功能网关(播放电台) 睡觉:小米多功能网关(暂停电台)> 5秒后 > 小米多功能网关(开警戒模式) 我的自动化: 起床-周一:[满足所有条件时]定时|周一8:00 > [执行以下结果]执行指定场景|起床 起床-周二/五:[满足所有条件时]定时|周一7:00 > [执行以下结果]执行指定场景|起床 凌晨警戒:[满足所有条件时]定时|每天0:00 & 人体传感器 | 2分钟无人移动> [执行以下结果]执行指定场景|睡觉 这样的设置就感觉很实用了,每天凌晨自动开启警戒,早上伴随着悠扬的电台叫你起床并解除警戒。额。。忘记说为什么我要加5秒的延时了,因为我发现要是把关警戒并且开电台等多指令一起执行的时候,网关会丢失一些指令(开了电台却不关警戒等),希望小米的开发人员能解决下这个问题。此文完结!谢谢大家阅读!
2016年11月17日
96 阅读
0 评论
0 点赞
2016-11-15
hdfs基础命令
创建目录hdfs dfs -mkdir -p /dsdc/input 运行jarhadoop jar /mnt/MacNum.jar com.dsdc.JobRun 查看结果hadoop dfs -cat /dsdc/output/part-r-00000
2016年11月15日
49 阅读
0 评论
0 点赞
2016-11-15
一步一步搭建docker+hadoop平台(3)
启动hadoop容器docker run -itd --net=hadoop -p 50070:50070 -p 8088:8088 -p 8020:8020 --name hadoop-master --hostname hadoop-master -v /data:/mnt kiwenlau/hadoop:1.0 进入hadoop容器docker exec -it hadoop-master bash 停止hadoop再启动$HADOOP_HOME/sbin/stop-all.sh $HADOOP_HOME/sbin/start-all.sh
2016年11月15日
37 阅读
0 评论
0 点赞
2016-11-14
python的wechat机器人框架-werobot
安装werobotpip install werobotwerobot githubhttps://github.com/whtsky/WeRoBotwerobot 文档https://werobot.readthedocs.io/zh_CN/latest/index.html示例代码 wechat.py# -*- coding: utf-8 -*- import werobot robot = werobot.WeRoBot(token='tokenhere', enable_session=True) @robot.subscribe def subscribe(message): return 'Hello My Friend!' @robot.unsubscribe def unsubscribe(message): return 'Hello My Friend!' @robot.text def text(message, session): last = session.get("last", None) if last: return last session["last"] = message.content return '这是你第一次和我说话' @robot.filter("帮助") def show_help(message): return """ 帮助 XXXXX """ @robot.click def click(message): if message.key == "abort": return "I'm a robot" robot.run(port=10001) nginx 配置server { listen 80; server_name wechat.minws.com; access_log off; location ~ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:10001; } } 启动文件 /etc/init.d/wechat#!/bin/sh ### BEGIN INIT INFO # Provides: wechat # Required-Start: $local_fs $remote_fs $network # Required-Stop: $local_fs $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: wechat # Description: # ### END INIT INFO NAME=wechat.py DAEMON=/data/wwwroot/wechat.minws.com/$NAME case "$1" in start) echo "Starting $NAME..." nohup python $DAEMON >/dev/null 2>&1 & ;; stop) echo "Stopping $NAME..." sudo ps -ef|grep $NAME|grep -v grep|cut -c 9-15|xargs kill -9 ;; restart) $0 stop && sleep 2 && $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac exit 0 自启动chkconfig wechat on
2016年11月14日
320 阅读
0 评论
0 点赞
2016-11-10
html5仿QQ聊天界面
界面截图DEMO网址http://120.27.39.174/acx-chat/html代码<!DOCTYPE html> <html> <head> <title>Acxiom DataGuru Robot</title> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> <meta name="description" content="Acxiom DataGuru Robot"> <link rel="stylesheet" href="static/lib/weui.min.css"> <link rel="stylesheet" href="static/css/jquery-weui.css"> <link rel="stylesheet" href="static/css/main.css"> </head> <body ontouchstart> <div class="weui_tab"> <div class="weui_navbar"> <div class="navbar_left"></div> <div class="navbar_center">Acxiom DataGuru Robot</div> <div class="navbar_right"></div> </div> <div class="weui_tab_bd scroll_page"> <section class="aui-chat"> </section> </div> <div class="weui_tabbar aui-chat-tool"> <div class="eaitWrap"> <input class="editArea" contenteditable="true"> </div> <a href="javascript:;" class="weui_btn weui_btn_mini weui_btn_primary sendBtn">send</a> </div> </div> <script id="sendMsg" type="text/tpl"> <div class="aui-chat-item aui-chat-right"> <div class="aui-chat-media"> <img src="{{d.avatar}}"> </div> <div class="aui-chat-inner"> <div class="aui-chat-name">{{d.userName}}</div> <div class="aui-chat-content"> <div class="aui-chat-arrow"></div> {{# switch(d.msgType) { case 'text': }} {{d.text}} {{# break; case 'image': }} <img src="{{d.image}}" alt="{{d.text}}"> {{# break; } }} </div> <div class="aui-chat-status"> <i class="aui-iconfont aui-icon-info aui-text-danger"></i> </div> </div> </div> </script> <script id="recvMsg" type="text/tpl"> <div class="aui-chat-item aui-chat-left"> <div class="aui-chat-media"> <img src="{{d.avatar}}"> </div> <div class="aui-chat-inner"> <div class="aui-chat-name">{{d.userName}}</div> <div class="aui-chat-content"> <div class="aui-chat-arrow"></div> {{# switch(d.msgType) { case 'text': }} {{d.text}} {{# break; case 'image': }} <img src="{{d.image}}" alt="{{d.text}}"> {{# break;} }} </div> <div class="aui-chat-status aui-chat-status-refresh"> <i class="aui-iconfont aui-icon-correct aui-text-success"></i> </div> </div> </div> </script> <script id="timeMsg" type="text/tpl"> <div class="aui-chat-header">{{ d.text }}</div> </script> <script src="static/lib/jquery-2.1.4.js"></script> <script src="static/lib/fastclick.js"></script> <script src="static/js/jquery-weui.js"></script> <script src="static/js/swiper.js"></script> <script src="static/lib/laytpl.js"></script> <script src="static/js/main.js"></script> </body> </html> main.css代码body, html { height: 100%; -webkit-tap-highlight-color: transparent; font-family: "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", tahoma, arial, simsun, "宋体"; } .weui_navbar+.weui_tab_bd { padding: 50px 5px 60px 5px; background-color: #f5f5f5; } .weui-photo-browser-modal { z-index: 999; } .weui_navbar { line-height: 2rem; height: 2rem; background-color: #6ABD78; color: #fff; } .weui-photo-browser-modal .photo-container img { margin: 0 auto; } .weui_tabbar:before { border-top: 1px solid #ccc; } .navbar_left { flex: 1; } .navbar_center { flex: 3; text-align: center; } .navbar_right { flex: 1; } /*chat*/ .aui-chat { width: 100%; height: 100%; } .aui-chat .aui-chat-item { position: relative; width: 100%; margin-bottom: 0.75rem; overflow: hidden; display: block; } .aui-chat .aui-chat-header { width: 100%; text-align: center; margin-bottom: 0.75rem; font-size: 0.6rem; color: #757575; } .aui-chat .aui-chat-left { float: left; } .aui-chat .aui-chat-right { float: right; } .aui-chat .aui-chat-media { display: inline-block; max-width: 2rem; } .aui-chat .aui-chat-media img { width: 100%; border-radius: 50%; } .aui-chat .aui-chat-inner { position: relative; overflow: hidden; display: inherit; } .aui-chat .aui-chat-arrow { content: ''; position: absolute; width: 0.6rem; height: 0.6rem; top: 0.2rem; -webkit-transform-origin: 50% 50% 0; transform-origin: 50% 50% 0; background-color: transparent; } .aui-chat .aui-chat-left .aui-chat-arrow { background-image: -webkit-linear-gradient(45deg, #CCE6DE, #CCE6DE 50%, transparent 50%); background-image: linear-gradient(45deg, #CCE6DE, #CCE6DE 50%, transparent 50%); -webkit-transform: rotate(45deg); transform: rotate(45deg); left: -0.25rem; } .aui-chat .aui-chat-right .aui-chat-arrow { background-image: -webkit-linear-gradient(45deg, #ffffff, #ffffff 50%, transparent 50%); background-image: linear-gradient(45deg, #ffffff, #ffffff 50%, transparent 50%); -webkit-transform: rotate(-135deg); transform: rotate(-135deg); right: -0.25rem; } .aui-chat .aui-chat-content { color: #212121; font-size: 0.7rem; border-radius: 0.2rem; min-height: 1rem; position: relative; padding: 0.5rem; max-width: 80%; word-break: break-all; word-wrap: break-word; } .aui-chat .aui-chat-content img { max-width: 100%; display: block; } .aui-chat .aui-chat-status { position: relative; width: 2rem; height: 2rem; line-height: 2rem; text-align: center; } .aui-chat .aui-chat-name { width: 100%; position: relative; font-size: 0.6rem; color: #757575; margin-bottom: 0.25rem; } .aui-chat .aui-chat-left .aui-chat-name { left: 0.5rem; } .aui-chat .aui-chat-left .aui-chat-status { left: 0.5rem; float: left; } .aui-chat .aui-chat-left .aui-chat-media { width: 2rem; float: left; } .aui-chat .aui-chat-left .aui-chat-inner { max-width: 70%; } .aui-chat .aui-chat-left .aui-chat-content { background-color: #CCE6DE; float: left; left: 0.5rem; } .aui-chat .aui-chat-right .aui-chat-media { width: 2rem; float: right; } .aui-chat .aui-chat-right .aui-chat-inner { float: right; max-width: 70%; } .aui-chat .aui-chat-right .aui-chat-name { float: right; right: 0.5rem; text-align: right; } .aui-chat .aui-chat-right .aui-chat-content { background-color: #ffffff; right: 0.5rem; float: right; } .aui-chat .aui-chat-right .aui-chat-status { float: right; right: 0.5rem; } .aui-chat-tool { min-height: 2rem; } .aui-chat-tool .eaitWrap { position: absolute; right: 4rem; left: 0; } .aui-chat-tool .editArea { line-height: 1.4rem; height: 1.4rem; margin: 0.25rem; padding: 0 0.25rem; overflow-y: auto; overflow-x: hidden; border: none; width: 100%; } .aui-chat-tool .sendBtn { line-height: 1.4rem; height: 1.4rem; margin: 0.25rem; position: absolute; right: 0px; } main.js代码var robotName = 'DataGuru', robotAvatar = 'robot.jpg', userName = 'Andy Li', userAvatar = 'andyli.png', photoBrowser; $(function() { //FastClick FastClick.attach(document.body); //chat images click listener $('.aui-chat').on('click', '.aui-chat-content img', function() { var items = [], item = {}; item.image = $(this).attr('src'); item.caption = $(this).attr('alt'); items.push(item); showPic(items); }); //send button click listener $('.sendBtn').on('click', function() { //send message sendMsgExt(userAvatar, userName, 'text', $('.editArea').val()); //receive message switch ($('.editArea').val()) { case '1': recvMsgExt(robotAvatar, robotName, 'text', 'What do you want to know about the segments?<br>[11] List all the category of your segments.'); break; case '11': recvMsgExt(robotAvatar, robotName, 'image', 'developing', 'developing.jpg'); break; case '2': recvMsgExt(robotAvatar, robotName, 'text', 'What the partner info do you want to know?<br>[21] List all the category of your segments.'); break; case '21': recvMsgExt(robotAvatar, robotName, 'image', 'developing', 'developing.jpg'); break; default: recvMsgExt(robotAvatar, robotName, 'text', 'Hello, I’m DataGuru. What I can help?<br>[1] Segment Consulting<br>[2] Partner Consulting<br>Reply the number of your question. Like “1”.'); } //empty edit area $('.editArea').val(''); }); //1 timestamp timeMsg({ text: new Date().format('yyyy-MM-dd hh:mm:ss') }); //2 welcome recvMsgExt(robotAvatar, robotName, 'text', 'Hello, I’m DataGuru. What I can help?<br>[1] Segment Consulting<br>[2] Partner Consulting<br>Reply the number of your question. Like “1”.'); }); function showPic(items) { photoBrowser = $.photoBrowser({ items: items }); photoBrowser.open(); } function sendMsg(data) { laytpl($('#sendMsg').html()).render(data, function(html) { $('.aui-chat').append(html); scrollToMsg(); }); } function sendMsgExt(_avatar, _userName, _msgType, _text, _image) { var data = { avatar: _avatar, userName: _userName, msgType: _msgType, text: _text, image: _image }; sendMsg(data); } function recvMsg(data) { laytpl($('#recvMsg').html()).render(data, function(html) { $('.aui-chat').append(html); scrollToMsg(); }); } function recvMsgExt(_avatar, _userName, _msgType, _text, _image) { var data = { avatar: _avatar, userName: _userName, msgType: _msgType, text: _text, image: _image }; setTimeout(function(){ recvMsg(data) }, 800); } function timeMsg(data) { laytpl($('#timeMsg').html()).render(data, function(html) { $('.aui-chat').append(html); scrollToMsg(); }); } function scrollToMsg(speed) { if (!speed) speed = 300; $('.scroll_page').animate({ scrollTop: $('.scroll_page').scrollHeight() }, speed); } Date.prototype.format = function(format) { var o = { "M+": this.getMonth() + 1, //month "d+": this.getDate(), //day "h+": this.getHours(), //hour "m+": this.getMinutes(), //minute "s+": this.getSeconds(), //second "q+": Math.floor((this.getMonth() + 3) / 3), //quarter "S": this.getMilliseconds() //millisecond } if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(format)) format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); return format; }
2016年11月10日
116 阅读
0 评论
0 点赞
2016-11-09
一步一步搭建docker+hadoop平台(1)
下载系统文件去centos官网http://101.96.10.38/isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso下载最小版本的ios文件,并使用UltraISO制作U盘启动盘。制作启动盘使用UltraISO软件制作 文件 > 打开 > 选择iso文件 启动 > 写入硬盘镜像 弹窗 写入方式选择为“USB-HDD+” > 写入 > OK 安装系统 使用U盘启动,启动界面下按上键使第一项install centos7高亮. 看屏幕下方的提示,使用e键或者b键修改启动方式 将 vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet 改为 vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb4 quiet 按下ctrl+x键进入安装图形界面 *在分配磁盘的时候,建议不要使用LVM模式,而使用标准模式 配置网络vim /etc/sysconfig/network-scripts/ifcfg-eth0 //有可能是其他的网卡名 编辑内容BOOTPROTO="static" #dhcp改为static ONBOOT="yes" #开机启用本配置 IPADDR=192.168.1.171 #静态IP GATEWAY=192.168.1.1 #默认网关 NETMASK=255.255.255.0 #子网掩码 DNS1=192.168.1.1 #DNS 配置 文件内容HWADDR="00:15:5D:07:F1:02" TYPE="Ethernet" BOOTPROTO="static" #dhcp改为static DEFROUTE="yes" PEERDNS="yes" PEERROUTES="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_PEERDNS="yes" IPV6_PEERROUTES="yes" IPV6_FAILURE_FATAL="no" NAME="eth0" UUID="bb3a302d-dc46-461a-881e-d46cafd0eb71" ONBOOT="yes" #开机启用本配置 IPADDR=192.168.7.106 #静态IP GATEWAY=192.168.7.1 #默认网关 NETMASK=255.255.255.0 #子网掩码 DNS1=192.168.7.1 #DNS 配置 重启网卡服务service network restart 关机shutdown now # 立即关机 shutdown +2 # 2 min 后关机 shutdown 10:01 # 10:01关机 shutdown +2 "The machine will shutdown" # 2min 后关机,并通知在线者
2016年11月09日
123 阅读
0 评论
0 点赞
2016-11-09
css的reset模板
/*KISSY CSS Reset 理念:清除和重置是紧密不可分的 特色:1.适应中文 2.基于最新主流浏览器 维护:玉伯(lifesinger@gmail.com), 正淳(ragecarrier@gmail.com) */ /* 清除内外边距 */ body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, /* structural elements 结构元素 */ dl, dt, dd, ul, ol, li, /* list elements 列表元素 */ pre, /* text formatting elements 文本格式元素 */ fieldset, lengend, button, input, textarea, /* form elements 表单元素 */ th, td { /* table elements 表格元素 */ margin: 0; padding: 0; } /* 设置默认字体 */ body, button, input, select, textarea { /* for ie */ /*font: 12px/1 Tahoma, Helvetica, Arial, "宋体", sans-serif;*/ font: 12px/1 Tahoma, Helvetica, Arial, "\5b8b\4f53", sans-serif; /* 用 ascii 字符表示,使得在任何编码下都无问题 */ } h1 { font-size: 18px; /* 18px / 12px = 1.5 */ } h2 { font-size: 16px; } h3 { font-size: 14px; } h4, h5, h6 { font-size: 100%; } address, cite, dfn, em, var { font-style: normal; } /* 将斜体扶正 */ code, kbd, pre, samp, tt { font-family: "Courier New", Courier, monospace; } /* 统一等宽字体 */ small { font-size: 12px; } /* 小于 12px 的中文很难阅读,让 small 正常化 */ /* 重置列表元素 */ ul, ol { list-style: none; } /* 重置文本格式元素 */ a { text-decoration: none; } a:hover { text-decoration: underline; } abbr[title], acronym[title] { /* 注:1.ie6 不支持 abbr; 2.这里用了属性选择符,ie6 下无效果 */ border-bottom: 1px dotted; cursor: help; } q:before, q:after { content: ''; } /* 重置表单元素 */ legend { color: #000; } /* for ie6 */ fieldset, img { border: none; } /* img 搭车:让链接里的 img 无边框 */ /* 注:optgroup 无法扶正 */ button, input, select, textarea { font-size: 100%; /* 使得表单元素在 ie 下能继承字体大小 */ } /* 重置表格元素 */ table { border-collapse: collapse; border-spacing: 0; } /* 重置 hr */ hr { border: none; height: 1px; } /* 让非ie浏览器默认也显示垂直滚动条,防止因滚动条引起的闪烁 */ html { overflow-y: scroll; }
2016年11月09日
129 阅读
0 评论
0 点赞
2016-11-09
docker+shipyard+hadoop部署方案
相关链接shipyard官网https://shipyard-project.com/docs/deploy/automated/tuicool文章http://www.tuicool.com/articles/FnmeuuNsegmentfault文章https://segmentfault.com/a/1190000002464365github--hadoop-cluster-dockerhttps://github.com/kiwenlau/hadoop-cluster-dockerkiwenlau的博客http://kiwenlau.com/2016/06/12/160612-hadoop-cluster-docker-update/
2016年11月09日
151 阅读
0 评论
0 点赞
2016-11-09
java等环境变量配置
windows//jdk路径 新建 JAVA_HOME = E:\soft\Java_jdk\jdk1.7.0_45 //maven路径 新建 MAVEN_HOME = E:\soft\maven_3_1_1 新建或更新 CLASSPATH = .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 在 Path 的最后加入: ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%MAVEN_HOME%\bin; linux//编辑环境变量文件 sudo nano /etc/profile //在末尾加入以下代码 JAVA_HOME=/usr/local/jdk1.7.0_79 M2_HOME=/home/hadong/soft/dev/maven_3_1_1 PATH=$M2_HOME/bin:$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar MAVEN_OPTS="-Xms256m -Xmx512m" export JAVA_HOME export M2_HOME export PATH export CLASSPATH export MAVEN_OPTS //应用环境变量 source /etc/profile jdk7地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
2016年11月09日
148 阅读
0 评论
0 点赞
2016-11-03
layer实现鼠标悬停tips方法
封装代码function hovertip(dom, text, direction, color) { dom.hover(function() { $tip(text, this, direction, color); }, function() { layer.closeAll('tips'); }); } // tip function $tip(text, dom, direction, color) { layer.tips(text, dom, { tips : [ direction ? direction : 3, color ? color : '#393D49' ] }); } 使用代码hovertip($('.main-menu li').has('.icon-off'), '退出登录', 1);
2016年11月03日
141 阅读
0 评论
0 点赞
2016-11-03
linux后台执行任务
nohup node-v6.2.1-linux-x64/bin/node index.js >/dev/null 2>&1 &
2016年11月03日
237 阅读
0 评论
0 点赞
2016-11-02
IE8提示‘console’未定义错误的解决方案
在js末尾加入代码// IE8 console.log() 未定义错误 window.console = window.console || (function(){ var c = {}; c.log = c.warn = c.debug = c.info = c.error = c.time = c.dir = c.profile = c.clear = c.exception = c.trace = c.assert = function(){}; return c; })();
2016年11月02日
134 阅读
0 评论
0 点赞
2016-11-02
XP下web开发探究
浏览器对web开发的影响1.如果能支持firefox/chrome等浏览器,那么不需要对web兼容性做出要求,可以使用html5最新技术2.如果只能使用IE,因为可能需要支持ActiveX插件,那么需要要求将浏览器从IE6/IE7升级到IE8,IE8是XP系统最后支持的一个版本。3.如果环境什么都不能改版,而恰好浏览器也只是IE6/IE7,那么恭喜你,可以不用往下阅读啦 :) 。jQuery版本对浏览器的支持[jQuery版本支持文档](http://jquery.com/browser-support/)jQuery对IE6-8最后一个支持版本是1.12.4[jQuery 1.12.x](http://https://code.jquery.com/jquery/#jquery-all-1.x)EasyUI版本对浏览器的支持[easyui版本下载列表](http://www.jeasyui.com/download/list.php)EasyUI对IE6-8最后一个支持版本是1.3.2[easyui1.3.2](http://www.jeasyui.com/download/downloads/jquery-easyui-1.3.2.zip)Fontawesome版本对浏览器的支持Fontawesome对IE7最后一个支持版本是1.3.2[font-awesome3.2.1](http://fontawesome.io/3.2.1/assets/font-awesome.zip)
2016年11月02日
135 阅读
0 评论
0 点赞
2016-10-31
网页返回顶部按钮功能怎么写
1.在页面body底部加入代码#这里引用了font-awesome字体图标 <div class="backTop"> <button class="btn btn-inverse"> <i class="fa fa-chevron-up"></i> </button> </div> 2.加入css样式/*backTop*/ .backTop { position: fixed; right: 20px; bottom: 20px; z-index: 999; width: 50px; display: none; } .backTop .btn { margin-top: 2px; height: 50px; display: block; padding: 0; width: 100%; opacity: .4; } .btn-inverse { background: #666; color: #FFF !important; } .backTop .btn:hover { background: #999; opacity: .9; color: #FFF !important; } .backTop .btn i { position: relative; top: -1px; } 3.加入js脚本#滚动到80px高度展示按钮 $(window).scroll(function() { document.documentElement.scrollTop + document.body.scrollTop > 80 ? $('.backTop').fadeIn() : $('.backTop').fadeOut(); }); $(".backTop").on("click", function() { scrollToTop(); }); function scrollToTop(dom, speed) { if (!speed) speed = 300; var top = 0; if (dom && dom.length > 0) top = dom.offset().top; $('html,body').animate({ scrollTop: top }, speed) }
2016年10月31日
76 阅读
0 评论
0 点赞
2016-10-31
Git操作命令
Git图解Git名词 Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 Git命令1.创建库# 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-name] # 下载一个项目和它的整个代码历史 $ git clone [url] 2.配置库# 显示当前的Git配置 $ git config --list # 编辑Git配置文件 $ git config -e [--global] # 设置提交代码时的用户信息 $ git config [--global] user.name "[name]" $ git config [--global] user.email "[email address]" 3.增加/删除文件# 添加指定文件到暂存区 $ git add [file1] [file2] ... # 添加指定目录到暂存区,包括子目录 $ git add [dir] # 添加当前目录的所有文件到暂存区 $ git add . # 添加每个变化前,都会要求确认 # 对于同一个文件的多处变化,可以实现分次提交 $ git add -p # 删除工作区文件,并且将这次删除放入暂存区 $ git rm [file1] [file2] ... # 停止追踪指定文件,但该文件会保留在工作区 $ git rm --cached [file] # 改名文件,并且将这个改名放入暂存区 $ git mv [file-original] [file-renamed] 4.提交代码# 提交暂存区到仓库区 $ git commit -m [message] # 提交暂存区的指定文件到仓库区 $ git commit [file1] [file2] ... -m [message] # 提交工作区自上次commit之后的变化,直接到仓库区 $ git commit -a # 提交时显示所有diff信息 $ git commit -v # 使用一次新的commit,替代上一次提交 # 如果代码没有任何新变化,则用来改写上一次commit的提交信息 $ git commit --amend -m [message] # 重做上一次commit,并包括指定文件的新变化 $ git commit --amend [file1] [file2] ... 5.分支命令# 列出所有本地分支 $ git branch # 列出所有远程分支 $ git branch -r # 列出所有本地分支和远程分支 $ git branch -a # 新建一个分支,但依然停留在当前分支 $ git branch [branch-name] # 新建一个分支,并切换到该分支 $ git checkout -b [branch] # 新建一个分支,指向指定commit $ git branch [branch] [commit] # 新建一个分支,与指定的远程分支建立追踪关系 $ git branch --track [branch] [remote-branch] # 切换到指定分支,并更新工作区 $ git checkout [branch-name] # 切换到上一个分支 $ git checkout - # 建立追踪关系,在现有分支与指定的远程分支之间 $ git branch --set-upstream [branch] [remote-branch] # 合并指定分支到当前分支 $ git merge [branch] # 选择一个commit,合并进当前分支 $ git cherry-pick [commit] # 删除分支 $ git branch -d [branch-name] # 删除远程分支 $ git push origin --delete [branch-name] $ git branch -dr [remote/branch] 6.标签命令# 列出所有tag $ git tag # 新建一个tag在当前commit $ git tag [tag] # 新建一个tag在指定commit $ git tag [tag] [commit] # 删除本地tag $ git tag -d [tag] # 删除远程tag $ git push origin :refs/tags/[tagName] # 查看tag信息 $ git show [tag] # 提交指定tag $ git push [remote] [tag] # 提交所有tag $ git push [remote] --tags # 新建一个分支,指向某个tag $ git checkout -b [branch] [tag] 7.查看信息# 显示有变更的文件 $ git status # 显示当前分支的版本历史 $ git log # 显示commit历史,以及每次commit发生变更的文件 $ git log --stat # 搜索提交历史,根据关键词 $ git log -S [keyword] # 显示某个commit之后的所有变动,每个commit占据一行 $ git log [tag] HEAD --pretty=format:%s # 显示某个commit之后的所有变动,其"提交说明"必须符合搜索条件 $ git log [tag] HEAD --grep feature # 显示某个文件的版本历史,包括文件改名 $ git log --follow [file] $ git whatchanged [file] # 显示指定文件相关的每一次diff $ git log -p [file] # 显示过去5次提交 $ git log -5 --pretty --oneline # 显示所有提交过的用户,按提交次数排序 $ git shortlog -sn # 显示指定文件是什么人在什么时间修改过 $ git blame [file] # 显示暂存区和工作区的差异 $ git diff # 显示暂存区和上一个commit的差异 $ git diff --cached [file] # 显示工作区与当前分支最新commit之间的差异 $ git diff HEAD # 显示两次提交之间的差异 $ git diff [first-branch]...[second-branch] # 显示今天你写了多少行代码 $ git diff --shortstat "@{0 day ago}" # 显示某次提交的元数据和内容变化 $ git show [commit] # 显示某次提交发生变化的文件 $ git show --name-only [commit] # 显示某次提交时,某个文件的内容 $ git show [commit]:[filename] # 显示当前分支的最近几次提交 $ git reflog 8.远程同步# 下载远程仓库的所有变动 $ git fetch [remote] # 显示所有远程仓库 $ git remote -v # 显示某个远程仓库的信息 $ git remote show [remote] # 增加一个新的远程仓库,并命名 $ git remote add [shortname] [url] # 取回远程仓库的变化,并与本地分支合并 $ git pull [remote] [branch] # 上传本地指定分支到远程仓库 $ git push [remote] [branch] # 强行推送当前分支到远程仓库,即使有冲突 $ git push [remote] --force # 推送所有分支到远程仓库 $ git push [remote] --all 9.撤销操作# 恢复暂存区的指定文件到工作区 $ git checkout [file] # 恢复某个commit的指定文件到暂存区和工作区 $ git checkout [commit] [file] # 恢复暂存区的所有文件到工作区 $ git checkout . # 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变 $ git reset [file] # 重置暂存区与工作区,与上一次commit保持一致 $ git reset --hard # 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变 $ git reset [commit] # 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致 $ git reset --hard [commit] # 重置当前HEAD为指定commit,但保持暂存区和工作区不变 $ git reset --keep [commit] # 新建一个commit,用来撤销指定commit # 后者的所有变化都将被前者抵消,并且应用到当前分支 $ git revert [commit] # 暂时将未提交的变化移除,稍后再移入 $ git stash $ git stash pop 10.其他操作# 生成一个可供发布的压缩包 $ git archive
2016年10月31日
117 阅读
0 评论
0 点赞
2016-10-25
用forever运行ghost博客
如果没有安装,先安装npm install forever -g 查看forever运行状态forever list 运行GhostNODE_ENV=production forever start index.js 关闭Ghostforever stop index.js
2016年10月25日
80 阅读
0 评论
0 点赞
2016-10-25
阿里企业邮箱POP3、SMTP、IMAP地址
阿里企业邮箱POP3、SMTP、IMAP地址列表 推荐您使用加密端口连接,更加安全,使用时请注意加密端口是否已在您的本地电脑和网络中开放。 协议 服务器地址 服务器端口号(常规) 服务器端口号(加密) POP3 pop3.mxhichina.com 110 995 SMTP smtp.mxhichina.com 25 465 IMAP imap.mxhichina.com 143 993
2016年10月25日
129 阅读
0 评论
0 点赞
1
...
5
6
7