信件

作者:Staff

信件

Acer Aspire One 和 Linux

我注意到有人说 Acer Aspire One 的背景无法更改,就他或她所知 —— 大概是在运行基于 Linux 的操作系统时。 但是,背景可以轻松更改。 只需在桌面上任何位置单击鼠标右键,然后选择背景的选项卡式选项即可。 此外,如果需要,您可以从自己的图片文件夹中添加更多图片。

但是,如果您使用的是 Ubuntu 的上网本版本,那么将无法工作。 在这种情况下,您需要转到自己的图片文件夹并单击图片。 然后,有一个选项可以访问背景偏好设置。

我购买了一台 Acer Aspire One,型号为 AOD260,它预装了 Windows XP 操作系统。 我自己将其“升级”到完整版的 Windows 7 家庭高级版作为主操作系统,并将 Linux Ubuntu(完整版)作为辅助操作系统。 两者都运行良好,只是互联网时间更新出现恼人的故障。 从那时起,我永久性地更改为 Linux Ubuntu(完整版),它运行得非常出色。

——
Derek

Netflix 和 Linux

我听说您提到无法流式传输 Netflix 内容,并对此表示担忧。 但是,最近,我们已经被赋予了这种能力! 有些人会因为我承认这一点而避开我,但我使用 Google Chrome 作为我的浏览器(是的,尽管它存在固有的内存泄漏),但我收到的最新稳定更新添加了 Chrome WebApp 功能,您猜怎么着? 有一个 Netflix 应用! 我不再有登录名了,因为我取消了订阅,因为我无法忍受每次想看电影都启动 Windows。 让我知道它是否有效。 我很好奇。 它对我来说开始了,但我无法测试它。

——
Philip

遗憾的是,没有。 Linux 下 Netflix 的问题在于 Netflix 使用 Silverlight 作为其流媒体/播放/渲染解决方案。 尽管我们有 Moonlight,一个 Linux 原生版本的 Silverlight,但它不支持 DRM,因此视频将无法开始流式传输。——编者。

启动挑战

首先,感谢您提供如此精彩的杂志。 我是第三年订阅,我真的很期待每个月阅读它。

在阅读了关于 UNetbootin 的文章后,我想提出一个挑战,希望您能考虑接受。[参见 Joey Bernard 在 2011 年 3 月刊“Upfront”部分的文章 “指尖上的 Linux”。]

最近,我购买了一台 Zotac Zbox,我想在上面运行 Linux。 我有一张 SD 卡和一个 USB 驱动器。 两者都被系统识别。 在 BIOS 中,我可以将任何一个设置为首选启动设备,这将成为 Linux 的 /dev/hda。 我想将 SD 卡作为我的“硬盘”。

我使用 UNetbootin 创建了可启动的 USB 驱动器,其中包含安装程序 ISO。 目的是将 Linux 安装到 SD 卡上,稍后从中启动。 启动过程正常,我可以将 Linux(在我的例子中是 CentOS)安装到 SD 卡上。 稍后,我想从 SD 卡启动,但您可能已经猜到,CentOS 安装在 /dev/hdb 上,因此无法启动。

我想过不同的选项,例如连接外部 SATA DVD-ROM 驱动器并从中启动,但这太简单了,而且我没有这样的驱动器。 另一个选项(未经测试)是在 SD 卡上安装 Syslinux,从中启动,并使用 GRUB 启动 USB 驱动器,其中包含使用 UNetbootin 制作的安装程序 ISO 镜像,然后安装到 /dev/hda。 第三个选项(也未经测试)是 PXE 启动,但我目前没有 PXE 服务器。 第四个选项是返回到我安装在 SD 卡上的 CentOS 并修改挂载选项和引导加载程序(也未经测试)。 所以,我希望您能接受我的挑战!

——
Simon Stavdal

我建议使用第四个选项,并可能使用 UUID 而不是设备名称进行挂载。 (Ubuntu 默认会这样做。) 您可能仍然需要调整 GRUB,但它应该可以工作。 但我承认,解决这类问题可能非常令人沮丧。——编者。

文件名中的空格,再议

