珍爱生命,远离……

2013-05-12 10.58.13

今天这是个标题党,其是我想说远离电视来着…

昨天那篇发出后,很多小白反馈,说俺们都是纯白,太干了完全看不懂啊。好吧,读者多了压力就是大,有时候我都不知道该写点啥了,大家将就着看。最近个人微信平台似乎都有点累。我说是疲态尽显,小道说是文字疲劳,我看他也有点疲劳,又是打脸又是抽血的,哈哈。道哥昨儿也休息了,WTP忙得忘了更新然后说要暂停。鬼脚七最勤劳,每天更新吧文字还特长,算是保质保量,估计跟他最近调岗有关系,太闲!?

调侃完毕,今天想了个主题,也算是读者反馈吧。前几天有读者问我每天花多少时间在微信平台上,怎么会有那么多时间呢?

其实我一直在压缩写微信的时间,包括取消了每天更新的承诺(于我而言,时间确实是不够的),但是固定的时间消耗必不可少,现在大概短则半小时,长则两小时,这里面还包含了读者互动的时间,时间成本还是蛮高的。怎么会有那么多时间?其实没那么多时间,大家时间都是一样的,只不过在做不同的事情罢了。说到这里,我就要给大家介绍一个节省时间的绝招,那就是远~离~电~视!

小时候有个阶段我最爱的两件事就是看武侠小说和武侠电视剧,金庸古龙梁羽生的书基本读了个遍,常常就着夜色和手电筒看书,碰到武侠剧一集都不想落下,估计眼睛近视就源于此。看到痴迷处仰望星空,我就琢磨,等老了就弄两框武侠小说和录像带看,想躺着看就躺着看,想坐着看就坐着看,想看多久就看多久,那是何等豆浆和冰糖的生活啊!

那时候的我还不知道人在各个阶段的变化是如此难以预料,二十岁的时候很难想象自己三十岁时候的想法,何谈老去?梦想,能力,规则和习惯等,都会随着时间流逝发生改变。很快武侠小说就淡出视野,但电视还是充满吸引力,刚毕业时租了房子,首先给自己买了台电视,工作回来后,经常躺在床上看着电视入睡,那时的网络还没有如此发达。慢慢我开始意识到电视这玩意简直就是时间杀手,光换频道你就能换一个小时,别提那些垃圾广告了,后来慢慢电视也淡了,30岁之后,基本戒掉了这个娱乐活动。现在我家的电视有几百个台,仅用来看看体育直播和重大新闻,偶尔看看电影频道。由于我们不看电视,孩子对电视也没瘾,可以用更多的时间做其他好玩的事情。

据不完全统计,现代儿童在电视机面前每天要耗上2-3个小时,这几乎占到了孩子们课余时间的一半还多。各种垃圾广告和言论轮番对人们进行轰炸,画面的不停切换和非互动性会让人们失去注意力,当然更大的损失是自己的时间。就我个人的了解,现在的电视几乎没有任何营养,90%的娱乐内容、脑残电视剧和无比和谐的「你幸福吗」,我觉得不看也罢,人类通过书籍留下了那么多美好的东西,即使你不想提升自己的专业能力,看看各个时代的书,你也会知道宇宙洪荒,桑田沧海,人类的各种美好和苦难,看个毛电视啊。

确实想看的,看看美剧,顺便还练练听力呢。

当然,网络也是个时间大杀器,同样需要控制,但网络至少比电视好,至少具备互动性,至少你是在主动获取内容。

如果你在看到这篇微信的时候,正拿着手机躺在沙方上看电视,那么最好关掉电视,好好去看手机和书。

最近有个朋友利用别人看电视的时间做了个微信运营助手,叫做皮皮扣,域名是
http://pipikou.com ,很有想象力,各位微信平台的HOST,感兴趣的可以去看看。

你就知道不看电视的好处了…….

枚举

2013-05-12 10.58.24

