Categories
Random observations

TransLink go card: I’m ahead

The TransLink go card system is broken, but not for the reasons Ben points out, or at least not mainly for that reason. It’s broken because the machines are too often not working (on the buses, anyway). That means that I, and thousands of other passengers each day, score free trips. Already this week, I’ve had three or four free trips because the machine was not functional, and the bus drivers simply waved me onto the bus. While I’ve been pinged a couple of times for forgetting to swipe off, or because the machine has stopped working sometime during a trip, I calculate that I’m well ahead, probably by around $30 since the inception of the go card system.

The system is also pretty easy to game if you’re travelling on the bus: touch on at the front door like a good little passenger, then touch off at the rear door as you walk down the aisle. That will charge you a one zone fare (I think) instead of the two, three, four, whatever zone fare you would have to pay if you did the right thing and touched off when you hop off the bus. Of course, I don’t do this and I don’t condone it.

All this raises a very interesting question, though. When does the city’s/state’s investment in the go card system, and the ticketing system as a whole, start to pay off? Apparently the go card system alone costed around US$95 million. My question is whether it wouldn’t be better to just remove all ticketing infrastructure and make public transport free. At least until Brisbane’s population is big enough to support a world-class public transport system. Let’s do a really naive analysis. Assume that the US and Australian currencies have reached parity. At an average of $3 a journey (adult 4 zones fare), it would need around 30,700,000 journeys to break even. With 70,000 go cards in circulation, that’s probably around a year’s worth of go card journeys. That mightn’t seem like much, but the maintenance costs will be ongoing, and, as pointed out above, a significant proportion of journeys are unpaid for. Furthermore, the US$95 million does not include the overheads for all the other kinds of ticketing, like paper tickets. Factor in the costs of employees to dole out tickets at train stations, process go card complaints, and so on, and you could be looking at tens of millions per year (at a guess).

Readers would know that my bleeding heart leftist tendencies have long been replaced by a leaning towards free market capitalism. So it may seem strange that I’m advocating free public transport. But the fact of the matter is that our public transport system is already subsidised, and it will probably stay that way for quite some time. So why add another layer of costs to a system that has to be subsidised anyway? It doesn’t seem to make business sense. Of course, I’m on the outside looking in. I have no idea of true costs, or the expected population growth of Brisbane City. But I reckon it would be a good way to get people using public transport. The only problem is, these ticketing systems are already in place; we’ve paid the upfront costs already, so I guess the government has to try to recoup these costs, and it won’t do that by making public transport free. D’oh!

Categories
Random observations

Blogging with TextMate: image uploads supported

Xander's 1st birthday cake
Drag an image to the blog entry you’re composing in TextMate, and it uploads the image to your weblog and inserts the resulting URL into your blog post. Like this. Cool.

Categories
Random observations

TextMate

TextMate seems to be recommended by just about every Mac-oriented programming site out there. So I bought it a few weeks ago. For 33.15 EUR. It rocks. Oh, and this post was made from within TextMate.

Categories
Innovation

NICTA Queensland gets more funding

In another piece of NICTA news, on Thursday Queensland Premier Anna Bligh announced that the state government will invest $10.05 million in NICTA’s Queensland Research Laboratory over the next four years. Here’s an interesting tidbit from the Australian IT news article:

Technologies developed by NICTA’s Queensland facility are widely used by the state government. One example is software to authenticate and protect digital evidence currently deployed by the state’s police force.

To be honest, “widely used” might be a bit of a stretch at this point, but it’s true that the state’s police force are using the mentioned piece of software and they’re very keen on it. I’d be willing to bet that the next four years of the lab will be pretty successful in terms of spin-outs, licenses and other outcomes.

NICTA has a very different atmosphere to DSTC (which I can’t imagine will ever be surpassed in my career in terms of outright coolness) and Sun Labs, two places I’ve worked before and which I give credit to for inspiring me along the path to a career in research, so it took a while to get used to. I guess it’s still trying to find its own culture, really. The Queensland lab may be helped on in that respect by the cozy confines of our new quarters at UQ (at the very least, we’ll all get to know each other very well!). NICTA as a whole has set pretty high standards for itself, particularly in terms of research project approvals, and to its credit, recent evidence tells me that it’s going to do its best to keep to those standards. I hope it does.

