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

技术文章

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

技术文章精选

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

最新文章

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

IT 奋斗/ 2012-08-02 12:28:57 / 累计浏览 3,652

对职业发展问题的终极回答

年轻是任性的资本。在你面前的路可以有无数条,只要行路的过程能有所积累,不断的尝试会让人生经历丰富,回忆缤纷多彩,或许也会帮助你找到命运花园。这和“产品试错”其实是一个道理,更多试错,更多发现。而渐长的年纪会像KPI一样压垮你试错的勇气。

IT 互联网/ 2012-08-02 12:28:02 / 累计浏览 2,106

定义后app时代的经济

当今正是本地应用与移动web之间的斗争俞演俞烈之时,但真正的问题却是“下一步会出现什么?”开发者们正在试图颠覆所谓的“app经济”,特别是要颠覆苹果对App Store的操纵。假如移动web的开放性跨平台获胜(就像以往的多次获胜一样),这样的“后app经济”将会是什么样子呢?它会给开发者以及用户带来什么好处呢? 预测后app经济 移动领域的后app经济将是以社交为基础,基于浏览器,内容驱动的。 目前,我们仍处于app经济时代,被Apple App Store, Android Google Play, Windows Phone Marketplace 以及 BlackBerry App World上的本地应用和混合应用所主宰。 但是,那些想要绕开App Store生态系统的开发者们正在致力于一种移动web驱动的经济,这种经济与app store是完全背离的。

IT CSS/HTML/ 2012-08-02 12:26:16 / 累计浏览 3,465

display属性和display属性对SEO的影响

搜索引擎虽然没有表示符合 W3C标准的网站或页面会影响到网站排名,但事实证明使用web标准架构的网站排名状况一般都不错。这两天在优化博客的过程中发现,也许正是一些CSS属性影响到了搜索引擎对网站的排名。 我在博客的一些关键标记处使用了display的一些属性,3天后我发现博客标题排名较原来靠前了一两位,排在了搜索引擎结果的较前位置,从网上搜索了一些关于display属性的知识,带着一些疑问,记录下来。也许很火星,希望大家能指点一二。

IT 信息和交互/ 2012-08-02 12:25:25 / 累计浏览 5,837

为什么要段首空两格

本文试图从以用户为中心的设计思想解释和探究为什么段首要空两格的问题,其实这个问题也是老生常谈了。 本文主要讨论中文内容呈现过程中要不要在段首空两格的问题。

IT 奋斗/ 2012-08-02 12:23:41 / 累计浏览 1,527

认识自己的未知

不知道自己不知道,知道自己不知道,不知道自己知道。以前很傻、很天真地觉得自己是第二类的。将近一个月的工作后,猛然发现自己是第一类。 不知道自己不知道。譬如说吧,目前主要做iPad应用的设计。你知道iPad吗?iPad,谁不知道啊,那不是乔布斯家的掌上明珠吗,有iPad 1, iPad 2, new iPad。恩,只要对数码有爱好的或者是关注过的人,都能说出一二。那三四呢?其实我并不知道iPad。一来,大学四年都没有把玩过iPad(手头只有一个iPod touch 4代),自然对于iPad的使用习惯和特性等没有直观的把握和体会;二来,移动产品信息的多面性和宽泛性,导致了当时的我没有将注意力过分聚焦iPad的相关信息。自己总觉得看过这么多的科技报道,对于iPad不应该理所当然的了解吗? 自己实际参与设计的时候,才发现不是这样的。我还不熟悉那个众所周知的iPad。

IT CSS/HTML/ 2012-08-02 12:23:19 / 累计浏览 4,049

《精通CSS+DIV》学习笔记

整理了一下《精通CSS+DIV》一书中的一些知识点,作为学习笔记,供初学者查阅。《精通CSS+DIV》是一本很浅显易懂的CSS入门书籍。书的前半部分讲的比较含糊,容易误导读者,后半部分的例子很具体。

IT 系统架构/ 2012-07-31 00:03:40 / 累计浏览 3,548

Solr\Lucene优劣势分析

最早lucene2.4以及以前,追溯到2008年前后,lucene刚刚引起大家的关注,到后来Nutch 、solr的出现,lucene变得更加热。Nutch、Solr的发展,极大推动了lucene的升级。 对于一些接触过搜索,使用过lucene、solr的人来说,一般都会感觉lucene、solr很牛逼。我个人也认为solr、lucene确实非常NB,他涵盖了信息检索的几乎全部基础知识和非常高性能的实现方式。从solr的结构,扩展、维护整体看,发现有非常多的“工程亮点”,熟读solr定会增加对java的理解、运用技能。 但是,其实lucene solr有其自身的一些局限性,而这些局限性在大数据量的时候显得更为明显。

IT PHP/ 2012-07-30 23:58:01 / 累计浏览 9,134

PHP与递归Recursion

在程序设计中,递归(Recursion)是一个很常见的概念,合理使用递归,可以提升代码的可读性,但同时也可能会带来一些问题。 下面以阶乘(Factorial)为例来说明一下递归的用法,实现代码为PHP: 如果安装了XDebug的话,可能会遇到如下错误: Fatal error: Maximum function nesting level of ’100′ reached, aborting! 注:这是XDebug的一个保护机制,可以通过max_nesting_level选项来设置。

