Category Archives: programming

Best Programming Fonts: Source Code Pro

As a programmer we want our code to tell us quickly about itself. Using the right fonts really goes a long way to help. Programmer would ideally want fonts which stay crispy clear when scaled down to smaller sizes, have monospace type and avoid ambiguity in some potentially confusing characters as below.

Personally I have liked and been using Consolas and DejaVu Sans Mono. Lucida Sans Unicode and Courier New are other fonts which I appreciate for my programming life.

Just today as I was out for a change and found out this impressive looking font made with programmers in mind – Source Code Pro.

Source code Pro

– β€œAn open source programming font released by Adobe, made with the intent of maximizing usability and avoiding common design flaws in monospaced fonts.” … from slant.co.

Read the announcement blog by Paul D. Hunt, the font creator, for more details. Its open sourced by Abode and you can download it from github.

As for a programming font it does not matter to me if this font lacks italic. Although will take some time to get used to its more horizontal space and rounded shape compared to Consolas and few other fonts in this category.

Looks wonderful in dark colored schemes. Loving it in Vim dark color schemes such as lucius, solarized(dark), molokai, zenburn, etc. Thanks Adobe for open sourcing this font!

This page from slant.co ranks other very good fonts as well.

Advertisements

Migrating to Emacs, carrying my 4 years of Vim with me !

The benefit of using a powerful text editor is not of the savings in time you get but the chance for your tools to talk with your mind. Which is an enormous experience once you start feeling it πŸ™‚

Sharing my experience in using Vim and Emacs.

Humble Beginnings with Vim:

I learned Vim and recommend every new comer to use VimTutor.bat to learn vim after learning to touch-type. You know touch typing right ? I learned and used Vim for 4 years for most of my text needs – code search, search and replace code, emails, documentation and wiki.

Ever since I was hooked up to Vim, have enjoyed it every bit of it ! Most of the time I would force shut my mouth so as not to scare my colleagues out of my surprise and enjoyable moments. Vim gave back me some life by removing monotonous text editing.

Every passing minute, hour and day has been a spiralling increase of productivity. I also taught and advertised it too those few colleagues who could touch-type.

I will say a tool is powerful only when it starts to get out of our way and gets the job done. We start to realise what communicating with speed of thought means. Vim fits this principle completely. And surely there is so much more to learn and the hunger just refuses to go away !

The IDE dilemma, look elsewhere:

So I was happy vimming, learning more, enjoying more when one fine day I demanded it to be my IDE for (no) .NET application development. Not that I wanted a glossy looking gray box but features we miss like – code completion (intellisense), project browsing, git/svn integration, class view, function/method/class i.e. search the symbol, integrated debug and build environment. I was using Vim 7.4 at that time and due to the lack of multi-threaded or inter-process architecture in Vim thought that it was a bit limiting for me to do all of this in Vim.

I knew the only other place I could look and demand was emacs and I looked into it.I really agree with the common poke at emacs as “An Operating System which lacks an editor” Or the famously funny name ‘Escape Meta Alt Contol Shift’ !

There’s Emacs but:

Convinced that emacs had the power to provide me what I wanted I had to now leave my adorable Vim text editing language (you should not call it keybindings, its a text programming language) I feared about this but still went ahead to give it a try and planned comeback to Vim if I failed.

After going through the emacs tutorial for first time, I experienced the chords pain quickly (chords means pressing multiple keys with multiple fingers at the same time – the dreaded ‘Escape Meta Alt Control Shift’ name is dedicated to this) .

I got the pain quickly because of my already weak finger and muscles connected all the way till my elbow. I carried this pain for a while and continued to adopt and learn more about Emacs.

Org-mode from google tech-talk was good to watch just for fun.

I found other emacs variants and some cool like neoVim. Even if neoVim sounds interesting and is becoming stable (as I heard from the above Evil youtube video,) and even if emacs lisp is due for a major over haul which is not coming soon, I am willing to keep with emacs and join the 30+ years of evolution and stability. (emacs and vi both were born roughly around 1975)

Some videos of Rick Dillon helped me. Blogs of Xah Lee helped me to swap Ctrl and Alt and removing the caps lock. The pain got lesser.

Through out all this the hand-finger elbow pain was always there and I missed power of text editing in vim. Emacs had too much power and customisation available but lacked a decent text editing behavior by default.

Enter the Dragon: Evil-Mode

Because Emacs was extremely customisable and I was already using Vim keybindings in Chrome browser, Visual Studio; I thought somebody must have implemented vim keybindings for Emacs and I googled. Lo and Behold I found Evil.

Evil Mode Video on Youtube https://www.youtube.com/watch?v=JWD1Fpdd4Pc really clicked with me and I was charged up.

Finding evil mode was one such great moment for me as I could use my favorite vim style editing and still be in emacs. Then I never looked back and have happily shifted to Emacs since then.

The IDE dilemma is still to be solved but seeing CEDET and OmniSharp (intellisense) server for C# code completion I am convinced that I will be able to use those features of IDE for which many people fall in the trap.

Fast Forward 1 year:

Evil and Org are the 2 things I can’t live without in Emacs and use them all the time. Mailman, gnus, Calculator and many more.I look forward for many years with Emacs and Vim bindings … πŸ™‚