web analytics

存档

‘技术新闻’ 分类的存档

Bret Victor – Inventing on Principle

2012年3月9日 42 条评论 24,861 人阅读    

Bret Victor简历) – 苹果公司的UI交互设计师(大神级的人),在 CUSECCanadian University Software Engineering Conference) 上做了一个题为 “Inventing on Principle” 的演讲(vimeo视频链接),这个演讲中展示了五个示例:

  • 用程序画树。如何把程序绘图变成实时的,如何把程序和图映射起来。
  • 游戏调试。在实时编程的基础上,可以更容易的让你看到程序参数对游戏的调整,甚至对游戏过程的可视化调试。
  • 算法调试。在写二分查找算法时可以实时看到程序的执行过程。边写边看到。
  • 电路图。可以实时地看到电路图中各个部件的对1/0信号的处理。
  • 动画。一种比flash制作动画更NB 的方法。

下面是优酷上的视频——你一定会被示例中的那些编程工具所震撼!

不过,Bret并不是在说什么编程,也不是在说什么技术,他是在说 How to live your life。

阅读全文…

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

Quora使用到的技术

2011年7月4日 18 条评论 13,283 人阅读    

以前向大家介绍过Stack Exchange的系统架构Facebook的系统架构,今天和大家说说Quora的。本文主要参考了Phil Whelan的这篇文章《Quora’s Technology Examined》。关于Quora是个什么网站我就不多说了,国内对他的C2C网站叫“知乎”。呵呵。我们还是来看看Quora的技术吧。

Search-Box

Quora只能搜索问题,主题标签,用户名,和主题标题。没有全文搜索,所以,你无法搜索问题和答案的内容。而搜索中使用前缀搜索方式,比如你输入mi,则Microsoft会马上出来。其搜索还会有一些非常简单的模糊匹配的算法。另外,如果有重复的问题,其中一个问题会自动跳转到另一个问题,但是在搜索中还是会出现。搜索中没有拼写检查。

一开始,他们使用的是一个开源的搜索服务器,叫Sphinx。其支持上述的那些功能。现在他们不用这个技术了,因为受到了一些限制。他们做了一个比较新的解决方案,这个算法由Python实现。

参看What libraries does Quora use for search?

实时查询

Quora的查询是非常高速的,其查询请求是通过AJAX的GET请求发送的,结果返回用的是JSON数据格式,但他们解析JSON是在服务器端,而不是通过浏览器的javascript。这么做的原因可能是他们想高亮搜索关键词,似乎使用Client端的Javascript非常不好做。

Quora的即时搜索好像比较暴力,如果你输入Microsoft(一共9个字符),你会看到其会像后端发送9次查询——每按一个键一次,无论你敲这个单词的速底有多快,每输入一个字符都会发一个请求给后台。对于这样的看上去没有效率的对后台的请求,后台的服务器端会来控制相关的前台请求,所以,就算是前台这样做,也不会增加服务器端的负载,因为后台会做相关的处理。

Quora的搜索使用HTTP长连接,当你开始敲查询的时候,连接就建立了,这个连接会持续在那里,你下次搜索的时候会继续使用这个连接,除非你60秒没有动作了。

参看Is Quora going to implement full-text search?

阅读全文…

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

Facebook 的系统架构

2011年4月25日 21 条评论 22,712 人阅读    

来源http://www.quora.com/What-is-Facebooks-architecture (由Micha?l Figuière回答)

根据我现有的阅读和谈话,我所理解的今天Facebook的架构如下:

  • Web 前端是由 PHP 写的。Facebook 的 HipHop [1] 会把PHP转成 C++ 并用 g++编译,这样就可以为模板和Web逻贺业务层提供高的性能。
  • 业务逻辑以Service的形式存在,其使用Thrift [2]。这些Service根据需求的不同由PHP,C++或Java实现(也可以用到了其它的一些语言……)
  • 用Java写的Services没有用到任何一个企业级的应用服务器,但用到了Facebook自己的定制的应用服务器。看上去好像是重新发明轮子,但是这些Services只被暴露给Thrift使用(绝大所数是这样),Tomcat太重量级了,即使是Jetty也可能太过了点,其附加值对Facebook所需要的没有意义。
  • 持久化由MySQL, Memcached [3], Facebook 的 Cassandra [4], Hadoop 的 HBase [5] 完成。Memcached 使用了MySQL的内存Cache。Facebook 工程师承认他们的Cassandra 使用正在减少,因为他们更喜欢HBase,因为它的更简单的一致性模型,以到其MapReduce能力。
  • 离线处理使用Hadoop 和 Hive。
  • 日志,点击,feeds数据使用Scribe [6],把其聚合并存在 HDFS,其使用Scribe-HDFS [7],因而允许使用MapReduce进行扩展分析。

