不落不乖

–fallhunter

苹果梨的故事

 

去年回老家的时候,有一天,妈妈买回来一种奇怪的水果,乍看起来像青苹果,但仔细看上面有一些像梨一样的点。

“这是苹果梨”,妈妈说,“既像苹果又像梨。”

当时我在忙手头的事情,没有理会。没多久,听见爸爸说:“不好吃,既不像苹果又不像梨”。

 

这个事情过去已经很久了,也不知道现在这种“苹果梨”是否还卖的好,但可以肯定的是,有人不喜欢。

我一直在想,为什么会有这样的东西?想吃苹果的人就去吃苹果,想去吃梨的人就去吃梨,都想吃的话就都买来吃,为什么要“苹果梨”呢?我们做产品,其实一直在做这种事情。最常见的情形就是,我们要有xx功能,还要有xxx功能,这里要像xxx一样,这里要做成xxx的样子… 最后的结果就是做出来一个“苹果梨”,一个四不像。

铭记 UNIX 哲学:do one thing and do it well


添加评论(2)

怎样选择美国主机

今年冬天特别冷,以至于不少站长都选择迁徙到温暖的米国…

这里就来简单说说米国的主机,相比国内普遍的windows主机,这里更流行linux主机,目前主要有三种类型,按价格从低到高,有

  • shared host 共享主机

是在一台物理机器上放置多个用户,每个用户在一个目录中,大家共享同一个硬件资源。这种服务一般会提供ftp、ssh,database等基础服务,还有控制面板,操作比较简单,适合初学者和个人站点。

推荐服务商: webfaction

  • vps ( Virtual Private Server ) 虚拟主机

是在一个物理机器上安装多个虚拟机,每个用户使用自己的虚拟机,一般配有web界面来安装系统,重启系统,设置密码等。这可能是国内比较少有的方式,这种方式介于sharedhost与dedicatedserver之间,以较为低廉的价格提供相对专业的服务。由于服务器是虚拟机,因此用户会拥有对此机器的全部权限,可以制定操作系统等,任意配置软件,但这对操作者要求也较高。VPS适用于绝大多数小型站点,一般vps服务商都提供多种性能的服务选择,可以随时根据需要进行扩展。

推荐服务商: slicehostlinode

slicehost 与 linode 是如此流行又如此相似,因此,有不人专门来对比它们

http://journal.dedasys.com/2008/11/24/slicehost-vs-linode

http://drupal.org/node/547910

http://www.kavoir.com/2009/09/moving-from-slicehost-to-linode-an-initial-vps-hosting-review.html

这里还有人做了比较专业的 benchmarks 对比

http://forum.slicehost.com/comments.php?DiscussionID=1951

这个从更专业的角度对比了更多的主机,其中包括slicehost 与linode

http://journal.uggedal.com/vps-performance-comparison

  • dedicated server 独立主机

就是一个真实的物理机器,类似于完全托管,价格一般在几百美元一个月。这是专业的主机服务,用户拥有对整个机器软硬件的权限,但操作也更加复杂,重启、安装系统等工作要联系idc的人员来进行。适用于有专业人士维护的大中型站点。

主机选择是一个普遍的需求,以至于有很多站点专门来做主机服务商的评选,可以参考:

http://webhostinggeeks.com/

http://www.besthostratings.com/

等,如果是django站点,还有

http://djangofriendly.com/  在 几个django相关的网站 中提到过。


添加评论(1)

几个 Django 第三方库/applications

 

Django evolution

执行 ./manage.py syncdb 的时候,django会查找新的model来创建数据库表,但当我们更新model的结构时(如增加字段),则需要手工修改对应数据表的结构。Django-evolution 正为解决这个问题而存在。

地址 http://code.google.com/p/django-evolution/

django-ratings

ratings是web2.0的基础元素之一,django自然不能缺少,个人估计它有望成为官方app

http://github.com/dcramer/django-ratings

django-tagging

tagging 是web2.0的另一个基础元素,这个库相当好用和强大。

http://code.google.com/p/django-tagging/

django-messaging

哈哈,还是web2的元素啦,这个是用户与用户之间的message系统,与django内置的message不是一回事,这个库比较简单。

http://code.google.com/p/django-messaging/

django-photologue

强大的图片处理、管理功能

地址 http://code.google.com/p/django-photologue/

django cms

一个基于django的CMS系统

地址 http://www.django-cms.org/

django-grappelli

你认为django的admin界面不够好看吗,看这个, 里面有漂亮的截图,相信你会喜欢。当然这个库也不仅仅是为了好看,它还有很多更方便的功能。

