石锅拌饭

Tag: hack

vertical visor

by on Feb.18, 2009, under Uncategorized


Visor是原Quicksiver的作者的一个作品。安装了Visor后,Terminal窗口可以呼之即来,挥之即去,类似Quake中的console,对于Terminal重度依赖者来说非常方便。

安装Visor后,Terminal出现的位置是固定的,缺省是占据了屏幕的上半截。看图标就知道大概意思了。不过对于我的iMac来说,窗口太宽,浪费了很多地方。稍微修改了一下Visor的代码,把它从屏幕顶部移到了左边。这样,不仅得到了一个column为80的Terminal,长度也加长,看个log什么很方便。

Picture 6-5

其实就改了两行。

diff --git a/VisorController.m b/VisorController.m
index a1a56ec..19d749c 100644
--- a/VisorController.m
+++ b/VisorController.m
@@ -187,12 +187,12 @@ NSString 	* stringForCharacter( const unsigned short aKeyCode, unichar aCharacte
 								 //	showFrame.origin.y+=NSHeight(screenRect)/2;
 								 //	showFrame.size.height=NSHeight(screenRect)/2;
 	showFrame=[window frame]; // respect the existing height
-	showFrame.size.width=screenRect.size.width;//make it the full screen width
+	showFrame.size.height=screenRect.size.height;//make it the full screen height
 		[window setFrame:showFrame display:NO];
 //  [[controller tabView] resizeWindowToAccountForTabsBeingDisplayed:nil]; // Fit terminal to correct size
 		
 		showFrame=[[controller window]frame];
-		showFrame.origin.x+=NSMidX(screenRect)-NSMidX(showFrame); // center horizontally
+		showFrame.origin.x=0; // align to left
 		showFrame.origin.y=NSMaxY(screenRect)-NSHeight(showFrame); // align to top of screen
 		
 		[window setAlphaValue:0.0];
-- 

附带编译好的版本:
Visor.bundle.zip
安装方法见Visor主页

对了,现在还有人知道Quake Console是什么吗?iddqd是不是就更没人知道了?

15 Comments :, , more...

iPhone Application Post Build Script

by on Feb.13, 2009, under Uncategorized

很多平台软件开发发布前, 有个很重要的事情就是保留好符号表(symbol)文件. 因为发布的软件一般来说都去除了符号表, 而符号表对于维护是很重要的信息, 没有它, 在拿到call stack后会很难对应到代码中. iPhone开发也是一样, 每次做完Build, 都会有一个.dSYM的目录, 就是符号表. 有了它, 在用户提交crash log后会很容易定位问题.

手工保存这些符号表文件很容易产生疏漏, 恢复起来又麻烦. 我做了一个脚本, 添加到Target的Run Script Build Phase中, 可以在Build类型是Distribution时, 将build出的binary和符号表分别打包为:

  • [application].app.[version].zip
  • [application].app.dSYM.[version].[git hash].zip

如果你用的版本管理系统不是git,需要对脚本做相应改动.
以下是脚本代码

#!/usr/bin/env ruby
if ENV["BUILD_STYLE"] == "Distribution" && ENV["ARCHS"] == 'armv6'
  common_git_paths = %w[/usr/local/bin/git /usr/local/git/bin/git /opt/local/bin/git]
  git_path = ""

  common_git_paths.each do |p|
    if File.exist?(p)
      git_path = p
      break
    end
  end

  if git_path == ""
    puts "Path to git not found"
    exit
  end

  command_line = git_path + " rev-parse --short HEAD"
  sha = `#{command_line}`.chomp

  info_file = ENV['INFOPLIST_FILE']

  f = File.open(info_file, "r").read
  re = /([\t ]+CFBundleVersion<\/key>\n[\t ]+)(.*?)(<\/string>)/
  f =~ re
  puts $1

  # Get the version info from the source Info.plist file
  # If the script has already been run we need to remove the git sha
  # from the bundle’s Info.plist.
  version = $2.sub(/ \([\w]+\)/, "")

  cmdline = "cd #{ENV['BUILT_PRODUCTS_DIR']};zip -r #{ENV['CONTENTS_FOLDER_PATH']}.#{version}.zip #{ENV['CONTENTS_FOLDER_PATH']};zip -r #{ENV['CONTENTS_FOLDER_PATH']}.dSYM.#{version}.#{sha}.zip #{ENV['CONTENTS_FOLDER_PATH']}.dSYM"
  `#{cmdline}`
end

添加方法为:

  1. 在XCode左边栏选中相应的Target
  2. 在菜单中选择Project -> New Build Phase -> New Run Script Build Phase .
  3. 弹出的对话框中,Shell里填写/usr/bin/ruby, Script中填写上面的脚本代码.
Comments Off on iPhone Application Post Build Script :, , more...

可以显示git状态的shell prompt

by on Jan.15, 2009, under Uncategorized

[更新:2009/11/05] 增加了一个小功能,如果本地分支有未推送到对应远端分支的内容,会有提示。

最近看了一些和shell prompt 有关的文章,把自己的shell prompt调整了一下。

在一般目录里就是这样:
Prompt1
分别显示用户名@主机、时间和当前目录。

如果当前目录刚好是一个git repository,就是这样:
Prompt2
后面会多出当前的git branch的名字。

如果当前git repository有还没提交的内容,git branch名就是红色的:
Prompt3

这是我使用的prompt文件,可以把它的内容加在.bash_profile或者source引用到环境脚本里。

. prompt.sh

适用环境为Mac OS X 10.5的Terminal+bash。

相关文章:
Tip: Prompt Magic
bashish
add the current git branch to your prompt

8 Comments :, , more...

两个iChm同时发布

by on Nov.12, 2008, under Uncategorized

iCHM

首先是iChm version 1.4 for Mac OS X,加入了几个呼声比较高的功能:

  • 以pdf格式导出整个chm文档。
  • 使用翻页键连续浏览文档。当到达页面底部时,会自动翻到下一页。在页首page up 会翻到上一页。
  • 打开文件时自动跳转到上次浏览的页面。
  • 自动记录上次查询某个文件时,是全文搜索还是在索引中搜索。

然后,就是iChm 1.0 for iPhone/iPod Touch ,经过苦苦等待,终于上了App Store。苹果花了三天审批我的软件,却花了四周审批contracts。11月4号就通过的软件不得不到今天才亮相。第一版功能包括:

  • 使用浏览器上传和管理文件。
  • 查看chm文档。
  • 支持目录和索引。
  • 支持在索引中搜索。

详细内容参看App Store中iChm的页面。定价$4.99。

37 Comments :, , , , , more...

cd to the latest iPhone Simulator app

by on Oct.14, 2008, under Uncategorized

To ‘cd’ to the latest app installed in iPhone Simulator directory is such annoying. Set you free by putting the following line into your shell profile and use ‘cdapp’ for the magic:

alias cdapp='prefix=~/Library/Application\ Support/iPhone\ Simulator/User/Applications/;auuid=`ls -t "$prefix"|head -n 1`;cd "$prefix$auuid"'
1 Comment :, more...

Search

Archives

Browse by tags

agile apple blog book design ecto extension firefox git google hack ichm iphone keyword life mac madfox movie nonsense opensource plugin pm ruby rubyonrails sns software startup wordpress work 财帮子