Browsed by
分类:编程语言

国内微博和Twitter的最大不同

国内微博和Twitter的最大不同

霍炬近两个月前写过一篇《microblogging和微博信息架构产品差距和影响》分析了国内微博和Twitter的差距,重点就是因为信息的平等性。我也一直在观察新浪微博,以及新浪和Twitter的一些功能上的差别。发现了一些东西,想在这里和大家分享一下。我的见解达不到像霍炬那样的层次,作为一个技术人员,我只能在产品功能上做些分析。欢迎大家指正。

现实状况

国内的微博就是新浪,Sohu微博,腾讯微博,以及饭否。我们不难发现:

  • 搜狐的和腾讯的就是Copy新浪的。在Following和Followed上大家都有自己所谓的“创新”
  • 饭否是在Copy Twitter,这点太明显了,不过,抄在了表面,而且相当的怪。

国内所有的这些以Twitter为蓝本干出来的这些东西,其和Twitter在核心功能上有这些差别:

  • Twitter的Retweet一点信息都加不上,国内的微博的转发需要加上自己的评论,也就形自己的信息。
  • Twitter的Reply只会有一个@原来的人,国内的Reply也很相似,只是勾上转发后就会把Reply的东西以“//@XXX”的方式成为自己的信息。
  • 饭否的做法比较怪,转发加原文(想做成新浪的样子),回复不加原文,只有@(Twitter)的样子,可见饭否的分裂。

SNS中的上下文

这段时间,我一直在想,新浪为什么要做成这样,为什么不做成Twitter那样,或者,为什么Twitter做成那样而不是新浪这样?从表面上看上去,新浪的“回复+转发”会带被回的信息,而Twitter的回复不带上下文,Twitter上一些我fo的人的话题完全看不懂,不像新浪的还能看到上文

老实说,在一开始,我还觉得新浪微博这种用法和技术上要比 Twitter 要强大,现在看来是我当时对Twitter并不熟悉。经过这段时间的观察。我恰恰发现新浪在转发和回复上都要带上原文其实是一件很没有技术含量的事。要说清这个事,请让我说一下评论和回复的事。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (29 人打了分,平均分: 4.17 )
Loading...
对象的消息模型

对象的消息模型

[ ———— 感谢 Todd 同学 投递本文,原文链接 ———— ]

C++对象模型

话题从下面这段C++程序说起,你认为它可以顺利执行吗?

//C++
class A {
    public:
        void Hello(const std::string& name) {
           std::cout << "hello " << name;
         }
};
int main(int argc, char** argv)
{
    A* pa = NULL; //!!
    pa->Hello("world");
    return 0;
}

试试的确可以顺利运行输出hello world,奇怪吗?其实并不奇怪,根据C++对象模型,类的非虚方法并不会存在于对象内存布局中,实际上编译器是把Hello方法转化成了类似这样的全局函数:

void A_Hello_xxx(A * const this, const std::string& name) {
    std::cout << “hello “ << name;
}

对象指针其实是作为第一个参数被隐式传递的,pa->Hello(“world”)实际上是调用的A_Hello_xxx(pa, “world”),而恰好A_Hello_xxx内部没有使用pa,所以这段代码得以顺利运行。

对象的消息模型

如果是研究C++对象模型,上面的讨论可以到此为止,不过这里我想从另一个层面来继续探讨这个问题。OOP的先驱人物Alan Kay在总结Smalltalk的OO特征时强调:

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (10 人打了分,平均分: 4.80 )
Loading...
CSS图形

CSS图形

下面的示例展示了使用纯CSS制作的各种图形,你可以自由地修改文中的CSS代码。这个收集的原文在这里

经测试,IE9, Chrome, FF, Safari都可以正常显示。

正方形
长方形

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (9 人打了分,平均分: 5.00 )
Loading...
PHP分页技术的代码和示例

PHP分页技术的代码和示例

本文来自:10 Helpful PHP Pagination Scripts For Web Developers

