無標題文檔

关于 iPad2 的碎碎念

时隔境迁, 当时还在贸然预测 iPad 的时候转眼 iPad 已经发布到了二代

这一年来的 iPad 销售量让苹果又赚得腰包囊鼓鼓 ,所以丝毫不用怀疑 iPad2 未来在市场上的表现。

iPad2 的产品参数早已经被剧透的差不多 ,因此这次 iPad2 的发布似乎并没有给人带来多少的悬念 -- 这让已经铁了心购买一代的人们并不会捶胸顿足。

如果没有记错的话,iPad2 是苹果首台发布的双核处理器的 iOS 设备。硬件方面一向以保守派形象出现的苹果,竟然在 iPad2 上配备了双核处理器,随着苹果产品那惊人的销售速度,相信移动设备的双核处理器时代已经来临。

当然,用户不会总是关心处理器是否是双核,移动设备的续航能力提升远比显卡和处理器等硬件的提升重要得多,否则这只能说明它更适合玩游戏。

iPad2 底部那「丑陋」的喇叭孔,让人觉得这绝非出自苹果的设计,我甚至开始相信这是散热孔。

iPad2 没有装备 Retina 屏是情理之中的事情,装备上 Retina 屏幕成本将不可控制。试想如果 iPad 的价格逼近 MacBook Pro 的话,那么它的境地将会十分的尴尬。再者,是否是 Retina 屏幕这并不重要,相比 iPhone、iPod Touch 的分辨率,iPad 能表现的内容比它们多得多。

iWork 已经完全移植到 iOS 平台之上,因此 iLife 跟上也是时间问题。为何 iLife for iOS 要在 iPad2 发布的时候同时推出?硬件我想是块很大的原因。

iPad2 的影响力注定会远不及元代,它注定是个过度产品。妄自预测下,iPad2 其实真正是为了消化库存,以及为 iPad3 的发布争取时间,如果真是那样, iPad3 的发布时间就会在年底。

如果做类比的话,iPad2 之于 iPad 一代就好比当年的 iPhone 3g 与 iPhone 3gs 的关系一样,那么 iPad3 将会如 iPhone 4 一样,必然会给我们更多的惊喜。

看现在平板电脑的格局,就像是当年的上网本一样。相比 iPad,我其实更看好 MacBook Air 。现在的平板电脑能称之为产业,我想有点早。

iPad2 刚发布,旧款的 iPad 就降价 1k 多为其让路。苹果的产品纯利润到底有多少,这时候大家能否看出一瞥来?不管怎么说这也是好事,至少以后咖啡馆里拿着 iPad 装什么的人会少很多。

那么说了多,到底要不要入手 iPad2?其实,如果您当面问我这样的问题,我敢保证这玩意不是你生活的必需品。

-- EOF --

PHP 版本的 Readability 库

阅读是汲取知识的途径之一,但烦杂的网页提了额外我们诸多不需要的信息,这有时候非常干扰我们阅读。回归阅读 内容的本身,其实通过 Readability 这个脚本 就能抽取页面的主体内容。

不过,Readability 提供的仅仅是个 Bookmarklet,如果我们需要将其导出、打印等操作时就显 得捉衿见肘。需求驱动行动, 于是就有了这个 PHP 库 。PS,同时您还可以找到 .net 版本的 Readability ,以及 node.js 版本的 Readability

这个库能做的事情非常的简单,就是找到页面的主体内容并返回。调用这个库非常的容易,实例代码如下:

require 'lib/Readability.inc.php';

$Readability     = new Readability($html, $html_input_charset); // default charset is utf-8
$ReadabilityData = $Readability->getContent();

echo "<h1>".$ReadabilityData['title']."</h1>";
echo $ReadabilityData['content'];

如果您不在意技术本身, 那么这里有个现成的线上工具 。只需要粘贴入需要阅读的网页链接,这个工具就能够重新生成适合阅读的页面(例如: 原页面Readability 以后的页面 )。

https://friable.rocks/_/2011_02_19/1298127284.png

然后利用 Mac 的 pdf 打印输出功能,就能非常方便在 kindle 等阅读器上使用。

Q&A

输出的页面似乎有乱码?

PHP Readability 库能够指定输入的字符编码并统一返回 utf-8 编码的字符串。如果您在处理过程中碰到了乱码问题,请调整下字符编码。如果还是有问题,欢迎您的反馈。

有些页面提取内容失败或者提取不正确?

Readability 提取的算法其实非常有限。如果页面本身的 HTML 标签不是非常合乎规范,那么提取可能会造成一定的困扰。通常这在国内的页面上会更常见些,同样欢迎您的反馈,这有利于我继续改进 PHP Readability 的算法。

最后,希望这个库和工具能让你找回阅读的乐趣。

-- EOF --

自建基于 Linux 的 Time Capsule 服务

更改历史

  • 2011-02-14 更改 netatalk 部分配置参数
  • 2011-02-10 初始化版本

前言

Apple 的 Time Machine 提供了非常完备的数据备份方案,但每次使用外接磁盘备份很 麻烦也很容易忘记备份。同时,个人对于 Time Capsule 「高昂的」售价(虽然它的确值那些钱)颇有微词。

其实,大部分管理员已经有数台 Linux 服务器,所以考虑能否安装类似 Time Capsule 的服务让 Linux 为 Mac 提供网络备份。

