無標題文檔

Finder 当前路径打开 Terminal 的小插件

码农在 Mac 折腾的时候都会在 Finder 和 Terminal 之中切换,所以在 Finder 中打开 Terminal 这个插件并不可少。其实这样的小工具已经有很多现成的, 例如这个

出于折腾以及洁癖等心理作祟,还是自己用 AppleScript 写了个,好处就是可以无视系统的兼容问题。

https://friable.rocks/_/2011_12_07/1323223251.png

安装方法很简单, 下载压缩包 以后直接把程序图标拖动到 Finder 中的工具栏中即可。当然,如果你是键盘控的话,完全可以设定个快捷键。

顺便说一句,这个 App 可以用 「AppleScript 编辑器」 打开编辑。最后,希望这个小玩意能帮到你。

— EOF —

PHP 5.4 的 Trait 特性(翻译整理)

原文: http://www.xpertdeveloper.com/2011/11/trait-in-php/ 。这里总结下注意的几 点:

  • Trait 会覆盖调用类继承的父类方法
  • Trait 无法如 Class 一样使用 new 实例化
  • 单个 Trait 可由多个 Trait 组成
  • 在单个 Class 中,可以使用多个 Trait
  • Trait 支持修饰词(modifiers),例如 final、static、abstract
  • 我们能使用 insteadof 以及 as 操作符解决 Trait 之间的冲突

-- Split --

一些看法

坦白讲,我第一眼看到 Trait 对它并没有任何好感。PHP5 以来带来的新特性已经足够得 多,而且让开发者们有点应接不暇。

同时,Trait 更像是程序员的 「语法糖」 ,然而它提供便利的同时可能会造成巨大的隐患。 例如 Trait 能够调用类中的成员:

trait Hello {
    public function sayHelloWorld() {
        echo 'Hello'.$this->getWorld();
    }
    abstract public function getWorld();
}

class MyHelloWorld {
    private $world;
    use Hello;
    public function getWorld() {
        return $this->world;
    }
    public function setWorld($val) {
        $this->world = $val;
    }
}

同时,针对类中已经实现的方法,Trait 没有效果

trait HelloWorld {
    public function sayHello() {
        echo 'Hello World!';
    }
}

class TheWorldIsNotEnough {
    use HelloWorld;
    public function sayHello() {
        echo 'Hello Universe!';
    }
}

$o = new TheWorldIsNotEnough();
$o->sayHello(); // echos Hello Universe!

那么 Trait 的出现是为何呢? 有哥们的回答比较有意思 ,但不无道理:

因为php没有javascript作用域链的机制,所以无法把
function bind到class里面,曾经以为php 5.3的闭包
可以做这个事,最后才发觉作用域的设计不允许这么干

但话说回来,拿 interface 和 Trait 类比,显然 Trait 有更多方便的地方(虽然 两者不能完全相互替代)。

不过很显然 Trait 目前还处于测试阶段,它的未来相比其他 PHP5 新推来的特性还有 更多让人观望的地方,但或许这特性能改变 PHP5 未来继承的方式。

因为,我个人坚信 PHP 的作用链设计迟早会改得「更像 JavaScript」,即便这事情会在遥远的 PHP6 。

参考链接

-- EOF --

随记 Google Developer Day 2011

有幸参加了 今年的 GDD ,这里主要记录下对于当天所见的所得。

从时间和会场的安排上来看,一天的时间、两个会场想要同时听遍所有的演讲是不可能的。从技术方向来看,今年的 GDD 明显分成了 HTML5 和 Android 俩大块。由于目前工作的关系,我更多的参加了有关 Android 的内容演讲。

<!--
http://s0.i1.picplzthumbs.com/upload/img/ad/fc/2d/adfc2d40247febc41ceac0af56c7a1704c768d22_wmeg_00001.jpg
-->

Android 其实还是舶来品

Google 的工程师 Galpin 在讲述 Android4.0 新功能的时候,我特意留意了下现场参会者的手机。比较有趣的一点是现场参与者的手机程三大派系:iOS 设备(iPhone4 居多)、非智能手机(NOKIA 居多)、还有就是各种 Android 设备。

当然,这个现场其实很容易找到原因,有可能是 GDD 本身就是非盈利性的会议,来者的背景各种各样;同时,这会其实是 Google 自己的产品推介会(即便是面向开发者),所以推广产品的氛围会大于技术讨论。

根据我对些数据的掌握,从地理上说南北方的差异还是很大的。iOS 似乎在上海这座城市明显比 Android 设备要多些(在地铁上的观察),这是否预示着 iOS 设备比各种 Android 设备更受人欢迎些?

Google 是「版本控」

回到 Android4.0 本身,先对于新功能本身不做任何的评论。单单对比其版本号,就十分的有意思。iOS 从 1.0 发展到 5.0 用了将近四年的时间,而 Android 从 1.5 发展到 4.0 只用了不到二十个月(当然,这没法和 Chrome 比)。

会议间坐我旁边的哥们带点报怨的口气在揶揄:「不用等到 2012,我们就可以用的上 5.0 ,和 iOS 看齐了!」。版本号的迅速提升显然对于开发者而言是个坏消息,Google 这做法我想是出于商业和推广考虑。

Google Maps?

似乎每次 GDD 都会有个主题,这次的 GDD 有大量的 Google Maps 上的技术推广。从技术角度上讲,有关 Google Maps 的技术阐述并不十分的复杂。

今年主讲 Google Maps 我不得不讲前几天传出 Google Maps 将要收费的传闻 联系起来。

虽然官方并没有对此做任何正面的回应,但一旦如果其收费,那么对于开发者而言,Google Maps 将会是他们的成本还是新的赢利点?

毕竟,从目前的市场情况而言,Google Maps 是绝对占有领导性的地位的。

Web VS. Native

今年 GDD 分成 Android 与 HTML5 俩大块,实际上按照我的理解其实就是 Native App 与 Web App 的两大不同派系的技术发展方向。

很明显,从各会场的参与人数就可以看出,上海开发者对于 Android 的兴趣目前占有绝对的优势。不过也可以了解到,很多都是想往 Android 平台上转移的开发人员(他们或许是上述使用 NOKIA 的一员?)。

一直在追赶

据 Google 官方的阐述,Android 市场的下载量首次超过 iOS。个人对于这新闻并不十分的激动,在我看来 Google 过于强调数量而忽略了质量。

同比想到了 Google 近期的一系列调整 ,我不得不说「Google,你还是别追了,另外条路更适合你」。

— EOF —

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

分类

搜索

文章