介绍一款虚拟主机--webFaction
分类:
其他
|
jeff 发表于:2009-06-26 21:41:59 |
0条评论 |
博客在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"吧,不知道有没优惠,我当时注册就苦于没有找到推荐码,全价购买。

像CSS选择器一样用BeautifulSoup
分类:
编程
|
jeff 发表于:2009-06-23 01:06:23 |
0条评论 |
较早前写扒虫多,虽然BeautifulSoup很 好用,但厌倦每次都要手动去编写复杂的Dom元素定位语句,突然想,能不能像CSS选择器一样,只给一个表达式就返回我想要的东西?后来在网上找了下没找 着,想了想工作量也不大就自己实现了一个,目前支持ID,Class,标签及属性选择器、支持 space、 >、 + 操作符,基本上已满足大部份定位需求。
代码见附件里的BTSelector.py,另附UnitTest。
常见使用方式是:
注意,本脚本依赖于BeautifulSoup,所以,使用之前请确保你已经安装了。
python 代码
- from BTSelector import findAll
- soup = BeautifulSoup(htmlContent)
- nodes = findAll('div.navigator
-
用testCase作为使用示例:
一、上一个复杂一点的用例:
python 代码
- def testMixSelection(self):
- target = "
- 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))
二、再上一个使用位置操作符的用例:
python 代码
- def testPosition(self):
- target = "h2 + ul > li > a"
- html = '''
- <h2>title</h2>
- <ul>
- <li><a href="#">nothing</a></li>
- <li><a href="#">ok</a></li>
- <li><a href="#">come on!</a></li>
- </ul>
- '''
- soup = BeautifulSoup(html)
- ret = findAll(target,soup)
- self.assertEqual(3,len(ret))
更多的见附件的Unittest。希望大家喜欢。
MindNode--用好思维导图
分类:
软件
|
jeff 发表于:2009-06-23 01:04:15 |
0条评论 |

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

Where Blogger is blocked happends
分类:
其他
|
jeff 发表于:2009-06-23 01:03:14 |
0条评论 |
记得以前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......
让CodeIgniter的URL更完美
分类:
编程
|
jeff 发表于:2009-06-23 01:02:24 |
0条评论 |
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了。。
有偿免费主机--Hastyfree
分类:
软件
|
jeff 发表于:2009-06-23 01:01:25 |
2条评论 |
经朋友介绍知道这款叫Hastyfree的免费主机,1G容量,50G流量每月,无限制数据库和FTP帐号,甚至使用SSH访问。经试验,速度也相当的快。

HastFree是HastHost旗下的一个免费产品。HastFree其实不是真正免费,你使用他的免费主要就得完成他给的任务,任务也很简单,两个选其一:
- 你使用免费主机时,要求在你站点的首页放上它的一块横幅广告,位置不限,并且要保证,两个星期你网站的流量不小于2MB。
- 你使用免费主机是,要求你站点上的贴子或文章每月至少发表10篇新的。
要求很简单吧?其实HastFree是在为HastHost打广告,而 hastHost是收费的,所以可以理解为HastFree是为我们提供有偿的主机服务,只不过不是美金。
我在上周就申请了一个主机,使用效果见这里。后台是使用Cpanel来管理,挺方便,1G的容量,足够建许多小站了。。不过服务器语言方面,只能是PHP和Perl哦。
有需要的同学们赶快去申请吧。
用Prism把网络应用本地化
分类:
编程
|
jeff 发表于:2009-06-23 01:00:16 |
3条评论 |
较早之前听说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只是给每个应用程序创建了一个独立进程罢了。。呵呵。