blog dds

2009.08.28

The Price of Cheap Labor

The strange entries I've found over the past two weeks I've been researching a large database are innumerable. Some addresses, like Wastington, DC are simply annoying, while others, like Vancouver BC V6T 1Z4 United States, are mildly amusing. It's clear to me that the database has been populated by the massive application of a cheap labor force. This is happening all too often, and I think it is a mistake.

Continue reading "The Price of Cheap Labor"

2009.08.27

Real Heroes

I always admired the pilots of the two PZL M18B "Dromader" fire-fighting airplanes that were stationed in Cephallonia's airport.

Continue reading "Real Heroes"

2009.01.01

The Changing Value of Knowledge and Skills

I feel we're witnessing a watershed in the value of knowledge and many, once crucial, skills. Thanks to powerful ubiquitous computers and the internet, hard-earned knowledge and skills that used to be important are no more. Here are some examples.

Continue reading "The Changing Value of Knowledge and Skills"

2008.12.24

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"

2008.12.22

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"

2008.01.27

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"

2007.06.28

The Tools we Use

It is impossible to sharpen a pencil with a blunt ax. It is equally vain to try to do it with ten blunt axes instead.

— Edsger W. Dijkstra

What’s the state of the art in the tools we use to build software? To answer this question I let over a period of a month a powerful server build from source code about seven thousand open-source packages. The packages I built form a subset of the FreeBSD ports collection, comprising a wide spectrum of application domains: from desktop utilities and biology applications to databases and development tools. The collection is representative of modern software, because, unlike say a random sample of sourceforge.net projects, these are programs that developers have found useful enough to spend effort to port to FreeBSD. The build process involves fetching each application’s source code bundle from the internet, patching it for FreeBSD, and compiling the source code into executable programs or libraries. Over the monthly period I also setup the operating system to write an accounting record for each one of the commands it executed. I then tallied up the CPU times of the 144 million records corresponding to the work in order to get a picture of how our software builds exploit the power of modern GHz processors.

Continue reading "The Tools we Use"

2007.06.21

The Double-Edged Sword of Proprietary Platforms

A recent Slashdot article comment wondered how Windows Vista managed to break existing applications, despite Microsoft having complete control over the platform.

Continue reading "The Double-Edged Sword of Proprietary Platforms"

2007.04.30

Silver Bullets and Other Mysteries

It seemed like a good idea at the time.

—Ken Thomson, on naming the Unix system call to create a file "creat"

When conference participants interrupt a speaker with applause, you know the speaker has struck a chord. This happened when Alan Davis, past editor in chief of IEEE Software, gave a talk on improving the requirements engineering process at the NASSCOM (Indian National Association of Software and Services Companies) Quality Summit in Bangalore in September 2006. He was explaining why a marketing team will often agree with developers on additional features and a compressed delivery schedule that both sides know to be unrealistic. The truth is that this places the two parties in a Machiavellian win-win situation. When the product's delivery is inevitably delayed, the developers will claim that they said from the beginning that they couldn't meet the schedule but that marketing insisted on it. The marketing people also end up with a convenient scapegoat. If the product launch is a flop, they can say they missed a critical marketing time window owing to the product's delay. Where else are we playing such games?

Continue reading "Silver Bullets and Other Mysteries"

2007.03.15

Make vs Ant: Observability

I've long felt uncomfortable with ant as a build management tool. I thought that my uneasiness stemmed from the verbose XML used for describing tasks, and the lack of default dependency resolution. Today, email from a UMLGraph user struggling with a complex ant task made me realize another problem: lack of observability.

Continue reading "Make vs Ant: Observability"

2007.03.09

Software Rejuvenation is Counterproductive

In the February issue of the Computer magazine Grottke and Trivedi propose four strategies for fighting bugs that are difficult to detect and reproduce. Retrying an operation and replicating software are indeed time-honored and practical solutions. When coupled with appropriate logging, they may allow an application to continue functioning, while also alerting its maintainers that something is amiss. On the other hand, the proposal to restart applications at regular intervals (rejuvenation as the authors call it), doesn't allow us to find latent bugs, sweeping them instead under the carpet. This lowers the bar on the quality we expect from software, and will doubtless result in a higher density of bugs and increasingly complicated failure modes.

