Main

March 6, 2010

修正Quicksilver的Trigger"无法保存"问题

Quicksilver 是 OS X上的神器。如果没有这个工具,OS X对我的吸引力至少降低1/3。强烈推荐给所有新用户使用,并且去youtube上看看其他用户使用这个工具
的视频,绝对大开眼界。

我推荐给笑来这个软件的时候,他说自定义的Trigger无法保存,一退出就没。我就试了一下,发现果然如此。这实在让人受不了。于是从svn拿了代码debug(这么强大的软件竟然是开源的)

很容易就在QSTriggerCenter.m找到了writeTriggers方法,其中performSelector的时候竟然是afterDelay:10.0,也就是说延迟10秒运行。这样创建了一堆触发器,如果没等够10秒退出了Quicksilver就不会保存了。

这地方的处理很奇怪,这地方保存的数据量和开销都很小,没必要延时。我就给改成了0,编译了一个版本出来。不一定适合所有人,所以也没向Quicksilver提交patch。

有兴趣自己修改的,可修改:
Quicksilver/Code-QuickStepCore/QSTriggerCenter.m

第144行

- (void)writeTriggers {
[self performSelector:@selector(writeTriggersNow) withObject:nil afterDelay:10.0 extend:YES];
}

把10.0修改成0.0就是立刻保存了,用XCode编译,然后把之前使用的Quicksilver中的Plugins目录( Quicksilver.app/Contents/PlugIns/ )复制过来,就可以正常使用了。

不想自己动手的可以下载我这个做好补丁,放入了基本的Plugi的版本 for 10.6 i368 http://dl.dropbox.com/u/3181901/Quicksilver.zip (请自行翻墙)

February 28, 2010

android手机HTC Hero如何使用vpn

大家都知道,官方的HTC hero目前是android 1.5,所以没有vpn功能。据说将来会出android 2.1,就能够支持了。但是默认的pptp vpn还是不怎么好用,在任何平台上,我都比较喜欢openvpn。

android 1.5是有办法使用openvpn的,并不复杂,我的手机已经成功了。方法和解释如下:

原理:

TUN/TAP是做虚拟网络的基础驱动,没有这个,就不会有vpn,无论pptp还是openvpn。而使用tun设备又需要root权限。

所以我们需要:
1 在手机上获得root权限
2 补上缺少的驱动。

整个做法非常安全,基本不会出问题。如果担心的话,可以搜索其他备份方法,很多论坛都有,我这里就不多说没用的了,只说跟openvpn有关的。

具体步骤:

1 把recovery image刷到手机上,好升级rom。

按照这个帖子进行 http://android.modaco.com/content/htc-hero-hero-modaco-com/291486/06-jan-installing-the-patched-recovery-image-on-your-device/

其实大部分人买到的机器,应该已经被刷过了,可以试试关机,然后按住 home键开机,看看是否会进入一个绿色文字的recovery菜单界面,如果已经有了,那就不用刷这个了。但上面那个帖子里面的压缩包仍然值得下载,里面有adb/fastboot等等一系列工具,这些东西本来是在android sdk里面的,如果你不想下载上百兆的SDK,不妨下这个几兆的包。里面有win/linux/mac版本。

2 合适的rom

先看看自己的rom有没有tun.ko模块。方法是用usb连上手机,用上面说的压缩包中的adb shell看看 /system/lib/modules/tun.ko 是否存在。大部分rom是不存在的。

有这个模块的rom是modaco的,其实这也是我觉得最好的一个rom,相当的稳定。搜索 3.1-update-hero-modacocustomrom-core-signed.zip 四处都有下载。然后就是改成update.zip 传到sd卡,关机,按住home开机,进入recovery菜单,选择用update.zip刷机。很多地方都有教程,不细说。

3 让openvpn生效

到 http://sourceforge.net/projects/tunneldroid 下载 openvpn-binary.zip 这个包,解压,用adb上传到手机上。这时候又用到了第一步下载的那
个包了。

先备份一下手机上的的文件

adb remount

adb shell

cd /system/lib

cp libcrypto.so libcrypto-orig.so

cp libssl.so libssl-orig.so

exit

然后上传文件

adb remount

adb push libcrypto.so /system/lib/

adb push liblzo.so /system/lib/

adb push libssl.so /system/lib/

adb push openssl /system/bin/

adb push openvpn /system/bin/

adb shell chmod 4755 /system/bin/openssl

adb shell chmod 4755 /system/bin/openvpn


可以在adb shell中测试一下,直接运行openvpn命令,看看是否能运行,就行了。

4 把vpn证书传到sd卡上。
把xxx.ovpn这个配置文件和证书之类的东西都放在 /sdcard/openvpn目录下,如果没有就自己创建。


