经济型极客 - 酷项目大杂烩

作者:Dirk Elmendorf

我承认,当我签约撰写这个专栏时,我真的很高兴在编辑日历上看到“酷项目”。那时还有几个月的时间,我以为到该期推出时,我会有一些重要的东西与您分享。事情并没有完全按计划进行。因为我写的每篇文章都以某种方式涉及到失败,所以我将首先告诉您一些关于我搁置的项目。

微小而闪亮

一个非常非常小的掌上电脑出现在我家门口。它是完全版权自由的 Ben NanoNote。制造商不太确定如何处理它,因此他们尽可能地使其开放,以便人们有机会弄清楚。我最初得到它是以为它可能成为我儿子的一个很棒的便携式 Linux 设备。我希望能在上面获得基本的视频回放功能(如果什么都没有,至少可以给他一些东西玩,而不是我的手机)。

Economy Size Geek - Cool Project Potpourri

图 1. Ben NanoNote

在某些方面,我回想起了玩 BeagleBoard 的情景,因为我很快意识到我正在看一个非常棒的设备,但我不知道如何开始。有一个 wiki 和几个邮件列表,最近,我发现一篇不错的博客文章,展示了有人如何将 gnugo 移植到该设备上(请参阅“资源”)。在花了一些时间研究之后,我不得不承认现在对我来说加入还为时过早。该设备具有潜力,但整个项目还没有发展到足以让我参与的程度。也许我应该举办一些竞赛,把它送给一位有价值的黑客,而不是让它坐在我的桌子上嘲笑我。

那另一款智能手机

我关注 Android 已经有一段时间了。它似乎是一个有趣的平台,但为了利用它,我必须更换运营商,由于各种原因,这不在我的待办事项清单上。然后,谷歌为 AT&T 发布了 Nexus One,我感到很兴奋。我对我的 iPhone 越来越失望,我认为这将是在出色的硬件上尝试 Android 的绝佳机会。

到目前为止,它一直很棒。出现了一些问题,但我最终并没有那么沮丧,因为我遇到的大多数问题都是错误,这意味着它们可以被修复。在 iPhone 上,我的一些问题与运行 Linux 而不是 Windows 或 Mac OS X 有关,这在我的书中不是错误。我的书架上放着几本 Android 书籍要读(我现在意识到这些书可能已经过时了,因为我在拿到手机之前很久就买了它们)。我曾希望能够完成启动和运行应用程序的过程。相反,我安于最终用户的角色,而不是高级程序员,这对我的手机体验来说很棒,即使它对我的写作没有帮助。

什么很酷?

现在我已经清除了我的内疚积压,好消息是,我发现了一些很酷的项目——它们只是由其他人完成的,我可以免费使用它们。在这三种情况下,这些都是我最近才捡起来并用来完成工作的工具。

Caffeine

Caffeine 是那些美妙的发现之一,因为它揭示了一个我甚至不知道自己存在的问题,而且它最初是在 Mac 上演示的。假设您正在观看视频。过了一会儿,您完全沉浸在视频片段中,以至于您没有移动鼠标或触摸键盘,因为您实际上是在全神贯注地观看它。然后,您的屏幕保护程序启动了(作为奖励,您设置了密码)。或者,假设您正在进行演示,并且您在一个幻灯片上停留了一段时间以便回答一堆问题,并且屏幕变黑以节省电量。过去,有两种方法可以处理这种情况。您可以记住时不时地轻 flick 鼠标(这很烦人且容易出错),或者您可以关闭屏幕保护程序,这意味着您必须记住稍后将其重新打开。

Economy Size Geek - Cool Project Potpourri

图 2. Caffeine

输入 Caffeine。这个方便的应用程序在您的通知栏中放置一个小咖啡杯。当您希望您的计算机保持唤醒状态时,只需单击咖啡杯即可。如果您对正常行为感到满意,请再次单击咖啡杯。这很好,因为它易于访问,并且它为您提供了一个视觉提示来提醒您您做了什么。甚至可以选择告诉它在一定时间内启动。如果单击太麻烦,您也可以告诉它在某些应用程序运行时自动启动(例如 Flash 视频、OpenOffice.org Presentation 或 Skype)。

在 Ubuntu 上,您可以添加到 PPA(个人软件包存档)。然后,安装很容易

sudo add-apt-repository ppa:caffeine-developers/ppa
sudo apt-get update
sudo apt-get install caffeine

它最终变得非常方便。正如我所提到的,Caffeine 的版本存在于其他平台上,因此每当我看到人们进行演示并且他们的屏幕变黑时,我最终都会推荐它。现在,它已成为我的工作站安装的标准部分。

Homesick

Homesick 证明,有时花时间在 Google 上搜索是有回报的。当我开始撰写这个专栏时,我有一个想法,即写关于我努力保持我的主目录在许多不同工作站之间同步的文章。我认为这是一个常见问题,但我找不到优雅的解决方案。我最初希望引入云存储,这样我就不必直接访问我的家用计算机来保持同步。

我花了很多时间搜索,但没有找到我想要的东西,所以我开始草拟一些如何解决这个问题的想法。那时我意识到关于撰写专栏的一些非常重要的事情:总有一个迫在眉睫的截止日期。我最终搁置了启动一个全新项目的想法,而是专注于写一些我实际上可以在截止时间前完成并谈论的事情。在那种情况下,它是 BeagleBoard。

当我上周在做一个项目时,我偶然发现了 Homesick。它旨在解决这个确切的问题。它引入了“城堡”的概念,这些城堡是存储在 git 存储库中的不同点文件存储库。然后,您可以选择在每台机器上拉取各种不同的城堡,并选择您实际想要使用的城堡。

