Debian, Fedora, Kubuntu

I use Debain since Sarge. Back then, mounting a USB disk was far from trivial. It is so much user friendly now. For a while between 2014-2016, I have used Fedora and Kubuntu instead. Both are more appropriate if you have a modern laptop as they are faster in incorporating new kernels in their distributions (compare a life cycle of 6 month vs 2 years). This particularly affects things like sound, LAN, and wireless. Without an internet connection, it is difficult to update the system in first place, if it cannot recognize your network interface. I have to mention that using geeky tricks, it is doable to get a work around solution, as I usually do not get the bleeding edge new laptops. However a more standard solution is to live with either Fedora or Kubuntu, and a year later install Debian: by then, the latest (testing) kernels usually are modern enough to support the main functions like network.

Doing science and mathematical calculations, it is frustrating to see that a system crashes every now and then for nonsense reasons: Trash crashed, Copy crashed, …. these stuff I have never ever experienced on a  stable Debian system, so the least is that I spent a week to get everything working with Debian before giving it up.

There are also some more fundamental differences in philosophy of Debian versus Fedora or Kubuntu. While you get bug fix and minimal updates for stable software, an update never actually changes a package dramatically. So if you want to see a new functionalities, it does not arrive before a major release. Debian is very stable and it makes it very interesting for systems with heavy jobs.

Unlike the Venus transit which is a rare event, there is a Mercury transit every 7.5 years (on average). Between 1601 and 2400, there are only 14 Venus transit. If you have not seen the last one on June 06, 2012, it is too late  since the next Venus transit occurs on Dec 11, 2117 !! Therefore, we should focus on the Mercury transit.

The next transit of mercury occurs on May 09, 2016. It starts at about 11:12 UT and ends on 18:42 UT. The transit is visible in most of Asia, Europe, Africa, and America. Note that the apparent size of the solar disk is about half a degree while the apparent size of mercury disk is only 8 arc seconds (1 degree = 60 arc minute = 3600 arc second).

The next mercury transits in this century are the followings (time in UT):

Date                    start           max          end

Nov  13, 2032      06:41         08:54      11:07

Nov 07, 2039       07:17         08:46       10:15

May 07, 2049       11:03         14:24       17:44

Nov 09, 2052       23:53         02:29       05:06

May 10, 2062       18:16         21:36       00:57

Nov 11, 2065        17:24         20:06      22:48

Nov 14, 2078        11:42         13:41      15:39

Nov 07, 2085        11:42         13:34      15:26

May 08, 2095        17:20         21:05      00:50

Nov 10, 2098        04:35         07:16      09:57

Losmandy G11 mount

I have used the famous Losmandy G-11 mount for a few years. It is a super heavy mount. You need quiet a bit of force to move it around. The mount was serviced recently and with a rough polar alignment, it allowed us to have exposures of up to five minutes at a focal length of 300 mm.

close-up view of Losmandy G11 mount.

close-up view of Losmandy G-11 mount.

The Losmandy G11 mount.

The Losmandy G-11 mount.

The ball-head to connect DSLR cameras.

The ball head to connect DSLR cameras.

The ball head allows you to point the camera to any direction of the sky very easily. Depending on the weight of the camera and lens, you should think of a ball which has a diameter of at least 30-40mm for a 5 kg load.

Debian 8 (Jessie)

Recently I bought a Lenovo T430 on eBay. The main reason I didn’t like T440 or T540 was it’s absolutely horrible touchpad ! After buying the Lenovo T430 with Windows 7, the most trivial step was to install a Linux on it. For that, I have experienced Debian, Kubuntu, Fedora, and Centos for two weeks on VirtualBox on my old laptop (T530). Since I was using Debian from Debian Sarge (3)  till Debian Wheezy (7), it was not a surprise to me that I converged to Debian.

Debian made a fantastic job and in the live environment, it had no problem with lan, wireless, or sound. I had a familiar package manager, synaptic, and instantly after installation activated some multimedia and backports for non-free libs.

Debian Jessie Desktop

Debian Jessie Desktop

Debian automatically configured the F-keys so all of them work out of the box. The only thing I had to change was the behaviour of the touchpad, so I can tap on the touchpad and the system recognise that as a click.

I installed KDE 4 as my default desktop environment and all of the familiar packages like emacs, kstars, digikam, gimp, etc.

Numeric libraries like ATLAS, LAPACK, BLAS, FFTW, CFITSIO, openmpi, etc can be easily installed either via synaptic or simply running the following as root:

#apt-get install fftw

Compared to old days, Debian is now so user friendly that it does not require much experience to either install or configure it.

Science Packages

Debian also offers “science” packages like science-physics, science-mathematics, etc. Each science package is a group of many packages in that category. So installing one science package will install all of them. There are also -dev version for science packages.

Firefox on Debian

There is no particular advantage over Debian brand of Firefox called icedove and the Mozilla versin of Firefox. However I decided to install Firefox instead of icedove since I had Fedora17 on my previous laptop so I could move all my Firefox profile like bookmarks, saved passwords, etc directly to Debian, and it was fairly easy.

