Zen Space
php erlang javascript ruby python web linux mac os x
rss
email
twitter
facebook
  • Labs
  • Resume
  • Works
  • About

Author Archive

开启Mac OS X Snow Leopard的NTFS原生读写

no comments
Posted on 一 24 2010 by reeze

在Mac OS X下一直使用MacFUSE和NTFS-3G来访问ntfs分区,这次装了Snow leopard 10.6.2之后出现fusefs.kext can’t load的错误,从官方得知目前macfuse在snow leopard下有问题,在网上看到这篇贴子提到Snow Leopard其实原生就支持NTFS分区的读写,真是个好消息。
开启的方法有两种:
一种是在/etc/fstab文件里增加挂载选项,基本步骤是:
1,卸载NTFS-3G或者其他读写ntfs分区的软件
2,打开终端$ diskutil info /Volumes/分区名 或者使用磁盘工具获得分区的UUID
3,编辑/etc/fstab文件,增加一行 UUID=分区的UUID none ntfs rw
4,如果还有其他的分区要挂载,则继续上面的步骤2-3增加其他分区
这种方式比较烦琐,第二种方法就比较简单。
大家应该都注意过系统已启动就会自动挂载所有的ntfs分区,这个命令在/sbin/mount_ntfs
这个方法所要做的就是给这个默认的挂载命令增加可读写参数,按如下步骤在终端命令行操作:
$ sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.orig
$ sudo vim /sbin/mount_ntfs
编辑这个文件,加入如下内容:
#!/bin/sh
/sbin/mount_ntfs.orig -o rw “$@“ #这里调用默认的挂载命令,不过增加了 rw参数,开启读写
保存这个文件,然后:
$ sudo chown root:wheel /sbin/mount_ntfs
$ sudo chmod 755 /sbin/mount_ntfs
然后重启,启动后,你应该就能得到一个可以自由读写的ntfs分区了。不过声明一点,这个功能据说不稳定,不知道是因为版权原因还是真的很不稳定,苹果默认没有开启这个功能。不过我更相信苹果。
========
后话:刚好公司配了一台Dell E6400,偶尔看到有人在上面装了一个Leopard,于是手痒也在上面装了一个,如果有人也有这台笔记本也可以试试看,不过我装好的系统还是有问题:
1,触摸屏一碰就乱跑,我直接禁用就好了,反正也不喜欢用。
2,关机和重启不断电,每天关机的次数也有限,也就无所谓了。
3,声音控制不了,只能在具体的应用程序里控制。
其实问题还是挺多的,不过基本上的使用我觉得还是没什么问题的,触摸屏的问题比较烦人,还好我不喜欢用触摸屏。如果有人也想尝试可以试试看。我用的安装文件是 Snow_Leopard_10.6.1-10.6.2_SSE2_SSE3_Intel_AMD_by_Hazard.iso, 至于安装方法PCbeta上有很多的教程可以参考,摸索一下大概都没有什么问题,安装的时候一定要做好备份,因为我到目前已经因为装Mac OS X丢失了不下10次数据了,大部分情况下都是分区被合并。所以一定要小心一点。


Read More

  Tags: MacFUSE, NTFS, OS X, Snow Leopard Category: Hackintosh, Mac, 未分类

在2009的尾巴上

2 comments
Posted on 十二 31 2009 by reeze

09年最后一篇日志,充个数吧:)
哈哈,刚买了本《Orange S: 一个操作系统的实现》,这一年下来买了挺多的书,也从图书馆借了很多的书(马上就要毕业了,再也享受不到学校图书馆丰富及时的藏书了,计划以后每个月发工资都买一本自己喜欢的书),发现我读书最大的问题是多而不精,拿一本好书就使劲的翻,很多书都是花几天就翻完了,但是读下来之后总觉得收获不够,一些很需要实践的部分也没有及时联系,总感觉自己浮在表面上,只知其然。所以呢,这个2010年争取多读好书,踏踏实实的啃几本好书,然后就是要多动手啦。
计划2010年呢,能把耽搁很久的想法付诸行动,做出点东西来。希望有个好的开始吧!
Happy New Year!!!