分页是目前在显示大量结果时所采用的最好的方式。有了下面这些代码的帮助,开发人员可以在多个页面中显示大量的数据。在互联网上,分​页是一般用于搜索结果或是浏览全部信息(比如:一个论坛主题)。几乎在每一个Web应用程序都需要划分返回的数据,并按页显示。下面的这个列表给出的代码可以让你的开发很有帮助。学习这些代码,对于初学者也很有帮助

1) 使用Ajax分页

 

 

下面这个示例使用了jQuery + PHP。 Demo link

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (12 人打了分,平均分: 4.67 )
Loading...
疯狂的 Web 应用开源项目

疯狂的 Web 应用开源项目

下面是一个Web应用的开源列表。没什么可说的,太疯狂了。尤其是Web 2.0那一堆。我不知道你怎么想,有些开源项目的源码写得挺不好的,尤其是性能方面。或许你会以为改一改他们就可以成为为自己所用,不过,改这些开源的项目还真不容易。玩玩还可以。

数字媒体

  • 相册(Flickr, Picasa)
  • Gallery,基于PHP + MySQL的Web相册。非常易于使用,包括一个配置向导,对于相片的操作包括自动生成缩略图、相片的大小改变、选择、排序等。
  • Piwigo,基于PHP + MySQL。配备了强大的功能,发布和管理您的照片,可扩展性和智能浏览功能,如类别,标签,或年表。这是网络和照片的标准要求。扩展使Piwigo更可扩展性和可定制的。
  • UberGallery,一个简单易用的相册。PHP。不需要数据库。
  • Zenphoto,一个简单的web相册程序,它能够简单的展示你的图片,并含有你所需要的所有功能和特点。可以和Wordpress集成。
  • 视频(YouTube)
  • Flowplayer,一个用Flash开发的在Web上的视频播放器,可以很容易将它集成在任何的网页上。支持HTTP以及流媒体传输。
  • Plumi,一个建立在Plone 内容管理系统上的视频分享系统,可帮助你轻松建立视频分享网站。
好烂啊有点差凑合看看还不错很精彩 (36 人打了分,平均分: 4.86 )
Loading...
语言的数据亲和力

语言的数据亲和力

[ 感谢 Todd 同学投递本文 ]

目前,程序设计语言似乎进入了一个蓬勃发展的时期,Javascript、Perl、Python、Ruby、Groovy等一批较新的语言正越来越多地被熟悉和使用,而C++、C#、Java等主流语言也在不断地融入函数式和动态性特征。程序员的百宝箱中可供选择的宝贝是越来多了,而社区中关于语言间的比较和争论也更为热烈,我们常常见到关于“面向过程和面向对象的比较”、“动态语言和静态语言的比较”、“命令式和函数式范式的比较”等比较。我注意到这类讨论的关注点多集中于设计相关话题,如“动态语言的Duck typing多态和静态语言的继承多态的比较”,“Prototype based和Class based的比较”等。但我认为还有一个十分重要的方面值得关注,这就是数据处理。

数据处理之所以重要是因为不论是本地信息存储还是系统间信息交换都需要建立在一定的数据格式基础上。另外,不管语言属于那种范式,设计上采用什么模式,在微观层次上程序很大一部分工作都是在做数据处理。所以,从数据处理角度比较和理解语言间的差异有重要的现实意义。虽然数据通常是平台和语言无关的,但不同的语言在处理某种格式的数据时会表现出不同的难度,甚至某些数据格式只能采用特定的语言才能实现,这就是数据亲和力的不同。

语言的数据亲和力(Data Affinity)指的是语言的数据模型与某种数据格式之间的匹配程度。语言对某种数据格式亲和力越强,则操作某类数据越容易。

 

二进制字节块格式

 

 

在偏底层的操作系统、嵌入式和通信系统中,二进制的字节块是最常见的一种数据格式。二进制数据布局紧凑和接近机器的特点使得它常常作为系统间通信或系统文件的数据格式,但一般高级语言都不方便直接和0101打交道,而是基于记录、结构体和类等结构化表示操作数据,这就存在着在底层的二进制字节块和高层的结构化数据直接的转换问题。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (19 人打了分,平均分: 5.00 )
Loading...
新浪微博的XSS攻击

