Stochastic Geometry

Joel Spolsky, Snake-Oil Salesman

Posted in Academia, CS7004, General by Mark Dennehy on October 27, 2009

snakeoil If there is a lecturer in TCD’s CS department that doesn’t know of the problems and issues Joel just raised in his Capstone Projects post, they’re a rare bird indeed. But what Joel hasn’t mentioned — and what those lecturers can tell you because they’ve been debating it for decades, writing papers on it, holding conferences and have published peer-reviewed journals on the topic, as opposed to Joel’s one blog post — are that there are very specific and very good reasons why CS and CEng undergraduate courses don’t get to cover all the industry tools Joel uses. (more…)

Why seeding is important for random functions…

Posted in General by Mark Dennehy on October 24, 2009

Like many people these days, I use facebook to track what’s going on with friends and family I don’t get to see as often as I would have done in years past. Long work days, large numbers of balls in the air and general “stuff” prevents actual face time far too often, but while it’s not the same as a night spent laughing over a beer, it’s better to note that a friend has a new job or that there’s a new baby en route or whatever over facebook than not at all.

And of course, facebook has games. Which is handy sometimes, for those moments when you have literally six or seven minutes to fill – too much time to sit still and be bored, too little to get anything real started. Personally, I play bejewelled on facebook for those moments. It’s been set up rather nicely there – blitz games of one minute, with scores being tracked so that friends compete in weekly rankings and little medals at various scores and scores being classed as being in the top X% globally and so on. The thing about this is that now you have a large community of people (over five million within six months of its launch according to Popcap, who wrote the game), all competing against one another – so now it’s important that it be fair or it feels like it’s not worth playing. Unfortunately tonight I noticed that someone’s been too clever.

(more…)

Logitech Professional Presenter R800 Review

Posted in Academia, CS7004, General, Linux, New Toys! by Mark Dennehy on October 20, 2009

SANY0003a

So when they gave me the CS7004 course to teach in college this year, I went a little mad for an hour there, and after I got back up off the floor and cleaned the froth off the keyboard, it turned out I’d ordered this, Logitech’s top-of-the-line presenter remote/laser pointer gizmo. It arrived last Tuesday, just in time to not be around for the largest presentation I’ve done for a few years, but I’ve been using it since for lectures in CS7004. And I have to say, it’s very nice indeed.

(more…)

Wi-Fi Direct a bomb?

Posted in General by Mark Dennehy on October 15, 2009

usb_memory_bomb2

There’s a fair amount of buzz going round at the moment about Wi-Fi Direct, the latest thing from the WiFi Alliance people. It appears for all intents and purposes to be a version of the 802.11 Ad-hoc mode, designed to allow for connections between individual devices without the use of an AP or router, which led to bnet.com claiming it was a “sales bomb” that would somehow destroy Bluetooth, kill the majority of AP sales, kill all the companies who make connector cables and create a large security problem to solve as we all switch over to using WiFi Direct to hook up our various gadgets. And they’re not alone in suggesting this is a bluetooth killer.

Baloney. Utter rot. Nothing of the kind is going to happen, and it’s pretty obvious why. Taking one worry at a time: (more…)

Reddit Math Puzzle

Posted in General, Mathematics by Mark Dennehy on October 12, 2009

RedditMathPuzzle110909

So it’s not nonlinear math, but this made for a fun five minutes over Sunday morning coffee. There’s a number of ways of solving it, I went for the geometric one myself but the same answer comes out in the end for all of them, hopefully :) And it’s nice to think you could still pass the Leaving Cert if you had to sit it again tomorrow, so hooray for Reddit.

Enjoy over coffee today! (My scribbled answer after the break…)

(more…)

What platform to write mobile apps for?

Posted in General, Mobile, e71 by Mark Dennehy on October 7, 2009

A question came up on the boards.ie programming forum a week or so ago about whether to write apps for the iPhone or the Android platform. With Suura, we’ve been looking at what platforms to write clients for (and which to write for first), and it occurs to me that the data on what’s actually going on and what the hype is pushing are monumentally disparate. Believe the hype and the competition is all between Android and WebOS.

Thing is, all that noise is ignoring a few details. First off, both are tiny. In the telecoms market, even the iPhone is a niche player. Take mobile internet usage – yes, it’s growing, and at a rate noone expected, but look at how much of the overall total is made up of phone browsing compared to laptop browsing in these statistics released by Boingo in June this year:

b4