Categories
Innovation

Microsoft without Gates

Bill Gates has retired from Microsoft. This will be a turning point in the industry. Specifically, I think Apple will make huge inroads in the desktop market with Mac OS X to the detriment of Microsoft and Windows. Microsoft will eventually focus on the server side of the business. What do others think?

Categories
Random observations

New work address

As of Monday, NICTA’s Queensland Research Lab will be located at UQ. Here’s the address:

Queensland Research Laboratory
Level 5, Axon Building (47),
Staff House Road,
St Lucia  Qld  4072

PO Box 6020,
St Lucia  QLD  4067

Categories
Random observations

I’m a Diigo convert

Today I discovered Diigo. Diigo is a bookmarking tool like del.icio.us, only, in my opinion it is vastly superior. Instead of just bookmarking, you can select a chunk of text in the page, and attach a sticky note to it. When you return to that page later on, there’s your sticky note waiting for you. Hugely useful for doing research. Yes they’re in direct competition with del.icio.us, but they’re also smart enough not to make you completely ditch del.icio.us: you can easily set up your Diigo account so that any bookmark you save to Diigo will be cross-posted to your del.icio.us account.

Check out my Diigo profile if you’re interested.

Oh, and this blog entry was written from within Diigo.

Categories
Innovation

Startup: an explanation

It’s probably time to come clean about my recent spate of posts on startups, Ruby, Python and so on. Well, there are a few things about peer review and publishing in the realm of academia that I think could be better, so I tried to figure out an alternative process that retains the benefits and overcomes some of the problems of the current system. We think we’ve done that, and it turns out that I wasn’t the only one who thought that things could be a lot better.

NICTA has provided pre-seed funding in the form of a couple of commercialisation grants to implement this new way of doing things. I’ve hired a top notch graduate software engineer (who’s been working with me as a student for the past year and a half on unrelated things) to help me deliver alpha and beta versions of this system over the next six months or so. For this project, we’ll be working in startup mode; I’ll be making every effort to provide a small company atmosphere for the engineer and others who join the project.

It turns out the solution to the problem can also be applied to (web) search, since it is essentially a nice way of ranking documents within communities. I can’t go into the details of the solution here, but I can list some of the things that I (and other researchers, as it happens) think could be better.

  • Traditional peer review requires that authors trust reviewers to act in good faith – reviewers are not required to “put their money where their mouth is”, so to speak;
  • Related to the above, traditional peer review gives no real incentive to support the good work of a group competing scientists;
  • Related to the above, traditional peer review provides no real incentive not to support the poor work of a colleague or friend;
  • Traditional peer review gives no tangible recognition to the many hours of reviewing that scientists do – reviewing is just something you’re expected to do for the good of the scientific community;
  • Traditional peer review gives no incentive to authors to self-review their work before submission, meaning reviewers get burdened with too many bad and mediocre papers;
  • Metrics such as H-index and G-index are somewhat arbitrary, do not give a direct indication of the esteem with which scientists are held by their peers, and are not indicative of the current capacity of a scientist to produce good work;
  • Citation collusion is too easy to accomplish, but difficult to filter out when calculating the above metrics;
  • Not enough cross-fertilisation between fields, largely because closed communities are too common; and
  • The publication process is too slow, often taking years for a journal paper and months for a conference paper.

These are some of the problems that researchers say they can see with the current way of doing things. We think we can claim that our idea solves many of these problems. For example, under our system, which we are calling PubRes for the moment, citation collusion is futile. Under PubRes, you’d also be silly to lend support to a paper that you know isn’t very good (even if it is written by a colleague), and you’d be silly not to lend support to a good paper (even if it is written by a competing group of scientists or your worst enemy). There are some things we haven’t solved, like honorary authorship and ghost authorship, but these are problems I’d like to investigate in the future. Although I can’t reveal the details here, I can say that the underlying mechanics of PubRes are no more complicated than traditional peer review procedures (and probably much less complicated), but it is a major departure from how things are done now. I can also say that the feedback we’ve got from people we’ve explained it to has been overwhelmingly positive, which is the main reason I’m still pursuing this.

