Self-help books to be read for the month of August 2013

The following books will be read and notes for the same posted in the month
of August 2013:
1) Decisive: How to Make Better Choices in Life and Work – by Chip Heath,
Dan Heath
2) Made to Stick: Why Some Ideas Survive and Others Die – by Chip Heath,
Dan Heath
3) How to Live on 24 Hours a Day – by Arnold Bennett
4) Mental Efficiency – by Arnold Bennett

I have already completed #3. I may post notes which others have already
posted. No point in redocumenting some stuff.
Also one coding exercise for the month needs to be decided. This could be
any coding problem which I could solve using my programming expertise. Let
me see where I can get good problems to code for.

Reading list for August 2013.

From this month on, I will be posting the list of books & articles which
will be read in that month.
Basically the reading list will be published and the notes for those
books/articles will be posted as well.
This month I am checking out self-help books & books on file system.
File System related books and articles
1. Persistence from Operating Systems: Three Easy Pieces :
http://pages.cs.wisc.edu/~remzi/OSTEP/
2. Practical File system Design –
http://www.nobius.org/~dbg/practical-file-system-design.pdf
3. The Design and Implementation of a Log-Structured File System –
http://www.cs.berkeley.edu/~brewer/cs262/LFS.pdf

Self-help books
[[
Need to figure out which ones to read, lots of them on offer, but very few
are the good ones.
]]

After a month I am going to update my effort into developing a reading
habit with this monthly reading list.

Note to self – Get a wifi router supported by DD-WRT.

After my wifi-router just stopped working one day, I had to get a new one. The one I got was Netgear WNR612v2 wifi router which was just enough for my basic needs. As I had assumed that any wifi-router will work fine, this one gave me real trouble. Connection drops every 5 mins just made me try all tricks in the book to make it just keep a connection for more than 10 mins. I did a firmware upgrade but did pay much attention to the fact that it has a really old firmware. After this one, to get rid of the connection drop pain I got a Belkin N150 F7D1301 wifi router.

Another cheap one in the market but costlier than the earlier Netgear one I had. But this one also totally disappointed me. It would also drop connections, not as frequently as the Netgear one, but just one every 45 mins. The drop frequency would be totally dependent on the number of connected devices. Add in 2-3 mobiles, 3 laptops and a tablet and a connection drop would happen every 15 mins. For this router as well the firmware upgrades had stopped in 2010 itself. The net is full of articles which complain about the connection drops of this Belkin N150 wifi router.
So now with two big flop shows of routers, I need to make this important self note that in the future invest only in routers which are DD-WRT supported. DD-WRT is the site run by BrainSlayer. It provides third party firmwares for routers running on Broadcom or Atheros chips. The firmwares are GPL’ed and uptodate with latest fixes. So hopefully in the future I will not be stuck in hardware with some old buggy software which keeps the devices from functioning.

The “quick-sort” adventure & some great links to learn it.

Recently I had to figure out the workings of quick sort,one the fastest and easiest sorts to implement. There is a heap load of tutorials about quick sort apart from the videos demonstrations and animations showing the inner workings of quick sort. Before I link to the resources which I found helpful in learning quick sort, here is my implementation of quick sort in C.
[cpp]
int partition_data(int* data, int low, int high)
{
if(low > high)
return -1;

int down = low;
int up = high;
//just assume and take the first element as the pivot value and index
int pivot = low ;
int pivot_element = data[pivot];

while(down < up){ //keep moving down till the you find an element whose value is greater than the pivot element. //this element should be on the right side of the pivot element while(data[down] <= pivot_element && down < high) down++; //keep moving up till you find an element which is smaller than the pivot element. // this element should be on the left side of the pivot element. while(data[up] > pivot_element && up > low)
up–;

//swap the elements
if(down < up){ swap(data[down], data[up]); } } //swap the pivot and the up element data , placing the pivot in its correct position swap(data[pivot], data[up]); //extra step just for the sake of clarity pivot = up; return pivot; } void qik_sort(int *data, int low, int high) { if(high > low){
int pivot = partition_data(data, low, high);
print_data(data, 10);
//sort the low -> pivot array
qik_sort(data, low, pivot – 1);
//sort the pivot -> high array
qik_sort(data, pivot + 1, high);
}
}
[/cpp]

The version is a bit more documented than the ones you would generally find online. Also I assume my notes here will help me in recollecting quick sort in the future(This time it took me 3 days to figure it out).

Some helpful resources for learning quick sort are as follows:

  • http://www.comp.dit.ie/rlawlor/Alg_DS/sorting/Quick%20Sort%20Explanation.pdf
  • – The example given makes it worth a read.

  • http://m3peeps.org/qs.htm
  • – One of the most easy to understand explanations of quick sort.

  • http://faculty.simpson.edu/lydia.sinapova/www/cmsc250/LN250_Weiss/L16-QuickSort.htm
  • http://betterexplained.com/articles/sorting-algorithms/
  • http://www.angelfire.com/pq/jamesbarbetti/articles/sorting/001_QuicksortIsBroken.htm
  • – Great analysis and great resource to getting more out of the simple quick sort.

  • http://stackoverflow.com/questions/6903064/handling-duplicate-keys-in-quicksort
  • – Mandatory stackoverflow.com links

  • http://stackoverflow.com/questions/11355621/pseudo-quicksort-time-complexity
  • – Mandatory stackoverflow.com links

My first open source paid app on Nokia Store : Brahma – Screen capture “reinvented”.

After coding on & off for around 8 months I have finally published my first paid app on Nokia Store, Brahma. Brahma is my vision of a screen shot application. I was bored of seeing the setting item list layout of most screen capture applications. So me with my wife designed & coded Brahma. Brahma makes the regular task of taking screenshot more interesting and provides a new twist with some new options. The user experience has been optimized for Symbian^3 touch screens devices.
The application is paid but at the same time it is also open-source. So any one who purchases Brahma, can request the source-code. As the application is licensed under GPLv2, the purchaser is free to modify the code.
Brahma can be purchased from here.

Also Brahma is being offered at a special early-adopter price(for first 30 days) of just Rs. 10, that’s just a price of a cup of tea. So download it and let me know your feedback at the Brahma Support Forums.

My first open source paid app on Nokia Store : Brahma – Screen capture “reinvented”.

After coding on & off for around 8 months I have finally published my first paid app on Nokia Store, Brahma. Brahma is my vision of a screen shot application. I was bored of seeing the setting item list layout of most screen capture applications. So me with my wife designed & coded Brahma. Brahma makes the regular task of taking screenshot more interesting and provides a new twist with some new options. The user experience has been optimized for Symbian^3 touch screens devices.
The application is paid but at the same time it is also open-source. So any one who purchases Brahma, can request the source-code. As the application is licensed under GPLv2, the purchaser is free to modify the code.
Brahma can be purchased from here.

Also Brahma is being offered at a special early-adopter price(for first 30 days) of just Rs. 10, that’s just a price of a cup of tea. So download it and let me know your feedback at the Brahma Support Forums.