2008年7月30日星期三
给自频道找找茬
keso 很生气,因为“自频道版权问题”,北城更关注对“博客热情”的影响,还有讨论自频道成为“超级网络媒体代理商”可能性的,还有加问号的“新媒体自掘坟墓的 又一力作”,讨论的角度很多,我看多数是因为魏武挥介绍自频道的blog写的挺张扬。咱草根没资格也没兴趣参糊大佬们的口水仗,不过既然惹得咱花时间去体 验了,不挑挑毛病找找茬心里难受。
1. 不管定位多玄乎,说到天,自频道不过就是一个带编辑功能的rss聚合而已。
2. 既然首先是个rss阅读器,就得经得起比较和推敲,不要以为加个编辑功能再放上广告就是“新媒体商业”了,还是先别太看得起自己,至少基本功能和用户体验 上先和流行的rss reader看齐吧。反正我的使用体验是,不论从哪一点来看(内容输出、feed的组织和管理、阅读体验、收藏、标识、推荐等等)都比不上任何一个主流的 rss阅读器(google reader, 鲜果,抓虾)。
3. 列举几点感觉不好的体验:
* 所谓内容就是item的正文摘要,基本上没有能全文阅读的(除了那些原本就是输出几十字摘要的feed),就这样还放个“展开阅读”和“缩进文章”的开关,挺搞笑。
* 对item的编辑,居然也是“所见即所得”的,也就是只能编辑刚刚看到的摘要(还带着省略号的),我试来试去,最后发现真要编辑就只能回到原文处copy全文再paste过来,貌似很高级的操作哦。
* 看得出来为了显示摘要,程序做过一些处理,因为“摘要”居然不只是正文的开始的百八十字,不过显然处理得不到位,凡是经过处理的原文的格式信息全丢了,乱糟糟一大片,没人会有耐心去分辨。
* 像feedburner这种被墙封了的源,通通都是验证失败。拜托,你是做数据采集的,稍微有点专业手段好不好。鲜果抓虾从来没有这样的问题。
* 还是源的抓取,太慢了,慢也不要紧,我等你去抓的时候至少给我个提示吧,害得我傻了吧唧的以为输入有误,折腾了半天,不知道自己做错了什么,这种用户体验也太业余了。还是先向别人学习一下再说吧。
* 所谓“版权问题”根本是没法保证的,原始feed里一些重要信息很多没有显示出来,我可不是瞎说,专门拿rss文件对照的,比如digg的rss,作者、 分类、评论计数等信息都有,显示出来都没了,可能是因为digg的rss输出有自定义标签吧,不过这不是不显示原文作者的理由。
* 几乎每个原始feed都有pubDate的,不过在自频道里,所有的输出都是按"分享时间"来排序的,还大喇喇的在每个feed上方标识出时间和日期,我今天导入的feed,所有item的时间都是今天,而且没有地方能修改排序,看着真难受啊。
* 基本上这是我用过的最差的rss阅读器之一。如果算上编辑和分享功能,就是我用过的最差的带编辑功能的rss阅读器了。
* 我看到“自频道”旁边的“beta”字样了,可gmail也一直是beta。这种beta做个startup不会有人说什么,不过blogbus好歹也算 有点口碑的BSP了,何况“自频道”还炒得这么凶,这种水平的产品拿出来宣传实在有点脸红。你让我来做我可能做得还不如你好,可我是草根,我也没吹牛。
4. blogbus是BSP,作为provider,它应该是内容的生产者,优势在于已有的blog平台、用户和口碑。而“自频道”基于rss聚合,本质上,它是rss的消费者。虽然都是针对rss,但并不是一码事。就好像你是一个汽车生产商,但并不意味着你一定就是一个好的车手。
5. 如果真的要做一个自媒体,现有的主流的在线rss reader更有优势,比如鲜果和抓虾,几乎用不着大动干戈,给每个item提供一个edit功能就完全可以了,可以借shared items功能输出经过用户编辑过的rss,阅读就在现有的reader或任何其他地方(只要不是现在的自频道)。或者,假想一下,给热文之类提供 wiki功能,用户共同编辑热文(如果有必要的话)再输出,这样既避免内容重复,又保证原文质量,如果再加上一些人工分类编辑的功能,那才叫真正的新媒体 自频道。
6. rss(包括众多衍生者)被发明出来的本意是提供一种开放的数据结构,将信息结构化的,便于在internent上传递,便于信息“忠实”地在生产者(如 blog)和消费者(如rss reader)之间传递。我觉得“忠实”很重要,就像正规的电子文档都用pdf,因为pdf的内容一般来说是不容易被修改的。当然这是一种防君子不妨小人 的约定俗成的办法,如果有人改动了原始pdf公文的内容并再次分发,就叫“篡改”。我理解rss也是同样的意思,原样传播是正常的,你当然可以去编辑和修 改然后重新发布,不过在我看来,这就是篡改,是没有公信力的。别人没这么做并不是别人不能,大概是不屑吧。
7. 假设如其所愿,“自频道”各方面都就绪了,结果可能就像很多人预料的那样,“突破了自动抄袭的技术壁垒”,“成为垃圾站的温床”,可以预料到的是:大量重复的、雷同的内容层出不穷,有价值的信息被埋没在更多的垃圾里,这是对用户耐心的考验,而且几乎注定要失败的。
8. 按“自频道”宣传的本意,不过是要给人们提供一种批量的自动导入和编辑内容的方法,如果人们愿意花点时间(比如去适应“自频道”糟糕的用户体验的时间),利用现有的互联网工具,谁都可以创造出更方便的“自频道”。比如:
* 使用yahoo pipes(或ms的popfly或google mashup等mashup工具)去处理rss源,都是很cool的东西,不必被流程图模样的block吓到,它做成那样就是为了给不懂编程的人来用的, 只要习惯了他们的用法,获取rss源的途径几乎是没有限制的,处理rss源的方法也几乎是无限制的,有限制的只是想象力。
* 使用任何一个online rss reader订阅自己制作的rss源,或者在igoogle,netvibes上展示你的源。定制的源可随时根据需要去修改,或者根据不同需要制作任意数量的源。
* 如果真的需要编辑rss内容(为什么?),如果恰好懂一点编程,去google app engine上申请一个app,做个导入rss的接口,做个list和form,或发挥想象力做更多的事情。
* 这些都是随便提提,可选择的方法远比这些多。对于自频道的假想用户,上述都是可以自己做到的,不需要花一分钱,需要的可能只是花点时间去了解和学习一下,DIY的感觉比被人忽悠好得多。
2008年7月17日星期四
Deploy Ruby On Rails App on Heroku - A Simple Guide for Windows User
Ruby on rails is popular due to its practical methodology, framework and tools, rather than an extensive acceptance by web hostings(like php). If you've tried to deploy a ror application on one of most of popular web hostings (those promised to provide 1500+G space, 3000+G/mo file transfer), you may agree with me, because they always limit you so much. Of course you can buy a dedicated server, but how about just publish a toy project before pay anything? Heroku is a good choice.
As an online service, heroku did some wonderful things, for example, an irb, an ror editor, an rails console, a gem manager, and so on. The point is, they are all run in browser, even without any rich client support (I believe it will be practically used if is implemented in a rich client). You can check these features at http://heroku.com/features.
An important feature is about "work locally". For linux user, all the necessary tools are native. For Windows user, a few additional resource are required. Here's a simple guide for Windows user.
Heroku supports two ways to transfer source code between local and server,
* A simple way is "import/export", "import" means upload a compressed source code package in .tar.gz, it's easy on linux. For Windows user, a convenient approach is to use 7z. For example, your app folder is "myapp", compress it into "myapp.tar" using 7z, then compress "myapp.tar" into "myapp.tar.gz" using 7z. Upload "myapp.tar.7z" to an existed app on heroku, done! "export" means download a .tar.gz package from heroku, uncompress it, work locally.
* The other approach is more practical. using Git and a "heroku" gem for source control.
** Git is yet another source control tool, a substitute for SVN in ror world.
** GitHub is a Git repository, Rails itself and many other ror source are currently hosted there.
** "heroku" gem is a tool which helps to manage source code hosted in github, including source control and publish source code on heroku.
** Git is native in linux, for Windows user, there are two options: Cygwin and msysGit, the former is a comphensive linux simulator on Windows. The latter is an unofficial Git implementation on Windows.
** Download either of them (they are similar if you just need Git), and install. For Cygwin, remember to select git manually.
** msysGit provide a GUI interface for Windows user, Actually, I don't think it is better than its bash shell interface. So, even as a Windows user, you'd better to know a little about bash shell.
** Open msysGit bash shell from start menu, like this:
** Register an account at github.com, the "Free" one is ok, remember the email you used (e.g. name@example.com).
** Generate a ssh-key. In the opened msysGit bash shell, input following command:
ssh-keygen -C name@example.com -t rsa
In the following steps, it will ask to provide path and passphrase, use default by pressing enter (or change them if you know what you are doing).
** Get your SSH Public Key. Input following command in shell:
cat .ssh/id_rsa.pub
The SSH Public Key (lines of strange charactors) will display in the shell, copy them (how? just like what you did in a Windows cmd shell), and paste into Github account (go to https://github.com/account, login if necessary, there's a textbox titled with "SSH Public Key"), then click "Update Keys".
** The last thing is to get "heroku" gem: "gem install heroku"
** Everything is prepared, go to see heroku's demo, or follow the next simple steps to start to develop and deploy a ror app on heroku:
- Open msysGit shell, input "heroku list". which lists all your existed rails apps on heroku;
- Input "heroku create myapp", it helps to create skeleton of a ror app named "myapp" (I guess it run "rails myapp" for you on heroku server), you can access http://myapp.heroku.com directly (of course you should make sure "myapp" is not an existed app name on heroku), a ror welcome page is waiting for you.
- input "heroku clone myapp", make a clone of "myapp" for local development. First time, it will ask your email and password which you've used to register in Github. (BTW, in msysGit shell, change directory to the location you want to put your local app. It looks like "cd /d/apps/", which equals to "cd d:/apps" in windows cmd shell. Interesting to both linux or windows user:) )
- if everything ok, you could edit your rails app with your favorite editor or IDE. (I tried Netbeans and e-texteditor, both ok.)
- Make some changes to your local app, (for example, generate a scoffold, or modify routes mapping in config/routes.rb, these will take effect after you push them to heroku), run server and test it locally. If everything ok, check in (and publish) your local source code to heroku (Github) by following commands:
- 'git add .', adds the current content of new or modified files to the index, note you should in your rails app folder;
- 'git commit -m "comments about this checkin" ' , stores the current contents of the index in a new commit along with a log message from the user describing the changes;
- 'git push', updates remote refs using local refs, while sending objects necessary to complete the given refs;
- ok, now try to access your rails app on heroku by accessing http://myapp.heroku.com,all the local changes work. 'git push' does some great things: check in source code, publish updated source code on heroku, rake db:migrate (if there's migration), restart rails server (let the changes to routes.rb takes effect), maybe include other necessary work. Great!
- Git is similar to SVN,except above options, you can do checkout, diff, merge, mv, rm and so on. Check helps as you need.
- In fact, all the above command can be used in Windows cmd shell if you setup msysGit as need. And all these commands can be used in Cygwin either.
As a ruby on rails fan, you really should take a tour through heroku, there are so many interesting features except "work locally". After deployment environment getting done as above, you are ready to publish your toy project to the world.
2008年7月13日星期日
How many things to learn?
I was/am a MS tech fan due to my job and intrerest. For a long time, I was eager to learn everything about .net. For examples:
* There are more than 200 tech books on my bookshelf, Wrox, O’Reilly and others. My wife named Wrox area as “red-light district”, and O’Reilly area as “Zoo”;
* I collected webcasts and ebooks as possible as I can find. and burn them into DVD;
* There are hundreds of feeds in my rss reader, I subscribed all the popular blogs about .net, from MSDN to Scottgu, from Codeplex to Rob Conery;
* I browse Codeplex “tag by tag”, download all the pop projects;
Unfortunately, my interest was not just about this. I was interesting in OO/P/AD, design pattern, TDD, refectoring, UML/RUP, project management, agile project, enterprise framework, networking, web design, database,java, c++, python, javascript, even ERP for a while. Recently, the terrible interest spreads to ruby, ruby on rails, then linux server when I decide to deploy my toy project, then virtualization when I decide to setup my own vps of linux…
Sounds great, right? The truth is…
* half of books on my bookshelf were not touched,
* webcasts were reviewed when they were just downloaded, but never be opened after burned,
* there are always 5000+ unread feeds in my rss reader, sometime I will mark them as “read”, but the number came back soon;
* reading source code is good, but the projects which were really carefully researched are not much.
As everyone can guess, I may be an expert on “how many things do you know?”, but not an expert of each of the listed parts, although my interest has taken most of my free time :( . Sound despressed.
Write this because I read a blog “Do you have the time to learn everything“. I agree with some of its points. It’s definitely impossible to learn everything, people should has a limited learning list with prioritization, people should learn to make choice first. I know this from beginning, but when I start to be interesting in something, I feel this is the most important. what a fool!
Life is limited, knowledge is not. But if learning is as fun as playing game or watching TV, just do it.
That’s the words to comfort myself.
2008年7月10日星期四
wubi...
As a layman in linux world, it’s glad to know there is such a greate tool for linux installation from Windows, i mean Wubi.
Wubi is not the Chinese input method.
Wubi is an officially supported Ubuntu installer for Windows users that can bring you to the Linux world with a single click. Wubi allows you to install and uninstall Ubuntu as any other Windows application, in a simple and safe way. Are you curious about Linux and Ubuntu? Trying them out has never been easier!
I tried to use PC without Windows for a few weeks at home. Frankly, it’s not a good experience for me. Ubuntu is actually better to use than other linux distribution. But in my experience, “better to use” means it is similar to Windows than others. if it’s true, why not use Windows (we have paid for OEM).
Linux should do more to contest PC desktop. When I use linux at home, I am not a software developer, and not a linux fan, I am just a computer user who likes to try different things. In most time, I read, watch, listen, write. I don’t care if it can run on different hardware platforms, I don’t like install software from source(even by apt/rpm/yum), I don’t like that I have to learn much and try more to make a BT client work, I don’t like to take half an hour to search, download, make, install and reboot to just watch an “amazing” desktop 3D effect, and so on… At last, I believe most of people in most of time could agree with me. Of course, I like linux as a server, free and powerful, but not on my desktop at home.
Linux need to be modest. do something like wubi (it’s said fedora 10 will add a similar feature), attract more people to like to try. For linux desktop, there is a huge space to improve.
2008年6月26日星期四
和谐不需要理由?
google被封的时候,就像是地震,受灾的是所有人,起码个体心理上是平衡的,而且当时确信这种引起公愤的事情不会持续很久,我们都忍了,虽然最后等来的是被“阉割一新”的google。
tumblr 被封的时候,就像被抄家,本是一个方便快捷的miniblog,虽然没有熟人用,自己却很喜欢,把鸡毛蒜皮的小东西方便地放在里面,自娱自乐,别有情趣。被和谐之后,仿佛自家大门上被贴上了封条,心疼和别扭只有自己知道,在强大的gfw面前,进自己家就象是做贼,要翻墙,要带tor,以便捷为特色的 tumblr,失去便捷性,也就失去了使用的价值。
flickr被封的时候,就像隔岸观火,虽然很多人在用,毕竟自己很少用,别人抱怨就抱怨吧,牢骚就牢骚吧,谁让你们崇洋媚外,我天朝不是有yupoo么,虽然是个不折不扣的模仿者。
wikipedia, blogger, wordpress等被封的时候,就像是焚书坑儒,嬴政李斯当年在做这些的时候,有明显的政治目的:因为刚刚建立的秦帝国需要为其中央集权实现意识形态上的统一,烧了若干儒家典籍,埋了四百几十个方士儒生,目标明确,方法简单粗暴,就如同如今gfw之所作所为。倒是后来董仲舒汉武帝的罢黜百家独尊儒术,同样是出于中央集权的目的,方式方法上温和得多,也有效得多,因为“独尊儒术”是将儒学作为官学,从而吸引有才华的人学习、参与和推广,“罢黜百家”却不是将其他学派和观点一笔抹杀,只是官方不鼓励不支持,民间却还是可以自由保留和发展。以史为鉴,焚书坑儒的做法非但让人及其反感,而且效果极差。汉武帝的方法是否值得借鉴?wikipedia和blogger里面是什么?都是知识和信息啊!都是全人类的文化和智慧啊!难道就因为里面包含了在“某些人”看来 “可能会”对国民产生负面影响和误导的极少数内容,就一刀切的干掉?这都是什么逻辑啊?!
如今,“和谐”的魔爪伸向了专业网站,sourceforge, freebsd都未能幸免于难,原因???我百思不得其解......难道和谐已经不需要理由了?月光博客上一文和另一文猜测了两种可能性:
其一:非常巧合的是,三天前我曾经介绍“五个最佳的编程文本编辑器”的时候,其中的一个开源项目Notepad++就是SourceForge的一个项目,该软件的台湾作者引起很大争议,因为他在该开源项目的首页声称要抵制某某运动会。
其二:SourceForge虽然也是英文界面的专业网站,但这个庞大的开放源代码软件仓库也长期被中国电信封锁,封锁的原因据说是里面有一个名为FreeNet的代理服务器的源代码软件项目。
哪种解释都没法让我信服,我不相信gfw会有如此低智商的主人,也不相信相关部门的决策者有精神病。原因有二:
第一,如果某人在家里宣布抵制运动会,我们就要让他家所在的小区甚至所在的城市人间蒸发(其实并没有消失,只是让自己人看不到而已)?这种做法好听一点的叫掩耳盗铃,不好听的就是若干与侮辱人智商相关的文明用语了。
第二,知道sourceforge是什么,并且能够去下载一个开源软件的人会因为区区一道墙就被阻止了?我们的祖先建立过如此伟大的墙,汉族文明却被墙外的铁骑一而再再而三的翻墙而过,踏在脚底。我们的祖先早已明白,墙的象征意义远远大于其最初被建立时所被期望的实用价值。不想翻墙的和不会翻墙的,你只要告诉他那里有道墙,他就不会心存妄想;有心想翻墙的,铜墙铁壁也是形同虚设。
这都是很浅显的道理,我能想到,墙的主人必定也能想到,所以我认为不会是因为上述二文中所提到的原因,但事实是sourceforge被封掉了(为了证实,我刚刚趴在墙头向那边瞄了一眼, sourceforge.net/org/com,硬硬的都还在),所以一定是有什么原因的,我宁愿相信这是一次操作失误,或者有其他什么不为人知的深层原因。同时,我保留对封杀者及其列祖列宗使用大量文明用语的权利。
我觉得sourceforge的被封(姑且不论是什么原因),就像是当年的大明朝大清朝的闭关锁国,禁止民间对外交流,禁止对外通商,禁止学外语,否则咔嚓咔嚓...那个时候这么做是有道理的,彼时天朝自认乃泱泱大国,礼仪之邦,地大物博,不屑也不必与蛮夷之邦交流通商,更不愿外来的思想文化误导国民,影响教化。问题是,那个时候的天朝有这样的自信心和自豪感,现在呢? sourceforge是世界上最大的开源软件社区,是全球软件行业从业人员的智慧结晶,是软件技术学习与应用的宝库...就这样被毫无道理的拒之门外,我们有我们祖先的那种自信吗?我们的软件产业很牛吗?我们不屑于学习国外同行的技术与经验吗?我们不必参与到全球的软件发展进程中吗?一个专业的技术网站有什么能够颠覆国家政权影响社会和谐的阴谋吗?真正对sourceforge有需要的人会被挡在墙外吗?和谐不需要理由吗?
不知道政府的上访办能否接受要求互联网解禁的请求,如果可以,我的上访请求提纲如下:
1. 我是中华人民共和国公民,热爱祖国,拥护党和政府,
2. 我接受过初中以上教育,具有基本的分辨是非的能力,
3. 我是一个互联网使用者,工作和生活都与互联网相关,
4. 我坚决抵制并打心眼里讨厌xx功,x独以及其他一切破坏社会和谐安定团结的组织及其言论,即使不劳gfw,我自己也坚决把这些东西都封上,我请求gfw请注意力都放在上面,还国人一个清静和谐的互联网;
5. 我赞成非礼勿视,非礼勿听,非礼勿动的原则,对来自互联网的不健康内容做到视而不见,见而不信,同时我会尽力把这一点灌输给我的子女亲朋,肯定比gfw会尽心,所以不劳gfw,其实gfw也封不住;
6. 我强烈抗议gfw简单粗暴的工作方式,其基本工作原理是:墙上有个污点,就把屋子拆了,饭里有只苍蝇,就把食堂砸了。gfw本身是一面墙,我们理解创建它的初衷,我们也都不反对用它来屏蔽掉特定的信息,它的存在没有问题,有问题是墙的管理者,这种一刀切的工作作风是不负责任的表现,是缺乏能力的表现。
7. 建议政府的互联网管理工作也要透明化,就像越来越多的其他职能部门所做的那样。必需能经得起公众的质疑,比如:你有没有管理原则?你的原则是什么? sourceforge或wikipedia这样的网站被封掉是基于什么样的原则?这样的原则合理吗?合理不合理是由谁来决定的?如果wikipedia 里存在某些你认为不当的内容,在不屏蔽掉整个网站的前提下,你能否屏蔽掉不当内容?为什么不能?是理论上不能还是你不能?是你嫌麻烦还是你能力不够?你知道wikipedia是可以自由修改的不?你能否把一刀切省下来的时间用来组织人力物力去创建和修改wiki条目,在全世界的互联网用户面前以正视听?做这样的事情,是x功 x独x会的力量大还是我们天朝力量大?还是你不屑于去做这样的事情?难怪da‘lai在海外一呼百应,是因为我们总是害怕自己的人民看到外面的“反动言论”,所以把自家的窗户封上,小人在外面说我们坏话我们连听都听不见,更不用说出去辩白,结果外人听了小人的话,都觉得我们是坏人,等到我们想跟人家去解释的时候,人家早已先入为主了。
8. 一个有气度有自信的民族是不会整天把心思放在如何阻塞国民的视野和言路上的,人民有分辨是非的能力,人民有发表看法的权利,人民有获取信息的自由,不要自以为是的小看了人民的能力、自制力和爱国精神,不要一到开大会之前(政府的,党的,甚至眼前这个运动会)就开始大规模的突击式建设和谐社会,这是为了完成领导提出的建设和谐互联网的要求吧?!“凡是境外的,脱离控制的,用户可以自由创作内容的东西通通封掉!”,难道领导就是这么要求的吗?
“和谐社会”不是现在提出来应景的,创建和谐社会是中国人自古以来的共同理想,当”和谐“一词被动词化的时候,就应该引起注意,以"和谐"为名义的事情并不一定都是合理的,当某些事情需要被“和谐化”的时候,请考虑清楚“和谐”的目的是什么,“和谐”的原则是什么,必需被“和谐”的理由是什么,三思而后行,请不要给这么美好的一个词汇抹黑。
2008年6月15日星期日
ibeyond的小有名气
google app engine我也试了,用了,觉得不错,一个别样的web host,能方便的访问google资源,目前只支持python以及一个精简的web框架,感觉yet another rails implementation,更贴近Django(主要支持的一种template就是Django的view template),没什么太大兴趣。不过ibeyond的小有名气让我对之前的体会更深刻:好的想法总是比工具更重要。
主观臆断一下,实现应该不会太难,google app engine提供了访问google资源的api,当然应该包括对blogger访问的api,建一个appspot(比如gfw.appspot.com),把传入的id与blogspot.com组合成url,访问之,返回之,一个blogger.com的代理就诞生了,妙处在于以google的服务器为代理,除非google app engine被封掉了。不过这很有可能,google被阉割的太多了,典型的如之前的page creator。总结一点,凡是境外的,zf没法直接控制的,并由用户自由创建内容的东西,都可能是被和谐的对象,之前的Tumblr用得好好的,NND,被封掉了,眼下的google sites,功能很好,技术很棒,但从gfw及其主人的视角来看,与page creator大同小异,早晚是被和谐的货,google app engine呢?就看ibeyond这个巧妙的想法的实现吧,即使整个google app engine被和谐,也是“情理之中”的事。所以如果哪天google app engine消失于国内用户的的浏览器,ibeyond的gfw proxy也是“功不可没”,:D。