站点终于恢复了
Sunday, January 31st, 2010非常感谢redphp.net,这家host不错。虽然源于国内无耻的严打,经过一点折腾,终于回到正常。我一个小小blog就这么麻烦,真不知道国内那些网站怎么过来的。
希望国内互联网环境能恢复理性健康。
非常感谢redphp.net,这家host不错。虽然源于国内无耻的严打,经过一点折腾,终于回到正常。我一个小小blog就这么麻烦,真不知道国内那些网站怎么过来的。
希望国内互联网环境能恢复理性健康。
刚和同学聊天时,问我blog怎么好长时间都没有更新了。看了看上篇文章的日期,离现在也有两个月有余了,有些惭愧。最近在做一些有意思的技术调研,倒是会在接下来的文章中分享一些。其实这段日子也在写一些东西,不过不在自己的blog上面了罢了。
时间总是匆匆,让我们继续前行…
09年是year of twitter, 这个东西现在火的一塌糊涂,google和facebook对它是羡慕的不得了。国内IT圈中也是刮起了一阵twitter风,好像你没有个twitter都不好意思和别人打招呼。但是当你屁颠屁颠地在上面发点东西的时候,也同时也被大量的信息噪音给淹没。有的人用twitter在聊天,有的人发布的信息非常多但是毫无意义,慢慢地这个东西成为了一种负担。其实twitter火起来有它的原因,但要看怎么来用了。
twitter来至一个简单的想法,告诉别人你在做什么。现在有很多的工具来帮助人们进行交流,比如blog和IM,但是日常发生在自己身上的一些事情使用这样一些工具都不太适合。我们不可以发一个blog告诉别人我在做什么,也不可能在聊天工具上面像疯了似的给每个人发这些消息。然而通过twitter,人们可以进一步加深相互的了解。比如,我的一个好朋友发消息说他在做一道菜。我看到后,很好奇他居然还会做菜呀,于是我们有了公共的兴趣点,可以进一步地聊聊。
从技术上面来讲,twitter的火爆说明了开放API的成功。有了twitter提供的API,就有了它的客户端的繁荣,桌面的、浏览器插件的、手机的….任何平台任何环境,只要你想到的都可以找到一堆的twitter客户端。 如果twitter没有这些多的客户端和社区支持,估计也难以流行起来。
话说回来,怎么用twitter呢?我想可以从两点来看,一是你希望收到什么消息;二是你应该给出什么样信息。关于收到什么消息,基本的原则应该是:只follow你所关心的人和事。前端日子follow了很多技术名人的twitter,发现他们发的信息根本都不是我关心的。我并不是他们的朋友,我根本不关心你和谁吃饭了,你今天去哪里运动了。所以很简单,将你并不认识的名人从你的follow列表中删掉,因为你对这些名人其实真正关心只是他的知识,而这些只要订阅他们的blog就可以啦。对于技术和某种事情的关注,follow这个社区的twitter就好了。另外对于那些乱发垃圾消息的人,删除好了。这个世界不是信息太少,而是太多了。
那用twitter应该发什么样的消息呢?我想原则应该是:只发有用的信息,并且这个信息不需要通过其他消息的上下文就能理解。如果是个人还是用twitter的本意就好了,就是发你在做什么,或者发现什么有意思的事情。社区类的twitter可以发当然社区发生重要的事情。切忌使用twitter进行聊天了,因为follow你的人并不一定follow了和你聊天的朋友,所以这些没有上下文的消息就毫无意义。
最后我想到了一位美女同事对于twitter的理解,twitter的消息就像一种缘分,你看到了就是一种缘分,不需要像聊天那么有紧迫感,也不像blog那么正式。所以还是一切随缘吧。
WordPress总是给我带来一些小小的惊喜,刚刚更新到2.7,居然有如此大的变化。
如何?一起来感受美妙软件带来快乐吧。
一直以来都在用Aptana的Editor来编辑Javascript/CSS/HTML,都挺好。今天尝试了Aptana自己一直在推的所谓‘世界上第一个Ajax Server的Jaxer。
在Jaxar里面写code倒是很有意思,所有你需要做的事情就是写Javascript/CSS/HTML。你根本不需要使用任何其他server-side语言,所有的事情就是写Javascript就可以了。来看一个例子:
<script type="text/javascript" runat="server">
function getAuthenticatedUser()
{
var username = Jaxer.session.get("username");
if (typeof username == "undefined") return null;
var rs = Jaxer.DB.execute("SELECT * FROM users WHERE username = ?", [username]);
if (rs.rows.length == 0)
{
return null;
}
return rs.rows[0];
}
</script>
用‘runat=server’就可以让上面对数据库的操作运行在server端,而client端对该方法的调用不变,这样在写Web应用时就不用在Server side和client side两边跑来跑去了。并且还有对template的支持。
这个和原来老毛和科长做的project zero client programming model是非常相似的,目的是都用来屏蔽client和server之间的boundary。不过Jaxar做的更加彻底,通过扩展Apache的server,加入自己的Server side framework和client side framework,让所有的一切都通过写JS就搞定了。并且对session,database, web ,SMTP 进行支持,对于一般的应用差不多就够了。老毛原来做的也是通过加入client framework以及扩展server的一些能力来让开发者在client和server之间进行无缝交互。可惜还是需要写Javascript和groovy,并且有一大堆的convention,不知道为什么没有发展下去(又是政治问题?).
那么这种开发模式到底好不好呢?我觉得对于比较小的应用,不考虑扩展和与外界交互,还是一个比较快捷的开发方式。毕竟client和server的无缝交互所带来的好处是非常大的,比如说学习的门槛低(只需要知道一个Javascript就搞定了), 数据传输中麻烦的异步调用,编码,解码,格式转换等等都将消失。但是一旦你的web应用大一些的时候,我想这种模式就面临着很大的问题。关键还是不容易扩展,当它把UI和数据逻辑混合的时候,要做分离是比较困难的。当然你可以在它的编程模型上写一层数据操作层,但是这样就变成了典型的RPC了。另外,这样做并不REST,Jaxer开发出来的应用根本提供不了service(更谈不上RESTful),这样就无法被它人所用了。如果Jaxer应用以后要做整合,那绝对是一个大麻烦。
花了4个小时的时间,总有整出现在的这个theme。基本上是在wordpress的default theme上面改了一些style。很简单,我很喜欢。
有什么意见?
找烦了,还是找不到自己喜欢的blog theme,准备自己来设计自己的blog了。于是在http://bestwebgallery.com看了很多酷酷的网站,最后决定设计一个最简洁的theme。同时也可以让自己玩玩wordpress了。我很不明白,为什么wordpress的default的theme不是和自己的管理界面一种风格的,估计会在以后的版本中更新。突然在想,是否可以用自己的assemble tooling的style来作为自己的theme?呵呵,做为以后的一个计划吧。