Archive for the ‘Technology’ Category.

What Software Engineers Should Know

Software Engineering would be a more mature discipline if we had spent more time reading What Engineers Know and How They Know It: Analytical Studies from Aeronautical History rather than A Pattern Language: Towns, Buildings, Construction.

I was an Apple Mac kid

Don was an Apple II kid, and he credits Apple with helping him dive so deep and so early into writing software.  I never had an Apple II, but I got a taste of that kind of experience with the Vic-20 at home, and the BBC computer room at school.

But then, we upgraded our home computer to the Apple Mac.  My experience on the Apple Mac was exactly opposite to Don’s on the Apple II.

The Mac was the start (well, after Lisa) of Apple’s focus on the creativity of the users of computers, rather than on the creativity of software developers.  The Mac had amazing useability and rich interactive applications, but there was no out-of-the-box development environment.  Even when years later I did get the MPW, there was a killer learning curve to create simple apps that conformed to Apple’s strict UI guidelines.  Hypercard (especially Hypertalk) was ahead of its time and did encourage bespoke coding creativity, but then Apple ditched it.

Apple’s success is due to their user and customer focus, but ever since the Apple Mac they’ve been mostly hostile to developers.

 

Congratulations Marek and Innoboard Team!

Marek Kowalkiewicz from the SAP Research in Brisbane just last week won the international “Demo Jam” competition in the SAP TechEd event in LA, for the “Innoboard” software.  Innoboard is an augmented reality technology, which lets distributed teams interactively share whiteboards that mix projected images and physical sticky post-it notes.  All using the low-cost iphone camera and an ordinary projector.  Cool demo!  The idea at the end of taking streamed information out of the interactive session and using that to drive other workflow software (Jira in this case) is also cool, and just hints at the huge potential of ideas like this.

The Innoboard team found its first industry trial partner through the Future Logistics Living Lab, which is run by NICTA, SAP, and Fraunhofer IESE, and has around twenty (and growing) industry & research participants.  (Fraunhofer’s involvement is through the Fraunhofer Project Centre in Transport and Logistics at NICTA).  Industry trials for Innoboard are continuing, in a use-case for distributed logistics operations planning.  The Future Logistics Living Lab is also hosting a demo instance of Innoboard, and setting it up in the lab has helped contribute to ironing out some of the use & set-up issues in the early prototypes.

 

Windows 7 Deletes all my Shortcuts

Stuff has started mysteriously disappearing from my desktop.  I had installed Fences, so thought that was the culprit, and uninstalled it.  But the problem keeps happening, and it turns out that Windows 7 is causing my pain.

Windows runs a weekly maintenance task that deletes all your shortcuts if it thinks you have more than four “broken” ones.  Bad!  The problem is exacerbated my Windows being mistaken about what’s a “broken” file.  It’s counting all my shortcuts coming from an “always online” shared network drive, even though none of them are really broken.  System maintenance task can clean stuff out of temp all it likes, maybe even delete old log files, but stay away from messing with my desktop!

MSFT offers two solutions: don’t have more than four shortcuts on your desktop (ummm, no), or turn off all system mainteance (ummm, no).  The best solution I’ve found is to hack the Windows 7 maintenance scripts to stop them mis-counting files.  Doing this felt like being a Linux user used to feel like.  I guess I should be grateful that I can hack these files – I was a little surprised to be able to.

 

Invention vs Innovation

Just heard in a QESP webinar on Software Innovation in Australia from Julian Day of the Australia Consensus Awards:

In business, invention is the conversion of cash into ideas, but innovation is the conversion of ideas into cash.

Nice.  I see this is also on wikipedia.  I wonder what’s the original source for this quote?

Open Source Project Management Tools

I need to create some simple project schedules at work.  I used to have MS Project installed, but when I upgraded to Windows 7, my new SOE didn’t have MS Project.  So, I googled for open source project management tools.  I remember doing this years ago, and didn’t find anything compelling.  Now, there’s lots of options.  Which is the best?

I wanted a desktop app, so I excluded Redmine, and dotProject because they’re webapps, excluded Project.net because it needs Oracle which I don’t have, and excluded the *nix-only application TaskJuggler.

That still left me with a short list of three: GanttProject, OpenProj, and Open Workbench.

Open Workbench hasn’t open sourced their internal scheduling alorithms, and requires a commercial Clarity (CA) product to do collaboration.  Neither of those are killer problems for me, but they do linger in the back of your mind…  Anyway, it installed OK, launched OK, but looks overly complex.  I want to be productive out of the box, but couldn’t even work out how to create tasks and dependencies.  (I guess maybe I could have read the manual.  Who has time?)  Uninstalled.

GanttProject installed OK, launched OK, and looks promising.  I think it could be used, but minor bugs in the UI proved annoying.  Naming tasks was hard in the UI, and linking tasks to milestones was painful.  Uninstalled.

