系统版本号从 10A392 升级到了 10A402a。
核心从 Darwin 10.0.0b2 升级到了 10.0.0b3。
Safari 从 4.0(6531.0) 升级到了 4.0(6531.1)。
QuickTime 从 10.0(41) 升级到了 10.0(42)。
界面基本看不出变化,只是好像多了个右键菜单。

Snow Leopard 升级到 10A402
七月 10th, 2009用 MacBook 打造自己的个性化闹钟
七月 6th, 2009起因:不知道为何前面推荐的“Red Alarm Clock”在我的机器上不工作,也许是不支持 Snow Leopard 10A394 ? 于是经过简单摸索,通过组合使用 Mac OS X 内置的程序实现了更加强劲的闹钟。
所需工具:iTunes,Automator,iCal。全是系统内置程序,不需要花一分钱。
- 在 iTunes 里建一个闹钟专用的播放列表。这一点很简单,不用说啥吧。就叫“起床铃”吧。
- 用 Automator 写个小程序播放这个列表。

- 获取 iTunes 播放列表
- 设置 iTunes 音量
- 开始播放
以下为可选设置。逐渐放大音量,防止突然一声想吓着谁:
- 等10秒
- 放大音量
- 等10秒
- 放大音量
好,运行一下试试看是不是能够正常启动 iTunes。没问题的话保存成应用程序。这里千万不要选错,不然早上误了点可别怪我
。 - 在 iCal 里建立事件以触发闹钟。

建立一个重复事件,设定好时间。你可以选择只在工作日触发。也可以像我这样给工作日和休息日分别设定不同的时间(两个事件)。

