linux 邮件 日程,Linux小型日程表挑战大型群件

#htpasswd-c./htpasswdseebsNewpassword:Re-typenewpassword:Addingpasswordforuserseebs

-c选项让htpasswd创建一个新文件。当创建另外的用户时不要使用它;否则,只有最新的用户才能够登录。完成后,尝试访问页面将会要求输入口令。给出用户名和密码,然后就能进入了。$REMOTE_USER将被设置为用户名,以使得脚本可以知道谁在使用它们。

我不喜欢漫长的告别

于是,您可以登录进入。不能登录出去——出于未知的原因,多数浏览器通常不允许刷新所请求的用户名/口令组合的内存。可以刷新cookies,可以刷新缓存——但是浏览器可能仍然认为它知道您要做什么。

所以,如果登录到公用的计算机,那么在离开之前一定要关闭整个浏览器。否则,人们可能碰巧会看到您的家务杂事列表,而不是他们自己的,这样就会出笑话了。如果这确实是个问题,那么可使用cookies.

尽管如此,这使得系统允许用户使用他们自己的用户名登录,对于让用户添加记录来说就足够了。只要有添加记录的途径!

#p#分页标题#e#

室友记录

实现此目标的基本概念很简单:公开地张贴有时间标记的消息,用户可以读取。Berkeleymsgs工具刚好是所需的复杂程度(也就是说,几乎根本就不难)。每个文件将包含一个名称、一个时间标记以及一些文本。系统将向用户显示特定时间段的消息,或者将用户最后一次访问之后张贴的消息显示给他们。

要读取的消息的数目应该暂时不重要,所以我将使用最简单的所有文件格式:目录中的全部文件,每个文件中,第一行是一个时间标记和一个用户名,然后是一些文本。这甚至不需要为文件准备数据库;文件系统的灵活性就足够了。(您可能会问我为什么不直接使用文件系统中的时间标记;答案是我并不相信它,因为粗心的用户会破坏它。我的很多目录中所有的文件都拥有相同的时间标记。)我确实需要某种类型的数据库,用于用户以及他们的最近的时间标记,所以每个用户都将拥有一个数据文件,现在其中包含有一个时间标记。

整个项目很小,只使用一个CGI脚本就可以借助Perl的标准CGI模块来实现。目标是折衷所需附加代码(尽可能少)以及所需开发时间(尽可能短)。在本例中,系统所附带的功能是足够的。

/var/www/msgs是一个新目录,用于保存消息(以数字命名的文件)和用户记录(使用.htaccess文件中给出的用户名作为文件名)。CGI脚本会识别自身,执行被请求的动作,并展现出相当简单的界面;它所需要的只是一些按钮和一个文本区域。为了表示尊敬,这个脚本命名为msgs.cgi.

开发过程中涉及了一些设计方面的考虑。

甚至不需要去解析日期,因为在大部分情况下可以简单地让用户使用按钮(最近24小时、上一周、自上一次访问,以及所有消息)。

以数字为名称的文件可以简单地由内置的glob来识别,它能够方便地整理文件。不过,如果数字的位数发生了变化,整理就会发生错误,所以要给出前导的零。

脚本并没有精心地去分辨主题,而只是为每条消息的第一行使用了H3标签。

程序假定输入消息的全部HTML都是没有恶意的。如果室友没有足够的幽默感,那么用户在写入时应该仔细检查。

这个脚本非常短小,只有2K多一点。不过,它也有潜在的开销,因为CGI库实际上很大。但是相对于更大的系统,它还是非常小的,而且它提供了一个适当的途径让用户张贴消息并让其他人方便地进行查看。

图1.尽管针对室友的记录的实现方法发生了变化,但其基本特性没有发生变化

可能以后会开发某些方法来指定时间范围或搜索函数。最好也要有删除较老消息的方法。

虽然如此,相对于贴在冰箱上的淡黄色便笺,这是一个可靠而实际的创新。

谁知道Sam去哪儿了?

偶尔室友的问题会是他们到底去哪里了。我并不是要讨论,当要付房租或者分担公共费用时,某些人却不得不离开房间——而只是说某个人,比如一个朋友,打电话过来问“您知道他在哪儿吗?”或者“您知道他什么时候回来吗?”

要说有什么不同之处,那么就是这个脚本更短小,写起来更简单。遵循相同的基本方法:只需要创建名字为用户名的文件,其中包含有时间标记、可能要离开多少小时以及简短描述。然后,每找到这样一个文件,打印一个简要描述。

“I'mback!”按钮会删除那个文件,因为可能人们并不需要知道您曾经在哪儿(如果有意外,这有助于证明您不是帮凶)。与之相对照,能知道某人曾经要去哪里是有用的,所以文件不会因为变成老文件而被删掉。

我觉得一个好的、简单的群组日程安排软件非常类似于HarryPotter丛书中Weasley的起居室里的那个时钟。它有九个黄金指针,每个上面刻有一个家庭成员的名字。边缘上没有数字,而是标记为位置和状态——家、工作、学校、旅行、走失、致命危险,等等。(还有一个厨房时钟,它有一个指针以及“timeforthis”和“you'relate”标记。)

#p#分页标题#e#

日程计划任务

所需要的最后一件事情是日程计划。我们如何处理家务事的常规提示?轮到谁来洗衣服?轮到谁来涮碗?不需费力就可以定期地安排这些任务。

处理垃圾可能对每个人来说都是琐碎的工作,但是我们所需要的只是张贴公开提示的某种方法。现在您应该对此有了一些想法。当然是使用另外一个脚本以及它自己的自定义数据库文件。

只是目前还不需要它。这个项目的难点在于调度任务。要编写能够表达类似于“everyThursdayistrashnight”或“someoneneedstodothedisheseverynight”等想法的代码一点都不简单。

不过这些代码已经编写好了,叫做cron.我们所需要的只是公布消息的某种途径。可以知道,为本月项目的第一部分已经编写的消息程序,可以正确地满足我们的要求。为消息目录赋与写权限(例如,root有令人羡慕的特权),尝试这个命令:

$REMOTE_USER=bob/var/www/htdocs/msgs.cgi"action=PostMessage""message=Testmessage"

现在,去查看那些消息。很酷,不是吗?已经能够通过运行命令添加新消息,也就是说cron(可以根据日程安排运行命令)满足了我们全部的需求。

有一个小型的Web界面来创建这些任务可能会更好,但是由于这些东西很少修改,所以可能并不需要。这将处理所有需要常规提示的任务。不需要常规提示的任务可以手工输入,或者使用at(1)设置为在适当的时候输入。

总结与说明

本月支出为$0,这非常好。没有进行任何下载,只是要在本地进行一些输入。应用程序有一些简单,但是它们能完成应该做的事情,而且代价低廉。

进一步讲,它们足够简单,能方便地更新。最大的弱点是安全性;没有投入任何精力来保护这些程序不受最常见入侵的危害。其中一方面原因是,在大部分情况下那不是个大问题。

不过,如果您计划与懂技术的室友一起使用这些,那么有很多种方法可以让程序更加安全。例如,如果不允许通过命令行运行msgs.cgi脚本,那么需要考虑使用另外的方法来调度任务。(实际上有一个非常简单的方法,就是使用命令行浏览器以及精心构造的URL,这些留给读者去练习)。

古老的机器的下一篇文章:使用Web页开灯。可用的x10硬件和Linux驱动程序使得我们能够完成所有那些有用的事情,比如在起床前半小时打开咖啡壶(coffeemaker)。

上一页[1][2][3][4]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值