关于技术，关于游戏，关于生活——杰拉斯的思考、总结和表达。
今日（2013.01.30），《21世纪经济报道》发表了一篇文章，大意是周鸿祎在最近的一次会议间隙，主动叫住了雷军，一起喝了20分钟的茶，具体如下：雷军周鸿祎两大冤家和解？侯继勇雷军和周鸿祎两大老死不相往来的“冤家”，最近居然坐在一起喝茶了，此事一时震惊业界。最近一次会议的间隙，360董事长周鸿祎找到金山董事长雷军，说一起“喝会茶”。雷军当即答应：好！于是两人走进了一个小包间，就在会议室旁的茶室，叫了壶茶，红茶。将有些惊愕的随行的其他人留在了包间外边。时间不长，二十分钟。具体细节除了雷军、周鸿祎两人之外的其他人不得而知。但这场谈话却给外界留下了巨大的想象空间：金山毒霸、可牛软件、金山网络、“小3大战”以及中关村某个夜晚，一次共同参与的推杯换盏。随后几天，一些不完整的细节从周鸿祎、雷军身边的人的口中零零碎碎地流传出来。周鸿祎很真诚，表达了两个意思：一是对过去的一些事情，特别是“小3大战(小米与360关于智能手机市场的战争)”表示歉意，说今后(360)不做手机了，双方也别打了；二是小米老有人骂他，今后别骂了。雷军的态度如何？不得而知。消息人士的观察是，两人相见后，雷军“有些感慨”。真是“相逢一笑泯恩仇”？周鸿祎与雷军两个人，有多长时间没有这样坐在一起了？那20分种内，或许周、雷二人都没有计量过。一个业界共知的细节是，“3Q大战”(指当年腾讯与360之间的战争)后，凡是有雷军出现的场合，尽量不请周鸿祎。反之亦然。正是3Q大战，使雷、周两人结下不解之仇。3Q大战之后，雷军合并了金山毒霸与可牛杀毒，成立金山网络。金山网络由傅盛、徐鸣两人创建，傅盛、徐鸣与周鸿祎的关系则是“剪不断、理还乱”。周鸿祎因此认为：雷军站到了自己的对立面。3Q大战期间，腾讯、百度、雷系(那时候小米还没有浮出水面，包括金山软件、金山网络)、搜狐被视为“反360联盟”。对于“小3大战”，后来雷军在数次回忆中表达了两点，一是对可牛软件的投资只是众多投资中的一项，没有任何情感倾向；二是无法理解周鸿祎在“小3大战”中表露出来的激动与愤怒。“情感站队”而非利益纠葛是两人裂痕愈来愈大的原因：对于任何人来说，曾经的朋友成为敌人，都会激动，以及愤怒。对于周鸿祎来说，是很多朋友(至少是熟悉的人)站在了他的对立面，比如雷军、刘韧、傅盛、徐鸣。上述数人，一些人是朋友，一些人是下属、学生。周鸿祎的另一个特点是，认为“好朋友应该一辈子”。历经“3Q大战”、“小3大战”、“3B大战”，以及其他“小战”，周鸿祎的孤独、愤怒、激动与日俱增。这使得周鸿祎在一次采访中说出这样的话：我没有朋友。曾经一度，周鸿祎以为自己“有很多朋友”。进入2013年，这一切却在发生变化。360不再是“没有朋友，也不需要朋友”的姿态，而是寻找朋友。360内部开始认为，敌人多的时候，朋友就弥足珍贵。既然需要朋友，一是发展新朋友，二是发现老朋友。如果能把敌人变成朋友，就更加事半功倍了。周鸿祎的这种转变与一种认识有关：其实从来没有所谓的情感站队，那只是愤怒时刻的假想，有的只是利益纠葛，即使曾经的对手，当利益纠葛不再的时候，就可以成为情感上的朋友。还与奇虎360在行业内的地位有关。360内部喜欢用“屌丝逆袭”这个词。逆袭成功，屌丝已经成为“高富帅”了。当日屌丝时，打大佬可以博同情，今日高富帅时，则再无这样的情感效应。雷、周可以握手，还与环境变化有关。十年前的中关村更多情感站队；今天的互联网江湖，则更多利益衡量。2013年刚开年，百度、阿里联手收购新浪微博，百度收购投资“雷系”金山网络，百度投资UCweb，以及雷、周握手，各种“合纵连横”的消息层出不穷，都是“互联网式”恩仇记，而非“中关村式”恩仇记。没有永远的朋友，只有永远的利益。不过呢，这两个人的微博又发出了如下更新：@雷军: 两周前我参加一场央视活动，偶遇周鸿祎，他拉我到会场边上聊了几句，今天一堆莫名其妙的传闻……@周鸿祎: 我与雷总虽然在一些事情上有不同观点，但我一直很佩服他的创业精神。我参加央视财经春晚邂逅雷总，闲聊个十几分钟，竟然有人还演绎出喝茶的事儿，还编出各种谈话版本，这想象力也太丰富了吧？难道老死不相往来才正常？有人太小看雷总和我的肚量了。
开启rewrite的方法非常简单，打开Apache安装目录下的conf/httpd.conf文件：去掉： #LoadModule rewrite_module modules/mod_rewrite.so 前面的井号注释： LoadModule rewrite_module modules/mod_rewrite.so 再将： AllowOverride none 全部替换成： AllowOverride all 重启Apache服务即可。实现伪静态则需要在需要实现伪静态的网站目录下添加.htaccess，.htaccess文件(或者"分布式配置文件"）提供了针对目录改变配置的方法， 即，在一个特定的文档目录中放置一个包含一个或多个指令的文件， 以作用于此目录及其所有子目录。作为用户，所能使用的命令受到限制。网上有非常方便的生成器：http://www.wangqu.org/htaccess/。
准备工作首先自然是下载软件，然后该解压的解压（注意要非中文目录，这里的软件目录以均以C:\Program Files为例），该安装的安装（MySQL的安装会有许多选项，英文好的看着按自己需要勾勾填填就行了，实在不行的参考这里，虽然版本比较旧，不过配置选项大致还是差不多的）。下面是几个软件的简单介绍和下载地址：ApacheApache是世界使用排名第一的Web服务器软件，我们这里用它来搭建一个本地的Web服务器，它会侦听http请求，将本地的Web数据发送给浏览器，简单的来说就是搭建Apache之后，我们就可以通过浏览器来访问本地的网站。下载地址：httpd-2.4.4-win32.zip（更多版本）PHP既然有了Web服务器，为何还要PHP这东西呢？因为Web服务器只是用来响应浏览器请求，并不具备解析PHP文件的功能，因此还需要PHP来进行解析。下载地址：php-5.4.12-Win32-VC9-x86.zip（更多版本）MySQLMySQL是一个关系型数据库管理系统，跟PHP就是绝配，因为它们都快速，功能强大，更重要的是它们都免费（O(∩_∩)O~）。下载地址：mysql-installer-community-5.6.10.1.msi（更多版本）phpMyAdminphpMyAdmin严格来说不算一个软件，也不是WAMP环境的其中一个，但它在PHP开发过程中却几乎是必不可少的。phpMyAdmin是一个用PHP编写的MySQL可视化管理工具，因此它不需要安装或配置，直接将它解压到你的默认网站目录即可（补充说明）。下载地址：phpMyAdmin-3.5.7-all-languages.zip（更多版本）配置PHP你可能会觉得奇怪，为什么我把PHP的配置放在前面来讲，而把Apache放到后面？因为我们需要将两者结合起来，而结合的过程便是在Apache的配置文件中进行修改的，若先配置Apache，那么配置完PHP之后又必须继续回头配置Apache。PHP的配置文件是根目录下的php.ini，但你会发现，在目录下会有两个文件，一个是development，一个是production，顾名思义，前者是开发测试使用，后者是上线产品使用的，安全系数较高。我在本地自然是只做开发测试的，于是选择php.ini-development文件，将其改成php.ini并打开，下面PHP的配置步骤都是在其中进行的。 配置一下扩展库路径： 找到; extension_dir = "ext"（约730行），将前面的分号去掉，并将其值改为PHP的扩展库文件目录，如：extension_dir = "C:/Program Files/PHP/ext"，这里的目录是由你的PHP所在路径确定的，记得后面加上ext。 配置PHP+MySQL这里的配置同样在php.ini中进行： PHP默认是没有支持MySQL的，因此我们要将MySQL的扩展库开启，将这两行前面的分号去掉即可： ;extension=php_mysql.dll ;extension=php_mysqli.dll 其它扩展库同样也可以根据需要去掉前面的分号将其引入，我这里开启了php_curl和php_mbstring。配置Apache+PHPApache的配置文件则是conf目录下的httpd.conf文件，将其打开： 首先找到ServerName（约213行），将其设置为localhost:80，并将前面的井号删除，虽然这一步如果不修改的话也可以正常运行，但启动Apache服务时会有一条烦人的提示（AH00558: httpd.exe: Could not reliably determine the server's fully qualified do main name, using fe80::fc76:abca:e24b:d490. Set the 'ServerName' directive globally to suppress this message），洁癖者还是改一下吧。 然后设置一下Apache的目录，将文件中的c:/Apache24全部替换成Apache所在目录，如：C:/Program Files/Apache 修改默认网站目录地址（约237行），找到 DocumentRoot "C:/Program Files/Apache/htdocs" <Directory "C:/Program Files/Apache/htdocs"> 将其路径替换为你想要设置的默认网站目录，默认网站目录是指你以后进行开发调试时网站文件所存放的目录，当Apache接收到浏览器请求时，便会从该目录里将对应的文件进行读取，执行并发送到浏览器，这里以F:/Websites为例（同样必须是非中文目录）： DocumentRoot "F:/Websites" <Directory "F:/Websites"> 在（约171行） #LoadModule xml2enc_module modules/mod_xml2enc.so 下加入如下两行以支持PHP： LoadModule php5_module "C:/Program Files/PHP/php5apache2_4.dll" PHPIniDir "C:/Program Files/PHP" 这里的路径对应你的PHP目录。 添加默认主页，当Apache接收到不带有文件名的http请求时，会自动搜寻目录下的默认主页，这样就不需要浏览者每次访问网站都必须加上文件名了（如访问http://www.clanfei.com/时，便会自动显示出http://www.clanfei.com/index.php的内容），找到： DirectoryIndex index.html （约274行）将其改为 DirectoryIndex index.html index.php 这里的排序前面的权限较后面的高，也就是说当目录下同时存在index.html和index.php时，将index.html作为默认主页显示，而非index.php。 添加对php文件类型的支持，找到： AddType application/x-gzip .gz .tgz （约402行），在下面添加： AddType application/x-httpd-php .php 运行与测试以上便是WAMP环境的配置过程了，接下来启动服务并测试配置成果：首先按Win+R打开运行窗口，输入CMD，然后输入（引号内由Apache路径决定）： "C:\Program Files\Apache\bin\httpd.exe" -k install 安装服务，安装完服务后以后就不必重新安装了，接着输入： "C:\Program Files\Apache\bin\httpd.exe" -k start 启动服务以后开机便会自动启动服务，除非使用stop参数停止了服务，才需要重新运行上面的命令。在-k后面的参数可以为install（安装），uninstall（卸载），start（启动），stop（停止），restart（重启）等。当然，在Apache的bin目录下，有一个ApacheMonitor.exe文件可以可视化地完成这些功能，可以为它创建一个快捷方式或直接将其设为开机启动项，就可以更方便地管理Apache服务了。测试的方法很简单，在默认网站目录下（根据上面配置的路径，我这里为F:/Websites），新建一个文本文件并改名为index.php，输入一下代码： <?php phpinfo(); 如果打开的是一个关于的PHP环境信息的网页的话，说明Apache+PHP配置成功了，按住Ctrl+F，搜索一下mysql，如果存在以该名字为标题（注意不是mysqlnd）的表格的话，说明MySQL也配置成功了。补充说明 如果你的80端口被占用（如果你安装过IIS等其它网站服务器程序），则需要重新更改一下Apache所监听的端口号，找到Listen 80（约58行），将80改为你想设置的端口号，如8080等，那么你在调试本地PHP程序的时候就应该在浏览器地址栏里输入http://localhost:8080，因为http协议的默认端口号是80，你需要告诉浏览器新的端口号，浏览器才会正确地通过新端口来向Apache请求数据。 MySQL默认的管理工具只是一个黑乎乎的命令行窗口，使用起来多有不便，我们可以下载一个phpMyAdmin作为可视化的MySQL管理工具，解压到默认网站目录下并把文件夹名称改为phpMyAdmin，便可以在浏览器中输入http://localhost/phpMyAdmin访问了。 若需要开启rewrite/伪静态功能，可参考我的文章Apache开启rewrite实现伪静态 附言有很多人嫌WAMP环境配置麻烦，直接下载WampServer来作为PHP开发环境，但毕竟WampServer集成的软件不是最新版本，而且更重要的是作为一个Geek，怎能不具有一点专研的精神呢？而且下学期我们就要学PHP了，也顺便把配置过程重新温习一遍写出来与大家分享，如果有什么疏漏之处，请多多指教！
W3C要求 必须有DOCTYPE 必须指定字符编码 语言 每个页面的html标签要指定lang属性， 线性阅读 不以表格作为布局使用 采用定位的时候，将css去除，查看内容的阅读顺序是否符合有意义 焦点与键盘 禁止移除焦点 不可禁用键盘操作 标题 页面中必须包含一个title元素，并且不应为空 title中的内容应该少于60个字 title应该包含网站名字和页面的主题 页面中必须包含至少一个h1，并且不能为空 h1和title中应该包含有相同的某些词汇 h1和title应该使用相同的词序（词序） h1的内容不应该仅仅来自于图片的alt属性值 hn 所有的hn应该在h1后面适当的嵌套 从h2开始，每一个hn前面至少有一个h(n-1)，比如：h3前面至少有一个h2；h5前面至少有一个h4 页面中至少并只能包含一个h1。（html5中已经提倡可以使用多个hn） h1..h6元素应该在页面中用于构建信息 h1..h6 或者 作用等于 （heading|region|main|secondary|navigation|banner|contentinfo|definition|note|seealso|search）的元素应该在页面中用于构建信息 每一个h1...h6必须有文字内容 hn中的内容通常少于65个字 h2...h6中除了img的alt属性外，还应该包含文字内容 相同级别的标题内容应该是唯一的。（比如：不能有两个h1的内容都是“腾讯网”） 菜单和导航 ul是用来作为导航的最合适的元素，其次是ol 推荐的导航结构： 栏目1 栏目2 /*css style*/ .offscreen { position: absolute; top: -30em; left: -300em; } 绝大多数的网页应该至少含有一个导航栏 每个map，ul，ol元素不要在最后一个h1之前，如果必须有个导航在标题之前，这个标题请用h2。(参见推荐的导航结构) 每一个嵌套的table，热点区域，ol，ul作为导航的话，他们的头部要有一个h2(或者是h2~h6，参见推荐的导航结构) 文本样式 请勿使用blink(闪啊闪的)和marquee(移动移动的)！！！会引发癫痫和视觉损伤 禁止使用font和center元素，请用css实现 斜体样式禁用i元素，标题用h1...h6，要强调的词、短语和句子，请用em实现 加粗字体样式禁用b元素，标题用h1...h6，要强调的词、短语和句子，请用em实现 下划线样式禁用u元素，标题用h1...h6，要强调的词、短语和句子，请用strong实现 列表 如果将p一行行的有顺序的排列，就该考虑是不是应该用有序列表了（ol） 如果将p一行行的排列，就该考虑是不是应该用无序列表了（ul） 如果列表嵌套深度大于5层的话，应该考虑用h1...h6这样的元素来进行转换。尤其是屏幕阅读器的用户 列表嵌套别超过5层 链接 避免使用脱离文章上下文无法理解的文字链接（比如最常用的“详细”的文字） 如果一个链接包含一个图片和文字，并且alt中的内容和文字匹配（相同），那么alt的属性应该为空 避免使用小于16*16的图片作为链接 避免把链接密密麻麻的放在一起（指的是链接链接...链接这种吧） 确保不同的链接地址用不同的链接文字（也就是说最好避免重复的锚（链接）文字） 确保相同的链接地址用相同的链接文字（如果多个链接都指向http://www.qq.com，那么这些链接都应该使用相同的锚（链接）文字。如果有的是“腾讯”，有的是“腾讯网”，有的是“腾讯网首页”，这样就不合适了，况且对SEO也不合适） 避免文字链接少于四个字（在中文网站中这一点很难避免） 内部的锚点目标要有tabindex="-1"。这是由于当内部链接被激活时，IE可以移动焦点 如果锚点目标是a或者表单等可以获得焦点的元素，如果使用tabindex="1"，在使用tab键切换的时候就会被跳过 最安全的tabindex属性是0，但是非焦点元素在获得焦点的时候会激活outline，ie中会显示虚线，且无法使用样式去除。 图片 宽或高不到8px或者没有alt的图片（特别是装饰性的图片）应该被移除，css技术可以用来控制样式 alt是用来描述图片的，而非单纯的新闻标题或者名词 alt属性不应包含图片的文件名 alt值不应包含冗长的信息（如果很长可以使用 ） 每个img要有alt 不能只依赖图片上的文字信息 banner、头图上的文字信息必须在代码中有所体现 Objects 每个applet元素应有alt值 每个embed元素应有alt值 每个object应包含文字内容 表单 ID必须唯一，特别是表单 每一个fieldset应该有一个legend元素 每个label必须有文字内容 每个legend必须有文字内容 每一个有效的label (legend + label)必须是唯一的（也就是说 </label） label不应该包裹select和textarea元素（平时我们可能会这样书写 ） 当input = images是必须有alt或者titile属性，且不为空 每一个button必须包含文字内容 核实文本域、密码、下拉框、textarea和按钮的时候，最好设置为相对字体 禁止让表单元素不能获得焦点 如果input、select、textarea、button的title被定义了，一定不能为空 type等于button、reset、submit的input必须要有value或者title 最好为每一个表单元素定义一个label并且指向他的id或者拥有title 必须填写的字段，在代码层面一定要有所体现，推荐：* 框架 不应使用隐藏或者引入空的frame 每个frame必须有一个title属性用来介绍这个frame的作用，隐藏的frame可以将title设置为"hidden 1", "hidden 2", "hidden 3," 等等 frameset中的每一个frame的title要有内容 事件 有onmouseover行为的焦点的元素应有类似onfocus的相同效果解决方案 有onmouseout行为的焦点的元素应有类似onblur的相同效果解决方案 鼠标的onmousedown, onmouseup 和onmousemove功能，要有相应的键盘解决方案（比如用keydown、keyup、onblur） 没有焦点的元素的onmouseover 或 onmouseout 应该用css中的:hover来实现（可惜ie6不给力） onClick事件应该绑定在有能有焦点的元素上 onChange事件不应使用在select元素上，会导致自动改变焦点或者载入到一个页面中 accesskey属性 属性值必须是唯一的 不要与浏览器本身的快捷键重复，比如：IE中的A C E F H J M P R T V X Home；chrome中的E F D；firefox：B E F H S T V 另外有的插件会把自己安装在菜单栏里，并且绑定一个字母作为快捷键 最好不要使用字母 缩放 禁止使用-webkit-text-size-adjust:none，推荐使用-webkit-text-size-adjust:100%，保证在小尺寸IOS设备上的字体比例 在chrome中使用-webkit-text-size-adjust:none实现小于12px的文字的信息一定不能是重要信息 颜色 禁止在html标签中使用color属性，用css来实现 颜色对比对最少应是3：1 颜色对比度最佳值是7：1 不能只用颜色作为唯一的信息标识（比如股票中的红涨绿跌） 不能只用图形作为唯一的信息标识（比如星星评级，柱状图等） 检测工具 Firefox Accessibility Extension Functional Accessibility Evaluator 1.1 备注 文章来源：http://www.qq.com/accessibility/ 网页信息无障碍：http://baike.baidu.com/view/7380402.htm
[转载]大学生们，你的CEO也曾在教室中哭泣
本来已经不想写了，因为年纪越大，越懒得动笔，不过看到各种各样的帖子之后，很想跟所谓的新人和非新人，写点东西，算是共勉吧。对于刚参加工作的人，我最想说的一个词是煎熬，如果你有上进心或者有责任心的话，这个词，其实很形象，许多刚参加工作的人，可能最早碰到的感觉就如同煎熬一般，非常的不适应工作的状态，当然现在也有很多人，一进入工作中，就一点也没有这种感觉，因为他们不在乎，什么事情都无所谓，自然也就不会有煎熬的感觉。我自己参加工作的时候，煎熬两个词对于我而言似乎经常提起，刚参加工作的时候，我见人就在犹豫不知道该怎么称呼他们，生怕叫错了称呼，给人印象不好，每天第一个到单位，拖地扫厕所，碰到什么事情，第一个就去做，即使是这样，你还会得罪人，不时有人给你脸色看，你好心帮同事做点事情，做好了，还好，做不好，就什么责任都往你头上推，让你辩解也不是，不辩解也不是，然后就是繁重的生活压力，我自己02年来杭州，一个月工资是800不到点，每个月住在遥远的城北，每天要六点多上班，一起住的有四个人，每天我第一个走，回到房子的时候，最晚的就是我，所以虽然住一起，却根本见不到面。这样的日子，我想不叫煎熬是很难的事情，我自己是中国最好的金融类学校毕业，当年毕业的同学基本上都进的是各个部委里，我在大学里，成绩说不上最好，也不能说差，如果不是万恶的911，粉碎了我们的梦想，按照当时的成绩，我可能会在大洋彼岸的某个学校里读书工作，不过一切都是如果，现实是残酷的，所以因为这种原因来到的杭州，更是让我对煎熬两个字有了更深刻的理解，那简直是种痛入骨髓的悲哀，于是我每天都想着解脱，想着离开。那时候我曾经写过一篇类似的文章，文章里说，“相对于大学的精彩和辉煌，第一年的工作给我带来的只是痛苦、失败和孤独的煎熬，这一年的起初，我几乎已经对自己失去了信心，已经无法在去想象更多的东西，每天都在忍受工作之后与大学生活错位所带来的郁闷。”终于有一次爆发了，我一个人什么都不顾及，离开了岗位，独自一个人跑回了北京，那是02年12月18日，到北京的时候，北京下了个大雪，我先回了趟学校，站在学校的操场上非常的恍惚，想到过去四年里在这里留下的所谓的一系列辉煌和精彩的过往，然后在想到现实的不如意，我在201（我曾经最喜欢去的一个自习室）哭的一塌糊涂，然后就离开了校园，这里已经没有我那么怀念的那些人和那些东西了。第二天，我在北京的同学在马甸边上一个酒店给我接风，几乎所有的在北京同学都来了，还给我买了个很大恨大的蛋糕，因为12月19日是我的生日，在饭桌上，依旧喝的一塌糊涂，我最落魄，自然我喝的最凶，大家也没有劝我，一夜狂欢后，回到杭州，还是得面对现实，那次给我收获最大的就是，我意识到其实很多时候，工作在那里都差不多。关键还是看你自己怎么面对了，我的那些同学，喝多了之后也都如此诉说各种苦处，只是大家痛苦的地方不一样罢了。回到杭州后，我用两个字替代了所谓的煎熬，我学会了用蛰伏两个字，虫子到了冬天，学会了蛰伏，我们何尝不是呢？再优秀的人，总有你所不适应的地方和事物，与其哀叹，不若面对，趁年轻不若多学点东西，努力的完善自己呢？于是我自己开始考虑在工作之余，多学习东西，尽量不浪费时间，我大学最擅长的是投资经济学，英语也不错，所以我开始免费兼职在外面给高中生上英语，一方面不让自己的英语水平荒废，另外一方就当是帮助一下那些成绩不好的学生，之所以免费是因为那个学校校长不相信我有能力教他们，我说我不要钱，就让我尝试一下，给我个机会。我大一过的四级，大二六级，大三GRE，大肆托福，其实教高中生是一点问题也没有，教了大半年，不但教了四十多个大学生出来，还让自己更有时间去巩固英语成绩，投资经济学方面，我就坚持每个月都写各种经济评论类的专题，尝试给各个报纸投稿，这样一年多下来，我觉得我达到了蛰伏的目的，保全了自己，度过了冬天。之后，也开始慢慢明白，工作其实比拼的未必是能力，能力在强，也需要有人认同，也需要别人配合，我们不可能脱离别人而生存，当一个人不喜欢你，可能并不是你的问题，而大多数的人不喜欢你，就是你的问题了。在人际交往方面，我一直觉得沟通很重要，而沟通的基础就是谦卑，那些刚参加工作，不尊重老人的新人会很难得到认同和持续的生存下来的，这里面的问题很多，我自己后来发生过一件事情，很切身的体会。公司那年准备提拔一个销售经理，公司90%的人都认为应该是我，因为之前我已经销售经理助理，而实际上，因为销售经理生病一年了，我其实全权负责销售经理的职责，所以我自己也自然的认为了那个位置应该是我的，但是后来领导从别的部门调了一个从来没有做过销售的老资格来做了这个位置，当时听到这个消息，我也很难接受，第一个反映就是走人。那天晚上，我很郁闷的跟老婆说了这个事情，我老婆却把我鄙视了一顿，我这辈子都记得，我老婆跟我说，你几岁？我说，我26岁，我老婆又说，她几岁，我说38岁。她说，那你想想她26岁的时候在干什么？你26岁就实际上已经完成了人家38岁才能完成的事情，你为什么还不知足呢？然后她又说，我希望我的老公离开一个地方的时候，应该是所有的人都觉得这个地方已经不能在容纳我老公了，而不是因为无法接纳一个不算那么残酷的现实而离开的。这点小挫折都忍受不了，可能到别的地方也一样会离开，会做不好的。我就是听了这两点，我坚持了下来，并且全力配合我的新领导，跟她建立了很好的个人关系，许多人都觉得我应该抵触她才是，把业绩做砸点，让领导知道谁才是真正能干的人？但是，我却不这么觉得，要让一个人认同你，未必一定要让要死要活的跟人家说，我多能干多能干，而只需要拿实际行动就可以了，其实同在一个公司，谁做的多，谁做的少，谁能干，谁不能干，领导都一清二楚，都看在眼里，许多时候，领导们安排位置也好，要顾及的东西很多，并不是你能干了，就一定要给你这个位置，他不安排你，总有他的原因，我们要做的就是继续完善我们自己，等待我们自己的机会，这也可以认为是蛰伏。第二点，我还想说的是，一个能成大气的人，往往要有大局观，同时还需要有很高的个人魅力，碰到点让自己不爽的事情，就大发脾气或者训斥手下，或者，如果碰到点没有让自己顺心的事情，就拿公司利益开玩笑，故意赌气，这样的做法，只能是彻底把自己给毁了，还会被贴上道德标签，一辈子翻身不了。之后，我跟新领导合作的很愉快，她后来晋升前跟我谈过一次话，他说，领导让她过来当我们经理的时候，也是很挣扎，很怕我会有反应，不过领导说，他也不想让我起的太快，怕我为难，26岁当经理，领导几十号人，压力第一会很大，第二会有对我不利的闲话出来，所以，也是这个原因，还是把她从别的部门调动过来了。过来后，最怕我会不配合她，她说她对销售这块真的是什么都不懂，如果我不配合，肯定做不好事情，我笑着说，我从来没有计较过这些，我的一切都是领导给的，如果不是领导把我从几百个人里面选中，然后细心栽培我，我怎么可能有今天呢？到最后，我包含深情的对她和自己说，哪怕领导让我上刀山，下火海，我都愿意，许多人可能都觉得我这是拍马屁才说的话，不过我自己知道，我说的是真的，如果不是我的领导，我现在必然是一无所有。有段时间，我自己开玩笑说，我到杭州来就带了件衣服，一床背，剩下的几百万的房子，几十万的车子，都是领导给的。领导后来可能从她嘴里知道我说的这句话，给我发了个消息说，这辈子没有交几个朋友，我算其中一个。其实，我一直想说一个话题就是感恩，一个有感恩心态的人，首先是幸福的，我这么多年走过来，我自己对自己最深的一个评价首先是感恩，对于那些对我好的人，不管是否是领导，我逢年过节，总会想起，并且送些礼物，我们外地人到杭州来，从什么朋友也没有，什么资源也没有开始，能做点事情，都是朋友们给的，不是朋友，我们可能什么都不是，那些在关键时刻拉我们一把的人，我们一定要学会感激。感激不只是说说，也不只是送些东西，我在04年的时候，有个领导在所谓的政治斗争里败退下来后，所有公职都没有了，很落魄，那段时间都没有人愿意跟他交朋友，都想跟他撇清关系，我那时候还没有提销售副经理，这个领导对我其实也没有什么特别的照顾，只是我刚工作的时候，他分管我们，请我们吃饭的时候，我跟他说了我的困惑后，他跟我说了这么句话，大学生，刚工作的时候，一点优势也没有，困惑很正常的，但是工作久了，你就知道了，大学生走的比别人要远。这句话，那段时间让我坚持了很长的时间，所以他下台后，我去看了他，还带了很多礼物，回来之后，许多朋友说不该找药竞聘的时候去，我没有说什么，我只是跟他们说，帮过我们的人，我这辈子都不会忘记，不管他是做什么的。可能领导也是因为看到我这个心态，所以也很赏识我，那年，我竞聘很成功，我也一直在想一个问题，如果一个领导连容一个下属的气度都没有，那这样的领导，我为什么要跟他？后来，我开始自己创业了，领导很鼓励我走，他跟我说，离开虽然还早了点，你才28岁，不过，我想趁早起飞也不是坏事情，去闯闯，如果闯不出好名堂，那就回来，我这里的副总的位置永远给你留着。这句话，成为了我创业的底气，我开始用自己的积蓄一点点做事情，我其实从带人开始起，就喜欢自己面试，自己带人，我跟很多老板交谈过，其实普遍的反应是一致的，我们都喜欢带应急毕业生，虽然带这样的新人会很累很累，不过跟做业务一样，带出一个新人，你以后会很轻松，而且很有成就感。对新人的要求所以创业之后，我也只是都是自己面试，然后分到几个业务层面上去，我考察新人的方式其实并没有什么特别的要求。第一要求：是不要有功利心，其实这个在现在的大学生里面是最缺乏，看看我们的大学是怎么过来的，大一进去，就开始关心讨论怎么样才好找工作，还想着怎么入党，怎么加入学生会，而不是真正想怎样才能多学点东西，怎样才能完善自己。其实，我到现在还是认为，一个人要做的事情是不断的积累积累在积累，积累够了，自然就有你兑现价值的那一天，我们要做的首先是沉住气，学会等待，其次是要抓住机会。木有功利心，还表现在做事情上不急功近利，许多人领导在的时候，拼命表现，领导不在的时候就当什么都不管，所以，往往会被领导一时看重，但是因为没有民意表示，所以会很难为大家所接受。到最后其实也很难混的下去，为什么呢？其实领导有时候做上去要顾及的也很多，譬如有时候我在用人的时候，也都要征求下别人的意见，我也不想一个人抗责任，当我 要用一个人的时候，如果他表现的好，那可以说我是有眼光，但是如果他做不好呢？那就是我的责任了。所以，我也需要大家一起跟我分担责任，我就会去询问别人的意见，最终来决定。而一个有功利心的人，是很难为大家所共同接受的。功利心，有时候还表现在墙头草上，见人人话，见鬼鬼话，领导需要的是一个能办事情的人，而不是随身附和的应声虫，现在很多领导，尤其是业务型的领导，他需要你给他的是建议，而太有功利心的人会导致在考虑问题的时候很短视，重视个人利益，短期利益，无法形成太长期的看法，最终也很难有所成就。第二是肯干：我自己以前就感觉到，我自己为什么会比同一期进公司的人会成功一点，就是因为我比别人叫的动，领导一个电话，我无论几点，都会第一时间赶到，后来作领导了，我其实很能明白这个感受的，领导其实也是人，也需要有人帮助他处理各种问题，譬如孩子上学了，临时没有接送，他又不好意思公开招标吧，也不想让别人知道，那怎么办，他总要叫自己信得过的人去帮一下他，叫的多了，他也不好意思，总会想办法报答一下你，如果你能力在稍微优秀点，自然就是你的了。我自己的感觉很深刻的，我其实很不喜欢叫别人帮我去做事情的，不过很多时候，真的忙不过来，我就会顺手叫个人说，哎，谁，谁，帮我去趟哪里？这个时候，所有的人都会看着我，如果那个人，不理我，我会很没有面子。所以，一般情况也是，如果叫一个人去做点什么事情，一次不行，两次不行的话，基本上，我再也不会去叫他做事情了，而事实上，如果当一个人被人看死，尤其是被领导看死的话，他基本上就没有前途了，至少在我这里是这样的。第三就是谦卑，我不希望自己的部下是个趾高气扬，狐假虎威的人，这样的人目中无人，损害他自己的同时，还会把领导也给一起损害了，让人觉得他领导是个不会用人的人，位置越高，你可能得罪的人就越多，什么事情都会成为把柄，你可以再业务上大胆设想，但是在做人上，千万要谦卑，而且越谦卑，越显示你的气度，越能形成你的个人魅力。那些一旦新官上任，就开始意气奋发、趾高气扬的发表各种论调，很难会有长期的可持续性。这三点，又是通过什么可以判断的呢？我总结了几条，不知道是否合适：1、谦卑：开始吧，我最关注这个，一个人越谦卑，越能给人带来好感，谦卑反应在谈话的时候说话态度和语气上，我每次面试的时候，我经常穿的很邋遢，这可能是我一直的风格，我不太拘泥穿着，许多大学生进来面试的时候，我问问题，他们都会觉得自信满满，觉得自己这个可以干，那个可以干，其实相比于这个我到真的很希望要几个说自己不行的人，为什么？其实，大学生自己问自己心里看看，你们真能干这个干那个么？我自己是从大学毕业开始的，我想我的大学就学习到的内容程度而言，在全国应该算是中上了，无论是哪方面，但是我毕业的时候，我真的学到了东西么？就学习到的内容和只是而言，我真的不知道自己所学的，在我实际工作上有多少用处，近乎于0。大学真的给我们的是一种眼界的开阔，让你认识到更为广阔的天地，所以在面试的时候，说自己什么都可以做的人，往往会让我觉得很虚无，至少是不谦虚的。还有，应届毕生太过老练和咄咄逼人，其实也未必是什么好事情，至少是对我而言，其实大学生最好的优势在于他是一张白纸，他可以是很美好的一张画，但是关键是看谁来带，而太过老练的大学生，其实已经不是一张白纸了，他或许会短时间内对你有很大帮助，但是最终他成为不了你想要的那个人，一个已经对社会有大量实践，同时又有很多想法，或者说沾染了许多社会习气的人，很难成为领导们的首选，大凡领导其实都很喜欢选择一个和自己性格脾气对路的人，然后慢慢雕琢一个跟自己思想基本一致的人，而这个过程，只有白纸才可以实现，大多数领导都觉得不缺人，缺少的是合适的人，每个领导都为找不到合适的人苦恼，他们如果能找到合适的喜欢的人，花费点心思打磨是都很乐意和值得的。2、肯干，我常常会给大凡谦卑的应届毕业生一个实习的机会，在实习中其实很能看出一个人是否肯干的，我看到很多帖子上说，实习很无聊，不知道干什么？事实的确也是，很多大学生实习的时候是很没有事情干，我自己总结了一下，有些大学生真的很老实，说话也不知道怎么说，然后也不知道该怎么融入，就等着人家跟他说，干这个，然后他干这个，但是事实上由于缺乏经验，经常会做错些事情，而一旦做错事情，那些带他们的人就又要花心思去弥补这些错误，许多业务员都会说，千万别给他们安排实习生，帮不了忙反倒贴乱，就是这个道理。还有些大学生是不屑干，跑腿的事情，复印的事情不想干，结果师傅给的工作又干不好，还只知道抱怨，这类人是我最鄙视也不愿意要的人。当然也有些人，他们能很快融入团队，然后自己主动发现有自己可以干的事情，然后干的不错，这类人就是我最想要的那批人。对于第一类，我会通过几个培训，明确告诉他们的定位，我会要他们，但是很难成为我想要培养的人，第二类基本上抛弃，我看法帖子抱怨的大多属于这个类型，第三类，则是我会特意流下来，然后特意培养的类型。3、功利心，其实面试中，这个是最难看的出来的，但是有点，一个有功利心的人往往会很浮躁，浮躁的人往往等待不起，如同挖井一般，这里挖挖，那里挖挖，到最后哪里也挖不上水。工作也是一样，好不容易工作了两年，因为等待不了，就又换个地方，又要重新开始。前段时间有个叫孙振耀的人写了一片文章，我很喜欢其中一段话：这是个浮躁的人们最不喜欢的话题，本来不想说这个话题，因为会引起太多的争论，而我又无意和人争论这些，但是考虑到对于职业生涯的长久规划，这是一个躲避不了的话题，还是决定写一写，不爱看的请离开吧。并不是每次穿红灯都会被汽车撞，并不是每个罪犯都会被抓到，并不是每个错误都会被惩罚，并不是每个贪官都会被枪毙，并不是你的每一份努力都会得到回报，并不是你的每一次坚持都会有人看到，并不是你每一点付出都能得到公正的回报，并不是你的每一个善意都能被理解……这个，就是世道。好吧，世道不够好，可是，你有推翻世道的勇气么？如果没有，你有更好的解决办法么？有很多时候，人需要一点耐心，一点信心。每个人总会轮到几次不公平的事情，而通常，安心等待是最好的办法。有很多时候我们需要等待，需要耐得住寂寞，等待属于你的那一刻。周润发等待过，刘德华等待过，周星驰等待过，王菲等待过，张艺谋也等待过……看到了他们如今的功成名就的人，你可曾看到当初他们的等待和耐心？你可曾看到金马奖**在街边摆地摊？你可曾看到德云社一群人在剧场里给一位观众说相声？你可曾看到周星驰的角色甚至连一句台词都没有？每一个成功者都有一段低沉苦闷的日子，我几乎能想象得出来他们借酒浇愁的样子，我也能想象得出他们为了生存而挣扎的窘迫。在他们一生最中灿烂美好的日子里，他们渴望成功，但却两手空空，一如现在的你。没有人保证他们将来一定会成功，而他们的选择是耐住寂寞。如果当时的他们总念叨着"成功只是属于特权阶级的"，你觉得他们今天会怎样？曾经我也不明白有些人为什么并不比我有能力却要坐在我的头上，年纪比我大就一定要当我的领导么？为什么有些烂人不需要努力就能赚钱？为什么刚刚改革开放的时候的人能那么容易赚钱，而轮到我们的时候，什么事情都要正规化了？有一天我突然想，我还在上学的时候他们就在社会里挣扎奋斗了，他们在社会上奋斗积累了十几二十年，我们新人来了，他们有的我都想要，我这不是在要公平，我这是在要抢劫。因为我要得太急，因为我忍不住寂寞。二十多岁的男人，没有钱，没有事业，却有蓬勃的欲望。人总是会遇到挫折的，人总是会有低潮的，人总是会有不被人理解的时候的，人总是有要低声下气的时候，这些时候恰恰是人生最关键的时候，因为大家都会碰到挫折，而大多数人过不了这个门槛，你能过，你就成功了。在这样的时刻，我们需要耐心等待，满怀信心地去等待，相信，生活不会放弃你，机会总会来的。至少，你还年轻，你没有坐牢，没有生治不了的病，没有欠还不起的债。比你不幸的人远远多过比你幸运的人，你还怕什么？路要一步步走，虽然到达终点的那一步很激动人心，但大部分的脚步是平凡甚至枯燥的，但没有这些脚步，或者耐不住这些平凡枯燥，你终归是无法迎来最后的那些激动人心。逆境，是上帝帮你淘汰竞争者的地方。要知道，你不好受，别人也不好受，你坚持不下去了，别人也一样，千万不要告诉别人你坚持不住了，那只能让别人获得坚持的信心，让竞争者看着你微笑的面孔，失去信心，退出比赛。胜利属于那些有耐心的人。在最绝望的时候，我会去看电影《The Pursuit of Happyness》《Jerry Maguire》，让自己重新鼓起勇气，因为，无论什么时候，我们总还是有希望。当所有的人离开的时候，我不失去希望，我不放弃。每天下班坐在车里，我喜欢哼着《隐形的翅膀》看着窗外，我知道，我在静静等待，等待属于我的那一刻。每个人都希望，自己是独一无二的特殊者含着金匙出生、投胎到好家庭、工作安排到电力局拿1w月薪这样的小概率事件，当然最好轮到自己红军长征两万五、打成右派反革命、胼手胝足牺牲尊严去奋斗，最好留给祖辈父辈和别人自然，不是每个吃过苦的人都会得到回报，但是，任何时代，每一个既得利益者身后，都有他的祖辈父辈奋斗挣扎乃至流血付出生命的身影羡慕别人有个好爸爸，没什么不可以问题是，你的下一代，会有一个好爸爸吗？至于问到为什么不能有同样的赢面概率？我只能问：为什么物种竞争中，人和猴子不能有同样的赢面概率？物竞天择。猴子的灵魂不一定比你卑微，但你身后有几十万年的类人猿进化积淀。”回到面试中来，一个浮躁的人，常常对未来的岗位和工资薪水会特别关心，在面试中，我都会如实告知，但是在面试之外，我想说的一句话是，别对这个太关心，你不可能获得你能力之外的东西，一样的道理，你也不可能拿不到你能力之内的东西。你只要做的好，总会有你的价值体现！希望对各位大学生有用。谢谢。注：原文由江南愤青于虎嗅网发表。
我们在学习前端的过程中，有时候会出现一些奇怪的现象，Collapsing Margins便是其中之一，有时候我们想要某个元素离的第一个子元素能够下移一些，于是给它设置了margin-top，但奇怪的是这个margin-top属性却传递给了父元素，导致父元素的位置下移： Child 这是个BUG吗？为什么各种浏览器都会有这样的“BUG”呢？其实，W3C规范认为margin折叠会使页面布局更加合理，比如两个段落（ ）之间，段前间距跟段后间距应该只保留最大的一个，而不应该两者相加而导致段落之间间隙过大。下面，我们就来探究一下这个奇怪的Collapsing Margins。什么是外边距折叠（Collapsing margins）？Collapsing margins，即外边距折叠，指的是毗邻的两个或多个垂直方向的外边距 (margin) 会合并成一个外边距。这里的毗邻包括相同级别的元素外边距，也包括父子元素的外边距。什么情况下会发生折叠？可以归结为以下两点： 这两个或多个外边距没有被非空内容、padding、border 或 clear 分隔开。 这些 margin 都处于普通流中（非浮动元素、非定位元素）。 折叠后margin的计算 当参与折叠的margin均为正值时，取最大的margin值作为最终margin。 当参与折叠的margin均为负值时，取绝对值最大的margin值作为最终margin。 当参与折叠的margin同时存在正负值时，取绝对值最大的负margin值与最大的正margin值相加作为最终margin。 如何防止外边距折叠？在某些情况下，margin的折叠并不是我们需要的效果，甚至可能影响正常的布局，这时候怎么办呢？有以下这些解决办法，按需要任选其一即可： 使用高度为零的空元素将折叠的margin隔开（不建议） 使用边框将折叠的margin隔开：border:1px transparent solid; （大小大于零） 使用内边距将折叠的margin隔开：padding:1px; （大小大于零） 为父元素设置overflow:hidden; display:inline-block;（IE7以下不支持） position:absolute; float:left; 后记很久之前便想写一篇关于margin折叠的文章了，可惜由于各种原因，再加上很长一段时间以来心比较急躁，难以静下来写写东西，无奈耽搁至今。。寒假里还有许多事要做，希望自己能够乐观积极，不怕麻烦，赶紧把这些事情通通搞定，然后恶补前端性能与JavaScript，准备下学期的实习。——于2013年1月26日 深夜1:46:48
今天在做项目的时候需要用到JavaScript农历转换算法，从网上搜索并整理了一下，重新写出一个JavaScript农历转换类，不敢独占，特此与大家分享。/*! * LunarDate v1.0.0 * http://www.clanfei.com/ * * Author: Lanfei * Date: 2013-1-24 */ var LunarDate = { madd: new Array(0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334), HsString: '甲乙丙丁戊己庚辛壬癸', EbString: '子丑寅卯辰巳午未申酉戌亥', NumString: "一二三四五六七八九十", MonString: "正二三四五六七八九十冬腊", CalendarData: new Array(0xA4B, 0x5164B, 0x6A5, 0x6D4, 0x415B5, 0x2B6, 0x957, 0x2092F, 0x497, 0x60C96, 0xD4A, 0xEA5, 0x50DA9, 0x5AD, 0x2B6, 0x3126E, 0x92E, 0x7192D, 0xC95, 0xD4A, 0x61B4A, 0xB55, 0x56A, 0x4155B, 0x25D, 0x92D, 0x2192B, 0xA95, 0x71695, 0x6CA, 0xB55, 0x50AB5, 0x4DA, 0xA5B, 0x30A57, 0x52B, 0x8152A, 0xE95, 0x6AA, 0x615AA, 0xAB5, 0x4B6, 0x414AE, 0xA57, 0x526, 0x31D26, 0xD95, 0x70B55, 0x56A, 0x96D, 0x5095D, 0x4AD, 0xA4D, 0x41A4D, 0xD25, 0x81AA5, 0xB54, 0xB6A, 0x612DA, 0x95B, 0x49B, 0x41497, 0xA4B, 0xA164B, 0x6A5, 0x6D4, 0x615B4, 0xAB6, 0x957, 0x5092F, 0x497, 0x64B, 0x30D4A, 0xEA5, 0x80D65, 0x5AC, 0xAB6, 0x5126D, 0x92E, 0xC96, 0x41A95, 0xD4A, 0xDA5, 0x20B55, 0x56A, 0x7155B, 0x25D, 0x92D, 0x5192B, 0xA95, 0xB4A, 0x416AA, 0xAD5, 0x90AB5, 0x4BA, 0xA5B, 0x60A57, 0x52B, 0xA93, 0x40E95), Year: null, Month: null, Day: null, TheDate: null, GetBit: function(m, n){ return (m >> n) & 1; }, e2c: function(){ this.TheDate = (arguments.length != 3) ? new Date(): new Date(arguments[0], arguments[1], arguments[2]); var total, m, n, k; var isEnd = false; var tmp = this.TheDate.getFullYear(); total = (tmp - 1921) * 365 + Math.floor((tmp - 1921) / 4) + this.madd[this.TheDate.getMonth()] + this.TheDate.getDate() - 38; if (this.TheDate.getYear() % 4 == 0 && this.TheDate.getMonth() > 1) { total++; } for (m = 0; ; m++) { k = (this.CalendarData[m] < 0xfff) ? 11: 12; for (n = k; n >= 0; n--) { if (total <= 29 + this.GetBit(this.CalendarData[m], n)) { isEnd = true; break; } total = total - 29 - this.GetBit(this.CalendarData[m], n); } if (isEnd) break; } this.Year = 1921 + m; this.Month = k - n + 1; this.Day = total; if (k == 12) { if (this.Month == Math.floor(this.CalendarData[m] / 0x10000) + 1) { this.Month = 1 - this.Month; } if (this.Month > Math.floor(this.CalendarData[m] / 0x10000) + 1) { this.Month--; } } }, GetcDateString: function(){ var tmp = ""; tmp += this.HsString.charAt((this.Year - 4) % 10); tmp += this.EbString.charAt((this.Year - 4) % 12); tmp += "年 "; if (this.Month < 1) { tmp += "(闰)"; tmp += this.MonString.charAt(-this.Month - 1); } else { tmp += this.MonString.charAt(this.Month - 1); } tmp += "月"; tmp += (this.Day < 11) ? "初": ((this.Day < 20) ? "十": ((this.Day < 30) ? "廿": "三十")); if (this.Day % 10 != 0 || this.Day == 10) { tmp += this.NumString.charAt((this.Day - 1) % 10); } return tmp; }, GetLunarDay: function(solarYear, solarMonth, solarDay) { if (solarYear < 1921 || solarYear > 2020) { return ""; } else { solarMonth = (parseInt(solarMonth) > 0) ? (solarMonth - 1): 11; this.e2c(solarYear, solarMonth, solarDay); return this.GetcDateString(); } } };调用方法： LunarDate.GetLunarDay(2013, 1, 24);
Date.prototype.format = function(mask) { var d = this; var zeroize = function (value, length) { if (!length) length = 2; value = String(value); for (var i = 0, zeros = ''; i < (length - value.length); i++) { zeros += '0'; } return zeros + value; }; return mask.replace(/"[^"]*"|'[^']*'|\b(?:d{1,4}|m{1,4}|yy(?:yy)?|([hHMstT])\1?|[lLZ])\b/g, function($0) { switch($0) { case 'd': return d.getDate(); case 'dd': return zeroize(d.getDate()); case 'ddd': return ['Sun','Mon','Tue','Wed','Thr','Fri','Sat'][d.getDay()]; case 'dddd': return ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'][d.getDay()]; case 'M': return d.getMonth() + 1; case 'MM': return zeroize(d.getMonth() + 1); case 'MMM': return ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'][d.getMonth()]; case 'MMMM': return ['January','February','March','April','May','June','July','August','September','October','November','December'][d.getMonth()]; case 'yy': return String(d.getFullYear()).substr(2); case 'yyyy': return d.getFullYear(); case 'h': return d.getHours() % 12 || 12; case 'hh': return zeroize(d.getHours() % 12 || 12); case 'H': return d.getHours(); case 'HH': return zeroize(d.getHours()); case 'm': return d.getMinutes(); case 'mm': return zeroize(d.getMinutes()); case 's': return d.getSeconds(); case 'ss': return zeroize(d.getSeconds()); case 'l': return zeroize(d.getMilliseconds(), 3); case 'L': var m = d.getMilliseconds(); if (m > 99) m = Math.round(m / 10); return zeroize(m); case 'tt': return d.getHours() < 12 ? 'am' : 'pm'; case 'TT': return d.getHours() < 12 ? 'AM' : 'PM'; case 'Z': return d.toUTCString().match(/[A-Z]+$/); default: return $0.substr(1, $0.length - 2); } }); };
译者按：Aaron Swartz是个传奇般的人物，他是一个网络奇才，也是一个资讯自由斗士。此前我对他一无所知，但早就受益于他的智慧。大学阶段，我很大一部分知识都来自于Google Reader，而RSS是他14岁跟别人共同创作的作品。自 2010年6月13日以来，我一共在Google Reader里阅读了 63,862 个条目。天妒英才，美国扭曲的知识产权保护制度和司法体系更是将他逼上了绝路。在此，我把Aaron Swartz的这篇著名的《HOWTO: Be more productive》翻译成中文，向他致敬！总是有人这样说：“把看电视的时间用于写小说，你早就完成一部大作了！”这确实让人很难反驳，因为把时间用在写书上无疑比看电视更好。然而，这个论调隐含这样一个假设：不同种类的时间是“可互换的”。你可以轻易用看电视的时间来写一部小说。但实际上，并非如此。时间也是分三六九等的。如果在去地铁站的路上，我发现自己忘带笔记本了，那么就很难利用这段时间写几段小说。工作时，如果总是被打断的时候，你也很难集中精力有效利用时间。有时候，还有心理作用影响时间的质量：当我兴致不错时，就能积极、高效地工作；而身心俱疲时就只能去看电视了。如果想提高效率，你就一定要遵循以下准则：首先，你必须充分利用每一类型的时间；其次，你得尽量让时间变成优质时间。有效利用时间选择值得的工作寄蜉蝣于天地，渺沧海之一粟。（至少我是这样被教育的）因此为什么要把这短暂的生命浪费在愚蠢的事情上？人们很容易做一些简单的事情，然而你更应该扪心自问：我能否做些更有意义的事情？为什么不去做些更重要的事情呢？你也许很难直面这种诘问，（如果你遵循这个法则的话，就会经常问自己：为什么你不在做这世上最重要的事呢？）然而，每前进的一小步都会提升你的效率。这并不是说你终生都忙于垂名青史，至少我肯定没有（毕竟，我还在写这篇文章呢）。但它绝对是我衡量生活的标准。一心三用另一个常见的误解是：专注于一件事情有利于我们高效完成任务。我认为这是无稽之谈。此时此刻，我正调整姿势、锻炼肌肉、喝着饮料、清理书桌、跟我的兄弟聊QQ，当然我还在写这篇文章。在过去的一天里，我曾为这篇小文做些准备工作、读了一本书、吃了点东西、回复了几封邮件、与朋友们聊天、备份硬盘，还整理了我的阅读清单。而在过去的一周里，我参与了好几个软件项目的开发，读了几本书，研究了几种编程语言，并提出了一些我的看法，等等。一心三用能够让你在不同品质的时间里都能工作。此外，当你在一件事情上卡住，或者感到无聊时，你可以做些别的事情。（这也给你的头脑一些活动活动的时间）在一段时间内做多件事情也能够让你更富有创造力。创造力就是能够把在别的领域学到的东西应用于当下的工作中。如果你同时做不同领域的多个项目，你就能借用很多奇思妙想了。列张清单同时做多件事情其实没有那么难——更多的人想同时做无穷多件。但如果你试图把它们一股脑记在心里，你脆弱的心灵会马上崩溃。这种同时记住所有要做事情的心理压力简直能把人逼疯。其实解决方法很简单：把他们都写下来。一旦你有这样的事项清单，你就能按部就班地组织工作了。比如说，我的事项清单是编程、写作、思考、跑腿、阅读、聆听和观察。其实很多大项目包含一系列工作事项。举个例子，写这篇文章就包括阅读有关拖延症的文章、思考各个章节、遣词造句、发邮件问人问题等。这些事项都是除了写作之外必须执行的实际工作。我们应该合理安排每个事项，这样当你有合适的时间时，就能够不假思索地完成工作。整合清单与生活一旦你有了这个事项清单，接下来的问题就变成记得看它，最好无论你要做什么之前都能注意到事项清单。例如，我把最近正在读的书放在桌子上一摞书的最上面。这样每当要读书时，我只需打开最上面的那本。我也这样处理电影和电视节目。每听到值得一看的电影，我就把它拷贝到我电脑中一个特殊的文件夹里。，每当要看电影时，我就直接打开那个文件夹。我也想过一些更深入的方法。例如，当我检查博客更新时，就有一个网页带着我“待读”文件夹里的文章弹出来。或者当我休息时，就弹出一个工作小贴士的网页。提升时间质量上面的建议已经能够让你充分利用各种时间，然而更重要的是你得让时间变得更优质。很多人把自己的时间浪费在上学或上班这种无聊的事情上。如果你在工作或者上学，显然你应该停止浪费生命。为了进一步提升时间质量，你需要做些别的什么呢？减少生理限制随身携带纸和笔我认识很多有趣的人，他们都随时携带某种口袋笔记本。纸和笔在任何情况下都是可以立即使用的。你可以随时给别人写东西、做笔记、或者涂鸦想法等。我甚至在乘坐地铁时写过一篇完整的文章。（我过去经常这么做，但现在我随身带着智能机。我不用它发送信息，但智能机能让我随时随地都有阅读材料（电子邮件），它也能把我随时记下的笔记推送到电子邮箱的收件箱，而收件箱里都是必须马上处理的事情。）避免被打断对于需要集中注意力的工作，你应该避免被打断。最简单的方法是去个没人打扰的地方。或者你可以跟身边的人约法三章：“当我房间的门是关上的时候不要来找我”或者“我带上耳机时，你就在Q上给我留言”（然后你就可以一直工作到闲下来才去看QQ留言）你不会希望做得太过份。有时如果遭遇了劣质时间，你就应该去做些别的事情。比如说：去帮别人解决他们遇到的问题就比坐在电脑前刷微博强得多。这就是为什么要约法三章：当你真的无法集中注意力时，你是可以搭把手帮他们做些别的事情。缓解心理束缚吃饭，睡觉，锻炼饿肚子或者疲惫或者焦躁时，你正遭遇劣质时间。解决方法很简单：饿了就吃饭，困了就睡觉，不高兴了就锻炼。我自己有时候也做得不好。我不喜欢找吃的，所以就经常饿着肚子工作，一直干到累得自己也没力气拿食物了。工作中，人们容易这样对自己说：“我也觉得累了，但现在还不能休息。我还没干完呢！”实际上如果你先小憩一会儿，剩下的劣质时间就会变成优质时间，你的工作效率会更高。而且早晚你都得睡上一觉。其实我不经常锻炼，似乎我也不是告诫大家要积极锻炼的最佳人选，但我正努力尝试增强锻炼。躺着看书时，我会做仰卧起坐；步行出门时，我往往跑着过去。与开朗的人为伍缓解心理束缚非常困难，然而跟开朗的人交朋友对此有益。我发现自己跟Paul Graham或Dan Connolly聊过之后，就更享受工作。他们简直就是在辐射正能量！人们通常认为把自己关在房间里不见外人，就能够开始工作了。但令人泄气的是，这种方式实际上极其低效。分担工作即便你的朋友不开朗，跟他一起解决难题也比一个人独自承担强。另一方面，帮你分担工作的朋友也能监督你干活，你不会分心做别的。拖延症和精神力场然而，所有的这一切都试图回避一个的问题。那些效率低下的人们的关键原因在于拖延症。每个人都在拖延，并不只有你，这是一个肮脏的小秘密。但这并不意味着你不应该对付拖延症。拖延是什么？对于外界观察者而言，拖延就像你在做些有趣的事情（比如玩游戏或者刷微博），而非做你应该完成的工作。（这通常会让旁观者觉得你又懒又赖）但真正的问题在于：拖延症的本质究竟是什么？我曾经花了好长时间来研究这个问题。对此，我最好的描述是你的大脑给任务事项施加了一种精神力场。玩过磁铁的人都知道：同极相斥。移动磁铁时，你能够感受到磁场线的边缘；而如果你把同极磁铁放在一起，磁场会把磁铁相互推离。精神力场就跟磁场的工作原理一样。我们看不见，但能够感受到它。你越是努力像完成某件事，精神力场就把你往反向推得越远。正如你不能通过蛮力把两块互斥的磁铁固定到一起一样：你一松手，他们就会分开，我从来没能纯粹的利用意志力来克服精神力场。恰恰相反，你应该足够机灵：只需转动磁极。那么究竟是什么造成了精神力场？我认为主要有两个原因：一是工作本身难度较大，二是自己被人指派需要工作。面对困难分拆工作工作困难的第一个原因是过于庞大。假设你希望编写一个食谱整理程序。没有人能坐下来马上开始编写代码。创造一个程序只是是目标，而非具体可执行的工作事项。工作应该是具体、特定的一步，能够带你走向目标。像“画一个虚拟窗口能够显示食谱”这种工作就是一个良好的开端。从这一步开始，你知道能做什么了。当你迈出了第一步，第二步就变得更加清晰。你要构思食谱的构成，做什么样的搜索功能，如何构建食谱数据库等。马到成功，势如破竹。当你全心全力投入可执行的每一步时，难题就变得容易多了。对于我的每一个大项目而言，我都会思考下一步应该做什么，然后把它们列入分类事项清单中（见上文）。而每当我暂停某个项目时，我都会在清单里写下一步的计划。简化工作工作困难的第二个原因是过于复杂。比如：写一本书就看起来很艰巨，所以我们要从一篇文章起步。如果一篇文章也嫌太多，那就先写一段文字。最重要的是你要开始着手做些事情。一旦起步，你就能够更加准确地评判和理解工作中的困难。改进已有的工作可比从一张白纸做起简单多了。如果你顺利地写出了段落，或许它可以变成一篇文章，然后是一本书。一步接一步，一部宏伟的著作就这样诞生了。思考难题通常情况下，一点灵感是解决难题的关键。如果你不了解某个领域，显然你需要做些调研：看其他人是怎么做的，先找到一些感觉；然后试着进一步全面了解该领域。而后，处理一些小问题练练手，检验一下是否掌握要领。被分配的任务这是指那些你被要求完成的工作。无数心理学实验证明：当你试图激励别人做事情时，他们就倾向于不合作或者故意做得很差。胡萝卜加大棒这种外在激励似乎杀死了心理学家口中的“内在动机”——你对困难的天然兴趣。（这是社会心理学领域被重复研究、也是被研究得最透彻的领域：有超过70项研究证明奖励会破坏完成任务的兴趣）人们内心深处似乎抵制这种被要求完成的任务。奇怪的是，这种现象并不仅局限于别人，甚至当你告诉自己要做什么的时候也会出现。如果你告诉自己：“我应该做XX，这是目前最重要的事情”，突然之间，XX就成为世上最艰难的事情。然而，一旦YY成为你当下最该做的事情时，原来的XX就变得可爱起来。创建虚假任务由此，我们可以提出一种解决方法：如果你想做XX，就告诉自己要做YY.不幸的是，这样有意骗自己有些困难，因为你知道自己的一举一动。所以，你要更加鸡贼才能骗到自己。比如让外界分配任务给你。最著名的例子莫过于研究生必须完成的毕业论文，只有完成这个艰难的任务他们才能毕业。因此为了避免写毕业论文，研究生们乐于完成其他困难的任务。这种虚假的任务必须看起来十分重要（你只有写毕业论文才能毕业！）又庞大（你要完成数百页文章），但实际上不完成也不会死。不要给自己布置任务我们很容易说：“好吧，我需要把眼下的一切都放一边，集中精力完成这篇文章。”更糟糕的是，你甚至想用一些奖励收买自己，比如“如果我完成了这篇文章，就吃颗糖果”。但是最糟糕的还是让别人强迫你做。这三种情况都非常容易发生，我也都用过以上手段激励自己，但完全适得其反。因为你已经是在给自己分配任务了。然后，你的大脑会尽可能逃避这些工作。把事情变得有趣我们往往被告知：吃得苦中苦，方为人上人。但实际上解决难题差不多是我最享受的工作了。一个棘手的问题不仅能让你全神贯注地投入其中，更能让你收获解决难题之后美妙的成就感。所以，驱动自己做事情的秘诀不是说服自己必须要做，而是告诉自己这很有趣。如果它真的很无聊，那你就把它变得有趣。我第一次认真对待这个问题时，正在读大学。那时候我被要求写论文，其实写论文也不是一件特别难的事情，但它是被强加于我的。谁自愿写那么长地论文以讨论两本书的联系呢？为了让它变得有趣，我就从把论文变成我自己的小笑话开始。我决定用不同的风格写一段段文字，尽我所能地模仿各种各样的言论。（这样做还有上文讨论过的好处：总算迈出了第一步）使事情变得更有趣的另外一个方法是解决模型问题。例如，与其构建一个Web应用，不如建立一个Web应用的框架模式，然后把该Web应用当作一个模型APP。这样不仅会让任务变得更有趣，工作的成果也往往会更有用。结论关于效率确实有很多误区：比如时间是可以替换的，专注做一件事情更高效，自我奖励能提高效率，艰难的工作都是苦逼的，拖延症是不正常的。这些误区的共同本质在于：扭曲你的天性。对于绝大多数人的绝大多数工作，都是如此。你难道是真的喜欢写无聊的文章或记录毫无意义的备忘录吗？如果社会强迫你这样做，你倾听内心，咆哮出内心的呼喊。如果你在努力做一些值得为之付出的事情，就更不应该关闭心灵的窗户了。恰恰相反，高效的真正秘密在于倾听身体的声音。饿了就吃，困了就睡，累了就休息，做有趣的事情。这看起来如此简单，没有任何花哨的言语，也不需要坚强的意志力，更不像那些人生导师的忠告。听从内心看起来就像常识，但社会的羁绊使得我们都误入歧途。如果你真的希望变得高效，很简单，是时候转身了。
TNW发布了2013年10大网页设计趋势： 响应式布局盛行，即一个网站适配多种屏幕; 重视字体的选择，使用Web字体; 更少的使用Flash，使用其他任何可能替代的技术; 苹果iOS的拟物化设计将不再时髦; 使用巨大的背景图构造大气的视觉效果; 产品和个人介绍页面留出更多空白; 更多的社交网络分享入口; 浅色、冷色调重新成为主流; 移动App将取代一部分移动网页流量; 内容依旧为王; 好了，该到我们年终展望新年的时刻了。2012年我们看到一些新的设计趋势在Web设计领域，特别是响应式页面设计。那么跟随我们的脚步，来预测一下2013年的设计趋势吧！1、响应式网页设计越来越被重视响应式网页设计已经不是什么新鲜名词了，但我们为什么还有说它呢？简单地说：响应式设计的方法会更多且制定相应的标准。2012年通过断点的响应式 设计类适合不同的屏幕，当新的设备比如iPad mini冲击足够大的市场的时候，这种方式将得到改变，断点可能被替换成其他实现方式。我们认为更多的网站设计将专注于最初的页面设计以响应式，而非单独制定不同设备的模式。这种响应式设计忘记尺寸以便支持多种设备，我们将看到更丰富的页面设计适应不同节点的设备。2、重视字体的选择，使用Web字体初建网站时，Web设计师和开发者常常专注于图片处理及JavaScript脚本。在过去两年以及未来相当长的一段时间内，Web设计类型将得到一 次突破，最为明显的是字体设计成为网页设计重中之重。比如使用@font-face 把服务器上字体引入，比图片和脚步JavaScript更轻量化。而且，字体布局相比图片和JavaScript复杂的布局更适合响应式设计。大胆放开你的思维，让更多的字体设计尽显在你的网站上。3、更少的使用Flash，使用其他任何可能替代的技术不要惊讶Flash到2012年才拿掉，对网站的SEO来说它是多么垃圾，很多移动设备已经不支持它了（看看苹果的设备），而且更新很痛苦（经常崩溃浏览器，你有过吗？）最佳的方式是使用HTML5/CSS3和JavaScript等。2013年Flash可能举步维艰。虽然有些危言耸听，但这是事实，Adobe都不支持Flash在Android 4.1以上系统了。4、 苹果iOS的拟物化设计将不再时髦这里有个关于苹果拟物化设计的讨论，甚至苹果也在商议改变设计决策。过去的项目线索并不能帮助我们在新技术上改进思维方式。举个例子，我们要阅读电子书不需要虚拟一个书架放一本书，把它放在我们的设备上，我们知道它是电子书，我们知道如何打开阅读它。苹果正需求其他设计美学，等待其他人步入后尘。我们已经看到一些公司拥有它们自己的方法论，比如微软的Metro风格设计。所以未来，更多设计将扁平化。5、使用巨大的背景图构造大气的视觉效果上一条我们说过字体设计将替代图片，但这不矛盾，越来越多的网站使用大图片放在网站的首页以增加视觉冲击力。当然，使用大图像要考虑带宽流量和服务器问题，合理优化是首要。6、留白更多2012年设计趋势中谈到页面留白，2013年这种趋势将继续存在，响应式页面设计和简约的设计美学都是关键的因素。留白会更显的专业和大气。（哈哈，又是大气～）7、更多的社交网络分享入口把更多的社交媒体整合到你的新网站中吧，在每篇文章中凸显社交按钮，2013年更多深层次的社交整合将得到爆发。这包含了简单的社交登录外，还有更深层次的比如“微博支付”分享等，以及其他社交分享方式（Instagram、Pinterest等），更多广告业也将在社交媒体上出现。8、浅色、冷色调重新成为主流，更多淡雅平静的配色方案色彩潮流比任何东西来去更快，使用淡雅和平静的色彩将会出现更多网站上。过去几个月我们也看到一些网站的设计，比如新版的PayPal主页。你可以看看“Pantone 2013色彩选择”。很难预测那些色彩在某特定时间内流行。不过值得肯定的是，淡雅和浅色风格设计将主导网站和移动应用界面设计。安全色如白色、黑色和灰色将作为主要色调。9、移动App将取代一部分移动网页流量即使网站兼容所有设备，对于某些网站，一个移动应用来的更好些。像Twitter, Facebook, Pinterest等，移动应用版比移动浏览器版体验会更好些。2013年这种趋势将更加明显，越来越多的人通过移动应用浏览内容而不是浏览器。10、内容有价值恒古不变2013年网页设计更注重有价值内容的呈现。没有内容，就没有网站。保持网站新鲜的最佳方式就是更新有价值的内容。撰写，设计，发布和共享一切以内容为主，响应式设计也不例外。总之：响应式设计、有价值的内容、社交媒体将成为2013年的主导。最后，祝大家新年快乐～转载自：UISDC Enqoo原文