For several months, I had been editing a new edition of a textbook (Atlas of the Canine Brain, ISBN 978-0-916182-17-5). This book was first published in Russian in 1959, then translated and published in English in 1964. Although the English book was for sale, the publishing company (NPP Books) had only a limited number of copies left. So, a Print-On-Demand (POD) version of the book was needed. Of course, in 1964 there were no personal computers. (Even in the early ’70’s, I was still using punched cards.) The book was written by typewritten on 8.5″ by 11″ paper, but the original manuscript, which also included the figures, was lost. Fortunately, the text and figures were recovered from the Russian and English books using a scanner and optical character recognition (OCR). Call me old fashioned, but it still seems quite remarkable that the technology exists to recover text from old books.
Author Archives: kaby76
Parallel programming with .NET
Visual Studio 2010 has some interesting new features, one of which is parallel programming. This simple test, written in C# and F#, tests the difference between serial and parallel computations of Fibonacci numbers. Indeed, there is a 4-fold improvement for certain computations–but not every computation–on my quad-core multiprocessor.
A peek at the Google Chromium OS
When I first learned that Google released the source code for their new operating system, I was determined to try it out. Unless you have been living in the Styx for the last year, you must have read that it described by many as a revolution in operating systems …
How to invoke a shell on a directory through Windows Explorer
In the past, there used to be the Microsoft PowerToys for Windows XP which would add in the capability of invoking a Cmd shell on a directory through Windows Explorer. Â You could right click on the diretory, and it would have a pop-up item available to do just that. Â But, PowerToys is not supported for …
Continue reading “How to invoke a shell on a directory through Windows Explorer”
Computing the nearest common ancestor
This post is about computing the nearest common ancestor. It is the result of a month or so of reading papers and implementation. Although there has been a lot of research into the problem, there are no implementations online of the two main algorithms presented. Worse, examples in the papers are practically useless. For example, …
Bit hacks to compute floor(log2(int))
I wrote a program in the last day to determine the fastest method of seven implementations that I found over the Web that solves the operation “floor(log2(int))”. This operation takes an integer and determines the position of the topmost bit that is one. So, for example floor(log2(0x2)) would be 1, floor(log2(0x52)) would be 6. This …
Netgear router monitor
Feeling bored and looking for some fun, I wrote a Netgear router monitor program. This is what programmers do. Â I was interested in seeing what websites were accessed through the router at my home. Â While there is a log available via the router, the buffer in a router are notoriously small and data that are …
Tree graph drawing
Finally, I seem to be making some headway into graph drawing.
Expecting more
Call me old fashioned for working on compiler technologies. But recently, I was interested in displaying a parse tree generated by a parser that I am writing. For several weeks I read some well-known papers on tree layout, then implemented the algorithms described in these papers. To my chagrin, this took a lot longer than I expected. Am I losing it as a software engineer?