Yes, it’s rising and I’d be surprised if it tailed off tomorrow, but it’s still only a small part of a niche market – don’t forget that the telecoms market is seeing 50% global market penetration at the moment and is looking to improve on that. That’s one mobile phone (of any type) for every two humans on the planet. Unless you’re talking clothes or food, odds are you’ve never even seen a commodity that sells that well, let alone a high-tech one. So the mobile internet is still quite a small part of the overall picture here.

But even setting that dose of perspective aside, and looking only at the niche of the niche, what’s the breakdown of devices? Again looking at Boingo’s statistics reveals an interesting story. Everyone says the iPhone was a gamechanger, but you really have to look at the figures to see how true that is:

b3

b2

b1

And it’s not just Boingo reporting this, the Q3 data from JiWire tells a similar story:

Mobiledevices

So the iPhone/iPod Touch has gone from nothing to well over 90% of the US market in the space of two years. That’s phenonomal growth, and nothing’s even close to touching it right now. On the global side of things, it’s not quite so dramatic but that’s more down to inertia and the size of the market than anything else – even in the last six months there’s been significant change according to AdMob’s latest statistics:

admob

Now granted, all of this also means that something that’s currently nothing could be eating Apple’s lunch in two years time, but I don’t think that’s very likely for two reasons. Firstly, the iPhone really was something new – it didn’t try to be a phone first but to be a communications device first. The “Phone” in “iPhone” is really a misnomer, it’s nowhere near being as primary a function as the name suggests. But “iCom” was already taken:

IC-7800+SM-20

Secondly, to compete with the iPhone, you’re going to have to have an integrated approach – hardware and software design. That’s not a trivial problem, it’s one of the more hinky embedded system problems around at the moment. Apple are very good at this sort of thing and it takes a fair bit of know-how to be a threat to them. Being a slightly better iPhone is just not going to be enough to compete, especially given the marketshare the iPhone currently enjoys. So for the moment (and the immediately foreseeable future), the platform for anyone looking to sell mobile apps is the iPhone, regardless of the hype surrounding Android, WebOS or Moblin.

Personally, however, I think the “Next Big Thing” isn’t really being talked about much right now. It’s going to be an iCom rather than an iPhone, the looks are going to be important, but more than that it’s going to need some major backing. I think myself that the best looking contender out there right now is the Nokia N900.

Nokia-N900-chat

Look, everyone thinks Android’s hot because Google is big. But Google isn’t big. Not compared to Nokia. Nokia has a bad day – Finland’s GDP takes a hit. That is what “big” means. And with Nokia dropping the horrible developer experience that S60 development is, and taking on some hefty open source projects like Maemo and Qt to build the N900, and having an app store (Ovi) already running (even if it’s a pain in the fundament to use right now), they have a real shot at eating Apple’s lunch. The only missing piece from the N900, the thing that would have made it a major threat, would have been the inclusion of GAN hardware in the phone (if the operators could offload from 3G to Wifi on the fly with GAN, they’d want the N900 out there with a vengeance). Still though, if you had to seek out the next big thing – I’d be looking at the Maemo platform very hard indeed.

VisTablet under Debian Squeeze

Posted in C, General, Linux by Mark Dennehy on October 6, 2009

DSCF5570b

A new toy arrived today – the VisTablet, which is just a rebadged Aiptek 600U (model number WCK-C121). They sell as Aiptek or Waltop or Medion or any one of a few other names for about €65 on ebay.ie at the moment, so I thought what the heck, I do a fair bit of stuff in Gimp so maybe it’s worth a look. A few clicks and a week or so later and it arrives. Cue tearing open the box and unwrapping!

Plugging it into the laptop (Thinkpad R61 running Debian Squeeze amd64) got an instant result in that it found the device and allowed cursor movement… but no actual buttons or pressure sensor stuff, so it couldn’t work as a tablet. So off to google we go and after trying some frustrating messing about with udev rules (to create /dev/apitektablet - which isn’t necessary it turns out) and hal fdi files (to set up X.org options, which are needed) and I’d advanced in a posterior direction.

By now we were through the phase where plugging in the device crashed X and had reached the phase where plugging the device out crashed X. At this point, I found that the problem lay in the wacom drivers. See, just because it’s aiptek hardware doesn’t mean the aiptek drivers actually work – in this case, the wacom driver works much better.

But, just to be annoying, the new version of the wacom driver doesn’t work because it picks up that it’s not a wacom device and commits seppku to avoid being of any use. Note to the coder who thought that was a good idea – go choke on a hairball please.

