Europeana Launches, Again
The European Union's digital library
launched with great fanfare last month only to crash two hours later
due to high demand.
Today it came back up again with quadruple serving capacity and a promise
for a suboptimal user experience during its test phase.
Continue reading "Europeana Launches, Again"
No Blinkelichten, Please
A computer's flashing lights used to fascinate me.
They showed me it was alive and offered me a glimpse on
They also epitomized the hacker culture of the famous "Blinkenlichten" sign.
Continue reading "No Blinkelichten, Please"
Sound-Bytes from the Open World Forum
I'm currently attending the
Open World Forum taking place
The conference is proving extremely interesting with many notables,
Jim Whitehurst the president and CEO of Red Hat and
Mike Milinkovich the executive director of the Eclipse Foundation,
talking and exchanging opinions.
Many of the discussions are too cerebral to be effectively blogged,
but here are some sound-bytes I noted down from the session on
public policies to promote sustainable development of shared resources.
Continue reading "Sound-Bytes from the Open World Forum"
Robert Kaplan on Strategy Execution
Today I attended a presentation by
Robert S. Kaplan,
a Professor of Leadership Development at the
Harvard Business School,
on using strategy maps and balanced scorecards in a strategy execution system.
Dr. Kaplan managed to distill 15 years of research and its application by
the world's leading companies into a fascinating 90 minute talk.
These are my notes.
Continue reading "Robert Kaplan on Strategy Execution"
The Value of Computing Paradigm Diversity
Today I wrote a combinatorial optimization algorithm to match members of
teams according to the psychological traits of each pair's members.
The program appeared to rearrange the initial random allocation of pairs
in a way that might match my specifications.
However, as I'll use this allocation for an experiment that I'll be able
to perform only once, I realized that I wanted to carefully verify the results.
How does one verify the operation of such a program?
Continue reading "The Value of Computing Paradigm Diversity"
Monitor Process Progress on Unix
I often run file-processing commands that take many hours to
finish, and I therefore need a way to monitor their progress.
The Perkin-Elmer/Concurrent OS32 system I worked-on for a couple
of years back in 1993 (don't ask)
had a facility that displayed for any executing
command the percentage of work that was completed.
When I first saw this facility working on the programs I maintained,
I couldn't believe my eyes, because I was sure that those rusty
Cobol programs didn't contain any functionality to monitor their progress.
Continue reading "Monitor Process Progress on Unix"
A Look at Zero-Defect Code
National Security Agency
has released a case study showing how to
develop zero-defect code in a cost-effective manner.
The researchers of the project conclude that,
if adopted widely, the practices advocated in the case study
could help make commercial software programs more reliable and less vulnerable.
I examined a small part of the case study's code, and was not impressed.
Continue reading "A Look at Zero-Defect Code"
Missing the Point
A number of Greek web sites offer for download a very strange Excel form.
Continue reading "Missing the Point"
An Inadvertent Denial of Service Attack
If you're wondering why this blog was down for the past few hours, here is
In an earlier blog post I listed a small script
I'm using to lock-away door knockers who attempt to break into our
group's computer by trying various passwords.
If you like puzzles, read the script again and think how it
could be used against us by isolating our computer from the entire world.
Continue reading "An Inadvertent Denial of Service Attack"
Suspend Windows from the Command Line
I used to leave my computer up all night, but I've come to realize that this
is ecologically unsound.
Now I suspend it before going to sleep, but this missed running
a daily job that used to run at 03:00 am.
The job marks my students' exercises and send me email with the next day's
I thus decided to schedule the task to wakeup my computer at 3:00 am,
run the job, and then suspend it again.
The Windows scheduler allows you to specify a wakeup option,
but not a subsequent suspend.
Furthermore, it seems that Windows lacks a way to suspend from the
command line (while maintaining the ability to hibernate), and the
only free tools on the web are distributed in executable form,
so I ended writing a small tool myself.
Continue reading "Suspend Windows from the Command Line"
Web Services Come of Age
For years I've reacted to the hype surrounding web services with skepticism.
I found SOAP, WSDL, and UDDI to be too complex and brittle for wide deployment,
and I also wondered what types of services could be better provided over the
web rather than locally.
A new excellent developer site,
answers both of my concerns.
Continue reading "Web Services Come of Age"
Central Planning Hurts Research
Today I was invited to contribute to the European Commission
that will be used to draft (in the Commission's words)
a new strategy for ICT research and innovation aiming is to put European
ICT industry, especially SMEs, to the fore of the race for global
I believe that the Commission's approach towards research planning
and funding is fundamentally wrong.
Continue reading "Central Planning Hurts Research"
Unzipping Files in Order
Over the past couple of years I've enjoyed listening to the
audio edition of the
The material is superb
(although I occasionally get the feeling of listening to the
Voice of America),
the articles are read in a clear voice,
the data's encoding is plain MP3,
unencumbered by digital rights (restrictions) management silliness,
and the audio format is convenient to listen on the metro or while jogging.
Unfortunately, the articles in the audio edition's zip file are
haphazardly ordered, which, until today, marred the enjoyment of my listening.
Continue reading "Unzipping Files in Order"
Daring Youth: Then and Now
My friend and colleague Stephanos Androutsellis-Theotokis
pointed me to two amazing YouTube videos
He commented that
it's crazy what these people can do,
and with how much flow and speed.
Continue reading "Daring Youth: Then and Now"
UMLGraph Version 5.1
Over the summer two articles presented
UMLGraph to the masses.
Paul Duvall wrote on IBM developerWorks an article titled
Automation for the people: Pushbutton documentation, and
Meera Subbarao published on DZone Javalobby another piece on how to
reverse-engineer source code into UML diagrams.
In addition, I received a number of interesting patches and contributions.
As a result I decided it was time to release UMLGraph version 5.1.
Continue reading "UMLGraph Version 5.1"
Saving the Editor's History
I recently spent a few days writing some tricky bit-twiddling code to
implement a radix tree.
I found myself making many programming mistakes, and I thought it would be
interesting to study them, examine their contributing factors, and
think how each of them could be prevented.
Continue reading "Saving the Editor's History"
Two More Years of Wikipedia Data
that my colleague Panagiotis Louridas and I published in the August 2008 issue of the Communications of the ACM,
gave me a copy of a complete Wikipedia dump covering 2006
and 2007 (enwiki-20080103-pages-meta-history.xml.7z).
Over the past four days I reran the study on this new data set.
Continue reading "Two More Years of Wikipedia Data"
A Child's Crontab
When the time to go to sleep is approaching,
all children seem to be configured with the same crontab.
Continue reading "A Child's Crontab"
Top Researchers in Computer Science and Informatics
European Research Council announced
of its prestigious advanced research grants in physics
Eight proposals got selected by the Computer Science and Informatics panel.
As I had also applied for an ERC advanced research grant,
I followed the results with considerable interest.
Given the highly competitive nature of the program and the carefully
designed proposal and evaluation procedure,
the selected proposals make an interesting reading;
the winners are clearly the researchers and projects to watch in the future.
Continue reading "Top Researchers in Computer Science and Informatics"
Wikipedia Faces no Limits to Grow
Although there have been
little attention has been given to the limits to its growth.
As Wikipedia is expanding, it is possible that new concepts are added
without having corresponding articles, or that the number of new
concepts grows slower than the number of articles. In the first case,
Wikipedia's coverage will deteriorate as it will contain articles
drowned in an increasing number of undefined concepts. In the second
case, Wikipedia's growth may stall.
study, which my colleague Panagiotis Louridas and I
published in the
August 2008 issue of the
Association for Computing Machinery
Communications of the ACM,
shows that Wikipedia sits
comfortably between the two extremes.
Continue reading "Wikipedia Faces no Limits to Grow"
Eric K. Clemons on Monetizing the Net Without Advertising
Earlier today I attended a very interesting and entertaining talk that
Eric K. Clemons,
Professor of Operations and Information Management and Management
gave on Internet business models that don't rely on advertising.
Continue reading "Eric K. Clemons on Monetizing the Net Without Advertising"
Impact Factor of Computer Science Journals 2007
The ISI Web of Knowledge
recently published the 2007
Journal Citation Reports.
a similar study I performed last year,
here is my analysis of the current status and trends for the
in computer science journals.
Continue reading "Impact Factor of Computer Science Journals 2007"
The Way We Program
If the code and the comments disagree, then both are probably wrong.
Continue reading "The Way We Program"
Denise Rousseau on Publishing to Top Tier Journals
Yesterday I heard a talk by
Denise M. Rousseau,
President of the Academy of Management and the 1998-2007 Editor-in-Chief of the Journal of Organizational Behavior.
During the talk (which turned out to be an interesting Q&A discussion)
I wrote down some of the tips she gave.
Here they are.
Continue reading "Denise Rousseau on Publishing to Top Tier Journals"
Interoperability, at Last
Language is a very powerful way to describe behavior.
Therefore even when I create pictures, instead of dragging around my mouse,
I use declarative tools like GraphViz,
These allow me to describe what I want to draw, instead of
how I want the end-result to look like.
The truth however is that the end-results are not always perfect.
Today I realized that the state of the art has advanced to the point
where I can create the drawing declaratively, and then visually
polish the final drawing.
Continue reading "Interoperability, at Last"
A Visit at BMW's Leipzig Factory
Yesterday I had a chance to tour the BMW Leipzig factory.
It was a unique experience, in which I witnessed
the sophistication of modern production methods,
and the most well-organized complex human undertaking I have seen first hand.
The factory literally runs like a clockwork, eerily bringing to my mind
the descriptions of Mars's factories in Bogdanov's science fiction novel
Continue reading "A Visit at BMW's Leipzig Factory"
Open and Closed Source Kernels Go Head to Head
Earlier today I presented at the
30th International Conference on Software Engineering a
research paper comparing the
code quality of Linux, Windows (its
research kernel distribution),
For the comparison I parsed multiple configurations of these systems (more than ten million lines), and stored the results in four databases, where I could run SQL queries on them. This amounted to 8GB of data, 160 million records.
(I’ve made the databases and the SQL queries available
The areas I examined were file organization, code structure, code style, preprocessing, and data organization.
To my surprise there was no clear winner or looser, but there were interesting differences in specific areas.
Continue reading "Open and Closed Source Kernels Go Head to Head"
The tools and processes we use to transform our system’s source code into an application we can deploy or ship were always important, but nowadays they can mean the difference between success and failure. The reasons are simple: larger code bodies, teams that are bigger, more fluid, and wider distributed, richer interactions with other code, and sophisticated tool chains. All these mean that a slapdash software build process will be an endless drain on productivity and an embarrassing source of bugs, while a high-quality one will give us developers more time and traction to build better software.
Continue reading "Software Builders"
In Presentations Less is More
A couple of months ago I prepared the slides for a paper I will present
30th International Conference on Software Engineering.
After reading Garr Reynolds's book
Presentation Zen: Simple Ideas on Presentation Design on Presentation Design and Delivery
I became enlightened, and I decided to redo the presentation from scratch,
creating less cluttered, more focused, and simpler slides.
Continue reading "In Presentations Less is More"
Over the past few days I worked over a large code body correcting various
accumulated errors and style digressions.
When I finished I wanted to see who wrote the original lines.
(It turned out I was not entirely innocent.)
Continue reading "Assigning Responsibility"
LTO Tape Drive Compression Considered Harmful
I used to think that tape drive compression was a silly marketing trick
used by manufacturers to inflate the advertised capacity of their tape drives.
Apparently it is worse than that.
Continue reading "LTO Tape Drive Compression Considered Harmful"
A Minute Minute Minder
Today I delivered the opening
at the 4th Panhellenic Conference on Computer Science Education.
For a number of reasons (more on that later) I wanted to keep track of
my progress during the presentation.
For this I put together a minute minder that displayed the
time from the presentation's start and the slide I should be in.
I could thus adjust my pace to finish as planned.
Continue reading "A Minute Minute Minder"
Using and Abusing XML
Words are like leaves; and where they most abound,
Much fruit of sense beneath is rarely found.
— Alexander Pope
I was recently gathering GPS coordinates and cell identification data, researching the algorithms hiding behind Google’s “My Location” facility.
While working on this task, I witnessed the great interoperability benefits we get from XML. With a simple 140-line script, I converted the data I gathered into a de facto standard, the XML-based GPS-exchange format called GPX. Then, using a GPS-format converter, I converted my data into Google Earth’s XML data format A few mouse clicks later, I had my journeys and associated cell tower switchovers beautifully superimposed on satellite pictures and maps.
Continue reading "Using and Abusing XML"
Backwards Compatibility in Office Open XML
As a member of my country's
national standards body
committee on electronic data processing, I lately spend considerable time
deliberating what our position should be in the upcoming Office Open XML
ISO Ballot Resolution Meeting in Geneva.
My biggest objection concerns large parts of the standard that
are proposed to live in an Annex containing normative descriptions of
deprecated features that will only be used by existing binary documents.
The rationale behind this decision is backwards compatibility.
My opinion is that this solution is counterproductive for a number
Continue reading "Backwards Compatibility in Office Open XML"
The Power of an Integrated Platform
FreeBSD, unlike Linux, is not a kernel, but a complete
This allows a much smoother integration of its components,
which is a real boon when you try to locate and fix a problem.
The source code for all the parts is all ordered in a single
directory tree for you to examine and experiment with.
Continue reading "The Power of an Integrated Platform"
What I'd Say to Bill Gates
Bill Gates is visiting Athens tomorrow.
In his short stay he'll inaugrate Microsoft's
so-called innovation center, which is provided
as an offset for a deal Microsoft signed with the Greek government
for the purchase of 70.000 licenses, and he'll also give a talk
on Microsoft's vision for the future of technology.
As a prelude to this event
the Sunday newspaper Eleftherotypia inset
has invited a few Greek open-source advocates to give in a few sentences
what they would say to Bill Gates during his visit.
Continue reading "What I'd Say to Bill Gates"
The Mysterious TreeMap Type Signature
For my lecture notes on file handling
I wrote a small Java program to display the number of characters
that fall in each
and got bitten by an unexpected
a wizard of Java Generics, kindly provided me with an explanation
of the JDK design,
which I'd like to share.
Continue reading "The Mysterious TreeMap Type Signature"
Metaprogramming, using programs to manipulate other programs, is as old as programming. From self-modifying machine code in early computers to expressions involving partially applied functions in modern functional-programming languages, metaprogramming is an essential part of an advanced programmer’s arsenal.
Continue reading "Rational Metaprogramming"
The Relativity of Performance Improvements
Today, after receiving a 1.7MB daily security log message containing
thousands of ssh failed login attempts from bots around the
world, I decided I had enough.
I enabled IPFW to a FreeBSD system I maintain, and added a script
to find and block the offending IP addresses.
In the process I improved the script's performance.
The results of the improvement were unintuitive.
Continue reading "The Relativity of Performance Improvements"
Curing MIDlet Bluetooth Disconnects
Over the last few days I've been writing a
to collect GPS coordinates and cell identifiers.
I'm doing this
in an effort to look at what algorithms might be needed
in order to implement something similar to Google's
Here is a Google Earth example of the data I'm collecting.
I reached a point where I was collecting all the information I needed,
but the program was often plagued by random disconnections of the Bluetooth
link to the GPS.
Continue reading "Curing MIDlet Bluetooth Disconnects"