跳到主要內容

2011 Linux Journal讀者最佳軟體票選


2011 Linux Journal讀者最佳軟體票選

1. 最佳Linux套件: Ubuntu, 亞軍: Debian.
2. 最佳Netbook或低階硬體的Linux套件: Ubuntu Netbook Remix. 亞軍: Android與Debian(平手)
3. 最佳行動裝置作業系統: Android. 亞軍: MeeGo.
4. 最佳桌面環境: GNOME. 亞軍: KDE.
5. 最佳Web瀏覽器: Firefox. 亞軍: Chrome/Chromium.
6. 最佳 E-mail 軟體: Thunderbird. 亞軍: Gmail Web 軟體.
7. 最佳 IM 軟體: Pidgin. 亞軍: Skype.
8. 最佳 IRC 軟體: Pidgin. 亞軍: X-Chat.
9. 最佳 微博 軟體: Gwibber. 亞軍 Choqok.
10. 最佳 辦公室套件軟體: LibreOffice. OpenOffice.org

11. 最佳 單一 Office 程式: OOWriter. 亞軍 AbiWord.
12. 最佳 數位相片管理工具: digiKam. 亞軍: Picasa.
13. 最佳 圖形設計工具: GIMP. 亞軍: Inkscape.
14. 最佳 音效工具: Audacity.
15. 最佳 音樂播放器: Amarok. 亞軍: VLC.
16. 最佳 多媒體播放器: VLC. 亞軍 MPlayer.
17. 最佳 Bookmark 同步工具: Firefox Sync. 亞軍: Chrome Bookmarks.
18. 最佳 線上協同工具: Google Docs. 亞軍 Wikis.
19. 最佳 雲端檔案儲存: Dropbox. 亞軍 Ubuntu One.
20. 最佳 孩童應用程式: Tux Paint. 亞軍: GCompris.
21. 最佳 遊戲: World of Goo. 亞軍: Battle for Wesnoth.
22. 最佳 監控解決方案: Nagios. 亞軍: Open NMS.
23. 最佳 資料庫: MySQL. 亞軍: PostgreSQL.
24. 最佳 備份方案: rsync. 亞軍: tar.
25. 最佳 虛擬化方案: VirtualBox. 亞軍: VMware.
26. 最佳 版本控制系統: Git. 亞軍 Subversion.
27. 最佳 開源組態管理工具: Puppet. 亞軍 OpenQRM.
張貼留言

這個網誌中的熱門文章

Portable Python

我常常需要把Python寫的script帶到其他電腦使用,因此,一個免安裝,可攜帶的Python就顯得十分重要。最近看過了幾個可攜式Python的方案,下面這個PortablePython是我覺得最合我意的方案。因為它提供了大部分會用到的Python module及工具,甚至連wxPython及PyGame也有。同時也有好用的Python編輯器PyScripter。所有開發Python所需的開發工具都一應俱全了!把它放到隨身碟中,就不用到處幫人安裝Python了。

PortablePython: http://www.portablepython.com/

解決Python script無法在cp65001的console下執行的問題

你是否有這樣的經驗,明明沒問題的script,拿到某的電腦一直看到下面的訊息而無法執行。
LookupError: unknown encoding: cp65001 cp65001是什麼鬼!?其實,它就是UTF8阿!只是,Microsoft喜歡叫他cp65001(code page 65001號)。附帶一提,我們常用的Big5是cp950。想要知道你目前所使用的code page可以在Windows的console視窗執行

一個Python程式可幫檔名加上日期與時間

很多時候,我們希望能夠將檔案或是目錄名稱加上一個時間及日期,以便release。所以,我就寫了一個小小的程式來達到這個目的。我把這個程式貼上來,讓有興趣的人可以拿去使用。
--
#!/usr/bin/env python
# -*- coding: ascii -*-
"""
Usage: cfgfn.py [filename or directory list]
"""
import sys
import os
import time
import re
import glob

ro = re.compile(r'(?P<FN>.*)-[0-9]{8}-[0-9]{4}(?P<EXT>.*)')

for fnl in sys.argv[1:]:
for fn in glob.glob(fnl):
mo = ro.match(fn)
if mo:
pre = mo.group('FN')
ext = mo.group('EXT')
else:
pre, ext = os.path.splitext(fn)
newFn = pre + time.strftime('-%Y%m%d-%H%M') + ext
os.rename(fn, newFn)
print 'Rename %s -> %s' % (fn, newFn)