New Soul && Bloom!

关于Bloom!:
Bloom!是视觉中国网站新社区的项目,也许和豆瓣有点点相似,不过不会是简单的模仿,
更不是ucenter home那种肤浅的克隆…
Bloom!的第一个版本我已经想好了,名字是Daisy.

关于New Soul:
Doggy2 的代码名称
这是为Bloom!重新设计的开发框架, 力求颠覆以前的设计思想, 达到实质的突破.
构建成本高(相对于普通的PHP coder),但是使用成本低(使用预搭建的平台服务).

BTW: 下周想让扑扑给NewSoul和Bloom!设计下logo,那就非常好了.

PS:
1. 感谢 Yael Naim, 感谢 Apple Air, Doggy2 有了满意的名字.
2. 即便无聊透顶,现在非常厌烦去一些什么论坛…. 太多的浮躁
还是自己修炼内功为佳

I’m a new soul I came to this strange world hoping I could learn a bit about how to give and take
But since I came here felt the joy and the fear finding myself making every possible mistake

La-la-la-la La-la-la-la La-la La-la-la-la La La-la-la La-la-la
La-la-la-la La-la-la-la La-la La-la-la-la La La-la-la La-la-la

I’m a young soul in this very strange world hoping I could learn a bit about what is true and fake
But why all this hate try to comunnicate finding just in love is not always easy to make

La-la-la-la La-la-la-la La-la La-la-la-la La La-la-la La-la-la
La-la-la-la La-la-la-la La-la La-la-la-la La La-la-la La-la-la

This is a happy end cause’ you don’t understand everything you have done why’s everything so wrong
This is a happy end come and give me your hand I’ll take your far away

I’m a new soul I came to this strange world hoping I could learn a bit about how to give and take
But since I came here felt the joy and the fear finding myself making every possible mistake

La-la-la-la La-la-la-la La-la La-la-la-la La La-la-la La-la-la
La-la-la-la La-la-la-la La-la La-la-la-la La La-la-la La-la-la

La-la-la-la La-la-la-la La-la La-la-la-la La La-la-la La-la-la
La-la-la-la La-la-la-la La-la La-la-la-la La La-la-la La-la-la

春暖

@x

一切都会好起来的

虽然 还会乍暖还寒

愈加拂面的杨柳清风

和树上的朵朵迎春

在对我们轻声曼语

冬天已不再

春天来了!

Safari3.1的新特性:CSS Animation

来自webkit的blog:
CSS Animation

太cool了,iphone的网站应该为此优化。

Working hard

对于豆瓣的推荐和相关度算法非常满意, 晚上到家开始搜集CF相关的资料,准备自己实现一个简单的推荐系统.
我自己感觉豆瓣应该不仅是user-based或item-based这么简单,也许原来的算法是基于item-base改进,
不过既然有了友邻,相信好友的权重因素是要考虑进去的.
此外,上周我决定放弃改进Doggy 1.x, Doggy 2.0提上日程.
2.0将完全放弃1.0的框架, 主要目标是运行效率,精简代码.
2.0将不是一个PHP的框架,而是一个多语言的混合体,包括C,Perl,Java,Bash. 主开发语言是PHP和Perl,此外将绑定特定的平台进行优化:
PHP 5.2.6(FPM/MysqlND补丁)
Nginx 0.6.x
Mysql5
ImageMagick(考虑用专门服务进行处理Magick或Perl)

Doggy2注定不会通用;-).

iphone自制铃声

首先,在iTunes里将mp3转换成AAC,在Finder显示,将后缀名改为m4r.
然后将铃声复制到iphone里的 /Library/Ringtones/ 下
由于是系统文件,需要使用root权限.
可用scp,不过有更简单的办法,那就是安装
AFP with Bonjour

Bonjour 是非常棒的协议,比ms的即插即用可强多了.

之后,你就可以在finder里的网络里发现iphone了.
链接后可以像操作本地硬盘一样操作iphone,强烈推荐.

可以通过这个源来安装AFP with Bonjour

http://homepage.mac.com/hartsteins/copycoders/copycoders.xml

效果:
10.png

Apple发布了Safari 3.1

今天有了新的更新,apple发布了safari 3.1 . Apple称新的版本支持新的CSS和HTML5特性,与此同时还有安全更新.
以前beta版本的时候就称3.1因为使用了新的引擎所以速度和稳定性将更快.
前几天看iphone的开发视频时,就发现了3.1的一些特性(好在这些特性多数都是遵循w3c标准).

更新完没发现什么太大的变化,不过增加了一些对开发有用的,比如原先的debug在偏好里有正式的选项了.
开发菜单可以更改用户agent,这样可以方便的访问一些iphone专用的网站了.

此外,在安全选项多了数据库, 应该是客户端存储的.
有时间可以试试这些新的东西.

补充下,safari的js和html渲染速度还是遥遥领先其他的浏览器的beta版本:
PS:
Safari一直是我的首选浏览器,尤其是3.0后有了debug和网页探测器后,基本上不用firefox了.
Firefox比起safari, 太慢太重了.
从上面的测试可以看到, IE的用户太可怜了. 难怪公司里都说打开视觉首页慢, 一到我这里就嗖嗖的.