Read More

  Tags: 2009

支持IPv6的Tunnelblick For Mac OS X OpenVPN客户端

no comments
Posted on 十二 30 2009 by reeze

在yegle那里买了OpenVPN服务 ,用着还挺不错,我也在教育网,所以只能使用支持IPv6版的客户端,openvpn默认不支持IPv6,不过yegle提供了相应的IPv6补丁,在Linux下以及Windows下使用的都挺好,最近又在折腾电脑,装了个Snow Leopard,基本没什么问题了,除了我的ATI 2600 XT硬件加速暂时无解外其他的都挺爽,使用了yegle推荐的Tunnelblick, 总是连接不上,它提示让我查看日志,但是根本就找不到地方看日志,直接cd 到 Tunnelblick的包里面直接执行openvpn命令,提示不支持udp6 ,又是不支持 Ipv6,本想直接自己编译一个openvpn,但是想想那样就太不clean了,编译成app的话可以通用,还能共享给有需要的人多好啊,去google code checkout了一份代码,直接编译,错误百出,我是在Snow Leopard上编译的,仔细查看原来需要MacOSX10.4u的SDK 重新安装10.4的SDK还是未果,后来发现SDK的安装目录居然不一样。。自己手动拷贝过去也不行。。 切换到傲Leopard下安装,折腾了好久终于编译成功,废话太多了。呵呵,共享出来给需要的人吧:)
猛击这个连接 下载http://code.google.com/p/tunnelblick-ipv6/downloads/list
可惜的是yegle不再提供IPv6用户的续费了,不过我到期之后差不多也要从学校滚蛋了。
我提供的这个版本的tunnelblick的配置文件位置是 ~/Library/openvpn 最新版的配置放在 ~/Library/Application Support/Tunnelblick/Configuration目录里面。
马上2009年就要过去了。最近很久都没有更新日志了,其实之间也想写一些东西,但是都丢在草稿箱里没写完。论文还有很多没有写完,马上就要交了,要抵制住诱惑乖乖写论文。


Read More

  Tags: MacOSX, Tools, VPN Category: Mac, 未分类

Lockerz邀请

5 comments
Posted on 十二 5 2009 by reeze