5 去market装TunnelDroid
装上就可以看的到刚才放的配置文件,点连接就可以用了。

其他怪问题可以参考这个讨论: http://android.modaco.com/content/software/291919/openvpn-on-android/

在vps上架设openvpn服务的方法,可参考:

http://www.douhua.im/2010/01/06/ubuntu-server-install-openvpn-server/

如果能取得ip,不能连出去,一般是iptable的问题,
试试运行一下

/sbin/iptables -p FORWARD ACCEPT

一般就能行了。

如果正常,看到手机的ip就是vpn的ip了...我们通过购买vpn的形式交了一笔上网税之后,终于享受了正常的手机功能。

December 28, 2008

苹果系统里面的中文字体为什么不好看?

今天决定在mac osx上换一个新账号用,因为旧的账号整个迁移自10.4,出了很多怪异的问题。

把重要的东西备份过来之后,发现字体很难看。我依稀记得当年买回来ibook的时候也有这个问题,但是后来不知道怎么就好了。于是玩命折腾了一通,在两个账号之间来回比较,始终是不对劲。

google了一下,好像很多人有这个问题,不过大部分都是在奇怪为什么safari里面设置了字体之后仍然这样。其实很容易可以看到safari和应用程序用的不是Hei这个字体。

后来终于醒悟了,在System Preferences里面,International中,有一堆语言。如果是日文或是韩文排在简体中文前面,就会出现这情况。因为实际上这时候看到的字体是大字符集里面的汉字。而不是简体中文字体。所以无论怎么调整字体都没用。

这个问题还会影响到Terminal下面的中文显示。

不过似乎如果安装系统选择了简体中文就不会出现这情况,我是用China(English)来安装的,也就是支持中文的英文系统,默认的语言顺序就是日文在前面。

这也是我四处问,发现别人都没这问题的原因。如果有类似情况的,不妨一试。

May 8, 2007

startJVM出错的解决方法

startJVM是加载jvm用的方法。在JPype,apache mod等等很多地方都用到。但凡要用其他语言来加载jvm进程,就要用到这个。
可惜往往会出错。一般都是

Unable to load native library: libjvm.so: cannot open shared object file: No such file or directory

但是libjvm.so确实存在啊。

解决方法很简单:
在/etc/profile里面设置:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/java/jre/lib/i386/client:/usr/local/java/jre/lib/i386
这样就能找到其他的链接库了。就没问题了。倒是简单,但是错误信息是libjvm.so ,而且No such file or directory ,所以很让人迷惑。

April 15, 2007

mac osx 10.4.9 出现的黑框是什么?

如图,注意左上角的黑框:
Picture%203.png

我也是突然出现这种东西的。搞的很郁闷,后来打开声音,发现会自动朗读黑框圈住部分的文字或是功能介绍。猜想应该是辅助功能里面的。于是就去看了一下Universal Access的设置。发现了VoiceOver这个设置。关掉就好了。

这个功能应该是辅助视力有障碍的用户的。用语音来提示当前的操作焦点,挺有创意的。热键是Fn+cmd(苹果键)+F5。

发现这几次osx的升级都对辅助功能有了一些增强。比如说放大镜(opt+cmd++/-),切换成黑白屏幕(ctrl+opt+cmd+8)都很有趣。

增强这个的原因是什么呢?难道是有更多的功能障碍人士开始使用苹果了?不过确实,winxp是没有这么强大的辅助功能的。

January 21, 2007

一些mac osx不引人注意的工具

旅途中无聊,就把osx的applications里面,尤其是utilities下面没用过的东西都运行起来试了试,结果发现了很多以前没注意,但是相当有用的东西。不知道其他mac用户会不会也和我一样忽略这些东西。所以就写出来给大家分享一下吧。

1 Calculator

我竟然没有注意这个计算器,以往需要计算都用Dashboard里面那个小计算器,或是干脆开个终端,跑个python起来,然后直接计算。甚至有时候有一点点嫉妒windows那个计算器了。直到发现了这个,才发现我真是太笨了。

这个计算器功能之强大,远远超过了windows的那个。真让人惊讶苹果的软件,所有都是如此的精致。普通的计算功能自然不用说,这个科学计算器比windows的多了一些功能。这就足够和windows的媲美了。

至于这个计算器的第三种模式:程序员模式,简直是太棒了。如果你写点程序的话,你就发现这东西有多有用。看:可以进行位运算,可以进行byte flip 和word flip,可以直接显示数字对应的ASC II字符和unicode字符,还可以显示一个64位段的2进值情况。

另外,这个计算器还能设置输出精度,而Show Paper Type功能,则能列出本次计算所有步骤,用于检查错误,可以进行各种单位换算,还可以朗读你输入的数字或是结果⋯⋯。