如果你以为这是个标题党,那你就错了。今天的内容就是接着昨天的话题讲Objective-C。

想听扯淡的等明天吧。

2、枚举类型的改进

在OS X v10.5之前,我们如何在Objective-C中定义一个枚举类型呢?如下:

typedef enum { 
    ObjectiveC,
    Java, 
    Ruby, 
    Python, 
    Erlang }
Language;

这种写法简单明了,用起来也不复杂,但是有一个问题,就是其枚举值的数据范围是模糊的,这个数值可能非常大,可能是负数,无法界定。

在OS X v10.5之后和iOS中,你可以这样写:

enum {
    ObjectiveC,
    Java,
    Ruby,
    Python,
    Erlang
};

typedef NSUInteger Language;

这种写法的好处是,首先这个枚举的数据类型是确定的,无符号整数。其次由于我们采用了 NSUInteger,可以不用考虑32位和64位的问题。带来的问题是数据类型和枚举常量没有显式的关联。

现在,你可以这样写枚举了:

typedef enum Language : NSUInteger{
    ObjectiveC,
    Java, 
    Ruby, 
    Python, 
    Erlang 
}Language;

在列出枚举内容的同时绑定了枚举数据类型NSUInteger,这样带来的好处是增强的类型检查和更好的代码可读性。

当然,对于普通开发这来说,枚举类型可能不会涉及到复杂的数据,使用之前的两种写法也不会有什么大问题。

源于梦想并始于微不足道

2013-05-12 10.57.34

昨天谈的付费免费和产品创作等内容,仅仅是思想表达,并不是要探讨Mac技巧是否要收费的问题,就目前微信平台的运营模式,即使我们想做收费阅读,也无从收起,所以大家不必介怀,主要看文字内容。

有位叫做「醉染林夕」的读者发表了这样一个观点,很有趣,大家感受下:

来自沉默的大多数:既然收费与否的问题说不清就说一种观点吧。写作分享做好事这种事很多情况下是作者的表达欲在作祟,也就是他并没有因为做了这个可以得到什么而去做,而是他就想做,他想把事情做极致,这可以说是他的命。 连岳有篇文章叫《个人之上再无价值》曾引发了很多人对个人是否要有社会责任的争议,很多人担心如果大家都只看到自己的利益而不去为社会着想,社会怎么进步,或者说社会怎么会快速进步。这里我认为就预设了一个假命题,即大家都为了自己利益。 其实总会有那么一群人为了大家着想的,总会有人不为其他的努力与现状抗争的。毕竟,自私,同情,分享等等美好品质都是人的天性,或者至少说是一部分人的天性,社会自有系统。

我以为这一段写得非常好,再好一点就赶上我了(哈哈)。我认识的好几位技术人做微信公众平台都属于兴之所至,而不是盈利为先,无论是表达欲望也好,创作欲望也罢,大家在无偿的分享自己的经历和思想,这是命。当然如果有一天这些频道和内容衍生出了伟大的事业和财富,我们也不会拒绝,谁会拒绝内容创造的财富呢?这也是命。

所有伟大的事业都源于梦想,并始于微不足道。

Macintosh之父拉斯金的梦想之一是“数以百万计的电脑”,他的远大志向是“如果个人电脑能够真正面向个人,那么任何一个家庭都该拥有一台”。但是Macintosh项目初期,整个项目组只有四名研发工程师,而且每隔一段时间项目就会被拿出来讨论。30年过去了,这个微小的项目组成就了现在的Mac帝国。

另外,昨天推荐的「一天一件艺术品」的微信号有误,错误的原因并不是我记错了,而是下划线被markdown编辑器吃掉了,于是很多读者反馈找不到这个平台。这事我也挺纳闷的,其实只要知道了公众平台的名字,就可以很容易查到这个频道,点击微信底部菜单朋友们-添加朋友-查找微信公众帐号,输入「一天一件」即可。找不到的自个面壁去!

