IT技术博客大学习 共学习 共进步

技术文章

精选技术长文、实践记录与系统化阅读

技术文章精选

低噪声、高可扫读;标题、摘要、来源、标签一目了然。

最新文章

采集自各技术站点的近期文章。

IT 设计思想/ 2011-07-22 00:00:37 / 累计浏览 2,816

关于轻博客的11条问答与11条不负责任的评价

以下观点,主要来自于对Tumblr 39个tag,以及超过100位用户主页的分析结果,即《坑爹的Tumblr研究》之续。问:Tumblr到底是个什么东西,它更接近博客还是微博?答:两边都不沾。虽然有着博客的个性主页,以及微博信息高速流动的特征,但Tumblr更接近个性化的图片主题站。用户之间根据“阅读口味”进行弱关系连接。其中65%+的内容为纯图片,90%+的内容为图文混排,纯文字比例不足10%。而绝大部分的图片为转载。问:为什么Tumblr上的...

IT 其他/ 2011-07-21 23:58:51 / 累计浏览 2,514

rebar单元测试中源代码的中文乱码问题解决方案

Rebar在运行单元测试的时候,在每个单元测试的页面,提供到源代码的连接,这个连接会连接到一个根据源代码生成的html文件,在这个html文件中提供了列出行数的源文件,方便在测试用例出错时候,快速的定位错误。 但是此功能不支持中文,这里有一种解决方案可以解决这个问题.....

IT 编程语言/ 2011-07-21 23:58:20 / 累计浏览 5,988

面向对象的Shell脚本

还记得以前那个用算素数的正则表达式吗?编程这个世界太有趣了,总是能看到一些即别出心裁的东西。你有没有想过在写Shell脚本的时候可以把你的变量和函数放到一个类中?不要以为这不可能,这不,我在网上又看到了一个把Shell脚本整成面向对象的东西。Shell本来是不支持的,需要自己做点东西,能搞出这个事事的人真的是hacker啊。 当然,这里并不是真正的面向对象,因为其只是封装罢了,还没有支持继承和多态。最变态的是他居然还支...

IT MySQL/ 2011-07-18 23:32:38 / 累计浏览 2,112

给Python的MySQLdb模块加功能

使用Python操作MySQL数据库的时候常使用MySQLdb这个模块。 今天在开发的过程发现MySQLdb.connect有些参数没法设置。通过这个页面我们可以看到在connect的时候,可以设置的option和client_flags和MySQL c api相比差不少。 一个很重要的参数 MYSQL_OPT_READ_TIMEOUT没法设置,这个参数如果不设置,极致状况MySQL处于hang住,自动切换IP漂移,客户端无法重连到新MySQL。 给MySQLdb加Option很简单,只要修改_mysql.c这个把Python对象映...

IT MySQL/ 2011-07-18 23:31:26 / 累计浏览 2,548

MySQL daemon plugin example

5.1 版本开始MySQL开始支持plugin API,允许在mysqld运行时载入或者卸载组件,而不需要重启mysqld。 plugin API涵盖了UDF、full-text、advanced schema等功能,其中的daemon plugin个人认为是非常的有用。其功能是在plugin载入后可以创建额外的后台线程于mysqld主线程一同协同工作。 plugin API的具体实现在sql/sql_plugin.h 和sql/sql_plugin.cc两个文件中。载入plugin使用dl_open系的动态加载共享库的方法打开so文件,获得需要执...

IT MySQL/ 2011-07-18 23:30:42 / 累计浏览 2,430

利用plugin更快的添加status variables

在MySQL里添加一个system、status variables的比较复杂的,需要修改sql/sql_show.cc,sql/mysqld.cc, 还要修改sql/sql_yacc.yy,然后重新编译等等,前面的文章可见其复杂度,很容易出错。 daemon plugin 除了允许添加后台线程,也允许添加status,且不需要修改mysqld的代码。

IT 信息和交互/ 2011-07-18 23:29:27 / 累计浏览 4,416

纠结的翻页设计

1.什么时候需要进行翻页设计 当网页内容较多、不能在限定区域内显示完全时,需要进行分页呈现。为了方便用户在多个页面间跳转和快速定位(尤其是按顺序翻页),通过翻页设计提供多个页面间的导航。 2.设计翻页要考虑的问题 分页的内容是什么类型? 页面数量有多少? 查看最多的是哪些页面? 手动全部翻一遍的可能性有多大? 是否会不按顺序翻页?为什么? 是否会查看已翻过的页面? 翻页是否需要在列表顶部和底部都出现?