- 参见前一篇设置定时自动开机。建议比你的闹铃事件提前个5分钟,以便 Mac 有足够的时间启动。
已知缺点:开机时间不会跟着日期自动变化。好像 Automator 不会控制节能器⋯⋯
早上让音乐叫醒耳朵,晚上枕着乐曲入眠:推荐两款 Widget
七月 2nd, 2009
Red Alarm Clock:有了 Mac,你的闹钟就可以退休了。
它可以控制 iTunes 当起床铃。
(如果晚上睡觉前你喜欢关机,或让机器进入睡眠,不要忘记在节能器里面设好定时开机唤醒)
下载:
http://www.apple.com/downloads/dashboard/music/redalarmclock.html
iTunes Timer:如果你像我一样喜欢在睡觉前听点轻音乐,那么这个就是你需要的了。
用 iTunes 打开喜欢的音乐,然后选上时间,按下开始,就可以睡个好觉了。它会在倒计时结束以后暂停 iTunes。你也可以选择让它使你的 Mac 休眠,也可以关闭 QuickTime 或 DVD Player。午休的时候,你也可以指定让它一段时间之后用音乐叫醒你。非常方便。
下载:
http://www.apple.com/downloads/dashboard/music/itunestimer.html
以上这两个软件都是完全免费的。虽然是英文版,但我想你在使用的时候不会有任何困难,因为他们和真的闹钟一样简单!
如果你不会设定定时开机关机请看这里:
顺便表扬以下 MacBook,只有插这电源的时候才会自动启动,这样就不怕半路上它突然启动起来了。缺点也有:好像只能设定一组开关。
为何新的 MBP 交换了 control 和 caps 的位置
六月 30th, 2009刚拿到新的 13寸 MBP 13 的时候就发现键盘上的 control 和 caps 的位置对换了:Shift 上面是 control,下面是 caps,还带个小灯。一开始我还以为苹果电脑都是这样的。后来发现苹果的键盘本并来不是这样的。
今天查到一篇文章,终于豁然开朗:Happy Hacking keyboard pro 2的艺术。
原来这样做是有深意的。大名鼎鼎的 HHKB 键盘(两百多美元一副呐!)就是这样设计的。我不像上文作者那么常用Emacs和VIM,但也渐渐体会到了这样设计的好处:
- 至少在 windows 下按 control C 和 control V 的时候舒服多了(不过在 Mac 下面是用 cmd C,cmd V⋯⋯);
- 还有 Mac 下面切换输入法开关是用 Caps 键(Windows 下的日语输入法也是),这一下方便多了,不容易按错;
- 想按 shift 的时候却按到 Caps 的机会也少了。
本来苹果键盘:
官方网站上看到的 15寸 MBP:
我的 13寸 MBP:
应该不是因为我是日语键盘的缘故吧?
雪豹来了 (Snow Leopard 10A394)
六月 27th, 2009下载好了雪豹 Snow Leopard 10A380,由于dmg已经超过4.7G,必须得要刻盘的话必须得双层DVD才行,而我上星期买的都是单层的碟片,于是开始尝试免刻盘安装。
首先准备一块USB移动硬盘,分区。下图使用的是一个超小的 8G U盘。不知到为啥后来复制文件的时候特别慢,所以我实际上是用一块硬盘安装的。
这时候需要特别注意的是,如果用的是以前在 Windows 下面使用的主引导分区(MBA)的硬盘或U盘,一定要按“选项”,把盘的分区格式改为 GUID 分区表(GPT)型的:
分好区之后,辅助点击雪豹的dmg文件,选打开方式》磁盘工具。
恢复:
恢复完毕就可以用这个盘进行安装了。这个安装过程很顺利。我去洗了个燥,回来就可以重新启动了。
装好之后:
默认的桌面背景比 Leopard 有了微妙的变化,不放在一起比,还以为没变呢。第一排是雪豹,第三排那个是原来的 Leopard 的。
中文输入法由 “智能ABC” 变成了 SCIM。多了手写输入法。我打开了之后差点关不掉⋯⋯其实是按 control-shift-空格。因为打开这东东之后就没有鼠标可用了,所以它刚出来的时候有一行提示。
装完之后,除了 iTunes 需要重新升级一下以外,其他的程序都运行正常。
硬盘占用确实少了好几G。显示方式也从二进制算法改成了十进制算法,250G硬盘显示为250.06G。(当然了,硬盘占用减少不是因为这个,是确实少了。)
还有一个重大变化是 Boot Camp 3.0 的驱动使 Window 可以访问苹果的 HFS+ 分区了。
昨天晚上还为没有 “Dock Exposé”小失望了一下,今天早上就看到提示有更新,可以升级到 10A394 了。
Dock Exposé
MacBook Pro 第2天:聊天,看电影,听音乐
六月 23rd, 2009补记星期天的体验。
Mac 上看高清自然是用 VLC 和 plex。继昨天不会关闭之后,在我机器上 plex 碰到了新问题:切换全屏幕的快捷键是用“\”,增大音量的快捷键是“+”。由于我的机器是日语键盘,这两个键的位置都和英文键盘不同。我按遍整个键盘plex都没反应。以至我按“-”减音量减到静音之后彻底不能用了。经过反复调查之后,参考 http://wiki.plexapp.com/index.php/Keymap.xml 的说明自定义快捷键之后就可以正常使用了。上述文档的说明稍微有点过时,不过还是可以看懂的。另外这个软件是给遥控器用的,不支持鼠标着实是不够方便。
Skype 的 Mac 版比 Windows 版更好用,和家人连线的效果很好。QQ 和 Live Messenger 虽然都有 Mac 版,但都不支持视频和语音。QQ 上面已经有了视频的按钮,但还不能用。Messenger 是 7.0.2,连别名都不支持,好多好友都弄不清楚是谁了…… 据说泄漏出来的 8.0 可以视频了,但很不稳定,也就先不追了。但愿这俩都能快点推出新版本吧。Skype 和 QQ 的 Mac 版比 Windows 版都有个优点:有未读的消息的时候能够在 Dock 上用红字标明新消息的条数(如图)。这比 Windows 的托盘区效果好多了。Google talk 目前没有 Mac 版。但浏览器插件的那个版本可以用。因为 Skype 已经够用了,所以我还没尝试。iChat 可以直接用 Google 账户登录,我登录成功,但没尝试和任何人聊天。
用 VMware Fusion 装了 XP,很顺利。Fusion 里的装上了网银客户端,很流畅,丝毫没有预想中的卡的感觉。再加上用 Boot Camp 装的 Windows 7,我有两个 Windows 了。
播放 ape 采用 Cog。音质没得说,但是对中文 cue 的支持有点问题,单只要把文件转换成 UTF-8 格式就好了。顺便导了一些 MP3 进 iTunes。配合 iCal 可以当闹钟用。
用 iPhoto 欣赏宝贝女儿的照片实在是一种享受。但缩小和旋转我用一只手操所得成功率有点低。我用两个食指操作可以 100%成功。单手操作放大也没问题,就是缩小和旋转有困难。不知道是不是和我设了右下角当右键有关系。也可能是我大拇指的姿势不太对?
我还装了个 GIMP 用来处理图片。Photoshop 太贵,咱折腾不起。再说我也不是的平面专业设计师,GIMP 够用了。GIMP 在 Mac 下面有个缺点,它是运行在 X11 中的,所以顶部是 X11 的菜单。它本身的菜单维持在和 Windows / Linux 版相同的位置。其他都很好。多窗口在 Mac 下面用起来还是蛮顺手的。连 Excel 2008 都是多窗口的了。(话说好像 Office 2010 里面有些特性是 2008 里的,呵呵。)
初识 Mac
六月 20th, 2009经我家领导同意,经过彻夜思想斗争,今天早上终于跑到秋叶原捧回了觊觎已久的 MacBook Pro。我选择的是较高配置的 MB991。路上就激动得打开了包装,欣赏了一路。做工那是没得说,简直就是件艺术品。借个官网的图片炫一下。