Safari sunspider 测试结果

acid3_safari_31.jpg

acid3_ref_sm.jpg

Vista下IE5,IE6,IE7的共存绿色软件

给我老婆找的:
IE Tester

虽然网上有很多IE6,IE7的共存方法,但是都是针对XP系统的,到了Vista就没戏了。
这个IE Tester就可以在Vista上跑,是一个多tab页的浏览器,每个tab页可以指定使用的IE内核。
因此只要一个Tester,就可以同时搞定IE6/IE7(你可以分别打开2个标签页,使用不同的IE内核)。

这个东西给我换了一杯绿茶。。。

小议Perl 数据结构 (概述)

这篇文章是01年在linuxforum发的帖子,即使现在看来还是有用的,这说明Perl这些年从语言层面并没有太多的变化,perl6迟迟没有进展,让人有些失落,不过这说明perl的确很成熟,Larry Wall,牛.

不论使用什么语言来设计程序,数据结构都不能忽视,因为数据结构是你整个程序的基础元素。
使用PERL相对与其他的语言而言,数据的定义似乎更加容易。因为PERL里面的数据类型似乎只有3种表现形式:标量,数组,hash.标量不用说,是最简单和基本的形式,数组和hash则相对复杂和强大一些。一般而言,使用数组可以实现类似堆栈、队列、链表之类的数据结构,而hash则可以实现记录、查询表、或者更为复杂的结构。
因此,我们首先面临的问题是,既然我们已经应用@array,%hash CREATE了我们复杂的数据结构,我们如何去应用,我如何去存取这些复杂结构中的每个数据元素?我刚刚写程序的时候,这点常常让我迷惑,有时候不得不写一些TESTING CODE去验证我的代码,有时候觉得真是一件痛苦的事情,因为,往往正式的代码没有写几行,而相应的测试代码是它的几倍。(BTW,根据XP的准则,我这样做到也是很正确,不过那时并没有知道XP)

下面简单介绍一些常用的赋值形式:

1)2维数组
$foo[$row][$col]=’test’;
这是典型的两维ARRAY,头一个$ROW,索引出的实际上是一个数组的引用,而后一个$COL则是对这个数组引用复原后索引到的真实数组元素的地址。
以上,数组的索引都是整数,多维数组实际上就是数组的数组,我这样认为。

2)HASH OF ARRAY
$foo{’night’}[1]=”8 Mar “;
这是一个数组的hash,每个hash的KEY 对应的值是一个数组的引用。因此,你可以用这种形式来构造一条记录,hash的key是记录的关键子,数组是的元素就是这个记录中的每个字段。

3) $my_friends[$i]{’name’}=”Night Sailer”;
$my_friends[$i]{’age’}=24;

这种是hash的数组,每个数组的元素都是一个hash的引用。同2)一样,这种结构可以用来创建记录,
与2)不同的是,字段的个数与名称都是已经确定了,当然,简单明了也是这种结构的好处。

4) $lookup{’night’}{’company’}=’nightsailer’;
$lookup{’night’}{’home adress’}=’Beijing Sanlihe road’;
这是hash of hash,前面hash的key中存的是另一个hash的引用。
这种结构是一种典型的查询表了,你可以根据名字索引到某个记录,然后根据字段名索引到相应的值。

5)$members{’linux’}{’progamming’}[0]{’name’}=’Perl’;
$members{’linux’}{’progamming’}[0]{’function’}=’gettime’;

这是一个比较复杂的结构,一般来说,记录中某个字段或元素又是引用了另外的一个结构的。
依次类推,使用array和hash就可以构造出极其复杂的数据结构。

6)$crazy->{FH}->print(&{$crazy->{myfun}}($crazy->{LIST}[0]))

这是一个很疯狂的数据结构,是吧。
这个结构首先是一个hash,hash中的每个key 分别存放着一个文件句柄,一个函数的引用,一个列表的引用,上面的代码,就是用列表中的第一个元素作为参数回调myfun函数,然后把输出结果打印到记录中指定的文件句柄,也就是打印到一个文件中去。

呵呵,有一些头疼是吧,下面是一些提示和技巧,你可以不遵守这些约定,不过如果你作了,会减少你调试时候的麻烦:

Read more

回忆::LinuxForum

今天偶尔搜个东西,竟然搜到我在99年和2000年左右在linuxforum发表的帖子,不禁感慨万分.

Linuxforum现在可能知道的人不多了,不过想想10年前,那是红旗招展,赫赫有名阿,玩Linux的票友没有不知道的.
我是99年左右入住,之前好像是在网易社区(现在好像我的网易社区的帐户已经没了),在往前到97年好像是玩IRC,
BBS的吧(那真的是BBS,电话拨号和telnet上去的那种,不是现在这种论坛,呵呵),
比较喜欢玩IRC时候的那些网友,那一代的网友,比较纯洁.呵呵.
有个人行的哥们,我们断断续续联系了7,8年,终究也没见上面,一直是ICQ和Email,偶尔也发个短信什么的.
不知道从哪年开始就断了….