阅读全文…

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

中国仍是IE6的重灾区

2011年3月10日 40 条评论 6,324 人阅读    

“IE6于10年前诞生,现在应该是我们同IE6告别的时候了。”微软公司日前推出IE6倒计时网站(the Internet Explorer 6 Countdown,网址为www.ie6countdown.com),旨在尽早淘汰IE6,让用户升级到新版IE浏览器。

值得注意一点的是,在这张百分比图上所显示的目前仍在使用IE6浏览器上网的百分比第一的是中国——34.5%,这个符合我国国情——什么都要争第一。我国人口世界第一占全世界1/4,网民也是世界第一,还在使用IE6的网民占全世界的1/3,可以我国网民的严重落后。根据CNNIC今年的报告,我国现有4.5亿网民,34%也就是1.5亿用户,也就是说你身边每三个人中就有一个在用IE6。而中国的IE6网民占全世界使用IE6网民的一半。

另外,我发现亚洲是重灾区啊,包括中日韩台印都很猛啊,看来微软在亚洲的营销的确不错。

我查看了一下Coolshell.cn的2011年到今天为止访问统计,排名第一是的Chrome(41.5%),第二位的是Firefox(23.22%),第三位的是IE8(10.7%),第四位的是IE6(4.8%)。IE6的IP数有6400+。

看来,在我国程序员这个人群中,越来越多的人使用Chrome+Firefox,挺喜人的,但是IE6还有4.8%,还不如土耳其,马来西亚,印尼等国家。

分类: 技术新闻, 轶事趣闻 标签:
好烂啊有点差凑合看看还不错很精彩 (7 人打了分,平均分: 4.86 )
Loading ... Loading ...

微软用新浪来当反面教材

2011年3月3日 18 条评论 13,925 人阅读    

微软的IE的Blog发布了这样一篇文章,以此来展示IE9是如何过滤广告和ActiveX控件的功能。其使用了“新浪”来做为反面案例,新浪并不是第一次成为反面案例了,之前就有人用新浪等网站来表明中国的网站的设计是怎么个烂法。呵呵。伟大的新浪。

下面是新浪的在IE9下没有开启过滤的样子,我们要吧看到满天飞的flash,广告,还有视频……

新浪网站没有使用IE9的过滤功能
新浪网站没有使用IE9的过滤功能

下面是开启了过滤功能后的新浪网页(个人感觉还是那么乱,没办法底子太差了)

阅读全文…

分类: 技术新闻, 轶事趣闻 标签: , ,
好烂啊有点差凑合看看还不错很精彩 (9 人打了分,平均分: 5.00 )
Loading ... Loading ...

Stack Exchange 的架构

2011年2月23日 6 条评论 6,144 人阅读    

近日,Stack Exchange系统管理员blog上发布了一篇关于Stack Exchange的架构一瞥,其包括了Stack Overflow, Server Fault 和 Super User的 Stack Exchange 网络。注意最后一个关于人员的配置。希望能给大家一些相关的参考。

网络流量

  • 每月9千5百万个PV
  • 每秒800 HTTP 请求
  • 每秒180 DNS 请求
  • 每秒55Mb 的带宽

数据中心

阅读全文…

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

如何“加密”你的email地址

2011年1月27日 9 条评论 3,571 人阅读    

现在在网上要小心,无论是保护好你的用户名和帐号,还是我们的电子邮件地址。在网上有很多爬虫程序专爬我们的电子邮件地址,一量被爬中了,那么你的邮箱里就是一堆又一堆的垃圾邮件,就好像我的haoel(at)hotmail.com一样,在7、8年前,每天几千封的垃圾邮件。现在hotmail的垃圾邮件过滤得好一些了,不过也有每天40封左右的垃圾邮件。但是我们在自己的网页上又需要发布自己的email地址。所以我们需要搞乱我们的邮件地址,就像那种非常规的搞乱代码一样。不过,我们还需要能认人读的出来。