如果您和我一样有类似的需求,那么这篇文章可能就是你想要的 :^D

安装软件包

本人使用的 Linux 发行版为 Debian ,其他发行版的也应该类似。

首先,安装需要的软件包:

% sudo apt-get install netatalk
% sudo apt-get install avahi        # 通常这个包已经安装了的
% sudo apt-get install nss-mdns

注意:如果需要自己编译安装 netatalk 包,则需要加入 ssl 支持,具体看编译脚本参数。

配置

上面的软件包正常安装完毕以后,接下来就是配置了。

服务器端

1、编辑 /etc/default/netatalk 文件,找到对应的内容,更改为

ATALKD_RUN=yes
PAPD_RUN=no
CNID_METAD_RUN=yes
AFPD_RUN=yes
TIMELORD_RUN=no
A2BOOT_RUN=no

2、编辑文件 /etc/netatalk/afpd.conf 在最底部加入行:

- -tcp -noddp -uamlist uams_dhx.so,uams_dhx2.so -nosavepassword

3、编辑文件 /etc/nsswitch.conf 在最底部加入行:

hosts:  files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns

4、新增文件 /etc/avahi/services/afpd.service,内容为:

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
    <name replace-wildcards="yes">%h</name>
    <service>
        <type>_afpovertcp._tcp</type>
        <port>548</port>
    </service>
    <service>
        <type>_device-info._tcp</type>
        <port>0</port>
        <txt-record>model=Xserve</txt-record>
    </service>
</service-group>

这个时候 netatalk 协议已经配置完毕,我们要共享出个目录让 Mac 映射为磁盘。编辑文 件 /etc/netatalk/AppleVolumes.default 加入下面的行:

~/TimeMachine   "TimeMachine"   allow:mingcheng    cnidscheme:cdb options:usedots,upriv,tm

简单得说明下:

  • 其中的 mingcheng 为用户名,它指定了哪些用户应用该规则。如果有多个用户,则使用「,」逗号分割。
  • ~/TimeMachine 为用户主目录下的 TimeMachine 目录,也就是我们要保存备份数据的目录。
  • \"TimeMachine\" 为映射磁盘的名称,便于辨别起见,通常不用更改。
  • 较关键的地方是 「options:tm」,这个选项其实就是让 netatalk 充当 Time Machine 服务器的意思( via )。
  • 更多的配置参见配置文件中的说明,很详细。

Tips:由于备份数据比较大,可以考虑 mount --bind 映射到 Linux 本地的其他合适的分区或目录( 详细 )。

至此,基本的 Linux 服务器端配置完毕,重启服务(重启需要花点时间)

% service netatalk restart
% service avahi-daemon restart

https://friable.rocks/_/2011_02_10/1297309091.png

https://friable.rocks/_/2011_02_10/1297309108.png

重启服务以后,在 Mac 端连接 Linux 服务器,输入对应的用户名和密码以后,即可挂载已经配置好的磁盘。

Mac 端

在 Mac 端,我们还需要做些配置。打开终端(Terminal),执行下面的命令使 Time Machine 能够使用网络磁盘作为备份盘:

defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

由于部分兼容性问题,还需要另外手工制作磁盘疏散镜像。打开「偏好设置」中的「共享」,可以看见「电脑名称」, 例如我的是「明城的 Macbook Pro」(注意大小写和空格),这里将其命名为 <computer_name>

https://friable.rocks/_/2011_02_10/1297309156.png

然后,打开终端粘贴如下面的命令获得本机的网卡 Mac 地址,这里将其命名为 <mac address>

ifconfig en0 | grep ether | awk '{print $2}' | sed 's/://g'

如图,例如我的是

https://friable.rocks/_/2011_02_10/1297309174.png

然后运行下面的命令,注意将上步骤获得的 <computer_name><mac address> 代入命令行:

sudo hdiutil create -size 320g -type SPARSEBUNDLE -nospotlight -volname "Backup of <computer_name>" \
    -fs "Case-sensitive Journaled HFS+" -verbose ~/Desktop/<computer_name>_<mac address>.sparsebundle

注意:-size 320g 参数是本机的硬盘容量,请根据实际情况更改。

最终在桌面会有个类似我本机的文件名(注意空格等字符):

明城的 Macbook Pro_0026bb6a1f40.sparsebundle

然后将这文件扔到上面配置好的 Linux 网络磁盘根目录。打开 TimeMachine 选择对应的磁 盘,即可以开始开始备份。

https://friable.rocks/_/2011_02_10/1297309244.png

https://friable.rocks/_/2011_02_10/1297309278.jpg

Tips:首次网络备份会比较缓慢,建议插入网线。

一般问题

问:这样做符不符合 Apple 的协议?

答:未知,如有明确结果的,请各位告知。

https://friable.rocks/_/2011_02_10/1297309298.jpg

问:为什么我选择网络磁盘以后,TimeMachine 一直在「正在准备磁盘」?

答:这是磁盘疏散镜像没有制作正确,或者你命名的文件名不正确。可以暂停备份,挂载网络磁盘看 TimeMachine 为你自己生成的文件名,然后在将上面步骤生成的文件替换。

问:TimeMachine 的备份数据是加密过的吗?

答:抱歉,保存在服务器上的数据是 没有加密 的(数据传输如有 SSL 是加密的)。

参考资源

-- EOF --

我的照片

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

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

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

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

分类

搜索

文章