2008 - 2009

December 31st, 2008 / 1 Comment » / by x5

到2008年末了,总感觉应该说点儿啥,但又不知道要说啥,自己的大脑是混沌的,无法对这一年的工作与生活做一个条理的总结。

希望2009年,能活得更清晰、更有条理、更加的充实。

2009年对于我来说,我想应该是“少说多做”的一年,如果能做到这4个字,我就知足了。

BTW,这个Blog都快长草了,看样子我得清理清理了:P

[菜鸟系列]Cocoa Touch教程:iPhone应用程序实例

November 9th, 2008 / 6 Comments » / by x5

译者注:好久没有翻译了,好久没有看到这么通俗易懂的教程了,也好久没有更新Blog了。译文中我修正了一些原文中错误的语句和图片,如果想看原文,请点击这里。若发现任何翻译错误,欢迎在文末留言。

与我之前发表过的一篇日志相似(是关于用xcode 3.0开发Mac OS X简单应用程序的),我将在这里向iPhone/iPod Touch的初级开发者介绍如何用xcode 3.1中的界面构造器(Interface Builder)和应用程序委任器(application delegate)创建一个最简单的Cocoa Touch应用程序。本篇教程旨在让入门者快速上手。我不想深入探究那些背后的运行机制,只想帮助你快速搭建并运行第一个应用程序,这样你就也可以用那些“无用”的应用程序塞满App Store了(开玩笑…你可别当真)。

如果你是一个视觉学习者(visual learner),或许通过观看视频教程比读这篇文章会对你更有帮助。我都替你想到了,点击这里,可观看我完整的Cocoa Touch视频教程

如果你知道MVC(Model-模型、View-视图、Controller-控制器),那理解Cocoa编程就会容易得多。当然,如果你不知道MVC,也可以通过代码实例一步一步做下来,但是我不建议这样。还是先去Google一下,了解了解为宜。

我想对那些不了解MVC的朋友简单介绍一下它,MVC被称为(Model <–> Controller <–> View)或者(View <–> Controller <–> Model),其中的控制器(Controller)通常位于另外两项的后方。控制器用于告诉模型(Model)要”更新数据了“或者通知视图(View)要”更新显示了”。这便是整个模式的关键点。我只是用通俗的语言为你阐述了一下,至于背后的细节要复杂的多。

创建你的应用程序

让我们开始吧!创建一个Cocoa应用程序需要以下几个步骤:

  1. 选择 File (文件)> New Project…(新的项目…),在 iPhone OS 模板下,选择 Window-Based Application (基于窗口的应用), 点击 Choose…(选择…)
  2. 把项目名称设为“Basic iPhone App”。点击 Save(保存)。

你应当看到如下的项目工作空间(project workspace):

下一步你要做的是创建类,并把它作为控制器(Controller)或者委任器(Delegate)。

委任器 == 控制器

“委任器”和“控制器”这两个词是等价的。稍后你将看到我们会把在“界面构造器”中创建的不同方法委派给委任类或控制类。在iPhone模板项目中,应用程序的委任器就是为你而创建的。我们程序的委任器被称为Basic_iPhone_AppAppDelegate

在程序的委任类中,我们需要添加Cocoa开发者想关联的出口(Outlet)和行为(Action)。我能用一整篇文章来深入的对它们进行讲解,但限于本文的篇幅,并为了带你经历创建第一个应用程序的全过程,了解一下它们的概念就足够了。

出口(Outlet)作为用户界面的控制组件(Control),常会被赋予一些行为(Action)。行为即指代码中的函数,他们与用户界面中的控制组件(例如,按钮或下拉列表)相连。如果连接到一个按钮,当用户点击这个按钮的时候,就会触发此行为。

在 xcode 中,打开委任器头部文件 Basic_iPhone_AppAppDelegate.h ,在视窗出口(window outlet)下为你的文本域(Text Field)和标签(Label)添加出口,代码如下:

@interface Basic_iPhone_AppAppDelegate : NSObject  {
    IBOutlet UIWindow *window;
    IBOutlet UITextField *textField;
    IBOutlet UILabel *label;
}

你还想为按钮的点击添加一个行为。需要为我们视窗添加如下属性:

@interface Basic_iPhone_AppAppDelegate : NSObject  {
    IBOutlet UIWindow *window;
    IBOutlet UITextField *textField;
    IBOutlet UILabel *label;
}
 