IT 系统运维/ 2012-07-30 23:55:53 / 累计浏览 2,286

与Linux OOM-killer的第一次亲密接触

受害人口述悲惨的遭遇—— 1、最近一段时间(更换了预发机器后)我负责的一个应用的预发环境(线上稳定得像个婴儿~)特别不稳定,最先是应用频频的过几天就发现提供的接口不工作了,但容器Jetty还在跑得欢,于是jstack/jmap看,发现没有一个线程在跑我的war包中的程序,但是容器里个中间件的sar还跑得很欢(-_-|||),dump出来的对象也没有一点蛛丝马迹,所有日志到04:03就什么也没有了。然后查发现一个中间件的sar(远程接口层)包刚好在那个时候升级了,这玩意用OSGI的CloassLoader来加载整个应用,自然就怀疑它怎么着把我的Class都卸载掉了。简单,回滚到前一版本试试。 2、诡异的第二天还是4:03分,又发作了!排除了新sar的原因,就百思不和其解了,发现-XX:+CMSClassUnloadingEnabled开着,关掉。第二天还是一样!

IT 系统运维/ 2012-07-30 23:53:24 / 累计浏览 1,804

MogileFS 中怎么删除主机

发现在 MogileFS 的集群中有机器死掉了,然后使用另一台替换了他的位置,使用的是相同的 IP .所以我们常常会有这种需求,就是怎么删除 MogileFS 中的机器.默认的时候你删除,会提示你设备不为空,所以不能删除.如下 # mogadm host delete MogileFS_Srv100 Failure deleting host: host_not_empty Unable to delete host; it contains devices still 所以这时我们会检查所有的硬盘: # mogadm device list -all 我们在机器坏了的时候,就会给这些标坏掉了,但还是不能删除.下面是我建议的方式. 当你给所有的硬盘设备标成不可用后,你然后在 fsck ,这样会同步文件到其它的机器同样的份数.

IT 编程语言/ 2012-07-30 23:52:19 / 累计浏览 2,088

真正动态的动态语言

一加一等于几, 这是个问题某些所谓的动态语言是名不副实的 – 我称之为伪动态语言. 这些伪动态语言之所以是伪的, 是因为它们只是在代码层面的变量是动态的, 而它们的类型系统并不是真正动态的, 一个简单的例子, 考虑字符串能否直接和整数进行拼接成为一个新的字符串. 当然, 语言维护者用另一个名词”类型强度(type strength)”来表示这种行为, 然后把这种本质上不动态的行为称为”强类型(strong typing)”, 把真正的动态称为”弱类型(weak typing)”, 这样, 它们就可以心安理得地继续辨称自己所喜欢的语言是动态语言. 但我认为, “动态语言”的概念应该重新定义, “动态”应该脱离字面的意义, 去探究真正本质的动态.

IT Apache/ 2012-07-30 23:51:30 / 累计浏览 16,430

解析nginx负载均衡

摘要:对于一个大型网站来说,负载均衡是永恒的话题。随着硬件技术的迅猛发展,越来越多的负载均衡硬件设备涌现出来,如F5 BIG-IP、Citrix NetScaler、Radware等等,虽然可以解决问题,但其高昂的价格却往往令人望而却步,因此负载均衡软件仍然是大部分公司的不二之选。nginx作为webserver的后起之秀,其优秀的反向代理功能和灵活的负载均衡策略受到了业界广泛的关注。本文将以工业生产为背景,从设计实现和具体应用等方面详细介绍nginx负载均衡策略。关键字:nginx 负载均衡 反向代理 1.前言随着互联网信息的爆炸性增长,负载均衡(load balance)已经不再是一个很陌生的话题,顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快,给用户很好的体验。快速增长的访问量和数据流量催生了各式各样的负载均衡产品,很多专业的负载均衡硬

IT 奋斗/ 2012-07-30 23:49:11 / 累计浏览 1,987

“很有激情”的创业预备队员的困惑

就像是“怎样追求到女神”的攻略秘籍一样,如果你是一个很有魅力的男子,很容易追求到女神,甚至有可能女神反过来追求你。如果你是屌丝,天天看泡妞真经也没啥用。虽然通过“技巧”来增加求爱成功率也是有可能的,大约增加1-3%的概率吧——说白了还是概率么。1-3%在我眼中跟“没效果”没两样,只是自我逃避罢了。因为提升魅力如此难,所以才想走捷径,我觉得这就是屌丝之所以是屌丝的本源。

IT 奋斗/ 2012-07-30 23:47:41 / 累计浏览 2,914

浅谈领导和领导力

