Category Archives: MacOSX

Macbook Pro 换内存记

最近在使用IDEA时发现本子跑得越来越慢,空闲内存长期只剩几十M,终于在五一时将升级到8G了。和上一次升级不同,这次升级是自己手工完成的。下面记录一下换内存的过程。

首先MC 990官方标识支持DDR3 1066mhz的内存,但是在咨询过一位换过内存的朋友时,他告诉我用1333mhz的内存也能用。于是在易讯换了两条金士顿DDR3 1333mhz的内存。

给换Mac换内存另外一个需要准备的工具是螺丝刀,Mac的螺丝钉比较特殊,我的MC990对应的十字螺丝需要用PH00规格的螺丝刀。所幸在家门口的五金店发现有买,而且还有很多其它的螺丝刀,于是花了30块买下一整套螺丝刀。

用螺丝刀将螺丝都取出后,就可以开始换内存了,这些按照苹果官方文档就行(在关于本机/更多信息/内存一档可以看到内存升级的链接)。打开后盖后,发现Mac里面还是挺脏的,特别是风扇那块,于是用一个刷子清理了一下。

换上新内存后,到了关键时刻了,按下电源按钮后,大约等了7,8秒种系统正常点亮,启动,进行系统查看了一下更新后内存信息。发现变成8G了,而且还直接以1333mhz在运行,完全出乎意料。下面是几张换内存时的图。

未拆时的样子
IMG_0795

拆后后盖后的样子
IMG_0797

装内存区域按照
IMG_0798

换上一根新内存
IMG_0801

全部换好后的样子
IMG_0802

最后看一下系统中显示内存的情况

使用Intellij IDEA阅读C++代码

最近一直在做一个C++的项目,其实主要的作用是阅读及修改代码。但是入手碰到一个严重问题:没有一款好的IDE。身为一名Java程序员,我已经明显被Intellij IDEA这种神器给惯坏了。虽然有5年Vim的使用经验,但是还从来没有将Vim作为主IDE来使用,在尝试配置了ctags,cscope后(始终没有在vim好配置cscope),然后觉得这货在作为IDE这件事上和Intellij IDEA差距太大。于是不得不退而求其次,找其它方案。

Eclipse CDT好像可以阅读C++代码,但是作为Intellij IDEA的踏实Fans,对Eclipse实在无爱,于是尝试着在Intellij IDEA的插件库中查找C++相关的插件,非常幸运地发现了一个C/C++插件。装上后,试了一下,开发Java源码时的那些快捷方法都还能用,顿时感到很欣慰。

Intellij IDEA装上C/C++插件后,需要先完成一些基本的全局配置。有如下几项配置

  • path to gcc (/usr/bin/gcc)
  • path to gdb (/usr/bin/gdb)
  • Defines
  • Additional include directories  (配置IDEA类似LD_LIBRARY_PATH,在阅读代码时自动分析相关头的依赖,并能点进方法中)

除此之外在每一个项目中,还可以配置项目的include,对于多模块项目来说,这东西太重要。还有一些宏定义等的配置。

活着就为改变世界

花了两天看完了《活着就为改变世界》一书,了解了乔布斯的传奇经历,也了解了Apple公司的传奇经历。从这本书中能学习到什么呢?这需要仔细思考一下。能想到的有如下几点:
1、乔布斯的谈判能力让人印象深刻,但是如何做到出色的谈判?充分了解自己的筹码,也充分了解对手的筹码,做到知已知彼。拖字决,通过拖延战术,让对手处于不利境地。
2、乔布斯对事物的极致追求,把常人眼中的“不可能”变成“可能”。要相信自己及团队的能力。
3、完美主义,只要把事情做到位,自然会有机会。即使是Windows占有率如此高的情况下,也会有转机。大胆预测Mac明年市占率超过10%。
4、表现成熟一点,对人更友善一点对自己与他人都有很大的好处。
5、不放弃希望,即使是在最困难的时刻。乔布斯的NEXT和Pixar都快要没钱的时候仍没动摇信念,最终峰回路转,重新大放异彩。

最大感受,有了想法,努力去做,不要考虑失败,人生就是由不断的失败造就你的精彩。