「一天一件艺术品」正确的微信号是:

one_art_everyday

最近扯淡有点多,今天开始从语法层面为大家介绍一些Objective-C的新特性。

去年的WWDC上,苹果针对Objective-C和LLVM编译器都做了重大改进,我们来看一看Objective-C增加了哪些新特性。

1、方法顺序无关

Objective-C类由声明文件h和实现文件m组成,所有的public方法都在h文件中声明,private方法可以写在m文件中,但是在早期的编译环境中需要注意方法的顺序,例如下面的代码,在早期的编译环境会给出警告:

类和方法声明:

@interface ObjcNewFeatures : NSObject
-(void)doSomething:(NSString *) text;
@end

实现:

@implementation ObjcNewFeatures
-(void)doSomething:(NSString *)text{
        NSLog(@"%@", [text stringByAppendingFormat:[selfgetCode]]);
}
-(NSString *)getCode{
        return@"Unicode";
}
@end

早期编译器编译时会出现:warning: instance method ‘-getCode:’ not found…

这是因为根据编译顺序,编译器不知道在doSomething之后还有getCode方法,所以会给出警告。解决办法有多种,比如可以把getCode方法放到doSomething之前,也可以提前声明私有方法,如下:

在m文件中增加:

@interfaceObjcNewFeatures()
-(NSString *)getCode;
@end

新版编译器在LLVM中增加了新特性,改变了顺序编译的方式,首先扫描方法声明,然后再对其实现部分进行编译。这样无论是public还是private方法,就变得顺序无关了。

付费还是免费,这不是问题

fee

Mac技巧频道共积累了200多个Mac日常使用和开发使用的Tips,这些技巧散落在之前100多篇文章中,入口是m,回复m,是对的,问说「好的Mac技巧呢」,将遭到无情忽视。

上次做的付费阅读调查,仅仅是个探讨,因为微信公众平台的作者无法确定收费规则,最多搞一个支付宝的donate,自愿捐助,这也是不少读者建议我采用的方式。

调查结果也很有意思,简单的看了一下,20%的反馈者属于铁杆读者,认为文章定价太低,「好的信息,一条10元都值得」「必须订阅」。还有20%的游离态读者,「党费一年才两块四呢」「如果付费的话则会取消」。剩下的60%基本上属于中坚读者,表示每月1块可以接受。当然也有表示每年10块可以,每月1块不能接受的。这也是我特意想求证的一点,每月1块钱和全年10块,其实差距只有每年2元钱,我想知道时间走到2013年这个号称大数据的时代,是否还有人在意这2元/年,事实证明,有的,而且不是个案。所以你就知道,永远不要把自己的认知想当然的代入到消费者和用户的想法中。

当然还有更多的读者没有任何反馈,他们属于沉默的大多数,这个时代,这样的人,总是最多的。

关于软件、书和文章的付费问题,我个人有两个观点,第一,首先要关注我们提供的东西是否能够真正解决用户的问题、满足需求并带来价值;第二,付费总是能够在某个阶段为作者带来更旺盛的创作热情,在某些时候也可能适得其反。

很早我就认识到的一件事情就是,人们乐于去花钱买好的东西「当然我指的的普通人,不是强盗」。从长远来看,人类对美好的事物的追求是永无止境的。所以不要担心他们是否愿意买你的服务,不要担心他们是否会把钱花在你做的东西上。如果有人不愿意并抱怨你做的东西,这没什么,因为这并不是他们真正需要的东西,仅此而已。

世界上还有大量的人懂得欣赏,愿意付费去购买美好的东西,因为他们认为它是值得的,它让他们的生活更美好,只要你的东西足够好。我想这是技术人持续编程和写作的最重要的理由之一!

