Back of the Envelope

Observations on the Theory and Empirics of Mathematical Finance

Posts Tagged ‘Open-source

[OS] Moving to Xubuntu

with 2 comments

About a year and a half back I talked about my transition to Lubuntu. I found it pretty perfect for my usage, and have had no major issues with it but Chrome has been misbehaving a bit since I moved to LTS 16.04. While fixes exist, I couldn’t find anything permanent, and since I had some time I thought it might be a good opportunity to try the slightly more endowed Xubuntu – with a slightly larger user base while remaining sufficiently lean.

In the last couple of days, I have tested Xubuntu on my office desktop (i5) and my Asus laptop (i3). Its boot time is similar to Lubuntu, and Chrome and Firefox open quickly enough (if anything, a bit quicker than Lubuntu). Many settings are similar to those in Lubuntu (e.g. setting proxy), but setting keyboard shortcuts is even easier. So far I am not missing Lubuntu.

Building upon the earlier discussion on Lubuntu, here are my settings for a minimalist Xubuntu (on an i3 machine with 4 GB RAM). I use them in the following order:

  1. Disk partitioning scheme:
    /boot = 4 GB, /root = 16 GB, /swap = 4 GB, /tmp = 4 GB
    /opt = 6 GB, /var = 6 GB, /usr = 24 GB, /usr/local = 16 GB

    /home takes up the remaining space. I also leave about 24 GB space free for emergency.

  2.  First update:
    sudo apt-get update && sudo apt-get upgrade && sudo apt-get install aptitude
  3. Essentials:
    sudo aptitude install synaptic xubuntu-restricted-extras chromium-browser
    sudo aptitude install gdebi libboost-all-dev swig cmake git xdotool vlc
    sudo aptitude install python-gpgme mencoder curl libcurl4-openssl-dev
    sudo aptitude install usb-creator-gtk p7zip keepass2 cryptsetup cryptmount
    sudo aptitude install lame alsaplayer-common alsaplayer-text soundconverter
    sudo aptitude install pdftk pdfchain djview4 zathura zathura-ps zathura-djvu
    sudo aptitude install gparted gimp getmail4 gnome-search-tool ibritish
  4. At this stage I set-up Dropbox in a separate partition and let the folders sync. In the meantime I create the necessary documentation infrastructure:
    sudo aptitude install emacs auctex pandoc markdown texlive-full

    You may install auctex and ess directly from the emacs package manager (containing the more recent versions). I install ess after getting R.

  5. Keyboard shortcuts: Settings Manager -> Settings Editor -> xfce4-keyboard-shortcuts
  6. Printer: If you have a duplex printer, and it does not automatically respect duplex settings, you may have to set it to ON from Settings -> Printer. If you have an HP printer, hplip-gui (available from synaptic) is also useful.
  7. Speedup boot: 
    • Remove unnecessary start-up services (and add any) from Settings Manager -> Session and Startup
    • Create a file ~/.gtkrc-2.0 and paste the following: Hat-tip BinaryTides
      gtk-menu-popup-delay = 0
      gtk-menu-popdown-delay = 0
      gtk-menu-bar-popup-delay = 0
      gtk-enable-animations = 0
      gtk-timeout-expand = 0
      gtk-timeout-initial = 0
      gtk-timeout-repeat = 0
  8. Python-specific: Hat-tip  Chris’ sandbox
    sudo aptitude install gfortran g++ build-essential pkg-config
    sudo aptitude install python-dev python3-dev python-pip python3-pip
    sudo aptitude install python3-tk libatlas-dev liblapack-dev libblas-dev
    sudo aptitude install libfreetype6 libfreetype6-dev libpng-dev libjpeg8-dev

    I no longer use Anaconda for Python and install all necessary packages within virtual environments (a useful intro is here (option 3)). Jorgen Schaefer’s elpy package means that I don’t have to leave emacs at all.

    In particular, after setting the virtual environments, I have the following installed packages (in that order) for data science/financial modeling related work in emacs:

    pip install numpy scipy pandas matplotlib
    pip install sympy seaborn jupyter scikit-learn statsmodels
    pip install rope jedi flake8 importmagic autopep8 yapf

Written by Vineet

January 9, 2017 at 8:53 pm

[OS] Lubuntu: A minimalist operating system for open-source applications

with one comment

Both Windows and Ubuntu today come bundled with many applications which are of no use to most users. Separating wheat from the chaff, however, is not all that easy, or extremely tedious.

Fortunately, for those of us in research/academia who do not rely on proprietary software, and use their computers mainly for reading (using a pdf-reader), internet (using Chrome/Firefox), writing (using LaTeX, and sometimes needing basic word-processing and spreadsheet-ing), programming (using Python/R), and rely on open-source applications for these, there are two wonderful alternatives out there: Lubuntu and Xubuntu.

