Why·Liam·Blog

人生若如初見

我觉得,基本上可以说每个程序员都很熟悉「Hello World!」程序。依照惯例,它是学习编程语言、编译并运行你的首个程序的一种快速方法。然而,除此之外,它的价值不大。下面是我认为Hello World的十个问题。

**10.为什么是「Hello World」?为什么不叫「Hello Dave」或者「It Works!」?**(Dave就是《2011太空漫游》中的HAL 9000)

我知道这个问题有点夸张。「Hello World」这种说法从何而来呢?除你之外,最后一次有人运行你的程序是什么时候?也许用「Hello」更合理些。

9. 它只适用于一件事情」?

阅读全文 »

Big data is like teenage sex,everyone talks about it,nobody really knows how to do it,everyone thinks everyone else is doing it,so everyone claims they are doing it.」

看完这句话,大家对什么是「大数据」有点概念了吗?目前,大多数人对大数据的概念还停留在:就是海量的数据,PB(1PB=1024TB)级别的,甚至是 EB、ZB 以上的数据,通过对这些数据进行深入分析,就能得出非常有价值的结论,指引企业做出最佳决策。

大数据就是那种每个人都听过,或者看过此类文章,但却不怎么了解的事物。

其实,现在的大数据指的并不仅仅是海量数据,更准确而言是对大数据分析的方法。传统的数据分析,是通过提出假设然后获得相应数据,最后通过数据分析来验证假设。而大数据不是这样的,大数据是从收集的海量数据中,通过算法将这些来自不同渠道、格式的数据进行直接分析,从中寻找到数据之间的相关性。简单而言,大数据更偏重于发现,以及猜测/印证的循环逼近过程。

阅读全文 »

摘要:学知识是一个很漫长的积累过程,幸好的是,我学会了知识管理,并获益良多,我视之为我人生中最重要的技能,我会将这个技能不断优化,用来雕琢自己。这篇主要介绍了知识的获取及管理方法,都是要靠实践获得的,希望对大家有用。

本文初发于2014年3月4日,2014年5月12日大幅修改。

简书地址:《个人知识管理的方法》

前言

阅读全文 »

虽然从没有认为自己是一个前端开发者,但不知不觉中也积累下了一些前端开发的经验。正巧之前碰到一道面试题,于是就顺便梳理了一下自己关于Web App的一些思路并整理为本文。

对于很多简单的网站或Web应用来说,引入jQuery以及一些插件,在当前页面内写入简单逻辑已经可以满足大部分需要。但是如果一旦多人开发,应用的复杂程度上升,就会有很多问题开始暴露出来:

  1. 数据源一般都与页面分离,那么App启动一般都需要等待数据源读入。
  2. UI交互复杂时,需要将逻辑通过面向对象抽象后才能更好的复用。
  3. 功能间一般都存在依赖关系,需要引入支持依赖关系的模块加载器。 那么如何解决这些问题,就以一个简单的订餐App为例,从零开始一个模块化可扩展Web App

这个简单的App基于HTML5 Boilerplate、requireJS、jQuery Mobile、Underscore.js,后端逻辑用jStorage模拟实现。完成后的成品在此。所有代码可以在github查看。下文将逐一介绍实现的思路与方法。

阅读全文 »

CSS选择器对性能的影响源于浏览器匹配选择器和文档元素时所消耗的时间,所以优化选择器的原则是应尽量避免使用消耗更多匹配时间的选择器。而在这之前我们需要了解CSS选择器匹配的机制, 如子选择器规则:

我们中的大多数人都是从左到右的阅读习惯,会习惯性的设定浏览器也是从左到右的方式进行匹配规则,推测这条规则的开销并不高。

我们会假设浏览器以这样的方式工作:寻找 id 为 header 的元素,然后将样式规则应用到直系子元素中的 a 元素上。我们知道文档中只有一个 id 为 header 的元素,并且它只有几个 a 元素的子节点,所以这个CSS选择器应该相当高效。

阅读全文 »

从IBM到微软,到Google,再到Facebook,你看到了什么?IT产业的发展史?新兴IT公司的兴起和传统IT产业的衰落?这,就是如今IT产业的趋势吗?

在回答问题之前,让我们看下各公司最辉煌时期的经营逻辑:

1.IBM: 世界上只要有4台计算机就足够了

2.微软: 每个书桌上都要有一台计算机

阅读全文 »

这本书完全用 Paper 制作完成,是今年 YC 的Startup School 2013,包括 Face book 、Twitter 等公司的 10 位创始人和投资人,每人通过一张 Paper 的形式将其核心内容呈记录的讲授的课程现出来,Paper 版售价40美元,Business Insider将他们分享了出来。除了本身内容非常有价值外,书的形式真正硅谷味十足。

10位嘉宾名单:

阅读全文 »

「为什么要写博客」 似乎是每一位博主都会在博客里提及的一个老生常谈的问题,上到博客老手,下到像我这种文(zhuang)艺(bi)少年都会在博客里侃一侃博客本身。

