Steel.Liao's Blog

清风朗月不用一钱买


  • 首页

  • 归档

  • 标签

  • 分类

工欲善其事,必先利其器

2013-11-07 | programming |
| 1,400 | 5

一年多没写博客了,这里已经荒草丛生了吧,赶紧清理清理,以后必须得努力了。

这篇文章会介绍我日常所使用的一些非常好的工具,也算是给以后重装系统后可以快速恢复环境所做的一个记录吧。

Sublime Text

文本编辑利器,没深入使用过vim,所以就不拿来比较了,就我以前用过的一些编辑器而言,实在是太强大了,而且非常轻量,不会打开个编辑器,让你电脑卡半天(知道我说谁吧,哈哈)。

Sublime Text2支持各种流行编程语言的语法高亮和代码补全等(不支持也可以通过插件实现,比如LESS,md等),它还有着很多其他编辑器没有的超酷的特性,自定义插件什么的就不说了,现代编辑器必备啊。就说最常用的特性吧,有多行(处)编辑、快速跳转及查找、项目管理、代码片段snippet、宏、build系统、丰富的插件。

阅读全文 »

node.js是如何支持命令行工具开发的

2012-10-18 | programming |
| 569 | 2

上次写了一篇文章(用node.js开发命令行工具)介绍如何使用node.js开发命令行工具,那么node.js是如何支持命令行工具开发呢?这篇文章就介绍一下吧。

首先node.js是如何执行js就不说了,直接进入shebang和npm link这两个东西。首先是shebang,node.js是通过这个指令来知道这段代码需要运行在任何目录,而且不需要使用node指令。而npm link就是根据文件有没有加shebang来做相应处理的,如果文件第一行有shebang的话,npm就会根据package.json文件,使模块可以在全局运行,而且不需要加node指令。npm做的事情其实很简单,就是在npm的目录下添加了相应模块的cmd文件,假设一个模块叫做test,那么npm就会在其目录(可能为:C:\Documents and Settings\Administrator\Application Data\npm,可以输出path看下npm的路径)下生成一个test.cmd文件,而npm目录是在环境变量中的,cmd文件又是可执行文件,所以就可以在任何地方运行test.cmd文件了。那么test.cmd文件内容又是什么呢?其实也很简单,就是一段让node执行指定js文件的代码。下面的代码可能就是test.cmd文件的内容了:

阅读全文 »

用node.js开发命令行工具

2012-10-13 | programming |
| 657 | 3

node.js简介

Node让你可以用javascript编写服务器端程序,让javascript脱离web浏览器的限制,像C#、JAVA、Python等语言一样在服务器端运行,这也让一些熟悉Javascript的前端开发人员进军到服务器端开发提供了一个便利的途径。Node是基于Google的V8引擎封装的,并提供了一些编写服务器程序的常用接口,例如文件流的处理。Node的目的是提供一种简单的途径来编写高性能的网络程序。

命令行工具

node.js除了做服务器端程序,其实还可以做很多事情,其中就包括开发命令行工具。本文就介绍一下怎样使用Node来开发命令行工具。

今天需要创建一个显示当前文件夹下的所以文件和文件夹名。

阅读全文 »

关于Unicode 65279

2012-04-09 | programming |
| 463 | 2

昨天碰到一个很诡异的问题,在客户端使用js将一段html插入一个div(div.innerHTML=html)的时候多出了一个空行。下面在Google chrome里面模拟一下昨天的情况,截图如下:

阅读全文 »

JavaScript通过对象字面量来创建类(型)

2011-11-15 | programming |
| 518 | 2

前段时间浏览Nicholas C. Zakas大神的博客,发现一篇很有意思的文章,是Nicholas在看了github上的一个gist(jashkenas对JavaScript使用简洁方式创建类的建议)之后写的,主要内容是介绍了一种通过对象字面量来创建类型的方法,下面来说一下吧。

首先贴上jashkenas的伪代码

阅读全文 »

几个笔试、面试题

2011-11-01 | programming |
| 977 | 4