2 DigitalColor Meter
起初以为这个工具没什么,不过就是个屏幕取色器嘛。这次玩了一下才发现,他支持用各种格式输出取色的结果,除了做网站常用的8位hex之外,还有n多我完全不知道是什么的模式。想必对做出版和印刷的用户帮助很大吧。

3 Grab
除了可以用cmd+shift+F3/F4这样的方式抓图,Grab显得更专业点。不仅有常见的抓全屏,抓窗口,抓选择区域,更有定时抓图的功能。

4 Grapher
这是个做数学图表的工具,他可以根据函数来生成图,比如sin(x),cos(x),y=1/x之类的东西,都能轻松生成,自带了n种坐标,平面坐标,极坐标都有。除了2d的,还有3d的图。看函数模版中所提供的那些函数,实在是复杂的不得了。如果你恰好在做和数学相关的东西,不妨试试看。

5 Network Utility

网络工具,包含了Netstat,ping,Traceroute,whois,finger,还有一个端口扫描器。不喜欢用命令行的,用这个很不错。

March 5, 2006

用sql选取日期为某一天的记录

sql里面选择某一天的记录,我一直都不知道怎么作比较好。数据库里面保存的一般是:2006-03-05 0:00:00这样的格式,那么 where xxx='2006-03-05'显然是得不到结果的。看到很多人用 where xxx>='2006-03-05' and xxx<'2006-03-06'之类的方式,很难看。

今天翻postgresql文档的时候发现了以下解决方法:

用date_trunc函数选择精度
where date_trunc('day',xxx)='2006-03-05' 就可以了。

9.9.2. date_trunc

date_trunc 函数在概念上和用于 数字的 trunc 函数类似。

date_trunc('field', source)

source 是类型 timestamp 的值表达式(类型 date 和 time 的数值都分别自动转换成timestamp或者interval)。 用 field 选择对该时间戳数值 选用什么样的精度进行截断)。 返回的数值是 timestamp 类型或者interval,所有小于选定的 精度的域都设置为零(或者一,如果是日期和月份域的话)。

field 的有效数值是∶

microseconds
milliseconds
second
minute
hour
day
week
month
year
decade
century
millennium

例子:

SELECT date_trunc('hour', TIMESTAMP '2001-02-16 20:38:40');
Result: 2001-02-16 20:00:00+00

SELECT date_trunc('year', TIMESTAMP '2001-02-16 20:38:40');
Result: 2001-01-01 00:00:00+00

December 29, 2005

备案促进ipv6发展

当我们想到一些好名字,通常会去注册,然后随便解析个地方,留着以后用。

现在这样不行了。

www.365kit.com 被封ip的事情,今天终于搞清,就是有一个没用的域名转到了这台机器。什么时候转的已经不记得了。这个域名只是随手注册的,甚至已经忘掉了,根本没想起来备案。365kit的两个域名均已备案。而这个没用的域名也没有web站点对应,仅仅是在域名注册商那里填写了这台机器的ip而已。就因为这个原因, 365kit.com服务器被封ip。

千万注意,有未备案的域名转到你得ip,你的ip就会被封,这是目前的中国式规则。

这衍生了2个问题。

1 用这种方法害别人,比任何供给方法都来得快,来得有效。如果觉得还是慢,可以直接举报,似乎立刻生效。
2 注册了新域名,可能主机都没有,ip添什么。

第一个问题,我没想到解决方法。有人来害,只能挂掉了。换ip,不知道目前ip资源紧张的情况会不会进一步加剧,不知道最终会不会推动ipv6的技术发展。很有可能到不了1年就把中国的ip地址都封没了。

第二个问题,比较好解决。我目前几个没用的域名,分别指向了信产部网站,监察部网站,公安部网站。我实在没办法,我不用,但是也不好害别人啊。他们一家人,估计抗得住。只能靠他们帮忙了。

所以,切记,
1 不要得罪人,否则人家注册一个域名指向你,你就挂了。而且无解。
2 注册域名的时候,ip请指向中央部委网站ip,否则会连累别人。

总的来说,靠这种目前无解的攻击方式,确实解决了信用问题,如果你骗人,别人就用这种方法让你挂掉。看来备案还是达到了预想的目的的。非常和谐。

November 16, 2005

只允许cookies进行安全传输

setSecure(true);

给cookie设置了这个属性,就只有https连接才会让浏览器保存cookie,http连接会丢弃掉。可以增强cookie的安全性,

about me:
me.jpg
CC License. Some rights reserved.
署名·非商业用途·保持一致
本站之所有未作特别说明的内容均使用 创作共用协议.
POWERED_BY_MT_3.2