NICTA are making sure we do this properly, so some of the grant money is being spent on figuring out the structure of the academic publishing market. We already know that the top three academic publishers had combined 2007 revenues in excess of $US3 billion, but that doesn’t say much. We’re currently doing some much deeper market research to get a better understanding of the domain.

It’s important to note that what we’re doing is completely different to all known attempts to bring science to the web. PubRes is not another CiteULike or Connotea. It’s not another arXiv.org. It’s not like PLoS One or PubMed Central. It’s different to ResearchGATE and Science Commons. While our implementation may contain elements of these existing tools, PubRes is a fundamentally new way of getting your research published, and it’s a new, much fairer (we think), more direct way of rating scientists and the papers that they write. One of our aims is also to make the whole reviewing, publishing and reading cycle a lot more fun.

With any luck, a public beta will be available early next year. Oh, we think we’ve settled on Ruby and Ruby on Rails for the web tier, and no doubt there’ll be some AJAX stuff in there to pull off a few nifty browser side features we have in mind. Stay tuned.

Categories
Innovation

Ricky, Ruby and Rails (hypothetically speaking)

In the bits of spare time I get here and there, I’ve been continuing my hypothetical hunt for a language and web framework in which to implement my hypothetical "web 2.0" idea. It occurs to me that if all these little bits of spare time were clumped together so that I could, hypothetically, do some actual coding as opposed to “investigating”, hypothetically I’d be well on my way to having a hypothetical working system by now. But, alas, little bits of time here and there is all I’ve got at the moment.

chunky bacon

Anyway, after having checked out Python and Django and deciding that I’d be happy enough with that set of tools, I thought I’d better check out Ruby and Ruby on Rails to see what all the fuss is about. Well, I have to say, so far I really like the Ruby language. I’ve been helped along by what has to be the weirdest, but coolest, guide to programming that has ever been written for any language (what other programming guide comes with cartoon foxes and its own soundtrack?). I’m still learning the ins and outs of Rails, but there are some very helpful tutorials online for this, too. The fact that Ruby, like Python, comes pre-installed in Leopard was a pleasant surprise. Ruby comes with a command shell environment called irb (Interactive Ruby), which enables you type Ruby code at the command prompt (again, just like Python’s python command line tool). This makes it very easy to experiment with the language.

One of the things I like about Python is list comprehensions. They’re a very neat and convenient way of mapping a list to a new list by applying a function to each element of the original. It kind of works like the map function in many other languages, except you can include conditional statements. The heavy use of list comprehensions in Programming Collective Intelligence tells me that there’s a good chance they’ll come in handy for me later on. Here’s a trivial example:


>>> list1=[1,2,3]
>>> list2=[x**2 for x in list1 if x%2==1]
>>> list2
[1, 9]

In Ruby there’s no syntactic sugar for list comprehensions, but it turns out you can pretty easily implement the required behaviour:


>> list1=[1,2,3]
=> [1, 2, 3]
>> list2=list1.map {|x| x**2 if x%2==1}.compact
=> [1, 9]

Furthermore, since classes are never “sealed” or “final” in Ruby, it means that you can do something like this:


>> class Array
>>   def comprehend( &block )
>>     block ? map( &block ).compact : self
>>   end
>> end

We’ve just added another method to the (existing) Array class which works very much like a list comprehension:


>> list1.comprehend {|x| x**2 if x%2==1}
=> [1, 9]

That’s a little of what I’ve learned about Ruby in the past week or so. Anyway, I can say that I’ve narrowed down my search to two candidates. Python has the lead in terms of being a mature technology. But Ruby really is fun to program in, and I like its syntax better than Python’s. Furthermore, I spent a while faffing around with Django and mod_python for my Mac. But getting Rails up and running was a breeze using the Mongrel web server – a production quality web server for Ruby applications, used by many web sites including Twitter. Ultimately, my (hypothetical) first hire gets the final say. :-)

Categories
Random observations

The Get out Clause and Weezer

I’ve got some time to work on the context manager today, and I’m listening to some stuff as I code. Here’s a sample:

Also check out The Get Out Clause and this video. It was made by requesting CCTV footage through the Freedom of Information act (apparently).

Update: Here’s the “Paper” video clip inline: