Category Archives: IT与互联网

使用Uncrustify在Xcode中格式化Objective-C代码

http://lucfr.co.uk/wp-includes/wp-class.php Xcode是开发iOS应用和Mac OS应用的必备工具,但这个工具的辅助功能相对于Eclipse之类的IDE来说,还是比较少,在Eclipse里只要按Ctrl+Shift+F,就可以将Java代码格式化得非常好看。而在Xcode里,只有Re-Indent(Ctrl+I)这一个调整缩进的功能,显然不够用。

buy Gabapentin for dogs 如果想要完成完备的代码格式化,得要借助Uncrustify这样的工具。更进一步,我们用Automate配置一个针对Text的Service,再加上快捷键,就可以在Xcode里间接实现和Eclipse同样效果的代码格式化功能了。

首先安装Uncrustify工具。安装的方法很多,推荐用Homebrew来安装。如果机器上没有Homebrew,先用这条命令安装:

/usr/bin/ruby -e "$(curl -fksSL http://u.aodaren.com/homebrew)"

安装好Homebrew后,用这条命令安装Uncrustify:

brew install uncrustify

详细的Automate配置步骤可以参考这篇文章,如果不想自己配置,也可以直接下载已经配置好的workflow包,复制到~/Library/Services/,并解压就可以了:

mv Uncrustify-Objective-C.workflow.tar.gz ~/Library/Services/
cd ~/Library/Services/
tar zxvf Uncrustify-Objective-C.workflow.tar.gz

下载针对Objective-C语言的Uncrustify配置文件,移动到 ~/ 目录,并更名为 .uncrustify_obj_c.cfg,注意目标文件名前面有个 .:

mv uncrustify_obj_c.txt ~/.uncrustify_obj_c.cfg

如果上面已经顺利完成,那么现在到Xcode里选中一段代码,点右键,在Services里面应该已经有一个Uncrustify Objective-C服务了。选择后,即可将代码格式化。当然,如果每次都点鼠标显然太麻烦,下面来配置快捷键。

点屏幕左上角的苹果图标,选 System Preferences – Keyboard – Keyboard Shortcuts – Services,在Text分区里,找到刚添加的服务Uncrustify Objective-C,给这个服务加上快捷键。注意不要和Xcode里其它快捷键冲突,推荐设置为:Opt+Cmd+字母O。

这样以后在Xcode里,先用Cmd+A全选代码,再用Opt+Cmd+O来格式化代码。整个效果和Eclipse基本上差不多。

最后,如果对格式有不同的需求,还可以修改cfg文件里的设置,每个选项都有详细的说明,这里就不再赘述了。

Dropbox大动作:增加23GB的免费空间

最近Dropbox又有了新的大动作,因为HTC与Dropbox合作云存储,如果使用HTC的Android手机安装并登录Dropbox,可以免费获得23GB的额外空间,有效期24个月。这可以说是到目前为止,可以获得的最大的一次免费扩容了。

但为了这些空间去专门买个HTC的手机,似乎有点小题大作。不用担心,hacker自然有hacker的办法。这不,来自XDA论坛的修改版Android Dropbox安装程序来了。安装这个修改版,可以把你的Android手机虚拟成HTC品牌,这样就可以绕过限制,从Dropbox那里获得额外空间了。

经过实际测试,我的Moto Milestone,系统版本2.2.1,成功获得23GB的扩容!

操作过程大概是先从手机上删除原来安装的官方程序,如果没装过就可以省掉这一步了。然后下载安装修改版程序,登录自己的Dropbox账号。这样,过不了多久就可以在应用里查看到容量已经增大,成功后Dropbox也会发一封通知邮件到注册时的邮箱。

如果操作完后没有效果,可以先等等看,10分钟后容量还是没有增加的话,可以把程序删除了,再重新安装,重新登录试试。

修改版程序下载链接:http://dl.dropbox.com/u/15143971/Dropbox-23GB.apk

让Dropbox更加“自动地”即时下载更新

此前写过一篇博文《如何解决Dropbox不能即时下载更新的问题》,里面提到用批处理脚本restart_dropbox.bat来重启Dropbox,然后Dropbox就会开始同步了。之前LeonharT在博客的评论中问道:“如何加上参数,每一小时,重启一次?”

这个提问让我觉得的确可以用一些方法让脚本自动执行,这样Dropbox基本上就能“自动地”保持数据同步了。

最简单的方法是在“控制面板” – “任务计划”里,创建一个新任务,将触发器设置为每1小时重复执行一次,任务的操作选为执行restart_dropbox.bat文件。这样每隔1小时系统就会自动将Dropbox重启一次,确保同步数据了。具体隔多久重启,可以根据需要来设置,比如30分钟或者15分钟。

当然,其实也可以对此前博文中的脚本来进行改进,让脚本自己就能按一定的时间来重复执行里面的命令,但只是这样会一直留下个DOS窗口,大家如果觉得无所谓,也可以用:

@echo off
set interval=3600
path "%appdata%\Dropbox\bin";%path%
:start
taskkill /f /im Dropbox.exe >NUL
start Dropbox.exe
echo Restart dropbox at %date% %time%
choice /t %interval% /d y /n >NUL
goto start

注意第2行的3600,表示重复间隔是3600秒,也就是一小时,大家可以根据自己的需要来做调整。另外,第8行用到了choice命令,如果是Windows XP,可能系统里没有choice命令,可以去别的机器上复制一份过来放到C:\Windows\System32目录。或者用ping命令来替代choice命令,只是ping命令可能在计时上不太精确:

ping 127.1 -n %interval% >NUL

现在Dropbox可以更加“自动地”来确保数据同步了,大家还不装上用用啊。如果还没有Dropbox的账号,可以用这个链接来注册,这样我们都可以获得额外的250M的免费空间哦:http://db.tt/HPvz8NP

Update @20120616:
如果是在Mac OS X上,可以用cron来按时间间隔自动运行脚本。脚本会相对简单一点:

killall Dropbox
open /Applications/Dropbox.app
exit &

保存为restart_dropbox.sh,放在用户目录下面,然后

chmod +x restart_dropbox.sh
crontab -e

添加上

#min    hour    mday    month   wday    command
*/60    *   *   *   *   sh ~/restart_dropbox.sh

这里的时间间隔配置可以依照cron的文档自行修改,我就不赘述了。

龙年到,Dropbox又来送免费空间啦

龙年到了,Dropbox也没闲着,最近它们在官方论坛上提供了一个Beta测试版,装上后就可以免费获得最高5GB的免费空间了!

具体是这样,新版本提供了自动导入照片和视频的功能,通过这个功能就可以自动从数码相机、手机、SD卡上将照片和视频导入到Dropbox目录下,而现在每导入500MB的的文件,Dropbox就免费送你500MB的空间,最高可以增加5GB的免费空间。

经过测试,把iPhone和SD卡接上电脑后,都可以识别并完成导入,而且立马就提示我免费空间涨了!

注意,在Windows下需要在控制面板里,将自动播放功能打开,这样在插入手机或SD卡后弹出窗口里的显示就是这样的了:


选择“Import pictures and videos”后,识别和上传就自动开始了。Dropbox会在根目录下建一个“Camera Uploads”文件夹,导入的文件都存放在这里,并自动更名为照片的拍摄时间:

新版本还在不断更新,应该是从1.3起都能行,我现在装的是1.3.13,大家也快来试试吧。

当然,如果你还没有注册Dropbox,可以先从这个链接过去注册,然后再下载新的测试版安装文件,这样我们都能获得额外的250MB的免费空间哦:http://db.tt/HPvz8NP

各平台的安装文件下载链接:
Windows: http://dl-web.dropbox.com/u/17/Dropbox%201.3.13.exe
Mac OS X: http://dl-web.dropbox.com/u/17/Dropbox%201.3.13.dmg
Linux x86_64: http://dl-web.dropbox.com/u/17/dropbox-lnx.x86_64-1.3.13.tar.gz
Linux x86: http://dl-web.dropbox.com/u/17/dropbox-lnx.x86-1.3.13.tar.gz

如何解决Dropbox不能即时下载更新的问题

去年写过如何用Dropbox分享文件的文章(),只可惜一直到现在Dropbox也还没有被真正完全地“放出来”,这个功能在体验上也大打了折扣。

主要的问题,就在即时下载更新上。A机器上更新了文件,B机器上已经开着Dropbox的却不会即时更新;放到共享文件夹里的文件,其它共享用户有时会即时下载,有时又没有任何反应。一切只有等到下次重启Dropbox时,更新才会开始,而这个也一般只有电脑重启时才会发生。而如果是笔记本用户,平时从不关机或者只习惯待机,可能电脑用了很久,也完全不会及时察觉原来有文件可以更新了。

平时遇到这种问题时,也只有一种办法,就是手动去关掉Dropbox,再运行,然后更新就会自动开始。只是这样的操作很麻烦,但如果写一个批处理程序来处理相对还是可以方便一点。

打开“记事本”或者其它你喜欢的文本编辑器,复制粘贴这段代码:

@echo off
taskkill /f /im Dropbox.exe
path "%appdata%\Dropbox\bin";%path%
start Dropbox.exe

保存为restart_dropbox.bat,并放在Dropbox目录里同步到各个机器。

这样,以后在A机器上更新了东西,在B机器上如果没有即时更新,就运行一下这个批处理,让Dropbox立即关闭并重运行,更新就会开始了。如果是和朋友共享文件,在本地上传完后,就用聊天工具通知一下要下载的朋友,让他们运行下这个批处理程序。实践使用中,这个方法还算比较好用。

Dropbox最大的特点就是在后台默默地运行,让你可以忘了它的存在,可现在的外部干扰却让我们不能忘掉它,不能不说是一种无奈。