Sparkle

| No Comments
终于基本实现了我一直以来十分需要的,一个可以帮助自己记忆单词的软件。

Sparkle

web端服务使用Karrigell,数据库使用Karrigell内置的buzhug数据库

screenshot of sparkle

我需要这个工具的原因,是因为我一直以来是一个忠实的《词汇大爆炸》用户(该软件已经停止开发),自从2004年以来已经累计使用它背了几百个小时的单词,从中获益菲浅。可以说《词汇大爆炸》是使用ubuntu之后,要使用Windows的唯一理由。

我曾经的计划是做一个《词汇大爆炸》的clone,发现自己水平可能比较难做到。在这种类别的开源软件里面,我还没有找到比较像《词汇大爆炸》这样的(惭愧,还没有用过黑客背单词)。后来觉得只要有一个可以基本帮助自己背不熟悉的单词的东西也就可以满足了。于是在开发tarsusa的同时,这个东西其实已经在着手准备,只是自己一直都没有下定决心一口气做出来。

前 一阵想把台式机上面许久不用的Windows重新安装一下,没想到安装过程中CPU过热会导致频繁关机,并且由于安装程序重写了主引导区,我还需要费时恢 复GRUB...... 这促成了我和Windows说拜拜并且写完sparkle的原因。具体到架构如何实现、使用什么界面形式这些问题在我脑海中已经构想了许久,所以大约两个 晚上就写了出来。

sparkle总体的结构:一个单词数据库记录平时遇到的不认识的单词(我已经积攒了一段时间了),然后像词汇大爆炸那 样,依据用户对单词的熟悉程度,随机抽取单词和解释,由用户进行选择形式的做答,用户较熟悉的单词会较少出现,不熟悉的单词会经常出现,以此达到学习的目 的。

当然这个程序还远没有《词汇大爆炸》那种规模,没有应用艾宾浩斯记忆曲线原理,也没有针对用户行为的、更细致的词义混淆等等,还只是 一个简单的小程序。目前通过web界面来实现,但事实上并不局限于web界面,实际上任何连入网络能够执行Python程序的平台都有可能实现。比如可以 执行Xbox Media Center的破解版Xbox,甚至是Symbian S60 Smartphone。我希望能够有时间、有精力、有技术来实现以上那些功能。

去年的这个时候,也是使用同样的工具完成了自己需要的日程管理软件tarsusa,若问我用最好的语言Python完成这些简单的工具是什么感觉,那只有简单的一个字,爽。

参考阅读:
    《tarsusa Release RC》

CMS Made Simple 安全技巧