第一次听到这个问题,脑子里便下意识的弹出来一个答案:逼格甚高。不得不承认,能在同龄人中(建博客的时候我13岁,这个答案我是站在那时候我的角度回答的)拥有一个自己的博客是个挺酷炫的事情,在别人刷着 QQ 空间,转着脑残日志,脑残说说(就是开地图炮怎么地了)的时候,我有一片自己可以任意支配的领地,我可以在这片里标新立异的领地里竖起自己思维的旗帜,没有任何干扰,没有任何限制,我能自由的写下自己的想法,吐槽一切我看不惯的事物,对那时的我来说是一件很有诱惑力的事情,也是一个可以迅速提升逼格的方法,何乐而不为?(中二气息浓厚)

当然以上都是我过去的想法,俗话说的好:「生活是一个不断发现自己以前是个傻逼的过程」 现在的我就觉得以前的我很傻逼,「好好的一个博客竟然被当成了装逼工具」、「毕竟图样图森破」、「黑历史神烦」等等。所以说,到底为什么要写博客?

有位智者说过:「写博客是为了和过去以及未来的自己对话」 写给十八岁的自己 这篇文章就是我在看到这句话后的产物。博客可以作为一个见证,它既可以见证过去也可以见证未来,看自己以前的文章,可以回顾自己的成长,就算是黑历史也可以和现在的我打个照面,看看自己哪些变了,哪些没变。同时,目前正在写的博文也将是未来我的「参考历史」,看看现在的自己和未来的自己又有什么不同,在对比中成长完善自己。

阅读全文 »

在互联网行业工作的想必都多多少少听说过GitHub的大名,除了是最大的开源项目托管平台,许多企业也都是用GitHub来协同开发工作,当然我们彩程也是其中之一。笔者最初决定学习Git也是因为在团队内部设计方案初步被开发出来后,难免会有一些细节需要调整,而为了调整几像素的问题再求前端工程师出马,其实是很影响整体效率的,所以希望通过学习GitHub好在必要的时候直接参与开发,能发挥自己的一点CSS技术以更直接快速的解决问题。

但是期间竟然发现网上无一篇为设计师而备的Git教程,典型的,几乎没有一个教程讲了GitHub的官方应用,而都是围绕命令符做教程,对就是DOS那样的命令符界面,这对于设计师和产品经理等非技术背景从业者来说多少有些难于上手,所以笔者打算结合个人体验,自己动手写一篇以使用网页和客户端为主的GitHub教程(暂时先仅以Mac版客户端为例),希望它能帮助大家以最快速度熟悉并逐渐开始使用GitHub。

在开始之前,还是得说说为什么GitHub值得设计师学习。除了开篇所讲的例子,可以将自己所了解的一点CSS或开发技能发挥出来,降低团队合作中的沟通成本。这本质上还是设计师是否应该学习开发或学习到什么程度的问题。不过我一直认为这没什么可探讨的,只是每个人不同的选择和追求。就像有些人是想成为家具设计师,有些人是真想亲手打磨出自己心中最理想的那一把椅子;有些人想成为建筑设计师,有些人只想在山脚下为家人盖一座完美小屋。同样,如果你是真的热爱这个日新月异的行业,没准某天也要自己创造点什么,我想你一定会毫不犹豫的开始学习。(插播广告:欢迎加入 「设计师学开发」 QQ群 302258924 寻求帮助、分享学习经验)

按惯例,还是先简介下究竟什么是Git(有基本认识的同学可以直接跳过)。让我们摒弃那些专业名词,用设计师工作中经常遇到的情况来介绍什么是Git:

阅读全文 »

之前一直有朋友要我分享下在用的mac软件,今天有空就来写一下,可能不止于软件,会有一些配置或者工具,或者叫环境更合适。有些可能一句话带过,有些会详细介绍。也不分类了,想到哪个就写出来。如果已经写的足够长了,就会分几篇来写。

其实现在os x的terminal已经做的很好了,但是iTerm2的功能依然要更强大一些。简述下优点和常用功能:

  • 开源免费。
  • 兼容性比默认Terminal更好。
  • 对于经常要远程使用的情况下,默认的Terminal在使用vi时经常出现不兼容的问题,而iTerm2在这方面显然做的更好。
  • 快捷键丰富。
  • ⌘ + 数字: 切换标签页。 ⌘ + 方向键 按方向切换标签页。
  • ⌘ + enter: 切换全屏
  • ⌘ + f: 查找。支持正则。其中查找的内容会被自动复制。省去了再去⌘+c的步骤。同样,鼠标去选中的内容也会自动复制,也可以鼠标中键直接粘贴。一般在使用时,键入搜索关键词,然后用shift-tab或者tab左右自动补全,option + enter则自动将搜索结果键入,并且复制到剪贴板。
  • ⌘ + d: 垂直分屏,⌘ + shift + d: 水平分屏。使用⌘ + ]⌘ + [在最近使用的分屏直接切换。而⌘ + opt + 方向键切换到指定位置的分屏。
  • ⌘ + t :新的标签页
  • ⌘ + w :关闭当前标签页
  • ⌘ + ;:自动补全历史命令。如图:
阅读全文 »
0%