分类:技术(35 篇)
浅谈对CACHE操作的封装及最佳实践
作为WEB开发者,CACHE对我们来说是再熟悉不过了。但是,你真的有研究如何把它用得更“优雅”吗?下面以较常见的Memcache为例,谈谈对CACHE操作的几种常见封装方法,并推荐一种我认为最佳的实践。如果你有更好的解决方案,请不吝赐教:) 为什么要封装? $mc = new Memcached(); $mc addS……
禁用QQ自动替换表情的功能
问题的描述 不知从何时起,QQ在聊天窗口中提供了表情快捷键的功能,比如输入 /v 会变成一个动画表情 。这一设计的初衷是让聊天时输入表情更加便捷,但却给我们程序员们带来了不少烦恼。因为 / 作为linux下的路径分隔符,对程序员来说是一个极其常用的符号。 两个程序员在工作中相互沟通时,经常会互相发一些文件地址,比如:“……
Dvorak布局下一种比较理想的双拼方案
我从2011年开始使用Dvorak键盘布局至今,十分享受它给英文输入尤其是敲代码带来的便利。 从2013年9月开始我开始想在Dvorak布局下使用双拼,为此我尝试了网上能找到的各种方案,但大多数方案都是为Qwerty布局设计的,在Dvorak布局下完全无法使用。我还尝试了一些Dvorak玩家自己设计的布局(如这里、这里……
win7下配置使用dvorak-qwerty键盘布局
昨日部署一台win7开发机,在配置dvorak qwerty布局时感觉流程自己都有点记不清了,因此想写篇文章记录一下,希望能对想开始使用dvorak布局的朋友有点帮助。 什么是dvorak qwerty布局? 关于dvorak布局的介绍及与qwerty布局的对比,可以参考我这篇文章。 Windows系统自带dvorak……
解决SimpleTest 1/2 test cases complete的问题
最近一直在用SimpleTest测试代码,发现这个问题其实已经很久了,但一直因为无关痛痒没有去解决,今天终于憋足劲把它搞定了,把过程写出来给大家分享:) 复现问题 首先新建一个test.php,内容如下: 现在执行这个测试,你会发现test cases complete的数字不对劲。显示的TestCase总数多于真实的……
树莓派Raspbian开机自动发ip邮件的解决方案
Github:<https://github.com/shenjia/raspbian ip mailer 问题 我的树莓派配置好无线网卡后,经常随身带来带去。但是公司和家里是两个不同网段的WIFI,如果用固定IP的话只能连接其中一个,如果用DHCP自动获取IP的话又不能保证每次分配到的IP不变。每次切换网络后要连接键……
树莓派raspbian系统下安装TL-WN725N 2.0无线网卡驱动
首先在树莓派上下载编译好的8188eu芯片驱动(出自这里,感谢rpijet同学辛勤的劳动)。解压后得到8188eu.ko文件,将此文件复制到树莓派上/home/pi目录下: pi@raspberrypi ~ $ ls 8188eu.ko Desktop ocr_pi.png python_games 安装驱动: sud……
mac下给树莓派安装raspbian系统
先到树莓派的官方网站去下载一个系统镜像,推荐下载Raspbian。 下载完成后得到一个img镜像: [zhangshenjia@mac: pi]$ls lh total 3788800 rw r r 1 zhangshenjia staff 1.8G 2 9 03:44 2013 02 09 wheezy raspbi……
解决IE点击按钮链接后出现[object Object]的问题
下面的链接在除了IE外的浏览器下都工作正常: 提交 但在IE下点击后整个页面都清空了,只显示[object Object]: 其原因是IE会将href中javascript代码返回的结果写到页面中,相当于执行document.write('xxx')。jQuery的submit()会返回一个对象,而对象toString……
Mac下用dd写入SD卡,提示permission denied
最近入手了树莓派,需要用dd向SD卡中写入系统镜像,按照教程一步步进行,结果在这步卡住了: sudo dd bs=4m if=/User/zhangshenjia/2013 02 09 wheezy raspbian.img of=/dev/rdisk4 dd: /dev/rdisk4: Permission deni……
解决ie9下网页标题显示为服务器ip的奇怪问题
在windows2008环境下部署一个网站,之后不久发现有个奇怪的现象:在ie9下网页标题没有正常显示,而是显示出服务器的ip。而在ie7、ie8、chrome、safari下都正常。 怀疑是ie9的问题 因为只有ie9下有这个问题,所以先考虑是不是ie9的bug,于是先google一下,找到了这篇微软的官方文章。按这……
欲速则不达
子夏为莒父宰,问政。子曰:“无欲速,无见小利。欲速则不达,见小利,则大事不成。” ————《论语·子路》 事件 几天前,在测试一个远程部署shell脚本的时候,因为错用了单引号导致本地参数没有传递到服务器上,结果就发生了这样的悲剧: rm rf /$ROOT/$PATH/$FILE 结果执行的是 rm rf /// 脚……
Chrome 最新 bug: 在src为空的img元素的onerror事件中移除自己,导致崩溃
今天突然发现Chrome打开自己的网站会崩溃,而safari、ie都正常,经排查发现下面的代码会导致chrome 25崩溃: 而给src赋值后,就不会崩溃了: 将移除操作放到onclick事件中再触发之,也不会崩溃: 因为之前一直运行正常,估计是新版chrome在渲染引擎方面的改动导致。这段代码是用来自动移除url错误……
命令行下获取和识别时间戳的工具 timestamp.js
Github:<https://github.com/shenjia/timestamp.js 作为程序员经常要和时间戳打交道,有时想快速知道当前的时间戳,往往需要运行一段小程序: <?php echo time(); ? 又或者想从一个时间戳得出具体的时间: <?php echo date( 'Y m d G:i:s……
解决Rockmongo不显示中文的问题
Mongodb是时下非常流行的数据库,而Rockmongo可以说是最普及的web版gui了。但是Rockmongo在显示utf 8中文数据时一直有问题,最新版本v1.1.2仍然没有解决。今天专门腾了点时间debug并将其解决,将过程记录一下供大家参考。 问题现象 1、插入一条包含中文的数据 2、保存之后,中文数据不见了……
为MongoDB编写Js维护脚本
最近项目上有一个需求,要对存储在MongoDB中的用户行为数据定期进行统计分析。 先使用PHP实现原型,发现因为数据量很大,大量时间都花在MongoDB服务器和Web服务器之间的数据交换上。考虑到这一点,必须在MongoDB服务器上进行本地计算,将结果保存起来,再使用PHP访问并展示给用户。 查阅文档得知,MongoD……
常用bash快捷键
收集自:<http://ss64.com/bash/syntax keyboard.html 注意:如果要在mac的终端下使用Alt组合键,需要在终端的偏好设置里选中“使用option键作为meta键” 移动光标 Ctrl + a 移动到行首(等于按Home键) Ctrl + e 移动到行末(等于按End键) Ctrl……
用inginx.conf分级管理nginx配置文件
其实nginx的conf结构本来设计的不错,但是从默认安装的配置文件离实际可用状态还有一些距离。比如设置fastcgi、分离server部分到多个文件等。 一般来说,部署完毕之后conf已经是面目全非了。众多参数缺乏有效的管理组织方式。如果有多个站点,那么各个站点的配置文件中可能还存在大量重复。 inginx.conf……
通过macports安装的php,extension的配置被分离
我现在的开发环境,php、php mongo、php mysql、php redis、xdebug等都是通过macports安装的。一直使用都没有问题,直到今天编辑php.ini的时候发现,这些extension居然都没有在php.ini中定义。奇怪了,那它们是怎么加载的呢? 首先怀疑我编辑的php.ini不是php实……
在不同php版本中实现model层重复代码的去除
问题 MVC架构中的model层主要负责和数据直接交互,如果没有使用ORM框架,那么很多原子操作(CRUD等)需要自己实现。一般来说一个系统会有多个Model,每一个Model都需要重复实现这些原子操作,而这些代码往往除了表名外都是一样的: class User { public static function fin……
第一次使用mac会遇到的一些典型问题
mac book air入手一周,算是可以进入工作状态了。遇到各种问题,各种google,学到了不少。现在把自己碰到的一些有代表性的问题写出来,希望能给刚开始使用mac的朋友们一些帮助。 几乎所有的app的设置选项,都在屏幕顶部苹果logo右边,点击app名字弹出的菜单中,快捷键是Command+逗号 在finder中……
mac下配置php环境后出现syntax error
刚在mac上配置好php环境,运行项目代码就出现错误: Parse error: syntax error, unexpected end of file in xxx.php on line 21 检查出错的文件,21行是该文件的最后一行,是一句很简单的php代码,没有发现任何问题。于是我准备用排除法来定位问题,将该……
mac下利用国外的vps建立代理翻墙
现在很多人都有国外的VPS了,那么我们可以利用它建立SSH隧道代理来实现翻墙,解决很多国外网站上不了或间歇性不能访问的问题。 1、首先到<http://nihilex.com/secret socks 去下载SecretSocks并安装。 2、运行之后,在SSH hostname中输入自己vps的ip,在Port nu……
不引入依赖库,细粒度管理js代码
在一个项目刚起步时,往往除了jquery之类的库外,只有一个js文件。 然而随着功能的不断增加,js代码也会不断膨胀,当多到一定程度后(500行以上),维护难度就会大大增加。组织逻辑混乱,debug时很难迅速定位到想修改的地方,写新function时也很难抉择插入的位置。整天在一个长长的js文件里滚来滚去,想想都让人头……
用Win+R启动常用软件及文档,提升工作效率
我们都试过用开始菜单、桌面图标、快速工具栏、辅助桌面管理软件等来管理常用软件,在Win7下还可以直接固定到任务栏,然而这些方法都有或多或少的瑕疵: 开始菜单:第一级可用位置太少,多级的话查找太慢 桌面图标:软件多了之后太乱,难以整理 快速启动栏 / 固定到任务栏(Win7):挤压占用任务栏空间 辅助桌面管理软件:需要安……
使用StrokeIt提升工作效率
StrokeIt是一款鼠标手势软件,可以将用鼠标右键画出的手势绑定到许多常用的操作,如关闭/最大化窗口、启动程序、触发快捷键等。 下载地址和新手入门可见善用佳软的这篇文章,我就不再重复了。 这里和大家分享一下我使用StrokeIt的一些心得吧。刚接触这款软件时,有点走火入魔,把所有常用软件都绑定到手势,恨不得把所有的内……
我所信奉的编程哲学
从去年到今年,陆陆续续看完了《代码大全》、《重构》、《代码整洁之道》、《程序员修炼之道》以及《The Art of Readable Code》,获益匪浅。下面就分享几条我赞同并信奉的编程哲学,顺便废话几句。 本文适合有一定编程经验的读者阅读,高手请轻喷:) 代码是写给人看的(Coding for Reading) 请……
说说qwerty、dvorak、colemak三种键盘布局
【qwerty布局】 qwerty布局大家应该都很熟悉了,全世界最普及的键盘布局。 截止到去年接触并使用dvorak布局之前,我使用了十几年qwerty布局,在<http://speedtest.10fastfingers.com/ 测试的最高CPM(每分钟击键数)为475。 相信阅读本文的读者中,有99%以上都在使用……
在MongoDB的shell中显示服务器当前IP
不久前发生一起严重的事故,误删了生产MongoDB服务器上的一个collection,由于没有定时备份,导致几天的数据丢失。认真反省之后,写下这篇文章,希望能给大家一些警示。 过程 当时我正双开两个终端窗口,分别用mongo连接开发环境和生产环境的MongoDB。由于本地的数据库因为不断的开发测试已经被污染了,我从生产……
防止在iOS设备中的Safari将数字识别为电话号码
在测试中发现iPad上的Safari总会把长串数字识别为电话号码,文字变成蓝色,点击还会弹出菜单添加到通讯录。 别的地方倒也罢了,如果在用户名中出现数字(手机注册新浪微博的话用户名就是“手机用户xxxxxxxx”),版式会很恶心。 经过测试在a标签中的长串数字不会识别为电话,于是给出现用户名但没有链接的地方嵌套一个无动……
取得URL相对于另一个URL的相对路径
今天群里灰大出了个题: function getRelativeURL(url, baseURL) { // 获取url相对baseURL的相对路径 // url和baseURL都是绝对路径或都是相对路径的情况下,有可能计算出结果,否则扔Error // 如果都是绝对路径,但不在同一个域、同一个协议、同一个端口下,即无……
aoeu.sh 让你 type less, do more
Github: <https://github.com/shenjia/aoeu.sh 这是一个为 Linux / MacOS 用户设计的alias集合。 作为开发人员,我们每天都要在终端敲很多重复性的命令。一些大段重复的命令(比如部署,安装,备份等)我们会写shell脚本来避免重复性的键入,却忽视了还有很多使用频率极……
解决google maps api阻塞页面渲染的问题
google maps的api使用很方便,只要在用使用google maps的页面引入<http://maps.google.com/maps/api/js?sensor=false 就可以了。 但是在项目中这样使用后,发现domReady事件被严重阻塞(甚至会延迟十几秒) 因为domReady只有页面中所有的scri……
IIS无法启动(1058错误)的解决办法
前段时间配置服务器,更换IIS服务启动用户后就无法启动IIS服务了,提示1058错误(服务被禁用或依赖的服务没有启动),查看之后发现依赖的两个服务Remote Procedure Call和Security Accounts Manager都正常启动,服务也没有禁用,奇怪了……把启动用户改为本地系统帐户后仍然无法启动,……
用Cookie保存和恢复进度条
有时候我们需要在一个较长的列表中选择并刷新页面,刷新后页面会跳转到最顶部,当需要连续选择的时候就会很麻烦,每次选择后都要滚动到原先位置再选择下一个。 还有在分页程序中,如果一页显示的记录比较多,导致翻页后要滚动屏幕才能点击到翻页按钮,那么每次翻页后都要滚动屏幕,当需要连续翻页的时候就会很麻烦。 在做目录树的时候我们可以……

