包装很简洁,以前买的笔记本都是比这大N倍的盒子。这是包装上的配置单:

到家赶紧插上电源,等等,变压器很像iPod的变压器,上面直接有插头,有给我一根常常的线做甚,研究一番之后才发现那个插头是可以拔掉的,可以插上长电线。开机,设置语言,设密码,顺利连上了我的 Buffalo G300NH 无线路由。
接下来装几个软件。顺便说一下,SD 口很好用。也能读 NTFS 格式的移动硬盘。iWork 没问题。VMware Fusion 也顺利装上了。
然后升级系统,这边上网真快,转眼间就下载好了。
我是原 Windows 用户,QQ, Skype, MSN,Office 一个都不能少。

然后问题来了:
没有Ctrl,Alt,Win 键,没有 Home,End,PgUp,PgDn,PrintScreen,Backspace⋯⋯
哦,有Ctrl,在 Shift 上面,Caps键放在了最左下角,还带个小灯,感觉很好。然后 option键算是 Alt 吧,Command 大约相当于 Windows 键,单比 Win 键有用多了(大致上有时相当于Windows 得 Ctrl 吧,例如 command+c command+v)。
Home End 暂时没找到,不过暂时也用不上。两个手指头比 PgUp PgDn 好用多了。Mac 有个比 PrintScreen 强大得多得快键:
command + shift + 3 叮,全屏幕作为一个 png 存桌面了。
command + shift + 4 可以选择要保存的区域。
command + shift + 4 空格 可以选择要保存的窗口。
不需要象 Windows 那样装第三方软件了。
delete 相当于 Windows 的 backspace,嗯,有这个就够了。
中文输入法竟然是 智能ABC,好怀念大学时使用智能ABC的时光。当然了,现在的 ABC 比那时强大多了。不过近来习惯了谷歌拼音之后,反倒有些不习惯了。也许要考虑装个第三方的。
然后为了看高清,装了个 plex。结果全屏幕了之后不知道怎么退出了,汗⋯⋯
赶紧调查,原来 command+q 就可以了。这个基本上是通用键,相当于 Windows 的 Alt + F4 了。好像以前dos 时代也有 Ctrl + Q 的?
为了该死的网银,Windows 还是要装的。于是打开 Fusion 开装。很快到了按 F8 同意协议这一步。F8, iTunes 暂停了 。再 F8 , iTunes 又响了,就是虚拟机没反应。汗⋯⋯
调查之后说是应该 偏好设置》键盘与鼠标》启用 Mac OS 键盘快捷键。把这个钩钩掉就好了。我钩掉之后 iTunes是没反应了,虚拟机还是没反应。也许重新启动 Fusion 会好?
不跟它叫劲了,换Boot camp 上。很顺利的分好了区,然后它让我插入光盘,可是我一直都是用 USB 硬盘启动装 Windows 7 的,心想应该一样吧。当然,我想错了,MBP 不肯从我的 USB 硬盘启动。赶紧去附近超市买了几张光盘,刻。嗯,Mac 刻盘真方便,不许要装第三方软件就能搞定。然后从 Boot Camp重启,装。这中间很顺利,没啥好说的:启动它之后去洗澡,回来就装好了。
然后进入 Windows 装 Boot Camp。很顺利就装上了,不象传说中的不让装。它那个不兼容的提示仅仅是提示而已,你装就是了。装好重新启动,原来 Windows 7 也挺漂亮的,一直是被我的 X40 的 poor 显卡给糟蹋了。
Windows 能装上就好,回 Mac 继续探索。iPhoto 真的是很好玩。可以认识人,帮你找到特定人物的所有照片。Picasa 号称也有脸部识别,但可惜现在智能是识别有人还是没人而已。
幻灯片播放的时候选“剪贴簿”方式,那效果简直太棒了!早先我是认为 Wii 的播放方式很好看,后来发现 Picasa 新版本也不错。但这些和 iPhoto 比就逊色太多了。
(这个Mac 版的智能ABC果然还是象我大学时代用的 Windows 版一样可以通过输入 “n88” 来输入 “嗯” 字。嗯,再怀念一次⋯⋯)
时候不早了,第一天的探索到此为止。
再加一句,镜面的屏幕真的不适合白天用,特别是看有夜景的电影。LED 背光也不行。晚上效果很好。苹果的新键盘灯很好看。
睡觉之前找到 VMware Fusion 里面怎么按 F8 了:按 fn+F8 即可。顺便和一般的 PC 笔记本一样 fn+上下 代表PgUp 和 PgDn。
买的影驰显卡居然中奖了
六月 11th, 2009前些天买的绿色版 Galaxy P96GT-LP ,居然中奖了。
得了块手表,看上去还不错。还带秒表和世界时。