最后明白了徐哲GTalk上那个签名的意义了,因为上面写着“活着就为改变世界“。

Mac下mvn装到哪了?

Mac有一个对程序员非常友好的地方,系统安装完之后ant,mvn,python,ruby,jdk,httpd等一堆开发工具和环境都帮你安装好了。这些工具用起来非常方便,但是也有非常恼人的地方。经常会出现不知道这些工具的安装目录的情况,因此要自己修改配置时就抓狂了。 前些日子坐我旁边的文拓就碰到了找不到maven的安装目录的问题。

今天晚上发现自己也碰到这问题了,想尽办法,最终通过一个很2的方法找到了。其实只要运行一下env,就能看到有个M2_HOME的参数,就是Maven的安装目录了。真是雷死了。。。

如果在env下没有配置的话,按如下做法查找:

star:sbin star$ ll `whereis mvn`
lrwxr-xr-x  1 root  wheel    24B  5 21 20:51 /usr/bin/mvn -> /usr/share/maven/bin/mvn

star:sbin star$ ll `whereis mvn`

lrwxr-xr-x  1 root  wheel    24B  5 21 20:51 /usr/bin/mvn -> /usr/share/maven/bin/mvn

利用Vim配置完美的Python开发环境

上上周末参加活动时一个同学分享的Vim让我重新燃起折腾Vim的兴趣,经过一周多的学习,实践,已经完全被Vim给征服了。最近刚好在学习Python,一直没有找到一个好的IDE,目前主要是用TextMate。经过这两天的努力,发现通过Vim的各种插件,可以配置出一个完美的Python开发环境,比TextMate还要强大得多。主要的插件配置如下(基本的Vim配置省略):snipMate + Pydiction.

其中snipMate 提供代码模板支持,和TextMate中的代码模板类似,通过Tab键补全;
Pydiction 提供Python关键字及标准库函数的补全,和Eclipse对Java的方法补全功能类似;

snipMate 安装:
如果你是Linux,可以直接通过cpan安装vimana,然后通过vimana安装snipMate,这样自己就不需要什么配置了。
同时vimana也支持其它插件的安装。如果没有的话,就需要手动安装,步骤如下:
1.从http://www.vim.org/scripts/script.php?script_id=2540下载snipMate.zip;
2.将文件解压到~/.vim目录下
3.修改~/.vimrc文件,增加set filetype plugin on
这样snipMate就安装完毕了,可以在~/.vim/snippets/目标下看到支持的语言

安装Pydiction步骤:
1.到http://www.vim.org/scripts/script.php?script_id=850下载Pydiction-1.2.zip文件;
2.解压后,按照说明将python_pydiction.vim放到~/.vim/after/ftplugin/目标下;
3.将complete-dict文件放到~/.vim/dict/目标下
4.修改~/.vimrc文件,增加下面两行:
filetype plugin on
let g:pydiction_location = ‘~/.vim/dict/complete-dict’

python_pydiction中还有一个pydiction.py的文件,这个是用来生成数据字典的,新加一个python库,生成一下,
具体教程可以看官方的说明。
这样配置完了之后,会发现snipMate与pydiction都是使用Tab键补全,会存在冲突。通过修改其中一个
的快捷键可以解决这个冲突。我选择修改pydiction的快捷键,修改方法如下:
打开python_pydiction.vim文件,找到这行
inoremap <silent> <buffer> <TAB>
修改为下面这样,就可以通过Ctrl+n来进行补全了。
inoremap <silent> <buffer> <C-n>

经过这样的配置,写起python程序就得心应手了。

Safari关闭自动打开PDF功能

在Mac下一直使用着Safari,不是Chrome不好,而是Chrome翻墙比较麻烦。很讨厌Safari总是自作主张,自动打开PDF文档的功能。于是想着怎么关闭掉。有网友提供如下方法:

在Terminal下输入


defaults write com.apple.Safari WebKitOmitPDFSupport -bool YES

忽然想到自己的Mac有一堆设置系统隐藏参数的软件,肯定存在方法直接修改这个值的。于是找到了Onyx,选中Parameters,点击Safari的Tab,果然第一项便”Automatically open .pdf files in Safari”,将前面的勾去掉,搞定!