Continue reading "Software Rejuvenation is Counterproductive"

2007.01.19

Open source as a paradigm for evolving complex systems

Scientists in the 1980s hotly debated the feasibility of US's proposed Strategic Defence Initiative, commonly known as Star Wars. One argument concerned the amount of software needed to control the missile detectors and weapons.

Continue reading "Open source as a paradigm for evolving complex systems"

2006.12.13

Secure Passports and IT Problems

In 2003 Greece, in response to new international requirements for secure travel documents, revised the application process and contents of its passports. From January 1st 2006 passports are no longer issued by the prefectures, but by the police, and from August 26th passports include an RFID chip. The new process has been fraught with problems; many of these difficulties stem from the IT system used for issuing the passports. On December 12th, the Greek Ombudsman (human rights section) issued a special 22-page report on the problems of the new passport issuing process. The report is based on 43 official citizen complaints.

Continue reading "Secure Passports and IT Problems"

2006.11.28

Internet Explorer's Cleaner Look

Today the Microsoft update on my Windows machine asked me to upgrade the Internet Explorer to version 7.0. My bank refuses to work with any browser other than IE, so, although I'm using SeaMonkey as my everyday browser, I'm also forced to keep a current copy of IE. The installation's banner reinforced some of the fears I have regarding Microsoft's technical prowess.

Continue reading "Internet Explorer's Cleaner Look"

2006.09.27

Choosing a Collection: A Discussion with Kent Beck

Recently I reviewed the mansucript of Kent Beck's upcoming book Implementation Patterns. I will certainly put it in the list of books any professional programmer should read. When discussing collections (containers in C++ STL parlance), Kent mentions that his overall strategy for performance coding with collections is to use the simplest possible implementation at first and pick a more specialized collection class when it becomes necessary. My view is that we should choose the most efficient implementation from the start. With prepackaged collections this doesn't have any cost associated with it, and it avoids nasty surprises when a dataset increases beyond the size the programmer envisaged. I added a comment to that effect in my review, and later I sent him an email with a supporting citation, which kindled an interesting exchange. I reproduce our email exchange here, with his permission.

Continue reading "Choosing a Collection: A Discussion with Kent Beck"

2006.07.02

Quality, Democracy, and Code

