freebsd 7.2
根据提示进行安装 并选择最小安装
在进行系统配置时
* 关闭ssh外的所有服务
* 配置ip地址 配置时区
* 添加普通用户用来远程连接ssh,设置组为 wheel 这样可以使用su访问root
* 设置管理员密码

开启用户的su权限,使用su命令的用户必须存在与wheel组中
# pw groupmod wheel -m username
检查用户是否正确的添加到组中
# pw groupshow wheel

mount cdrom 映射光驱
# ll /dev/acd*
> acd0t01
# cd /cdrom
# touch CDROM-NOT-mounted-mcd.txt
# mount -t cd9660 /dev/acd0t01 /cdrom

- python
安装python
# cd /cdrom/packages
# pkg_add -p/home/app/python25 /cdrom/packages/python/python25-2.5.4_1.tbz
映射命令
# ln -s /home/app/python25/bin/python /usr/local/bin/python
– require
bsddb databases/py-bsddb
gdbm databases/py-gdbm
sqlite3 databases/py-sqlite3
tkinter x11-toolkits/py-tkinter

# pkg_add -p/home/app/sqlite3 /cdrom/packages/databases/sqlite3-3.6.11.tbz
映射错误的链接库
# ln -s /home/app/sqlite3/lib/libsqlite3.so.8 /usr/local/lib/libsqlite3.so.8
# cd /usr/local/lib/
# ln -s libsqlite3.so.8 libsqlite3.so
映射命令
# ln -s /home/app/sqlite3/bin/sqlite3 /usr/local/bin/sqlite3

- emacs 安装emacs编辑器
# pkg_add -p/home/app/emacs /cdrom/packages/editors/emacs-22.3.tbz
# ln -s /home/app/emacs/bin/emacs /usr/local/bin/emacs

解除绑定的光驱
#umount /cdrom

注:通过pkg_add 自动获取安装包
# pkg_add -r python
-r 选项将导致pkg程序自动从配置的packages网络镜像获取指定应用最新的安装包

[:p] –飞扬.轻狂 [fallseir.lee]
http://fallseir.livejournal.com
http://feed.feedsky.com/fallseir

php的多分支控制

php的多分支控制
原文 (飞扬轻狂,fallseir) 20090427
==== php的多分支控制 ====
### if 方式 实现多分支控制

if(runStep(1)){
  if(runStep(2)){
    if(runStep(3)){
      # all steps are success!!
    }else{
	# step 03 is failed!
    }
  }else{
    # step 03 is failed!
  }
}else{
  # step 03 is failed!
}

# some others steps

### if 方式 2 实现多分支控制

$r=0;
if(runStep(1))
  if(runStep(2))
    if(runStep(3))
    else $r=3;
  else $r=2;
else $r=1;
if($r){
  # step $r is failed!
  return false;
}

# some others steps

### do..while(false) 方式 2 实现多分支控制

do{
  if(!runStep(1)) # step 01 is failed!
  break;
  if(!runStep(2)) # step 02 is failed!
  break;
  if(!runStep(3)) # step 03 is failed!
  break;
  # all steps are success!!
}while(false);

# some others steps

### switch(true) 方式 2 实现多分支控制

switch(true){
  case !runStep(1):
	# step 01 is failed!
	break;
  case !runStep(2):
	# step 02 is failed!
	break;
  case !runStep(3):
	# step 03 is failed!
	break;
  default:
	# all steps are success!!
    break;
}

# some others steps

### try..catch 方式实现

try{
  if(!runStep(1)) throw new SomeError(1); # step 01 is failed!
  if(!runStep(2)) throw new SomeError(2); # step 02 is failed!
  if(!runStep(3)) throw new SomeError(3); # step 01 is failed!
  # all steps are success!!
}catch(SomeError $ex){
  # step $ex is failed!
  return false;
}
# some others steps

,

使用反射 实现的 简单的 单元测试框架
原文 (飞扬轻狂,fallseir) 20090427
==== generalized test methods use introspection ====

class customClass{
  function selfTest(){[..] return [message|false]}
}
class tester{
  function test($thing){
    if(is_object($thing)){
      if(method_exists($thing,'selfTest')){
        $this->handleTest(call_user_method('selfTest',$thing));
      }
    }else if(is_array($thing)){
      foreach($thing as $component){ $this->test($component); }
    }else{
    ;//ignore if not an array or object
    }
  }
  function handleTest($result){if($result)print "Warning $result";}
}

参考:
John.Wiley.and.Sons.PHP5.and.MySQL.Bible

, ,

测试FEED 点击广告
feedad

feedsky
提供的内嵌式 feed 点击广告开始测试了

发篇文章来测试 多少个阅读器中可以看到它..

虽然一直在网上 但好久不在意网络了
在google reader中看到大家在议论GTD
好炫的名字啊 我都不知道这个是什么东西 (囧~ 亏你还是做IT的呢)
赶快去下了本《尽管去做–无压工作的艺术》瞧了下
看了头一章 就上来把自己的想法先记下来 免得时间久就丢了

GTD-行事历 (晕死,WP竟然上传图片有问题… 算了懒得去看是什么原因了 )

上面是一张简图 描述了大脑的思维和行事历之间的关系(偶自己的理解,和书中可能不大相同,我才看了一章…)
1、这里把所有不能决定的和没有决定的事情都称作 待办事项
2、在空闲或计划处理待办事项的时间对存在于待办列表中的事情进行 转化
3、觉得没有必要的就直接划掉丢弃
4、短时间内能完成的就直接 执行 处理了
5、需要长时间处理的就放在计划列表中根据优先级排序
6、不能判断的就继续留在待办列表里
7、设定一个提醒装置 到期进行提醒(比如短信、Mail或及时聊天工具中的消息)
8、当有突然出现的事情发生时,直接将它们记录为待办事情(不丢失又最少的影响当前的事情)
9、当有高优先级的任务需要处理时,暂停当前执行的事情并在行事历中标注,着手转化这个插进来的任务
通过这种方式最大限度的让大脑中只考虑当前执行中的事情 而不需要因为考虑其他的事情而分神
并把零散的随机出现的待办事项集中处理

从上面的内容可以看到 当前只是解决了思维被占用和干扰的问题,但并没有提出对因工作边界模糊,需求不定而产生的问题的解决方式,也问题被集中到了转化部分

参考:
GTD,Getting Things Done
《Getting Thing Done - The Art of Stress-Free Productivity》 — David Allen

,