What’s the syntactical difference among OCaml, Scala, F# and Haskell. This page gives a side-by-side reference among OCaml, F#, Scala and Haskell: ML Dialects and Friends: OCaml, F#, Scala, Haskell
Author: Eric Ma
Eric is a systems guy. Eric is interested in building high-performance and scalable distributed systems and related technologies. The views or opinions expressed here are solely Eric's own and do not necessarily represent those of any third parties.Other Mobile Messengers Like WhatsApp
Posted onWhat other mobile messengers like WhatsApp in the market? Messneger Apps focusing on mobile phones WhatsApp: http://www.whatsapp.com/ WeChat: http://www.wechat.com/en/ Kik: http://kik.com/ Kakao Talk: http://www.kakao.com/talk/en LINE: http://line.me/en/ Other “general” messengers that also have mobile clients Google Hangouts: http://www.google.com/ /learnmore/hangouts/ Facebook Messenger: https://www.facebook.com/mobile/messenger Skype: http://www.skype.com/en/download-skype/skype-for-mobile/
How to convert A4 paper format to read on Kindle 5
Posted onKindle is good for reading. However, the A4-size technical/academic paper is pain to read on Kindle 5—the fonts are too small. The “email to Kindl” converting tool provided by Amazon usually loses the formats in the technical paper. How to convert A4 paper format to read on Kindle 5? I use k2pdfopt tool (hey, source
Read more
How to allow contributors to Upload Files in wordpress
Posted onHow to allow contributors to Upload Files in wordpress? I allow my wordpress site’s contributors to submit posts. But by default, WordPress contributors do not have the capability to upload files. How to allow them to upload files? The key to my solution to add the upload files capability to contributors in WordPress is the
Read more
Rsync with non-standard ssh ports
Posted onThis problem appears when I try to rsync directories with hosts inside a cluster used NAT for forwarding ports to internal nodes. Hence, the ssh port for internal nodes are not the default 22. So, how to use rsync with the non-standard ssh ports? The -e options of rsync play the trick very well. For
Read more
How to convert a .docx .doc MS Word file to pdf in command line on Linux
Posted onHow to convert a MS Word document file such as .docx and .doc to pdf on Linux using command line tools? Use LibreOffice: libreoffice –headless –convert-to pdf –outdir /path/to/out/dir/ /path/to/doc/docx/file While this LibreOffice answer works, the –headless option still needs as display, even though it does not use it. In otherwords, this option won’t work
Read more
How to make eps files using gnuplot
Posted onHow to make gnuplot generate eps files instead of plot the figures on screen? First, save a Gnuplot plot as a PostScript file by this commands: # gnuplot> load ‘saveplot’ # gnuplot> !mv my-plot.ps another-file.ps The saveplot file’s content: set size 1.0, 0.6 set terminal postscript portrait enhanced mono dashed lw 1 “Helvetica” 14 set
Read more
How to revert only one file back to a revision or commit
Posted onI messed up with one file in one repository and want to check out only that file back to a commit. How to achieve this? To check the file with my_file.name at git commit commit_sha1: $ git checkout commit_sha1 my_file.name You can also use the relative commit instead of commit_sha1 such as master~4, HEAD~4, HEAD^,
Read more
How to install Python environment in my own account on Dreamhost?
Posted onHow to install Python environment in my own account on Dreamhost so that my application can use the python that I installed by myself instead of the system-wide one? The post for Bluehost works very well for Dreamhost too: https://my.bluehost.com/cgi/help/python-install In short: mkdir ~/python cd ~/python wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz tar zxfv Python-2.7.2.tgz find ~/python -type d
Read more
How to change the window title font family and size in Gnome 3?
Posted onIt was ever possible to set it in gnome-teak-tool. However, in the latest Gnome 3, it disappears. Is there any other way to set it? The configuration is the org.gnome.desktop.wm.preferences titlebar-font under dconf. You can use dconf-editor to find the appropriate key entry and set it. Or use gsettings: $ gsettings set org.gnome.desktop.wm.preferences titlebar-font ‘Sans
Read more
Find broken links on my site
Posted onThere are lots internal and external links on my site. Unfortunately, some of them are broken over years. How to find out all these broken links on my site? I use this tool http://www.brokenlinkcheck.com/ which can detect the broken links well. More info here: Broken links checker for sites
How to convert a latex file to a single page html
Posted onHow to convert a latex file to a single page html? htlatex is a good choice. On Fedora, install it by yum install texlive-tex4ht. To generate the HTML page from a latex file doc.tex: htlatex doc You can use the latex2html (can be installed on Fedora by yum install latex2html). $ latex2html -split +0 -info
Read more
How to count the number of page view
Posted onI have seen the question Better way to count total page views? I think, the better way is.. We can save the number of page views in the database. It is acceptable. But, it is not fulfilling my requirement, if many different users can appear to have the same IP Address (e.g, if they are
Read more
How to automatically fill a batch of data to the PDF form
Posted onHow to automatically fill a batch of data (well structured) to the PDF form? There are lots data items, so automatically do this by a program/script is required. If you know a little bit of Python, you can achieve this in Python with some libraries. Check How can I auto-populate a PDF form in Django/Python.
Read more
How to install Scala from the official Scala distribution
Posted onHow to install Scala from the official Scala distribution? This is needed on a Linux release with older version of Scala in the repository, e.g. Fedora 12. Use the install-scala.sh script: # wget https://raw2.github.com/zma/usefulscripts/master/script/install-scala.sh # sh ./install-scala.sh VER where VER is the scala version that you want to install. First step, install and configure the
Read more
Single sign-in for social accounts for question2answer?
Posted onHow to enable single sign-in for social accounts for question2answer? These servers are required: Google, Facebook, Twitter, OpenID. This site moved from Loginza to Question2Answer Open Login which works like a charm. I use the Loginza and it works very well. For Q2A, SLonoed wrote a nice plugin for loginza. How to use it: Download
Read more
ANSI C Grammar and ANSI C Grammar Specification in YACC
Posted onANSI C is a standardized version of the C programming language that was introduced in 1989 by the American National Standards Institute (ANSI). The ANSI C standard defines the syntax and semantics of the C language, including its grammar. In this post, we will explore the ANSI C grammar in more detail. The ANSI C
Read more
SEEK_HOLE and SEEK_DATA: efficiently archive/copy large sparse files
Posted onHow to efficiently archive a very large sparse file, say 1TB? The sparse file may contains a small amount of data, say 32MB. SEEK_HOLE and SEEK_DATA The SEEK_HOLE/SEEK_DATA functionalities play the trick and makes `tar` and `cp` handle the large sparse file very efficiently. `lseek` with `SEEK_HOLE` returns the offset of the start of the
Read more
Where Does Evolution Save Its Data and Configuration Files on Linux?
Posted onEvolution is a great personal information management tool that provides Email, address book and calendar tools. Evolution provides many enterprise friendly feature such as native support to Microsoft Exchange connectivity for Emails, address books and calendars. Evolution uses various ways including plain files and dconf configuration systems. This post will give an introduction to the
Read more
How to Export an NFSv4 Server to External Networks
Posted onWe ever discussed fixing ports used by NFSv3 so that it can be easily exported to external networks. For NFSv4.1 or higher, things are much easier. The ports for mountd, statd, and lockd are not required in a pure NFSv4 environment. We have less ports to control or allow for connections. Only port 111 and
Read more