blog dds

2017.04.04

Research Priorities in Software Technologies

In the words of the web's inventor Marc Andreessen, "software is eating the world". Ever more products, services, and entire industries, existing ones as well as new, are running on software. In a report recently published by the European Commission, I argue that significant investment in software engineering research can help Europe stay on top and even lead a world that is increasingly defined and shaped by software.

Continue reading "Research Priorities in Software Technologies"

2016.12.02

Computer vs Human 0-1

Earlier today the Athens State Orchestra played the Symphony No. 3 in C minor, Op. 78 by Camille Saint-Saens, which is also known as the Organ Symphony. The French organist and composer Thierry Escaich was supposed to play the organ. There was a slight delay at the beginning: a lady appeared on stage and explained that there were technical problems with the organ's "brain".

Continue reading "Computer vs Human 0-1"

2016.05.07

The Computer Tube

I've been reading the book ENIAC in Action, which details the fascinating ten-year history of the first general-purpose programmable electronic computer. In it I found a reference to 7AK7, the so-called computer tube, which improved the reliability of tube computers.

Continue reading "The Computer Tube"

2015.11.29

Raspberry Pi Zero vs Elliott 405

Twitter users @SadHappyAmazing and @HistoricalPics posted yesterday two photographs (copy) showing the Raspberry Pi Zero juxtaposed in front of the Norwich City Council Treasurer's Department building, where the delivery of the Elliott 405 computer was photographed in 1957. Here is how the two computers compare.

Continue reading "Raspberry Pi Zero vs Elliott 405"

2015.06.28

Impact Factor of Computer Science Journals 2014