用 Javascript 批量查找 Excel 中的文字
六月 5th, 2009比 Excel 的查找有下述优点:
- 批量查找整个目录
- 可以找到图形和文本框中的文字
- 采用正则表达式查找,可以实现复杂的查找条件
缺点是比较慢。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | // 设定值:分别是要查找的目录和查找条件 var searchPath = "D:/temp"; var searchPattern = /事業/i; // 正则表达式参考: //http://msdn.microsoft.com/en-us/library/1400241x(VS.85).aspx //http://msdn.microsoft.com/zh-cn/library/28hw3sce(VS.80).aspx var msoAutoShape = 1 var msoGroup = 6 var xlApp = WScript.CreateObject("Excel.Application"); xlApp.Visible = true; xlApp.Interactive = true; var logBook = xlApp.Workbooks.Add(); // For Output var logSheet = logBook.Sheets(1); var logLine = 2; var outSheet = logBook.Sheets(2); var outLine = 2; var allFiles = new Array(); var fso = new ActiveXObject("Scripting.FileSystemObject"); GetFileList(searchPath, allFiles); var i; for (i = 0; i < allFiles.length; i++) { logSheet.Cells(logLine + i + 1, "B").Value = allFiles[i].name; logSheet.Cells(logLine + i + 1, "B").NoteText (allFiles[i].path); } for (i = 0; i < allFiles.length; i++) { xlApp.StatusBar = (i + 1) + '/' + allFiles.length + ': ' + allFiles[i].name; ProcessFile(allFiles[i], i); } xlApp.StatusBar = 'done.'; function GetFileList(folderspec, arr) { var f = fso.GetFolder(folderspec); var fc = new Enumerator(f.SubFolders); for (; !fc.atEnd(); fc.moveNext()) GetFileList(fc.item(), arr); fc = new Enumerator(f.Files); for (; !fc.atEnd(); fc.moveNext()) { var fo = fc.item(); if (fo.Name.match(/.xls$/i)) arr.push(fo); } } function ProcessFile(fo, lineNo) { crtLogLine = logLine + lineNo; logSheet.Cells(crtLogLine, "A").Value = "WORKING..."; xlBook = xlApp.Workbooks.Open(fo.path, false, true); outSheet.Cells(outLine, "A").Value = fo.Name; var j; for (j = 1; j <= xlBook.Sheets.Count; j++) { outSheet.Cells(outLine, "B").Value = xlBook.Sheets(j).Name; SearchCells(xlBook.Sheets(j)); SearchShapes(new Enumerator(xlBook.Sheets(j).Shapes)); } xlBook.Close(false); logSheet.Cells(crtLogLine, "A").Value = "DONE"; } function SearchCells(sht) { var i, j, ur; ur = sht.UsedRange; sht.Activate(); for (j = 1; j <= ur.Rows.Count; j++) { sht.Cells(j, 1).Select(); for (i = 1; i <= ur.Columns.Count; i++) { if (sht.Cells(j, i).Value) if ((sht.Cells(j, i).Value + "").match(searchPattern)) { outSheet.Cells(outLine, "C").Value = sht.Cells(j, i).Address; outSheet.Cells(outLine, "D").Value = sht.Cells(j, i).Value; outLine++; } } } } function SearchShapes(en) { for (; !en.atEnd(); en.moveNext()) { var shp = en.item(); switch(shp.Type) { case msoGroup: SearchShapes(new Enumerator(shp.GroupItems)); break; case msoAutoShape: if (shp.TextFrame.Characters().Text) if (shp.TextFrame.Characters().Text.match(searchPattern)) { outSheet.Cells(outLine, "C").Value = shp.Name; outSheet.Cells(outLine, "D").Value = shp.TextFrame.Characters().Text; outLine++; } break; default: break; } } } // 对付控件工具栏上的 TextBox: // sheet.Shapes("TextBox1").DrawingObject.object.Text |
用法:把这个文件存为.js文件,修改好参数之后直接双击即可。
查找的结果保存在新建的 Excel 文件的 Sheet2 里。
等的不耐烦的时候可以直接关掉 Excel, 它会自行报错退出。
摩托罗拉的摄像头和 Windows 7 合不来
六月 3rd, 2009我有一部摩托罗拉的 ROKR E6,一只用它插在 USB 口上当摄像头用,还能顺便给它充电。
这个设计还是很实用的,出门就可以少带一样东西。(我买笔记本的时候还没流行内置摄像头)
自从升级到 Windows 7 之后它就不能用了。我还以为是我的手机坏了。
插上之后能正常识别为 Motorola USB camera。就是没法用,图像一直是黑的,也不肯充电。
重启手机,重启电脑。折腾很久都无济于事。
经过一番调查发现,原来 ROKA 的摄像头驱动从 Vista 开始就不灵了。
是换手机呢,还是换回XP?这是一个问题……
暂时先凑合用 VMWare 装个 Skype 专用系统,幸亏 VMWare 里的 XP 还是那么好用。
参阅(英文):






















