不得不说的 Swift

/*
WWDC 已经过去一周了,本周的焦点已经是世界杯了。对于一个不是球迷的码农来说,WWDC显然是更值得关注的事情,那些说话带着全世界口音的苹果技术宅们,比起绿茵场上身穿各色球衣的肌肉男们,显然也更有魅力一些……
最近还是太忙了些,不然,我觉得,熬夜听WWDC的报告,肯定要比熬夜看球有意思,至少不会扰民。可惜时至今日,在指缝中挤出的时间里,才看了不到1/5的WWDC的内容,确实本非我所愿。
总在不停的忙碌着,不过是为了追逐这变化莫测的世界,到头来却因为忙东忙西而总是慢了几拍,错过了身边的美景,真是极大的讽刺。
*/

本届 WWDC 可以说是近几年来变化最大的一次,苹果在开发的各个方面都有了很大的创新和改进,苹果开发的生态环境又向前迈了一大步,这也充分展示了库克时代的特点。

Continue reading

Cocoa 潮人 Mattt Thompson

又到周末啦,心情轻松了好多,今天我们来看看牛人 Mattt Thopson

在 iOS 开发中,你很可能使用过一个叫做 AFNetworking 的网络库,Mattt 就是这个著名开源软件的作者。

Mattt 是一个多产的开源作者,除了 AFNetworking 之外,Mattt 还创作了 TTTAttributedLabel, FormatterKit, GroundControl, SkyLab 等许多非常好用的开源项目.

Mattt 的成就不仅于此,他还是著名技术博客 NSHipster 的作者。看这个名字就知道这是一个关于 Objective-C和 Cocoa 的技术博客。NS 是在 Mac OS 和 iOS 开发框架 Cocoa 中大量使用的前缀,这个前缀来源于乔布斯在 1985 年创建的 Next 公司。Next 公司制作的计算机操作系统叫做 NextStep, 该系统提供了 Objective-C 的编程接口,后来,Next 被 Apple 收购,乔布斯回到苹果,在 NextStep 的基础上研发出了 Mac 操作系统,Objective-C 成了 Mac 编程的官方语言,NS 前缀的命名方式也流传下来。Mattt 为其博客取名 NSHipster,Mac 和 iOS 开发者自然心领神会。

Continue reading

《超级合作者》

最近在读马丁•诺瓦克《超级合作者》一书。

这个书名,一看起来非常像是管理类或人际关系方面的书籍,而且是可以在地摊按斤购买的,满篇心灵鸡汤和励志小故事…… 好吧,我承认我也是此类书籍的受害者。

这本书却不是这样的。

作者马丁•诺瓦克是个年轻有为的数学生物学家,哈弗和牛津大学教授,被誉为“现代达尔文”,对进化论做出了卓越的贡献。

简单说,这本书从生物进化的角度解释了合作机制的诞生和存在原因,让我们对合作和背叛这样的策略有一个科学的认识。

我们总是对未知的东西充满好奇,科学家们为了探究事物本源一代接一代的努力着。我在想,当我们对事物完全看透的时候,是否也会像了解了魔术的原理之后一样,就感觉索然无味了?

几年前,一本叫做《失控》的书击碎了我对生命的神秘感,让我认识到自由意识不过是机械逻辑的宏观表现,人类和机器并没有本质区别。

《超级合作者》似乎又在揭露一个残酷的现实,我们所谓的道德行为和背叛行为,也不过仅仅是为了获取更多利益而采取的不同的策略。我们之所以合作,不是因为我们善良和高尚,只是因为合作可以让我们获得更多的利益。

幸运的是,目前人类社会的游戏机制,会使得合作者比背叛者有更高的概率获得更大收益,这得益于法制的进步和普适价值观的建立(背叛者面临法律的惩罚和愧疚的折磨,这使得背叛的预期收益降低,从而使得背叛不是一个好的选择)。然而,利益最大化,这一亘古不变的准则,还是深深植根于人类以及所有生物的基因之中,这是所有生物社会得以发展进步的根基。

关于 Heartbleed(心沥) 漏洞

image

什么是 Heartbleed

仅仅通过 Heartbleed 这个名字,我们就能感受到这个漏洞很严重,心脏出血啊!
看一下网上关于这个漏洞的报道:

心脏出血漏洞(Heartbleed Bug)是今年以来最严重的互联网安全漏洞,影响了全球近2/3的服务器,造成的数据泄露不计其数,我们身边的网络安全因此次漏洞出现“内伤”。 — Pingraphic

互联网史上最大的安全漏洞——Heartbleed(心脏流血)漏洞。– Business Insider

4月8日或许是让很多互联网企业运维人员忙得焦头烂额的一天。 — 网易科技

互联网当前最危险的漏洞 — 网易科技

如果类似事件的影响程度分为1-10级的话,这次事件的影响会达到11级。 –著名的安全专家 Bruce Schneier

还有网友们惊呼:

“互联网安全史上最致命一击“

“2014 年 4 月 8 日,这一天必将永载互联网史册”

“狼真的来了”

Continue reading

Gestalt Principles 格式塔原则

Gestalt 是一个源自德语的单词,在德语中的意思是“形式、形状”,在英语中引申为“统一的整体”,专业一点说叫做“完形”。

Gestalt Psychology,格式塔心理学,也叫做完形心理学,源于19世纪初心理学界关于认知的研究。格式塔心理学强调整体和完形,认为人类的意识首先感知到整体,其次或同时感知到组成整体的各个部分。与之对应的学派是构造主义心理学,认为复杂的知觉是简单知觉的组合。

如此纷繁复杂的大千世界,人类的大脑确可以轻而易举的的认知到各种千奇百怪的事物,这真是件非常奇妙的事情。然而人类的大脑是否能真正了解人类的大脑,却一直困扰着科学家和心理学家们,格式塔心里学在人类认知上给出了一些结论,总结为格式塔原则, Gestalt Principles 或者 Gestalt Laws, 也叫做 Principles of grouping 或 Gestalt laws of grouping,即 分组原则或格式塔分组定律。

Continue reading

Box2D 和 Chipmunk

Box2D

Box2D 是个非常流行的物理引擎,有大量的游戏使用 Box2D 完成,在 AppStore 上,Angry Birds 和 Tiny Wings 都使用了 Box2D 引擎。

2006 年,Erin Catto 在 GDC 上演示了 “Box2D Lite”. 2007年9.11,Box2D 在 Sourceforge 上发布开源版本,2010年, Box2D 迁移到 Google Code. 直到现在,还没有迁移到 github, 呵呵

关于愤怒的小鸟使用 Box2D 还有个小插曲:2011年的,GDC ,当时 Rovio 正如日中天,在他们的宣讲会的问答环节,一位听众站起来
问:“Angy Birds 用的是神马物理引擎?”
答:“Box2D”
问:”你们会考虑在游戏中给 Box2D 来个 credit 吗?”
答:”会的”
问:“谢谢!顺便说一下,我就是 Box2D 的作者 Erin Gatto”
答:“太好了!会后我们再详细聊一下”

这部分是来自 Erin 自己在论坛的转述,techcrunch 对这个事情也有报道:http://techcrunch.com/2011/02/28/creator-of-angry-birds-physics-engine-calls-out-rovio-for-not-giving-him-credit/. 这个事情在国内被用来批评和嘲讽 Rovio 的骄傲态度。但 Erin 在论坛明确表态 Rovio 非常友好,自己也很尊敬 Rovio. 并表示不会向 Rovio 索取费用. (技术宅的高风亮节啊)

Continue reading

DevArt——程序员的艺术

在网上逛的时候无意遇到了 https://devart.withgoogle.com/ 眼前一亮。

什么是 DevArt

DevArt is a new type of art. It is made with code, by developers that push the possibilities of creativity and technology. They use technology as the canvas and code as the raw materials to create innovative, engaging digital art installations.

这个应该是官方的定义吧,试翻一下:

DevArt 是一种新的艺术形式。是开发者利用编码和开发技术,拓展创意,制作出的一种创新的,引人入胜的数字艺术程序。

Google 在 https://devart.withgoogle.com 举办了一个 DevArt 的竞赛,为程序员和艺术家提供了一个展示平台,希望能推动 DevArt 的发展。 Google 将和巴比肯中心(Barbican Centre)在今年夏天举行题为:“数字革命” 的艺术展览,其中,DevArt 将是重要组成部分。

http://www.devart.com/ 是乌克兰的一家科技公司,主要产品是数据库相关的开发工具和解决方案。今天说的 DevArt 跟它没有关系,只是偶然重名了而已。

个人理解,DevArt 就是以展现艺术创意和表达为目的的软件程序。它不像传统的应用程序,其目的是为了满足应用的需求,DevArt 程序的主要目的是艺术表现。

DevArt 和传统的由艺术家设计,交由程序员实现的程序不同,DevArt 更强调程序和技术的作用,更注重由程序员用代码直接展示其艺术思想,展现技术本身的艺术性。

另一方面,DevArt 又不应该是“技艺”的展示,它不是《计算机程序设计艺术》里面指的那种艺术,不是程序设计的艺术性。编码在这里依然只是个手段,重点还是通过编码来表达一定的艺术思想,而不是编码本身的艺术化。

image

node.js 异常处理 和 domain

node.js 的纯异步思路给编程带来了新的体验,同时也挖了一些坑…

无效的 try…catch

在 node.js 中,你无法使用传统的 try…catch 来捕获异步函数中的异常。看这段代码

try{
    ...

    setTimeout(function(){
        ...
        throw new Error("some error");
        ...
    },1000);
}
catch{
    // 处理异常
}

此处 throw 所抛出的异常是无法被 catch 到的,因为异常是在 try 执行完毕之后才被抛出的,此时 try…catch 的作用域已经不存在了。
Continue reading

BaaS ——移动App开发者的福祉

Backend as a service (BaaS)

BaaS 中文被翻译为“后端即服务”。这个概念理解起来其实很简单,比我之前写过的 云计算的几个概念 IaaS,PaaS 和 SaaS——都是 XaaS 还更容易一些。

现在做 App,已经很少有完全不需要网络交互的了,或多或少都需要跟服务器通讯,在一般的开发中流程中,都会安排专门做服务器的人员在团队中,服务器和客户端确定好各种消息协议,相互配合实现需求。其实,对于用于支持 App 的服务器端开发,往往大同小异,总是有账号、登陆、统计、充值等功能,成熟点的公司会把这些常见的通用功能做成一个框架或类库,在不同项目中进行复用。当某个框架的做的足够通用时,那它不仅可以给自己的App提供服务,也可以给别人的 App 提供服务了,这就成了一个 BaaS。

Continue reading

Objective-C 的包管理 CocoaPods

关于包管理

包管理的概念应该是来自操作系统吧,例如 ubuntu 的 apt-get 。

类似的概念被借鉴到应用程序级别,用来管理其依赖的其他软件包。很多编程语言,都有自己的包管理工具,或者说是第三方库管理工具,如 Python 的 pip, Ruby 的 gems, Node.js 的 npm 都是很好用的包管理工具。

我们总说,不要重复发明轮子,但是我们需要一个途径找到我们想要的那个别人已经发明好的轮子才行,包管理工具,就是个帮我们找轮子、装轮子和更新轮子的工具。

Continue reading

Web & Mobile, Design & Code

无觅相关文章插件,快速提升流量