The Thomson Reuters Web of Knowledge has published the 2014 Journal Citation Reports. Following similar studies I performed in the past eight years (2007, '08, '09, '10, '11, '12, '13, '14) here is my analysis of the current status and trends for the impact factor of computer science journals.

Continue reading "Impact Factor of Computer Science Journals 2014"

2015.05.22

Grady Booch on the Future in Software Engineering

I was privileged to hear Grady Booch deliver a keynote on the Future in Software Engineering. Here are my notes of some important statements and interesting soundbytes.

Continue reading "Grady Booch on the Future in Software Engineering"

2014.08.08

Impact Factor of Computer Science Journals 2013

The Thomson Reuters Web of Knowledge has published the 2013 Journal Citation Reports. Following similar studies I performed in the past sever years (2007, '08, '09, '10, '11, '12, '13) here is my analysis of the current status and trends for the impact factor of computer science journals.

Continue reading "Impact Factor of Computer Science Journals 2013"

2013.07.03

Impact Factor of Computer Science Journals 2012

The Thomson Reuters Web of Knowledge has published the 2012 Journal Citation Reports. Following similar studies I performed in the past six years (2007, '08, '09, '10, '11, '12) here is my analysis of the current status and trends for the impact factor of computer science journals.

Continue reading "Impact Factor of Computer Science Journals 2012"

2013.06.13

How to make a MacBook Kensington Lock Adapter

Apple, in its infinite wisdom, has not included a Kensington lock slot in the current model of the MacBook Pro computer. Given the computer's price, desirability, and the fact that three people I know have had theirs stolen, I decided to build an improvised adapter that would allow me attach a Kensington lock to the computer. I realize, that the security offered by such a contraption is what my colleague Vassilis Prevelakis calls an "advisory lock", for Kensington locks can be easily picked or pried away. However, I think it might deter a casual thief who would snatch the laptop you've left unattended for a couple of minutes.

Continue reading "How to make a MacBook Kensington Lock Adapter"

2012.12.12

Changes in the Way we View Computing

The Association for Computing Machinery recently released the 2012 version of the ACM Computing Classification System (CCS). This is the work of 120 volunteers and marks significant changes over the previous version, which was released in 1998. To create it the volunteers mined ACM Digital Library search terms and used the services of a specialist company that creates ontologies. To see what has changed in the past 14 years in the way we view computing, I used Wordle to create word clouds from the 1998 and the 2012 versions. Here are the two views of our discipline's Zeitgeist and my take of their differences.

Continue reading "Changes in the Way we View Computing"

2012.07.03

Impact Factor of Computer Science Journals 2011

The Thomson Reuters Web of Knowledge has published the 2011 Journal Citation Reports. Following similar studies I performed in 2007, '08, '09, '10, and '11, here is my analysis of the current status and trends for the impact factor of computer science journals.

Continue reading "Impact Factor of Computer Science Journals 2011"

2011.07.31

Impact Factor of Computer Science Journals 2010

The Thomson Reuters Web of Knowledge has published the 2010 Journal Citation Reports. Following similar studies I performed in 2007, 2008, 2009, and 2010, here is my analysis of the current status and trends for the impact factor of computer science journals.

Continue reading "Impact Factor of Computer Science Journals 2010"

2011.07.03

Agility Drivers

When the facts change, I change my mind. What do you do, sir?

Continue reading "Agility Drivers"

2011.05.29

Ten Lessons I Learned from Fixing my Laptop's Motherboard

A month ago I managed to break my laptop, by reversing the polarity of a universal power supply. The repair shop diagnosed the problem as a failed motherboard, and asked for €659 to replace it. I found the price preposterous and the notion of throwing away a motherboard for a single failed component ecologically unsound. Here is how I fixed the laptop on my own, and what I learned in the process.

Continue reading "Ten Lessons I Learned from Fixing my Laptop's Motherboard"

2010.06.19

Impact Factor of Computer Science Journals 2009

The ISI Web of Knowledge recently published the 2009 Journal Citation Reports. Following similar studies I performed in 2007, 2008, and 2009, 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 2009"

2009.06.24

Impact Factor of Computer Science Journals 2008

The ISI Web of Knowledge recently published the 2008 Journal Citation Reports. Following similar studies I performed in 2007 and 2008, 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 2008"

2009.05.27

Revisiting the Antikythera Mechanism Emulator

Over the past few weeks I updated the Antikythera mechanism emulator I built in 2007. I was preparing for an invited talk on the subject, which I'll give at the 2009 USENIX Annual Technical Conference, and for this I wanted to include in the emulator the new findings recently published in Nature.

Continue reading "Revisiting the Antikythera Mechanism Emulator"

2009.05.16

A Bug Creates Art

Sometimes beautiful images are generated serendipitously; think of snowflakes or Lissajous curves. Today I got one when I encoded an animation of the back dials of my Antikythera mechanism emulator with the CamStudio lossless codec (v1.4). When I played back the movie with the VLC media player (v0.9.9) a bug in the player (or the codec or the video driver) gave me a black background and a series of overlaid images with the stark colors of the gears. I think the bug is related to the alpha channel, which I use for partially obscuring the gears behind the translucent dial face. I found the result eerily beautiful.

Continue reading "A Bug Creates Art"

2009.04.20

A Tiling Demo

Over the past (too many) days I've been preparing my presentation for the ACCU 2009 conference. At one point I wanted to show how loop tiling increases locality of reference and therefore cache hits. Surprisingly, I could not find a demo on the web, so I built one from scratch. Here are two applets demonstrating memory accesses during a matrix raise to the power of two operation.

Continue reading "A Tiling Demo"

2009.02.18

The Information Train

Experiment overview The Information Train is a scientific experiment that I presented at the Wizards of Science 2009 contest over the past weekend. The entry demonstrates how computers communicate with each other by setting up a network in which a model train transfers a picture's pixels from one computer to the other. You can find a video of the experiment on YouTube, and, if you're interested, you can also download the corresponding software and schematics from this web page.

Continue reading "The Information Train"

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.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.11.07

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"

2008.07.31

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"

2008.06.27

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"

2007.10.06

The Memory Savings of Shared Libraries

A recent thread in the FreeBSD ports mailing list discusses the benefits and drawbacks of static builds. How can we measure the memory savings of shared libraries?

Continue reading "The Memory Savings of Shared Libraries"

2007.07.10

Impact Factor of Computer Science Journals 2006

The ISI Web of Knowledge recently published the 2006 Journal Citation Reports. 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 2006"

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.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.03.06

The Power of Reusable GUI Elements

One can manipulate any graphical element of the Squeak environment by bringing up its halo: a rectangular set of icons representing actions that one can perform on any object. At first I found it cumbersome to have to go through the halo in order to perform any action, like recoloring an object or changing its name. Later I saw that this method is incredibly powerful.

Continue reading "The Power of Reusable GUI Elements"

2007.01.15

Landscape vs Portrait Monitors

Laptop monitors keep getting wider and wider. What I would really like would be for them to get higher.

Continue reading "Landscape vs Portrait Monitors"

2007.01.12

The Perils of Naive Sorting

I wanted to compare the aggregate cited half-life of works in different scientific disciplines. This figure tracks the median age of the articles cited during the last year. The ISI Web of Knowledge offers such a tool, and allows sorting by the a field's half life. I found the first three entries in the list, mineralogy (10), orthopedics (9.7), and agriculture (9.5), slightly odd.

Continue reading "The Perils of Naive Sorting"

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.22

So Long as there's a Jingle in your Head, Television isn't Free

Yesterday I switched from an ancient version of the "free" Adobe Reader to the current version 7.0. I spent the morning studying some fairly tricky technical documents. Within that interval I often caught my eyes glancing to the top right of the Adobe Reader's display window where an advert button flashed as it changed its content. Needless to say, this change of focus interrupted my train of thought, and got me out of "flow mode".

Continue reading "So Long as there's a Jingle in your Head, Television isn't Free"

2006.11.03

The Return of Performance Engineering and Trendy Programmers

In the 1950s, when processor cycle times were measured in microseconds, algorithm design and clever programming could make or break an application. These fields continued to be popular in the 1960s and 1970s, because widespread computers were used to attack ever larger problems. Programming was a hip and trendy occupation. Today's $500 computers operating on GHz clocks allow anybody who has (just about) mastered the syntax of a programming language to write code that drives dynamic web sites serving hundreds of transactions each minute. Managers consider code a commodity, and enrollments to computer science degrees are dwindling. However, change is in the air.

Continue reading "The Return of Performance Engineering and Trendy Programmers"

2006.10.13

Research in Domain Specific Languages

My research colleague Vassilis Karakoidas is working on better programming support for domain specific languages (DSLs). Today he claimed that DSLs were hyped during 1998-2002, and now interest has waned.

Continue reading "Research in Domain Specific Languages"

2006.09.30

Cross Compiling

Cross compiling software on a host platform to run on a different target used to be an exotic stunt to be performed by the brave and desperate. One had first to configure and build the compiler, assembler, archiver, and linker for the different architecture, then cross-build the other architecture's libraries, and finally the software. This week, while preparing a new release of the CScout refactoring browser I realized that what was once a feat is nowadays a routine operation.

Continue reading "Cross Compiling"

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.02.22

Management Support Technologies

My academic title contains the words management support technologies. I therefore considered the new and efficient document management and dispatch system I saw in use at my health insurance provider a rare gem, worthy of inclusion in this blog.

Continue reading "Management Support Technologies"

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.10.14

MIT's $100 Laptop

The MIT Media Lab is working on a research initiative to develop a $100 laptop. This will be distributed through governments to schools to help the education of the world's students. These are my notes from a talk Michail Bletsas, Director of Computing at the MIT Media Lab gave on the subject, at an event organized by the Netmode Laboratory .

Continue reading "MIT's $100 Laptop"

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.09.15

Information Kiosk

The inclined panel is indeed a computer screen, and, of course, it is not working. Another, more reliable, technology has prevailed.

Continue reading "Information Kiosk"

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.05.26

Today's Dynamic is Tomorrow's Static

Today at the IEEE Software's editorial and advisory board meeting, the issue of service-oriented architectures came up. Robert Glass wondered whether this was the upcoming fad, following structured programming and object-oriented programming, to which Stan Rifkin replied that service-oriented architectures are a lot more dynamic. Interestingly, the previous approaches, which we today consider as static, were also thought-off as dynamic in their day.

Continue reading "Today's Dynamic is Tomorrow's Static"

2005.05.05

Google's Web Accelerator as a P2P CDN

I admire Google's guts in deploying their Web Accelerator. Proposing to act as an intermediary for the whole planet's web traffic takes a lot of courage and a certain amount of audacity. Interestingly, the system's design can be quite scalable, through the use of peer-to-peer and personalization technology.

Continue reading "Google's Web Accelerator as a P2P CDN"

2005.04.27

Solving Singh's Substitution Cipher

Many of us enjoy playing with encryption algorithms. Simon Singh, before a book promotion trip to Greece, published a "substitution cipher with a twist". I would consider solving a substitution cipher aimed at the general public unfair, but the "twist" made me curious.

Continue reading "Solving Singh's Substitution Cipher"

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.12.13

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"

2004.09.25

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"

2004.04.18

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"

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.20

Writing, GUIs, and 4000 Years of Progress

The images speak for themselves.

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

2003.09.26

Well-behaved Web Applications

Very few web-based applications are designed to match the web metaphor. As a result they are often irritating, counteproductive, or simply unusable. During the last two months I've been working on an IEEE Software theme issue titled "developing with open source software". Most of my work is performed over the IEEE Computer Society Manuscript Central web application. The application is an almost perfect example of everything that is often wrong with such interfaces.

Continue reading "Well-behaved Web Applications"


Creative Commons License Last update: Tuesday, April 4, 2017 5:56 pm
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.