IT Apache/ 2011-07-18 23:28:37 / 累计浏览 8,971

解决 nginx 反向代理网页首尾出现神秘字符的问题

  一台内网 LAMP 服务器上运行 MediaWiki,另一台具有外网 IP 的服务器上运行 nginx,为内网服务器提供反向代理,允许从外部访问 MediaWiki。测试发现,通过反向代理访问一般页面没有问题,但对于返回 HTTP/1.1 404 的页面,HTML 头部和尾部分别出现了额外的字符。头部多出的是 2-4 位 16 进制数,如“355b”,尾部多出的总是“0”。而且这个现象只出现在 nginx 反向代理之后的页面,不出现在 Apache 原始页面。

IT 用户研究/ 2011-07-18 23:27:49 / 累计浏览 1,897

调研问卷中多选题的分析方法探讨(3)

使用调研问卷的定量研究中,为了更全面地了解研究内容、更广泛地收集信息,经常会用到多选题,但由于多选题多指向性的特点,除了频数表和交叉表(只能与单选题做交叉),较少用到其他的分析方法,损失了很多有用的信息。其实,如果调研时能善用多选题,并在分析时选取适当的方法,就能够充分利用多选题包含的信息,得到更有价值的结论。 前两篇文章分别谈到调研问卷中带有分类性质的多选题、带有求和性质的多选...

IT 互联网/ 2011-07-18 23:25:38 / 累计浏览 2,572

谈谈 Google+

Google 正式发布 Google+ 的时候,我在山上。回到文明社会后,还好赶上了第一批用户的末班车,试用了一下。现在,重新开放,有更多的人尝试用 Google+ 。在数天之内,我就圈了接近 100 个朋友,被圈了近 1000 次。对于类似产品,我觉得算相当不错的成绩了。要知道,我 twitter 上只 fo 了不到 30 个人,douban 好友不到 50 个。基本上,不太熟的人,我都没有加的。而且这一切,还是在 google+ 迅速得到了 GFW 认证的前提下,取得的...

IT 互联网/ 2011-07-18 23:21:24 / 累计浏览 2,713

从同步到异步,从匿名到实名

或许未来的微博更像一种基础设施,一条消息总线,消息可以很方便地发布,而没有太多私密性(真正私密的信息价值往往不大),也可以很方便地追溯到人,又可以很方便地从这个人的历史发言,做出评价。至于在此之上,如何按照不同的维度(时间、话题、人物),整理、归纳各种消息,这就是各种应用该做的事情了。

IT 视觉设计/ 2011-07-18 23:18:58 / 累计浏览 3,240

韩国三大门户的基础设计

本博文通过韩国的最具有代表性的NAVER、DAUM、NATE三大门户网的设计,从中了解首页布局,页面色彩应用,以及频道导航,页面模块处理等一些基础设计,使得让我们更方便、直观的跟我们国内的门户做对比,了解韩国门户的设计方面的流行的趋势和风格把握,希望能给每一位关心门户设计的朋友一些新的启发。 页面布局、结构 以上三个门户的首页页面布局和结构中可以看到比国内的几个门户网的布局大不一样。韩国的首页布局通常都是...

IT 系统架构/ 2011-07-18 13:41:48 / 累计浏览 3,781

设计模式速查手册-创建型

Is & Is Not 这篇文章是…… 仅包含模式的名称、简要说明、结构类图和结构示例代码。可用于快速浏览、回顾、查询及复习设计模式。模式的意图和使用场合来自作者的个人实践总结。虽然示例代码使用C#,但是尽量不会用到C#中特有的特性、接口及方法,而是起到一个通用框架说明的作用。这篇文章不是…… 对设计模式面面俱到。对设计模式详细而深入的探讨和研究。从其它文献中照搬的东西。保证绝对...

IT JavaScript/ 2011-07-18 13:40:39 / 累计浏览 2,169

关于JavaScript中Function Declaration与Function Expression的进一步说明

