Author Image 開放原始碼技術文件網

C 語言、Objective-C、Golang、資料結構、網頁程式

Perl programming can be done in imperative, objective and functional styles. However, Perl lacks direct support in logic programming. Prolog is a logic programming language, popular in the fields of natural language processing and artificial intelligence. AI::Prolog is where Perl and Prolog cross. AI::Prolog is a Prolog compiler written purely in Perl and, optionally, comes with aiprolog, a interactive Prolog interface. The module is easy to use if you know 繼續閱讀

In Perl, you do not need to declare the type of a variable in advance. Sometimes, it is confusing because you do not know the type of the variable and you do not know what method to use. By using ref with a object, you can know the class (or type) of the object. Say we want to extract some data from some xml files. XML::LibXML is Perl binding for 繼續閱讀

Since hash is a one-way relation, you cannot directly sort by hash values and get hash keys in Perl. However, by customized sort subroutine, you can also sort by hash values. This post shows the trick. You still need hash keys for later use, so we sort hash keys here. The catch is in the by_value subroutine. Here we pass $a and $b to the subroutine and compare them by 繼續閱讀

Coherent PDF Tools is a command line PDF tool for Windows, Mac and Unix. It is free for non-commercial use. I wanted to remove all bookmarks in the PDF file and re-edit them and Coherent PDF Tools can remove all bookmarks in single command. After some try, it simply worked. Here I introduce how to edit bookmarks with Coherent PDF Tools. This tutorial was tested on OS X 10.9. Coherent 繼續閱讀

If we want to convert comma- or space-seperated text files to Excel ones, we have to open Excel and do manual conversion. Is there automatic way to do batch conversion? Of course, you can do batch conversion without opening Excel with Data::Table::Excel. Data::Table::Excel is a Perl module to convert between Data::Table objects and Excel (xls/xlsx) files. Data::Table reads CSV, SQL database and Excel files and converts them to CSV, HTML 繼續閱讀

For GUI mac software, AppCleaner is an easy way to safely and cleanly uninstall it on Mac. However, there is no easy method to uninstall PKG packages on Mac. I have written a small script to uninstall PKG packages on my homebin repo. You can easily download it with curl or wget. $ curl > removepkg $ chmod +x removepkg $ mkdir /usr/local/bin $ mv removepkg /usr/local/bin The script 繼續閱讀

Although some system package managers on Linux or Unix provides Ruby gems as package, you still want to gem to install updated or specific gems sometimes. One popular way is using RVM, a command-line tool which allow you to manage multiple Ruby environment. Nevertheless, if you do not need multiple Ruby versions in one system, you may also choose to install Ruby gems to local directories like home directory. By 繼續閱讀

Some people might prefer keyboard strokes over mouse clicks. Some people may miss convenient Emacs-style keybindings. Although we cannot do everything in Emacs, we can surf the Net in Emacs fashion with KeySnail. KeySnail is a Firefox extension for Emacs-stype keybindings. With KeySnail, you can scroll web pages down and up with Ctrl-v and Meta-v and edit text like using Emacs. There are some plugins for KeySnail to enhence its 繼續閱讀 is a website where you can store and share text or code for a certain period of time. Pastebin support syntax highlight for a variety of programming language. However, it is sometimes tedious to open the website and copy-paste your code. PastebinCL is a small command line utility help you to paste text to Pastebin directly from terminal. Before compiling PastebinCL, you have to sign up a Pastebin account 繼續閱讀

If you need to develop Python 3 application in Pygame on Mac, you should have noticed that there is no official installer of Pygame for Python 3 on Mac. However, you can still install Pygame for Python 3, just via Pygame repository. If you do not want bother the details, you may use my modified Pygame formula for Homebrew to install Pygame. Remember to install HEAD version or Python 3 繼續閱讀