前段时间去上海参加校园招聘会了,就把期间遇到的几个笔试和面试题跟大家分享一下。

证明:如果一个数介于孪生素数之间且大于等于6,则这个数是6的倍数

这个问题面试的时候没想出来,想了很久,后来一次在等地铁的时候突然想到了怎么证明。这个问题的证明其实是很简单的,既然是孪生素数之间的数,那么这个数必然是偶数了。因为这两个素数必然是奇数,而介于两个奇数之间的数肯定是偶数啦,即这个数能被2整除了,接下来就只需要证明这个数能被3整除就可以了。

假设这个数是Y,两个素数分别是X,Z(5<=X<Z),则有Z-X=2, X=Y-1, Z=Y+1,即X、Y、Z三个数是连续的。而三个连续的数中必有一个是3的倍数,又X、Z都是素数,即X、Z都不能被3整除,所以Y一定能被3整除,最终得出Y能被6整除,即Y是6的倍数。

阅读全文 »

一个数的二进制位反转

2011-09-25 | programming |
| 497 | 2

前天参加汇顶科技的笔试,最后一道编程题是求一个数的二进制表示反序后的值,例如10的二进制表示是0000 1010,反序后是0101 0000,十进制值是80。题目给的函数签名是:

1
2
3
unsigned char reverse(unsigned char var){

}

刚开始想到的肯定是用除2余和除2来算出所有位来咯。不过又想了一下,感觉这样做太水了,就想能不能用位运算来实现,想了一段时间后,终于想到可以用”按位与运算”和”移位运算”来求出某一位上是什么。例如要求低位起第二位就可以是:num & (1 << 1)。因为1左移1位就是00000010,跟它做按位与运算,得出的就只剩下num的低位起的第二位了。然后再将这一位移到对称位上,即cache << 5(假设上面的运算得到的结果是cache),得出01000000(悲剧的是我当初忘记反转了!)。然后对每一位都这样处理就行了。下面给出实现代码(JavaScript实现,假设8位):

阅读全文 »

给定一个十进制整数N,求出从1到N的所有整数中出现1的个数

2011-09-24 | programming |
| 966 | 4

今天下午去参加汇顶科技的一面,8个人群面,给了一道题,题目就是文章标题。一开始的时候要求大家用10分钟将自己的想法写在一张纸上面,到时间后就收上去了。然后让我们发表一下各自的思想,并讨论。讨论开始的时候大家意见都很统一,就是用遍历或者递归来解决,很简单的一道题。面试官马上看出了情况,就加上了个条件,不使用递归或者遍历数字来实现。

大家在短暂的思考后,就开始讨论了,各种各样的想法,有些都没听明白,我自己的思想也没表达太清楚,在那里的时候也没想得很透彻,基本上没有解决掉问题。马上面试就结束了。回来的路上也一直在想这个问题,回到寝室后开始在电脑上编码,两三下就实现了。唉,压力下思考不灵活啊!下面就说一下我的实现方法:

阅读全文 »

大学三年总结

2011-09-04 | 杂谈 |
| 1,809 | 6

时间一旦过去,就会感觉过得非常的快!三年前踏入南昌大学的种种情形还历历在目,两年前加入家园网时的笔试、面试也还清晰的映在脑海中,一年前开始跟家园网同事一起dota的种种情形,无法忘怀。而现在大四,要退出家园网,十分不舍。

阅读全文 »

2011年暑假总结

2011-08-29 | 杂谈 |
| 765 | 3

逝者如斯夫,不舍昼夜。三年晃眼即过,不觉间已然大四了。

最后一个暑假选择了去父母所在的城市实习,一家创业公司,参与开发一个团队协作工具。虽然工资比较低,路程有点远,但是整个实习还是很有意思的。boss人很好,期间还带去天津出差,还有每周五下班前的dota,都让我记忆深刻。

阅读全文 »

Steel.Liao

10 日志
2 分类
8 标签
RSS
GitHub E-Mail
0%
© 2011 — 2018 Steel.Liao
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4