11 Dec 2014

MongoDB导入数据性能优化

背景

公司的一个项目每个月都需要通过Excel导入10W+的数据,我从之前的同事交接此工作。刚开始数据量比较小导入时间还能勉强接受,随着业务数据量的增大,导入时间已经增长到24个小时左右了。最后自己实在受不了这个速度,决定优化代码。

11 Dec 2014

Javascript 闭包(Closure) →

闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。
下面就是我的学习笔记,对于Javascript初学者应该是很有用的。

一、变量的作用域

要理解闭包,首先必须理解Javascript特殊的变量作用域。
变量的作用域无非就是两种:全局变量和局部变量。
Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。

1 var n=999;
2 function f1(){
3   alert(n);
4 }
5 f1(); // 999

另一方面,在函数外部自然无法读取函数内的局部变量。

function f1(){
    var n=999;
}
alert(n); // error

这里有一个地方需要注意,函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!

11 Dec 2014

用js在jekyll博客中实现标签云和标签页 →

本文主要讨论在jekyll博客中借助javascript和json,实现标签云和标签页。标签云可以用jquery.tagcloud.js插件实现,标签页则使用jQuery读取json数据文件,用地址传递参数给js函数,使用的是异步加载技术,请看演示页面

标签云

Tag Cloud可以使用GitHub上这个简单的jQuery Plugin实现(演示实例),使用方法也很Simple:

<div id="whatever">
  <a href="/path" rel="7">peace</a>
  <a href="/path" rel="3">unity</a>
  <a href="/path" rel="10">love</a>
  <a href="/path" rel="5">having fun</a>
</div>

然后

$.fn.tagcloud.defaults = {
  size: {start: 14, end: 18, unit: 'pt'},
  color: {start: '#cde', end: '#f52'}
};

$(function () {
  $('#whatever a').tagcloud();
});
05 Dec 2014

GitHub Pages 静态博客 - 个人建站实录 →

GitHub 很好的将代码和社区联系在了一起,于是发生了很多有趣的事情,世界也因为他美好了一点点。GitHub作为现在最流行的代码仓库,已经得到很多大公司和项目的青睐,比如 jQueryTwitter等。为使项目更方便的被人理解,介绍页面少不了,甚至会需要完整的文档站,GitHub 替你想到了这一点,他提供了 GitHub Pages 的服务,不仅可以方便的为项目建立介绍站点,也可以用来建立个人博客。

GitHub Pages 有以下几个优点:

  • 轻量级的博客系统,没有麻烦的配置
  • 免费空间,享受 Git 版本管理功能
  • 使用标记语言,比如 Markdown
  • 无需自己搭建服务器
  • 可以绑定自己的域名
03 Dec 2014

Creating Tag Cloud Using R and Flash / JavaScript (SWFObject) →

Tag cloud is a bunch of words drawn in a graph with their sizes proportional to their frequency; it’s widely used in blogs to visualize tags. We can observe important words quickly from a tag cloud, as they often appear in large fontsize. Tony N. Brown asked how to graphically represent frequency of words in a speech the other day in R-help list, which is actually a problem about the tag cloud:

I recently saw a graph on television that displayed selected words/phrases in a speech scaled in size according to their frequency. So words/phrases that were often used appeared large and words that were rarely used appeared small. […]

28 Nov 2014

gem相关命令使用

1.显示 gem 的帮助和版本

gem –h/--help
#显示gem的帮助
gem –v /--version
#显示gem的版本号

2. 列出远程库的所有可用软件

gem query --remote
# 短命令: gem q -r

你可以看到一个关于远程主机上所有软件的详细列表。

3. 查找远程主机上的特定软件

gem query --remote --name-matches doom
# 短命令: gem q -rn doom
# 你将看到一个匹配doom的详细列表。

4. List remote gems

gem list –remote --d
#用子命令list列出远程安装的gems