| 1 Comment
上次说到自己使用建立的CMS Made Simple建立的一个站点被黑了,由于之前没有做好充足的应付这种事件的准备,用了近20个小时才恢复。通过这次事件,自己吸取了沉痛的教训,并且在CMS Made Simple建立的站点的安全性方面,也有了一定的了解;现通过自己的经验以及从CMS Made Simple论坛中学习到的一些东西,整理出几条CMS Made Simple安全技巧:

    1. 足够安全的用户名和密码

          说来好笑,仔细想来,自己站点被黑,密码过于简单其实是直接原因...... 请大家不要使用username:admin password: domainname 这样的密码,设置这样的密码与直接开放后台给公众是一样的。
          尽量不要把管理员的用户名称设置为Admin;六位数的密码被证实安全性已经不像原来那样高了,替换成八位数以上的吧。

    2. 在Config.php中更改Admin目录

          绝大多数由CMS Made Simple建立的网站,在其URL后面加上/admin都会出现未经修改过的CMS Made Simple Login画面,如果存在较严重的漏洞或者遇到好奇心极强的破坏者,岂不是相当于"Welcome to Hack into it!"。我们可以通过修改在config.php里面的

          #Name of the admin directory
          $config['admin_dir'] = 'admin';

          这一项,将admin换成你设想的富有想象力的组合吧,同时也不要忘了把admin/目录改成相应的名字。这样,你至少又给蓄意破坏者增加了一道障碍。

    3. 定期、及时备份数据库

          这一条看似多余但是绝对值得再三强调。天有不测风云,谁又能预知网站将要出什么问题呢?主机停机、非法入侵、文件丢失、数据库损坏、域名无法解析、GFW 都不是不可能发生的事,手头有份备份总要踏实许多。否则,就象曾经幼稚的我那样疯狂使用Google Cache吧......
          备份CMS Made Simple的网站还是非常方便的,只消备份该Installation中使用的那个数据表就可以了,模板、内容、模块设置等信息均包含在里面。CMS Made Simple可选装的模块里也有用于备份数据的模块,可以分别备份不同类型的数据。另外很多数据如模板、模块等也是可以导出成为XML文件的,总的来说, 备份并不麻烦。
          使用软件或后台备份数据库均可,我在使用mysqldumper,很好用,就是在加密上有一点点小问题。最后,不要忘了把数据在本地再备份一份。

    4. 及时将CMS Made Simple更新到最新的版本

          在写这篇文章的时候,CMS Made Simple的最新版本为1.1。在1.0.x的版本阶段,虽然不断有漏洞发现,但是开发团队都以极快的速度推出新版本以填补漏洞。之后的版本据称安全性 有了很大提升,建议大家都更新到最新版本。需要注意的是,在更新版本之前,请备份数据!因为很可能会有一些模块不兼容的问题导致一些功能不能正常工作。
           News模块不工作的情况较为常见,解决方法也很奇怪,在模块管理中将其卸载然后再装上,一次或反复几次就可解决问题。供遇到这样问题的朋友参考。

    5. 文件/目录权限777 or 775 or else 的争论

          在论坛上,有的人认为在安装时需要对
  • tmp/templates_c
  • tmp/cache
  • uploads
  • uploads/images
  • modules
          这几个目录设置777权限以安装提出了质疑。认为这可能带来潜在的安全隐患,并建议大家将其设置为775

          原帖 - Security impacts of chmod 777

          我认为最终kermit给出的答案还是比较合理的,即:安装程序的确需要这几个目录的权限为777,但是出于安全考虑,可将这些目录中的文件权限设置为666,并且把config.php的权限也设置成为666。
          虽然可能这个并不构成问题,但是权限问题的确可能会构成很大的隐患,不可小视。


以上给出了一些CMS Made Simple安全方面简单的一些技巧。文章的内容十分初级,毕竟我也只是个这方面的新手。但是我认为这些问题都不可小视,毕竟这些都是前车之鉴。如果您认为有需要补充或不对的地方,欢迎来信告诉我。


相关阅读:
优秀的轻量级内容管理系统: CMS Made Simple - 一篇关于CMS Made Simple的很好的介绍
《CMS Made Simple的几点技巧》 - 在使用CMS Made Simple架设站点的过程中,可以应用的一些技巧

最后的一个暑假

| No Comments
这个暑假的一部分的精力放在一个Web项目上。从开始到现在规模已经比预想的要膨胀许多,使用到的东西从HTML、CSS、Javascript 直到后来的 PHP、Smarty,紧迫性的任务让我体验了快速应用一种从前没有接触过的编程语言快速投入开发的经历,得益于自己对于编程的不成章法的基础知识,结果也还算是比较满意。作为一个技术外包来做一个完整的项目,最让我头疼的还不是程序,而是UI。自己暗暗决定如果以后还做的话,无论怎样也要把UI再包出去 才好。(也希望有感兴趣的朋友联系我)随后的任务就是把Stage1阶段的成果做成一个Bundle给用户做展示,需要施展三寸不烂之舌的功夫、极大的耐 性、以及接受客户狂批的准备才行。
以上的事情占去了不少时间。而结果通常都不算非常令人满意:客户需要在某个门户网站的页面上做链接,如果该门户 网站不同意(很有可能),那么整个项目也可能就废弃了...... 重大的技术难关克服以后,居然要面对这样的问题。自己努力目标能否实现居然取决于门户网站上的一个链接,些许讽刺。我想这或许也就是大权力对小命运的影响 映射在周遭生活中的一个写照吧。然而影响更大的事情都很多,不是么?(参考阅读

剩下的一部分时间,交给自己:去看了几乎所有能在网络上找到免费电影专场,这些欧洲国家资助的文化活动的确能让别人对他们的文化和语言产生不少兴趣;在看电影回来的路上走遍那些还不熟悉的大街小巷并全部记住它们;用Python写能帮助自己生活的程序;一张一张得看那些已经堆得好高的没看的DVD;读从图书馆借的小说;虽然看来时间比较紧凑,还是抽空学了些英语,不让自己留遗憾。

最后一个暑假,就这样吧。我知足了。

Find recent content on the main index or look in the archives to find all content.

OpenID accepted here Learn more about OpenID