读者来信

作者:Staff

读者来信

计算器

感谢 Dave Taylor 在 2007 年 12 月刊 LJ 中撰写的“Work the Shell”专栏。我从中学习到了一些新知识。说实话,LJ 中的大多数文章都与我无关,但当我看到 Dave 的专栏时,我会放慢速度并认真阅读。

Dave 没有提到,但他肯定知道 calc (isthe.com/chongo/tech/comp/calc) 吧?这是一个非常强大的命令行计算器,我经常使用。

为了充分公开,Landon Curt Noll 恰好是我的私人朋友,他在我认识他很久之前就编写了 calc。请继续在 LJ 中保持您的工作。


Bob

戴尔 Linux 系统

戴尔 Linux 系统销量疲软,我对此负有部分责任。我刚刚购买了一台略微升级的戴尔 Inspiron 530,价格为 579.75 美元,预装 Windows XP,我将在收到它的当天重新格式化并安装 Linux。

我考虑过购买相同的 FreeDOS 或 Ubuntu 版本,但它们要贵几百美元,因为它们只提供 150 美元的折扣,而不是 Windows 提供的 360 美元折扣!

当 Linux 或 FreeDOS 机器比 XP 机器贵 210 美元时,戴尔肯定有问题。


Stanley Miller

感谢游戏

感谢您在 2007 年 12 月刊 Linux Journal 中刊登的三篇游戏文章。我很高兴看到 Linux 游戏领域的进步。游戏是我仍然在电脑上保留 Windows 分区的唯一原因。最好的第一人称游戏仍然只在 Windows 上 (BioShockOblivion 等等)。幸运的是,我最喜欢的策略游戏确实有 Linux 版本:Dominions 3 (www.shrapnelgames.com/Illwinter/Dom3/1.htm)。


Richard

请增加更多商业内容

我最近在 www.linuxjournal.com 上浏览了 Linux Journal 的存档文章,我注意到过去一两年,针对商业 Linux 用户的文章数量有所下降。最近的文章更多地关注家庭和教育用户以及开发人员,而不是商业管理员。

我理解在目标受众之间找到平衡是很困难的,但作为一家中型企业的信息技术部门经理,我希望更多地关注商业管理方面的内容。我正在寻找能够为我提供关于 Linux 如何以及在何处对我的组织有用的良好、详细建议的文章。阅读一篇关于瘦客户端、LTSP 以及两者如何在学校实验室环境中为学生一起使用的文章很棒,但我没有大型实验室环境,没有各种人在整天进进出出地使用相同的机器。我拥有隔间,相同的人每天都坐在相同的办公桌前,使用 Microsoft Office 和 Visual Studio 等商业应用程序。能否提供一些文章告诉我如何实施 OpenOffice.org,而不会让我的用户生气,也不会使与所有使用 Microsoft Office 的客户和供应商进行交互变得不可能?能否提供一些文章介绍将 Microsoft Access 数据库(我非常宽松地将“数据库”与“Microsoft Access”一词结合使用)迁移到带有 Web 界面的开源 RDBMS 系统的方法?重点关注企业 ERP 系统的文章?当然,我并不是建议您将注意力完全或主要地转向商业用户(除非,当然,您想另行出版 LJ),只是希望您将一些关注点带回该领域。此外,我意识到 Doc Searls 有他的“Linux for Suits”专栏,但当我读到它时,它似乎更像是报纸的社论版,而不是在商业环境中实施 Linux 的实用指南。

最后,由于我在 LJ 中读到了一些关于 Novell/Microsoft 协议的社论评论,我不得不对这笔交易发表一些看法。我理解各地 Linux 纯粹主义者对 Microsoft 的强烈反感,我意识到这当然不是理想的情况,并且我理解人们对这笔交易持谨慎态度并说:“Microsoft 这次会耍什么花招?” 这完全可以理解。但是,正如我之前所说,我管理着一个 IT 部门,Novell 正在帮助我在 Microsoft 许可方面节省大量资金,并且在不久的将来为 Microsoft 软件的替代品提供了一些非常有希望的前景,以及 Microsoft 软件和非 Microsoft 软件之间更具互操作性的系统的前景。当然,我也对 Microsoft 在这笔交易中看到了什么持谨慎态度,但我也是一位非常满意的 Novell 客户,并且看到了他们的产品在至少成为走出 Microsoft 世界并进入开源世界的门户方面的巨大潜力。


