PHP Good Parts
list函数
list($table, $field)=explode('.', $field); $query = $this->CI->db->limit(1)->get_where($table, array($field => $str));
%s
$lang['required'] = "The %s field is required.";
list函数
list($table, $field)=explode('.', $field);
$query = $this->CI->db->limit(1)->get_where($table, array($field => $str));
%s
$lang['required'] = "The %s field is required.";
mkdir -p ~/.vim/syntax/
wget -O ~/.vim/syntax/nginx.vim http://www.vim.org/scripts/download_script.php?src_id=14376
# /usr/local/etc/nginx/vhosts/*为nginx配置文件存放目录
echo "au BufRead,BufNewFile /usr/local/etc/nginx/vhosts/* set ft=nginx" >> ~/.vim/filetype.vim
Snap,终于找到这款command + 数字
启动应用的神器,今天还限免
https://itunes.apple.com/cn/app/id418073146?mt=12
保证代码最新
svn update
查看要回滚代码的提交日志
svn log [something]
对比该文件老版本和最新版本有什么不同,以下28是最新版本,25是需要回滚到的版本
svn diff -r 28:25 [something]
回滚到版本25
svn merge -r 28:25 [something]
为保险起见,再对比一下
svn diff [something]
提交回滚
svn commit -m "Revert revision from r28 to r25,because of ..."
参考文章:
使用table布局
<body style="margin: 0; padding: 0;">
<table border="1" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td> Hello! </td>
</tr>
</table>
</body>
图片是唯一可以引用的外部资源。其他的外部资源,比如样式表文件、字体文件、视频文件等,一概不能引用。
Content-Type要使用
Content-Type: Multipart/Alternative;
参考文章
由于公司VPN使用的是L2TP协议,并且是无共享密钥的,OS X需要作一些配置才能支持,否则会提示“IPSec 共享密钥”丢失。请验证您的设置并尝试重新连接。
sudo vim /etc/ppp/options
plugin L2TP.ppp
l2tpnoipsec
最后把高级设置里面”通过VPN连接发送所有流量“钩上
2013-06-16 更新
iOS也可以用同样方法,不过必须越狱,建议安装openssh,然后ssh到iOS设备修改文件
自动提交本地git,然后ssh到服务器更新和部署,终于优雅实现这个一直很久的需求了
vim Makefile
PROJECT=free-will.me
SERVER=hugh@106.187.34.61
PATH=/data/app/octopress/
SSH=/usr/bin/ssh
GIT=/usr/bin/git
AWK=/usr/bin/awk
XARGS=/usr/bin/xargs
LOCAL_PATH=/Users/jiangrongyong/Program/jiangrongyong.github.com
remote_deploy:
@cd $(LOCAL_PATH)
@$(GIT) status -s|$(AWK) '{print $$2}'|$(XARGS) $(GIT) add
@$(GIT) commit -m "posts update"
@$(GIT) push -u origin source
@$(SSH) -t $(SERVER) "echo Deploy $(PROJECT) to the $(SERVER) server.; cd $(PATH); git pull; rake gen_deploy;"
参考文章
df -h
diskutil unmount /dev/disk1s1
diskutil list
dd bs=4m if=raspbmc-final.img of=/dev/rdisk1
以上4步就ok了
参考来源
准备做一个实时应用的服务端,由于以前都是基于http协议开发的,没有这方面的经验
查了下V2EX和知乎,发现目前国内大部分成熟应用用的协议都是XMPP,如米聊、微信和国外的kik
以下是知乎上对XMPP的评价
使用XMPP协议(Openfire + Spark + Smack) 简介:基于XML协议的通讯协议,前身是Jabber,目前已由IETF国际标准化组织完成了标准化工作。 优点:协议成熟、强大、可扩展性强、目前主要应用于许多聊天系统中,且已有开源的Java版的开发实例androidpn。 缺点:协议较复杂、冗余(基于XML)、费流量、费电,部署硬件成本高。
关闭
sudo launchctl unload /Library/LaunchDaemons/org.jivesoftware.openfire.plist
启动
sudo launchctl load /Library/LaunchDaemons/org.jivesoftware.openfire.plist
cd /Users/jiangrongyong/Program/openfire_src/build
ant openfire
#先启动mysql
/usr/local/mysql/bin/mysqld
#openfire启动脚本
/Users/jiangrongyong/Program/openfire_src/target/openfire/bin/openfire.sh start
owner
(所有者), admin
(管理者), member
(成员), 以及 outcast
(被排斥者) (当然也可能没有岗位); 岗位(affiliation)和角色(role)是有区别的. 一个岗位跨越了用户对一个房间的访问期间.http://wiki.jabbercn.org/XEP-0045#.E9.97.B4.E6.8E.A5.E9.82.80.E8.AF.B7
客户端请求
<message from='crone1@shakespeare.lit/desktop' to='darkcave@chat.shakespeare.lit'>
<x xmlns='http://jabber.org/protocol/muc#user'>
<invite to='hecate@shakespeare.lit'>
<reason>
Hey Hecate, this is the place for all good witches!
</reason>
</invite>
</x>
</message>
源码在LocalMUCUser.java
296行开始
错误返回
<message id="jBnmc-4" to="admin@localhost/Smack" from="room39@conference.localhost" type="error">
<x xmlns="http://jabber.org/protocol/muc#user">
<invite to="hugh@localhost">
<reason>meizi</reason>
</invite>
</x>
<error code="406" type="modify">
<not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></not-acceptable>
</error>
</message>
decline
拒绝邀请 (239行)http://blog.csdn.net/love254443233/article/details/7887279
我们知道在 bash 里,可以通过 “上下” 键来浏览最近执行过的命令历史纪录(history),我们也知道如果历史纪录太多的话可以通过 ctrl+r 来查找命令或者通过 history 命令来浏览历史命令。我们不知道的是(也许只有本人不知道~),还有一种神奇的办法可以更准确、有效的在历史命令纪录中查找自己想要的命令。
在自己的用户主目录(home directory)新建一个 .inputrc
文件:
$ vi ~/.inputrc
"\e[A": history-search-backward
"\e[B": history-search-forward
set show-all-if-ambiguous on
set completion-ignore-case on
退出 bash 后重新登陆,敲打一个字母或者几个字母,然后 “上下” 键,就会看到以这个字母搜索到的完整命令行。如果搜索到几个类似命令,通过上下键来切换,有点像 ctrl+r,但是更好用。