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

技术文章

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

技术文章精选

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

最新文章

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

IT Apache/ 2010-05-12 13:25:08 / 累计浏览 3,585

遭遇”慢连接”攻击小记

9月18日晨,网站访问突然变得非常困难,最初怀疑机房的路由出问题(曾经出过一次),和机房联系后更换了路由,但问题仍旧。中午,偶然发现有大量处于SYN_RECV状态的链接,google后怀疑遭到SYN Flood攻击。查询处于SYN状态的连接数,可以用这个命令: netstat -atn | grep -c SYN 查询连接最多的ip: netstat -atn | grep “SYN” | awk ‘{print $5}’ | awk -F’:’ ̵...

IT 其他/ 2010-05-12 13:21:53 / 累计浏览 4,326

编写python的C语言扩展

最近一直在学python,的确为python的简洁所折服,因为工作中可能会经常用到python和c打交道的情况,所以研究了一下C语言扩展的写法,可能比较基础,让高手们见笑啦。发现原来在windows和linux...

IT Apache/ 2010-05-12 13:21:13 / 累计浏览 4,486

Nginx 反盗链设置

防止盗链不仅能保护版权,又节约了不少流量。最近和bsdmap交流了下,听说他们通过防盗链节约了近1/3的图片流量。nginx的防盗链设置还是比较简单的,可以分为普通防盗链和ip/cookie based防盗链。其中ip based防盗链需要安装nginx的module,所以相对麻烦一些。

IT PHP/ 2010-05-12 13:19:37 / 累计浏览 3,326

PHP导出MySQL数据到Excel文件

经常会碰到需要从数据库中导出数据到Excel文件,用一些开源的类库,比如PHPExcel,确实比较容易实现,但对大量数据的支持很不好,很容易到达PHP内存使用上限。这里的方法是利用fputcsv写CSV文件的方法,直接向浏览器输出Excel文件。

IT MySQL/ 2010-05-12 13:19:09 / 累计浏览 2,544

案例:一个引号带来的查询性能提升

今天看了一个优化案例觉的挺有代表性,这里记录下来做一个标记,来纪念一下随便的字段定义的问题。

回忆一下,在表的设计中很多人习惯的把表的结构设计成Varchar(64),Varchar(255)之类的,虽然大多数情况只存了5-15个字节.那么我看一下下面这个案例.

IT 系统架构/ 2010-05-11 15:00:10 / 累计浏览 2,664

看看人家是怎么样改版的?

说起改版,往往是领导拍板,而不是数据说话,这是目前比较流行的现状。转自 http://www.caiwenhui.com/tuijian/read/10177 第8次 改版每天都有2.68亿人使用谷歌来搜索信息。每当用户输入搜索请求后,谷歌的软件便会给出最相关的链接。虽然后台运算非常复杂,但整 个查询过程却非常简单,也难怪用户会忽略很多流程。那么究竟是哪些人会去关注其中的各个元素呢? 虽然在地图、图书、电子邮件和社交网络 等领域都进行了尝试,但谷歌...

IT 系统架构/ 2010-05-11 14:58:59 / 累计浏览 4,164

构建可扩展的微博架构(qcon beijing 2010演讲)

在使用Twitter几年的时间里面,经常思考微博如何更好的实现,恰好最近几个月也参与了相关工作,大部分都是工程实践,总结实践会促生更具实际价值的理论。因此在QCon Beijing 21010年在参考了不少网友的意见后选择了《构建可扩展微博架构》的题目。由于在决定选题时知道来自Twitter总部有30万followers的@nk也会讲一个类似的题目,心中当时有点忐忑,最大的顾虑就是我要讲的他全部覆盖了,而且讲得更深入,我就没必要班门弄斧了。...

IT 系统架构/ 2010-05-11 14:58:20 / 累计浏览 4,373

CAP理论与分布式数据库

根据CAP理论,一致性(C),可用性(A),分区容错性(P),三者不可兼得,必须有所取舍。而传统数据库保 证了强一致性(ACID模型)和高可用性,所以要想实现一个分布式数据库集群非常困难,这也解释了为什么数据库的扩展能力十分有限。而近年来不断发展壮大 的NoSQL运动,就是通过牺牲强一致性,采用BASE模型,用最终一致性的思想来设计分布式系统,从而使得系统可以达到很高的可用性和扩展性。但是,对于CAP理论也有一些不同的声音,数...

IT 系统运维/ 2010-05-11 14:57:40 / 累计浏览 2,547

rpm Build 相关知识

rpm-build 包和  /usr/src/redhat ,这些 rpm build 的程序是要靠 spec 文件的控制。它是配置指定安装到另外的机器上的,用来指示转换的源码补丁编译成二进制文件的包。默认编译操作是在下面的目录中,它是编译源码的相关动作操作的位置。
如果不指定其它的地方,那么 rpm building 的地方是主要在 /usr/src/redhat 的目录,目录的架构如下,这就是为 rpm-build 提供的目录结构.

IT 用户研究/ 2010-05-11 14:56:59 / 累计浏览 2,908

信息架构中的常见模型

    本期的内容目的是分享和总结信息架构中一部分基本的交互模型。信息架构需要考虑内容和功能的建构, 首先需要考虑怎样组织内容和功能的关系,也就是切分内容,如何把一些动作和对象跟主题顺畅的结合起来;第二步就是考虑怎样引导用户通过界面达成他们的目标,也就是用”物理结构”把内容用页面\\窗口\\面板等元素将信息表达出来,交互模型正是针对第二个步骤来说的,这些模式帮助我们在表达信息的时候能够有一些常用的思路和出发点。

