22
五/10
2

《高性能网站建设进阶指南》书评

这本书比上一本《高性能网站建设指南》更加的深入,虽然目前我只读到第六章内容,但是我已经把该书的等级从”推荐“改为”力荐“。

目前看到的对几个经典问题的剖析:javascript单线程问题,脚本拆分节省下载负载问题,行内脚本和外部链接脚本的加载过程以及对组件下载和渲染的影响,内存使用对响应时间的影响(其中提到了GC机制,对后端开发人员也有很好的参考价值)。

本书中出现了好几个我一直膜拜的javascript的牛人,其中有jquery框架的创始人,有jsmin的作者(一个js的压缩工具)。结合本书的javascript章节,我相信对javascript的机制会有个更加深入的了解。正如上一本书中所说,70%的页面响应时间都花费在浏览器端,这部分的优化对高负载流量站点来说不容忽视,不管是架构师,还是前台或者后端开发人员本书都有很高的参考和研究价值。

注:本书中部分章节需要有程序设计的基础知识,比如多线程和内存管理。

今天终于看完了所有章节,个人感觉后半部分三个章节内容写得不错。1,javascript代码优化。此部分内容不仅仅局限于javascript代码,对别的语言也是一个参考,(除了作用域对性能影响),因为大部分讲的是程序控制流程对语言性能的影响。
2,Gzip压缩。这个章节很有趣,分析了15%的用户在http请求头中为什么没有gzip。并给出了一些解决方案,这个章节的特约作者在上一本书中对gzip压缩也做了详细的介绍。书中那个性能对比图比较重要。
3,图像优化。可能做后端程序的人对这个方面不是很了解,这个章节刚好对我是个补充。以前项目涉及到图片的压缩率,处理图片的cpu占用率和图片压缩算法,加上这个章节的介绍,就更完美了。

22
五/10
4

Google的pac-man

经典的pac-man吃豆子小游戏大家小时候都玩过吧,今天是这款游戏面世的30周年纪念日,google的搜索主页logo也换成了这个截图,不过更加惊奇的是这款游戏已经用javascript实现出来了,也就是说在google的主页可以直接体验下,背景音乐也在里面。

google无独有偶,http://jsmario.com.ar/这个站点的作者Jacob Seidelin已经用javascript实现了玛利奥的小游戏,大小仅仅14k。这款游戏利用了Canvas元素(IE中用HTML 模拟),图像存储在加密的字符串中, 还用base64存储了MIDI背景音乐。除了这些技巧,其它代码就是我们熟悉的HTML、CSS和JavaScript。感叹牛人们的强大,感叹牛人们对经典的追随。

你是否想到很常见的技术竟然可以做出这么牛的应用?我记得以前也看过一个用汇编做出来的只有7k大小的迷宫程序,当时也很乍舌。

关键字:
29
四/10
1

【转】著名网站系统架构设计

学习web架构不可多得的资料,文章来源:

http://yangzb.javaeye.com/blog/581025

WikiPedia 技术架构学习分享
YouTube 的架构扩展
Internet Archive 的海量存储浅析
LinkedIn 架构笔记
Tailrank 网站架构
Twitter 的架构扩展: 100 倍性能提升
财帮子(caibangzi.com)网 站架构
Yupoo! 的网站技术架构
37Signals 架构
Flickr 的访问统计实现以及其他
PlentyOfFish 网站架构学习
Yahoo!社区架构
有关 Alexa 与 AOL 部署集群文件 系统
eBay 的存储一瞥
eBay 的数据
eBay 的数据库 分布扩展架构
eBay 的数据层扩展经验
eBay 的应用服务器 规模
性能扩展问题要趁早
Scaling an early stage startup
Facebook 的 PHP 性能与扩展性
Skype 用 PostgreSQL 支撑海量用户
闲谈 Web 图片服务器 说说北京奥运购票系统瘫痪这事儿
Architectures You’ve Always Wondered About eBay’s Architectural Principles
Building a large scale SaaS app Scaling an early stage startup