Solution? Go to linuxwacom and download the latest driver, then untar the tarball, go into linuxwacom-0.8.4-2/src/xdrv and edit wcmUSB.c. You’re looking for this line (it’s line 530 in version 0.8.4.2):

/* vendor is wacom */
 if (sID[1] == 0x056A)
 {

And you want to change it to this:

/* vendor is wacom or waltop */
 if (sID[1] == 0x056A || sID[1] == 0x172f)
 {

Now apt-get install xorg-dev and whatever other packages you need like build-essential and call configure and make and then sudo make install.

You now have a working wacom driver and if you copy the wacom.fdi file into /etc/hal/fdi/policy/ (it’s /usr/share/hal/fdi/policy/20thirdparty/10-linuxwacom.fdi on Debian) and add in the following bit:

<match key="info.product" contains="WALTOP">
   <merge key="input.x11_driver" type="string">wacom</merge>
   <merge key="input.x11_options.Type" type="string">stylus</merge>
   <append key="info.callouts.add" type="strlist">hal-setup-wacom</append>
   <append key="wacom.types" type="strlist">eraser</append>
   <append key="wacom.types" type="strlist">cursor</append>
   <append key="wacom.types" type="strlist">pad</append>
</match>

into the <device> section of the xml file (you probably don’t need the eraser and cursor lines, but what the heck, they don’t harm anything and I was too tired of restarting X at this point to check). You should now be almost done – restart hal, restart x.org, and log back in and then plug in the tablet (check dmesg and /var/log/X.0.log so you’re sure it worked) and then fire up Gimp, go to Edit->Preferences->Input Devices->Configure Extended Input Devices and make sure the tablet is listed there and that it’s not set to disabled, then go to Edit->Preferences->Input Controllers and make sure that Linux Input is in the list of active controllers and is set to look at the tablet, and it should work.

ItWorks

Mind you… if this is what it takes to make cheap hardware work on linux, Linux Hater has a very good point.

New CS7004 hardware arrives…

Posted in Academia, C, CS7004, General, New Toys! by Mark Dennehy on October 6, 2009

So for CS7004’s labs, I wanted to have one large-ish, deep-ish, multi-step, interesting project. And I’ve thought of one and I’ll write it up as we go through it (no fair readers here learning before the students!).

But here’s a sneak peek at the hardware they’ll be using :)

(Assuming, of course, that I can get the sodding thing to do what it needs to do!)

DSCF5577b

First lectures down…

Posted in CS7004 by Mark Dennehy on September 28, 2009

Well that didn’t go too badly. General course overview and a probably over-long “what is an embedded system” lecture. No-one overtly fell asleep at any rate. And everyone enjoyed the videos of the explosions.

So what the heck, enjoy – Ariane 5 Flight 501. An example of what can happen with unsafe datatype casting :D

Next talks are on the hardware used in embedded systems, starting with the microprocessors and microcontrollers.

Duct tape considered harmful

Posted in C, CS7004, General, Python by Mark Dennehy on September 25, 2009

duct-tape-prohibited Blogs are a useful and important tool for professional developers and engineers, for two main reasons. Firstly, by and large, we are not free to divulge the details of the work we do while under contract — but at our next interview, those details are precisely what the interview itself is there to judge. So blogs (and I include this one without question) can take on a professional portfolio role, showcasing examples of professional work as applied to side projects, giving professional opinions on relevant products and work practices and so forth, all of which informs an interviewer who does their research as to the suitability of a candidate for a position. This is an old technique that artists and graphic designers are explicitly familiar with.

Relevant professional blogs can also act as a cheap way to monitor your continuing professional development. They’re not training courses, they’re not accredited and they never will be; but observing what your peers are doing is a very old way of watching for trends that you might consider directing your own CPD efforts towards. Through RSS feeds, RSS aggregator sites and a decent RSS reader, it is relatively easy to monitor large numbers of blogs with little effort beyond the actual reading of new articles as they appear.

The problem is that some bloggers, so focussed on the first goal of presenting a good online portfolio, and so obsessed with metrics like pages-served-per-week as a measure of progress towards that first goal, post dross which can then impede others in the pursuit of the second goal because of the lack (and impossibility) of an effective peer review process. In some cases, bloggers seem to abandon completely the goal in pursuit of the metric – chasing after eyeballs without having anything of substance to then display to this newly captured audience. (more…)