刚上论坛发现Locker这个好玩的东西
Lockerz (http://www.lockerz.com/)是一个新型态的网站,它成立于09年3月,由美国最大的媒体公司之一美国有线电视公司Liberty Media投资建立,目标是整合影音、游戏、购物等多项服务。 网站为免费注册,但是现阶段只有被邀请的人才可以注册。
Lockerz怎么玩儿?
lockerz的积分点数叫做PTZ,好吧,你可以把它理解为何Q币是一类的东西
使用者只要每天登入(2PTZ) 、回答当日的问题(2PTZ以上,有时会加倍放送)
或邀请朋友加入(2PTZ) ,就可以赚取积分点数
这些点数是可以拿来换一些不错的东西,
例如Apple MacBook、Ipod nano、Ipodshuffle,甚至还有motocycle
依奖品本身价值,换取点数也不同。
目前2PTZ大约可以换取相当于1美金的东西,
例如旧版ipod shuffle(价值$50)100PTZ、ipodnano(价值$150)300PTZ等,
所以奖品并不难换。
刚加入的使用者,
会让你玩一个接方块的游戏,等于白送你美元的
在限定时间内,方块会一直掉下来,价值1PTZ至3PTZ,方块越小越值钱!
另外右下角还有一个DAILIES按钮,
点进去可以回答当日的问题。
每天都是一题随便可以回答的问题,
回答完就可以拿2~10PTZ。
更多的服务和功能还在完善之中……
如何加入Lockerz?
目前Lockerz只有通过邀请才能加入。需要的同学可以在下面留言,留下你的Email,目前已知QQ邮箱接收到邀请最快。
或者可以直接用留言时填写的Email。长时间没有收到的请告诉我一声,我会重新发送。
另外,邀请函有可能在你的垃圾邮件里。
接收到邀请的同学注册后可以再邀请他人,每邀请1位朋友可以获得2个PTZ,这也是获得PTZ的一种方式。
来看段视频吧:


Read More

在PHP中检查PHP文件是否有语法错误

1 comment
Posted on 十 9 2009 by reeze

之前在当当的时候的一个项目中用到了一个简单的模板引擎,其实也是借鉴discuz来做的模板引擎,很简单,它所作的事情就是把一些自定义的标签编译成php代码。已经说了很简单了,所以编译的时候也名优进行模板语法的检查,那么在开发过程中就会出现编译出来的php文件有语法问题,有语法问题没有关系,我修改重新编译一下就好了。首先不能在每次请求的时候都把php模板重新编译一下,会严重影响性能,折中的处理时在每个编译好的php文件末尾检查一下该模板文件是否已经修改过,根据设定的更新频率,如果又需要则重新编译模板文件,现在的问题是编译出来的php文件自己有语法错误,根本执行不到模板检查那一步,所以即使修改了模板文件中的问题也不会重新编译。 所以我想寻找一种简单的方法来检查生成的php文件是否合法。不合法就重新编译,这样开发过程中就不用出现错误就得手动删除缓存文件了。
在网上找了一下。刚开始以为 token_get_all()函数能处理语法错误的问题,结果发现,它只是做简单的词法分析。没有办法。后来到论坛上去问了一下
http://groups.google.com/group/professional-php/browse_thread/thread/b8581f6b07b10ff0/2601a63c406bb1c1?lnk=gst&q=reeze#2601a63c406bb1c1
有人告诉我有这样一个函数 php_check_syntax() http://www.php.net/manual/en/function.php-check-syntax.php 我想问题就这么坚决了。。我真应该RTF(Read The Fuck Mannual). 仔细一看。这个函数已近被弃用了:
Note: For technical reasons, this function is deprecated and removed from PHP. Instead, use php -l somefile.php from the commandline.
这个technical reason 到底是什么呢? 先不管了,以后再慢慢研究,反正不能使用这个方法就对了。
他们的建议是使用命令行$php -l filename.php 来检查语法。
Gary Every给了我一个代码片段参考:
在命令行下检查问题也不大。如果我要放在在线应用呢? 这就涉及到可移植性的问题了。首先是操作系统,然后就是环境变量。这样的话就会依赖于服务器端的配置。在http://www.php.net/manual/en/function.php-check-syntax.php 上有人贴出了自己的php_check_syntax()函数实现。
有的采用的就是上面的命令行的方法。
后面有提到使用eval的方法来验证。eval方法会执行传入的代码, 如果代码有语法错误则会抛出parser error, 可以使用’@’错误抑制符去掉错误信息,eval和echo一样并不是函数,不能使用变量函数的方法调用比如:
$func = ‘eval’
$func()这样的调用就是无效的。它会提示没有eval函数,如果你自己定义这么一个函数也是有问题的。因为eval是一个关键字。
eval调用和include差不多,如果被包含文件中没有明确return就返回null。如果直接eval我们需要检查的文件会造成被检查的文件内代码被执行,这可不是我们想要的,我们只需要检查一下这个文件的语法是否正确。 我们可以在要检查的文件之前添加return 语句,让代码提前跳出,那么后面的代码就不会执行了。好的,就这么干。代码如下:
checker.php
123456789101112131415161718192021222324<?php

if(!function_exists(’php_check_syntax’)) {
    function php_check_syntax($file_name, &$error_message = null) {
      [...]


Read More

  Tags: PHP, syntax check Category: PHP

实现一个简单在线HTML编辑器

3 comments
Posted on 十 9 2009 by reeze

一直没有仔细研究过在线HTML编辑器,以前以为编辑功能很复杂,需要用大量的JavaScript来模拟编辑器的效果,以前都是使用一些开源的HTML编辑器,HTML在各网上随处可见,发表文章,评论。最近自己想做一个类似Things这样的Web版的应用,需要一个想Google  Notebook(可惜的是现在已经停止开发了) 那样的编辑功能,看看现在网上的这些编辑器都庞大了,都是一些自己根本用不到的功能,其实我的需求很简单:简单的编辑既可以,并且需要轻量级一些,因为页面上可能需要开很多个编辑器实例。 所有想自己也来研究一下,看看能不能自己开发一个。
几天前花了一个晚上用firebug看了下Google Docs是怎么做。第一个遇到的问题就是如何让光标停在鼠标点击所在得地方。我刚开始一味都是js模拟出来的,这得有多复杂啊。并且还要兼容各个浏览器,天啊!后来上网一搜发现,浏览器早就想到了我们会有这样的一个需求。其实很简单,两条语句就可以说明HTML编辑器的最为核心的部分:
12document.designMode = ‘On’;
document.contentEditable = true;
参考Mozilla上的这篇文章,介绍了HTML编辑的基本信息,要自己DIY一个常用功能的HTML编辑,这篇文章已经够你用的了。
在你的网页中嵌入这两条语句试试看:),你就会发现你的网站整个得都变的可以编辑了。可以随便乱修改。 不过放心,这样修改并不会破坏你的网站, 当然你也不希望你的整个网站是可以编辑的。例如我们只希望别人发布一条评论,只希望评论输入框可以输入。 要实现这样的效果可以有两种做法:
第一种就是使用直接让某个元素变成可编辑的例如:
index.html
12345Test TextEditor
<h1>Hi, HTML Editor!</h1>
<textarea id="content">Hello, you comment please</textarea>
<div id="comment" onclick="editAble(‘comment’)">Your comment</div>
<button onclick="gethtml(‘comment’)">Get HTML</button>
点击该区域后该区域的内容就变成可以编辑的了,这是我们就是对其进行简单的编辑。你可能会觉得直接编辑的功能太简单了,比如想要插入链接或者图片什么的。就没有办法了。这些功能浏览器并没有帮我们做好,不过实现这些功能也不麻烦, 参考上面Mozilla的文档。浏览器都提供了常用的功能API。
一般的编辑器都会提供一个工具栏之类的按钮来编辑文本内容。比如我使用的WordPress提供的编辑器:
可以对文字内容进行操作,加粗下划线,字体,对齐等等,并且提供可视化以及HTML编辑模式。
这个和FCKeditor 以及tinymce之类的编辑器使用的编辑方式和上面我提到的直接编辑html对象的方法不一样,他们使用的是iframe,使用iframe有很多好处,iframe中的文档和当前文档并不会因为样式或者HTML结构而影响到彼此,所以大部分的编辑器都是使用这种方式。它们基本的方式都是:

在页面中使用一个不可见的字段比如:“input, textarea”之类表单字段,他们的值就是需要编辑的内容。
页面初始化好,比如载入编辑器相关的一些脚本,也是就是window.onload好以后。创建一个iframe来显示可编辑区域,iframe初始化好以后读取父窗(相对于这个iframe)口的这个不可见表单值的内容,使之成为iframe中的body的html,也就是把所有需要编辑的内容添加到iframe中
iframe中的内容初始化好以后,在iframe中执行上面提到的:
12document.designMode = ‘On’;
document.contentEditable = true;
把iframe整个窗口变成可以编辑的
进行编辑,这时候的编辑可能需要一个工具栏,基于同样的原因,一般工具栏也会是一个iframe,显示它们自己的编辑按钮。编辑是就利用浏览器提供的接口来对ifame中的内容进行编辑
父窗口中提交表单之前或者你需要的地方需要把编辑器中编辑完的内容回写到你的表单字段中去,否则编辑结果没有保存写来就没有意义了。

基本原理就是这样。要做出这样一个东西来,需要的就是一些细活了。要想做出一个FCk这样好用的编辑器也不是那么简单的。但是至少我们知道它是怎么运作的。 这就够了。
花了点时间做了一个简单的编辑器,真正要用的话很多的细节还是需要好好处理的,代码没有怎么清理,是变想边写,不是很完整。
需要的同学可以下来参考参考。
猛击  >> 这里 << 下载代码。


Read More

  Tags: editor, html, JavaScript Category: JavaScript

新设计的博客首页

4 comments
Posted on 七 26 2009 by reeze

给自己的博客设计了一个新的界面,大概是定型了。。不想做了,明天还得上班,rblog还没有写好,不知道什么时候我的个人网站能上线啊。。
UPDATE: 最近太忙了,做好了以后都没有时间切图生产页面,让Tina同学帮我做好了都没时间做成皮肤。懒啊。。


Read More

Category: 乱78糟

PHP5.2.6中无法在exception_handler函数中抛出异常

no comments
Posted on 六 25 2009 by reeze

在PHP bugs列表中也找到这个bug,但是似乎没有被处理,bug提出的时间是2005年,不知道新版本的有没有解决。
PHP:5.2.6
OS: Mac OS Leopard 10.5.7
Server: Apache 2.2
这个代码就有问题:
function e_handler($e)
{
throw new Exception();
}
set_exception_handler(‘e_handler’);
throw new Exception();
这将会导致
Fatal error: Exception thrown without a stack frame in Unknown on line 0
Update: 这应该属于设计问题,如果在exception_handler()函数中可以跑出异常,则这个异常优惠调用exception_handler(),这样下去就会出现死循环,这就是为什么程序会出错的原因吧。
通过try catch来处理的话就没有问题。。
function e_handler($e)
{
try
{
throw new Exception();
}
catch (Exception $e)
{
echo “catched…”;
}
}
set_exception_handler(‘e_handler’);
throw new Exception();


Read More

  Tags: exception, PHP Category: PHP

Mac下我常用的软件

no comments
Posted on 六 19 2009 by reeze

习惯了Mac OS X Leopard以后发现自己已经离不开它了。像很多Linuxer一样除了上网银以外统统不用Windows,玩个CS什么的也都用Wine了,我很笨,目前在Mac 上和Ubuntu下都没有Wine成功过 “, 下面就介绍一些我认为在Mac下非常使用的软件吧。
1. QuickSilver
只需要Command+Space 再加上几个字母就可以方便的你的程序,通过一些插件QuickSilver能极大的提高我们的效率,强烈推荐,唯一不足的是这款软件的作者已经不继续维护这款软件了,他被Google请去做另外一款和这个类似的软件Google Quick Search Box 试用了一下还不够成熟,目前和QS比起来还是差太多了。
2. TextMate
这款软件就不用多介绍了吧,强大的编辑器。开发进度有点慢,作者对软件质量要求很高,不许诺2.0版本到底何时能出来,很多人都以为作者停止了开发,前不久作者发布了这篇文章,声明开发仍在继续,感兴趣的同学可以看这里看看TextMate2.0到底有哪些改进。这篇在2007年就发布了。实在过的有点久了。
3.Things
GTD绝佳软件,缺点不具有网络同步功能
4.Evernote
笔记软件,很方便,之前我也用Evernote来做GTD发现管理器来很不方便,后来发现上面提到的Things就放弃用Evernote做GTD了,Evernote做笔记绝对顺手,他同时提供Windows 和Mac OS 两个版本,还有Web版的,跨平台很有优势。免费用户提供40M得空间,对我来说这其实绝对够用。
5.Adium
多协议IM客户端支持:Gtalk, MSN, …QQ(因为QQ的协议是不公开的,所以可能定期会抽风,上QQ也可以用官方的 QQ for Mac)..
6.Tweetie
Twitter就靠他了,说不出那里好,就是很好用。免费版有广告。还好基本不影响用户体验。
7.iChm
看chm的电子书就靠它了。支持搜索
8.RescueTime
这个软件也有各个操作系统的版本,收集自己的时间分配,然后会有个汇总。
9.AppZapper
卸载软件用它来卸载还是比较干净的。方便快捷
10.Monolingual
帮你清除一些不需要的语言信息,节省磁盘空间。


Read More

  Tags: Mac, softwares Category: Mac

Mac OS 启动sshd服务

2 comments
Posted on 六 19 2009 by reeze

想push自己写的一些代码到本地的版本库中去,看了很多的协议,都挺麻烦的,至今没有配置好一个git server,遂放弃搭建server,直接使用ssh来提交到本地
无奈Mac OS X 似乎默认不启动SSHD服务。所以我尝试启动
Leopard:etc reeze$ sshd
sshd re-exec requires execution with an absolute path
看来不行。
不过这个提示错误似乎不是很明白。上网baidu了一把。发现
只能用绝对路径启动。不知道为什么程序非得用绝对路劲启动。有时间研究下为何是这样的,或者有知道的直接告诉我:)
$ sudo /usr/sbin/sshd
服务就启动了
不能每次都这么运行一下先啊。放在 ~/.bashrc 似乎可以,不过这个得需要管理员权限
得sudo,每次输入密码很烦人。干脆放到 /etc/rc.common,
#####
/usr/sbin/sshd
网上有人说apple不推荐这么干。但是我又不知道怎么让他自动启动。先就这么放着吧。找到好方法再改。


Read More

  Tags: Mac, ssh Category: Mac
« Older Entries

最近文章

  • 开启Mac OS X Snow Leopard的NTFS原生读写
  • 在2009的尾巴上
  • 支持IPv6的Tunnelblick For Mac OS X OpenVPN客户端
  • Lockerz邀请
  • 在PHP中检查PHP文件是否有语法错误

分类目录

  • G-related (1)
  • Hackintosh (1)
  • JavaScript (1)
  • Mac (4)
  • PHP (5)
  • 乱78糟 (1)
  • 未分类 (4)

标签~云

2009 debug editor exception html JavaScript Mac MacFUSE MacOSX NTFS OS X PHP Snow Leopard softwares ssh syntax check Tools VPN

一些脚印

  • reeze 在 Mac OS 启动sshd服务 上的评论
  • birdbluebloc 在 Mac OS 启动sshd服务 上的评论
  • kevin 在 Lockerz邀请 上的评论
  • reeze 在 Lockerz邀请 上的评论
  • kevin 在 Lockerz邀请 上的评论

Google Reader

  • quickersort (Niniane's Blog)
  • Economics in One Picture (Greg Mankiw's Blog)
  • 谷歌重申不过滤搜索结果 做好停止中国业务准备 (焦点新闻-新浪科技)
  • Xen 初学者指南 | LinuxSir.Org (www.linuxsir.org)
  • 45个吸引人的创新简历 (玩聚SR|最佳)
Shared Items

日志存档

  • 2010年一月 (1)
  • 2009年十二月 (3)
  • 2009年十月 (2)
  • 2009年七月 (4)
  • 2009年六月 (4)

链接表

  • Ideawu
  • LinuxToy
  • on Github
  • Tina的设计天地
  • 风雪之隅
想读
Programming Collective Intelligence
Collective Intelligence in Action
旅行的艺术
操作系统设计与实现(第三版)(上册)
操作系统概念(第六版 影印版)
正读
晨间日记的奇迹
Even Faster Web Sites
构建高性能Web站点
晨間日記的奇蹟
深入理解LINUX内核(影印版第3版)
读过
应用Rails进行敏捷Web开发
追风筝的人
构建可扩展的Web站点
Restful Web Services
PHP 5权威编程

  • Resume
  • Works
  • About
Powered by Wordpress  |  Designed by WebTreats