一般来说,在网上现在很普遍的做法是——

  • 1)用图片,可以用PHP动态生成那个验证码式的。
  • 2)把@变成at,把点变成dot,如 haoel(at)hotmail(dot)com之类的。
  • 3)把a变成@,写成haoel@hotm@mail.com

不过这些还是能被爬到,用图片的方法不利于用户拷贝粘贴。下面介绍几种方法:

第一种:使用CSS样式

反转字序

span.codedirection { unicode-bidi:bidi-override; direction: rtl; }
<p><span>moc.liamtoh@leoah</span></p>

阅读全文…

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

AES加密算法动画演示

2010年10月15日 10 条评论 10,259 人阅读    

波士顿大学的Howard Straubing做了这么一个动画来展示AES加密算法的演示,挺不错的。


点击这里看全屏

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

苹果开发工具Xcode 4 第二预览版

2010年7月23日 4 条评论 3,358 人阅读    

今天,苹果公司向开发者发布Xcode 4 Preview 2,这是一个IDE用来开发在Mac,iPhone,iPad上应用程序的工具。在这个第二预览版中,主要有以下新的功能:

  • 这个版本不像以往的版本有太多的窗口,其把以前那些窗口督统一起来,只有一个窗口。
  • 集成了Interface Builder(以前这个东东和Xcode是两个东西)
  • Xcode Assistant 可以让你的设计和代码同时呈现。
  • LLVM Compiler 2.0。LLVM是下一代的编译器,其完全支持C,C++和Objective C,而且编译的速度和编译成的执行速度都快于GCC。同时也引入了LLDB做为新的调试器。
  • 多版本编译。这个功能可以让你在IDE中编译两个版本的代码,而且可以和Subversion或Git集成。

你可以访问 What’s New 来看看具体的细节。

苹果开发工具Xcode 4 Preview 2

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

Kent Beck 谈单元测试和持续部署

2010年7月22日 1 条评论 1,196 人阅读    

文章来源

2010年7月2日,Roy Osherove 和 Kent Beck 在 blog.typemock.com 进行了一次对话,话题涉及单元测试(Unit Testing),JUnit Max(Kent 开发的一个单元测试的 Eclipse Plugin,不免费),和面向初创企业的精益方法(Lean Startups)。

单元测试和 JUnit Max
作为软件开发方法学的大师、极限编程XP的创始人、敏捷宣言的创始人之一,Kent Beck 一直在努力最大化地利用单元测试的价值,他说一些程序员仍然认为单元测试并不是他们的工作,但是单元测试确实能够提高软件的质量。目前他正在开发 JUnit Max,这是一个 Eclipse plugin,每当程序员保存一个 Java 源文件的时候,JUnit Max 就会运行测试并报告反馈信息。测试中的错误将会如同编译错误一样被报告给程序员。JUnit Max 的核心思想是测试错误应该和编译错误一样被 IDE 报告给程序员,程序员不需要额外的菜单选项或者运行其他的工具来运行测试。特别是那些经常失败的测试,对于程序员来说是非常有价值的反馈信息。在测试驱动开发(Test Driven Development – TDD)中,我们重复着这样一个循环:“编写一个‘失败’的测试(Failing Test)” – “编码实现功能以便让测试通过”,随着开发的深入,测试越来越丰富,测试能够反馈给程序员的信息也越来越多,它们可以帮助程序员找出那些需要改进的代码。JUnit Max 能够缩短这个循环的周期,因为它更为频繁地运行测试和提供反馈。Roy 问道:“当你一个人编码的时候,你是否严格地遵循 TDD,即一定要先写测试,然后写实现代码。我个人发现这并不是一件容易做到的事情,特别是当一个人编码的时候。” Kent 回答:“视情况而定,有时候并不需要死板地遵循 TDD,比如当我在做一些探索性或者说实验性的编码时,并不需要写测试,因为我只是想尝试一下某些功能和特性。”

阅读全文…

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