为了使用它,您需要安装 Ruby、RubyGems 和 git。一旦安装了这些,只需安装 homesick gem

sudo gem install homesick

可以通过引用本地文件夹、远程 git 存储库或使用简短形式(如果存储库在 GitHub 上)来拉取城堡。此处提供的示例来自 Homesick 作者的 GitHub 站点

homesick clone technicalpickles/pickled-vim

这从 technicalpickles 拉取了 vim 文件。它不会替换您现有的 vim 点文件(目前还不会)。

就我而言,我想构建我自己的 vim 城堡(您不必将文件保存在 git 存储库中,尽管这样做没有坏处)

cd ~/Desktop
mkdir -p delmendo-vim/home
cd delmendo-vim
cp -R ~/.vimrc ~/.viminfo ~/.vim home/
homesick clone ~/Desktop/delmendo-vim

现在您可以询问安装了哪些城堡。就我而言,它显示了 technicalpickles 和 delmendo-vim。它应该列出 technicalpickles/pickled-vim(一个错误,应该在本文付印时修复)。

要激活它,请执行命令

homesick symlink technicalpickles/pickled-vim

homesick clone delmendo-vim

这将启动链接文件的过程。它还会警告您冲突,并允许您在进行交换之前查看差异。该系统不处理跨不同机器同步文件,但您可以轻松地通过将它们放入网络可访问的 git 存储库或远程托管文件并挂载它们来处理。有很多方法可以做到这两点,但 GitHub 和 Ubuntu One 浮现在脑海中。

该项目的第一次提交是在 2010 年 3 月 3 日,所以还处于早期阶段。我希望这些功能继续发展,因为它使我无需拼凑它。

Mockingbird

老实说,我绝对没有艺术天赋。这通常不是问题,因为我与一位伟大的设计师合作(他恰好是我的兄弟,所以当我对他大喊大叫时,他不会介意)。我正在启动一个 Web 应用程序。正如您可能从我的写作中看出的那样,我非常擅长用文字描述事物,但有时文字就是不够用。

我尝试了很多不同的软件工具,但没有一个有效。有些失败是因为它们对我来说需要太多的艺术天赋。我总是觉得它们是为设计师设计的,而我不是设计师。在其他情况下,我在采用方面遇到了障碍,因为我与不使用 Linux 的人一起工作,这意味着我必须从完全跨平台的工具中进行选择。过去,我常常在纸上乱写乱画,这样我就有一些图表可以讨论。当我的团队中的每个人都坐在一间房间里时,纸张是一种很好的媒介,但现在我与一个分布式团队一起工作,我最终失去了纸质图纸的即时性。管理扫描和分发纸质文档也变得很麻烦。

那时 Mockingbird 被放到了我的腿上(意思是我的兄弟给我发了一个链接)。Mockingbird 是一种基于 Web 的线框图工具。线框图是您只绘制设计轮廓的地方,以便您了解正在发生的事情。它不提供所有最后的细节。Mockingbird 允许您设计一个基本界面,然后轻松地与他人共享您的设计的 URL,或者您可以将其导出为 PNG 或 PDF。该工具最终对我来说非常棒,因为它提供了许多模板项目,可以轻松抓取我需要的界面部分。如果我需要更改某些内容,我只需拖动它并进行快速的即时更改。由于它是基于 Web 的,我的队友可以在他们选择的操作系统上使用它。

Economy Size Geek - Cool Project Potpourri

图 3. Mockingbird

我第一次使用它时,我就被迷住了,但我有点紧张。它看起来如此互动,我害怕找出需要什么自定义插件才能使其全部工作。我很快了解到它是使用 Objective J 构建的。我真的很担心这是一种新型的 Java,但事实证明它是 JavaScript。

Mockingbird 是使用一个名为 Cappuccino 的框架构建的。这个 LGPL 许可的框架是用 JavaScript 构建的,但以 GNUstep 和 Apple 的 Cocoa 框架为模型(因此得名 Objective J,灵感来自这些框架的 Objective C)。Cappuccino 将自己与 jQuery 等库区分开来,它说这些库是关于制作动态网站的。Cappuccino 仅在您构建一个完整的应用程序时才有用。它与之比较的另一个工具包是 SproutCore。Cappuccino 的不同之处在于它是完全用 JavaScript 编写的,并且不需要 HTML 或 CSS 知识。

温馨提示:Mockingbird 不是开源的。目前在“beta”期间是免费的。在撰写本文时,我不知道 beta 何时结束或定价如何。我承认我花在用 Mockingbird 绘图上的时间比看 Cappuccino(它是开源的)的时间还多。我对您可以与绘图交互的方式(例如能够选择界面项目、复制、转到应用程序中的不同页面等等)印象深刻,以至于我意识到我需要查看一些 JavaScript 的“应用程序”框架。我上次查看它们是在几年前,当时我玩过 ExtJS。它提供了很多花哨的 GUI 元素,但事实证明它太难使用了。也许在那段时间里情况有所好转。

结论

我已经意识到,对我来说,“酷”更多地与使用有关,而不是时尚。当然,我认为有人将 Android 安装到 iPhone 上是一个令人印象深刻的概念证明,但当我发现一些每天都在改变我的工作方式的东西时,我印象更深刻。这些工具当然为我做到了这一点。

Dirk Elmendorf 是 Rackspace 的联合创始人,有时是家庭酿酒师,长期 Linux 倡导者,以及更长期的程序员。

加载 Disqus 评论