As the doctor gone rogue

February 11, 2017

Bitvise X11 forwarding problem

Filed under: bash, SysAdmin, ubuntu — Tags: , , — hypotheses @ 12:00 am

You may have a problem trying to forward X11 from your Linux server through a terminal in Windows. I use Bitvise as the ssh client as it also provides the interface for sftp to download/upload the files. Not that using command line scp or sftp is not efficient, but in Windows you may have to install those tools separately.

Since I was trying to avoid installing Cygwin initially, Cygwin terminal wasn’t what I initially consider. Therefore, I went ahead and install Bitvise ssh client (instead of putty), which actually turns out to be quite good. The only problem (at least now) is when trying to forward GUI from the server with X11 forwarding, it failed miserably.

  • I’ve tried setting up bitvise in the X11 forward.
  • Installed X11-server from Cygwin (finally T_T).
  • But X11 forwarding still did not work. I got the error message below.

Failed to open channel for X11 forwarding from [::1]:47396 to Error connecting to X11 server: FlowSocketConnector: Failed to connect to target address. Windows error 10061: No connection could be made because the target machine actively refused it.

I kind of have an idea that this is something to do with Windows Firewall, which does not allow a specific port to listen to an incoming connection. But I haven’t quite figured out what to do. It is actually described on the bitvise page, but I guess I haven’t quite read the whole thing.

In short, after install cygwin X11 server, make sure to run the command below to fix the firewall permission. 

C:\cygwin64\bin\XWin -listen tcp -multiwindow


February 9, 2017

Get a new IP address for a running VirtualBox Ubuntu Machine

Filed under: SysAdmin, ubuntu, Virtual Machine — Tags: , , , — hypotheses @ 9:09 am


You have started up a virtual machine in VirtualBox. In this case, I ran Ubuntu 16.10. You then realized that the IP address of your VM is not accessible from your local network. Although you can connect from the Host to your Guest VM (Ubuntu).