引子我在1月12日发表了《解读ECMAScript[2]――函数、构造器及原型》一文,文中提到了函数声明(Function Declaration)与函数表达式(Function Expression)的概念。在那篇文章中,重点对两者与ECMAScript内置对象Function之间的关系进行了论述,而对两者的区别未加以详细说明。昨天晚上对Web前端颇有研究的jee.chang.sh同学在GTalk上提醒了我这个问题,并说很多初学者经常因为未注意到两者的区别而犯错,希望我能在博客中...

IT 编程语言/ 2011-07-18 13:38:04 / 累计浏览 3,091

浅谈PHP5中垃圾回收算法(Garbage Collection)的演化

前言 PHP是一门托管型语言,在PHP编程中程序员不需要手工处理内存资源的分配与释放(使用C编写PHP或Zend扩展除外),这就意味着PHP本身实现了垃圾回收机制(Garbage Collection)。现在如果去PHP官方网站(php.net)可以看到,目前PHP5的两个分支版本PHP5.2和PHP5.3是分别更新的,这是因为许多项目仍然使用5.2版本的PHP,而5.3版本对5.2并不是完全兼容。PHP5.3在PHP5.2的基础上做了诸多改进,其中垃圾回收算法就属于一个比较大的改变。本...

IT 编程语言/ 2011-07-18 13:37:42 / 累计浏览 2,592

程序设计中的计算复用(Computational Reuse)

从斐波那契数列说起我想几乎每一个程序员对斐波那契(Fibonacci)数列都不会陌生,在很多教科书或文章中涉及到递归或计算复杂性的地方都会将计算斐波那契数列的程序作为经典示例。如果现在让你以最快的速度用C#写出一个计算斐波那契数列第n个数的函数(不考虑参数小于1或结果溢出等异常情况),我不知你的程序是否会和下列代码类似.....

IT Apache/ 2011-07-18 13:36:53 / 累计浏览 11,052

Nginx模块开发入门

前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%。与Apache相比,Nginx在高并发情况下具有巨大的性能优势。 Nginx属于典型的微内核设计,其内核非常简洁和优雅,同时具有非常高的可扩展性。Nginx最初仅仅主要被用于做反向代理,后来随着HTTP核心的成熟和各种HTTP扩展模块的丰富,Nginx越来越多被用来取代Apache而单独承担HTTP Server的责任,例如目前...

IT JavaScript/ 2011-07-18 13:35:39 / 累计浏览 3,321

使用SeaJS实现模块化JavaScript开发

SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制。与jQuery等JavaScript框架不同,SeaJS不会扩展封装语言特性,而只是实现JavaScript的模块化及按模块加载。SeaJS的主要目的是令JavaScript开发模块化并可以轻松愉悦进行加载,将前端工程师从繁重的JavaScript文件及对象依赖处理中解放出来,可以专注于代码本身的逻辑。SeaJS可以与jQuery这类框架完美集成。使用SeaJS可以提...

IT JavaScript/ 2011-07-18 13:34:43 / 累计浏览 2,392

在SeaJS中实现html模板文件的加载(Temod介绍)

在几天前的一篇文章中,我介绍了JavaScript的模块化加载框架SeaJS。目前SeaJS支持js和css的模块化加载。在实际应用中,可能会遇到需要加载html页面模板文件的场景,例如我接触的某些应用使用Template Toolkit(以下简称TT)写页面模板,然后由js载入TT模板后渲染输出,在这种纯JavaScript渲染的Web架构中,需要将tt文件(或其它格式html模板文件)作为模块载入。实现这一点的基本的方法是将tt文件内容看做一个长字符串,然后封装为纯J...

IT MySQL/ 2011-07-18 12:45:29 / 累计浏览 5,635

MySQL索引背后的数据结构及算法原理

写在前面的话 在编程领域有一句人尽皆知的法则“程序 = 数据结构 + 算法”,我个人是不太赞同这句话(因为我觉得程序不仅仅是数据结构加算法),但是在日常的学习和工作中我确认深深感受到数据结构和算法的重要性,很多东西,如果你愿意稍稍往深处挖一点,那么扑面而来的一定是各种数据结构和算法知识。例如几乎每个程序员都要打交道的数据库,如果仅仅是用来存个数据、建建表、建建索引、做做增删改查,那么也许觉得数据结构和这东...