@property (nonatomic, retain) UIWindow *window;
 
- (IBAction)click:(id)sender;

现在打开执行文件 Basic_iPhone_AppAppDelegate.m 。在 applicationDidFinishLaunching: 函数下添加 click:(点击)行为:

- (void)applicationDidFinishLaunching:(UIApplication *)application {	
 
    // Override point for customization after app launch
    [window makeKeyAndVisible];
}
 
- (IBAction)click:(id)sender;
{
 
}

我们会在 click: 行为处理器中添加一些代码,但是首先我们要通过界面构造器把它与用户界面关联起来。

界面构造器和控制器/委任器的实施

现在我们定义了几个出口:一个 UITextField、一个 UILabel 和一个名为 click: 的行为,稍后你将看到这几项都会与界面构造器中的UI连接上。要想打开界面构造器并设置连接,需要做以下几步:

  1. 在xcode的工作空间中,展开左侧目录树中名为 Resources(资源)的文件夹,双击名为“MainWindow.xib”的文件。

    注意.xib 就是 .nib ,它用XML记录内部数据结构。

    然后将会在界面构造器中打开这个 xib 文件。

  2. 一旦打开了界面构造器,你会在 MainWindow.xib 窗口中看到一个代表了程序委任的对象。我们将用它来连接行为和出口。

设计用户界面

现在你能够很容易的在界面构造器中的主窗口上添加控制组件,然后再相应的对 actionoutlet 进行连接。为了搞定这一步,需要做以下几项工作:

  1. TextField(文本域)、Label (标签)和 Button (按钮)拖拽到主窗口上,如下图所示:
  2. 按住 Control-Click,把按钮拖到 “MainWindow.xib” 窗口的委任对象上会显示一个弹出窗口,选择 click:
  3. 按住 Control-Click,把程序的委任对象拖拽到主窗口的文本域上。同样会显示一个弹出窗口,选择 textField
  4. 同上,按住 Control-Click,把程序的委任对象拖拽到主窗口的标签上,也会显示一个弹出窗口,选择 label

界面构造器的工作完成了。关掉它,返回到xcode。我们只需再添加一段代码,应用程序就完工了。

完工

当按钮被点击时,将读取文本域中的文本,并把它显示标签上。这就是我们的应用程序要实现的功能。下面是你需要添加的代码。只要把它放在在 Basic_iPhone_AppAppDelegate.m 中的 click: 行为中即可:

- (IBAction)click:(id)sender;
{
    [label setText:[textField text]];
}

我们从文本域提取出其中的文本,并让它显示在标签上。现在你所要做的就是点击 “Build and Go” (编译并运行)。然后应用程序会运行 iPhone Simulator (iPhone模拟器),你会看到程序运行的效果。

在文本域中敲入一些文字,点击 Change 。你会看到标签上的文字与文本域中一样了。

结论

iPhone开发中的局限只有一个──你的想象力。这是一个充满乐趣的开发平台,开发出的程序会为你带来很多的回报。享受它吧,尽可能多的去了解它。帮我一个忙,在你做出“有用”的程序前,请不要再把那些“无用”的程序(例如手电筒程序,小费计算器等等)放在App Store上了 ;-)

下载本文实例代码

[贴图不说话]令人爱不释手的Adium Message Theme

October 14th, 2008 / 3 Comments » / by x5

本年度我最期待的一本书

July 17th, 2008 / 1 Comment » / by x5

出自Steve Pavlina的《Personal Development for Smart People: The Conscious Pursuit of Personal Growth》,10月15日(我生日前一天)正式发行,敬请期待:P

如果你是Steve的忠实blog fans(例如我),请不要误认为书中的内容只是摘自blog

“Personal Development for Smart People definitely isn’t a rehashing of previous blog posts or articles. The ideas in the book are new and original. Only a small portion of the content is based on existing material from this website.

This is a very unique book. Even if you’ve read 1000 or more personal development books like I have, I dare say you’ve never read anything quite like this.

You’ll find this to be an incredibly well-structured book. I spent a disgusting amount of time on the book’s high-level organization to make it as clear and easy to follow as I could. ”

本书的目录如下(分为两部分):

Introduction

Part I: Fundamental Principles

Chapter 1: Truth
Chapter 2: Love
Chapter 3: Power
Chapter 4: Oneness
Chapter 5: Authority
Chapter 6: Courage
Chapter 7: Intelligence

