|
2010年02月的日志
Windows桌面开发者的必备软件如果你新安装好了一台WindowsXP或者Windows7的机器,作为一个开发人员,我建议安装下面这些软件: 1,WinMerge. 2, Lua for windows,或者Python或者Ruby,选择一个你喜欢的脚本语言。LuaForWindows还自带了一个Scite编辑器,节省了找一个程序员相关编辑器的步骤。 http://luaforwindows.luaforge.net/ 3,7-zip,不需要安装winzip或者winrar了 4,Sysinternals套件,windows开发必备。 http://technet.microsoft.com/en-us/sysinternals/default.aspx 5,Windbg,windows调试必备。 http://www.microsoft.com/whdc/Devtools/Debugging/default.mspx 6,FileZilla,开源的ftp软件。 7,Visual Studio2008 express,微软系的同学必须要的。当然,你应该很容易搞到更高级的版本。如果不玩dotnet那些,可以下载个VC++6.0,足够用了。 http://www.microsoft.com/express/Downloads/#webInstall Java系的朋友,自有选择,不多废话。 8,Debug Diagnostic Tool,检查memory leak很好用。 9,bitnami stacks,如果你搞什么php,ruby,python,mysql之类的web开发,这里面的集成安装包必有一款适合你。不想安装的还可以下载vmware镜像文件。 10,daemon-tools,虚拟光驱软件。 11,文本编辑器,notepad++或者gVim都不错。 12,SSH软件推荐putty,破墙必备。 http://portableapps.com/apps/internet/putty_portable 13,VNC类的软件可以用这个 http://portableapps.com/apps/utilities/teamviewer_portable 也可以用QQ或者netmeeting之类的,也是必备。 14,Picpick,抓屏软件,非常推荐。 15,版本管理工具,可以用subversion或者git。github算是个不错的选择。我经常把小代码片段贴到gist中。其中visualsvn有免费服务器程序下载。 http://github.com/guides/using-git-and-github-for-the-windows-for-newbies 16,如果搞网络相关开发,可以下载抓包工具wireshark(原名ethereal)。 http也可以试试这个软件 http://www.fiddler2.com/fiddler2/ 17,VMWare虚拟机,最好搞一个,里面装上Debian,玩玩Linux,另外装个干净的windowsXP,压缩起来备用,测试中经常会用到。 Lua程序设计(第二版)阅读笔记
很有意思的是,下面的代码是有效地,我也是看了书才知道。代码后面可以跟着,也可以不跟分号。 1: a = 5 b = 6
2: c = 7; d = 8;
3: print(a, b, c, d)
Lua中,什么是字母依赖于locale的设置,也就是中文环境下,中文可以用作变量名(?这个需验证) Lua有大小写之分。 常用的块注释方式是–[[然后以--]]结尾,这样如果想取消块注释,就把开头多加个-就行了。 LUA_INIT内容为@文件名,解释器会先执行这个文件(?需验证)。 Lua中的(以后省略)函数为第一类值,比如print = type; print(a); 这个是合法合理的,但是print就没有了,一般用于沙箱sandbox操作。 条件判断只有两种情况为假,false以及nil。其余都为真。 number是实数(通常下)。用双精度代表整数,只要这个数字不大于10的14次方就没问题(本书这里笔误为1014,shit,我对照了PIL第一版确认的)。重新编译数字类型可以方便用于其它平台luaconf.h。数字可以写作4.57e-3 0.3e12 5e+20这种科学计数法。 Lua可以存储任意二进制字符到字符串类型中。5.1支持的长括号写法[===[匹配]===],只要等号数量移植。字符串与数字运算,数字会转成字符串,可以用tonumber把字符变成数字。 1: local str = "5e+20" 2: local num = tonumber(str)
3: print(num)
数字转成字符,可以用tostring或者让数字与空字符串连接。 5.1的字符串支持#。 local a = {}创建了一个table,并且让a引用这个table,通过a这个变量我们可以操作这个table,如果没有变量继续引用这个table(a = nil),Lua会负责回收内存销毁它。 a["nameX“] = 5 等价于 a.nameX = 5,注意key里面的引号。local a = {}; a[x] = 5这个代码是不合法的。local a = {}; a["x"] = 5; print(a.x);这个会打印出5。 长度操作#的常用做法,print(a[#a])打印最后一个(因为Lua的table索引从1开始),a[#a +1] = n常用与自增,a[#a] = nil删除最后一个。 注意当table中有空洞(数字索引不连续,或者某个值为nil)的时候,#操作未必得到正确值。 5.1新增%取模操作。a % b == a – floor(a / b) * b,结果符号永远与第二个参数相同。print(5 % -2)得到-1,print(-5 % 2)得到1。另外取模操作可以用于对实数取整数部分或者小数部分。x = math.pi; x – x % 0.01 是让x精确到小数点后2位。x % 1 取小数部分,x – x % 1 取到整数部分。 table,userdata以及function,比较引用。 and与or都是用短路求值。 x = x or v常用于默认值设置。 Lua中的字符串是不可变值immutable value,两个字符串链接,会返会一个新的字符串。 链表写法: 1: list = nil
2: for line in io.lines() do 3: list = {next = list, value = line} 4: end
local a = { [-1] = 3, ["3"] = 5, ["n"] = "bbb"}; print(a[-1]); print(a["3"]); print(a.n);比较有意思的是a["3"]没法写成a.3。 a = {x = 0, y = 0} 相当于a = {["x"] = 0, ["y"] = 0}的语法特例。 local a = { [-1] = 3; ["3"] = 5; ["n"] = "bbb"};这样写也是合法的,构造式可以用分号代替逗号。 第四章 x, y = y, x交互x与y的值。 可以用do-end控制局部变量的范围。 local print = print,相当于定义了一个局部变量print(函数),后面如果使用print,就是访问了这个局部变量。访问局部变量要比访问全局变量快。 while x do .. end,当x为真值时进入while;repeat .. until x,当x为真值的时候结束循环。这点我弄混过。 选书之美与购书之道什么什么之美与什么什么之道现在简直是有些烂大街了, 好了,想说什么问题呢?怎么也要表达一些中心思想吧, 比如《代码之美》这本书的内容简介(from china-pub): 太牛逼了,简直是无以伦比的文案,可实质上,这本书就是一部散文集罢了。 另外《代码之道》这本书,不知是不是我境界太低,读起来真是费劲啊,看了几张就丢一边了。如果你在书刚刚发布的几天购买,会发现星星的评分真是高,编辑、作者一个劲推荐,也有一些名牛人使劲推(我不认识这些名牛人,无法评价他们是不是真的看了),让你感觉不买就买不到了(新楼盘?)。过了几周,你会发现一些”不和谐“的声音慢慢出现了,这其实才是真正的读者开始慢慢浮现。我们排除敌对出版社的打击,里面还是有不少值得借鉴的意见和观点。 OK,还有另外一半,就是购书之道。前面有同学在TL提问买什么书好,我的建议很简单, 好了,我瞎掰完了。 全球免运费的外文网上书店http://www.bookdepository.com/ 是一个不怎么知名的网上书店,但是它有个非常非常让人惊艳的经营特色值得推荐给大家: 全球免运费 要知道,amazon或者其它美国在线书店的价格也许会比bookdepository便宜一些或者便宜很多,可要算上运费的话,那价钱基本上会翻番,所以一般买原版外文书的性价比不怎么高,都是让运费邮费拖累的。 这个书店支持多种支付手段,只要有个外币信用卡应该都可以支付(visa),准备过一阵有时间了试试。 |
|