30/03/2010
Things I never, ever, want to hear. Ever.

6 Comments |
Life in the workplace, programming, rants, Unit Testing, wtf | Tagged: Compiler, LOC, negligence, nonchalance, OS, SLOC, Software, stupid |
Permalink
Posted by Steven Pigeon
27/03/2010
Curt Schimmel — Unix Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers — Addison-Wesley, 1994, 396 pp. ISBN 0-201-6338-8

(Buy at Amazon.com)
Schimmel proposes an introduction to cache hierarchies and their different technologies and the problems and complexities they incur for an operating system. The book starts off by presenting and comparing the various cache architectures—physical vs virtual caches, mostly. Another part is dedicated to the various locks and exclusion mechanisms such as spin locks, semaphores, etc., that may be found in Unix-type systems. He finishes with cache consistency problems for multiprocessors.
Read the rest of this entry »
Leave a Comment » |
Operating System, Suggested Reading |
Permalink
Posted by Steven Pigeon
23/03/2010
Developing software isn’t easy. No, I’m serious. It’s not. Every year that passes brings us more experience, and sometimes reality bites us real hard in the ‘rear.

For example, people do not always remain with a project until it completes. Often, people join a team for a summer, or for a year or two, then leave. That’s normal and expected. Of course, if the project is large, or the stay short, the code portion that was assigned to a particular individual may not be completed by the time he leaves. Can you manage to leave a team gracefully?
Read the rest of this entry »
Leave a Comment » |
Life in the workplace, programming, Unit Testing | Tagged: Comments, Developers, Developers Developers Developers, Documentation, God's Eye View, LOC, projects, SLOC, Software, team, WIP |
Permalink
Posted by Steven Pigeon
16/03/2010
QuickSort, due to Hoare, is one of the best comparison-based sorting algorithms around. There are a number of variations, but the vanilla QuickSort does a great job… most of the times.

Indeed, there are occasions where QuickSort leaves its expected
run-time to reach
run-time, its worst case. But what does it take to push QuickSort into its worst behaviour?
Read the rest of this entry »
4 Comments |
algorithms, hacks, Mathematics, programming, rants, theoretical computer science, wtf | Tagged: bubble sort, C, comparison sort, computational complexity, evil, Hoare, malicious data, QuickSort, sort, sorts, Worst Case, Worst Case Behavior |
Permalink
Posted by Steven Pigeon
09/03/2010
Phimuemue, in a recent post (at the time of writing, anyway) present his variation on sorting floating point values using radix sort. His implementation wasn’t dealing with the pesky sign bit so I offered a slight modification to his algorithm as a comment on his blog. But for some reason, he did not allow to post it.

So I’ll present my solution here.
Read the rest of this entry »
8 Comments |
algorithms, C, C99, hacks, Portable Code, programming | Tagged: endian, endianness, endians, floating point numbers, IEEE 754, Radix Sort, stddint.h |
Permalink
Posted by Steven Pigeon
07/03/2010
Ulrich Meyer, Peter Sanders, Jop Sibeyn (eds.) — Algorithms for Memory Hierarchies — Springer, (Lectures Notes on Computer Science LNCS # 2625), 2003, 428 pp. ISBN 978-3540-00883-5

(Buy at Amazon.com)
This book is a collection of chapters on various topics pertaining to memory hierarchies and their algorithms, but written by several different authors, without any special uniformity in tone or topics; but that’s OK because it allows the reader to have a broad view of algorithms for memory hierarchies.
Read the rest of this entry »
Leave a Comment » |
algorithms, data structures, Mathematics, Operating System, programming, Suggested Reading, theoretical computer science |
Permalink
Posted by Steven Pigeon
07/03/2010
Peter Brass — Advanced Data Structures — Cambridge University Press, 2008, 492 pp. ISBN 978-0521-88037-4

(Buy at Amazon.com)
The first part of the book concentrates on search trees and variants, whether balanced trees, interval trees, or heaps. Chapters are dedicated to connected components and like algorithms, one to algorithms for strings, and one for hash tables. Follows appendices on computation, cache oblivious algorithms, etc.
Read the rest of this entry »
1 Comment |
algorithms, data structures, Mathematics, Object Oriented Programming, programming, Suggested Reading, theoretical computer science |
Permalink
Posted by Steven Pigeon
Avoiding the Junkyard
23/03/2010Developing software isn’t easy. No, I’m serious. It’s not. Every year that passes brings us more experience, and sometimes reality bites us real hard in the ‘rear.
For example, people do not always remain with a project until it completes. Often, people join a team for a summer, or for a year or two, then leave. That’s normal and expected. Of course, if the project is large, or the stay short, the code portion that was assigned to a particular individual may not be completed by the time he leaves. Can you manage to leave a team gracefully?
Read the rest of this entry »