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 可用。
比如,各类城市和机场的各种名字,代码及经纬度都可以在这个数据库中查到。对我最近在做的一个项目十分有帮助。推荐给大家。
[ 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 服务器是没有太大快感的,生命有限,我们应该将注意力和时间放到那些真正令人有激情的创新上。
[ 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 属性的问题不少。
[ 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 Edge 和 Surfin’ 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