OpenProj installed OK, launched OK, and looks easy enough to use for my purposes.  There are a few UI niggles – e.g. I’d like to be able to reorder tasks more easily, maybe with drag and drop.  The download is going to be a couple of years old soon – Wikipedia tells me its development status is uncertain since Serena acquired it, and also tells me to watch out for bugs if I start to use some of the more advanced features…  But, it looks “good enough”, and I’m using it for now.

Reference Management

Researchers “stand on the shoulders of giants“, which in practice means reading a lot of academic papers and reports.  Lots.  You not only want to read them, but also cite them in papers you write, search them, and organise them by whatever topics you’re investigating.  How do you do that?

When I was a PhD student, I kept hard copies of the papers I read, and a collection of bibtex files containing reference information.  The bibtex files were separate, each on a different topic.  Since getting back into research in 2004, I’ve gone digital and have tried a few solutions: Reference Manager, EndNote, bibtex again, and zotero.  After each one, I kept reverting to my clumsy manual approach: storing PDF documents in directories, with each directory representing a topic.  Often, papers relate to more than one topic – sometimes then I put a copy or soft link in each topic directory.  I said it was clumsy!  But at least I can work when I’m travelling and off-line.

As a result, I now have dozens of directories stuffed with thousands of PDFs.  (I have less than three thousand, but a colleague has more than ten thousand.)  These calcified directories represent a fixed collection of topics that, as my research focus evolves over the years, is increasingly inappropriate.  I suspect a lot of people work like this.

So I’ve been delighted to discover Mendeley Desktop.  It’s still in beta, but I like its approach.  It lets me keep my PDFs as they are, and works with me to index them and import their bibliographic information into a database, using text recognition and bibliographic web services.  The quality of both of those mechanisms are a bit patchy right now, but it has “needs review” status tracking so I can manually check and correct that bibliographic data over time.  What’s also cool is that I can tell it to “watch” my directories – if I dump more PDFs in there, it’ll incrementally import those too. Mendeley has all the normal features: reference-importing bookmarklets, exporting in bibtex/whatever, Word and Open Office plugins for creating reference lists, etc.  And of course it also has tagging: so now I can create tag topics for my references – organised into as many overlapping topic areas as I need.

I feel like my reference collection has opened up to me, and is becoming a much more useful resource.  That’s fun and exciting but I have to make sure I don’t spend so much time organising my references that I end up not actually doing research!

The Next Big Thing?

How can you tell what the next big thing is going to be? Google’s pagerank algorithm will tell you what web pages have been important enough in the past for other people to have linked to.   Google trends will tell you what search terms people have been using recently, again in the past. What about the future?

Some predictions about the future are doomed to failure.   For example, Popper’s Poverty of Historicism is largely about the futility of predicting future society. However, some aspects of the future are largely predictable – science and technology work because they accurately predict the behavior of the physical world.  There’s a large middle ground of futures that aren’t easy to predict.  Prediction markets have been proposed as a way of getting better-than-chance predictions of these events.

Ricky Robinson at NICTA has recently launched citemine – a prediction market for academic papers.  The predictions being made are about how much each paper will be cited by other papers.  Ironically for citemine, one of the poverties of historicism that Popper identifies is a poverty of imagination about the possibilities of the impact of future science and technology! (Still, I imagine that Popper’s criticism only applies to long-term predictions of the impacts of science on society, not the shorter-term predictions of the importance of recently published scientific papers.)

The benefit of citemine is that it can be a leading indicator of the quality of publications, whereas existing citation metrics are very lagging indicators of the quality of publications and researchers.   Ricky’s hope is that academics will care enough to trade in citemine to acquire its “Reals” which may become a widely recognised measure of academic reputation.  Your personal worth in Reals is a measure of two things: your ability to have written highly cited papers, and how much better you have been than others at spotting papers that will be highly cited.  You can tell how much of your worth is due to each different source.  (Interestingly, I think both of these are lagging indicators, despite that the market price of a publication is a leading indicator.)

Even if such a market could work well if universally adopted and in a steady state, it’s a challenge to launch it.   It’s a chicken and egg problem – activity is required to make the market function, but a functioning market is required to generate interest in being active in the market.  The market has to bootstrap Reals into having value in the real world somehow.

citemine is “very beta”, and there are certainly a few issues at the moment:

  • Some matches aren’t being made in the market – there are buyers and sellers at the same price who aren’t doing a deal.   (Looks like a bug?)
  • There’s currently very low market depth, especially among sellers.
  • There’s no sophisticated market overview mechanism – just a list of papers at their current prices.
  • There’s no market metrics for papers – e.g. historical returns, price volatility, etc.

Ricky’s paper explains citemine.  I have two queries, and two observations…

Is citemine a zero-sum game?  In citemine, Reals are given to shareholders as dividends based on citations, but those Reals come from the previously-paid cost of submitting the citing papers.  So it looks like a zero-sum game. In my limited understanding of the economics of real stock markets, value gets created through primary production and through productivity improvements in other sectors.   I don’t see how that happens in citemine. Which leads me to my next query…

