Posts in 2008


Europeana Launches, Again

The European Union's digital library Europeana, 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 its innards. 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 in Paris. The conference is proving extremely interesting with many notables, like, 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 pair programming 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

The US 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 the story. 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 appointments. 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, Stack Overflow, 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 Information Society's public consultation 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 competitiveness. 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 Economist newspaper. 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 (here and here) of Parkour and Free running. 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

Following a study that my colleague Panagiotis Louridas and I published in the August 2008 issue of the Communications of the ACM, Victor Grishchenko 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

Today the European Research Council announced the 105 recipients of its prestigious advanced research grants in physics and engineering. 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 many studies on Wikipedia, 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. A new study, which my colleague Panagiotis Louridas and I published in the August 2008 issue of the Association for Computing Machinery flagship magazine 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 at Wharton, 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. Following a similar study I performed last year, here is my analysis of the current status and trends for the impact factor 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, gnuplot, and UMLGraph. 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 Red Star.

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), OpenSolaris, and FreeBSD. 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 online.) 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"

Software Builders

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 at the 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"

Assigning Responsibility

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 keynote address 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.

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 of reasons.

Continue reading "Backwards Compatibility in Office Open XML"

The Power of an Integrated Platform

FreeBSD, unlike Linux, is not a kernel, but a complete operating system. 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 Epsilon 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 Unicode block, and got bitten by an unexpected runtime error. Angelika Langer, 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"

Rational Metaprogramming

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 MIDlet 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 My Location service. Here is a Google Earth example of the data I'm collecting. Yesterday, 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"

Become a Unix command line wizard
edX MOOC on Unix Tools: Data, Software, and Production Engineering
Debug like a master
Book cover of Effective Debugging
Compute with style
Book cover of The Elements of Computing Style
This blog is also available as an RSS feed:

Category Tags
AI (4)
AWS (4)
Android (2)
Apple (11)
C (21)
C++ (17)
Computers (58)
Databases (5)
Debugging (10)
Discussion (6)
Electronics (15)
Environment (1)
FreeBSD (26)
Funny (14)
GSIS (5)
Git (2)
Google (6)
Government (3)
Hacks (26)
Hardware (27)
History (13)
Information systems (1)
Internet (12)
Java (26)
JavaScript (1)
Linux (7)
Management (27)
Microsoft (11)
One Laptop Per Child (3)
Open source (58)
Opinion (30)
Parenting (11)
Perl (13)
Photos (13)
Politics (5)
Programming (110)
Python (3)
R (1)
Raspberry Pi (6)
Risks (7)
Scala (1)
Science (34)
Security (26)
Sights (19)
Smartphones (3)
Software (22)
Software engineering (93)
Standards (7)
System administration (46)
Teaching (9)
Technology (33)
Testing (3)
Tips (43)
Tools of the Trade (52)
Travel (9)
UML (6)
Unix (52)
Web (31)
Windows (17)
Writing (45)
XML (10)
vim (5)
Complete contents (380)
2024 (1)
2023 (5)
2022 (2)
2021 (3)
2020 (15)
2019 (4)
2018 (5)
2017 (20)
2016 (7)
2015 (6)
2014 (5)
2013 (13)
2012 (17)
2011 (14)
2010 (13)
2009 (40)
2008 (40)
2007 (41)
2006 (48)
2005 (44)
2004 (30)
2003 (7)

Last update: Monday, February 5, 2024 5:49 pm

Creative Commons Licence BY NC

Unless otherwise expressly stated, all original material on this page created by Diomidis Spinellis is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.