Part II: Practical Application

Chapter 8: Habits
Chapter 9: Career
Chapter 10: Money
Chapter 11: Health
Chapter 12: Relationships
Chapter 13: Spirituality

Afterword
About the Author
Resources

现在此书已经可以在Amazon上预购了,要知道,这本书还有3个月才出版,现在就已经是“Amazon.com top 100 bestseller”了,很神奇吧!

国内的出版社,赶快引进此书吧,此书绝对是一个聚宝盆!

郑重声明:我与此书的发行无任何关系,所有言论均为自发宣传:P
cheap viagra soft online
discount cialis soft
soma online
discount cialis soft
cheap lasix online
cheap tadalafil online
buy lasix online
cheap viagra
buy soma online
buy finasteride
order cialis soft
generic levitra
discount lasix
vardenafil
order levitra
sildenafil citrate
levitra online
finasteride
discount cialis
finasteride
buy viagra
generic viagra soft
generic cialis soft
buy cheap finasteride
cheap soma
buy viagra soft online
cheap levitra
buy tadalafil online
buy sildenafil online
buy viagra
buy cheap tadalafil
cheap cialis soft
buy cheap finasteride
cheap cialis soft online
propecia
order levitra
generic viagra
cheap sildenafil online
cheap sildenafil online
soma online
cheap viagra
buy lasix online
cialis soft
generic soma
viagra soft
tadalafil
cialis online
buy cheap cialis
vardenafil online
lasix order
buy propecia online
cheap finasteride
discount sildenafil
buy finasteride
cheap cialis
buy cheap tadalafil
cialis order
buy finasteride online
generic tadalafil
cheap finasteride online
cheap cialis soft
cheap soma
viagra order
cheap vardenafil
viagra
levitra
order viagra
discount viagra
buy carisoprodol
viagra online
cialis order
buy cialis soft
generic cialis soft tabs
cheap vardenafil
order sildenafil
buy cheap cialis soft
buy levitra online
cialis soft
cheap lasix
soma order
order carisoprodol
buy cheap propecia
buy levitra
discount levitra
buy soma online
propecia order
lasix online
sildenafil online
viagra soft online
cialis soft order
buy viagra online
sildenafil order
propecia order
generic vardenafil
generic lasix
finasteride
buy viagra online
viagra soft
buy cheap levitra
cheap carisoprodol
propecia online
buy levitra online
discount levitra
vardenafil order
buy cheap finasteride
generic cialis soft tabs
order viagra
buy cialis soft online
order levitra
cheap propecia online
tadalafil order
buy sildenafil online
buy cheap cialis
cheap tadalafil
cialis online
order viagra soft
generic finasteride
buy tadalafil online
generic tadalafil
tadalafil order
lasix online
buy cheap viagra soft
cheap vardenafil online
soma
buy cheap finasteride
discount cialis
cheap finasteride online
buy soma online
viagra online
discount viagra
cheap viagra online
order vardenafil
buy cheap cialis
discount finasteride
tadalafil
cheap sildenafil online
cialis soft order
sildenafil order
buy viagra
discount viagra soft
cheap sildenafil
buy soma online
finasteride order
buy tadalafil
generic cialis soft
viagra soft order
cheap tadalafil
cheap finasteride online
buy cheap propecia
buy lasix online
discount viagra
cheap viagra
propecia online
cheap tadalafil online
soma
vardenafil
cheap viagra soft
viagra soft tabs
buy levitra
levitra online
buy cheap cialis soft
order finasteride
buy viagra soft
generic vardenafil
order carisoprodol
generic tadalafil
discount finasteride
buy cialis online
cheap carisoprodol
order viagra soft
viagra soft tabs
order viagra
order sildenafil
viagra online
viagra order
viagra order
cheap soma online
viagra online
cheap propecia online
generic cialis soft tabs
sildenafil
buy cialis soft
generic viagra
buy sildenafil
generic viagra soft
order vardenafil
buy levitra
cheap soma online
cheap cialis online
cheap viagra soft online
generic propecia
cheap viagra soft online
cheap viagra
generic soma
propecia online
cheap viagra
generic soma
cheap tadalafil
soma online
buy cialis online
generic cialis
buy cheap sildenafil
order viagra soft
viagra soft tabs
buy cheap finasteride
order carisoprodol
discount lasix
buy cialis soft online
cheap cialis soft
discount tadalafil
buy cheap soma
tadalafil order
cheap levitra
order lasix
generic levitra
buy finasteride
vardenafil online
cialis soft order
buy cheap lasix
buy cheap levitra
cheap vardenafil online
viagra soft
cialis soft tab
viagra soft tabs
discount soma
sildenafil online
generic viagra
order vardenafil
levitra order
buy cheap sildenafil
cheap sildenafil
cialis soft online
sildenafil order
lasix online
discount levitra
buy sildenafil
cheap lasix online
discount cialis
cheap viagra soft online
buy cialis soft
cialis soft tabs
finasteride order
generic sildenafil
buy propecia online
cheap levitra online
buy propecia online
vardenafil
buy cheap cialis soft
order viagra soft
cheap finasteride online
buy viagra online
soma
cheap cialis soft
cialis soft tabs
finasteride order
order tadalafil
buy cheap viagra
discount tadalafil
cheap lasix
vardenafil order