QQ游戏 百万人同时在线服务器架构实现
大型Web2.0站点构建技术初探
Web站点数据库分布存储浅谈
QQ的架构讨论
Notes from Scaling MySQL – Up or Out
Yapache-Yahoo! Apache 的秘密
LinkedIn 架构与开发 过程
Scalability Best Practices: Lessons from eBay
看 Twitter 人谈架构扩展问题
Facebook 海量数据处理
web 2.0海量小文件cache集群探讨
Cocolog 从 PostgreSQL 迁移到 MySQL 的经验
疯狂代码:大型网站架构系列(未完待续) 收藏
Amazon Architecture Scaling Twitter
37signals Architecture Digg Architecture
Flickr Architecture
YouTube Architecture
Google Architecture
LiveJournal’s Backend
LiveJournal Architecture
eBay Architecture

关键字:
21
四/10
0

Netbeans下使用Monaco字体

Monaco字体是MacOS中的字体,比较好看,下载地址参考我的另外一篇文章。

http://www.terrysco.com/node/font-monaco.html

直接使用这个字体有个问题:中文不能正常显示,而是变成了小方块。(windows下会有这个问题)

在JDK安装路径下的jre\lib\文件夹下找到fontconfig.properies文件(如果没有,一般是没有的,就将 fontconfig.properties.src复制或改名就ok),打开此文件,要修改3处地方。

# @(#)fontconfig.properties    1.7 09/08/26
#
# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
#

# Version

version=1

# Component Font Mappings

allfonts.chinese-ms936=SimSun
allfonts.chinese-ms936-extb=SimSun-ExtB
allfonts.chinese-gb18030=SimSun-18030
allfonts.chinese-gb18030-extb=SimSun-ExtB
allfonts.chinese-hkscs=MingLiU_HKSCS
allfonts.chinese-ms950-extb=MingLiU-ExtB
allfonts.devanagari=Mangal
allfonts.dingbats=Wingdings
allfonts.lucida=Lucida Sans Regular
allfonts.symbol=Symbol
allfonts.thai=Lucida Sans Regular

关键字:
29
三/10
2

CodeIgniter 入门

终于花了1个半星期的时间看完了“CodeIgniter 1.7”这本书,300多页,不过内容还算丰富。从web开发的各个方面介绍了CodeIgniter这个PHP框架,章节的安排跟那本“Pro Drupal Development”类似。看完本书后,感觉codeigniter确实能弥补一些目前的PHP框架开发现状,目前来说基于PHP的CMS比较全,国外流行的有drupal,joomla,CMSMS等等,国内的就更数不胜数了。但提到framework,大家都想到zend framework,研究过一段时间这个框架,感觉过于庞大了,至于剩下的cakePHP,thinkPHP,国内的FleaPHP都没有涉及过,第一个接触的正式PHP框架(正式是针对drupal来说)就是CodeIgniter了。

使用drupal2年多,已经身心疲惫。总是感觉还不是那么的灵活,性能还不是那么的好,总想对它控制得更多,但我们能做的只有hook。不可否认,drupal在快速搭建一些中小型站点确实是不错的选择,模块很多,社区很活跃,但是如果用来开发一些大型的应用就显得力不从心了,比如我们开发一个万人活跃用户的SNS社区,一个多应用服务器架构的系统。drupal本身是面向过程的PHP通过HOOK机制组织起来的,这时我们就迫切需要一款MVC的面向对象设计的框架。codeigniter正是如此。

比较喜欢CI(codeigniter的简称)的一些设计理念,第一个就是从不强迫用户,CI为开发者提供了很多功能(helper,plugin,library等等),方便开发者,但它不强迫你使用这些功能,你完全可以自定义开发自己的功能模块,甚至可以很方便的集成第三方工具进来,不像drupal,你必须对drupal机制要很了解,才能做一些比较深入的工作。另外,CI的定制性很高,你可以参考CI的文档对其任意定制,足以迷惑用户是不是CI开发出来的站点。

网上有一个老外做的视频,20分钟用CI搭建一个blog系统,虽说有些夸张,但功能也太简陋了,不管是安全性还是UE都没有考虑太多,我做过一个测试,3-4个小时开发出来一套多用户blog系统是完全可行的。

此外,CI为我们提供了很多类库,涵盖的功能如下:

  • 文件下载
  • 邮件发送,可包含附件
  • 表单
  • FTP
  • 分页

。。。

CodeIgniter,值得学习。