Monthly Archives: 06月 2009

介绍一款虚拟主机–webFaction

博客在Johnny兄家里借宿久了,不方便,并且WordPress对评论的spamer防不胜防,刚好大郎兄在计划买主机,于是两人一拍即合,一起买了一款新主机–webFaction. 当初我们都想买VPS,国内的有rashost,他们有外国的主机,当时就心动了,准备下手。后来知道webFaction, 据说对python的用户特友好,框架安装使用方便,特别是对django,turboGear甚至是phone,zope这样的庞然大物等支持很到位, 并且价格比起Rashost要便宜,因为有了超级用户权限的SSH帐号,所以VPS就显得不是那么重要了,最后我们选择了webFaction最便宜的包,年付102美元,两人平摊,也就每人¥349一年,10G的存储空间还算不错了,比起国内一大堆很烂的主机要划算得多。 webFaction的前端使用的是Nginx,所以在处理静态资源效率很好,用户的每一个应用可以使用Apache作为第二层服务器进行微调。另外WebFaction还支持透明的横向扩展,只要你有需要。 现在我的博客就是部署在webFaction上的,速度方面大家可以自个感觉一下,我觉得还是蛮快的。 有在寻找python、ruby主机的同学考虑一下webFaction吧,注册过程中如果需要推荐码,就用我的"jeffjie"吧,不知道有没优惠,我当时注册就苦于没有找到推荐码,全价购买。

Posted in 其他 | 2 Comments

像CSS选择器一样用BeautifulSoup

