关于作者

姓名:

性别:其他

出生日期:--

地区:

联系电话:

QQ:--

婚否:保密
用户名:thinkernel
笔名:thinkernel
地区:
行业:其他

日历  

快速登录

+ 用户名:
+ 密 码:

在线留言



访问统计:
文章个数:75
评论个数:17
留言条数:4




Powered by BlogDriver 2.1

Live in Matrix

 

人在江湖 身不由己

文章

iphone的文件系统目录结构
/Library/Wallpaper
系统墙纸。如果把图盘拷贝到这里,就能够直接显示在setting/Wallpaper里。
/Library/Ringtones
系统铃声,道理同上。
/var/mobile/Librar
 手机里安装的软件里面用到的相关数据都在这个目录下面
/var/mobile/Library/SummerBoard/Themes
所有的主题文件都在这里。

- 作者: thinkernel 2008年05月14日, 星期三 00:23  回复(0) |  引用(0) 加入博采

破解并升级iphone
很多人一直鄙视我还在用8210,不是我不想换手机,实在是没碰到自己心仪的,直到我看到了iphone。
拜托姐姐从美国买回来一个,然后开始上网调查破解相关的资料。
破解iphone之前首先要搞明白自己买到的iphone版本。但是因为是没有激活的iphone,只能显示一个电话号码的拨号界面,怎麽办呢?选择紧急拨号,然后输入*3001#12345#*,然后就会出现Field Test界面。选择最下面的Version,在下一个界面里面最上面显示的Firmware version后面就对应了相应的iphone版本。具体的对应关系如下:
1.0.2固件:对应的Firmware version是03.14.08_G
1.1.1固件:对应的Firmware version是04.01.13_G
1.1.2固件:对应的Firmware version是04.02.13_G
1.1.3固件:对应的Firmware version是04.03.13_G
1.1.4固件:对应的Firmware version是04.04.05_G
我的手机显示出的是04.03.13_G,也就是1.1.3版,有点失望,因为买的时候最新版本已经是1.1.4了。
搞清楚版本以后剩下的问题就是如何破解了。目前比较流行的破解方式大概有三种,iPlus、Ziphone和Pwnage。
这三个破解工具都支持到1.1.4的破解,iPlus和Ziphone能够在windows下执行,Pwnage目前只有Mac下的版本,原因一会儿再说明。
iPlus和Ziphone都有一个问题,就是破解的时候首先要把bootloader从4.6降级到3.9,因为用这两个工具无法在4.6下进行破解。但是降级bootloader很危险,很多iphone破解的时候变砖就是因为这个原因。因为一旦降级的时候出现任何意外的问题,iphone就再也无法启动了。更具体的说明可以看看下面的链接。
http://ibbs.tgbus.com/viewthread.php?tid=2608530
当然,网上也有介绍了很多方法可以让iPlus和Ziphone不降级bootloader,但是我觉得都不是很可靠的方法。
Pwnage是目前为止最为可靠的破解方法,因为Pwnage的破解方式做出一个自定义的firmware,然后通过itune刷到iphone上,这个过程非常可靠,因为整个过程和iphone的官方版本升级访方式是完全一样的。唯一的问题是Pwnage目前只有Mac版本,原因是做出一个iphone的firmware需要一些Mac的文件系统操作的库,这些库没有Windows下的稳定版本。有另外一个工程叫winpwn,在把pwnage往windows上移植,但是目前只发布了一个beta版,我可不敢拿我的iphone做实验。
用Pwnage破解iphone需要下载四样东西,pwnage本身、1.1.4的官方升级用firmware,3.9和4.6的bootloader、itune。下载链接如下:
1.1.4的firmware
bootloader
Pwnage