重要的日子

June 3rd, 2008 / 2 Comments » / by x5

突然感觉未来一个月有N个比较期待或是重要的日子:

6月9日:WWDC开幕了,Steve Jobs的开篇演讲,以及有何种新产品又发布了,让我异常期待:P

6月12日:论文交初稿了,成败就看这几天了!

6月15日:有两本书要交稿,对于翻译来讲,向小刀学习:)

6月30日:毕业答辩!打算还是用Takahashi来做演示:) 两年就这么混过来了。

7月2日:小薇生日,唉,又要破费了:P

(R)China

May 21st, 2008 / No Comments » / by x5

[一句话]评论比文章更精彩

May 8th, 2008 / No Comments » / by x5

如题,以前经常在国外的技术类网站看过类似的状况,今天终于在中文网站上看到了,不免感叹:“中国真的在进步:)”

网络身份的重新整理

May 4th, 2008 / 1 Comment » / by x5

今天晚上花4个小时做了3件事:

1、利用Google Apps申请并配置了x5 {at} liushen.org的邮箱,以后会逐渐把个人邮件都转移到这里。

2、为本Blog增添了FeedSky的RSS

3、更新了Blog中的about页面

Helvetica & 豆瓣 & 北京

April 27th, 2008 / No Comments » / by x5

大约一年前就 有人 提到这部影片

許多片段相當搞笑(電影院裡的觀眾真的暴出如雷笑聲)。關於Swiss style的誕生則是剪接得不著痕跡流暢極了。

當Michael Bierut一派輕鬆地講到,這套字型似乎像是歷史的終結、某種typography的”finality”時,我突然驚覺這很可能是我這幾年來,所看過思想深度最深的一部片。這部片的出發點是視覺設計,潛藏在背後的,卻是那個叫「現代性」的東西。我覺得片尾的評語,可以算是某種這一群設計者如何看待後進生存於這「已經什麼都完成了的世界」的可能(因為那幾乎被認為是不可被超越的字型),竟稍稍觸動了我某個眼睛會掉水的角落。這太令我意外了,一如沒有人預料得到那個原名Neue Haas Grotesk的字型,竟然會變成我們這個時代的代表一樣。

導演Gary Hustwit說DVD十月九號開始發賣,片長兩小時(劇場版 80 分鐘),原聲帶將以 iTunes 歌單形式發表。

因為是和WWDC有關的blog entry,最後提兩個該片和Mac有關的事:

1. 導演拍片動機之一是1987年買了第一部Mac之後,對裡面附的字型感到好奇。
2. 片中,輩份高如Massimo Vignelli,年輕如Experimental Jetset團隊,iconoclastic如Paula Scher,影片拍攝所及,他們全都是Mac user。

我講了太多,卻也講得太少。這是一部我實在無法summarize、卻想再多看幾遍的記錄片(這部片甚至不能說是對該字型的褒揚或貶抑)。

看就是了。

看完他的介绍,没过多久,我就从网上下到了这部影片,可惜没有字幕,也就听个大概,根本无法体会他所说的意境。

昨夜,不知怎的,上豆瓣逛了逛,没想到几个月没上,豆瓣竟然发生了这么大的变化,变得让人无法自拔:)。不知不觉中,就在豆瓣上待了一夜。