Is citemine a pyramid/ponzi scheme?  In citemine, the only source of new Reals is from the registration of new users, whose initial allocation of Reals is used to submit papers to pay dividends for existing users.  This question is more stark because there’s no leverage in citemine (debt, shorts).  Maybe I’m just confusing value with liquidity.

My intuition is manuscripts in citemine will behave more like mining stocks than industrial stocks in real stock markets. (Is that why it’s called citemine? :-) )  Mines have a limited finite quantity of ore, and the value of the stocks for that mine decrease as the ore is removed from the mine.   The value of a manuscript in citemine derives from future citations, but for almost all scientific papers, there is a finite time horizon for possible citation.  At some point people lose interest in moderately influential papers and cite later derived works.  Even very influential papers become part of assumed/background knowledge and get cited less.  I think that in citemine, most manuscripts will trend to a near-zero market price.

Finally, there’s a “meta-gaming” anomaly currently at play in the citemine market. If it turns out to be a successful market, then Reals get real value, and Ricky’s citemine paper (and closely related papers by other authors) will also inevitably be highly cited.  If the market turns out to fade into obscurity, then the free Reals you get on joining stay as play money, so it doesn’t matter how you will have spent them.   Ricky’s paper (and related papers) are a safe bet – you can’t lose!  I would have bought some, but no one was selling – and I have no idea about how to pick a good price to offer!

My First Mobile Phone

A couple of weeks ago I caught up with the 20th century and got my first mobile phone. I also leaped into the future because my phone is the Google Dev Phone 1 – an unbranded HTC Dream running Google’s Android operating system. There aren’t many Android phones available on the market right now, but a slew of them are due to be released later this year.

The Dev Phone phone is network unlocked and root enabled, but having one is a trade-off. I can upgrade the phone operating system outside the standard HTC Dream path to get access to new/privileged phone features (good), but on the other hand Google won’t give me access to the copy-protected apps in their Marketplace (bad).

My thoughts on the handset aren’t unusual, but here they are anyway. I love the swing-out keyboard and the look and responsiveness of the screen. But the battery life is woeful, even with WiFi, bluetooth, and GPS turned off. I’d also slightly prefer a standard 3.5mm jack instead of having to rely on USB headsets.

On the software side, I’m not ditching my Windows Mobile device yet, because there’s not yet a good free solution for automatic 2-way synchronisation between Android and the calendar and contacts in my work’s Exchange server. I can at least connect with the Exchange secure IMAP interface using the K9 email client (the core Android client doesn’t support this!). Maybe the gmail and google calendar applications are fantastic, but I wouldn’t know because I feel I should use my work’s IT infrastructure for work purposes, and I handle my private email through my own domain and mail server. One can only hope that Android will get more serious native support for business users later this year.

Finally, I should say that the HTC Dream handset is a “patriotic” handset to buy, because the Qualcomm chipset running the phone functionality runs the OK Labs version of the L4 microkernel that came out of NICTA. The phone has two chips – one for the phone functionality, and one for the rest of the OS and applications. This is despite the fact that with L4 it should be perfectly possible to instead have two (or more) isolated virtual machines running on just one chip. Apparently phones like that will be coming out late this year. Maybe they’ll have better battery life!

Augmented Reality is Here

The classic picture of augmented reality is having a large helmet on your head, wearing funny glasses, and carrying around massive laptop computers and batteries in a backpack.  Your view of the real world is continually overlayed with rich and complex digital information.

But I’ve started to see augmented reality appear in other ways. The first is Livescribe – a digitized pen (well, really a pen-with camera writing on digitised paper).  It’s quite amazing to see that your hand-written scratchings can be uploaded and then searched electronically on your computer. But even more powerful is that the pen can also record audio, and automatically index those audio segments by the scratchings on the paper.  So it’s great for meetings – you can take notes just like normal, but if you forget what a particular point meant, you can instantly replay the audio from the same time when you jotted it down.

Note: I think users will have to be very cautious about the management of audio recorded during meetings, under the constraints provided by the NSW Surveillance Devices Act 2007, and similar legistlation elsewhere.

So Livescribe is a kind of augmented reality – here you can think of “reality” as being the written notes on your paper, and/or the sounds made that got recorded.  The “augmentation” for written notes is the audio stream, and vice-versa.  The written notes are also augmented with a search capability when they’re uploaded to your computer.

The second piece of augmented reality technology is a little more “traditional”, but even in its prototype form it’s been cut back to be lightweight and inexpensive.  It’s work out of the MIT media lab, built from a mobile phone, portable projector, and webcam – all commercially-available “off the shelf” components.  See this TED talk for a glimpse.

A quote from William Gibson seems appropriate in this context:

The future is here, it’s just not evenly distributed yet.