Who Maintains the GNU Plotutils?
The GNU plotutils
package contains a reimplementation of a pic language processor.
I find pic invaluable for drawing diagrams;
in fact the sequence diagram editor in my
UMLGraph system, depends on it.
The current version is 2.4.1, and was released in July 2000 - almost four years ago.
I have discovered two bugs, but no one seems to be maintaining the package.
This is unfortunate.
Continue reading "Who Maintains the GNU Plotutils?"Last modified: Monday, December 27, 2004 2:34 pm
Lack of Progress in Palm Applications
An article in slashdot
recently discussed the limitations in the current breed of Palm
handhelds.
I am glad somebody has pointed out the lack of progress in the palmtop market. My 12-year old HP-100LX is literally falling appart, yet I can not find a worthwhile replacement.
Continue reading "Lack of Progress in Palm Applications"Last modified: Friday, May 13, 2005 9:59 am
Measuring the Effect of Shared Objects
For the Code Quality
book I am writing I wanted to measure the memory savings of
shared libraries.
On a lightly loaded web server these amounted to 80MB,
on a more heavilly loaded shell access machine these ammounted
to 300MB.
Continue reading "Measuring the Effect of Shared Objects"Last modified: Saturday, December 11, 2004 8:54 pm
Code Reading Example: the Linux Kernel Load Calculation
A colleague's Linux machine was exhibiting a very high load value,
for no obvious reason.
I wanted to make him point the kernel debugger on the routine calculating
the load.
It has been more than 7 years since the last time I worked on a Linux
kernel,
so I had to find my way around from first principles.
This is an annotated and slightly edited version of what I did.
Continue reading "Code Reading Example: the Linux Kernel Load Calculation"Last modified: Thursday, November 25, 2004 9:40 am
Poster Presentations
I've found myself twice in a period of six months giving a poster
presentation at a conference.
This has been a new experience for me, and, by looking at what others
were doing, I realized I could do a lot better.
Continue reading "Poster Presentations"Last modified: Friday, November 19, 2004 0:00 am
Book Review: C++ Coding Standards
A number of years ago, reading Koenig's and Moo's
Ruminations on C++ [1] I made a wish for more of the
same, updated to reflect current C++ practice.
My wish has come true.
The book
C++ Coding Standards: 101 Rules, Guidelines, and Best Practices
by Herb Sutter and Andrei Alexandrescu [2]
is an indispensable book for all serious C++ programmers.
Continue reading "Book Review: C++ Coding Standards"Last modified: Sunday, November 14, 2004 4:41 pm
Accuracy and Precision in Scientific Publications
The interesting article by Paper, Rodger and Simon,
Voice Says it All in the Navy,
(Communications of the ACM
47(8):97-101, August 2004), is tarred by an unfortunate
and, sadly, increasingly common error. In the article's tables and
explanatory text the authors report their results with an unwarranted
precision of three significant digits: 71.4, 42.9, 57.1, and so on.
Continue reading "Accuracy and Precision in Scientific Publications"Last modified: Thursday, October 28, 2004 7:47 pm
Involving Students With Open Source Projects
A Slashdot story titled
OSDDP: Involving Students With Open Source Docs
prompted me to describe my experiences with the
Software Comprehension and Maintenance
course I am teaching.
The reactions from the—difficult to please—slashdot crowd
were surprisingly positive and friendly.
Continue reading "Involving Students With Open Source Projects"Last modified: Monday, October 25, 2004 10:29 am
A Toddler Discovers Globalization
A toddler decided to explore and uncover
the production chain behind his touch-and-feel book.
Continue reading "A Toddler Discovers Globalization"Last modified: Saturday, October 16, 2004 11:41 am
Apple's Presence in Greece Appears to be a Joke.
Earlier today I tried to buy an Airport Express base station by
visiting what appeared to be an Apple store in Stournari street:
the road in Athens with the largest physical concentration of computer shops.
Continue reading "Apple's Presence in Greece Appears to be a Joke."Last modified: Wednesday, October 6, 2004 11:15 pm
Cracker Code Review
According to a popular myth, crackers are computer whiz kids:
brilliant software developers who run circles around their
"peers" in the corporate world.
When my undergraduate student Achilleas Anagnostopoulos sent me a
pointer
to the source code of the
Microsoft GDIPlus.DLL JPEG Parsing Engine Buffer Overflow
exploit, I decided to test the myth
by performing a code review of the exploit's source code.
The results are not flattering for the exploit's developers:
no self-respecting professional would ever write production code of
such an abysmally low quality.
Sorry M4Z3R.
Continue reading "Cracker Code Review"Last modified: Tuesday, October 5, 2004 10:47 pm
A Survey of Language Popularity
My PhD student
Vassilios Karakoidas
pointed my to an on-line
language popularity survey.
Continue reading "A Survey of Language Popularity"Last modified: Saturday, September 25, 2004 7:59 pm
System administration stories: The Revolt
Can a small embedded system the size of a paperback
lead a group of machines into revolt?
Apparently yes.
Continue reading "System administration stories: The Revolt"Last modified: Saturday, September 11, 2004 10:47 pm
Digital Data Makes Anything Possible
Once data becomes digital anything and everything becomes possible.
Consider arranging the books on your bookshelf by the color of
their book cover.
Continue reading "Digital Data Makes Anything Possible"Last modified: Tuesday, August 31, 2004 2:59 pm
U.S. military sites offer a quarter million Microsoft Word documents
I was Google-searching for the Air Force Operational Test & Evaluation
Center publication "Software Maintainability - Evaluation Guide". To
make my search more efficient I restricted it to military (.mil) sites,
using the Google keyword "site:.mil".
I was not able to find the publication I was looking for, but was surprised
to see a number of Microsoft Word documents in the search results.
Continue reading "U.S. military sites offer a quarter million Microsoft Word documents"Last modified: Tuesday, August 31, 2004 2:11 pm
Continous Bookmarking
When editing documents or code, my not so agile fingers, often trigger
a movement or search command that accidentally throws me to a random
location in the text I am editing.
How can I return back?
Amazingly, I noticed I am using exactly the same trick for returning back
on both the vim editor I use for most of
my editing tasks, and Microsoft Word I use for collaborating with many
colleagues.
Continue reading "Continous Bookmarking"Last modified: Wednesday, August 25, 2004 9:57 am
Detective Work and Dropped TCP Connections
I had problems with TCP connections (mostly long-lasting ssh sessions)
getting dropped on my ADSL line.
In the end, I found that the problem had two different roots.
The detective work behind establishing them is, I believe, interesting.
It also shows how accessible source code, and the will to use it,
can be a tremendous boost to difficult system administration problems.
Continue reading "Detective Work and Dropped TCP Connections"Last modified: Monday, August 23, 2004 11:12 am
The hypot() Mystery
I was writing a section for the
Code Reading
followup volume, and wanted to demonstrate the pitfalls of
using homebrewn mathematical functions instead of the library
ones.
As an example, I chose to compare the C library
hypot(x, y)
function,
against
sqrt(x * x, y * y)
.
I created a plot of "unit in last place" (ulp) error values between
the two functions, which demonstrated how the error increased for larger
values of y.
Continue reading "The hypot() Mystery"Last modified: Monday, August 16, 2004 7:05 pm
Patching Framework III
Time warp.
I needed to read some old files I wrote in 1992 using the Ashton-Tate
Framework III program.
Unfortunately, trying to run the program under Windows XP resulted in a
"Divide overflow
" error.
A bit of searching on the web revealed that the problem was related
to the system's speed (1.6GHz).
Apparently, Framework tries to calculate the speed of the machine
by dividing a fixed number with a loop counter;
on modern machines this results in the overflow.
Continue reading "Patching Framework III"Last modified: Thursday, August 12, 2004 9:47 am
Not All Open-source Systems Are Perfect
I am a big fan of open-source software, and I use many open-source
programs on a daily basis.
Some of my favourite systems, on which I depend, include
the FreeBSD operating system,
the apache web server, and
the vim editor.
I also often use
graphviz,
CVS,
Ghostview,
gnuplot,
LaTeX, and
the GNU C Compiler.
I find all of these systems robust, well documented, and, in many cases,
superior to their proprietary alternatives.
Continue reading "Not All Open-source Systems Are Perfect"Last modified: Tuesday, July 20, 2004 11:09 am
Google Mail and Privacy
I recently subscribed to Google mail, to obtain a reasonable alias
(I thought I could get my loved dds initials, but it turned I would
have to use at least 6 characters). However, I doubt I will use the
service, because I really don't trust Google to search through my
personal email data. I have 300MB of email now, representing about
18 years of email discussions. (I routinely remove all attachments,
which I file separately, so the size of my emails is relatively modest).
If I trusted Google, I would like to upload all my messages to their
servers, and utilize Google's awesome search capabilities. However,
the truth is, I see too many ways for the service to be misused.
Continue reading "Google Mail and Privacy"Last modified: Friday, June 25, 2004 11:06 am
Optimizing ppp and Code Quality
The Problem
While debugging a problem of my ppp connection I noticed that
ppp was apparently doing a protocol lookup (with a file open,
read, close sequence) for every packet it read.
This is an excerpt from the strace log, one of my
favourite debugging tools.
Continue reading "Optimizing ppp and Code Quality"Last modified: Sunday, May 16, 2004 1:09 pm
Computer Languages Form an Ecosystem
(This is a copy of an
article I posted on
slashdot on March 15th,
in response to a discussion titled
C Alive and Well Thanks to Portable.NET.
Many posters argued that the C language is dead.
I add my response here, because one month after its original slashdot submission,
I am still getting web site hits from it.)
Continue reading "Computer Languages Form an Ecosystem"Last modified: Sunday, April 18, 2004 1:10 pm
Technological Complexity
As a child I used to be able to assemble and disassemble my bike;
the most sophisticated artefact I owned.
I could understand the working of its (simple) gear system,
the functioning of the brakes,
the assembly of its ball-bearings.
As a teen I had a reasonably complete understanding of the IBM-PC
I used.
I knew
the 8088 processor's complete instruction set,
the instruction encoding details,
the pinout and operation of the ISA bus and the Centronics and RS-232 interfaces,
the operation of the 6845 video controller and the 4164 memory chips,
all the BIOS calls,
all the MS-DOS commands and system calls, and the complete details
Basic and C programming languages I programmed in.
I also knew the principles of operation behing the processes used
to build the computer's chips,
the MFM recording format used by the hard disk, and
the operation of the CRT monitor.
Continue reading "Technological Complexity"Last modified: Saturday, April 10, 2004 8:53 pm
Binary File Similarity Checking
How can one determine whether two binary files
(for example, executable images) are somehow similar?
I started writing a program to perform this task.
Such a program could be useful for determing
whether a vendor had included GNU
Public License (GPL)
code in a propriatary product, violating the GPL license.
After writing about 20 lines, I realized that I needed an accurate
definition of similarity than the vague
"the two files contain a number of identical subsequences"
I had in mind.
Continue reading "Binary File Similarity Checking"Last modified: Friday, March 19, 2004 2:15 pm
Putting the Jini Back into the Bottle
It has been brought to my attention that
Microsoft is sending
cease and desist email letters regarding the illegal distribution
of the Windows source code.
Continue reading "Putting the Jini Back into the Bottle"Last modified: Wednesday, February 18, 2004 12:01 am
A Spam-resistant Email Network
I am really fed up with spam. Yes, I am behind a spamassassin filter,
and it is getting less and less useful with every passing day. Many other
interesting ideas (including ji's patent) have failed to catch on and
provide significant relief. In a recent column in IEEE Spectrum
Robert Lucky expressed his yearning for the days when email was only used by
the elite in the know, the select few who "were on email".
Continue reading "A Spam-resistant Email Network"Last modified: Thursday, February 5, 2004 9:27 am
How Not to Conduct a Poll
Recently the
ACM
Council asked members to provide feedback on the issue of expanding
legal protections for collections of data by means of an on-line poll.
Opening the policy feedback decision-making process to the ACM membership
promotes member participation and transparency.
However, I have two
serious reservations regarding the way the member feedback was requested.
Continue reading "How Not to Conduct a Poll"Last modified: Wednesday, January 21, 2004 3:38 pm
Writing, GUIs, and 4000 Years of Progress
The images speak for themselves.
Continue reading "Writing, GUIs, and 4000 Years of Progress"Last modified: Tuesday, January 20, 2004 1:13 pm
Changes in Web Site Rankings
My colleague
Prof. Gianakoudakis
performed an interesting comparative study.
He compared the quality of the web sites of all Greek ministries
(government departments for our US readers)
in terms of the currency of their material,
communication, usability, and the underlying technology.
An interesting element of the study is the relative change of the
ranking of each web site from 2002 to 2003, as can be seen in
the following table:
Continue reading "Changes in Web Site Rankings"Last modified: Saturday, January 10, 2004 11:00 pm