地址 http://code.google.com/p/django-grappelli/

django-filebrowser

这个库的作者就是上面的 django-grappelli 的作者,怎么样,别以为他只会做界面,看看这个,这是一个相当强大的文件管理系统,直接在admin里面就可以完成静态文件的上传和编辑。你还在用自己做的编辑系统吗,咳咳。

地址 http://code.google.com/p/django-filebrowser/

django-solr-search

solr是做中小型搜索的首选,可以说是易用与强大的完美统一,django当然不会放过。solr不是已经很简单了吗,是的,但为什么要拒绝更简单呢?这就是django的哲学,我不骗你,编码真的可以是一种享受…  当然啦,还是有点缺憾,solr内存使用有些大呀…,但这不要怪到django头上。

地址 http://code.google.com/p/django-solr-search/

django-avatar

这跟电影《阿凡达》可没有什么关系,如果你熟悉web开发,早就应该知道 avatar 的意思是指web上用户的头像。这个应用就帮助你的django站点方便的增加用户头像的功能。

地址 http://github.com/ericflo/django-avatar


添加评论

Python 面试常见问题

 

这里总结一些Python的常见问题,也是Python面试经常提到的问题,它们都是比较 pythonic 的问题,最关键的,它们都是你应该能回答的问题,如果这些问题对你来说没有什么难度,请发一份简历到 join@mapiz.com

