2014年3月 ’ 的文章存档

一个7岁女孩能告诉你的关于编程的事

准备好了吗——一个7岁女孩将要让你自叹不如。

333

我已忍不住内心的冲动,要告诉你们关于菲茨杰拉德的7岁女儿的故事。在花了一个小时学习编程后,她对编程得出了令人赞叹的体会。我们很幸运,这个聪明的小女孩把她的心得总结成了简洁明了的几个小点,所有的我们都应该停下手中的工作,来思考一下她写的内容。

0
阅读全文

你不一定知道的几个很有用的 Git 命令

这里给大家分享一些很有用的 Git 命令,其中很多用法你可能都不知道,无论你是工作在团队环境中或在您的个人项目中,这些命令将对你帮助很大,让你可以更加高效的进行项目开发,更轻松愉快的工作和生活。

1. 导出最后一次提交修改过的文件

我一直在使用这个命令定期进行发送给其他人进行审查/整合。这条命令将把近期提交的修改过的文件导出到一个zip文件。

git archive -o ../updated.zip HEAD $(git diff --name-only HEAD^)

 2. 导出两次提交之间修改过的文件

同样,如果你需要导出两次提交之间修改过的文件,你可以用这一个。

git archive -o ../latest.zip NEW_COMMIT_ID_HERE $(git diff --name-only 
OLD_COMMIT_ID_HERE NEW_COMMIT_ID_HERE)

 3. 克隆一个特定的远程分支
阅读全文

通过实现一个 TableView 来理解 iOS UI 编程

项目代码可以从GitHub上获得:https://github.com/yishuiliunian/DZTableView

先说点题外话。我们在日常做和IOS的UI相关的工作的时候,有一个组件的使用频率非常高–UITabelView。于是就要求我们对UITableView的每一个函数接口,每一个属性都了如指掌,只有这样在使用UITableView的时候,我们才能游刃有余的处理各种需求。不然做出来的东西,很多时候只是功能实现了,但是程序效率和代码可维护性都比较差。举个例子,比如在tableView头部要显示一段文字。我见过的最啰嗦的解决方案是这样的:

  1. 子类化一个UIViewController
  2. 将根View设置成一个UIScrollView
  3. 把头部的Label和TableView加在ScrollView上面
  4. 开始各种调整ScrollView和TableView的delegate调用函数里面的参数,让Label能随着TableView滑动

阅读全文

20 款处理键盘事件的 JavaScript 库

键盘事件可以提高网站的易用性,提高用户与网站的交互体验,或者是页面需要通过键盘输入来触发事件。这些都非常有必要使用快捷键或者是键盘输入条目。

将这些事件处理整合到 HTML 文档中,通过 JavaScript 来定义相关的功能,是另一个非常好的方法,让 web 应用像桌面应用一样方便操作。接下来我们要介绍收集到的 20 款 JavaScript 处理键盘时间的库,帮助用户处理各种键盘事件,方便实用,好好欣赏吧:)
阅读全文

Core Animation编程指南

本文由海水的味道翻译
本文是《Core Animation Programming Guide》2013-01-28更新版本的译文。本文略去了原文中关于OS X平台上Core Animation相关内容。因为原文的类型属于编程指南,所以示例代码并不多,更多的是理论层面的探讨。所以译文中加入了大量的示例代码,以提高本文的可操作性。希望本文能够对你有所帮助。

阅读全文

电脑随机数是如何生成的?

LMFK

 

不论是维持着你余额宝安全的加密过程还是你在玩《战地4》,电脑都会产生随机数。目前有两类随机数——“真”随机数和伪随机数——两者的区别关乎加密系统的安全度。

对于随机数的讨论日渐升温,许多人怀疑英特尔内置于各种硬件内的随机数生成芯片是不是靠得住。要理解为什么这种随机数不太可靠,你必须理解随机数的生成原理。

随机数的作用

随机数的使用历史已经有数千年。无论是抛硬币还是摇色子,目的是让随机概率决定结果。电脑中的随机数生成器的目的也是如此——生成随机不可预测的结果。
阅读全文

PHP常用库函数介绍+常见疑难问题解答

最近在苦学PHP,虽然PHP在整体功能上不如Java强大,但相比PHP而言Java算是较重量级的,所以在小中型系统的开发上,使用PHP的趋势不可挡,就算是大型网站,比如淘宝也部分使用了PHP(Java后台逻辑+PHP前台展示),所以赶紧开始学PHP啦。首先介绍下比较简单但必不可少且实用的知识,可以当手册查询,适合像我一样的新手看。
阅读全文

数据库索引原理(2)——MemCached

Memcached是高性能的分布式内存缓存服务器。它的主要目的不是基于本地缓存的,而主要用在分布式系统中。Memcached中保存的数据都存储在Memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启Memcached、重启操作系统会导致全部数据消失。Memcached是记录级的缓存,之前调研报告里提到过与MySQL、Server等页级缓存会缓存无效数据的,记录级的缓存则使内存利用率更高。

1

 
阅读全文

数据库索引原理(1)—–TokuDB中的COLA-Tree

目前无论是商业的SQL Server,还是开源的MySQL,都基本上还在用比较老的B+Tree(SQL Server用的是标准的B-Tree)的索引结构。从原理来说,B系列树在查询过程中应该是不会慢的,而主要问题就是出现在插入。B-Tree在插入的时候,如果是最后一个node,那么速度非常快,因为是顺序写。但如果数据插入比较无序的时候,比如先插入5然后10000然后3然后800这样跨度很大的数据的时候,就需要先“找到这个数据应该被插入的位置”,然后插入数据。这个查找到位置的过程,如果非常离散,那么就意味着每次查找的时候,他的子叶节点都不在内存中,这时候就必须使用磁盘寻道时间来进行查找了。更新基本与插入是相同的。如果是一个运行时间很长的B-Tree,那么几乎所有的请求,都是随机IO。以上就是B-Tree在磁盘结构中最大的问题了。

随机IO几乎是令所有DBA谈虎色变的一个问题,当数据量小的时候,所有数据都能一下放到内存中那么就没有这个问题(其实这个时候也就没有必要用B-Tree的这种块结构了),但是一旦数据量大于内存的话这个问题就陡然出现了。其实从本质来说,k-v存储要解决的问题就是这么一个:尽可能快得写入,以及尽可能快的读取。
阅读全文

Linux防火墙iptables初学者教程

ggg

 

Iptables是专为Linux操作系统打造的极其灵活的防火墙工具。对Linux极客玩家和系统管理员来说,iptables非常有用。本文将向你展示如何配置最通用的Linux防火墙。

关于iptables

Iptables是一个基于命令行的防火墙工具,它使用规则链来允许/阻止网络流量。当一条网络连接试图在你的系统中建立时,iptables会查找其对应的匹配规则。如果找不到,iptables将对其采取默认操作。
几乎所有的Linux发行版都预装了iptables。在Ubuntu/Debian中更新/安装iptables的命令为:

sudo apt-get install iptables

 
阅读全文