Eric is currently the co-founder and CTO of Hututa Technologies Ltd. and the father of a lovely daughter.
Homepage and projects
Eric's homepage about some of his work, projects and research:
Eric some other projects: http://www.ericzma.com/blog/projects/.
SysTutorials: Eric publishes tutorials, howtos and news on Linux, programming and more.
Highly Scalable Systems: Eric publishes tutorials, news, discussions on scalable systems.
Blog: Eric's personal blog.
Photo Gallery: Eric's photo gallery.
Contact and social networks
You can leave Eric an message by using this form or find Eric on
More of Eric's contact information: http://www.ericzma.com/blog/contact/
Bash script may need to get its own path. In normal Bash script, $0 is the path to the script. However, when a script is sourced, such as . a.sh, a.sh‘s $0 does not give a.sh while the caller’s name. How to reliably get a bash script’s own path no matter whether the Bash script […] Continue Reading »
How to set the static IP address for CentOS 7/Fedora 22+ is introduced in this post. Here, we assume the Linux is using NetworkManager to manage the network. All steps are done as root. Find the interface you want to set the address Command ifconfig -a lists all interfaces. Find the interface name to set, […] Continue Reading »
It is common to execute commands on many nodes/hosts via SSH for managing a cluster of Linux servers. On Linux, there are many choices for this task. Generally, to run commands on many nodes, there are two modes: serial mode and parallel mode. In serial mode, the command is executed on the node one by […] Continue Reading »
In Firefox on Linux Mint, Google is not in the default list of search engines. Linux Mint has its criteria for adding search engines while Google seems not in those suggested by Linux Mint because “Amongst commercial search engines, only the ones which share with Linux Mint the revenue Linux Mint users generate for them […] Continue Reading »
Linux is a great platform for software development targeting servers or backends. In general, working on Linux is very productive. The problem that beginners on Linux face is the the learning curve is steep at the beginning. But believe me, after you get through the initial green steep learning step as in the figure below […] Continue Reading »
Amazon S3 is a widely used public cloud storage system. S3 allows an object/file to be up to 5TB which is enough for most applications. The AWS Management Console provides a Web-based interface for users to upload and manage files in S3 buckets. However, uploading a large files that is 100s of GB is not […] Continue Reading »
After the post A PHP Function for Fetching RSS Feed and Outputing Feed Items as HTML was originally published, there are some updates such as adding a simple RSS feed caching mechanism and supporting scanning content parts of the feed items for images. Recently, Webucator makes a great tutorial video on introducing the RSS to […] Continue Reading »
PowerPoint uses 96 dots per inch (dpi) by default when you export a slide. The DPI of the images like .tif ones exported from PowerPoint are always 96. In the options of PowerPoint, there is a setting for choosing DPIs. However, it have no effect. For some needs like images for printing posters, larger DPIs […] Continue Reading »
As you may know, Adobe stopped supporting the NPAPI version of Flash on Linux and the latest NPAPI version of Flash player at version 11.2 released back in 2012 will only receive security fixes. Even the security fixes to the 11.2 version of the Flash Plugin your Firefox is using will end on May 4, […] Continue Reading »
SSH is a very common tool for Linux/Unix platforms. One annoying problem when using SSH is that the connection may get disconnected if the SSH connection is idle for some time under common configurations. Users may run an infinite loop like while true; do uptime; sleep 30; done when there is no work to be […] Continue Reading »
It is common practice to calculate the checksums for files to check its integrity. For large files, the checksum computation is slow. Now I am wondering why it is so slow and whether choosing another tool will be better. In this post, I try three common tools md5sum, sha1sum and crc32 to compute checksums on […] Continue Reading »
Doing actions upon changes of files and directories is very useful. Examples like compiling a project after the source code files are changed, sending emails after important configuration files are modified, building the PDF after a TeX file is modified. On Linux, the inotify-tools provide good support for trigger actions after changes. In this post, […] Continue Reading »
The hplip packages contains all the tools you need to set up the HP scanner. For scanning, you may use the sane and xsane tools. The tricky part to enable the scanner is carefully choose which driver to use from the hplip package. If you choose a non-suitable driver, only the printer will work and […] Continue Reading »
RAID systems such as MegaRAID add signatures to disks to maintain the infomration on these didks. When we simply remove these disks and install them to another server, Linux on the new server may detect these RAID signature infomration and refuses to continue write to the disk. Here is one example that mkfs reports “apparently […] Continue Reading »
Grub2 config file may need to be re-generated after changing Grub2 configurations such as configuration changes and setting default boot entries. The Grub2’s config file may be at different locations depending on your Linux distro and whether your Linux is booted in BIOS or UEFI mode. This makes regenerating Grub2 config file not easy for […] Continue Reading »
It is common for programs to write to files in filesystems on disks. However, what if the disk was almost full when your program writes to the filesystem on a disk? For systems software and mission critical programs, it is a better or must-to-do practice to check the available filesystem space before actually writing to […] Continue Reading »
Vim is pretty fast and powerful. However, the core of Vim is (yet) single-threaded (some discussions and tries on porting Vim to be multi-threading, but not yet there). This means some functions that are slow will block Vim there and you have to wait for it. While Vim is fast, some plugins are not. When […] Continue Reading »
You may be aware of the GitHub’s largest DDoS attack in history on Mar. 27, 2015 (some context, technical details, and discussions): We've been under continuous DDoS attack for 24+ hours. The attack is evolving, and we're all hands on deck mitigating. — GitHub Status (@githubstatus) March 27, 2015 One important technique when facing this […] Continue Reading »
First time getting my hand on a plotter (HP Designjet 500) directly to print a poster, I found it was an interesting experience. But configuring the printer settings was not that straightforward compared to using normal office A4 printers. I took photos of how it was configured for reference of my own and also those […] Continue Reading »
Controlling the mounting of filesystems is a useful technique for managing Linux systems. The mounting configurations are mostly in the /etc/fstab file. In this post, we will discuss 2 common and useful techniques for controlling the filesystem mounting by playing with the /etc/fstab file: allowing non-root users to mount/unmount filesystems and avoiding mounting failures blocking […] Continue Reading »
Tools: JPG to EPS Converter | Who am I? | ASCII Table | Linux Manual | Software | DimJoeng
SysTutorials | Highly Scalable Systems
If you happened to view Eric's old homepage before and miss that one, please go here.
Last update: Dec. 8 2015.