IT MySQL/ 2010-05-11 14:55:46 / 累计浏览 3,191

百姓网公开笔试题结果展示

前几天出的一道笔试题《百姓网公开笔试题:查询条件的子集判断》,收到来自各地的很多解决方案,有C的,有C++的,有PHP的,还有Python的。我建议大家把自己的解答放在自己的blog上面,我这里给链接,大家移步到他们的blog上去看。百姓网那道题查询条件子集判断的解决思路(墙外)从离散数学到编译原理--百姓网编程题后序在原文的评论中也有很多精辟的思路,大家可以借鉴。《程序员》杂志闫辉在邮件里问了这样一个问题:你认为程序...

IT MySQL/ 2010-05-11 14:55:02 / 累计浏览 3,426

《百姓网公开笔试题:查询条件的子集判断》的一份 PHP 答卷

碰到这道题时才意识到自己的见识浅薄,非等到这种题出来才能明白,高等数学对于程序员而言是多么重要。其中最难最关键的部分是在留言里看到了 qmigh 的解释才搞定的。这道题分三部分:把查询语句转成数组结构,然后把层级混乱的条件最终分解成 以 OR 关联的 AND 合集(也就...

IT 用户研究/ 2010-05-10 14:56:04 / 累计浏览 2,946

验证码的使用场景小议

验证码,一个对用户毫无价值,但对网站却是一个自我保护的屏障。 通常,验证码出现在提交表单的情况下,用于网站判断数据提交方是正常用户还是机器人。 比如: 1:在新用户的注册流程。可以用来遏制恶意注册。 2:用户密码取回流程。可以用来防止用户密码被恶意夺取。 3:用户登录。一般出现在多次密码输入错误,可以用来防刷密码。 4:文章评论。可以防止广告等信息的传播。 ...... 从产品上看,以上流程,对用户体验而言,让用...

IT 用户研究/ 2010-05-10 14:54:55 / 累计浏览 1,386

互联网产品的“打通”问题

    我坚持认为“打通”是需要运营来考虑的。运营需要考虑,我这个产品需要怎么推广;用户从哪里来;我的用户和什么产品的用户重合度比较高;在别人的产品使用中,我怎么渗透进去;我怎么让用户用完别人的产品到我这来看看……

    做产品的同学会把运营提出的“打通”需求简单化,认为“提供几个API”或者“调用人家几个API”就完事了。殊不知,

    如果把自己产品独立来看,别人页面上的小块,是一个很重要的用户接触点,无论是什么地,都要细细耕耘呀。

    如果把整个网站做一个整体看,各个产品之间的关系,会让用户有很多不同的感受。

IT MySQL/ 2010-05-09 23:06:49 / 累计浏览 2,725

MySQL server has gone away解决办法

1、应用程序(比如PHP)长时间的执行批量的MYSQL语句。最常见的就是采集或者新旧数据转化。解决方案:在my.cnf文件中添加或者修改以下两个变量:wait_timeout=2880000interactive_timeout = 2880000 关于两个变量的具体说明可以google或者看官方手册。如果不能修改my.cnf,则可以在连接数据库的时候设置CLIENT_INTERACTIVE,比如:sql = "set interactive_timeout=24*3600";mysql_real_query(...)2、执行一个SQL,但SQL语句过大...

IT 系统运维/ 2010-05-09 23:02:25 / 累计浏览 5,243

在Mac OS X中运行Apache + PHP + MySQL

Mac OS X 内置了Apache 和 PHP,这样使用起来非常方便。本文以Mac OS X 10.6.3为例。主要内容包括: 启动Apache 运行PHP 安装MySQL 使用phpMyAdmin 配置PHP的MCrypt扩展库设置虚拟主机 启动Apache 有两种方法...

IT 信息和交互/ 2010-05-09 23:01:15 / 累计浏览 3,071

手机客户端开发定位

客户端的优势:抢占手机桌面,培养用户的忠诚度,对于用户来讲,体验起来比手机自带的浏览器要强大的多。比如,一些自带浏览器不能实现的功能也可以解决,比如调用摄像头,基于移动基站的定位等。客户端的劣势:手机的操作系统繁多,单Nokia就分三个版本,S60一版、二版、三版,此外还有JAVA、JAVA2.0 、PPC、SP等多种版本。联通手机还有自己的BREW、UNIJAVA等,每项平台的适配都是对技术的考验。平台的多样性造成产品的导入期过...

IT Linux/ 2010-05-09 23:00:20 / 累计浏览 3,791

关于虚拟内存的一点理解

1. 单个程序使用的最大的内存空间的大小收到内存指针的大小的限制,对于32位机,指针是4字节类型,最大标识4G的内存空间,所以32位机单个程序使用的内存空间不可能超过4G,实际上具体多少?我也不知道2. 对于windows来讲,虽然好像每个程序都可以使用接近(可能差的比较远点儿)4G的内存空间,但是总的虚拟内存的大小也是有一个限制的,在“我的电脑”=》属性=》高级=》性能(设置)=》高级=》虚拟内存 这里可以设置,...

IT 其他/ 2010-05-09 22:59:26 / 累计浏览 2,203

怎样翻译更地道:and不是“和”

生硬地“对接”两种语言,尤其是“条件反射”式地翻译词语,是翻译中的大忌――一方面,译文显得僵硬难读,另一方面,在不同场合,词语的意义也有不同,自然也不能用同样的办法来翻译。下面讲的就是常见单词and的翻译。英文单词and,一般译者都翻译为“和”: you and me 你和我 China and America 中国和美国 peace and development 和平与发展在这些场合,如此翻译并没有错:连接两个对等主体的连词,正是中文所说的“和”。 ...