Quantcast
Diomidis Spinellis

http://twitter.com/DSpinellis

Athens, Greece

Professor of Software Engineering, programmer, and award-winning author

Areas of Expertise:

  • software engineering
  • software tools
  • domain-specific languages
  • programming languages
  • Unix
  • C
  • C++
  • Java
  • Perl
  • hardware interfacing
  • consulting
  • speaking
  • programming
  • training
  • writing

Biography

Diomidis Spinellis is a Professor in the Department of Management Science and Technology at the Athens University of Economics and Business, Greece. His research interests include software engineering, programming languages, internet information systems, computer security, and intelligent optimization methods. He holds an MEng in Software Engineering and a PhD in Computer Science both from Imperial College London.

Spinellis is a FreeBSD committer and the author of many open-source software packages, libraries, and tools. His implementation of the Unix sed stream editor is part of all BSD Unix distributions and Apple's Mac OS X. Other tools he has developed include the UMLGraph declarative UML drawing engine, the ckjm tool for calculating Chidamber and Kemerer object-oriented metrics in large Java programs, the Outwit suite for integrating Windows features with command-line tools, the fileprune backup file management facility, and the socketpipe network plumbing utility. In 2004 he adopted and has since been maintaining and enhancing the popular bib2xhtml BibTeX bibliography format to HTML converter. Currently he is also serving as the scientific coordinator of the EU-funded SQO-OSS cooperative research project, a software quality observatory for open-source software.

Spinellis has published two books in Addison-Wesley's "Effective Programming Series": in 2004 Code Reading: the Open Source Perspective, which received a Software Development Productivity Award in 2004 and has been translated into six other languages, and in 2006 Code Quality: the Open Source Perspective, which also received a Software Development Productivity Award in 2007. Both books use hundreds of examples from large open source systems, like the BSD Unix operating system, the Apache Web server, and the HSQLDB Java database engine, to demonstrate how developers can comprehend, maintain, and evaluate existing software code. Spinellis has also published more than 100 technical papers in journals and refereed conference proceedings. The article A Survey of Peer-to-Peer Content Distribution Technologies he co-authored in 2004 appeared in the list of ACM's most downloaded digital library articles throughout 2005 and 2006. He is a member of the editorial board of IEEE Software, authoring the regular Tools of the Trade column, and Springer's Journal in Computer Virology.

Spinellis is a member of the ACM, the IEEE, the Usenix Association, the Greek Computer Society, the Technical Chamber of Greece, a founding member of the Greek Internet User's Society, and an active Wikipedian. He is four times winner of the International Obfuscated C Code Contest and a member of the crew listed in the Usenix Association 1993 Lifetime Achievement Award.

Books

Beautiful Architecture Beautiful Architecture
by Diomidis Spinellis , Georgios Gousios
January 2009
Print: $44.99
Ebook: $35.99

Blog

Recent Posts | All Posts

Diomidis's blog posts are hosted at:
http://www.spinellis.gr/blog/

Basic Etiquette of Technical Communication

October 21 2009

Parents spend years trying to teach their children to be polite, and some of us had to learn at school how to properly address an archbishop. Yet, it seems that advice on courteousness and politeness in technical communication is in short supply; most of us learn these skills through what… read more

Tags for Bibliography References

October 15 2009

I love writing my papers in LaTeX. Its declarative style allows me to concentrate on the content, rather than the form. I even format the text according to the content, keeping each phrase or logical unit on a separate line. Many publishers supply style files that format the article according to the journal's specifications. Even better, over… read more

Applied Code Reading: Debugging FreeBSD Regex

September 16 2009

When the code we're trying to read is inscrutable, inserting print statements and running various test cases can be two invaluable tools. Earlier today I fixed a tricky problem in the FreeBSD regular expression library. The code , originally written by Henry Spencer in the early 1990s, is by far the most complex I've ever encountered. It… read more

Job Security

September 02 2009

My colleague, who works for a major equipment vendor, was discussing how his employer was planning to lay off hundreds of developers over the coming months. “But I’m safe,” he said, “as I’m one of the two people in our group who really understand the code.” It seems that writing… read more

The Price of Cheap Labor

August 28 2009

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… read more

Real Heroes

August 27 2009

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

HP-200LX Remote Control Hacks

August 20 2009

All my friends know that for the past 15 years I've been semi-attached to an HP 100LX palmtop PC (recently updated to a 200LX) for my personal information management and many other tasks. The device is extremely versatile, sturdy, and flexible. Amazingly, after so many years of hard daily use, I still find new applications for… read more

Applied Code Reading: GNU Plotutils

August 11 2009

Robert, a UMLGraph user sent me an email describing a problem with the GNU plotutils SVG output on Firefox. I firmly believe that code reading is a lot easier than many think: one can easily fix most software problems without detailed knowledge of the underlying system. I therefore decided to practice what I preach. read more

How to Create a Self-Referential Tweet

August 05 2009

Yesterday Mark Reid posted on Twitter a challenge : create a self-referential tweet (one that links to itself). He later clarified that the tweet should contain in its text its own identifier (the number after " /status/" bit should be its own URL). I decided to take up the challenge ("in order to learn a bit… read more

A Tiny Review of Scala

July 22 2009

Earlier today I finished reading the Programming in Scala book. My review of the book should appear soon in the reviews.com site and the ACM Computing Reviews . Here I outline briefly my view of the Scala language . read more

Madplay on an Intel Mac

July 13 2009

Numerous MP3 players around my house pull music from a central file server. The hardware I'm using is extremely diverse and many devices can nowadays be politely described as junk: they include 100MHz Pentiums with 16MB RAM, and an ARM-based prototype lacking support for floating point operations. For the sake of simplicity I've standardized the… read more

Real-Time Google Earth GPS Tracking

July 01 2009

In a recent trip I incorrectly assumed that real-time tracking of Google Earth's pre-cached maps with a GPS receiver would be sufficient help for navigating around the highways in Los Angeles. I therefore experimented with the way Google Earth's sparsely-documented real time tracking works, and wrote a small program to interface Google Earth with a… read more

Greek Numerals in OpenOffice.org

June 25 2009

OpenOffice.org doesn't support Greek numerals, and this is a problem for its Greek localization, because such numerals are often used for section and list numbering. As an exercise in large scale code reading and in the writing of code I'm supposed to teach to undergraduate students, I decided to contribute an implementation to OpenOffice.org. read more

Impact Factor of Computer Science Journals 2008

June 24 2009

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. read more

Software Architecture Challenges in the 21st Century

June 09 2009

A wonderful workshop, titled Software Architecture Challenges in the 21st Century , took place at the University of Southern California on June 8th. The workshop was co-sponsored by IEEE Software, USC's Center for Systems and Software Engineering, and UC Irvine's Institute for Software Research (ISR). Here is my personal summary of the talks; the presentation… read more

Recent Posts | All Posts

Diomidis Spinellis