新浪微博的XSS攻击

今天晚上(2011年6月28日),新浪微博出现了一次比较大的XSS攻击事件。大量用户自动发送诸如:“郭美美事件的一些未注意到的细节”,“建党大业中穿帮的地方”,“让女人心动的100句诗歌”,“3D肉团团高清普通话版种子”,“这是传说中的神仙眷侣啊”,“惊爆!范冰冰艳照真流出了”等等微博和私信,并自动关注一位名为hellosamy的用户。

事件的经过线索如下:

  • 20:14,开始有大量带V的认证用户中招转发蠕虫
  • 20:30,2kt.cn中的病毒页面无法访问
  • 20:32,新浪微博中hellosamy用户无法访问
  • 21:02,新浪漏洞修补完毕

 

新浪微博XSS事件
新浪微博XSS事件

 

在这里,想和大家介绍一下XSS攻击,XSS攻击又叫跨站脚本式攻击,你Google一下可以搜到很多很多的文章。我在这里就简单地说一下。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (22 人打了分,平均分: 4.82 )
Loading...
在函数外存取局部变量的一个比喻

在函数外存取局部变量的一个比喻

在StackOverflow上一这样一个关于C/C++的问题,问问题的人给了一个代码如下:

int * foo()
{
    int a = 5;
    return &a;
}

int main()
{
    int* p = foo();
    cout << *p;
    *p = 8;
    cout << *p;
}

你可以编译并运行这个代码(编译时会有一个Warning),结果是:5 8。看上去你可以存取一个函数内的局部变量。但这和我们理解的不一样——函数内的变量在函数退出时就被释放了,不应该在外部还可以被引用。当然,对于C/C++熟悉的人都知道其实并不是真正的释放,你依然还可以通过内存地址去进行操作,这是C/C++的内存管理的不安全性——指针可以用来乱指。

这个问题的解答是比较简单的,但是这个问题有一个答案中的比喻非常精彩。这个比喻是这样的——

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (11 人打了分,平均分: 5.00 )
Loading...
开源中最好的Web开发的资源

开源中最好的Web开发的资源

文章来源:Best “must know” open sources to build the new Web。个人感觉这个收集贴收集成相当的全。

学习HTML 5编程和设计

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (30 人打了分,平均分: 4.87 )
Loading...
HTTP幂等性概念和应用

HTTP幂等性概念和应用

[ 感谢 Todd 同学投递本文 ]

基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢?我认为很大程度上应归功于简单有效的HTTP协议。HTTP协议是一种分布式的面向资源的网络应用层协议,无论是服务器端提供Web服务,还是客户端消费Web服务都非常简单。再加上浏览器、Javascript、AJAX、JSON以及HTML5等技术和工具的发展,互联网应用架构设计表现出了从传统的PHP、JSP、ASP.NET等服务器端动态网页向Web API + RIA(富互联网应用)过渡的趋势。Web API专注于提供业务服务,RIA专注于用户界面和交互设计,从此两个领域的分工更加明晰。在这种趋势下,Web API设计将成为服务器端程序员的必修课。然而,正如简单的Java语言并不意味着高质量的Java程序,简单的HTTP协议也不意味着高质量的Web API。要想设计出高质量的Web API,还需要深入理解分布式系统及HTTP协议的特性。

幂等性定义

本文所要探讨的正是HTTP协议涉及到的一种重要性质:幂等性(Idempotence)。在HTTP/1.1规范中幂等性的定义是:

Methods can also have the property of “idempotence” in that (aside from error or expiration issues) the side-effects of N > 0 identical requests is the same as for a single request.

从定义上看,HTTP方法的幂等性是指一次和多次请求某一个资源应该具有同样的副作用。幂等性属于语义范畴,正如编译器只能帮助检查语法错误一样,HTTP规范也没有办法通过消息格式等语法手段来定义它,这可能是它不太受到重视的原因之一。但实际上,幂等性是分布式系统设计中十分重要的概念,而HTTP的分布式本质也决定了它在HTTP中具有重要地位。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (11 人打了分,平均分: 4.82 )
Loading...