看了下以前的帖子,呵呵,都是linux和perl的,当年算是比较早接触linux 并拿来作桌面的,
中文化还是个问题. 当年有些网友现在都成了各行的牛人了.

看看那些帖子,对自己当年那些年少轻狂的日子有些惭愧,呵呵.

留个纪念:
我在LinuxForum发过的帖子

升级iphone到1.1.4的小白鼠经历

最近作了一次小白鼠,将自己的iphone升级到了1.1.4.

由于买时iphone的破解是供货商给作的,版本是1.1.2,不过1.1.4已经出来很久了,总觉得应该升级一下,
对于其中可能出现的问题没有太大的思想准备,毕竟自己也是作开发的,用mac也时间不短了,再说了,正打算要作
iphone的开发, 连系统破解都搞不定,那还怎么混阿.

网上铺天盖地的教材都是windows下的,我则用mac,无法参照. 不过,既然是apple的产品,怎么能没有osx上的
破解工具呢?
很快就找到2个,一个是iNdependence,这是mac专属的,可以在
google code找到,
据说这个是最早完整破解1.1.4的,其作者也是iphone-dev的成员.
另一个是iPlus2.0,这个有windows版本和osx版本, 命令行界面.

我先用的iNdependence,毕竟是纯正的osx应用程序.

114-1.gif

开始了:

1.将iPhone链接上
2.在itunes中点击恢复,询问时点击是否,等待,祈祷不要crash,大概3-5分钟的样子,软件和固件都恢复了,自动reset iphone
3.此时itunes提示iphone没有激活.
4.运行iNdependence 1.4beta5,出现download firmware…时间太长,没有动静,杀死…
5.打开一个终端, 杀死iTunes helper.

6. 重新运行iNdependence,点击Active Phone ,此时在创建RAM DISK时出现了错误:无法释放firmware

图片 1.png

我怀疑是刚才的firmware没有下载完整导致

7.于是,打开用户目录下的资源库下的iTunes下的iPhone Software Updates,找到iPhone1,1_1.1.2_3B48b_Restore.ipsw,一看,果然,才1.4Mb,

图片 2.png

删除,重新点击Active Phone

才是重新出现download firmware的界面:

图片 3.png

下载的速度及其慢,160M阿,何年何月,于是又kill了, 从别的地方下载了1.1.2的firmware,放到刚才目录下,覆盖之.

8.重新运行iNdependence,再次激活:此时可以正确建立RAM DISK,建立完毕,报错:无法进入恢复模式:

图片 5.png

退出,重新运行.

9.再次激活,又出现刚才的错误,不理会,再次点击激活,终于出现了等待Jail break的画面,不过不幸的时,并没有能够进入破解画面,重新强制杀死,再来….
这次直接出现了jailbreak画面, 不过iphone出现了白苹果,然后出现了这个画面:

图片 6.png

不过,很不幸, iNdependence直接又挂了,重新运行
依然….

没有办法,用itunes恢复,重新来一次,仍然异常退出..

我开始怀疑是我的leopard的问题.
于是第二天把另一个小白拿来,这是tiger的系统,
果然,好了.

不过,虽然没有非法推出,并且成功激活,但是在解锁SIM卡的时候,
依然重复了2次,第一次是解锁失败,第二次才成功.

测试了一下,基本上没有问题,不过还没有中文化,无法输入中文,需要作一下中文化.

不过,我对iNdependence并不太满意,毕竟过程太曲折了.
另外,它使用的是1.2的baseband,所以无法支持新的定位功能.

因此,我决定用iPlus重新尝试, iPlus解锁SIM需要将bootloader降级到一个虚拟的
3.9的loader,以后可以重新升级到4.6, 至于baseband仍使用1.4的.

iPlus的安装非常简单,直接运行 ./iplus -u即可:

图片 9.png

iPlus最大的好处是可以自定义安装的东西,它称之为payload,
在其目录下有一个payload.zip文件,将其解压后,可以看到里面的安装包,
通过修改do_payload.sh即可,do_payload.sh是用shell脚本写的,非常简单.
实际上可以将自己需要安装的软件tar一个包放进去,然后增加解压的步骤即可.

iPlus的原始安装是没有中文支持的,所以需要用一个国际版的payload.

不过我发现最后还是有一些问题,所以又手动将一些语言包scp到iphone上.

这些对于unix熟悉的人还是比较简单的.

www.weiphone.com出了WePlus,实际上是一个网友将iPlus的windows的批处理文件汉化了一下,
它的payload.zip应是iPlus巴西版的.

可以从fs2you下载

我将里面的cn_kit.tar和zh_CN.tar scp到iphone,然后揭开后,就可以使用中文包了.

另外.里面的installer的PackageSources.plist还是不错,覆盖到iphone上省得输入了.
(注意是要复制到/var/mobile/Library/Installer/ ,不是root,1.1.4的用户是mobile )

Next Page »