Sublime Text是一款非常好用的编辑器,而且跨平台,几乎是现在程序员圈子里评价最高的编辑器了。但是Sublime Text不像Notapad++,它是没有中文版的,虽然平时英文版也能用,但是毕竟自己英文还是有点烂,看起总觉得有点别扭。所以,这逼死装不了了。
AsyncQueryHandler原理探究
##什么是AsyncQueryHandler?
AsyncQueryHandler是一个异步查询操作的帮助类,除了query,它同样可以实现insert,update,delete操作,在其API中提供了下面四个方法,对数据库进行操作
- startInsert
- startDelete
- startUpdate
- startQuery
并且提供了对应的on××××Complete方法去实现操作完数据库后再进行其他的操作,这四个on××××Complete都是空实现,需要我们根据具体的业务需求去具体的实现.
每天打DotA和不打DotA有什么区别
我记得当初刚上大学的时候,除了红色警戒和CS,什么都不会玩,大二那一年,宿舍里挺流行澄海的,我不会,也不愿意学,觉得把时间浪费在游戏上是件很可耻的事,虽然自己平时也确实对学习没怎么用心。接着,宿舍有人开始玩DotA了,周围的人也多起来了。本来自己也就没下功夫学习,所以就觉得很无聊,干脆就也开始学了。
Linux下修改磁盘卷标
上周五,一同事工作中遇到一问题,要修改Linux系统下的磁盘卷标,其实这个问题挺容易解决的,只是她遇到的这问题,后续还有一系列其他的问题,挺具有代表性的,还是很有必要记录一下的。
知乎答题指南
最近经常有朋友会问:为什么小道消息的微信文章那么烂,还有那么多的人订阅?能在知乎提出这样的问题,那题主一定自带了隐藏嘲讽属性,又有点二愣气质的混不吝。按照知乎提供的模板,得这样回答:凡事不要先问为什么,要先想是不是。那究竟那些文章烂不烂呢?接下来再按知乎的行事风格,这问题是一定要被关闭的,因为包含个人主观判断。然后,就没有然后了,天下太平了。
诺基亚Android系列手机Nokia X符合微软的长期发展利益吗?
按我的理解,Nokia X对微软可预期的未来发展真没什么好处。
南京·印象
来南京也半年多了,一切都慢慢开始熟悉,回想起当初毅然决然地离开郑州,战战兢兢地来到南京,恍如昨日。时至今日,还不知道来到南京到底是正确还是错误,但是至少离开郑州是正确的。
微信版QQ浏览器BETA版使用体验
既然是微信版QQ浏览器,那就应该突出微信聊天这个卖点,同时又不能丢了QQ浏览器本身的轻量和清爽。之前也在用QQ浏览器,主要是为了在WEB端看微信上的微云收藏文章和登录公司的OA,就一个感觉:快。这个我在腾讯微博,也有反馈。
现在肯定与当初版本最大的不同就是整合微信,确实现在打字最快的方式还是在使用PC键盘,没有之一了。自己一直用的是QQ International版本,在App Box里有WeChat的Plugin,现在用了微信版QQ浏览器,当然就免不了要做一番对比了。
下面这个图是QQInternational里的WeChat截图:
添加聊天可以选择订阅号和服务号,可以上传更换头像的唷!QQ浏览器里的微信却不可以。但是QQ浏览器的微信却可以接收订阅号和服务号的推送消息,推送过一次之后,又变相增加了发送消息的入口,觉得很不合理。
QQ浏览器微信版是10.2M,但是安装过程中的图片还是4M,这就有点贻笑大方了!
在侧边栏的最近联系人框里,点击右上角的“+”,可以创建新聊天,点击右下角的齿轮,使一些简单的设置,点击左下角的箭头,可以最大化和还原,最大化其实是一个标签页的形式呈现了,按F11全屏会有全新的体验;还原之后则是以浏览器侧边栏的形式呈现,在聊天窗口右上角有浮动标签和×号,点击浮动标签,可以实现双屏边浏览边了聊天,但是浏览内容左侧紧挨着聊天窗口就是文字,非常难看。
整体风格也不统一啊,有点扁平化的影子,又没摆脱拟物化……
接下来说说遇到两个体验很差的问题吧:
下面这张图是在Chrome里截的
下面这张是在QQ浏览器微信版里截的
我用红色方框标了出来,很明显QQ浏览器的样式出了问题。
另一个问题,其实不只是QQ浏览器的问题,问题是这样的:Win8下输入文字聊天,如果中途去做了其他事情,鼠标离开了输入框之后,再回去聊天,中文就无法输入了,只能输入英文。
比较晚了,暂时就说这么多吧!
Nginx日志切割
Nginx日志切割,其必要性也没必要说那么多了,主要记录几种Nginx日志切割的方法,其实原理都大同小异,主要还是通过每天把日志按照日期备份的方式,使用kill -USR1指令重新生成新的日志。可以完全通过Shell脚本实现,也可以通过Shell+Cron定时任务实现,还可以使用logrotate日志轮询来进行分割。
使用expect脚本实现SSH登录管理
expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。expect的作者Don Libes在1990年开始编写expect时对expect做有如下定义:expect是一个用来实现自动交互功能的软件套件(expect is a software suite for automating interactive tools)。使用它,系统管理员可以创建脚本来对命令或程序进行输入,而这些命令和程序是期望从终端(terminal)得到输入,一般来说这些输入都需要手工输入进行的。expect则可以根据程序的提示模拟标准输入提供给程序需要的输入来实现交互程序执行。甚至可以实现简单的BBS聊天机器人。
expect是不断发展的,随着时间的流逝,其功能越来越强大,已经成为系统管理员的的一个强大助手。expect需要Tcl编程语言的支持,要在系统上运行expect必须首先安装Tcl。
好了,以上内容全部来自于百度百科,说一千道一万,expect最常用的还是作为Linux脚本管理服务器,处理一些批量任务。当然,最最常用的还是SSH登录远程服务器执行操作命令,网上也到处都是类似的脚本,好记性总不如烂笔头,我也记录一下自己的所接触的一些应用实例及学习体悟吧。
设想一下这样的场景,所有的服务器都在内网,公网访问管理服务器都要通过OpenVPN登录到跳板机,然后再由跳板机登录到相应的服务器进行操作,跳板机与服务器的连接都是内网地址。而服务器的Root用户是全部禁止远程登录的,跳板机与服务器间做了非Root用户的SSH-Key信任关系。但是实际生产环境中,一些操作必须要sudo才能完成,单台服务器,直接登录然后sudo就行了,但是很多台怎么办呢?这时候expect就派上用场了。
废话这么多,还是直接上代码分析直观些。当然,这所有一切的前提都是要先安装expect:sudo yum install expect -y
1 | #!/usr/bin/expect |
以上就是远程登录单台服务器执行指令的脚本,若是要在N台服务器上批量执行相同的命令,就用万能句式for i in $IP,把上面的192.168.10.110换成$IP就行了当然用户名密码得一样。注意:末尾\r一定不能漏!
如果是要在执行完指令后保持交互状态,停留在远程终端上,就把最后两行代码换成interact。
很显然,expect还有很多的使用场景,也就不一一列举,大致的使用方法也就上面写的那么多。