另外,就我个人的软件使用体验来说,收费软件的平均水平远远高于免费软件,除非这个免费软件的背后有强大的社区和公司支持,比如优秀的开源免费IDE工具Eclipse,就是由IBM支持的,可以说Eclipse是世界上程序员使用最多的开发工具。但即使是这样,与Jetbrains的付费软件Intellij IDEA相比,Eclipse的功能依然稍逊一筹。没有人能够饿着肚子写出优秀的作品。捐助和付费,从长远来看,能够获得更好的回报。当然,也可能出现的情况是,创业者或创作者由于用户和读者的付费发财了,慵懒了,把公司卖掉了,或停止创作了,这会导致产品的质量下降或停止更新。但是从另一个角度来说,这是这些创业和创造者应得的。因为大部分人在朝九晚五和电视电脑前消磨人生的时候,他们则在孤独的环境中默默的创造内容。

没人欠用户什么,大家都有选择自己生活的权利。像乔布斯那样坐拥百亿资产身患绝症依然充满创作热情的,这个星球上就那么一位。比尔·盖茨做不到,保罗·艾伦做不到,史蒂夫·沃兹也做不到。

付费和免费,这是个问题,但不是我的问题。

推荐几个同样『小众』的微信公众平台(以下排名不分先后):

一天一件艺术品:one_art_everyday

目前主要以翻译国外的艺术品鉴书籍为主,已经基本翻译完两本:How to Look at a Painting、How to Understand a Painting,目前正在啃30,000 Years of Art。 人生有涯,常常要在痛苦与无聊之间来回摇摆,得不到就痛苦,得到了就无聊。艺术家的艺术品,可作人间的孟婆汤,让人忘记痛苦与无聊。 木心说:艺术广大已极,足可占有一个人。艺术,让一个人足以知道生的可贵,足以面对死而坦然。谈艺术,是为了拯救自己。

推荐给关注人文和艺术的程序员

二爷鉴书:findbook

定期推送各种读书心得、好书介绍和烂书揭露,以IT、互联网行业为主。虽然更新频度不高,但几乎每篇都是经典,我在他的推荐下购买了几本,都是上上之选。 私下聊天开玩笑说,Mac技巧也要写书评,抢二爷鉴书的生意,因为之前偶尔写过几篇。但在书评方面,我是业余的,二爷鉴书才是专业的。

推荐给爱书的程序员。

iOS开发:iosDevTips

介绍iOS开发时的各种经验技巧。帐号作者具备丰富的iOS开发经验,他组织的QQ群里有网易,腾讯,新浪,搜狐,美团,豆瓣等公司的iOS程序员,群内很多讨论很有价值的内容会分享到这个公众账号中,间或也有他的个人博客作品。

推荐给iOS程序员。

Mac技巧会定期推荐我认为好的Mac App和iOS App,如果你的团队有好的App,可以联系我!

Google的不做恶

2013-05-12 10.57.25

为了避免每次被新读者问道「说好的Mac技巧呢」,我决定在每篇文章的开头加上这句话:

Mac技巧频道共积累了200多个Mac日常使用和开发使用的Tips,这些技巧散落在之前100多篇文章中,入口是m,回复m,是对的,问说「好的Mac技巧呢」,将遭到无情忽视。

今天凌晨Google 2013年I/O开发者大会在美国加州旧金山开幕,期间发布了新版的Play/Music/Maps/Google+/Gmail等软件产品,关注具体信息的,直接用Google百度一下,包括拉里·佩奇的演讲「科技改变世界」,都值得一读。

随着开发者大会的强力召开,Google的市值也强势突破3000亿美金,开始逼近苹果。我个人还是很喜欢Google这个公司的,Google Glasses和无人驾驶汽车表明这是一家不断创新放眼未来的公司,虽然它关闭了我最钟爱的Google Reader,好吧,暂时先原谅它。