Pwnage目前最新的版本是1.1。
itune就去苹果的官方网站下载吧。我下载的是最新的7.6版。
下一步就是找到一个苹果的机器和具体的破解教程了。下面的链接给了我很大的帮助。在这里面我找到了几乎所有的破解需要的信息。
http://hackint0sh.org/forum/showthread.php?t=36686
破解的简单步骤如下:
  1. 安装itune
  2. 把SIM卡插到iphone上,让iphone链接到Mac机器上,并且进入恢复模式。
  3. 关闭itune,启动pwnage。
  4. 点Browse .ipws,在打开的窗口里面选择下载下来的1.1.4的firmware。
  5. 点iPwner,这个操作开始破解iphone,大概的操作是修改iphone的文件系统,让它能够支持定制的firmware而不仅仅是苹果官方的firmware。这个时候iphone会进入文本模式,显示整个破解过程,而且还会重启,这个过程中绝对不要把iphone和Mac机器的链接断开。
  6. 重启以后的iphone的启动界面会变成菠萝图标。呵呵,说明已经破解成功。然后关闭iphone,再次让它进入恢复模式。呵呵,这个时候恢复模式显示的已经不是iphone缺省的恢复图标,而是一个漫画的Jobs图片了。
  7. 关闭itune,选择pwnage上的IPWS Builder,定制一个firmware出来。在显示的界面里面有3个tab页面,第一个General画面里面除了upload bootloader以外全部选中,第二个Custom Packages里面选择BSD Subsystem和installer,OpenSSH建议别选,因为1.1.4的iphone还没有修改root口令的好方法,选择OpenSSH会给iphone带来安全隐患。BSD Subsystem一定要选,因为有报告说如果不安装这个无法完成破解。第三个Custom Logos里面可以选择修改iphone的启动图标和恢复图标。如果有兴趣的话,可以保留现在的菠萝和Jobs图标。我没选,还是先用原汁原味的苹果吧。点OK按钮,会让你选择3.9和4.6的bootloader的位置以及做出来的firmware应该保存的位置。然后就会定制出一个firmware出来。
  8. 有了fimware以后我们实际上就可以抛开Mac机器了。因为windows下的itune也能够把firmware刷到iphone上去。打开itune,在左边的导航里面选择iphone,然后在右面的画面里面会显示出restore按钮。windows下按住Shift点restore,在Mac下按住Alt点restore,就会弹出文件选择对话框,在里面选择刚才自定义出来的firmware。选择OK,就等着itune刷机器吧。
  9. 刷机器过程结束以后iphone会自动重启,然后显示出BootNeuter的界面,这个时候绝对不要碰iphone,否则会中断BootNeuter对bootloader的操作,很危险。BootNeuter完成自己的工作以后iphone还会再次重启,整个破解过程到此结束。
在iphone的settings->general->about里面,能够看到Version显示1.1.4,Modem Firmware显示04.04.05_G,而不是原来的04.03.13_G了。
破解完的iphone至少还要安装中文输入法,才能满足日常的使用,汉化不汉化对我来说倒是无所谓。推荐WeFit输入法。我觉得比iCosta强。
纯文字版的破解过程可能很难理解吧。没时间了,先把这个写出来,以后我会把图片补上。

- 作者: thinkernel 2008年04月25日, 星期五 01:35  回复(0) |  引用(0) 加入博采

释放mailman保存邮件的空间
邮件列表服务器硬盘空间不够了。主要是几个邮件列表有存信设置,占了很大空间。决定去掉一些很久以前的邮件。方法如下:
  • # remove $prefix/archives/private/listname
  • # 编辑$prefix/archives/private/listname.mbox/listname.mbox,把里面想删掉的邮件删了。
  • # run $prefix/bin/arch listname
简单来讲,mailman对每个邮件列表有两个保存邮件的目录,一个是以邮件列表的名字做的,一个是邮件列表的名字加上.mbox。mbox里面存放了一个同名文件,这个才是真正保存下来的邮件。而跟邮件列表同名的目录里面是存放的便于web浏览的html文件。这些html都是从mbox里面做出来的,所以只要mbox还在,随时可以重新做出来。

