Update November 2014
Written by TJ Maynes

Lately, I haven’t had very much time to write blog posts and work on the projects that I want to work on. Instead Analysis of Algorithms and undergraduate research has taken a significant portion of my time. However, I did start writing my papers in LaTeX which has actually been a fun experience and pretty easy to learn (and you get pretty reports)! Also, I’ve started to gain in interest in Video Streaming development from the undergradute research project that I am working on. My time management has been out of wack lately too, need to fix this problem. My algorithms class has been kicking my butt, however I’m enjoying the material I am learning - especially dynamic programming (very interesting concept). You can find the algorithm projects that I have been working on here.

[06 November 2014]
Why Emacs
Written by TJ Maynes

This post is an unordered list of reasons why I enjoy using emacs.

Emacs Lisp

Emacs uses a dialect of Lisp called elisp which is quite powerful for making small (or large) scripts to customize emacs working environment. Also, in my opinion its important as a developer to learn a little Lisp and understand just how incredible the language is/can be. It’s quite beautiful that a text editor can be configured to what you want/desire by using a language that many programmers are familiar with.


Org-mode is my favorite way to get work completed and also efficient enough to record some thoughts from my mind. I’ve used Evernote and then switched to OneNote (which was an excellent experience). I use org-mode for jotting down things I learn from the internet, my weekly schedule, writing small stories, keeping my notes organized, etc. I also use git to sync my org files with a remote server.


EMMS stands for Emacs MultiMedia System which I use primarily for internet radio and listening to local (or remote) music directories. I can’t say much more about EMMS than that its really neat that my text editor allows me to play music (so no need for spotify, itunes, etc).

Doc-view mode

I have found doc-view-mode to be a life saver from constantly having to look back and forth between code and text. Although my only complaint is that I can’t really use doc-view-mode for large pdf files (>10mb), which will cause Emacs to hang and possibly crash.

M-x package-list-packages

I think a real draw of emacs is having the ability to download emacs packages (emms, cider/slime, org-mode, python-mode, etc) from within emacs. Also, all the packages I use are found (organized) in my emacs.d folder in my home directory, which is nice since I dont have to search very far if I need to modify or manually delete a package.



Although, Emacs did take a little bit to get used to, it ultimately paid off in the long run. I don’t want to end this post thinking that I purely only use emacs (especially since I use vim when I’m working from a remote server). Emacs is highly extensible (and free) and I love it. I hope that everyone enjoyed this post! Please email me if I have made any mistakes in this post!


[25 July 2014]
Jekyll is Awesome
Written by TJ Maynes

This post is for readers/friends who want to get started on their own blog, but don’t know where to start.

Over the years, I’ve had a countless number of conversations with programmer friends about how awesome Jekyll is and how awesome Github is for letting you host your own website/blog for free. However, the usual responses from friends include:

  • "Jekyll sounds too difficult to setup and maintain."
  • "what is git?"
  • "Git-what??"
  • "why not wordpress?"

Jekyll is a static page generator written in Ruby. In this post, we’ll be using Jekyll to generate our blog. Also, with a few commands in terminal, you’ll have a working blog up in less than a few minutes (depending on your connection speeds). Here is a link to the Jekyll website.

git is a open source version control system designed for small and large projects. Many developers/companies are using and supporting git everyday. I myself use git everyday for various small and large projects that I am working on. In this post, I will not get into the specifics of how to use git, however you can learn more about that by youtubing “git tutorials” or checking out this link.

Github is a website that allows you to contribute, share, and show off your git repositories to the world. Also, Github offers a free web hosting service called Github Pages, which is what you are going to use to get your Jekyll-based blog running on Github. Bonus: here is a link by Tom Preston-Werner called the Git Parable.

I’ll get to why I don’t recommend going the wordpress way at the conclusion of my post.

Before starting, I’m going to assume the following:

  1. Your machine is using a unix/linux operating system.
  2. You are used to using a command line interface.
  3. You have ruby installed on your machine.
  4. Today, is not the first day you have heard the term HTML, CSS, or Javascript (or ruby).

Don’t be afraid of what comes next. I’m going to try and explain everything as clearly as I can in this post!

Getting started with Jekyll

Part One (Checking for Ruby Gems)

Check to see that you have ruby gems installed on your machine. You can check by finding the verion number typing using the following command and pressing enter in Terminal.

gem -v

If you have ruby gems installed on your computer, please skip to Part three. If you don’t have ruby gems (no version number appeared) then, please read Part two.

Part Two (Installing Ruby Gems)

Install ruby gems by going to their website and downloading the TGZ file. After downloading, change directory in terminal to designated download folder. Next, copy and paste these command into terminal and press enter:

tar xvzf rubygems-{ version_number }.tgz
cd rubygems-{ version_number }
sudo ruby setup.rb

Ruby gems should now be installed on your machine, check by entering the following command:

gem -v

You should now see a version number, which will prepare you for Part three.

Part Three (Installing Jekyll)

Install Jekyll on your machine by entering this command in terminal (within a desired directory):

gem install jekyll

Next, change your directory to your documents (or where you please). Then type the following and press enter:

jekyll new my-site

This will create a jekyll folder called my-site. Next, change directory to my-site, then enter the following command:

jekyll serve -w

This will generate the static files from that directory into a working website folder called _site and will start a ruby webserver pointing to that folder.

Next, go to your web-browser and type “localhost:4000” and press enter.

You should be staring at what the above example displays. Congratulations! This might just be your first jekyll-based website!

If you have any problems setting up Jekyll, read the documentation page here!

Getting started with git

You’re going to need git on your machine. If you already have git on your machine then you should skip to the Important Git Commands section.

For OSX users, go to this link to download git directly from the git website.

For Linux users, in terminal enter:

sudo apt-get install git

First, make sure you update and upgrade your packages to get the latest version of git!

Important Git Commands

The three git commands you will primarily use for “publishing” your website/blog:

Again, I will not be going over how git works because that is a blog post in itself. Take some time learning git before getting started with Github (it won’t take long to understand how git works)!

Check out this link for more information on using git.


My biggest reason against using a wordpress as a blog platform for a software developer is that its just not modern platform anymore. Whereas with Jekyll, you learn alot about modern (important) technologies like git and github along the way (as well as a little Ruby). I highly recommend that you pursue learning more about web design and development regardless of your current title.

Feel free to send me an email if I have made any mistakes in this post! Thanks for reading!

Also, check out this link for more information on using the free website hosting service, Github Pages!



Follow this link to try out Jekyll without touching the commandline!

[12 July 2014]