Our PhD student Simon Butler has been looking at whether there is some relation between poor identifiers (e.g. that are too short or don’t use dictionary words) and code quality. The hypothesis is that poor identifiers may reflect less than optimal understanding of the problem or of the domain and in turn may impact on the program’s understanding during maintenance. All this may thus lead to code quality problems: potential bugs, convoluted code, etc.
Simon had a short paper at the Working Conf. on Reverse Engineering (WCRE) last October, presenting his first study on open source Java applications. The paper was quite well received, from what he told us. Simon’s talk was the only non-invited talk the WCRE steering committee chair twittered about, and it was mentioned the next day by Nicolas Anquetil during his most influential paper talk.
Simon has meanwhile enlarged the depth and breadth of the study: he did the analysis at method level (before it was at class level), he compared naming quality with more code quality metrics, and he also compared it with a readability metric. He also did a statistical analysis to see if some naming problems (e.g. not using dictionary words) could be used as a light-weight test to point to methods with readability and quality problems. The paper we submitted to the European Conf. on Software Maintenance and Reengineering (CSMR) was accepted and today we uploaded to our institutional open access repository the camera-ready version that, from past experience, will take some months to show up in IEEE Xplore.
In our paper at the 2008 International Conference on Software Maintenance, my colleague Yijun Yu and I presented an analysis of the evolution of the plugin-based Eclipse SDK architecture. The aim was to see whether some systematic architectural change process was followed and if commonly prescribed design guidelines (like increasing cohesion and decreasing coupling) were followed. Towards that end we collected several metrics (number of plugins, number of dependencies, etc.) and plotted them over various releases of different types (major release, maintenance release, etc.).
We have now analysed a few more Eclipse releases, did more measurements (on extension points) and refined others (distinguishing between forced and unforced changes), and decided to make the data public, by putting the metrics on Google spreadsheets and using Google Visualization to show the evolution of the measurements. One spreadsheet (HTML, CSV, Excel, OpenOffice) contains the metrics for major and maintenance releases from 1.0 to 3.5.1, the other (HTML, CSV, Excel, OpenOffice) has the metrics for the milestones and release candidates of releases 3.2 and 3.3. You’re free to use the data for your own purposes, provided you acknowledge where you got it from, e.g. by providing the URL of this post. Our Javascript code to obtain the charts from the spreadsheets is open source: just use your browser’s ’show page source’ feature! In that way you can reverse engineer what the headings in the spreadsheets columns mean, but an easier way is to just contact us
We next present the results, but they will only make sense if you first read the paper. Read the rest of this entry »
Many (but not all) Web 2.0 sites provide little badges or widgets to insert in your own blog and thereby link to those sites. Additionally, we are spoilt for choice with all those designer-made eye-candy badges, like a cute little blue bird asking your readers to follow you on Twitter. After coming across Ben Godfrey’s site, I decided I wanted to take the same simple yet visual, compact, and general approach: a list of site names, together with their favicons, linking to my accounts on those sites. Ben uses some CSS magic which I couldn’t understand, but after some trials and errors, I found a way to replicate his approach.
Using WordPress’s text widget, which allows to put any plain text or HTML in the sidebar, it’s a breeze to make such a list. The HTML code
<ul><li> <a href="http://bibsonomy.org/user/michelw" title="papers"><img src="http://bibsonomy.org/favicon.ico" style="vertical-align:middle" > Bibsonomy</a> </li><li> <a href="http://www.linkedin.com/in/michelwermelinger" title="contacts"><img src="http://www.linkedin.com/favicon.ico" style="vertical-align:middle" > LinkedIn</a> </li></ul>
will generate this list:
The only problem is if the site doesn’t have a favicon file. The best is to use Google to obtain the favicon for a given domain, because it will return a default globe icon if no favicon can be found. In the HTML code above, simply use as image source src="http://www.google.com/s2/favicons?domain=bibsonomy.org" or similar.
I finally became reasonable and admitted to myself that there is no point in maintaining two separate blogs about Computing, this one and one on digital art, especially if the latter had so few updates. I hence looked for a way to transfer all the content from that blog to this one. A quick search returned a post by one of the WordPress developers, with the gist of the solution: just use the built-in export/import functionality to save all posts, pages, comments, categories and tags from the blog to be deleted and then load them into the blog to be kept.
Of course, if you have added lots of widgets to and customized the theme of your retired blog, all that will be lost, and you will have to decide whether and how to change the look and feel of the kept blog in order to accommodate the content of the retired blog. No automation can help you in that… However, I’d expect links and their categories to also be exported, but they aren’t. Hence, if you have lots of links and blogrolls on your sidebars, I have no clue how to easily copy them to another blog. Fortunately, that was not the case with my digital art blog to be retired; a simple transfer of posts (and their comments, categories and tags) was all I needed.
I was pleasently surprised when the import process offered to also get the files uploaded to the retired blog. Since it used some Java applets, this would be really useful. Unfortunately, I got error messages saying ‘unknown file extension’: apparently only certain file attachments can be imported. Oh well, no big problem. I logged into my web hosting service, where I keep all my blogs in separate sub-folders, and used the cPanel file manager to move all uploaded files from one blog’s folder to the other, and then delete the retired blog’s folder. Back to the main cPanel view, I used the Manage redirects functionality in the Domains sub-panel, in order to make all URLs of the form http://michel.wermelinger.ws/digitar-te (the retired blog) redirect to http://michel.wermelinger.ws/chezmichel (this blog). Since I use the same permalink format in both blogs, namely year/month/post-title, any links to my retired blog will correctly resolve to the corresponding posts or files in this blog.
To sum up, the export/import facilities of WordPress go a long way to help the merging of blogs, but be prepared to do quite some manual tweaking, especially if the two blogs are very dissimilar in the presentation of their content. Among the things to consider are the merging of different permalink structures, ‘About’ pages, and blogrolls.
For my new stamp blog, I looked for a highly visual layout, and came across The Unstandard, a WordPress theme that influenced others. The basic idea is that each blog post is represented by a single image in the index pages (i.e. the home, archive, category, tag and search result pages), instead of being inserted in full or as an excerpt, as most themes do. Since I aimed for the blog to somehow mimic a stamp album, having index pages display just stamp images was ideal.
The theme is very easy to use. Read the rest of this entry »
Tags: themes
I read this book by Ben Fry, one of the fathers of Processing, the ’successor’ of DBN, and I highly recommend the book. I wrote a short review on Bibsonomy (click on the ‘description’ heading to see it).
Tags: Processing
I have picked up this book from the library to see if there were better ways of using Outlook, and indeed learned a couple of new things from just reading a few sections. I’ve added an entry for this book on Bibsonomy, with a short review (click on the ‘description’ heading to see it).
Tags: productivity
A few days ago, the forecast for today was a hot sunny day, to properly mark the start of Summer. In turned out to be a windy overcast morning and a warm sunny evening with a light breeze, at least in my neck of the woods. Although today felt more like early Fall (my favourite time of the year) than Summer, I took the date to be a symbolic opportunity to change the markedly autumnal look of my blog de to the Maple Leaf theme shown left. It has served me well for the past months, but it was time to get something less seasonal. Read the rest of this entry »
Tags: themes
Today I drove to Cambridge (it’s just 1h each way) to attend a talk given by Daniel Ratiu, who is visiting Microsoft Research this week. He presented a summary of his PhD work, which he will defend in precisely one month. Daniel’s main message was that program analyses can benefit from the use of some domain knowledge, instead of being mostly based on the syntax and structure of the code (e.g. call graphs).