Therefore, you would like to change the type of network from “NAT” to “Bridge”. You did this through the GUI menu (Machine > Setting > Network > Adapter 1 –> Change to “Bridged Adapter”

OK, now what. You IP addresses is still the same.

You can check your current IP and network device with

ubuntu:~$ ifconfig


February 6, 2017

Backing up FreeNAS to Amazon S3

Filed under: bash — hypotheses @ 7:59 am

Going through the AWS tutorial about creating File GateWay on my own is not exactly a walk in the park. Although I managed to install awscli and configured the basic requirement, there’s a missing gap that I haven’t quite figured out. This saves me lots of time trying to figure out how I can back up data already live on ZFS FreeNas to AmazonS3.

aws s3 sync /mnt/data/ s3://mybucket

What’s left to figure out next would be how to get all the files out when I need it, and how much it would cost, how to save those cost, etc. For the later part, I guess having AWS free credits does help a lot.

Take a look at the full guide following the link below.

ZFS is excellent at storing all your data safely but “there are still lots of potential ways for your data to die, and you still need to back up your pool. Period. PERIOD!” The process …

Source: Backing up FreeNAS to Amazon S3

January 31, 2017

Import data from Excel to R using gdata library

Filed under: data management, R — Tags: , , , , — hypotheses @ 9:00 pm

There are several ways to import data into R.

The standard way, what it used to be, is from a text file using read.table() function.

For excel files, the most famous spreadsheet software on the world, several libraries can be used to import data from .xls file, for example


. In the past, the problem was with the xlsx file, which was not supported yet.

Recently, I discovered that


can be used to import xlsx file now. So, this bypass the step that I normally have to save the excel file to text file and do the regular file import.

Here’s how:

data <- read.xls(xls="myData.xlsx",sheet=1,header=TRUE,

January 22, 2017

docker-machine connection error

Filed under: SysAdmin — hypotheses @ 6:47 pm

Life is not that simple. Even after I figured out how to create a docker machine to limit the disk usage, cpu, and memory through docker-machine running on Ubuntu host. However, there seems to be a problem that prevent the host to connect directly to the guest docker-machine.

bhoom@mg0:~$ docker-machine create -d virtualbox --virtualbox-disk-size "100000" --virtualbox-memory "32000" --virtualbox-cpu-count "16" fireDock0
Running pre-create checks...
Creating machine...
(fireDock0) Copying /home/bhoom/.docker/machine/cache/boot2docker.iso to /home/bhoom/.docker/machine/machines/fireDock0/boot2docker.iso...
(fireDock0) Creating VirtualBox VM...
(fireDock0) Creating SSH key...
(fireDock0) Starting the VM...
(fireDock0) Check network to re-create if needed...
(fireDock0) Waiting for an IP...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with boot2docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...

This machine has been allocated an IP address, but Docker Machine could not
reach it successfully.

SSH for the machine should still work, but connecting to exposed ports, such as
the Docker daemon port (usually &lt;ip&gt;:2376), may not work properly.

You may need to add the route manually, or use another related workaround.

This could be due to a VPN, proxy, or host file configuration issue.

You also might want to clear any VirtualBox host only interfaces you are not using.
Checking connection to Docker...
Error creating machine: Error checking the host: Error checking and/or regenerating the certs: There was an error validating certificates for host "": dial tcp i/o timeout
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.
Be advised that this will trigger a Docker daemon restart which will stop running containers.

If this is your case, and you have proxy server setup for your general internet connection, try

export http_proxy=""

if you are lucky, you should be able to connect to your docker-machine (locally). Otherwise, life is not that simple.

Running analysis in docker container

Filed under: bash, docker — Tags: , , , — hypotheses @ 6:41 pm

There are generally 4 steps to create an analytics environment on your server that will be separate from the rest of the system. By running your analysis within a container, it might reduce the risk of crashing the server because you might have used up all the resouce and cause the server to freeze up.

  1. Install virtualbox (to create a docker machine)

  2. Install docker-machine

  3. Create a docker-machine this will be the machine to run your container

  4. Map your command to run in the container. Following the kaggle/python tutorial.

Install virtualbox-qt

sudo apt-get install virtualbox-qt

Install docker-machine

curl -L`uname -s-uname -m` > /usr/local/bin/docker-machine && \ chmod +x /usr/local/bin/docker-machine

create a docker-machine

This will create a separate docker machine called docker2

docker-machine create -d virtualbox --virtualbox-disk-size "100000" --virtualbox-cpu-count "8" --virtualbox-memory "32092" docker2
docker-machine start docker2

We then need to specify a new destination where docker container will run, i.e. on docker2

eval $(docker-machine env docker2)

See <; for more info

run kaggle/python

You’re now at a point where you can run stuff in the container. Here’s an extra step that will make it super easy: put these lines in your .bashrc file (or the Windows equivalent)

docker run -v $PWD:/tmp/working -w=/tmp/working --rm -it kaggle/python python "$@"
ikpython() {
docker run -v $PWD:/tmp/working -w=/tmp/working --rm -it kaggle/python ipython
kjupyter() {
(sleep 3 && open "http://$(docker-machine ip docker2):8888")&
docker run -v $PWD:/tmp/working -w=/tmp/working -p 8888:8888 --rm -it kaggle/python jupyter notebook --no-browser --ip="*" --notebook-dir=/tmp/working



December 2, 2016

Installing vcftools on MacOS with homebrew

Filed under: bash — hypotheses @ 8:49 am

Life just get a lost easier if you want to install vcftools on MacOS.

Once homebrew is installed (see, you can simply install vcftools in one line.

brew install homebrew/science/vcftools

October 21, 2016

Installing Oracle Java8 in 3 lines

Filed under: bash — hypotheses @ 10:37 am


  1. apt-get is installed
  2. You have sudo authority

#add repository from webup8team & install oracle java and set as default

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-set-default

If you have other java installed previously, you might want to complete remove them first.

sudo apt-get purge openjdk-\*

There's a long description on how to install Oracle Java on WikiHow if you want to install them from scratch.

October 18, 2016

Add/Remove user from a group

Filed under: bash, SysAdmin, ubuntu — hypotheses @ 3:15 am

  • Add a user bhoom to an existing group superman: sudo usermod -A -g superman bhoom
  • remove bhoom from a group superhero: sudo gpasswd -d superhero bhoom
  • Create a new group legends:sudo groupadd legends

October 15, 2016

Find files and listing details on Linux

Filed under: bash, miscellaneous, ubuntu — Tags: , , , , , — hypotheses @ 12:01 pm

One common task that we always have to do relatively often is to find the location of some specific files. Although you may have some clues that those files are located in your current working directory, “.” symbolic link used in the command below, you may have no clue to which sub-folder your files are.


Older Posts »

Blog at