- 作者: thinkernel 2008年04月14日, 星期一 17:16  回复(0) |  引用(0) 加入博采

用shell删除和添加文件里的换行符
删除文件里的换行
tr -d '\n' file1 file2

向文件里面每150个byte添加一个换行
fold -b -w 150 file1

- 作者: thinkernel 2008年03月12日, 星期三 19:56  回复(0) |  引用(0) 加入博采

我的2007
2007年是我3开头的第一年。都说三十而立,这一年确实让我经历了很多,值得总结总结。
首先,在工作上这一年其实没有太大变化,带着一个06年中期开始的项目整整做了一年。团队的人数从30多人逐渐扩张到50人。手下可以说精英无数。项目的利润率创了公司记录,单年度营业额在公司不是第一也是第二。要说工作上最大的收获是什么的话,可能就是我现在的这个团队了。跟他们一起工作,看着他们完成一个又一个困难的任务,有一种很爽的感觉。
在生活上面嘛,房子装修了,家具买的差不多了,今年春节前一定要住进去。否则那帮朋友们恐怕都要跟我急了。呵呵,谁叫我这个装修工程拖拖拉拉的搞了一年呢。车子买了,一辆黄色的福克斯。说实话买的时候真是挺犹豫是不是买黄颜色的,内心深处就喜欢这辆黄的,但是周围的朋友都建议我买别的颜色。我这人很在乎别人的意见的,很多时候对自己的意见反倒没有信心。最后还是咬牙坚持的买了黄色的。现在非常欣慰当初的决定。黄色的福克斯很抢眼,因为是安全色,所以开在马路上很安全,以前我担心的容易脏的问题,事实证明黄色是非常耐脏的。
旅游方面,年初去澳洲玩了一圈,这是我自日本之后去过的第二个国家。应为是英语国家,开始还有点担心。到了以后才发现我的英语原来还是能对付的哦。欣慰。20天左右的时间去了悉尼,墨尔本,凯恩斯三个城市。感受到了澳洲的繁荣,天堂般的自然风光,人们悠闲舒适的生活。我想我还会再去的。因为工作的需要我几乎每个月都要出一次差,借着出差的机会第一次到了大连这个海滨城市。第一次去大连我就喜欢上了那个地方。去年一年算下来我一共去了4次大连。看样子我真是喜欢上了这个城市。在我去过的城市中,最喜欢的就是横滨,更细一点说,最喜欢横滨的樱木町一带的海港风光。而在国内我所见过的最像那里的就是大连了。随着这个项目进入测试阶段,恐怕08年不再会因为工作的机会去大连了,但是关于大连的美好回忆会留在我的记忆里的。去年年末的时候借着去日本开年会的机会,去了总社在轻井泽的疗养院。在那里我领略到一种以前完全没有见过的自然风光。运气很好,去的那天晚上下起了大雪,一丝风都没有的轻井泽,雪静静的下着,我仿佛到了仙境。早上起来走在雪白的世界里,看着周围一栋栋半埋在雪里的欧式别墅,仿佛到了欧洲的小镇。据说轻井泽这个地方当初就是法国人觉得和法国的某个地方非常的象,于是开发出来的一个度假胜地。在轻井泽的王子饭店滑雪场,我第一次滑单板,摔得好惨,但是也成功的让自己又爱上了一项运动。回国之后就去北京的南山滑了一次雪。本来对国内的雪场没有很期待的,但是去了以后感觉真的不错哦。呵呵,写到这里,我发现07年我真是过得还蛮爽的嘛。
说说让我不爽的感情方面吧。07年我认认真真的爱上了一个女孩。投入的爱了一次结果却让我很心痛。但是也是颇有收获的。终于知道原来关心别人,为别人付出也是很快乐的事情。也明白了单方面的付出得不到回应是没有任何意义的。知道了女孩子原来对一些我自己根本不在乎的细节是多么的在意。也让我尝到了失恋时心痛的感觉。爱她就要接受她的全部这个道理,真是说着容易做起来难。
我的07年就这样匆匆忙忙的过去了。有很多高兴的事情,也有很多伤心的事情,有很多满意的地方,也有很多不满。
展望一下08年吧。
08年对我来说最重要的一个字就是“戒”。要戒骄戒躁。戒掉我的坏脾气,戒掉自我为中心的性格,还要戒掉生活上的各种坏习惯,比如说晚睡晚起啦,我就不一一列举了。
08年的我要让自己的生活更小资一些。更加追求生活的质量。让自己过得更自由一些。让我的新房住的更舒服一些。
08年我一定要把单板学会。争取高尔夫能够入门。
08年我想去一个新地方旅游一次。具体什么地方还没想好。
08年感情方面嘛,随缘吧。