如今,市面上关于“领导”和“领导力”的文章、书籍已经数不胜数,大家似乎并没有厌烦的感觉,新的资料仍然层出不穷;另一方面,对相当一部分人来说,“领导”和“领导力”又确实难以捉摸,看书似乎明白了,做起来却全然不对劲。为什么会出现这种情况呢?据我的观察和思考,主要的原因是:领导和领导力,都是主要与人有关的学问,一旦与人有关,就不能依靠简单的条条框框来行事。下面,我结合自己的经验和思考,谈谈领导和领导力的若干问题。 首先的问题是,为什么要有领导呢?或者说,什么样的人是领导呢?一个人被上级任命为“领导”,他就是领导了吗?不。他如果做得好,才可以成为领导,做不好,不过是“空有个领导的架子”而已;相反,民间的很多“领导”(领袖、领头人物),并不需要任命,大家都认可他。

IT 算法/ 2012-07-30 23:46:52 / 累计浏览 1,965

Lua State 间的数据共享

当我们在修改数据结构中某个副本时,为了修改过程的原子性,我们需要复制一个副本出来,修改,然后利用 CAS 交换到主干上。这个过程中,其它读线程,可能引用老的版本,读完后就需要销毁掉过期的版本。在有 GC 机制的语言中这非常简单。但是在 C/C++ 这种手动管理内存的条件下,几乎变得不可能。对,我们可以用引用计数来管理。但难点在于引用记数本身需要放在对象上,那么改写引用值却需要获得对象本身先,这个变成了绕不过去的死结。在并发条件下,如果你不使用锁,那么获得对象指针后,到操作引用记数之间,无法确保对象不在那一刻被其它线程减少引用而销毁掉。

IT MySQL/ 2012-07-27 14:42:41 / 累计浏览 5,849

MySQL协议分析

MySQL协议分析,主要参考MySQL Forge上的wiki和源码.协议的全图见这里, 给同事分享的ppt见这里,下载见这里 MySQL协议分析 View more presentations from ruoyi ruan packet number 在做proxy的时候在这里迷糊过,翻了几遍代码才搞明白,细节如下: 客户端服务端的net->pkt_nr都从0开始.接受包时比较packet number 和net->pkt_nr是否相等,否则报packet number乱序,连接报错;相等则pkt_nr自增.

IT 网络系统/ 2012-07-27 14:22:49 / 累计浏览 3,768

TCP SYN-Cookie背后的人和事 - 续

以前写过一篇“TCP SYN-Cookie背后的人和事”,今天讨论一下发现我的理解也没有到位。看来工程中没有看过code或者调试过,对于一个事物就无法透彻的理解。本来的理解是SynCookie不会保存Session信息,取而代之的是要保存一个32bits的Cookie。一个依据就是:如果本机没有保存任何秘密,如何验证正常的Session呢?如果不用秘密攻击者就可以制造出对应的第三个ACK,可以等待一段时间发送第三个ACK造成实际的攻击。现在有了更多的理解,看起来SynCookie不用本地缓存任何内容,包括不会生成的32bits的cookie。

IT 其他/ 2012-07-27 14:22:18 / 累计浏览 3,572

Spark随谈——开发指南(译)

希望能够给希望尝试Spark的朋友,带来一些帮助。目前的版本是0.5.0 Spark开发指南 从高的层面来看,其实每一个Spark的应用,都是一个Driver类,通过运行用户定义的main函数,在集群上执行各种并发操作和计算 Spark提供的最主要的抽象,是一个弹性分布式数据集(RDD),它是一种特殊集合,可以分布在集群的节点上,以函数式编程操作集合的方式,进行各种各样的并发操作。它可以由hdfs上的一个文件创建而来,或者是Driver程序中,从一个已经存在的集合转换而来。用户可以将数据集缓存在内存中,让它被有效的重用,进行并发操作。最后,分布式数据集可以自动的从结点失败中恢复,再次进行计算。

IT 安全/ 2012-07-27 14:18:12 / 累计浏览 3,469

SAE云服务安全沙箱绕过2(利用crackClassLoader)

(此漏洞新浪已修补) 本次bypass,是利用了SAE上的沙盒权限允许“crackClassLoader”做到的,绕过权限后,作者调用了系统命令,去读取其他云用户的源代码。沙盒,尤其是用在云上的沙盒,安全配置是很重要的,很多权限并不是可以随便交给用户的,这次有了crackCLassLoaer,基本上是一个最好用的提权办法了,其实还有很多其他的权限,都是很不安全的。这要仔细斟酌以后,才能开给用户,否则就是一个灾难。

IT 算法/ 2012-07-27 14:15:37 / 累计浏览 1,544

IMO2012趣题:带有说谎的猜数游戏

    考虑一个传统的猜数游戏。 A 、 B 两名玩家事先约定一个正整数 N ,然后 A 在心里想一个不超过 N 的正整数 x , B 则需要通过向 A 提问来猜出 A 心里想的数。 B 的问题只有唯一的格式:先列出一些数,然后问 A “x 是否在这些数里”, A 则需要如实回答“是”或者“否”。显然, B 是保证能猜到 x 的,只需要依次询问“x 是否等于 1 ”,“x 是否等于 2 ”即可。由于 B 可以精心选出满足某种特征的所有数,询问 x 是否在这些数里,因而 B 还可以做得更好。例如当 N = 16 时, B 第一次可以问“x 是否小于等于 8 ”,或者等价地,“x 是否属于 {1, 2, 3, [...]