豆瓣的同城,让我发现了JJgod所举办的活动 “纪录片 Helvetica 放映活动”(时间为5月3日,地点为清华,强烈推荐大家去参加),发现的那一刻,恨不得马上去报名,可惜一看时间,那天正是我离开北京返校的日子,NND,怎么就这么巧呢?还好,JJgod和几个人已经把字幕翻译了出来,这之后,估计你也能猜到我做了什么:迫不及待的下载了字幕,把mac中存放的老片翻了出来,仔仔细细的又看了一遍!更准确的说,仔仔细细的看了第一遍,感受:很舒服很舒服!(我也不知道用什么词语来形容这种感受,只能用“舒服”来形容,你有过看完纪录片后感觉舒服的时候吗?)

艺术有的时候就是这样,让你很难用语言去表达自身的感受,这种感觉很像上周去798的感受。这又让我联想到了北京:好像只有在北京才能找到798,只有在北京才有人去组织“纪录片 Helvetica 放映活动” ……

北京就像一个大熔炉,什么样的人的有,什么样的事都有,总能在这个城市中发现能让自己兴奋的闪光点。生活就是这样,我们的思想不要被身边的高楼大厦、繁杂的工作、恼人的交通….给麻痹了,我们需要在身边发现美,发现快乐。

离开百度的日子

April 17th, 2008 / 3 Comments » / by x5

离开百度一周了,说说这周的所见所闻吧。

上周六去参加了Open Party,终于有幸到传说中的ThoughtWorks看了看(呀,照片还没来得及传上来,回头再给大家看看吧)ThoughtWorks的办公环境不错,就看他们24寸的显示器,和那一个个精致的Mac Mini,我的心就被它们俘虏了:P。会上见到了很多传说中的人物,虽然没深入交流,但是相信以后还会有很多见面的机会。在Topic方面,好看簿的Alex Dong给我的印象最深了,也很受益,这老伙是个实在人。

周日在家睡觉。好久没有睡过超级无敌大懒觉了。

周一就开始了新的工作,现在基本上对我所负责的那部分工作和流程熟悉了,有许多值得改进的地方,最大的一个问题是,等我忙完了论文,得用rails/merb搭一个编辑工作量和稿费统计系统,这将会大大提高工作效率,也便于今后日常工作的管理。所以,最近在偷看一些rails/ruby的blog,那感觉就是“亲切”啊!看来看去,近期Git是相当火啊,我还没深入研究,不过它有一个特点,会在本地保存repository,这个很符合我的心意啊:)待我这周末,学习学习。不得不感叹,新技术是层出不穷啊!

今天Taiwen推荐我读了一篇文章,读到我心堪里去了,摘录几段啊:

看待工作,眼光要放远一点,一时的谁高谁低并不能说明什么。

刚进社会的时候如果进500强公司,大概能拿到3k- 6k/月的工资,有些特别技术的人才可能可以到8k/月,可问题是,5年以后拿多少?估计5k-10k了不起了。起点虽然高,但增幅有限,而且,后面的年轻人追赶的压力越来越大。

人都是要面子的,也是喜欢攀比的,即使在工作上也喜欢攀比,不管那是不是自己想要的。大家认为外企公司很好,可是好在哪里呢?好吧,他们在比较好的写字楼,这是你想要的么?他们出差住比较好的酒店,这是你想要的么?别人会羡慕一份外企公司的 工作,这是你想要的么?那一切都是给别人看的,你干吗要活得那么辛苦给别人看?另一方面,他们薪水福利一般,并没有特别了不起,他们的晋升机会比较少,很 难做到很高阶的主管,他们虽然厌恶常常加班,却不敢不加班,因为“你不干有得是人干”,大部分情况下会找个台湾人香港人新加坡人来管你,而这些人又往往有 些莫名其妙的优越感。你想清楚了么?500强一定好么?找工作究竟是考虑你想要什么,还是考虑别人想看什么?

很多事情就像看A片,看的人觉得很爽,做的人未必。

成功有大有小,快乐却是一样的。我们追逐成功,其实追逐的是成功带来的快乐,而非成功本身。

有很多时候,人需要一点耐心,一点信心。每个人总会轮到几次不公平的事情,而通常,安心等待是最好的办法。

在中国,大概很少有人是一份职业做到底的,虽然如此,第一份工作还是有些需要注意的地方,有两件事情格外重要,第一件是入行,第二件事情是跟人。

流水帐记录完毕,以后本blog这样的文章尽量杜绝:P