November 14th, 2008
Posted in Application, Web | 3 Comments »
Apple 在刚刚发布的 Safari 3.2 中正式加入了放钓鱼(Anti-phishing) 系统,当访问欺诈网站的时候会自动提醒访问该网站存在危险。虽然不知道 Apple 的数据是从哪里来,不过随便搜索到一个欺诈网站测试了一下:

在访问欺诈网站的时候 Safari 会提醒
这大概是 Safari 目前(和其他浏览器相比)最需要的一个功能了吧。之前 eBay 曾经因为 Safari 没有放钓鱼系统建议用户使用其他浏览器来进行交易,不过我也很少用 eBay,平时也没有碰到过什么 Phishing Site,所以也没有太注意过。
Update: 数据是来自 Google,谢谢 fireyy 提醒。
3 Comments »
October 25th, 2007
Tags: gmail, imap, mail | Posted in Web | 2 Comments »
23 号就在 DownloadSquare 看到 GMail 开通了 IMAP 服务的消息,但是我在用的两个帐号都没有动静。今天看了一眼,终于轮到我啦,嘿嘿嘿。
BTW,这个东西和申请的时间似乎没有关系,因为有一个帐号是 2004 年申请,但是其他好多 2005 年的都已经开通啦。

如果你还不知道 IMAP 是什么(引自 Wikipedia):
Internet Message Access Protocol (一般称为IMAP,以前称作交互邮件访问协议)是一个应用层协议,用来从本地客户端访问远程服务器上的邮件。IMAP和POP3(邮局协议 version3)是邮件访问最为普遍的Internet标准协议。事实上所有现代的邮件客户端和服务器都对两者给予支持。IMAP现在的版本,IMAP第四版第一修订版(IMAP4rev1),在RFC3501中定义。
IMAP 最大的好处是可以在服务器保存邮件的状态。如果在手机,PPC 上读过邮件,那么回家之后在 Mail.app,雷鸟中看这封邮件的时候它就已经是“已读”状态──再也不需要记住哪一封邮件读过,哪一封邮件回复过。以前每次出门都会被这个问题困扰一下。
GMail 的帮助中已经有各个常用客户端的 IMAP 帐号设置方法,我参照这个帮助设置了 Mail 的设置(有一些默认的端口还是要改的)。
希望你的帐号也早日开通 IMAP。;-)
2 Comments »
June 18th, 2007
Tags: Ajax, Chinese, Ruby on Rails | Posted in Web | No Comments »
今天在写 Ruby on Rails 的时候发现,AJAX 传回中文数据会出现乱码。搜索以后发现原来可以这样做。在 controller 中加入
before_filter :set_charset
def set_charset
@headers["Content-Type"] = 'text/html; charset=gb2312";
end
我很懒,直接写到 ApplicatiopnController 中了,搞定。
No Comments »
June 12th, 2007
Tags: Mac, safari, win | Posted in Application, Mac, Web, Windows | 1 Comment »
昨天的 WWDC 2007 内容除了众所周知的 Mac OS X Leopard 之外,Apple 还提供了 Safari 3 Public Beta —— Mac、Win 两种版本。
从 Safari 2 来看,Safari 3 除了 WebKit 版本的更新之外,并没有太多重大的功能改变,而更多的是对现有功能的增强。而一些新功能,比如制作 Web Clip Widget,增强的 PDF 阅读器则可能要到 Leopard 中的 Safari 3 才能看到。
Safari 3 宣传最多的还是它的速度:根据 Apple 的说法,Safari 3 的速度是其他浏览器的 2 倍之多。而且根据 Jeff 的测试报告来看,Apple 也没有吹牛。
Overall Speed:
Safari 3.0 (Win): 398.6 ms
Safari 3.0 (Mac): 412.4 ms
OmniWeb 5.5.4 (Mac): 814 ms
Opera (Mac): 829 ms
Camino 1.5 (Mac): 1415.6 ms
Firefox 2.0 (Mac): 1755.8 ms
Firefox 2.0 (Win): 1768.6 ms
IE 7 (Win): 2101 ms
IE 6 (Win): 2109.2 ms
Safari 2.0 (Mac): 2727 ms
在 Web 应用日益丰富网络连接速度也越来越快的今天,页面渲染速度以及 Javascript 的执行速度对 Web Browser 的影响也越来越大。而许多第三方编译的 Firefox 优化版本也是以优化 JavaScript 执行速度为优化手段之一,让 Firefox 来更从容的面对越来越重型的 Web Aplications。可以说 Safari 3 在这些测试中表现出来的结果还是相当不错的。
Safari 3 Beta 新特性
Beta 版本中的新特性在 Mac 和 Windows 版本中 没有差别,如果 Windows 中的 bug 不算新特性的话。如果一直有在用 Webkit Nightly,可能这些功能并不陌生,但是对于 Safari 2 来说这些小的改变还是能让操作更便捷,比如我期盼已久的标签拖拽功能1。
- 标签拖拽
- 这是一个我期盼已久的功能,标签可以用拖拽的方式来排列顺序(就像在 MyIE、Firefox 中)。不仅仅是如此,还可以用把标签“拖出”标签栏的方法,将标签页放到一个独立的窗口中。而在 Window 菜单中,也有相对应的“Merge All Windows”选项来把所有独立的窗口放到同一个窗口中以标签形式浏览。
- 文字搜索框
- Safari 3 不再使用 Mac OS X 系统的文字搜索框,而是自立门户内建了另一个。看起来好像是 Firefox 中的文字搜索框,不过 Safari 将它放在了页面上边。键入搜索内容后 Safari 会将搜索到的文本高亮显示(页面其他部分变暗,关键字以橘色底白色字显示),在点 Next, Prev 的时候还会缩放一下文字来提醒你。
- 多标签退出提示
- 简单的小功能,在多标签浏览的时候,关闭窗口或者按 Command + Q 退出时会提示你还有其他标签。似乎也有人不喜欢这样的功能,可以在 Perferences 里关掉。
- 拖动改变文本输入框大小
- HTML 中的文本框都会像窗口一样,可以在右下脚拖动缩放。说实在的,我没觉得有很大用处。╮(▔▽▔”)╭
- 为标签组添加书签
- 窗口中有多个标签时,Bookmarks 菜单中会有 Add bookmarks for these x tabs…。还算时蛮实用的一个功能,不过用到的机会似乎不多。新的 bookmarks 组默认是在当前窗口打开所有书签的(Auto-Click),在 Manage Bookmarks 中可以改。
- 设置图片为桌面背景
- 图片的关联菜单中有了 Use Image as Desktop Picture。刚刚从 Firefox 跳船到 Safari 时我很想念这个功能。现在?不太确定。因为已经习惯了把壁纸放到 Wallpapers 文件夹里再设置为壁纸。也许现在我可以先设置为壁纸看看效果,之后再决定是否要保存起来。
WebKit 渲染的改变
其实 WebKit Nightly 总是变来变去,就先说几个和 Safari 2 相比起来显而易见的吧。
- 中文字体可以显示“粗体”、“斜体”等风格
- HTML 元素(按钮、下拉选框、文字框等等)会以 CSS 定义的样式显示,而不是全都套用系统样式(Aqua 按钮,或者是 ShapeShifter 定义的样式)
关于第一点,心里有一些又爱又恨。能够显示文字风格固然很好,但是华文黑体变粗以后看起来真的是很……健壮。尤其是在粗体用得很多的论坛上,一向清秀的页面突然如此五大三粗让我有些不适应。
值得一提的是安装了 Safari 3 Public Beta 之后其他的程序也将使用新版本的 WebKit。
Other side: Win
早起的鸟儿有虫(Bugs)吃。何况是早晨的苹果,bugs 更是在所难免。早上 King 和我交流了一下,发现的 Bug 差不多都一样,不知道是不是和使用系统有关2:
- 无法正常显示 CJK 字符,经常会出现掉字的现象。这个问题有点像 Firefox 早起版本在 Mac OS X 中运行的情况。
- 点“书签”按钮之后程序会当掉。
- 渲染页面的时候可能会有破损。
如果你发现了其他 Bug 也欢迎留言告诉我们。
仅凭第一点,Safari 3 Beta 目前对东亚用户来说就是无用的。(ー_ー )ノ” 在文字渲染方面 Safari 没有使用 Windows 自己的 Clear type,而是在选项中设置了 3 个等级(Light, Medium, Strong)。而(可以显示出来的)文字的字体也像极了 Mac OS X 中的日文字体。
相较 Mac 版本来说,这个 Windows 版本的 Safari 3 Beta 还是很 buggy 的一个程序——就像 iTunes 刚刚移植到 Windows 的时候。不过这么大的 Bug 相信在 Mac OS X Leopard 正式发售之前一定会有修正。╮(▔▽▔”)╭
Apple 想干什么
Safari 要移植到 Windows 在几年前就有传闻,但是一直到 WWDC 2007 之前都没有真正的动作。Google CEO Eric Schmidt 加入了 Apple 的董事会,iPhone 使用 Web 2.0/Ajax 的方式提供第三方支持,iChat 在 Leopard 的截图中表示可能会直接支持 Google Talk(不同于 Jabber)服务,AppleTV 将支持 YouTube,好像 Apple 正在用这种多媒体+网络+服务的方式来占领服务市场。将 iTunes 移植到 Windows 是在为 iPod 和 AppleTV 铺路,那么将 Safari 移植到 Windows 是不是在为即将发售的 iPhone 铺路呢?如果 iPhone 真的是用 Web2.0/Ajax 实现第三方程序的支持,无疑移植 Safari 到 Windows 会便于更多的 Developer 能够针对 iPhone 中包含的 Safari 开发第三方程序。
1 Comment »
May 21st, 2007
Tags: gravatar, plugin, symphony | Posted in Web | No Comments »
Gravatar 是一项提供网络头像的服务,不同于以往各个网站“各自为政”存储自己用户的头像,Gravatar 存储的头像可以用于各种场合(e.g. Blog,网络社区,论坛,etc.)。用户以 Email 地址在 Gravatar 服务器中注册,并且被分配到以这个 email 地址的 MD5 Hash 为基础的头像地址。Gravatar 升级到 2.0 以后免费用户还可以为每个 Email 账户上传 2 个头像并且方便的切换(付费用户可以上传无限多)。
在 Symphony 中使用 Gravatar 服务很简单,因为它在 XML 结构中已经提供了 email 的 MD5 Hash,所以只需要在模板中加入相关代码就可以。
Email MD5 Hash
虽然 Symphony 可以直接输出留言 email 的 MD5 Hash,但是默认设置是不包括这一项的。在后台访问 BLUEPRINTS -> Controllers -> Data Source -> Comments,在 Format Options 中加入 email-hash 这一项。之后,在有留言的 entry 中就可以看到如下 XML 结构:
<comment id="85">
<author>LEMONed</author>
<date year="2007" month="05" date="21" weekday="1">2007-05-21</date>
<time hour="08" minute="49">08:49</time>
<message><p>Gravatar!</p>
</message>
<url>http://www.ilemoned.com</url>
<email>xxxx@xxxx.xxxxx</email>
<email-hash>682aa6c6145a3ff168d5cd6d30120272</email-hash>
</comment>
</entry>
</comments>
其中的 <email-hash> 就是 email 地址的 MD5 Hash,用它做为头像地址的标识就可以取得留言者的头像。
头像地址的格式
Gravatar 的头像地址分为 5 部分:
http://www.gravatar.com/avatar.php?
头像必须以此地址起始(必选)
gravatar_id=279aa12c3326f87c460aa4f31d18a065
将 gravatar_id 的值换为每个人的 email MD5 Hash(必选)
&rating=R
对头像分级的过滤,可以用的值有[ G | PG | R | X ](可选)
&size=40
头像大小(可选)
&default=http%3A%2F%2Fwww.example.com%2Fsomeimage.jpg
默认头像的位置(这个头像不会自己缩放大小,可选)
在 Template 中生成头像地址
有了 MD5 Hash 和 Gravatar 头像 URL 的结构之后,一切问题都迎刃而解了。在 Utilities -> Comments 中加入生成头像地址的语句,比如:
<img src="http://www.gravatar.com/avatar.php?gravatar_id={email-hash}&size=32&default=http%3A%2F%2Fotherside.mimijidi.com%2Fworkspace%2Fimg%2Fblank_gravatar.jpg" alt="Gravatar" class="gravatar"/>
如果添加其他选项注意将 & 转换为 &。
No Comments »
April 7th, 2006
Tags: Mac, tutorial, Web, wordpress | Posted in Mac, Web | No Comments »
为了在 Mac OSX 上安装 WordPress,我们需要什么呢?
下载、安放 WordPress
首先我们要到 WordPress 的官方网站下载一个 最新版本的 WordPress,.zip 格式或者 .tar 格式都可以。将解压缩之后的文件放在 /Library/WebServer/Documents 目录下。/Library/WebServer/Documents 是 Web 服务器的根目录,你可以把它清空,然后把 WordPress 的文件直接放在里边,也可以在其中新建一个目录放置 WordPress(比如 /blog/)。在这里我们新建一个目录吧,就叫 wordpress,这样以后就可以通过 http://localhost/wordpress/ 来访问啦。
安放好了 WordPress 之后,我们就可以开启内建的 Apache 服务器了。
开启 Personal Web Sharing
所谓 Personal Web Sharing 就是 Mac OSX 下的 Apache(为什么不直接注明呢⋯⋯)。
开启这项服务很简单,在 System Performances -> Sharing 中,选中Personal Web Sharing,搞定。打开了Web Server,下一步就是安装MySQL了。
下载安装 MySQL
MySQL 数据库用于存储 WordPress 的各种信息(文章,评论,用户,等等),并且他对个人使用是免费的。最新的 MySQL 版本是5.0,并且 WordPress 2.0 也能很好的支持。
首先到 MySQL 5.0 的下载页,选择适合自己系统的版本下载。现在 5.0 有 PPC 和 x86 两种版本提供下载,下载完成以后 Mac OSX 会自动将 .dmg 文件 mount 到桌面。在 5.0 的安装包内会有4个文件:MySQL 安装文件,MySQLStartupItem(开机自动运行),MySQL.prefPane(System Performance 中的控制 MySQL 的面板),以及一个 ReadMe。首先运行安装文件,再运行 MySQStartupItem 配置自动运行,以及 MySQL.PrefPane。安装完成之后,我们就要开始设置 MySQL,设定用户密码,建立 Table。
设置 MySQL
终于到了最烦琐的步骤。打开终端(/Applications/Utilities/Terminal.app),依次输入以下命令。
cd /usr/local/mysql
sudo chown -R mysql data/
sudo echo
sudo ./bin/mysqld_safe &
接下来我们用 test 数据库来试探一下 MySQL 是否在正常运行。同样是在终端。
/usr/local/mysql/bin/mysql test
如果 MySQL 吐给你下面的信息,就说明 MySQL 已经成功运行了。`
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version 4.0.24-standard
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql>
之后,输入 quit 退出 MySQL。
只让 MySQL 跑起来当然不够啦,我们还要为它重新设定 root 密码,并且创建 wordpress 用的数据库。
在终端中。
/usr/local/mysql/bin/mysqladmin -u root password yourpasswordhere
将其中的“yourpasswordhere”换为您的密码。
创建数据库,终端中。
/usr/local/mysql/bin/mysql -u root -p
CREATE DATABASE wordpress;
quit
这样,MySQL 也设置好了。
开启对 PHP 的支持
Mac OSX 虽然安装了 PHP,但是在默认设置下是未被启用的。为了唤醒沉睡的 PHP,我们需要编辑 /etc/httpd/httpd.conf 这个文件。
我比较喜欢用 Textmate,如果你不习惯也可以用 Vi,Pico 这些系统自带的编辑器。
sudo pico /etc/httpd/httpd.conf
哇~~好大的文件呀。没关系我们要修改的只有2行而已。;-) 让我们把目光投向”Dynamic Shared Object Support”段,在这里你会找到好多好多以“LoadModule”开头的列表,其中有一些被“#”号封印(注释掉了⋯⋯)着。现在我们就要解开php4的封印,删除 #LoadModule php4_module 前的 # 号,最后应该是这个样子。
LoadModule php4_module
接下来我们还要去掉 AddModule 中关于 PHP 4 的注释,最后会是这个样子。
AddModule mod_php4.c
将这两处的注释改掉之后,我们就可以保存文件退出了。为了让这些设置生效我们还需要重新启动一下 Apache 服务器。
sudo apachectl graceful
如果您在运行 Mac OS X 10.4.4 以上!
如果您的系统是 Mac OS X10.4.4 以上,那么还需要另外一个步骤。
在终端中执行。
sudo cp /etc/php.ini.default /etc/php.ini
之后编辑 /etc/php.ini,将
mysql.default_socket =
改为
mysql.default_socket = /tmp/mysql.sock
之后重新启动 Apache (sudo apachectl graceful)。否则您在安装 WordPress 的时候它会很不友好的告诉您:
Error establishing a database connection! This probably means that the connection information in your wp-config.php file is incorrect. Double check it and try again. Are you sure you have the correct user/password? Are you sure that you have typed the correct hostname? Are you sure that the database server is running?
关于这个错误的更多信息您可以参考 Mac OS X Server 10.4: Issues connecting PHP to MySQL。
安装配置 WordPress
最恼人的部分终于结束了。安装 WordPress 的部分和您在远程服务器安装它的步骤应该是一样的。
打开 wp-config-sample.php,编辑基本系统信息。
define(‘DB_NAME’, ‘wordpress’); – Change ‘wordpress’ to the name of the database you created in MySQL (我们已经创建了数据库wordpress,所以这一项应该可以不改)。
define(‘DB_USER’, ‘username’); – 将 username 改为 root。
define(‘DB_PASSWORD’, ‘password’); – 将 password 改为刚才所设置的密码。
完成篡改之后,就可以把它另存为 wp-config.php 啦。
最后一步
在浏览器中运行 WordPress 的安装文件,按照我们的配置她应该是在 http://localhost/wordpress/wp-admin/install.php,如果您将 WordPress 放置在不同的目录请自行更改。整个的安装过程非常简单,WordPress 在询问你一些基本的 Blog 信息(比如 blog 的名字啦邮箱啦月光宝盒什么的)之后会随机生成一个 Admin 的密码,由于是随机生成的,所以现在请务必记好它,登陆以后立即更改。同时 WordPress 也会在 wordpress 数据库中自动创建所需要的表,这些就不需要我们去操心了。
最后的最后一步
那个随机密码实在是太不好记了,赶快到 User 页去改一个密码,或者新建一个用户吧~
大功告成!现在您可以在自己的 Mac 上试做插件、Theme 啦。如果带宽、资源足够,您甚至可以把它当作自己的 blog 服务器。
No Comments »