关原之战
1600年10月21日,德川家康的军队在关原之战中战胜丰臣秀赖的军队,确立了江户幕府在日本的统治。
一本《德川家康》断断续续看了半年了,还没看完。。。
最近总是忙忙碌碌的,其实也发生了一些事,只是还没有到记在这里的时候。也许是冬天吧。
1600年10月21日,德川家康的军队在关原之战中战胜丰臣秀赖的军队,确立了江户幕府在日本的统治。
一本《德川家康》断断续续看了半年了,还没看完。。。
最近总是忙忙碌碌的,其实也发生了一些事,只是还没有到记在这里的时候。也许是冬天吧。
真是无法想象,相对而言 ThinkPHP 比 FleaPHP 稍好一些,有一点 Layout 概念(但是开发者对 Layout 的理解貌似有问题)。不过 TP 上手极快,简单实用,从 RoR 上学来的默认约定和自动生成目录很方便。如果就按照它的模式开发一个简单的应用应该没什么问题。但是感觉有点过分使用 js 功能(这也是国内开发者的通病),RBAC 的实现也不是很完善。先凑合着用吧,动手为先!
熟悉 Drupal 的构架后,回头看看国内的开发框架以及相关程序发现最欠缺的内容就是程序本身的 Log 系统(不是开发调试用的 Log)、基于 Session 的用户交互界面。
现在的程序无论 Log 和 Session 都是基于文件的,对于拥有多台 Apache 后端的系统构架来说肯定不行。这个似乎与国内的 PHP 环境大多提供的 MySQL 数据库空间过少的现实有关。
对于 Log 来说,本身大部分国内开发者更喜欢一行一行的去 Debug 程序,即使在开发上都不愿意使用。那么增加额外的系统操作 Log 更是难上加难。不过,良好的系统操作 Log 对于程序的安全性和开发测试也是非常有益的。类似于程序开发 Log,对于整个系统也建立一套 Log,能够方便程序管理员发现程序的安全隐患和性能负载找出瓶颈,也能统计出一些有益的数据,方便网站应用的发展。
至于基于 Session 的跳转用户界面。大多数国内程序都还是喜欢使用中间页,也就是当一个操作成功后,出现一个设置几秒内跳转到其他页面的中间页面,该页面显示刚才操作成功的提示信息。这样子其实白白让 Web 服务器多了一个请求,而且对用户极度不友好(浏览器到后退按钮因为这个中间页失效)。所以,省去中间页,将提示信息(不仅仅是成功信息,也包括错误信息)统一储存到 Session 中,只用在跳转后的页面中显示当前 Session 信息即可(成功跳转到其他页面,错误仍然在当前页面,但一样的处理来显示 Session 中的成功或错误信息)。
确实有点像使用 Word 的感觉,应该用来写文章不错。希望自己能够改变一下一直以来的日志风格,多一点大段的文字。
总是喜欢写零星的几个字,而且特别喜欢回车换行。呵呵。
好了,我是不是应该把小依的私密日记恢复的说。
很久没有深夜写过日志。这两年多来,也很少写过自己的生活感情。工作也只是只言片语。
曾经的失落变成极度失落,无比的自卑,感觉一事无成。
对什么都失去信心,也失去去完成的毅力。放佛一切都不重要。
当然,这段时间内经历了很多,学会了很多。
也很感谢这些我说不出名字的人。
嗯,写下这篇日志的目的在于告诉自己。
现在,必须去完成一些事情了。
其实,日子还很长,什么都会发生。
能够努力去做,相信自己就能做到。
一切都不遥远。
公司内部配置了一个 WebDav,然后满世界找 WebDav 客户端,结果发现 Windows XP 的网上邻居就支持 WebDav。
想到 Apache 的 mod_svn 也是 WebDav 方式,于是直接打开:
服务器端自动更新脚本,编辑仓库的 hooks/post-commit 内容如下:
#!/bin/sh
REPOS="$1"
REV="$2"
export LANG="zh_CN.UTF-8"
/usr/bin/svn update /var/www
脚本需要 +x 和设置属主(建议)才能执行:
sudo chown www-data:www-data hooks/post-commit
sudo chmod +x hooks/post-commit
/var/www 是 apache 的 htdocs 目录。另外,钩子脚本也是以 www-data 身份执行的,所以先使用:
sudo su www-data -c "svn co http://your.svn/path /var/www"
检出代码并保存认证信息。
禁止用户提交临时文件、图片缩略图文件等,编辑仓库的 hooks/pre-commit 内容如下:
#!/bin/sh
export LC_ALL=zh_CN.UTF-8
REPOS="$1"
TXN="$2"
TYPE="$3"
if test -z "$TYPE" ; then
TYPE="-t"
fi
SVNLOOK=/usr/bin/svnlook
look() {
$SVNLOOK "$@" "$TYPE" "$TXN" "$REPOS"
}
#if look log | grep '.' > /dev/null ; then :; else
# echo "必须填写提交日志!" >&2
#exit 1
#fi
disexts='.(bak|exe|tmp|lib|o|obj|log|rar|zip|7z|gz|tar|tgz)$'
disfiles='(^|/)(Thumbs.db|desktop.ini)$'
disdirs='(^|/)(_notes|.DS_Store)/$'
disdot='(^|/)(.)'
diss="$disexts|$disfiles|$disdirs|$disdot"
if look changed | grep '^A ' | sed -r 's#^A +##' | grep -iE $diss 1>&2 ; then
echo "不允许提交上面所列出文件或目录。n这些文件可能是图片的缩略图、临时或备份文件和目录。n请撤销增加上述文件或目录后,再提交到版本库!">&2
exit 1
fi
exit 0
注释掉的那段代码是强制要求提供修改日志。
最后,感谢鸡蛋壳和mOo两位同学。
嗯,超级宇宙战舰大战!
四轮的努力,我们,自由惑星同盟,终于赢得了胜利。
但是这副良药,就好比对一个骨瘦如柴营养不良的人,喋喋不休地建议一定要少吃肉少喝酒少吃糖多运动,以防止富贵病一样。貌似高瞻远瞩,实为形迹可疑。
来自:乱性