数学之美
教育的本质不是将篮子填满,而是将灯点亮。 简单性和模块化是软件工程的基石;分布式和容错性是互联网的生命。 —— 蒂姆·博纳斯·李 Virture is like a rich stone,best plain set.(美德如同宝石,在朴素的映衬下最显华丽) —— 培根 爱是一念之差,最幸福的不过是,你曾经的呼唤,而我恰有过应答。 —— 朝小诚《黑白》 技术分为术和道2种。具体的做事方法是术,做事的原理和原则是道。很多具体的技术很快就会从独门绝技到普及,再到落伍,追求术的人一辈子很辛苦,只有掌握了道才能够做到游刃有余。追求“术”的人多半抱有侥幸心理,想走捷径,但真正做好一件事没有捷径,需要一万小时的专业训练和努力,也就是“一万小时定律”。 中国古代的阴阳学说可以看做是二进制的雏形。 数据库索引和布尔代数息息相关。 网络爬虫一般的步骤是“下载-索引-排序”,其中广度优先遍历用得比较多。 完全随机的高斯白噪声是很难消除的。 文字语言 VS...
IOS7中的js binding技术
cocos2Dx中提出了js binding,而IOS 7原生提供了js binding的支持(通过JavaScript Core这个引擎)。所谓的binding就是建立了本地到native的桥梁。如图所示: jsbinding与hibrid app的区别如下图所示:jsbinding通过一个中间层(JSBinding Layer)与native进行通信,而hibrid本质上还是web,运行在webview中。通过webview与native进行通信。 JavaScriptCore的4个核心API JavaScriptCore.h JSContext JSValue JSExport 一行js代码实现逆天效果1[].forEach.call(document.querySelectorAll("*"),function(a){a.style.outline="1px solid...
mac中的一些常用操作
编辑器方向键12345678910文本最开始:fn + ←文本最结尾:fn + →行首:command + ←行尾:command + →PageUp:fn + ↑️️PageDown:fn + ↓️向前删除(backspace):delete向后删除(delete):fn+delete 输入表情符号control + command + space 触摸板操作右键菜单两个手指单击触摸板 文件操作选择不连续的多个文件command + 单击 移动文件command + c(复制)command + option + v(粘贴) 显示隐藏文件1$ defaults write com.apple.finder AppleShowAllFiles -bool true 接下来重启Finder。具体方法是单击屏幕左上角苹果图标,强制退出,在下拉列表中选中Finder。 窗口操作command + control + F 最大化/还原窗口 QQ截图control + command + A Chrome开发者工具command + option +...
Shell 基础 —— 流程控制
条件判断假设/tmp/test.js存在,而/tmp/test.jsx文件不存在,则执行以下命令(注意中括号两端的空格): 123456789101112131415161718192021222324252627282930$ [ -e /tmp/test.js ]$ echo $? # 0,表示上一条命令执行成功,即文件存在$ [ -e /tmp/test.jsx ]$ echo $? # 1,非零值,上一条命令执行失败# 我们可以执行下面的命令从而得到更加语义化的结果$ [ -e /tmp/test.js ] && echo 'exists ' || echo 'not exists'# 判断文件权限$ [ -w /tmp/test.js ] && echo 'can write' || echo 'can not write'文件1 -ef 文件2 # 判断两个文件的Inode是否一致,可理解为判断2个文件是否是同一个文件,用于判断硬链接是很好的方法$...
javascript 语言精粹
继承 当一个函数对象被创建时,Function构造器产生的函数对象会运行类似这样的一些代码: 1this.prototype = {constructor:this}; 新函数对象被赋予一个prototype属性,其值是包含在一个constructor属性并且属性值为该函数的新对象.该prototype对象是存放继承特征的地方.因为javascript语言没有提供一种方法去确定哪个函数是打算用来做构造器的,所以每个函数都会得到一个prototype对象(非常重要). 通过伪类的方式实现继承本质上来说就是子类的原型等于父类的实例,实例如下: 12345678910var SuperType = function(){ this.superValue = 'supper value'}var SubType = function(){ this.subValue = 'sub value'}SubType.prototype = new SuperType()var sub...
Shell 基础 —— 正则表达式
常用正则123$ grep -n "^$" test.txt # 空白行[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\} # yyyy-mm-dd[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\} # ip 在vi中按Esc键后d G可以清空光标起的所有内容。 字符截取命令cut命令例如我们有用户信息文件/etc/passwd, 12$ useradd user1$ useradd user2 假设我们要删除上面创建的用户user1和user2,当然我们可以使用userdel命令,但是有的时候是程序执行的,所以我们需要在/etc/passwd中提取出新创建的2个普通用户,使用grep进行行提取 123$ grep "user" /etc/passwd | grep -v "system" #...
响应式web设计
固定宽度布局的缺点我们经常可以看到固定宽度的布局.例如960px的页面在笔记本上可能显示刚刚好,但是在高分辨率的显示器上两侧就会出现留白,可是我们现在有了智能手机.手机浏览器会将一个标准页面缩放到与视口(即:设备可视区域)恰好匹配.然后用户可以选择在自己感兴趣的内容上放大浏览,这样就导致了用户体验非常糟糕!(想象一下不停的点击放大滑动然后缩小,更可恶的是如果误点击了一个链接).响应式web设计的核心是移动优先. 在使用CSS3属性的时候需要注意浏览器前缀,并且将不带有前缀的添加到最后,这样如果该属性可用就会覆盖之前的声明. 百分比宽度的计算百分比宽度 = 目标元素宽度 / 上下文元素宽度,例如我们有以下的固定宽度的布局: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253<div id="wrapper"> <header> <nav> ...
Shell 基础 —— 运算符
Linux查看在线用户使用w命令。 declare命令在上一篇文章Shell基础-变量中我们说道Linux中默认的变量类型是字符串. 我们使用该命令结合+或者-设定或者取消变量类型: 1$ declare [+|-] [options] 变量名 其中-是设置类型,+是取消设置类型. 常见的数据类型: -a:数组型 -i:整型 -x:环境变量(其实export命令就是调用的declare -x命令) -r:只读变量(不能改变,不能修改,不能删除,甚至不能取消只读属性) -p:显式声明变量被声明的类型 请看下面的例子: 12345678910111213141516$ a=1$ b=2$ c=$a+$b$ echo $c # '1+2',because default is string$$ declare -i c=$a+$b$ echo $c # 3# 定义数组$ sutdents[0] = 'Kissy'$ sutdents[1] = 'Tom'$ declare -a sutdents[2] =...
javascript 设计模式
心游于艺,道不远人 变继承关系为组合关系State模式继承描述了is-a的关系,子类可以继承父类的成员变量和函数,也可以修改父类的成员变量和函数。使用设计模式来实现代码复用,而不是使用继承实现代码复用。继承关系有局限性。 装饰器模式java中有一个Runnable接口: 123interface Runnable{ void run();} 如何实现LoggingRunnable,TransactionRunnable? 原始的CodingTask类: 12345678910111213class CodingTask implements Runnable{ @Override public void run() { System.out.println("writing code"); try { Thread.sleep(3000); } catch (InterruptedException e)...
Node.js 最佳实践
与善人居,如入芝兰之室,久而不闻其香,即与之化矣.与不善人居,如入鲍鱼之肆,久而不闻其臭,亦与之化矣。丹之所藏者赤,漆之所藏者黑,是以君子必慎其所处者焉。 —— 《孔子家语》 npm常用命令1234# 查看全局安装的node模块的位置npm root -g# 消除 mac 下全局安装模块报错 permission denysudo chown -R $(whoami) $(npm config get...