- 作者: thinkernel 2008年01月12日, 星期六 22:08  回复(3) |  引用(1) 加入博采

subversion早期版本的删除
最近一个版本管理服务器发生了硬盘空间不够的问题。调查结果是其中一个版本库居然有47G,占据了大部分的服务器硬盘空间。经过跟使用的公司协商,决定采用删除版本库早期履历的方式缩减版本库尺寸。
具体作业过程如下:
  • 准备工作
停止apache服务器,修改版本库目录路权限为root的方式,阻止所有的用户使用该版本库。重启apache,这样可保证其他版本库的用户继续使用。
  • 备份原有版本库。
版本库全备份可以采用svnadmin dump和svnadmin hotcopy两种方法。在整个过程中两种方法都会用到。首先作为版本库全备份,以防将来出现作业错误时可以立刻恢复原有版本库的操作,建议使用svnadmin hotcopy。一方面这样的备份速度比较快,另一方面备份的结果就是一个可以立刻使用的版本库,在需要恢复的时候直接拷贝回去就行了。具体命令如下:
svnadmin hotcopy --clean-logs /path/to/repo ./hotcopy >hotcopy.log 2>hotcopy_err.log &
备份的结果就是一个目录,尺寸基本和原版本库相同,47G。
  • dump版本库需要保留的版本。
通过svnlook youngest /path/to/repo命令可以看到版本库最后的版本是多少。我要作业的版本库是14079。经过跟对方公司协商,决定保留10000到14079之间的版本。因此需要从版本库把10000以后的版本dump出来。具体命令如下
svnadmin dump /path/to/repo -r 10000:14079 > repo_dump_10000-14079.dmp 2>repo_dump_10000-14079.log &
dump出来的文件大约34G。
查看一下日志文件,确定所需要的版本都被正确的dump下来了。
  • 重建版本库
rm -rf /path/to/repo
svnadmin create /path/to/repo
注意这里面没有使用 --fs-type bdb参数,因此创建出来的版本库是FSFS后端的。后面还会继续解释为什么这么做。
  • 重新导入新版本
svnadmin load /path/to/repo < repo_dump_10000-14079.dmp > repo_load.log 2>repo_load_err.log &
检查一下日志文件,看看load是否成功。用svnlook命令看看load以后版本库的最新版本。
  • 修改版本库权限
chown -R apache:apache /path/to/repo
到此为止版本库的历史版本删除工作就结束了。需要注意的是,新建出来的版本库的最新版本应该是4080。另外,经过观察,新创建出来的版本尺寸只有2.7G。这个结果曾经一度让我怀疑load没有成功。但是事实上确实如此。需要说明的是,原来那个占了47G的版本库就是BDB格式的。我又试着创建了一个BDB后端的版本库,用同样的方式把dump文件导进去,结果版本库的尺寸接近30G。而且导入的速度来看也明显比向FSFS后端版本库导入要慢很多。大概多了一个多小时的时间。可见BDB后端和FSFS后端版本库在某种情况下的尺寸差距惊人的大。手册是虽然也说了FSFS会比BDB小一些,但是绝对没想到会小那么多。subversion现在主推FSFS格式是有道理的。但是我总觉得毕竟BDB历史更悠久一些,也更稳定一些。所以在今后硬盘空间不紧张的前提下,我还是倾向于使用BDB后端格式。