另一家科技巨头苹果公司市值刚刚跌破4000亿美金,很多人觉得苹果在走下坡路,我不这么认为,它只是暂离世界之巅放缓脚步而已,无论是Google还是Apple,都是充满技术底蕴的公司,Google I/O给我们带来了很多惊喜,同样的期待,我们送给6月份的WWDC,希望Apple更精彩。

前几天看到一篇文章,说的是Google的不做恶,非常有意思,摘过来给大家看看:

关于“不作恶”文化的访谈:

Sagal(主持人):所以我想问问你们是怎么想出来著名的“不作恶”规矩的?

施密特(前Google CEO): 这……咳,这是 Larry 和 Sergey 发明的。但是其实他们都不知道“恶”是什么。当我进入公司和他们一起工作的时候,我觉得这个规定真是愚蠢之极,因为根本没有什么除了圣经之外的读物解释了“恶”具体指什么。

所以我们是这么用的。开会的时候,我们在争论某个产品或服务的时候,一个工程师捏紧拳头捶了桌面一下,然后说,这是在他X的作恶啊!然后所有对话就停止了,随之而来的是一阵愤怒的声讨,然后就停止了这个项目。

哈哈,大家可以脑补一下这个场景。

明天周五没有更新,别问别等,本周末会推荐几个同样小众的微信公众平台,有需要的同学关注下。

改进中的创新

facebook

曾经推荐过的电子阅读App「多看」终于重新登录App Store,之前没有下载过的童靴可以去下载了。我个人以为多看是国内顶尖的阅读类应用,用户体验不断调整和创新,所以现在能在多看买到的书,我已经不去其他地方购买了。之前也入了不少豆瓣阅读的图书,不过豆瓣的App似乎一直停止不前,鲜有更新。关于豆瓣阅读iOS版不能支持数学公式、iPad版不能调字体的问题,我反应过多次,无果,不知道这部分是否已经不再是豆瓣重点投入的方向了。

最近这几天Facebook频繁更新,昨天发现图标都变了,今天又发了一个更新,图标又变回来了,我晕,估计扎克伯格也晕吧,不知道是哪个工程师干的。

这次Facebook的更新改进了一个非常有意思的功能,就是实时聊天。当你和朋友聊天时,那个会话会变成一个圆形图标浮动在Facebook的界面上,如果有多个会话,就会有多个图标重叠在一起,在这期间你可以做任何其他操作,当有新消息时,图标就有提示,点击即可进入聊天,极为方便,拖拽多个会话图标还会出现拖尾的动态效果,非常棒。想要删除这个会话时,拖动图标扔进那个圆形X图标即可。

今天的附图就是Facebook App的截图。

写了多看和Facebook两个App,有两点想法:1、创新总是随着不断的改进而来。2、移动App必须不断更新才能吸引用户,否则太容易被遗忘了。

今天在微博上写了个段子——「互联网应用开发者:爷就不支持IE6了,爱他喵用不用。企业软件客户:爷就用IE6怎么啦,不支持别想验收」,收获众多受害者和幸灾乐祸者的反馈,呵呵,大家也感受下,以后会谈谈互联网应用与企业软件的那些事儿……


据说微信现在有4亿用户,我身边很多人都是微信用户,上面留下了很多欢声笑语,那如何保留微信上的语音呢,今天给大家介绍下。

首先使用类似iExplorer的手机文件浏览软件连接你的手机,打开Apps-微信,找到Audio文件夹,导出到Mac的文件系统里。

你会发现该文件夹下有很多后缀为aud的文件,如何播放aud格式的音频文件呢?

使用HexEdit.app(16进制文件编辑器)打开aud文件,在文件头增加如下代码:

0x2321414d520a

实际上就是在文件头增加了#!AMR\n,表明这是一个AMR文件。

然后把文件后缀由aud改为amr即可正常播放。

如果需要批量命名,可以打开终端程序(应用程序-实用工具-终端),找到文件位置,输入如下批量shell命令:

for var in *.aud; do mv “$var” “${var%}.amr”;done

打完收工!