关于 Dave Taylor 在 2011 年 2 月刊中发表的文章 “处理文件名中的空格”,当我创建文件/文件夹时,我从不在文件名中放置空格。 但我确实会收到来自其他人的文件中带有空格的文件。 我过去常常让这些文件保留空格,即使它们不好。 您的文章促使我改变了这一点,所以我编写了一个简单的脚本,似乎运行良好。 这是它:

for s is *\ *
do
   rename 's/ /_/g' "$s"
   sleep 1
   printf "Removing spaces from $s\n"
done

感谢您的精彩文章。

——
caseesac

关于 “Zotonic: Erlang 内容管理系统” 的作者更新,《LJ》,2011 年 4 月

目前,默认的 Zotonic 分支正在进行大量开发,安装说明略有更改。 您可以使用以下命令克隆 0.6 版本:hg clone -r release-0.6.x https://zotonic.googlecode.com/hg/ zotonic. 如果你想走在前沿,请参阅默认分支的新说明:code.google.com/p/zotonic/source/browse/doc/INSTALL。 如果您需要进一步的帮助,您也可以查看非常活跃的 Zotonic Google 论坛。

——
Michael Connors

Fedora 软件包维护者拒绝修复 glibc 软件包中的安全隐患

从 glibc-2.12.90-4 版本开始,glibc 中引入了一个安全隐患,并且已经近四个月未得到纠正。 即,glibc 允许其他程序覆盖相邻的内存块。

该漏洞被缩小到 2010 年 8 月 11 日 glibc 中不恰当地使用了 memcpy 而不是 memmove —— 请参阅 https://bugzilla.redhat.com/show_bug.cgi?id=638477 的评论 37 和 38。

不幸的是,这个漏洞讨论串已经演变成一场关于支持专有软件的利弊的辩论,完全忽略了主要问题 —— glibc 中的安全隐患需要立即修复。 尽管 Linus Torvalds 提出了严厉的批评(请参阅评论 199 和 222),但没有任何改变。

唯一可能的行动方案是建议 Fedora 14 用户降级或回滚 glibc,直到此漏洞得到修复。

——
Simon Lewis

感谢您的提醒。 像这样的例子是我尽量不以 Linux 用户自居的原因。 是的,我们的系统设计良好,通常非常稳定,但编码错误就是编码错误。 我们并非对漏洞免疫。——编者。

Paul Barry 的 “Python for Android”,《LJ》,2011 年 3 月

我一直是贵刊的忠实读者一段时间了,主要是因为像 Paul Barry 的 “Python for Android” 这样的文章。 不仅事情完全按照描述的那样工作,而且描述本身对于像我这样技术性强但不算是超级极客的人来说也很完美。

可悲的是,当尝试使用实体 Android 手机按照文章操作时,我遇到了麻烦。 我的手机具有“安全功能”,可以阻止加载未通过移动运营商的“应用市场”收费站的应用程序。 我怀疑我不是唯一受到这种限制的人。 我的麻烦进一步复杂化,因为大多数关于 “侧载” —— 使用各种非官方技术将应用程序加载到手机上 —— 的帖子都需要并假定 root 权限。 这些都不会吓倒一位资深开发者(又名 “极客”),但害怕使智能手机变砖仍然让大多数银行账户感到畏惧。

——
Dan St. Andre

Paul Barry 回复: 感谢您的客气话,Dan。 不幸的是,一些厂商一心想封闭本应是开放的平台。 这可能对他们来说具有商业意义,但这肯定会给他们的一些用户(尤其是我们这些想要控制智能手机可以做的一切的黑客类型)带来生活上的困难。 我在 root Android 设备方面几乎没有经验,尽管网上有很多帮助。 您可能希望在 answers.oreilly.com 上搜索 Brian Sawyer 的文章。 Brian 是我的两本 Head First 书籍的编辑,并且(作为一名编辑)是一位已出版的 Android 作者。 他在他的智能手机上尝试过大多数事情,并就如何获得 root 权限提供了一些很好的建议。 搜索 “如何一键 root 您的 Android 手机”,然后从那里开始。 但是,请务必小心,因为变砖的可能性是一个问题,所以请谨慎行事。

酷应用包

我不记得最近是哪一本每月 Linux 杂志要求读者提交他们离不开的自己最喜欢的应用程序。

我长期以来一直是 XFCE 的用户,它有一个我在其他任何地方都没有找到的功能,那就是能够将鼠标移出屏幕边缘,移动到下一个屏幕,并从最后一个屏幕环绕到第一个屏幕。