Nick Couchman

感谢您的评论 Nick,我们将尽快尝试收录更多以商业为导向的文章。

确定性

我喜欢 Roman Shaposhnik 在 2007 年 11 月刊 LJ 上发表的文章“Roman 定律和使用多个 CPU 核心进行快速处理”,但他对一个具有重大未来影响的问题只是略微提及。问题不是寻找使线程更具确定性的方法;问题在于我们假设计算机应该是确定性的。对确定性的依赖适用于在 8 个、16 个甚至 256 个核心上进行处理,但是 256,000 个核心呢?或者 2.56 亿个核心呢?由于错误和故障导致元素闪烁进出,这些创造物最好被想象成统计系综而不是简单的机器,无论创建了多少 OSI 类层。作为开发人员,您可以习惯于找出并行环境中出现的陷阱的方法,但如果工具和见解基于错误的基础,那么工具和见解的发挥空间就有限。在未来的某个时候,我们需要用贝叶斯置信度来代替布尔值的是或否。软件社区已经开始在像网格这样的松散耦合聚合中尝到这种滋味,但还有更多、更多的事情即将到来。


Jon Dunfee

困惑

多年来,我一直是 Linux Journal 的读者,并且在每期中都能找到一些乐趣。然而,我对你们在 2007 年 11 月刊中收录 Sandeep Sahore 关于他的程序 showdate 的技术技巧感到有些困惑。

尽管确定过去和未来的日期确实非常有用,但 showdate 完全没有必要,并且正如作者自己承认的那样,它存在缺陷且怪异。

请允许我介绍 GNU date,它包含在我使用过的每个 Linux 发行版中(源代码自然适用于您最喜欢的 UNIX)。为了您的读者的利益,我复制了 showdate 技术技巧中的示例,并添加了一些示例。

十年前的日期

$ date --date="10 years ago"

与上面相同,以 epoch 秒为单位

$ date --date="10 years ago" +%s

从现在起五年零两个月零 23 天后的日期,格式为 YY-MM-DD

$ date --date="+5 years +2 months +23 days" +%y-%m-%d

使用 date,当您在一个命令中组合 + 和 - 时,它会做正确的事情(与 showdate 不同)

$ date +%y-%m-%d
07-12-05 (now)
$ date --date="-5 years +2 months +23 days" +%y-%m-%d
03-02-28 (2 months and 23 days after 5 years ago)

安排一个在 12 分 35 秒后运行的 at 作业

$ at -t $(date --date="+12 minutes +35 seconds" +%Y%m%d%H%M.%S)

Date 不会被大数字破坏

$ date --date="+1000 years"
Sat Dec  5 16:41:40 EST 3007
$ date --date="+10000 years"
Wed Dec  5 17:01:17 EST 12007

Date 也理解周

$ date --date="+3 weeks"

Date 更加灵活,例如,以下所有内容都有效

$ date --date="yesterday"
$ date --date="tomorrow"
$ date --date="last thursday"
$ date --date="+2 weeks yesterday" (two weeks from yesterday)

公平地说,像许多 GNU 程序一样,以上很多内容仅在 info 页面(而不是 man 页面)上记录。


Joshua

关于技巧的另一个技巧

这是对 2008 年 1 月刊第 92 页上的技术技巧“在不丢失输入顺序的情况下删除未排序文本中的重复行”的回应。如果您安装了 Perl(大多数发行版都安装了),您可以这样做

$ perl -ne'$x{$_}++||print' /tmp/numbers



John W. Krahn

Bash 也能做到

我很惊讶和沮丧地看到 Dave Taylor 在他 2008 年 1 月的“Work the Shell”专栏中求助于 Perl 来将字母映射到数值。他表示 shell 不能轻易做到这一点:“如果没有付出非凡的努力,我无法想象有什么办法。”