较早前写扒虫多,虽然BeautifulSoup很 好用,但厌倦每次都要手动去编写复杂的Dom元素定位语句,突然想,能不能像CSS选择器一样,只给一个表达式就返回我想要的东西?后来在网上找了下没找 着,想了想工作量也不大就自己实现了一个,目前支持ID,Class,标签及属性选择器、支持 space、 >、 + 操作符,基本上已满足大部份定位需求。 代码见附件里的BTSelector.py,另附UnitTest。 常见使用方式是: 注意,本脚本依赖于BeautifulSoup,所以,使用之前请确保你已经安装了。 python 代码   from BTSelector import findAll   soup = BeautifulSoup(htmlContent)   nodes = findAll(‘div.navigator #notice’,soup)   # findAll返回的是符合选择条件的Dom 对象列表,实际上是BeautifulSoup的标签或字符类。   用testCase作为使用示例: 一、上一个复杂一点的用例: python 代码   def testMixSelection(self):   target = "#header > div#name > a.highlight"   html = ”’  <div id="header">  <div id="name">  <a>test</a>  <a>right</a>  <a>ok</a>  </div>  <div id="your">  </div>  </div>  <div id="body">fk  </div>  ”’   soup = BeautifulSoup(html)   ret = findAll(target,soup)   self.assertEqual(2,len(ret))   … Continue reading

Posted in 其他 | 1 Comment

MindNode–用好思维导图

MindNode是一款思维导图软件,用来梳理想法、组织语言、管理任务均可。 常见的思维导图软件有FreeMind,MindManager等,FreeMind是java开发的软件,所以任何一种平台上都可以使用,不过非Mac原生的程序,速度和外观都有点差强人意,而MindManager是比较昂贵的商业软件,上周阿北介绍了两款Mac下好用的软件时,我才知道MindNode这个小东西。 MindNode本身也是商业软件,不过分Free版和Pro版,本文介绍的是Free版。 MindNode Free的功能很简单:核心功能还是结点组织;她很好的支持多个根结点,这个Freemind没有;可以自定义结点路径的显示样式;界面布局简洁;支持多种格式的文件导出。 遗憾的是,MindNode 并没有结点描述的功能。这可是我惯用的功能了,没有还真有点可惜。 使用的整体感觉就是相当简洁、实用–最爱多根结点这个特性。上截图,不说了。

Posted in 其他 | Leave a comment

Where Blogger is blocked happends

记得以前GFW要墙的话也只是墙Blogspot,而现在。。可耻地把blogger也墙掉了。徹底无语了。 这样一来,国内许多使用Blogger平台搭建的半独立博客又死掉了,本博前段时间从blogger导过来的博客的图片已经无法再显示。GFW是越来越无耻了。收了国内BSP多少好处?病态的竟争环境。病态的GOV。真踏马的GlassMudHorse! 请允许我这样咏颂我天朝(配NBA背景音乐–NBA是牛逼啊的意思): Where amazing happens…… Where GFW happens….. Where 8×8=? happens…… Where die in dream happens…… Where GlassMudHorse happens……. Where #70KM happens…… Where OMG,Youtube is Blocked happends……

Posted in 其他 | Leave a comment

让CodeIgniter的URL更完美

CodeIgniter是一个轻型的PHP框架,老甘介绍我认识的,而她的作者是一位摇滚乐手兼程序员,怎么能不让我欢喜呢?嘿。 CodeIgniter推荐使用search engine友好的URL,如:/post/123 而非传统的 /post.php?id=123,当然也可以使用传统的URL,但是不作修改(或扩展)的CodeIgniter只能够两者选其一,不支持/post /123/?from=google这样的URL,其严重程度是直接报404错误,没有商量的余地。但是实际使用的时候,两者兼备的情况也不少,如果真不 支持这种URL的话,可能大多数人要选择另外的框架咯。 在网上找了下,解决方案还是有的,不过最后在我身上都失败了。最后试了下面这个办法: 一、自定义一个Input类,代码如下,以MY_Input.php为名保存到application/libraries下面。 [php]class MY_Input extends CI_Input { function _sanitize_globals(){$this->allow_get_array = TRUE;parent::_sanitize_globals();} }[/php] 二、把$config['uri_protocol'] 的值改为ORIG_PATH_INFO。 好了,现在的CodeIgniter可以兼容两种风格的URL了。。

Posted in 其他 | Leave a comment

有偿免费主机–Hastyfree

经朋友介绍知道这款叫Hastyfree的免费主机,1G容量,50G流量每月,无限制数据库和FTP帐号,甚至使用SSH访问。经试验,速度也相当的快。 HastFree是HastHost旗下的一个免费产品。HastFree其实不是真正免费,你使用他的免费主要就得完成他给的任务,任务也很简单,两个选其一: 你使用免费主机时,要求在你站点的首页放上它的一块横幅广告,位置不限,并且要保证,两个星期你网站的流量不小于2MB。 你使用免费主机是,要求你站点上的贴子或文章每月至少发表10篇新的。 要求很简单吧?其实HastFree是在为HastHost打广告,而 hastHost是收费的,所以可以理解为HastFree是为我们提供有偿的主机服务,只不过不是美金。 我在上周就申请了一个主机,使用效果见这里。后台是使用Cpanel来管理,挺方便,1G的容量,足够建许多小站了。。不过服务器语言方面,只能是PHP和Perl哦。 有需要的同学们赶快去申请吧。

Posted in 其他 | Leave a comment

用Prism把网络应用本地化

较早之前听说Firefox也要效仿Chrom支持多进程浏览网页了。不过凭Mozilla的底子,要实现应该是相当容易了。这不?Mozilla现在硬生生地把网络应用变成了本地应用! Prism就是这样一个应用转换器,她可以把GMail,Greader等变成本地的应用程序,以后我不需要在浏览器中打开Gmail也可以收Email了。用Firefox实现这个太简单了,凭她强大的XUL。 先试试创建一个Reader应用。先安装Prism的Firefox插件。 打开googleReader后,展开工具菜单,点选Convert website to Application。 弹出配置窗口,并于程序界面、快捷方式和程序图标的一些设置。。为了让它看起来更像桌面程序,我就不选生成导航栏,甚至状态栏我也不要了。最后创建程序到桌面。 确定后在桌面生成一个google reader.app的应用程序,双击打开就是一个本地的Google Reader应用程序了。。界面截图如下: 此刻我想起了Adobe Air,诞生时让无数人惊艳的RIA神器,我开始知道,原来网络应用也可以变成桌面应用。 我知道Prism和Air是两款截然不同的产品,他们主要面对的用户群体也不一样,Prism对网络应用的最终用户友好,而Air是对网络应用的开发者友好,只是我想说,她们的最终目的都是为了最终客户。 Prism + Gear > Air? 不是开玩笑。Prism + Gear组合,仅需要开发一次,网络、桌面版应用均可使用,而Air只适合开发桌面应用,如桌面版的Ebay,就是用Air重新开发一套本地UI的。Prism + Gear(或其他嵌入式DB)后,Air只剩下“用户界面在本地”的优势了。 也许我不应该就Prism这么小的产品长篇大论,因为现在,桌面应用与网络应用的界限已经越来越模糊了。其实Prims只是给每个应用程序创建了一个独立进程罢了。。呵呵。

Posted in 其他 | Leave a comment

再来一款轻量级的免费Mac程序卸载软件–AppCleaner

嘿,不好意思,又是卸载软件,前段时间我写过一篇CleanApp的文章,CleanApp实在是一款强大的软件,但她是商业软件,同时,她除了有软件卸载功能还有其他高级的功能,如系统分析、磁盘使用情况分析等。有时候,强大不一定招人喜欢,那么我想,下面出场的这款软量级的免费软件应该适合大多数Mac友。 AppCleaner是今天的主角,名字极可能是山寨CleanApp的,这个姑且不管,先看看她的本事。 AppCleaner的图标与Trash的图标很像,在Dock上排着队,不小心还真把她当成Trash了。她的界面十分简洁,以致于我产一眼就可以看出她可以做些什么。她的工具栏上有四个图标,对应着四大功能: uninstall,卸载软件,把你要卸载的软件往里面一拖,她就会帮你搞定它们了。 Applications,软件列表,列出你安装的所有软件,你可以选中要卸载的软件,然后search一下相关文件,再delete就搞定了。 widgets,没错,AppCleaner还知道你安装了什么DashBoard的小部件,这可以CleanApp木有的功能啊。操作过程与软件列表相同。 others,其他,主要是一些插件和组件。可以像软件一样卸载掉。 嗯,AppCleaner只有这些功能了,相比起CleanApp,她的功能少了点也简单了点,特别是没有归档功能,卸载了软件不能反悔。不过在软 件卸载这个功能的深度方面,她可比CleanApp做得要好。另外,她的使用体验也挺Cool的,切换功能点时有3D效果。最重要的一点,她是免费的! 下载请点击这里。

Posted in 其他 | Leave a comment

博客迁移至DreamHost

几天前,浪点主机的客服告诉我,他们将停止支持python和ruby,由于用户量不多,公司内维护python主机的也只有他一个人,浪点内部已经通过这个政策。 我的博客本来是基于python开发的,对python停止支持将是她的致命打击,国内目前没有好的Python主机提供商了,再加上浪点的客户服务有时候响应比较慢,还没试过国内其他主机提供商,也没胆试了,现在只能转战海外了。感谢寂寞部屋的主人@johnnycai给我提供免费的DreamHost空间。 目前已成功把博客转到DH,使用的是wordpress博客系统,目前还没太多时间在主机上装python,只是先把以前几个博客的内容全导进来了。185cm’s life的RSS地址不变,或者,也可以订阅这个新地址。

Posted in 其他 | Leave a comment

喝杯免费咖啡提提神,不要让你的Mac睡着了

记得什么时候你的Mac在你需要的时候睡着了吗? 在线看电影的时候,只开着浏览器,啥都不做,Mac Book过几分钟就黑屏,这让人我很烦啊,Mac可以检测到quick time,realplay之类的多媒体播放软件在工作,但网页播视频,她可看不见了。 虽然可以通过设置Mac的休眠时间,但这个方案太不划算了。我推荐一款小巧玲珑的并且免费的醒神软件Caffeine。顾名“咖啡因”而思义为Mac的提神醒脑剂。 Caffeine运行的时候只在右上角状态栏的显示一个咖啡杯,点击它可以装满咖啡或清空杯子,装满咖啡说明正在工作,你的Mac也就不会体眠了。 Caffeine没有过多的选项,默认的配置就工作得很好了。按住苹果键点击小图标,可以调出菜单。菜单只有偏好设置以及选择激活时间。 偏好设置界面不如说是帮助界面,上面有软件的使用说明了,你可以设置Caffeien随开机启动哦。 好了,如果你也在为Mac经常擅作主张偷懒为烦恼,那这杯咖啡一定适合你,噢不,适合你的Mac!到这里下来载吧。

Posted in 其他 | Leave a comment