Edwin Fine recently posted on amazon.com a review of my book Code Quality: The Open Source Perspective. In the review he complained about the quality of proofreading and copy editing. (The errors he noted are now listed in the book's errata.) His comments sparked off a delightful discussion on the reasons behind the falling quality levels of various products, the philosophical importance of this phenomenon, and its effect on coding standards.

Continue reading "Quality, Democracy, and Code"

2006.06.25

Interoperability Requires Temperance

After testing the CScout refactoring browser on the FreeBSD kernel, I decided to try it on Linux. I'm getting there, but slowly, and the reason is the gratuitous use of gcc extensions made in the Linux kernel source code. Every time I come across a program construct that CScout doesn't grok, I have to study the C standards to see if the construct is legal C that CScout fails to implement or a gcc extension. Extensions are trouble, because, they're typically only vaguely documented.

Continue reading "Interoperability Requires Temperance"

2006.04.03

Efficiency Will Always Matter

Many claim that today's fast CPUs and large memory capacities make time-proven technologies that efficiently harness a computer's power irrelevant. I beg to differ, and my experience in the last three days demonstrated that technologies that originated in the 70s still have their place today.

Continue reading "Efficiency Will Always Matter"

2006.03.16

Active Voice v Passive Voice

The most common change copy-editors perform on my prose is the conversion of passive voice constructs into active voice. By now I've become accustomed to it, and I now try to use active voice whenever possible. It turns out that the proverbial coin has in this case two faces.

Continue reading "Active Voice v Passive Voice"

2005.10.28

Human Thought and the Design of Computers

Peter J. Denning wrote an excellent article titled "The Locality Principle" in the July 2005 issue of the Communications of the ACM. The article explained the story behind the locality of reference, a fundamental principle of computing with many applications. In a comment that appeared in the October issue of the same magazine I commented:

Peter J. Denning's "The Profession of IT" column ("The Locality Principle," July 2005) invoked an anthropomorphic explanation for the prevalence of the locality principle in computational systems, observing that humans gather the most useful objects close around them to minimize the time and work required for their use, and that we've transferred these behaviors into the computational systems we design.

A more intellectually satisfying explanation might be that we are dealing with two parallel and independent evolutionary design paths. Trading some expensive high-quality space (fast memory) in order to gain time performance is a sound engineering decision. It is therefore likely that evolution first adapted the human brain by endowing it with limited but versatile short-term memory and large long-term memory structure that exhibits behavior similar to caching.

Millennia later, we make similar design decisions when building computing systems.

The comment triggered an email exchange with Phillip G. Armour. It was one of the most intellectually satisfying email exchanges I've ever had, and I am reproducing it here, with his kind permission.

Continue reading "Human Thought and the Design of Computers"

2005.09.30

The Other Side of Digital Preservation

We often grumble that digital preservation is risky, and that modern storage technologies and file formats quickly become outdated destroying the record of our past. What we don't appear to appreciate is how much more data we are able to preserve, thanks to digital technologies.

Continue reading "The Other Side of Digital Preservation"

2005.08.09

Everything Old is New Again

In 1984 the new kid on the block was Borland's Sidekick. A terminate and stay resident (TSR) program for MS-DOS, it would run in the background, and when it detected the two shift keys being pressed it would overlay the (then character) screen with a calculator, a notepad, a calendar, a dialer or an ASCII table.

Continue reading "Everything Old is New Again"

2005.07.01

Tool Writing: A Forgotten Art?

Merely adding features does not make it easier for users to do things—it just makes the manual thicker. The right solution in the right place is always more effective than haphazard hacking.

— Brian W. Kernighan and Rob Pike

In 1994 Chidamber and Kemerer defined a set of six simple metrics for object-oriented programs. Although the number of object-oriented metrics swelled to above 300 in the years that followed, I had a case where I preferred to use the original classic metric set for clarity, consistency, and simplicity. Surprisingly, none of the six open-source tools I found and tried to use fitted the bill. Most tools calculated only a subset of the six metrics, some required tweaking to make them compile, others had very specific dependencies on other projects (for example Eclipse), while others were horrendously inefficient. Although none of the tools I surveyed managed to calculate correctly the six classic Chidamber and Kemerer metrics in a straightforward way, most of them included numerous bells and whistles, such as graphical interfaces, XML output, and bindings to tools like ant and Eclipse.

Continue reading "Tool Writing: A Forgotten Art?"

2005.03.02

Self-Healing Systems Will Age

A number of researchers are advocating the adoption of self-healing approaches as a way to create more robust systems. They suggest to copy a page from the book of life, where organisms with a self-healing capability can survive numerous mishaps and accidents. However, biological systems have another property, which I believe is associated with their ability to heal themselves: ageing, and, eventually, death.

Continue reading "Self-Healing Systems Will Age"

2005.01.20

Java: the New Straightjacket

I first learned to program on a home computer in Basic. At first it was fun, but after a point it became frustrating, when I realized that I was living inside a walled garden. Many interesting programs, such as those interfacing with the display controller, simply could not be written in standard Basic. Luckily, this limitation forced me to move to Pascal, assembly code, and C.

Continue reading "Java: the New Straightjacket"

2004.04.10

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"

2004.01.21

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"

2004.01.20

Writing, GUIs, and 4000 Years of Progress

The images speak for themselves.

Continue reading "Writing, GUIs, and 4000 Years of Progress"


Creative Commons License Last update: Thursday, September 22, 2016 9:56 am
Unless otherwise expressly stated, all original material on this page created by Diomidis Spinellis is licensed under a Creative Commons Attribution-Share Alike 3.0 Greece License.