Linux Command line tutorial

Here is a comprehensive tutorial which teaches the new linux user – who has always used GUI tools to do his stuff. It starts with a nice example which can make a complex C++ program to find out how much space each user uses into a simple one line bash command. Just go and learn shell programming which can really improve productivity.

SICP Video Lectures

Structure and Interpretation of Computer Programs(popularly known as 6.001) has been an important subject in MIT. There has been a text book which has been followed by many universities around the world. If you wanted to know how to program using Lisp/Scheme, then this book is a must have for all the Computer Science Students. Here are a set of video lectures for the book. There are 20 lectures – each about 500mb totalling to around 10GB of video.

Todo.txt – simple todo app

You might have used a variety of online services to maintain your todo list. But there are variuos reasons to use a text todo file which is stored on your own PC. You just have to use a single todo.txt file which contains your list of items. Todo.txt shows you how to maintain your todo list.
The file contains one item per line. The items can be categorised under variuos projects using the tag p:project. For eg. if I want to categorise a particular item under college, then I tag it as p:college. There are also contexts which show when/where the particular item has to be done. Eg. if I have to make a phone call, then I would tag it as @phone.
An example todo.txt file may be

write blog entry about todo.txt p:fslog
clean up room
call broadband provider for connection @phone

The site also has shell files which can be used to maintain the todo.txt files. You can download them and use it to maintain your own todo list. One advantage of using the text files are that you could just grep the file to find what tasks are pending.

No Rails – Love the snake

I told previously that I would spend the holidays learning Ruby and Rails, for Rails Day 2006. But, unfortunately I couldn’t learn much to build a really nice app in Rails. And Rails Day 2006 has finally ended. I think the prime reason for my failure was that it was difficult for me to get to learn Ruby. I have been a python guy and love the whitespace and clear syntax it provides. I mean, why should there be two ways to run a simple loop or a if condition.
Also I see no use for blocks. It just makes reading someone’s code more difficult. But thats not the case with python. The code is easier to understand. Infact I could easily learn the language less than a week(even less).
So, here I am trying to stay with Python and try my hand at some of the web frameworks.

UnixLite: Object Oriented Kernel

Unix LiteUnixLite is a lightweight unix/linux compatible operating system written in C++. Just like Linux, it is just a kernel – written from scratch and most of the part is written in C++. However the library used by UnixLite comes from uClibc and applications running comes from the GNU project. UnixLite kernel implements some frequently used system calls of linux, furthermore, it is binary compatible with linux, and some GNU software have been ported to unixlite.

Due to the small size(the kernel is made up of about 20000 lines of code) and the object oriented programming using the c++, the kernel becomes more modular and easy to understand.

Technical Features:

  • Support paging and flat memory model, nearly same as linux
  • Implements about 80 posix compliant system call
  • Binary compatible with linux
  • Able to run bash/gcc, and some other common UNIX tools
  • Very rudimentary TCP/IP support, able to run a simple http server
  • Very small, about 20000 lines of code
  • Written in c++, highly modular and extensible
  • Minix’s 32-bit file system

SciTE – Lightweight Text Editor

Of late I have been using SciTE, a lightweight text editor available for both Windows and Linux. It is based on Scintillaa free source code editing component for Win32 and GTK+. It features syntax highlighting for many popular languages and also automatic indenting of source code. Also you can export the source code into many formats like:

  • HTML
  • RTF
  • PDF
  • LaTeX
  • XML