不需要 Perl;bash 可以轻松地做到同样的事情

ordvalue=$((`printf "%d\n" "'$letter"`-96))



Russ Turner

Dave Taylor 回复: 酷。我不知道你可以这样做!

获得线索

Mick Bauer 在 2008 年 1 月刊 LJ 中的专栏“使用 WebGoat 获得线索”缺少一些线索。在使用 Ubuntu 7.10 进行了一些试验和错误后,我找到了所有“Gutsy”线索。Bauer 先生让我对设置 JAVA_HOME 变量感到困惑。QRG 是

$ sudo apt-get install sun-java5-jdk
$ export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun-1.5.0.13
$ wget http://webgoat.googlecode.com/files/
↪Unix_WebGoat-5.0_Release.zip
$ unzip Unix_WebGoat*.zip
$ wget
http://downloads.sourceforge.net/owasp/
↪webscarab-installer-20070504-1631.jar?modtime=1178324741
$ java -jar webscarab-installer-20070504-1631.jar
$ java -jar "/home/username/WebScarab/webscarab.jar"
$ sudo sh ./webgoat.sh start80

杀不死我的东西会让我更强大。

附注。我喜欢(希望是有意的)WebGoat 安装了 Tomcat,并且在同一期中,Alan Berg 撰写了一篇关于 Apache 和 Tomcat 效率技巧的文章,标题为“使用 Tomcat 和 Apache 将静态内容与动态内容分离”。由于我对 Tomcat 的第一次使用是 WebGoat,因此在本期稍后提及 Tomcat 让我有机会进一步探索 Tomcat。太棒了。


sbaker813

Iceweasel 澄清

在 2008 年 1 月刊 Linux Journal 中,Kyle Rankin 撰写了一篇关于匿名 Web 浏览的文章。尽管他的大部分内容似乎是准确的,但我注意到在关于 Knoppix LiveCD 的一个参考中存在一个相当大的错误。他将 Iceweasel 称为“Firefox 在 Knoppix 上的名称”。这是不准确的。Iceweasel 是基于 Firefox 的分支浏览器,最初由 Debian 发行版构建。Iceweasel 解决了 Firefox 浏览器中存在的非自由问题,因为如果发行版对 Firefox 浏览器进行任何更改,则无法使用 Mozilla Firefox 名称或徽标重新分发该浏览器。


Christer Edwards

GRUB 安全

我喜欢 Jeramiah Bowling 在 2008 年 1 月刊 Linux Journal 中发表的“Linux 安全之道”一文。但是,我确实对作者有一个小建议。他建议通过在 GRUB 配置文件中的 timeout 行下方添加以下内容来为 GRUB 引导加载程序设置密码password yourpasswordhere尽管这在技术上是准确的,但如果我们追求安全性,让我们尽量不要将密码以明文形式随意放置。

大多数主要发行版都应附带grub-md5-crypt命令,该命令允许您为 GRUB 引导加载程序生成 md5 哈希密码短语。我建议任何应用 GRUB 安全模型的人都应使用此工具生成 md5 哈希密码,并通过以下语法使用它password --md5 pasteyourmd5hashhere.


Christer Edwards

更多 Work the Shell 技巧

在 2008 年 1 月刊 Linux Journal 中,Dave Taylor 正在思考“如何在 shell 脚本中逐字母遍历单词”,以及后来的“如何将字符转换为相应的数字代码”。这是方法(bash)

in=linux
while [ -n "$in" ]; do
   val=$(($(printf %d '"'${in:0:1}) - 96))
   echo "... letter ${in:0:1} has value $val"
   in=${in:1}
done

至于同一篇文章后面使用的 Perl 代码,从字符串中获取相应字节代码列表的最简单方法是使用带有 C* 或 c* 模式的 unpack。因此,以下 Perl 代码给出了他想要的结果

@values = map {$_ - 96} unpack "C*", "linux";

相应的“字母键”列表将通过以下方式生成split //, "linux";。当然,可以使用变量代替文字字符串。


Michal Jaegermann

加载 Disqus 评论