Both are extremely lightweight and easily customizable. You may choose either of them, and basic instructions for installing these are available on their homepages. (If you are a novice and in doubt, download the the LTS version 14.04).

FWIW, below I provide instructions for a very basic set-up of Lubuntu (because that’s what I use) for a user who mainly uses Emacs, LaTeX, Python, R and Chrome.

Before you go ahead and start following these, let me get the usual disclaimer out of the way. While the instructions below have worked for me and I happily continue to use Lubuntu, please use them at your own risk. The standard no-warranty disclaimer as in GNU GPL v3 applies.

1. Disk-partitioning scheme: While installing, Lubuntu gives user the choice to either install everything in a single partition, or ‘do something else’ and custom-partition the disk. For those who don’t understand what this means, ignore this step and move to step 2 below. Else, read on.

There are many resources out there describing optimal disk-partitioning schemes depending on the size of the hard-disk/RAM and whether or not you have a dual-boot system, but in my experience, for both standalone and dual-boot installations, the following works quite fine (but again, if you have more than 1 TB machine, you should be more liberal with /opt, /usr, /usr/local and /var):

  • /boot = RAM
  • /root = 4 x RAM
  • /swap = 4 x RAM
  • /tmp = min(4 x RAM, 16GB)
  • /opt = min(4 x RAM, 16 GB)
  • /usr = max(8 x RAM, 96GB)
  • /usr/local = max(4 x RAM, 64GB)
  • /var = max(2 x RAM, 24GB)
  • /home = remaining

The alternative, of course, is to simply ignore partitioning and install everything using the default option provided by Lubuntu installer.

2. Setting up Network: If you are working on a wired PC, you need to ask your network administrator for the following: Address (IP), Network, Gateway and DNS. If you are working on a laptop, you need the WIFI SSID, security-type and possibly user login and password.

If you are behind a proxy, you need to additionally tell that to Lubuntu. To do this, follow step 1 (“Set up the proxy/proxies for most programs”) and step 3 (“Finally, set up the proxies for apt-get and Update Manager”) of instructions from the accepted answer at askubuntu here.

3. First update after install:

  • sudo apt-get update && sudo apt-get upgrade
  • sudo apt-get install lubuntu-restricted extras
  • sudo apt-get install synaptic
  • Run Update manager from Applications

4. After first update and synaptic installation: Launch synaptic and select and install the following

  • emacs (metapackage), texlive-full, auctex, ess, pdftk, pdfchain, vlc, gimp, 7zip, ibritish, djview4, gnome-search-tool, python-gpgme, curl, libcurl4-openssl-dev, libreoffice

5. Other third-party software:

  • Download Chrome, R and Dropbox from their homepage and follow the instructions there. For Dropbox, make sure that for the first time all files are already copied to your desired Dropbox location, else it may take eternity to sync if your connection is slow.

6. Resolving the sound-card issue (in case you can’t hear audio in your machine):

  • Open the following file as super-user:
    • sudo leafpad /etc/modprobe.d/alsa-base.conf
  • Add the following: options snd-hda-intel index=1

7. Setting start-up applications in Lubuntu:

  • Menu (Alt-F1) -> Preferences -> Default applications for LXsession -> Autostart

8. Keyboard shortcuts: For those who shy-away from using mouse and prefer keyboard to navigate, the following link lists all the available shortcuts:  https://help.ubuntu.com/community/Lubuntu/Keyboard. If you’d like to create custom keystrokes for things you use often, look here for an example (a life-saver for me really): http://askubuntu.com/questions/80145/how-can-i-lock-screen-on-lxde

9. Anaconda for Python: For installing Anaconda for Python, I quote from our recent working paper:

Although Python is available as a standalone library from the official project page, we recommend working with meta-packages like Anaconda (made available for free by the Continuum Analytics company as on date) or Canopy (made available for free by Enthought Inc. as on date). The advantage is that it is easier to install support packages and update the Python library from within these meta-packages. We have worked (and continue to work) with the Anaconda meta-package, and found it extremely convenient to work with. Instruction for installing Anaconda are available from the Anaconda install page, and we have encountered no problem in installing it in Windows or Ubuntu.In Ubuntu, if there are going to be multiple users accessing the same machine, it is advisable to install Anaconda in “\opt\” directory rather than in “\home\user\” (default) directory. Again, it does not matter if one installs Anaconda-2.x or Anaconda-3.x, but it is recommended that the user install the python3 version, as that’s where the Python language seems to be headed.

That should be enough. If something doesn’t work for you or if you have any comments, please drop a line.

Written by Vineet

April 3, 2015 at 10:00 pm