home  -  about me  -  2009  -  2008  -  2007  -  2006  -  2005  -  nerd's substance  -  itch  -  shuffle  -  what
Mac  -  Photos
  Livid's Paranoid - nerd's substance
do more finger exercises

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
PAC & SSH
之前我一直在用 FoxyProxy 来配置 Firefox 的代理功能, FoxyProxy 很强大, 但是有一些问题很麻烦: FoxyProxy 的配置貌似没办法在多台机器之间转移, 太多的鼠标操作(这或许不算是个问题, 但是如果能够通过编辑一个文件来实现同样的功能的话会好很多, 因为纯文本文件很容易被编辑和复制, 并且也很容易放进版本控制系统).

最近发现了 PAC 文件可以完整地取代 FoxyProxy 而且有非常多的优点. PAC 是 proxy auto-config 的缩写, 实质是一段纯文本的 JavaScript, 实现了一个叫做 FindProxyForURL(url, host) 的函数, 这个函数的返回值就是代理服务器的信息. 比如下面这个是我目前在用的 PAC 文件的内容:

function FindProxyForURL(url, host) { if (shExpMatch(url, "*.wikipedia.org/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.apple.com/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.tumblr.com/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.soup.io/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.pandora.com/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.last.fm/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.adobe.com/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.photoshop.com/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.google.com/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.googlecode.com/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.blogspot.com/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.appspot.com/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.acer.com/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.demonoid.com/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.alexa.com/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.wikimedia.org/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.flickr.com/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.yahoo.com/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.zend.com/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.aptana.com/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.uncyclopedia.tw/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "uncyclopedia.tw/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.uncyc.org/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.youtube.com/*")) { return "SOCKS 127.0.0.1:7777"; } if (shExpMatch(url, "*.webarchive.org/*")) { return "SOCKS 127.0.0.1:7777"; } return "DIRECT"; }

这个函数的语法可以看 Netscape 网站上的文档, 你可以在 return 处使用 PROXY 或者 SOCKS 来选择 http 或者 socks 协议的代理, DIRECT 的意思即不使用代理直接连接. PAC 文件被几乎所有的主流浏览器支持, Mac OS X 操作系统的 Network 控制面板中也有对 PAC 文件的支持.

在我本地的配置中, 我是用 ssh 连接到一台美国的高速服务器, 并打开一个 SOCKS 通道的方式实现加密的代理通讯. 你可以在 *nix 操作系统的命令行中运行:

ssh -D 7777 username@remotehost.com

就可以在本地的 7777 端口打开一个 SOCKS 代理. 这种方式除了可以实现无障碍的访问之外, 如果代理服务器足够快, 那么甚至可以用来加速访问, 比如我就用这样的方式加速在 Apple 的网站上看新电影的预告片.
[ more ] - 2008-05-21 03:06:17 - 16662+15600
geonames.org
geonames.org 是一个关于地理信息的宝库。除了提供以 Creative Commons 方式授权的数据库的自由下载之外,还有非常强大的 Web Services 可用。

比如,各类城市和机场的各种名字,代码及经纬度都可以在这个数据库中查到。对我最近在做的一个项目十分有帮助。推荐给大家。
Technorati Tags: ,
[ more ] - 2008-02-09 01:41:43 - 5848+14879
$nc->match($keyword);
footbig Notes API 更新到 V0.1.9 版本。

增加关键字匹配功能。

在最近这段时间,搜索质量有所改进。我们对存储在 footbig Notes 中的数据进行了更好的索引(包括对中文分词的支持)。所以现在 footbig Notes API Server 开始支持一个新的方法(method):match。相应的 PHP client 也进行了更新。更新后的文档和 PHP client 在这里:

http://footbig.com/notes/api/doc
[ more ] - 2008-01-18 16:16:10 - 4488+8795
footbig Notes API V0.1
footbig Notes API V0.1 - http://footbig.com/notes/api/doc

Announcement - http://mac.6.cn/topic/view/759.html

Limitations - http://mac.6.cn/topic/view/760.html

PHP client and demo code - http://mac.6.cn/topic/view/761.html

为什么一些非常简单的 Web Application 也要使用到关系数据库这样的资源怪兽?

那么使用简单的文本文件来保存数据?那么可能会在 server crash 的时候和 Web Application 一起承受风险。

Amazon Web Services 试图用一些全新的理念和技术来解决这些问题。并且在上面构建商业模式。

我非常认同 Amazon 所认定的方向。于是我也开始了自己的尝试。

一切刚刚开始。任何的 API 的价值将由构建在其上的应用程序来决定。

对于一个 hacker 而言,设置主机商提供的 MySQL 服务器是没有太大快感的,生命有限,我们应该将注意力和时间放到那些真正令人有激情的创新上。
Technorati Tags: , , ,
[ more ] - 2008-01-13 11:04:33 - 4616+8841
很黄很暴力
下图是在过去 30 天中,在 Google 里“很黄很暴力”这个关键词和“奥运”这个关键词的搜索量对比,红色的是“奥运”,蓝色的是“很黄很暴力”:

很黄很暴力

当一个概念通过这样的方式确立的时候,恐怕是不可能再连根拔起了。而研究这样的事情的形成和发展也挺有趣。

整理了一些关于“很黄很暴力”的东西,现在甚至连 Google Trends百度指路 里都有数据了。还能说什么呢?确实很好强大!

哈哈。Nice boat.
[ more ] - 2008-01-06 15:36:11 - 14464+8787
Firefox 3.0 Beta 的 CSS background 问题
自从 Firefox 3.0 发布了第一个 Beta 版本之后,我就开始用它来测试我开发的各个网站在上面的表现了。其中,V2EX 在 Firefox 3.0 上出现了一个很奇怪的问题:在页面加载完成之后,页面的 main column 和背景图片无法对齐,会出现一条宽度 10px 左右的位移。

周日下午和 Leechael 一起花时间看了一下这个问题,因为 Firefox 3.0 发布在即,而我们又都是苛刻的人,当然不希望页面上有任何期望之外的事情发生。

V2EX 的背景图是一张从高处拍摄的城市景色,使用 background: #000 url("/img/bg_city.jpg") no-repeat fixed 50% 0; 方式在页面上定位。当 viewport 的高度发生变化导致滚动条出现和消失的时候,Firefox 3.0 Beta(或者更确切地说,这个版本的 Gecko)并不会动态更新 background-attachment: fixed 情况时 background-position 和 viewport 的对齐。

这有可能是这个版本的 Gecko 的一个 bug,同样的不符合期待的行为在 Firefox 2 及其他主流浏览器上是不存在的。

所以最后我们针对这个情况,在 V2EX 中,如果检测到用户在使用 Firefox 3.0 Beta 访问,那么一句特殊的 CSS override 就会生效。这个方式不够环保,期望 Firefox 3.0 正式版中能够解决这个问题吧。我在 Mozilla 的 Bugzilla 里搜索了一下,似乎关于 CSS background 属性的问题不少。
Technorati Tags: , , ,
[ more ] - 2007-11-25 01:29:46 - 5754+5014
iPhone Web App Dev
  • 由于不需要考虑跨浏览器兼容性,所以可以非常放心地在 CSS 甚至 HTML 中 hard code 以 px 为单位的数值
  • 客户端的颜色显示能力是固定的,因此可以 tune 最佳的颜色值出来
  • 支持大量的 CSS 3 特性,并且很多 native iPhone experience 依赖这些 CSS 3 特性
  • 支持 canvas
  • 支持透明 PNG
  • 完整支持 JavaScript 的很多特性
  • 虽然目前桌面版本的 Safari 支持 SVG,但是 iPhone 上的版本却还不支持,或许会在以后的版本升级中进入
So,在 iPhone 上开发 web app 是很愉快的事情。同时,我订阅着 The Burning EdgeSurfin’ Safari 这两个 Blog,看着那些刚刚诞生的技术在几个月之内就被几百万用户使用,也是很愉快的事情。

如果你也在 WebKit 技术方面有深入研究,那么我这里有一份你或许会感兴趣的工作。工作地点可以在北京或者上海,需要的就是 Mac / iPhone 上的开发经验(WebKit / UIKit / Cocoa / CoreImage)及苛刻的审美观。如果你有兴趣,电子邮件和我联系吧,livid at 6.cn。
[ more ] - 2007-11-19 18:12:46 - 40993+5483
iPhone.6.cn 演示视频
国内的朋友看 6.cn 上的版本会比较快:



国外的朋友可以看这个 YouTube 上的版本:



用你的 iPhone 或者 iPod touch 访问 iphone.6.cn 即刻体验吧。
[ more ] - 2007-11-13 09:53:39 - 59753+4885
如何为 MacBook 加内存


关于 MacBook 适用的内存类型,可以看 Apple 官方网站上的文章:

http://docs.info.apple.com/article.html?artnum=303721
[ more ] - 2007-11-05 10:05:17 - 35413+4854
最容易的 iPhone / iPod touch 安装第三方软件的方法
用 iPhone / iPod touch 访问下面这个网站:

http://jailbreakme.com/

然后点击其中的“Install”,几秒钟之后 Safari 会退出,然后 SpringBoard 会重启。然后你会看到一个蓝色的 Installer 图标出现在 iPhone 的主界面,通过这个 Installer 就可以安装第三方软件了。

这种 jailbreak 方式是利用 iPhone / iPod touch 的一个 TIFF 溢出漏洞实现的。因此 Apple 或许会在下一次 update 的时候修补这个漏洞。

通过 image decoding library 的溢出漏洞来执行任何代码似乎是破解移动设备的时尚了,早前 PSP 也是这样失守的,而 Apple 看来没有从中吸取到任何教训。或者,这一切本来就是那传说中的潜规则?
[ more ] - 2007-11-05 07:08:04 - 94867+5465
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
code 100 lines or type 6k strings in utf-8 plus 3 bytes fucking bom, everyday
w/ one exception zend doesn't play with bom
Mementos: Do you remember
  
  
    Mac.6.cn footbig.com go.6.cn
    RSS 2.0 XML Feed Valid RSS 2.0 XML Feed Get Firefox!
    PHP Powered!  Subscribe with Bloglines!
    Livid: Livid Von Torvalds
    This is the personal site of Xin Livid Liu. It started since 2005.

    You can view my more detailed profile on LinkedIn and Facebook. Or follow me on Twitter.

    This site is up for 2069 days, 930 articles have been viewed for 5795774+3687676 times, average 6232.02 times per article, regularly there are 3.14 new articles per week.
    Buddies: Dear
    Links: Outside the Window
    vik|coon - 38.107.191.117 - CCBot/1.0 (+http://www.commoncrawl.org/bot.html)

    vik|engine - This installation on Apache has got 10103759 overall meaningful hits.

    Project VIK - $Id: lividecay.php 8 2007-02-03 22:47:45Z livid $
      All my works, except where otherwise noted, are licensed under a Creative Commons License

      Technorati Profile

      It is so very hard to be an
      on-your-own-take-care-of-yourself-because-there-is-no-one-else-to-do-it-for-you
      grown-up.