Clonezilla is a partition and disk cloning program. If you want to do one of the following, it can be very helpful:

  1. a full backup of your system including program files, master boot partition etc.
  2. backup of one partition of your disk
  3. clone your hard disk to a solid state drive (SSD) to improve the performance.
  4. replace hard disk or SSD of your laptop with a larger one.

My case was number four: I bought a used laptop which had a 256 GB SSD. I wanted to replace it with a 500 GB SSD.

I connected the new SSD to a USB3 gate via cable as seen below and booted the laptop with Clonezilla ISO image.

SATA 6GB/s connector with both USB 2 and USB 3 connections.

SATA 6GB/s connector with both USB 2 and USB 3 connections.


The process was rather fast since both read and write was on SSD and the connection was via a USB3 gate.

Clonezilla copies partitions one by one. Here you see that it copies the main partition of the Windows 7 operating system.

Clonezilla copies partitions one by one. Here you see that it copies the main partition of the Windows 7 operating system.

So after copying was finished, I replaced the old SSD of the laptop with the new one and booted the system. It was identical to the previous system, nothing was changed at all !

so far so good. so it was time to format the extra space of the new SSD. But the partition on the new and large SSD was copied from the small SSD !!!! The system could not recognise that there are 250 GB more space on the disk !

After some googling, I realized that I can fix the partition using Fixpart.

So I booted the system via Debian 8 live CD and then downloaded the fixpart and installed that via dpkg command. Then I followed the instructions step by step and finally got an updated partition table. After that I installed gparted in the live environment of the Debian Jessie and it could recognise the unallocated memory as you can see in the following image:

Gparted could see the unallocated memory only after I fixed the partition table via Fixpart.

Gparted could see the unallocated memory only after I fixed the partition table via Fixpart.

The rest was easy, just a normal Linux installation which I explain in the next post !

deb http://ftp.us.debian.org/debian/ jessie main contrib non-free
deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-free

deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

# jessie-updates, previously known as ‘volatile’
deb http://ftp.us.debian.org/debian/ jessie-updates main contrib non-free
deb-src http://ftp.us.debian.org/debian/ jessie-updates main contrib non-free

# jessie-backports, previously on backports.debian.org
deb http://ftp.us.debian.org/debian/ jessie-backports main contrib non-free
deb-src http://ftp.us.debian.org/debian/ jessie-backports main contrib non-free

# multimedia
deb http://www.deb-multimedia.org/ jessie main non-free
deb http://www.deb-multimedia.org/ jessie-backports main

Python 3 is gradually replacing Python 2 and is some of the newest Linux distributions like Fedora 23, it is installed as default.

So the question is if you have a library of python 2.x programs and you want to start learning python 3 and updating your codes, how can you install all the necessary packages like matplotlib, scipy, nompy, etc for both versions of python without messing up the system (since Linux desktops e.g. gnome, KDE, etc use python themselves).

Using Anaconda or Miniconda is one of the solutions. I tried miniconda since I do not want the whole Anaconda packages. According to its webpage, “Anaconda is a completely free Python distribution … It includes over 195 of the most popular Python packages for science, math, engineering, data analysis.” Both Anaconda and Miniconda are available for Linux, Mac OSX, and Windows. This way, you install a fresh version of python on your home directory, so doing anything to that does not affect your operating system.

Package installation using conda

Assume you have installed the package via your package manager. Now we have the command  “conda” available on command line. We can create two different environments for python 2 and python 3 packages:

$conda create -n mypy2 python=2 numpy

$conda create -n mypy3 python=3 numpy

and similarly you can install any other package, e.g. ipython, scipy, etc.

When the environment exist, you can use the normal “install’ command, like pip:

$ conda install numpy python=3

How to use it?

You can add something like the following to your .bashrc file:

export PATH=”/home/user_name/miniconda/bin:$PATH”

Then in the command line, you can activate the environment you want to work with:

$source activate mypy2

and you get an output in terminal like this:

discarding /home/user_name/miniconda/bin from PATH
prepending /home/user_name/miniconda/envs/mypy2/bin to PATH

When you are done, you can deactivate it:

$source deactivate

conda has easy options to install, update or remove a package or the whole environment.For instance, you can remove a whole environment at once:

$conda remove -n mypy2 –all

Typing “conda” in terminal, you get the help file:

$ conda
usage: conda [-h] [-V] [–debug] command …

conda is a tool for managing and deploying applications, environments and packages.


positional arguments:
info          Display information about current conda install.
help         Displays a list of available conda commands and their help strings.
list            List linked packages in a conda environment.
search     Search for packages and display their information. The input is a regular expression.To perform a search with a   search string that starts with a -, separate the search from the options with –, like ‘conda search — -h’. A * in the results means that package is installed in the current environment. A . means that package is not installed but is cached in the pkgs directory.
create       Create a new conda environment from a list of specified packages.
install         Install a list of packages into a specified conda environment.
update       Update conda packages to the current version.
remove      Remove a list of packages from a specified conda environment.
uninstall     Alias for conda remove. See conda remove –help.
run             Launches an application installed with conda. To include command line options in a command, separate the   command from the other options with –, like conda run — ipython –matplotlib
config        Modify configuration values in .condarc. This is modeled after the git config command. …
init             Initialize conda into a regular environment (when conda was installed as a Python package, e.g. using pip).
clean         Remove unused packages and caches….