最后提一下,Safari的Reader功能大赞! 看IBM DeveloperWorks文章的利器啊!

在Mac上安装bpython

昨天的分享上鱼哥介绍了一个非常好用的python解释器bpython,它最大的优点是可以进行
提示,相信这是Java程序员们转到python等语言环境下最头痛的东西了。昨天回来后试着
装了一下,发现在Mac下面安装起来还真不容易,当作Linux下很方便,Ubuntu下就更方便了
,直接使用超级牛力就搞定。
费了九牛二虎之力,在网上四处搜寻,终于搞定,在这里分享一下经验。
首先确保你的Mac上已经安装了MacPorts,然后先执行下面操作:
sudo port install python_select
然后选择 python26,选定python26作为系统默认的版本
然后再通过下面的命令安装安装命令如下:
sudo port install py26_bpython
接下来就是等他下载一堆东西,并安装了。

昨天的分享上鱼哥介绍了一个非常好用的python解释器bpython,它最大的优点是可以像java的IDE一样提示方法。具体介绍可看这里。相信正在学习Python的Java程序员和初学Python的同学会喜欢这个软件。昨天回来后准备装了一下,发现在Mac下面安装起来还真不容易,在Linux下却很方便,如果是Ubuntu下就更方便了,直接使用超级牛力就能搞定。

最终费了九牛二虎之力,在网上四处搜寻,终于搞定,在这里分享一下安装的经验。

首先确保你的Mac上已经安装了MacPorts,可以执行port命令,然后执行下面操作:

sudo port install python_select

然后选择 python26,选定python26作为系统默认的python版本

然后再通过下面的命令安装bpython.

sudo port install py26_bpython

接下来就是等着下载一堆东西,并分别安装,最终系统会自动安装好。 安装好之后在命令行下输入bpython,就可以使用了。

初用MacOSX之技巧篇

最近看了不少关于MacOSX的书,在各本书中弄到了一些MacOSX上的技巧。这些技巧让我在使用Mac时更加顺手,更加流畅。《卓有成效的程序员》一书中说,“花点时间来学习你手边所有隐藏的快捷键”,因为它们可以让你的工作更加高效。

在看到这些各式各样的技巧时,我都将它们整理到了EvenNote上了,其中有一些来自于vgod的博客,有的来自于《卓有成效的程序员》一书,有的来自《The Mac Manual》,甚至有些我自己也搞不清在哪里看到的了。下面是我整理的一些常用的技巧(Tips)。

Tip1:Commamd + shift + G 在Finder下打开前往某目录的地址栏对话框,通过tab可以补全文件夹目录

Tip2:从Finder中将文件夹拖入终端来可以作为触发cd命令的快捷方法

Tip3:在终端下,open 可以打开当前目录下的文档或运行当前目录下的其它程序。open .  用Finder打开当前目录

Tip4:在浏览器下Command + <标签号>  切换到对应的那个标签

Tip5:在Safari下下载Youku,Youtube下载视频:先按command+option+a  再按option点击你的视频档案

Tip6:spotlight有个对应的command line tool叫mdfind,其用法参考其help文档

Tip7:Cmd-`(ESC下面那个键)能在同一个程式的不同视窗间来回切换,多个Safari窗口或终端窗口时,非常有用。

Tip8:Mac OS X的command line环境下,有两个很好用的指令pbcopy和pbpaste。前者是用来将文字透过stdin放到剪贴簿中,后者是把剪贴簿的内容印出至stdout这样就能很方便在shell script中将资料输出至剪贴簿,再贴到别的程式当中。

Tip9: Spotlight搜索时,选中文件按enter键是打开该文件,按下Command + enter则是打开这个文件所在的文件夹。

Tip10:Ctrl+F2键将焦点移动到菜单栏,你可以键入所找菜单的第一部分。当该项被高亮显示时,敲下Enter并逐步键入附属的下级菜单项。该功能与Windows下使用Alt选择菜单项类似。

Tip11: *nix的CLI下有两个很有用的命令,pushd和popd. pushd命令执行两个动作:将你置于你作为参数传进去的目录下,并将当前目录入栈。调用popd命令就可以回到起始位置了。这对命令和cd – 很相似。