- 作者: thinkernel 2007年12月13日, 星期四 15:29  回复(0) |  引用(1) 加入博采

蓝牙相关的一些技术名词
最近想买个蓝牙耳机,上网查的时候发现好多术语我都不知道,简单的调查了一下。

A2DP(Advanced Audio Distribution Profile)通过蓝牙传递高品质音乐的一种协议。

HSP(HeadSet Profile),和A2DP类似,但是HSP是同步传送,A2DP是异步传送,所以A2DP的音质会更高一些。HSP一般用在手机无线耳机上。

HFP(Hands-Free Profile)一般用在车载移动电话支持上。比如如果汽车音响系统支持此功能,就可以在开车的时候,通过汽车音响系统打电话和接听电话。跟HSP类似。

AVRCP(Audio/Video Remote Control Profile)通过蓝牙无线控制AV设备的协议。

BIP(Basic Imaging Profile)通过蓝牙传送图像的协议。

BPP(Basic Printing Profile)通过蓝牙和打印机交互的协议。

这里有蓝牙通讯相关协议的一些说明。

- 作者: thinkernel 2007年12月4日, 星期二 14:25  回复(0) |  引用(1) 加入博采

Maven
从客户那里听说的maven。据说他们要用maven做开发管理。听说maven和ant是有可比性的。从网上查了一下资料,maven好像不仅仅是一个工程管理工具,似乎还有软件发布周期的管理功能。但是和ant很类似,都用xml做管理配置文件。而且都是apache的工程,所以功能上应该不会有重叠。
具体的功能还要进一步的看。
先记下几个学习用的链接吧。
http://www.techscore.com/tech/ApacheJakarta/Maven/index.html
一个教程。
http://maven.apache.org/index.html
工程主站

PS.最近blogchina总是访问不到。有点担心这个网站的服务了。计划换个地方。

- 作者: thinkernel 2007年11月8日, 星期四 23:01  回复(0) |  引用(1) 加入博采

关于JBoss的一些图片
  1. architecture
  2. transaction coordinates
  3. optimization

- 作者: thinkernel 2007年09月1日, 星期六 22:26  回复(0) |  引用(2) 加入博采

关于办公流系统构架的一点想法
从很久以前开始,我就觉得用关系型数据库来作办公流系统的数据存储不是一个好的解决方法。因为办公流系统的两大问题——流程和权限,用数据库来存储的结果,就是表里面无限多的flags。
实际上办公流的数据流和权限是一个树状结构,而不是关系结构。因此采用树状结构的数据库反倒更容易表达。
另外还有一个问题就是现在的办公流系统的传统做法是一条数据在流程里面的每一次转发,最终都是通过对数据库表里面某一条记录的某一个flag作设置来实现的。这种集中管理模式非常不利于流程的设计和控制。可以比较一下最基本的办公流程系统——邮件系统。这是一个典型的分布式系统,没有中心的数据库。邮件服务器只负责转发。流程可以随意定制。完全有人来控制。当然,这种方式并不利于办公流程的管理。但是全中央式的办公管理又会导致流程过于僵化。理想的状态永远是一种折中方案。
可以考虑模仿邮件。首先制定出一个树状的权限和组织结构数据库。然后在办公数据每次转发之前,查询树状结构决定下一个节点,流程处理者判断系统作出的决定是否正确,并拥有最终的决定权。流程信息不是存储在数据库中,而是存储在数据本身。负责流程控制的子系统的功能接近于邮件服务器的功能。只要读取数据本身就可以了解这条数据的下一个节点是哪里。
一点简单的思路,还不完善。

- 作者: thinkernel 2007年08月2日, 星期四 15:05  回复(0) |  引用(2) 加入博采