这里并不试图给出答案,很多问题只是看回答者对Python的理解,如果你对某个问题不够清楚,just google it. 如果你对很多问题都不清楚,你应该去读一下 Python in a nutshell

  • 数据类型相关
    list与tuple的区别
    dictionary与set的区别
  • 你知不知道Python的for语句后面可以跟一个else,它是什么意思?
  • list comprehension 是怎么回事,为什么要用它?为什么不用它?
    (我一直记不住对应的中文叫什么,列表推导?)
    即:
    [ x*x for x in somelist ]
    其中 somelist 是一个list。
    这行代码构建了一个list,其每个元素是somelist里面每个元素与自身做*运算
    复杂一点的,还可以:
    [ somefunction(x) for x in somelist if anotherfunction(x) ]
    即,可以用anotherfunction 过滤 somelist
  • 什么是 tuple 解包赋值?

    a,b = somefunction()
    要实现这个效果,somefunction应该返回一个tuple,在赋值时Python会自动解包。
    当然,这不仅仅限于函数返回值的情况,像
    a,b=(“value1”,"value2“,) 也是可以的
  • 类似 __foo__ 这样的东西是什么玩意?
    这是python里面的特殊函数或属性,常见的有
    __name__
    __main__
    __file__
    __get__()
    __set__()
    这些你都应该知道。
  • iterators/generators 怎样实现一个 iterator 或 generator ?
  • map/reduce/sum ?
    如果你第一次听到 map reduce 是从Google著名的分布式框架,没有关系,因为现在的计算机教育已经本末倒置,这不是你的错,但是如果你没有去研究一下它为什么叫 MapReduce , 这就是你的错了。如果你现在是第一次见到 map reduce ,赶紧去研究一下,我想你很可能对函数式编程一无所知。
  • lambda 是什么东西 ?
  • 有没有听说过 decorator ?
  • 函数定义时在参数前面加上 * 或 ** 是什么意思? 函数调用时在参数前面加上 * 或 ** 又是什么意思?
  • 怎样实现类的静态方法?
  • __new__ 与 __init__ 有什么区别?
  • “class Foo”  与  “class Foo(object)” 有什么不同
  • 文件操作
    Python里面有个非常简单的文件按行操作方式
    for line in open(file_name):
          print line

    但是要注意 line 是包含行尾的 \n  的

  • 异常处理
    python里面到处都是异常,这是Python的设计哲学,如果你打算学习Python,请将异常变成你的思维方式。
    你可能很容易学会  try … except .. 和  try … finally..  但是 try … except … else 是什么意思?
  • 对类库的熟悉程度
    Python 的强大很大程度上来源于其无数强大的类库,熟悉类库的实用总是对实际的工作帮助甚大。
    类库问题也是一个很重要的常见问题,如:
    实现xxx功能,有哪些类库可以用?
    常见的应该了解的类库大概有:
    正则表达式类库 re
    系统类库 os, os.path
    日期时间 datetime
    多线程 Queue
    单元测试 doctest, unittest
    日志 logging ( 我非常喜欢这个库 )
    命令行参数处理 optparse ( 这个库太棒了 )
    命令行框架 cmd ( 用这个库你会发现 写Python 真的是一种享受 )
    网络 urlparse, urllib, curl, httplib,socket
    服务器 SocketServer ( python 自己含有一个简单的socket服务器!而且支持多种网络模型(tcp/udp, thread/process)! )
    XML/HTML
    解析 xml.dom, xml.sax, BeautifulSoup
    还有很多很多…
    当然,你没必要全都用过它们,但是你应该知道它们的存在,除非你愿意花上几个星期来实现一个本该几分钟就完成的功能。

最后,请相信我,Python in a nutshell 是本好书,它能解决以上几乎所有的问题,当然,它能解决的问题远不只以上这些。


添加评论

除了愤怒,我们还能做些什么

 

这个链接,注定是无法访问的:
http://googleblog.blogspot.com/2010/01/new-approach-to-china.html

我们还没有遇到这么恐怖的事情,哪怕只是个传闻,都足以让人战栗不已。

2010年刚过几天,我们还回味这元旦的假期,
去年年末的种种不快,我们天真的希望都能随之而去,
而邪恶,残忍的蹂躏我们的灵魂,
让我们那颗久已麻木的心,
在这个新年里,发出最真实的剧痛!

我们真的不敢去想象这一切会有什么后果,
我们真的希望这是在冷兵器时代,让我们抄起短刀,戎马上阵,
而现在,我们抄起鼠标,面对电脑,
除了愤怒,我们不知道还能做些什么

历史给我们的教训太多太多,
但正如当年明月所说,历史给我们最大的教训,就是我们从来都不从历史中吸取教训
封闭,再大的范围也是封闭
开放,再小的区域也是开放
开放与封闭不在于范围大小,因为,封闭与开放的,都是灵魂

为什么我们反应如此强烈,可能吧说的好,因为
Google选择离开并不是意味着它放弃了中国市场,而是中国放弃了互联网
而我们就是互联网,
我们的祖国,将抛弃我们,抛弃这群有梦想的互联网创业者
一直以来,我们不怨天,不尤人
我们相信,可以靠自己的努力实现梦想
一直以来,我们苟且的活着
现在,因为我们实在太不老实了,连苟且的机会都要灭亡了
现在,我们无法不问,我们为什么TMD生在这

参考:

http://www.williamlong.info/archives/2053.html
http://blog.donews.com/keso/archive/2010/01/13/1580275.aspx
http://www.kenengba.com/post/2248.html
http://www.web20share.com/2010/01/farewell_google.html 
http://www.xjp.cc/2010/01/13/google-exit-from-china/ 
http://www.google.org.cn/posts/google-say-no-to-china-censorship.html

更新:晚些时候,当我平静下来,再次思考这个问题,最初的感觉或许被大家文字所带动,有些许的不真实,但这都来源于真实的对互联网的热爱。平静下来,我突然很想看看,如此聪明的google …


添加评论(6)

django 1.2 alpha

 

备受期待的 django 1.2 release了它的alpha版,在这个版本中,有个重量级的更新,那就是多数据库的支持。

在以前的django版本中,只能支持一个数据库,还记得上次跟子轩讨论过如何连接多个数据的问题,当时的感受就是:框架,就是说有些东西是不能实现的…

现代化的web开发,几乎没有只使用一个数据库的,多数据库是一个系统可扩展性的重要方面,django 1.2 朝这个方向进了一步,也说明了django 打造工业级web框架的目标。

django 1.2 中还增强了安全性与 message系统,其message并不是用户间的message,而是系统对用户的一种提示信息,这类似于 ROR 中的flash。zendframework 中也有类似的东西,好像也叫什么什么flash,当时大家讨论zend的时候,有人以为是对adobe falsh的支持。 其实,国内的web应用并没有很流行地使用flash的概念,相关功能还多是通过应用逻辑来展示的,开发还不够工业化呀。

 

正是的release预计在3月中旬,到时候估计 Mapiz 正好可以用上,愿 Mapiz 与 django 还有我一起成长吧。

今天读到 阮一峰 写的 PHP很烂?我的看法,嘿嘿,其实也是俺的看法啦,在no-framwork framework: 让php找回最真 我曾试图表示一些对php的看法,但总觉得说不到点子上,今天看峰哥用简单的语言说清楚了深刻的道理,恩,果然是高手。


添加评论

Mapiz 招贤纳士

 

也许你已经习惯了朝九晚五的生活,
也许你已经看惯了上级多变的脸色,
也许你已经能够忍受毫无创意的工作,
也许你已经渐渐远离曾经的梦想……

但是

或许你心中还有那么一点不甘,
或许你还觉得这不是你想要的生活,
或许你会微微心动因为偶然想到创业,
或许你大学时的梦想还存有依稀星星之火……

我们就是这样一群人,
我们痛恨死板的规章,
我们痛恨没有创意的拷贝,
我们痛恨办公室政治,
我们痛恨一切限制我们创造力的环境!

我们希望结识有梦想与才华的年轻人,共同创造属于我们自己的事业!

Mapiz 长期招聘,全职、兼职、实习生,详细职位描述及要求参见 http://www.mapiz.com/chinajobs


添加评论(1)

Mapiz 用户分布各大洲

 

mapizer

几个月前,mapiz 只有北京和加州几个测试用户

几个月来,我们欣喜地看到Mapiz用户在渐渐增加:

先是加州、硅谷附近,然后是美国东海岸,不久,夏威夷和美国中部也开始有Mapiz用户…

再后来,我们发现泰国也有Mapiz用户…

不久前,我们发现阿拉伯迪拜出现了Mapiz用户…

前几天,乌克兰与大不列颠出现了Mapiz用户,我们终于到达欧洲了…

昨天,日本出现了Mapiz用户…

今天,意想不到的是,拉丁美洲圣保罗也有了Mapiz用户…

还有非洲与大洋洲没有Mapizer…

 

虽然目前mapiz的服务还仅限于美国地区,不过看到世界地图上不断有新的mapizer从各个角落“生长”出来,真的是一件很开心的事情。


添加评论(6)

Move aside, let the man go through

 

标题中的说法,是在一个迈克尔.乔丹的记录片里听到的,英文中,"the man”表示尊敬,有种“大人物”的意思。

引用这句话,是因为今天,中国的互联网来了一位“大人物”,不同的是,今天的“大人物”并非像乔丹那样因为精湛的球技而赢得大家的尊敬,因为伟大的人格而让大家崇拜。

今天的“大人物”,是凭借手中独一无二的权力,让整个互联网敬畏,或者说,让整个中国互联网敬畏。

好比驾到时的交通管制,好比出行时的警车开路,中国“大人物”的登场,同样带有中国特色。夜市一样的互联网,突然冲进几辆印有“综合治理”字样的车子,瞬间,丧家之狗四散奔逃者如过江之鲫,满地狼藉,哀鸿遍野。繁荣而自由的市井刹那间被肃清为一条和谐的街道,“大人物”在花团锦簇中前呼后拥地粉墨登场,隐藏的夜色里的,是一双双恐惧、哀怨、仇恨、羡慕和麻木的眼睛。

都站到一边吧,国家队上场了


添加评论

个人.cn的终结

 

今日,我收到北京IDC网的.cn域名过期通知,而有讽刺意味的是,今日起,CNNIC将不再允许个人用户注册.cn域名。

过期的域名都是我利用账户里的余额帮朋友们注册的,有colin,zhanliang和wenming的域名。这些域名还都是当年用一元钱注册的,而今日,它们将不能再合法存在。

.com 浪潮之后,不少人把.cn看做一个金矿。然而几年后,.cn并没有像.com那样发展起来,于是,CNNIC把.cn降价到白菜价,希望借此推广.cn的应用,效果不错,.cn的域名的数量一夜之间涨了起来,大家都happy了。可我们在做这件事的时候,总是忽略另一件事,那就是这些雨后春笋的.cn都是些什么网站?由于.cn 的域名的近乎免费,切换域名的成本非常低,色情网站在一个域名被封掉之后可以快速切换到另一个域名,于是乎,.cn域名的注册、封杀,大家玩的不亦乐乎,终于,在去年,有人觉得不好玩了,于是.cn的价格又高了起来。而这次,应该是有人觉得更不好玩了,.cn的注册制度就变了。

有以噎死者,欲禁天下之食,不过是对自己的极度不自信。而对.cn的态度,也不过是敝帚自珍,至少我还不怎么在乎.cn,因为我不用它,我觉得.cn,不是互联网。而这次我还是要表示一下悲哀,因为,我对.cn 偶然奇迹发生变成互联网的一丝希望也淡然消逝了。

还是把这一切都看成一出闹剧,突然发现,.cn怎么这么像楼市,这么像股市?只不过,演出者的水平差了点,连我这样的大老粗都看得明白。


添加评论

© 2009 不落不乖. All Rights Reserved.

This blog is powered by Wordpress and Magatheme by Bryan Helmig.