Brightside 为 GNOME 实现了这一点,它在 Ubuntu Netbook Remix Unity 上也有效。 它还为非并排屏幕布局的屏幕布局进行垂直屏幕切换。

——
honkytonkwillie

我经常在工作中像这样设置我的办公桌。 我有三台显示器和三个操作系统。 使用 Synergy,我可以将鼠标在它们之间移动,并使它们从最后一个环绕到第一个。 在单屏幕的虚拟桌面中执行相同的操作可能会很有趣。 感谢您的提示。——编者。

谢谢你,Kyle

我几乎从头到尾阅读了每一期《Linux Journal》; 这是唯一一本如此吸引我注意力的杂志。 对于所有优秀的贡献者来说,有一位可能更突出一点:Kyle Rankin。

我来自 Mac 背景,最初学习 Bash 对我来说是一个弱点,但 Kyle 的专栏教会了我足够多的知识,让我有信心做以前从未考虑过的事情。 我感觉我现在真正拥有了自己的机器,这很大程度上归功于 Kyle 的经验以及他出色的写作风格。

事实上,我最近决定在我的办公室安装一台实验服务器,所以当然,我的首选是 Kyle 的《Official Ubuntu Server》书籍 —— 和他的专栏一样出色。

非常感谢 Kyle 和《Linux Journal》的其他人员,他们帮助我从一个完全新手变成了一个感到自信和胜任的人。 你们是最棒的!

PS:感谢您赞助 SCaLE 9x。 我喜欢这次会议,并且我真的很感谢《Linux Journal》在支持它方面发挥的作用。

——
Richard Gaskin

是的,我们也喜欢 Kyle。 就他的书而言,我已经做了 15 年以上的 Linux 管理员,我仍然经常参考他的《Official Ubuntu Server Book》。 这提醒了我,我仍然需要让我的第二版签名。——编者。

更多关于 Paul Barry 的 “Python for Android”

我真的很喜欢 Paul Barry 的 “Python for Android” 文章。 不过,在阅读过程中,我想到了 Paul 如何让读者两次开发该程序 —— 一次是在通用计算机上运行以进行概念验证,另一次是添加 Android UI 并删除调试打印语句。

一旦程序员比 Android 更熟悉 Python,我认为拥有一些测试工具来处理整个程序,同时在模拟器外部进行开发可能会有所帮助。 我将这个名为 android.py 的模块放在我的开发目录中

class Android (object):
   '''Emulate android API without android.'''

   def __getattr__ (self, name):
       '''Presume that unknown attribute requests are for methods.'''
       def log_method (*args, **kwargs):
           print 'Android.%s ::' % (name,), args, kwargs
       return log_method

   def dialogGetResponse (self, *args, **kwargs):
       class DGR (object):
           def __init__ (self, result='???'):
               self.result = result
       print 'Android.dialogGetResponse ::', args, kwargs
       return DGR ('OK')

这会跟踪大多数 API 调用以及给定的参数。 dialogGetResponse 是专门组合在一起的,以防止 LJapp.py 失败。 在普通的非 Android shell 会话中使用 android.py 运行 LJapp.py 会得到

mwilson@tecumseth:~/sandbox/android-app$ python LJapp.py
Android.makeToast :: ('Hello from LJapp.',) {}
Android.dialogCreateSpinner :: ('LJapp', 
 ↪'Checking the price of coffee...')
{}
Android.dialogShow :: () {}
Android.dialogDismiss :: () {}
Android.vibrate :: () {}
Android.dialogCreateAlert :: ('The current 
 ↪price of coffee beans:',) {}
Android.dialogSetItems :: ([5.1900000000000004],) {}
Android.dialogSetPositiveButtonText :: ('OK',) {}
Android.dialogShow :: () {}
Android.dialogGetResponse :: () {}
Android.makeToast :: ('bye',) {}

当然,在 Python 中,测试框架和测试驱动开发是非常重要的; 与开发者很快将要做的相比,这只是小儿科。 我觉得无论如何都很有趣。

——
Mel Wilson

Paul Barry 回复: 感谢您发送此内容。 这是一段非常酷的代码。 我可以建议您注册 SL4A 邮件列表,并将此脚本与经常访问该列表的开发者分享吗?

加载 Disqus 评论