Friday, August 10, 2018

Quering Computer's Serial Number

A computer's serial number may be printed on the back of the computer. However, it is inconvenient to locate it while the computer is on. We can query a computer's serial number using a command while the computer is on.

On Windows:

wmic bios get serialnumber

On Linux:

sudo lshw

Thursday, May 3, 2018

Breaking Long URL in LaTeX Documents

Sometimes we wish to break a long URL in a LaTeX document.  I am among many people who have struggled with this. The following summarizes the answers I found online,

  1. Pass hypens to the url package that is referenced in the hyperref package, e.g.,

  2. However, the above would not work when the long URL has hyphens to avoid confusion by design. To break a long URL that has hyphens, we can use


  3. In the above, LaTeX works hard and attempts to break the long URL at some location. If the location is not to our liking, we add the \sloppy command right before the reference to an URL, e.g.,

The above is the summaries of the following two discussions,
  1. How to break long url in an item
  2. Forcing linebreaks in \url
Great discussions, folks. Thanks.

Wednesday, March 14, 2018

PYMC3 Reports "WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions"

When I run PYMC3 on Ubuntu 16.04 LTS, I encounter an error,

WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.

This went after I installed,

sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran  

I also notice that the problem persists when I only install the mkl and mkl-service as suggested in the theano documentation and the discussion here

Tuesday, March 6, 2018

Old Bug in open-vm-tools and Git Commit Problem.

There is a known bug in open-vm-tools that can interference with a number of applications when we operate on a vmhgfs-fuse file system. This bug is documented as issue #90, and there are a few other discussion about this, in particular, a discussion on how to install recent release of open-vm-tools on Ubuntu 16.04 LTS since Ubuntu 16.04 LTS at this moment still ships open-vm-tools version 10.0.7 that carries this bug.

You may check your open-vm-tools version with one of many methods, such as,

vmware-toolbox-cmd -v


apt-show-versions open-vm-tools

If the output indicates that you have a version of earlier than 10.1.0, your version of open-vm-tools may have this bug. It causes serious problems in a few rather frequently used applications. In my case, when I use do a git commit, I would observe the following,

$ git commit -m "done something trivial"
error: bad index file sha1 signature
fatal: index file corrupt

After 5 seconds, when I try it again, the git commit is successful. As discussed in issue #90, this is the result that the tools cache file attributes and entries and causes a cache inconsistency. The 5-second delay is the waiting time before the cached items get updated.

Some also observed that this bug causes the npm install to fail.

Perhaps, the more important issue is how we may address this issue before the Linux distributors have a new version of the tools for us to upgrade to. Suggested in the discussions cited is to use a Ubuntu test PPA repository since it does not appear to be problem-free to build the tools from the source. The steps to install from the test PPA are as follows,

sudo add-apt-repository ppa:ci-train-ppa-service/3152
sudo apt-get update
sudo apt-get upgrade open-vm-tools open-vm-tools-desktop open-vm-tools-dkms

In my case, these steps lead to the successful installation of the open-vm-tools version (build-7253323), and it seems to work fine although some seem to observe some issues, such as, a race condition.

Sunday, February 4, 2018

Add/Edit Windows Environment Variable for Non-Administrator User

There are two ways to do this on Windows 10.
  1.  Click the Amplifying glass from the Task bar, type "environment", and select "Edit environment variable for your account", which opens the GUI to edit the Windows environment without prompting for a administrator's password.
  2. Press the "Window" and "R"  keys at the same time to open the "Run" window, and type the following,
    rundll32 sysdm.cpl,EditEnvironmentVariables

Friday, January 19, 2018

Determine Character Encoding on PostgreSQL Database System

PostgreSQL database system has a versatile character set support as described in the documentation. Since an application that uses a PostgreSQL database may run on different systems, it is a good practice to know what character set we are dealing with. We can query a database's encoding scheme in a number of methods.
  1. Via the SHOW SERVER_ENCODING command in psql, e.g., assuming the database is foodb,
  2. Use a SQL query on pg_database, e.g., assuming the database is foodb,
    foodb=>  SELECT pg_encoding_to_char(encoding) 
                FROM pg_database WHERE datname = 'foodb';
  3. Use a SQL query the information_schema, e.g., assuming the database is foodb,
    foodb=>  SELECT character_set_name 
                FROM information_schema.character_sets 
                WHERE default_collate_catalog='foodb'

In the above, the 3rd method is portable across most relational database systems since information_schema is a standard.

Tuesday, January 16, 2018

Command psql of PostgreSQL Complains about Encoding

I have a PostgreSQL database instance configured to use UTF-8. When I connects to it using psql on Windows, it complains with the following,

foopgdb => select * from bar;
ERROR:  character with byte sequence 0xe2 0x86 0x92 in encoding "UTF8" has no 
equivalent in encoding "WIN1252"
foopgdb =>

Method 1

It turns out that we can inform psql the encoding and select proper encoding table when we run psql as follows in a Windows Command Prompt window,

chcp 65001

The explanation about PGCLIENTENCODING is in the PostgreSQL documentation while that of chcp at Microsoft Technet. The reference to the code page 65001 is at this MSDN page.

However, the above method may result in the Not enough memory error on some version of Windows, such as, Windows 7. See this discussion for more.

Method 2

We can also set the encoding in psql as follows,

foopgdb => \encoding UTF8
foopgdb => select * from bar;
foopgdb =>