July 2009
 Mo Tu We Th Fr Sa Su
        1  2  3  4  5
  6  7  8  9 10 11 12
 13 14 15 16 17 18 19
 20 21 22 23 24 25 26
 27 28 29 30 31      

Blog RecentChanges AboutThisSite AboutMe New Full RSS Feed

Blog


2009-06-27

So, another summer holiday is at an end, and another programming interval. This time I was using my LSystem Explorations as a way to get more practice with Scala and Android.

Random aside: I find it hard to get excited about non-JVM languages nowadays. I develop on a Mac and deploy to Linux, Windows (sometimes) and now Android. I really don’t want to worry about whether the language or platform I’m using has native components hidden somewhere inside. I’ve spent enough time doing “./configure” in the past to be seriously bored with non-portability. That was even going between two Unixes (Solaris and Linux)! I know Java is really “write once, debug everywhere” (e.g. Graphics2D problems on the Mac), but at least these are problems in particular library features, not a total inability to run.

Anyway, what have I learned? Scala in Eclipse has become usable enough for me with the latest Eclipse plugin for me to use Scala as my main Programming Language. It’s still the case that the Scala builder gets confused too often and you have to do a Project->Clean. This even happens with pure Scala builds, and not just with mixed Java/Scala projects. The Editor integration is also flaky e.g. copy and paste between files can cause errors, and you can forget about consistently completing a Rename Refactor. However, even given all that, the ability to mix Scala and Java in one project is what really does it for me. Overall, it’s still basic compared to the JDT. I don’t yet want to push it for my day job, but for personal projects, where you can absorb the extra time fixing things if you break them, it’s fine.

Scala as a language is really growing on me. As previously mentioned, I was working through the "Programming in Scala" book. Even though Scala fundamentally has a small core, it has the appearance of a much larger language. I really needed to read most of this book to get past quite a few roadblocks, but I did manage it.

For example, I’d looked at parser combinators before but found the examples posted at the time and the scaladoc impenetrable. This is not too surprising as operators in Scala appear as methods on the class, so class-level docs can’t really tell you much about how to use them in context. The JSON example in the book was large enough to give me sufficient transferrable knowledge to write a simple parser for LSystem descriptions:

 import scala.util.parsing.combinator._
 
 object LSystemLanguage extends RegexParsers {  
   // This parses "B; F -> FF, B -> F[+B]F[-B]+B; FB" into an LSystem
   def parse(spec: String) : LSystem = {
     parseAll(lSystem, spec) match {
       case Success(l, _) => l
       case Failure(m, _) => throw new IllegalArgumentException(m) 
       case Error(m, _)   => throw new IllegalArgumentException(m) 
     }
   }
   def lSystem = axioms~";"~rules~";"~visible ^^
     { case axioms~";"~rules~";"~visible => LSystem(axioms, rules, Set() ++ visible) }
   def rules = repsep ( rule, "," )
   def rule = variable~"->"~rep( variable | constant ) ^^
     { case lhs~"->"~rhs => new Rule(lhs, rhs) }
   def axioms = rep(element)
   def visible = rep(element)
   def element = variable | constant
   def variable = 
     "[A-Z]".r ^^ ( (s : String) => { Var(s.charAt(0)) } )
   def constant = 
     ("[a-z]".r | literal("+") | literal("-") | literal("[") | literal("]") ) ^^ 
     ( (s : String) => Constant(s.charAt(0)) )
 }

Apologies for the probably non-idiomatic Scala (and lack of syntax-highlighting on this site, I’ll upgrade one day, honest), but it has the important property that it works, as opposed to most of my previous attempts. From further reading elsewhere, I get the impression that they are papering over some details (the RegexParser combines both tokenisation and parsing, which they don’t cover separately from what I read of the book). However, who cares, it works!

I’m now seriously considering supporting the full Fractint LSystem syntax, which I wouldn’t have considered doing in Java. Obviously, you can do all this with JLex etc, but that means going back and forward between languages and probably, gack, writing an ant script. Seriously, I spent more time during my holiday getting a simple ant task to work than I did writing this parser.

Modulo one instance where Eclipse crashed and I had to rebuild my workspace, programming in Scala using Eclipse has been fun. The combination of an object-functional language, a half-decent IDE and rich platform libraries is very powerful. It’s important to emphasize what this can give you. For me it means that if I have a spare hour or so in which to add a new feature or tweak an existing one (like extending the parser) I’ll consider doing it and expect to complete it, and enjoy it.

Technically, I’m capable of getting the same feature implemented in Java, in combination with other tools. However, I’d start out with a big “harumph” as I picture the fields of verbosity laid out before me. It would definitely not be fun.

This brings me to Android. The Scala compiler spits out JVM bytecodes. The Android platform, though not strictly a Java VM, does claim to support Java class files. Theoretically, I should be able to write a library in Scala and use it on Android.

I am explictly not trying to write an Android app in Scala. Instead, I created an LSystem library, written in Scala, which exposes itself solely through these interfaces:

 public interface LSystemViewFactory {
   public LSystemView evaluate(String spec, double angle, int rounds);
 }
 public interface LSystemView {
   public void renderTo(Renderer renderer);
 }
 public interface Renderer {
   interface Point {
     double x();
     double y();
   }
	
   public void addPath(Iterable<Point> path, int length);
 }

In this way, I was trying to avoid relying on any special help that could come from using one Scala project with another. It does work, in a way.

Warning: what follows is a history of my stubborn depth-first method of getting something showing on my phone. There may a better method.

In Eclipse 3.4, you need only make an Android project depend on a Scala project and everything will compile. However, when you run it on the phone, it will be missing the required Scala class definitions. You can download the scala-library.jar and add it as a required library. The Dex compiler then starts churning away on this file, heating up your lap as a side-effect, and then fails with a compiler error. Schäde.

There is some joojoo in “scala-library.jar” that the Dex compiler just doesn’t like. I think it is an unsupported annotation of some kind, probably somewhere in scala.xml.transform, but since it takes a minute or so for dex to do its thang to this library, I decided to adopt a slash and burn approach, by quickly removing anything I knew I didn’t need on the phone. So, goodbye to any of scala.actors, scala.reflect, scala.testing or scala.xml.transform.

Random Aside: it was at this point I had the afore-mentioned elbow injury^H^H^H^H…problem with ant. It is frustratingly hard to get ant to behave in any sort of sensible and consistent manner. In this case, I had the temerity to require more than one exclude pattern (for the multiple packages). The docs claim that you can put them in one string, comma-separated or space-separated; obviously multiple elements are for wimps and no-one will ever need a pattern that contains both a literal space and a comma. I tried this, and it didn’t seem to work. There is, of course, no “verbose” option on the “jar” task so I couldn’t confirm whether my patterns were getting picked up. I ended up using a separate “excludesfile”. A muted “hurrah” and I’m back to work. It’s at times like this that I briefly consider moving back to Make. But only briefly.

This did the trick and dex now compiled the scala-library.jar. My Android Activities and Views (which depend, indirectly, on Scala classes) successfully resolved all references and I could run my app.

All is not satisfactory, however. As previously-mentioned, the dex compilation phase now takes a minute. This compilation happens in the background whenever you make a change to any file, whatsoever. That’s right: tappitty-tap, muscle-memory says “auto-save”, and bzzt you’ve got a minute penalty. On top of this, the dex loader on the phone takes about 10 to 15 seconds to parse the app description. I haven’t yet packaged the app and used it outside of the debugger, so I can’t tell if this 15 second penalty is incurred ever time you launch it.

Both the IDE and run-time problems should be solved by running proguard over it. If I choose the set of interfaces above as the ones to preserve, then I should be left with a much smaller working set of classes. I didn’t try this, partly because I ran out of time, but mostly because it would probably involve writing an ant build file. Can you tell I don’t like ant?

Phew, so after all that I have a (slightly buggy) drawing of an LSystem on my phone:

Android Tree 1

For reference, here’s the same LSystem rendered using the same library, but with a Java2D backend:

Java2D on Mac


2009-06-26

You'll want to see the next days entry instead; this one is incomplete and wrong (see 2009-06-27)

So, another summer holiday is at an end, and another programming interval. This time I was using my LSystem Explorations as a way to get more practice with Scala and Android.

Random aside: I find it hard to get excited about non-JVM languages nowadays. I develop on a Mac and deploy to Linux, Windows (in principal) and now Android. I really don’t want to worry about whether the language or platform I’m using has native components hidden somewhere inside. I’ve spent enough time doing “./configure” in the past to be seriously bored with non-portability. That was even using two Unixes (Solaris and Linux)! I know Java is really “write once, debug everywhere” (e.g. Graphics2D problems on the Mac), but at least these are problems in libraries, not a total inability to run.

So, anyway, what have I learned? Scala in Eclipse has become workable enough for me with the last two versions of the Eclipse plugin. It’s still the case that the Scala builder gets confused too often and you have to do a Project->Clean. This even happens with pure Scala builds, and not just with mixed Java/Scala projects. The Editor integration is also flaky e.g. copy and paste between files can cause errors, and you can forget about consistently doing a Rename Refactor cleanly. However, even given all that, the ability to mix Scala and Java in one project is what really does it for me. Overall, it’s still basic compared to the JDT. I wouldn’t yet want to push using it for my day job, but for personal projects, where you can absorb the extra time fixing things, it’s fine.

Scala as a language is really growing on me. As previously mentioned, I was working through the "Programming in Scala" book. Even though Scala fundamentally has a small core, it has the appearance of a much larger language. I really needed to read most of this book to get past quite a few roadblocks.

For example, I’d looked at parser combinators before but found the examples posted at the time and the scaladoc impenetrable. This is not too surprising as operators in Scala appear as methods on the class, and this really doesn’t tell you much about how best to use them. The JSON example in the book was large enough to give me sufficient transferrable knowledge to write a simple parser for LSystem descriptions, like “B; F → FF, B → F[+B]F[-B]+B; FB”:

 import scala.util.parsing.combinator._
 
 object LSystemLanguage extends RegexParsers {  
   def parse(spec: String) : LSystem = {
     parseAll(lSystem, spec) match {
       case Success(l, _) => l
       case Failure(m, _) => throw new IllegalArgumentException(m) 
       case Error(m, _)   => throw new IllegalArgumentException(m) 
     }
   }
   def lSystem : Parser[LSystem] = axioms~";"~rules~";"~visible ^^
     { case axioms~";"~rules~";"~visible => LSystem(axioms, rules, Set() ++ visible) }
   def rules : Parser[List[Rule]] = repsep ( rule, "," )
   def rule : Parser[Rule] = variable~"->"~rep( variable | constant ) ^^
     { case lhs~"->"~rhs => new Rule(lhs, rhs) }
   def axioms : Parser[List[Element]] = rep(element)
   def visible : Parser[List[Element]] = rep(element)
   def element : Parser[Element] = variable | constant
   def variable : Parser[Var] = 
     "[A-Z]".r ^^ ( (s : String) => { Var(s.charAt(0)) } )
   def constant : Parser[Constant] = 
     ("[a-z]".r | literal("+") | literal("-") | literal("[") | literal("]") ) ^^ 
     ( (s : String) => Constant(s.charAt(0)) )
 }

Apologies for the probably non-idiomatic Scala (and lack of syntax-highlighting on this site, I’ll upgrade one day, honest), but it has the important property that it works, as opposed to most of my previous attempts. From further reading online, I get the impression that they are papering over some details (the RegexParser combines both tokenisation and lexing, which they don’t cover separately from what I could see), but who cares, it works! I’m now seriously considering supporting the full Fractint LSystem syntax, which I wouldn’t have considered doing in Java. Obviously, you can do all this with JLex etc, but that means going back and forward between languages and probably, gack, writing an ant script. Seriously, I spent more time getting a simple ant task to work than I did writing this parser.

Modulo one instance where Eclipse crashed and I had to rebuild my workspace, programming in Scala using Eclipse has been fun. The combination of an object-functional language, a half-decent IDE and rich platform libraries is very powerful.

This brings me to Android. Theoretically, since the Scala compiler spits out JVM bytecodes and the Android platform, though not strictly a Java VM, does claim to support Java class files, so I should be able to write a library in Scala and use it on Android. It does work, in a way. Warning: what follows is a history of my stubborn depth-first method of getting something showing on my phone. There may a better method.

In Eclipse 3.4, you need only make an Android project depend on a Scala project and everything will compile. However, when you run it on the phone, it will be missing the required Scala class definitions. You can download the scala-library.jar and add it as a required library. The Dex compiler then starts churning away on this file, heating up your lap as a side-effect, and then fails with a compiler error. Schäde.

There is some joojoo in “scala-library.jar” that the Dex compiler just doesn’t like. I think it is an unsupported annotation of some kind, probably somewhere in scala.xml.transform, but since it takes a minute or so for dex to do its thang to this library, I decided to adopt a slash and burn approach, by removing anything I knew I didn’t need these on the phone. So, goodbye to any of scala.actors, scala.reflect, scala.testing or scala.xml.transform.

Random Aside: it was at this point I had the afore-mentioned elbow injury^H^H^H^H…problem with ant. It is frustratingly hard to get ant to behave in any sort of consistent manner. It’s at times like this that I briefly consider moving back to Make.

This did the trick

TBC, Cafe und Kuchen ziet

… actually, TBC some time later i.e. the next day. I was tempted away by a cycle ride in nice weather, some beer and a viewing of “Shaun of the Dead” in German. It’s hard to think lucidly about Scala after all that ;-)


2009-06-17

I’ve been programming Scala here and there and every so often get stuck in a “how the hell do I do this basic thing?” moment. So, I’m gradually working my way through "Programming in Scala", as I thought I should finally get more of an idea of this language works.

I definitely like the application of the “everything is a library” strategy for implementation of what would be core features in other languages. However, one example leaves me wary, “::”. A List may be constructed (val l = a :: b :: Nil) and deconstructed ((a :: b :: Nil) = l) using the same syntax. However, this is only possible because “::” is both a method on List and a case class. Along with the right-associativity of any operator ending in “:” these conspire to give the illusion of the “::” operator that is seen in other languages, like ML.

This all seems a little too “just-so” for me. It’s if they really wanted to use Lists like in ML and engineered the defaults (like right-associativity) to make it easy. This default doesn’t really help make other, non-List operators, very obvious, like “/:” and “\:” (for foldLeft and foldRight, if I remember correctly).

There is quite a lot of pragmatism in the Scala language and libraries, which I like. However, some of it seems a little too skewed towards particular features and may lack generality.


2009-05-15

The new google "Wonder Wheel" (pronounced like “Wonder Woman”) is all funky and all but I’m not convinced it’s useful.

For example, I happened to be searching for more information on "active learning" the other day. Active learning (as opposed to passive learning) is a framework for training an algorithm where the learner can ask questions of a teacher about particular examples. In passive learning, there is no interaction.

The phrase “active learning” also seems to be a term heavily used to describe a technique for teaching children. I thought the Wonder Wheel might help to choose which of the many related terms is closer to my required definition. Unfortunately, it is still heavily biased towards the mainstream usage.

For my search, I’d require it to take the term and disambiguate it by allowing me to choose disparate clusters for my next step in exploration. As it stands, it’s very good for finding related terms in a cluster, but not disambiguating between clusters.

The question is: what’s the more common use-case?


2009-05-03

I just completed my first official 10k. I managed it in 57 minutes, which I was pleased about because it was under an hour. I didn’t absolutely push myself, because, well, I don’t really know why, but I think I’d rather stick to running without constant reference to a clock. Having said that, I am honestly a little bit miffed that I got a worse time than all the people I know ;-)

The question is, what next? I am quite pleased that over the past few months friends have noted that I’m looking better. However, I don’t really want to maintain my fitness by working towards a marathon, nor do I wish to do the same old 10k routes. It’s just too boring. Then again, I quite like eating a good few calories and burning them off regularly. Right now, I’m working on a couple of options to avoid slipping into keeping the diet but losing the exercise.

I could switch back to climbing and cycling. Years ago I used to go to the indoor climbing centre down at Newhaven. I’d cycle there and back, with the climbing obviously in-between. I’m not clear on whether this would provide the same level of exertion, in terms of calories. Cycling is simply far too efficient! I’m thinking of starting this now because obviously carrying less weight helps bootstrap yourself back into the climbing.

The other option is to continue running but to vary the routes to keep it interesting. I could do a couple 5k runs a week, going round varying paths. It’d be fun even just coming up with the routes. Right now, I’m toying with a route that focuses on running up all the stairs ;-) The general idea is to explore different areas of central edinburgh by criss-crossing it with runs throughout the year.

One major constraint on my choice is time. I have about four hours a week free, spread over two weekdays. Btw, in all of this, I’m not including football, which I do every Sunday. However, that’s not consistent enough in terms of exertion to be worth factoring in. So, the calorie burn would have to be achievable in this time budget. I feel a constraint solver coming on …

Does anyone fancy joining me in one or all of these things? I may still be boring and just opt for another 5k or 10k, just to avoid my body falling into dis-use. However, I like the idea of going climbing and cycling again. If you’re up for joining me for any of this, give me a buzz on bacefook.


2009-05-01

Ping!

[ I don’t do anything interesting any more ]


2009-02-25

Just a random thought about Scrum tools: have a look at http://www.silverstripesoftware.com/blog/archives/46

Notice how it says “… if any of these features are not done, the project will be considered a failure … important to the success of the project … “. There is an implicit idea of a project being “done” or “shipped”.

I happen to work on a project that will never be done. This is not because we will never ship, but rather because we ship almost continuously. In what way does “won’t” (a MoSCoW priority) make sense in a project that never ends?

I may be making more of this than I need to, as you can impose artificial stages onto a project like ours. However, I’m definitely keeping an eye out for this distinction as I believe some tools and processes may not be reusable if they come from a “ship-date” mindset.


2009-02-14

I think I may have just achieved a legal high. Five and a half km run, followed by a coffee and a chat with a colleague about random interesting things. I’m probably insufferable right now ;-)

Back before I started running, I would scowl at the passing joggers and their public display of fitness. But now I can totally see why those poor sods (or so I thought) would go out and run through both rain and shine. It must be the endorphins.

Unfortunately, for some unknown reason I now smell like a wet cat. Time for a shower methinks!


2009-02-08

I would like to say I had a lump in my throat as I listened to Give My Love to Rose. It is only one of the many tracks I could have encountered during my drunken walk home. Not skipping over it is the limit of my respect.


2009-02-01

My T-mobile G1 is on it’s way! My expectations are not huge. I already know it won’t be as swish as an iPhone. My reasons for not getting an iPhone are that:

  • I already learned Objective C once, in college. I liked it then, but I’ve since been spoiled by the nicer syntax of other languages. I am also addicted to Java.
  • Apples default attitude of “we’ll let you know, when we feel like it, maybe never” is not great when it’s applied to the question of why your iPhone app just got dropped from the App Store.
  • I like being contrary, at least a little.

What does Android give me that iPhone doesn’t? The Eclipse development environment fits nicely into what I work with every day. The GUI library is ok, and will never be as swish as the iPhone, but it’s not bad enough to dissuade me.

When it comes to openness, Google is the opposite of Apple. Mr Jobs was forced to release his developers from NDA schackles, whereas Google just spew out videos, web pages and the like.

Apart from all this, technically, Android is just neat. Regardless of whether you see the Dalvik VM as primarily a run-around Java ME licensing, it still stands out out as interesting piece of technology.

I also really don’t buy into the iPhone restrictions on background processes. Rather than banning all usage of such processes, Android clearly delineates when your app may be killed and what techniques you should use to reduce battery usage. If I really want to produce an app that uses a fair bit of juice but which uses it to produce something worthwhile, then I am allowed to do so. The Android marketplace will decide if such a trade-off is worth it. With Apple, the choice simply isn’t there.

I’ve yet to play with a physical device and sign up as a developer ($25, that was a little surprising) so maybe I’ll eat my words. However, so far, playing with the emulator, I’m having a fun time, playing.

Btw, the Hello Android book, although slim, is quite a good introduction. I won’t be referring to it for reference very often (the index is crap for one thing) but it’s already helped me a couple of times to fix small problems I was having. I wouldn’t say it’s worth the £17 I paid for it. I’ve got "Professional Android Application Development" on order, so we’ll see if that covers enough of the same ground to have made HA a wasted purchase. If anyone from work is reading this, I should be finished it by the end of the week, if you want to borrow it.


2008-12-22

Windows is Kafkaesque. This is not hyperbole. I’ve written about this before, but it’s worth saying again.

On MacOS X when you try to connect to a secure network it prompts you for the password. It even allows you to see the digits as, unlike normal password dialogs, when you are typing in a N-digit hex code it makes sense to see what you are typing. Also, at this point it knows all about the configuration of the network as it’s just talked to it. This all seems like common-sense.

On Windows, it’s like a candy-coated knife. At first you’re presented with a happy-looking dialog which purports to be a gateway to all things wireless. It found the local network (already better than previous attempts), knew it was secure and I was anticipating only the medium-annoying hex password. No such luck. Instead it brings up a dialog saying “waiting for network” with a pointless progress bar. It stays there for about thirty seconds and then disappears. And that’s it. Nothing else. Not even an obscure error dialog.

Trying to do it more manually is worse. You have to peer inside each tab looking for relevant controls. The particularly Kafkaesque part comes when, after making a whole bunch of choices you hit OK and are greeted with the wonderful “At least one of your changes was not applied…” dialog. Which change? Why not? Which changes got through? Why am I being arrested?

In this respect, MacOS X has got it right. The computer should do as much as it can on its own (and not force you to commit suicide in a quarry).


2008-10-19

I’ve had a couple of experiences recently which make me think I’ve fallen off the one true path of test-driven development.

I have developed a tendency to step out of TDD style when I’m trying to get an idea as quickly out my head and into code as possible. When I do this I work in a tight loop of think/code/look where the last part is examining the output to see if it has what I was after. This is often exploratory experimental work where I don’t actually know what the output will be. Test-driven development can only hamper this initial foray.

After I’ve done a little of this I switch back to solidify and shore-up what I’ve done by writing tests to confirm what I think I’ve done is what I’ve actually done. Now, it’s not unusual for this stage to find some bugs. But then I ask myself: if I’d done this a step at a time, with each step carefully checked, would I have reached my unspecified goal? Does it actually matter that I introduced a bug if that bug serendipitously led me to an interesting result?

Incidentally, it’s funny that I often only write an equals and hashCode implementation in the second stage. The code I’m working on often consists of maps to this and that, where the value is often never used as a key or in equality comparisons. The production code simply doesn’t need it. Yet, I find myself writing equals and hashCode first when I do TDD as the style often requires comparison of expected and actual values.

Similarly, I beef up the API of a class when I’m using TDD because I want to test all of it’s behaviours. Yet, sometimes those methods are only ever used by Junit tests. Hmm, could Eclipse me modified or configured to show a warning if a method is never used by production code?

When it comes down to it, TDD is really just another programming style and not dogma. It is simply not always the best thing to do. Join me next week, where I question the value of continuous pairing. Heretic!


2008-10-12

Todays TED viewing was split between youtube and iTunes, and shows up an assumption in iTunes which just doesn’t apply to me. Video replay on my mac is problematic. Either I’m running low on main memory or the network is slow (damn new student nieghbours now come with both cars and wireless hubs). Regardless of cause, they trigger a flawed assumption in iTunes that it’s ok to skip some of a video as long as you catch up to where you would be if it hadn’t skipped.

This is perhaps a good assumption for playback of a live Steve Jobs keynote, but useless for most everything else. There appears to be no tickbox in iTunes or Quicktime preferences which says “I am not on my knees listening to Steve, and I have just missed Steven Pinker say something controversial, please give me everything no-matter how delayed” (this might break some of the HIG).

Anyways … on to todays viewing, in which Steven Pinker went through the reactions to his book, The Blank Slate. He highlights some of the themes covered by it, and picks out which of them, by volume of correspondence, produced the biggest reaction. One of the top two is “parenting”.

Steven Pinker: Chalking it up to the blank slate” is, I have to admit, disquieting for a parent. He basically says that whatever I do in bringing up Nils will have comparatively little effect compared to his genes. That’s quite a bleak prospect, but then that’s no reason to believe it isn’t true. Given that I accept this, however, what’s the practical day-to-day implication for my behaviour? Should I treat Nils in whatever way I like, because he’ll come out the same way regardless? I find Steven Pinkers ideas and results interesting but hard to turn into actions.

There’s not much relief for me in David Perry: Will videogames become better than life?: Nils will grow up in a world where realistic Video Games are a given, and Video Game designers will have a bigger impact on his thinking than I could ever hope for. This is of course, assuming, that I don’t throw a wobbly and become a Quaker. TED, as a conference, is generally a techno-optimistic culture. Technology can fix it. Technology is a good thing. In this context, a self-portrait of a video-game addict outlining how his addiction means he’s spent longer driving cars in a game than in real life is generally accepted as a good thing. “Wow” says David Perry as the self-portrait ends and he points out how much power and responsibility a modern Video Game designer has. His voice has a tint of excitement.

David’s and Steven’s views are not contradictory, as the second largest effect highlighted by Pinker was “culture”. Video games are rapidly taking over culture. By revenue, games are rapidly outpacing Movies and DVDs.

Surprisingly, the peak age in the demographics for gamers is 37. Hey, that’s almost me. Except, of course, I don’t play many games. I gave up buying consoles with the N64 and first Playstation. Singularity or no Schmingularity, I suspect being a computer programmer will have no bearing on how far Nils will be ahead of me by the time he is a fraction of my age.


2008-09-17

This nights dishwashing viewing:

Incidentally, we also watched the latest Horizon tonight, The President's Guide to Science. Umm. It had pictures of people writing on blackboards?

Finally, here's more inspired nuttiness from Clifford. You just gotta love how uncomfortable the questioner is. Btw, for those who watch this, the irony of me having stayed up late to watch this video online is not lost on me.


2008-09-15

Some videos on http://ted.com are worth watching if you can stomach the american fun. They do make doing the dishes far less boring. Tonights viewing:


2008-08-28

 "At least one of your changes was not applied successfully to the wireless configuration"

Oh, windows, how I love you so (I got this after entering some values into a couple-levels deep dialog box).

Turns out, windows won’t connect to an Airport Express because the channel may be defaulting to 13 when the mode is set to automatic (you need to choose a fixed channel).


2008-08-23

I’ve been enjoying some ‘spoilerware’ recently. I can’t think what else to call it, but it mostly comprises of reading plot summaries on Wikipedia of books I don’t want to buy.

There are a few authors who have interesting ideas but have ‘varying’ writing ability. The "Rendevous with Rama" series by Arthur C Clarke is a perfect example. I really enjoyed the first book and followed the series up to The Garden of Rama. I was willing to put up with the dry unrealistic characters as long as I could find out what those bloody Octospiders were. Unfortunately, the main story arc just stopped mid-flight at the end of the book. It was if the last page just said “please buy next book”. This was when I mentally gave Arthur the finger and stopped reading the series.

Only today I avoided spending 10s of pounds and a good few hours on The Reality Dysfunction series. I found myself skipping through the summary, so the actual books would have been torture. Hey, maybe he’s good at characterisation ;-)


2008-08-22

I went bowling last night. In comparison to here in Ronneburg, bowling in Edinburgh is e x p e n s i v e. Here, we pay per lane per hour. Including shoes and car parking costs, we paid a total of 36 euros for four people to play approximately four games over a couple of hours.

In Edinburgh it’s metered per person per game. For comparison, at a local Edinburgh bowling hall it costs 48 euros for four people to have three games (the maximum allowed) over two hours. Extrapolating a bit, that comes to 64 euros for the same number of games and people. To have a cheap bowling night in Britain you must have no friends and be a crap bowler.


2008-08-21

And so, another holiday in Germany is almost over and another unintended milestone is made, by accidentally understanding a bad joke.

These milestones come upon you unbidden. It seems that every one reveals another level of mistakes you can make. When I was first learning German I once came back from class with a small present all ready for Carmen. I was all proud and ready to say “Ich habe ein geschenk” (I have a present) but it came out as “Ich habe ein geschifft” (I have pissed myself). The collapse into laughter was not my expected response ;-)

Btw, my written German is still very bad so the above is probably a little bit wrong. I reached a point where I didn’t really give a shit about der/die/das anymore, mostly because when you speak mostly people don’t give a shit either (as far as I can tell). However, it probably means my written German is a couple of years behind the level at which I speak.

Anyway, “jetzt est ist bett zeit”


2008-08-19

"If it was so easy why ..."

Every so often, I see this statement appear when an ‘obvious’ solution to a problem is discovered and the commentator wonders, in disbelief, why no-one did it ages ago. Or, as justification for why something shouldn't be done, they ask “if it was so easy, why hasn’t BigCorp done it?”, thereby implying there is something bad about the solution that we just don’t know yet.

I think the response to both of these situations comes from considering the search space involved. By analogy, if the “answer” is a series of steps, then it can be represented as the path through a graph of possible states from the current state of the world to the desired state. To see why an ‘obvious’ solution is anything but, you merely have to consider the fan-out, or degree, of the nodes in the search space.

To actually find the solution may involve either a very long brute-force search, or a clever search algorithm. Seeing that a solution is “obvious” is merely saying that is easy to verify the solution is correct. This does not mean it was easy to find.

It’s confusing the analogy a bit, but for examples of ‘spaces’ with this property you need only look at one of the many NP-complete problems.

This discussion reminds me of Contact (the book). In it the instructions received describe a set of operations to perform which are simple in themselves but which combine to produce a powerful, useful artifact. It does make you wonder if we are surrounded by a sea of possible fantastic devices, which we could magic into existence if only we knew the right steps. Then again, maybe we’ve found all the easy wins and everything left will be a struggle. Here’s hoping not.


2008-08-17

on flickr

We were sitting on the patio drinking beer and chatting happily. The moon had just rose above the rooftops. There was something wrong; a big chunk of the moon was missing. The first idea to come to mind was not an eclipse. For a few seconds, I was a troubled home-sapien.

I happened to have my laptop handy. I just went to general news sites to see if anything moon-related was happening. What did my poor little brain think was happening? That someone was stealing the moon? Once “eclipse” popped into my head I soon found all I could ever want to know.

But it did make me wonder. It wasn’t just the beer that made me think something momentous was happening. When it comes down to it, I’m not really all that different from my ancestors who could have so easily interpreted this a sign from some God. I just happen to have this wonderful device in my lap which helps me suppress the little ape-mind within.


2008-08-15

In working through my old tabs I discovered http://cs.nyu.edu/~jhan/ftirtouch/ which now has a link to http://www.perceptivepixel.com/. I have to admit, this stuff looks impressive, but what would you use it for? Ok ok, we have the iPhone. However, if you consider the table-size model and then remove GIS applications from the mix what are the remaining profitable use-cases?

I’d also really like to hear of any investigations into the effect on the body of repeatedly interacting with one of these screens. I have done absolutely no research into this, but my first thought is that it would be tiring to use these for any length of time.

This interaction style is an interesting way-point on one of the many roads leading away from the mouse-pointer and the GUI. However, I believe the applications that will be successful are further down the path.


2008-08-14

I just finished Maus. I’m glad I finally got round to reading this, but there were many points at which I had a huge lump in my throat. It’s all so unreal that I can almost understand the holocaust deniers and so stark and wrong that I can almost see why some of the Jews of today are so paranoid.

To the external observer you’d think I was working my way through the list of all the depressing but high-quality comic books out there. I’ve just finished Persepolis, and I’ve read a couple of Guy Delisle's books about North Korea this year.

As a pseudo-Atheist I actually found Persepolis most challenging. From what I know of them, both Art Spiegelman and Guy Deslisle are on ‘my side’. However, Marjane Satrapi appears to retain some thread of faith whilst still decrying the religious fundamentalism all around her. Perhaps this is not so surprising given the number of people who are ‘religious’ by some definition yet don’t go subscribe to any particular church.

I’ve perused Maus quite a few times but often left it on the shelf because the style was too bland. I’ve never been one to read either historical or travel books (for some reason my eye just glides past dates and names of people and places). The Pyongyang book changed this because it held enough of interest for me stylistically to draw me in initially, then the story took over.

You won’t believe it but V for Vendetta sat, unread, on my shelf for years; it was only the impending film release that pushed it into my hands. What a waste.

By some strange logic, Palestine should be next on my list, but even that still looks too depressing. Perhaps I’ll just tread water for now.


2008-08-11

Stateful Static methods. Embedded file paths. Ugh. I’m talking about the lovely source of JWordnet and JWNL (JWordnet was based on JWNL). Both require you to embed a global file path which points to the Wordnet database files. I’m trying to set up a new Eclipse project for playing with Wordnet and really don’t want to hard-code a file path.

It’s hard to explain, but seeing code like “JWNL.initialize()” with no arguments just gives me the heeby-jeebies. I think “C programmer”, I think “not thread-safe”, I think “impossible to configure by command-line”. I think “not worth it”.

Aargh. From the docs, the code for the MIT interface looks reasonably sane, but the code-base has a non-commercial/commercial license trap (“Non-commercial? Here’s the code. Commercial? We are starving academics, please send your wallet to this address”).

Maybe I’ll just go and do something else.

Please don’t say “use ruby” [/me walks away hugging IDE]


2008-07-27

When does blog reading turn into a chore? I’ve now been without my main NetNewswire config for about 3 months. I’m not missing it. I had around 200 or 300 feeds, of which I would read 10 or so a day, and feel guilty about the rest. Totally pointless. I was optimizing my feed reading to only those feeds that regularly had something of interest, but then I have to ask myself: why?

I’ve occasionally felt a pang of regret when I feel I’ve missed the latest trend. However, half the time I hear about some new fad and then wonder why anyone would care.


2008-07-26

I am using the horsey viewer to write this. I am barely managing to keep hold of the keyboard because more horsey, sheep and duck fun is waiting for Nils!

Flickr, you are a godsend and a curse! ;-)


2008-07-13

I have to admit that most of my munging of Javascript has borne more resemblance to a cargo cult than programming. However, I’m finally beginning to understand what the idioms actually mean and why they are there.

This is because I’m gradually working through http://www.amazon.co.uk/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742 in small “distance between train station and work” size chunks. It’s already paying off:

 var Foo = function() {
   this.bar = "test";
 };
 
 Foo.prototype.farp = function() {
   this.bar = "nirble";
 };
 
 var foo = new Foo();

This is a pattern you see for the creation of a ‘Class’ (Foo) with ‘methods’ (farp). However, what you’re actually doing is creating a Function Object and creating methods on that Object. When you invoke “new” (the “Constructor Invocation Pattern”), Javascript just so happens to bind “this” to a new Object when invoking the Function and then set the prototype of that new Object to be the same as the Functions.

Note only is this book useful, but you can also carry it around without incurring back-ache!


2008-06-29

Hummel Himmel Hügel

(Bumblebee Sky Hill)

Say that three times, fast, pointing at the associated things. What do you have? A new european dance craze!

(these have to start somewhere, don’t they?)


2008-06-13

“I think Ray Kurzweil is terrified by his own mortality and deeply longs to avoid death.”

(http://tal.forum2.org/hofstadter_interview)

I never thought I’d agree so much with Hofstadter.


2008-06-05

Ha, I can’t believe it! At first glance, "twitterpated", --"An enjoyable disorder characterized by feelings of excitement, anticipation, high hopes, recent memories of interludes, giddiness, and physical overstimulation" – seems far too apt a word to have a history greater than a few months. I saw it today in "Founders at work", which I’m pretty sure came out in print before the current twitter fiasco.

Ok, I'm bending the meaning a little, since the original definition is more about love, but go on, admit it, wouldn’t it be cool if the meaning bent a little bit more?

“Nearly everybody gets twitterpated in the springtime.”


2008-06-03

The language used on http://www.trendwatching.com/trends/ is pure class:

  • “… consumers will increasingly have to tell each other stories to achieve a status dividend from their purchases”
  • “… there are now millions of other consumers who are actually impressed by green lifestyles.”

(I think that “actually” is letting through some bias: “what, you mean I’ll have to give up the Merc / SUV / Tank and buy an economy car???”)

Then again, maybe that’s my bias. I shall think of this in Tescos when I’m not composing a story around my next purchase.


2008-06-02

Just. One. More. Attempt. That’s all it took. Ok, well, I also had to re-enter all my film bookings as my reservations had expired.

Regardless, I am now the proud owner of 8 film festival tickets. If you fancy meeting up for a beer or whatever before or after some of them, then you can see the films I’ll be going to see on my google calendar.

Don’t you find it a little suspicious that the system starts working again just after 12?

Update: Just thought I’d note that I did get a nice apologetic reply from someone at the Film Festival. Their system is still broken, but at least this time I got a reply to my complaint email.


2008-06-01

Dear Lazyweb, I did not realise your wandering eye could see the random scribblings in my jotter. I wrote: “an app to identify a font from a picture or scan would be useful”, and mere days later you produced "What the Font", via your messenger, Mr Fireball. I thank you.

… In other news, I really have to complain about the bloody EIFF booking system. It has failed again. Just. Like. Every. Single. Fscking. Year. This time, it’s run by some company called “BlackBaud(R), ThePatronEdgeOnline(tm)”. Send me a postcard if you have a fracking clue what their name even means.

With regards to the ‘basket’ I can perhaps leave aside the fact that they decide to highlight such important facts as the column names, and show the actual name of the film in grey.

However, it saddens to me deeply to see

I spent a good half-hour arranging how I’m going to spend limited time and money. Aaaagh, I’ve just tried again, that’s three times now. I just know, know, what’s going to happen. I will try once more tonight, then go to bed. Tomorrow, I will try again and my reservations will have expired.

It’s simple. Every year, a film festival is held. They may even have some, you know, data from previous years. From these facts, they can work out (you know, with maths) how many people will visit the site and when. Hmm, maybe they could test the system with that many people. I’m sorry, it really must be rocket science after all. See you again for the same complaint next year?

Btw, £11.00 pounds for a Gala Premiere, what? £11.00 pounds per person to see a film that will likely be on general release in a couple months. So, at current prices, that’s about £6 pounds to be able to say “Oh ya, I saw that at the Festival, it’s sooo good” (they’re all yuppies, you see).


2008-05-26

I am attempting to convince myself I did not watch tosh when I was a child. In particular, I’m convinced Equinox and Horizon were far better “when ah wer a lad”.

So, off to youtube, where I got distracted by this: http://youtube.com/watch?v=8v-WfRSeNxA I’ve always been annoyed by the bit where he says: “we see literally infinite complexity”. For the time being, let’s leave aside the problem of what “literally” means in this sentence (let’s not get distracted). If the Mandelbrot Set really were infinitely complex then presumably, I could specify any picture in it that I wanted simply by providing the imaginary top and bottom co-ordinates of a rectangle. If I was a Mathematician, at this point I would take this statement and produce a short proof that it is contradictory.

But I’m not (sorry). However, to see what I’m getting at, just go away and play with the M-set (look, I'm hip) for a bit in your favourite browser.

Good, now, do you think you could find a picture of the Queen being punched in the eye by my wife? No, good, neither do I. See, that was far more entertaining than a proof.

Back to youtube…


2008-05-24

Futurists make me cringe. It’s one of the reasons why I only read Wired cover-to-cover once or twice a year. Having said that, Visions of the Future: The Intelligence Revolution was not half-bad. Or rather, half of it was bad, which is twice as good as normal.

I was not surprised to see Ray Kurzweil (itinerant techo-positivist) nor Susan Greenfield (new book out) do their piece. Marvin Minsky was a little surprising, as I had thought he was dead (or maybe he is, oooh). Jaron Lanier, check. Roll-call complete.

Anyway, leaving aside what the usual pundits said, Michio Kaku still managed to assemble some cogent examples of how our lives could be changed by developments happening now. In particular, the coverage of the targeted insertion of electrodes into a depressed womans brain to change her emotional balance was disturbing. You could ask, does this “touch of a button” control lessen the reality of ‘real’ emotions? Maybe it does, but wouldn’t you say current drug usage does the same thing? It may be the availability and social acceptability of such capabilities that makes the difference. Think of how different life would be if existing mood-affecting drugs had no controls to restrict mis-use. Would anyone ever bother going to work or finding a partner?

It’s the implicit assumption of the techno-positivists that all technological change is good for us. This is perhaps why, when they talk of the Singularity, you see a hope in their eyes that it comes tomorrow and not in 2025. Any problems, either ethical or practical, are just roadblocks to be ‘routed around’.

I am not anti-technology. I will selectively accept new technology where appropriate. This made me particularly annoyed when one contributor framed the take-up of advances as a competition. I get the impression that if you are left behind, he’d see it as your own fault for not being gung-ho enough to find and take-on every latest point release. [Btw, I would love to identify who this guy was, but the slice of time with his name in it is hard to find using the BBC iPlayer].

Moores law is a goal, and not a fundamental law of nature. Perhaps the (capitalist?) doctrine of ever-faster consumption needs to be extended to incorporation of technology so that the Singularity can happen at all. However, that necessarily means it is not a certainty. You only need to look at the recent debate in the UK over the choice of when a foetus may be aborted to imagine how complicated (and slow) future debates on incorporation could become.

Regardless of whether I agree with all the opinions of all the contributors, I would agree with Michio Kaku’s takeaway thought: we should be discussing the effects of these changes now. And please, let’s not leave it to the Ray Kurzweil’s of this world to do the thinking for us.


2008-05-18

The people who designed the new self-service tills in Tesco must have played a lot of tetris. It could be the only way to explain how the components came to be so arbitrarily stacked together. Obviously, the best place to put a paper money dispenser is in front of your knees.

I can imagine the average milk-loving environment-hating card-using customer just whooshing through these tills. However, bring in your own bag: dock ten seconds and two beads of frustration for every time it subtly accuses you of nicking stuff, all because you are trying to steady your bag. Buy some fruit: search for it, choose nearest approximate colour and then wonder why you are doing the job of a Tesco employee. Generally, wander at all off the path of the bovine-product bachelor, and you’re condemned to the “wait of shame”, as you stand sheepishly beside the till waiting for the surly till-shepherd to come over and press a button.

In summary: I don’t like them.


2008-05-15

I love Facebook: “Mike, review testimonials that others have written about your friends”, followed by “This message contains a rich-text HTML portion. Consult your mail client’s documentation for infomation on how to view it.”

Umm, how about “no”?


2008-05-12

I may be incredibly biased by the “thumbtack / postage stamp / gnats arsehole” size of my kitchen, but really, what’s "not so big" about this kitchen?

[btw, image may break as I’m just linking to it directly. Oh, and don’t go and print this out and somehow extract a copy of the entire book].


2008-04-26

It’s strange to find comics you own behind glass. Half of our time at "Local Heroes: The Art of the Graphic Novel" was spent identifying the ones we own. I didn’t see "Even a Monkey can draw Manga" but did find "Understanding Comics" [btw: I said to Hugh this was the same guy who drew PVP (Scott Kurtz). This is, umm, totally wrong.]

It’s only a largish rooms-worth of material but it’s worth an hours browse. I’ll be going back again. Of course, we left the place with a big list of comic books we want to buy


2008-04-20

Being ill is shite. I seem to have caught some conjunctivitis from Nils, I have a fever and I’m as stiff as a poker. Though, I don’t know whether this stiffness is due to illness or because I just spent 12 hours in bed. About the only part that isn’t stiff are my hands (hence why I can type this).

Letters of consolation and general gifts can be sent to the usual address (mid-size violins accepted).


2008-04-13

There is some amount of sweet justice in the fact that the second actually useful hit on google for "Knol" goes to Wikipedia.


2008-04-06

Football team selection is in need of an anthropological study. I’m seeing it from the rung of the casual Sunday Footballer eyeing up the various sapiens on The Meadows around us:

  • Bibs present? Bad sign, they will beat us and will probably be anal about the rules. By anal I mean: know what offside is.
  • Proper Goals? Shit, they’d whip our asses.

Today we got beaten by:

  • A bunch of Americans. Pah.
  • Followed by: some guys (two of them mostly) wearing strips.

What got us was the politeness issue surrounding walking past a team that looks too good. They were displaying traffic cones for goalposts which is intermediate in the pissing stakes. But really, the strips should have vetoed any challenge.

Please consider these hidden complexities the next time you see a group of grunts expleting after another strike sails through their goal, delimited by a ragged pile of coats and bags.

Oh well (this my United States of Whateva)


2008-04-05

I’m finally listening to Why Bother?: Sir Arthur Streeb-Greebling in Conversation with Chris Morris which reminds of the one and only time I played The Extraordinary Adventures of Baron Münchhausen (“Tell me, Baron Mike, how you invented Monkeys”). Rather embarrasingly, I now own three copies of this. Not only did I accidentally buy two copies of it, I also already had one. Anyone want a copy?

I also own two copies of The Northern Lights, although in that case I think Carmen bought the original copy. Is that better? Not so sure.


2008-03-23

Here’s a random Easter Holiday find, Vegrevilles egg ( striatic on flickr):

http://www.flickr.com/photos/striatic/537501345/

I found this whilst flipping through a section on tesselations of eggs in “Adventures of an Egg Man” in Archimedes Revenge. This is an example of the nice things that happen when you spend Sunday morning arranging your bookshelf. Next step, Dewey Decimalisation? Umm, maybe not today.


2008-03-22

Grave of the Fireflies is not a film I’d recommend be seen by anyone with children.

After we had Nils, I imagined myself becoming affected by all the schmaltzy Speilberg movies featuring children in trouble. Thankfully, that never happened. However, this one caught me by surprise. It was one of the few movies in a Studio Giblhi collection that we didn’t recognise. We put in on, naively expecting another piece of Totoro-style magic. I was instead left devastated.

There is a class of films that you can admire in a dispassionate way, but can’t really recommend to anyone. It would be like saying “you come close to dying and then emerge with a new zest for life”. Technically, there is a net win, but with a huge hidden gradient.

The one aspect about this that I find amusing is that my programmer brain sees this as an edge-case: “Star rating: 5, Would you recommend this to anyone: never”


2008-03-11

I think my little Vocabulary side project is starting to pay off. I was walking round the house last night (27 miles, every night) and I suddenly realised that “forlorn” sounds like the German “verloren”.

“Forlorn hope is a military term that comes from the Dutch verloren hoop, which should be translated as “lost troop”: the Dutch word “hoop” is not cognate with English hope”

(http://en.wikipedia.org/wiki/Forlorn_hope)

I would have thought there was a strong link between the Dutch and German, especially since "verloren" means "lost". However, it seems that the direct translation of "forlorn" into current German is "verlassen".

Hmm.


2008-03-10

There is something about seeing the phrase “governance policy” on a project page that makes we want to go and have a little snooze.


2008-03-08

I just finished watching The Quiet Earth. It reminds me of a wet Sunday afternoon. The last time I saw this I was a kid, so it actually must have been on later given the mild titilation and violence. I bought this DVD in Germany, along with Brainstorm (Projekt Brainstorm in Germany: far cooler). These were found as a side-effect of a late-night trawl through imdb, scouting out all the old films I just barely remembered.

It is a good few minutes into the film before the main character says anything. In this case, it was “hallo” with a German accent (Germans dub, rather than subtitle, their imports). The pace is plodding, but relaxing. You could find the film as a whole infuriating (you’ll know what I mean when you watch it). The science is likely balls, but it’s the sort of thing that got me interested in the subject.

It turns out, surprise surprise, the film is only loosely based on the original book by Craig Harrison. I’d be interested to know if any of the deficiencies in the film are made up for in the book. However, I’ll have to pay a whopping £220 pounds to find out. At least I’m not in the states: 2 Used and New from $1,000. No customer reviews yet, hmm, I wonder why.


2008-02-28

My prediction: Ray Kurzweil will go on wittering about immortality until he eventually dies, just like everyone else.


2008-02-24

Jumper: what a flat film. The ability to travel anywhere in the world, without constraint? Boring. I was hoping for a Bourne-style thriller, but when you take away the need for, you know, all that cunning spy-stuff, it’s like watching someone else play Quake.


2008-02-17

"Horizon: How to Make Better Decisions", actual content: about 30 minutes worth. However, add some tosh about a guy going round making up ‘equations’ to help with decisions and mix in some dire group shots with the camera focusing back and forth and you have a good 50 minutes. Really, I’m sure Horizon didn’t used to be like this. Honestly, who-ever has popularised the fake ‘close-up with camera shake’ technique (including for bloody graphs) should be taken outside and forced to fight it out with Edward Tufte.


2008-02-09

Last night we went to see The Blonde Bombshells of 1943. This type of thing normally isn’t my cup of tea, but I was surprised to find I actually liked it. I guess it may be because it featured musicians as opposed to being a musical.

The demographic was definitely skewed towards the fifty to seventy age group, but I still managed to recognise a couple of songs. I particularly liked that they played Boogie Woogie Bugle Boy.

After an interlude in The Cameo Bar (far too loud, am I getting old?), we ended up seeing Juno. It lives up to its reviews, and is definitely on my list of DVDs to buy. Oh, random observation: Jennifer Garner looks like a replicant.


2008-01-25

One-line review of Transformers:

“They hacked into a network using sound”

Your reaction to this summary should indicate whether you will like the movie.


2008-01-02

Cinnamon Surge

I encountered a few different types of languages in University (e.g. Perl, C++, Prolog, Standard ML). I thought myself innoculated against single-language thinking, but apparently not. My name is Mike Moran, and I am a recovering Javaholic.

I’ve been following Tim Brays WideFinder series and it forced me to consider, once again, whether I should lift my fat ass off the comfy Java couch. I looked at Ocaml, and recognised it’s syntax as not too far from Standard ML.

I like ML, partly because it gave me a confidence boost in University. In 1st year, we mostly used C. I did not get it. Pointers, dereferencing, etc, it left me gibbering (note to future employers, I get it now). I thought, “maybe you’re not cut-out for programming, Mike”. After scraping through, along came 2nd year and Standard ML. You entered the definition at the prompt, and it told you the type. Interactive, safe. No pointers (they kept quiet about the imperative bits). Functional programming all made sense.

I digress. The point is, I have happy memories of ML. Yet, when faced with Ocaml, I still found myself thinking: “Oh, now, Ocaml must have a good graphics library, if I want to do anything” (at the time I was working on Boids). I found one, and it was so basic and so pants compared to Java 2D. Java 2D isn’t even the best, but still, there I go, I’ve just written-off a language because it’s not got a nice familiar graphics library.

So, time to apply the Nicorette patch: Scala. It’s got the cosy interactive prompt and the inferred types. Yet, all of Java is still available. Joy.


2007-12-09

I think I know where the idea for Zombies came from: picture a mewling red-faced teething child, shuffling down the corridor, arms outstretched for a hug. Oh, and he bites! It all makes sense now.

This chilling comparison has a flip-side. Off-screen, do Zombies rest their bloodied decaying heads in the crook of the neck of their progenitor and bed down for a snooze?

Anyway, let’s just hope Nils’ first word isn’t “Brains!”


2007-12-08

Special times of the day, part1:

19:30: Around-about when you turn off Radio 4 to avoid Saturday Review spoiling a film you want to see the next day.


2007-12-02

Well, it’s not finished yet, but I can say it now: that was a good weekend. Meeting up with friends I don’t see enough of to show-off Nils being wonderfully behaved and cute was one of the highlights. Props to Mr E for organising it!

I plan on keeping up the good spirit by willing my football-worn legs not to get sore.


2007-10-20

It’s official, I don’t like computers. My iMac just hung on me for the umpteenth time. I like programming, I just don’t like computers.

Or maybe it’s computer reliability and complexity? I switched from Linux to Mac around 9 years ago because I became fed-up with the need to know a substantial amount about, say, how USB worked to be able to plug in a USB mouse. My available time had shrunk and my experience had increased to the point where the time spent doodling around with Linux wasn’t rewarded with learning anything interesting. Maybe this has changed now, I don’t know, because I’ve been out of that game, at least at home, for a while.

This is the crux of my problem, I think. At home, I want everything to work. I don’t want my cpu stretched, I just want it to bloody well work. I do not want to be a sysadmin at home. Ever, Again.

Where can you run to when your Mac starts failing? This is surely the little island of ‘it just works’ that everyone just knows Apple excel at. Surely? Bollocks it is.


2007-10-04

Bummer, the launchd ‘fix’ didn’t seem to stop the beachball of pain. I had another incident the other day. The unrelated good news is that I successfully got the data off my macbook hard-drive. I now have my NetNewsWire setup back again, hurrah!

I did my first code kata last night. Beer + Hugh + shiny MacBook + interesting problem = intermediate levels of fun. Admittedly, Hugh did most of the typing but I hope I contributed sufficiently.


2007-09-23

Lately, I’ve been having some trouble with my macs. First, I discovered my MacBook had bricked itself someway on the way back from my holiday. Then my iMac started acting up. After a day or so of running, we started getting beachballs whenever you tried to change user or do anything with the menubar. Applications would still work, up to a point. As soon as anything new was attempted they beachballed too. The only thing left to do was a forced restart.

It wasn’t memory as I don’t usually get low on that within a day. Disk space being used up by left-over unremovable swap files was a worry. However, I have around 13G available so that also shouldn’t happen within a day. I noodled on this for a bit and started to suspect I was running out of processes. Today I finally got some confirmation when a simple “cat” of a file failed with the good old “fork:Resource temporary unavailable”.

It turns out Mac OS X has a default per-user process limit of 100. This seems pretty low to me, so I’m going to use a suggestion of changing launchd limits (because it is responsible for starting the WindowServer). We’ll see if this works.


2007-09-15

I’m listening to Armando Iannucci's Charm Offensive and I’m hating myself for not liking it.

A while ago, a friend from our writing group decided he’d give comedy a go. His line of comedy was 50-word stories, and he was funny. He was even funny the second and third time I heard them. However, after a few shows I began to feel naively offended that he repeated so much. Of course, most people come to one show a year and by the time the next one comes round, the show’s changed.

Now there is a guest on the radio and you can just tell he’s tangenting off into a pre-canned skit from his routine. Maybe they all do it some of the time, but please, try harder to hide it.


2007-08-17

Umm, lol? I <heart> Penny Arcade


2007-08-16

Clive Thompson Thinks: Desktop Orb Could Reform Energy Hogs:

Minor nark:

“So Martinez hacked his customers’ perceptual apparatuses.”

Did he really? Perhaps he just ‘took advantage’ of the apparatus available? Does this count as ‘hacking’?

A tangent, regarding The Orb itself:

“You could set it to shine a serene sky blue when your stocks were going up or pulse an alarming red when they were tanking. “

Fooled by Randomness (...) points out that we disproportionally react more to failure than success. This means that when we observe a good/bad signal which varies randomly on a short time scale we can end-up feeling worse off than if we just ignored it for longer.


2007-08-13

Bummer. I had hoped to have a play with Scala under Eclipse.

I’ve implemented an OddMuse to Markdown format converter in Java, but it’s full of nasty regular expressions. It’s also moving upwards in complexity towards a full-fledged parser. I knew Scala had a parsing library so I thought I could pop a hole for it in my Java project by having it implement a Java interface. I have an existing set of unit tests for the Regex version so this would be a good enforcer of correctness.

However, it seems that you can't have an Eclipse Scala+Java combination project. You also can’t have circular dependencies between Eclipse projects, so the only way I could do it would be to have three projects:

  • “Shared”: Java project to hold the definition of the interface
  • “Scala” depends on “Shared”: Scala project containing Scala implementation of the interface
  • “Java” depends on “Shared”,“Scala”: Java project to containing clients of the interface, including the junit tests.

This might be a drop in the ocean if my project already had many modules. As it stands, it has one. Oh well.

Update: I actually just tried this with Eclipse 3.3 (the scala plugin claims to require this version). It didn’t work, in a “I see exceptions within Eclipse” way:

 java.lang.IllegalArgumentException: Path must include project and resource 
 name: /shared
 at org.eclipse.core.runtime.Assert.isLegal(Assert.java:62)
 at org.eclipse.core.internal.resources.Workspace.newResource(Workspace.java:1625)
 at org.eclipse.core.internal.resources.Container.getFolder(Container.java:137)
 at ch.epfl.lamp.sdt.build.ScalaCompilerManager.resolve(ScalaCompilerManager.java:197)
 ...

Do I have time for this? Uh, nope.


2007-08-12

We went bowling last night and I learned the German for bad luck: Pech. It also means “Pitch”, as in the stuff you put on boats or on the road. I presume the English/German have some shared root. My Apple dictionary claims this as the origin for the non-tar meaning:

“ORIGIN Middle English (as a verb in the senses [thrust (something pointed) into the ground] and [fall headlong] ): perhaps related to Old English picung [stigmata,] of unknown ultimate origin. The sense development is obscure.”

You can see how “fall headlong” could lead this to mean “bad luck”. Just a thought.


2007-08-10

I finally got round to reading some more of "Founders at Work". In the time between first starting to read it and now, I read Fooled by Randomness (...). It’s an interesting combination.

To see how, take this snippet from the website blurb for the Founders book (my emphasis added):

“… ultimately these interviews are required reading for anyone who wants to understand business, because startups are business reduced to its essence. The reason their founders become rich is that startups do what businesses do—create value—more intensively than almost any other part of the economy. What are the secrets that make successful startups so insanely productive? Read this book, and let the founders themselves tell you.”

After reading Nassims book, I’m tempted to explain away the successes of these Founders as survivor bias i.e. how many other companies that we don’t hear about had similar stories and were just as productive but utterly failed?

This is too simplistic. I don’t really believe all of the successes listed are explained solely by a selection bias. However, it is worth bearing in mind. To be fair, the book does admit a reasonable dollup of luck. For example, regarding flickr:

Livingston: Where did you start working?

Fake: We had a friend who was subletting … This was in 2002 and it was still in the great technology bust period. There were failed dot-coms all over the place, so office space was cheap. And some really awesome developers (like Eric) were available, who wouldn’t otherwise have been out on the open market two years earlier. So it was actually really well timed.”

Livingston: Is there anything that you would have done differently?

Fake: We may be the most boring startup that you interview for your book because our path was fairly smooth. …”

I’ve read only read a few chapters so far, so let’s see how the rest of it goes. One thing I have learned from it is that there exist in this world $15,000 espresso machines.


2007-08-09

Yesterday was Buga day. This is a garden show happening slap-bang next to Carmens home town, Ronneburg. Now, I’ve not been known to get het-up by ‘flooers’. However, I have been known to enjoy a nice walk, if only I can be dragged away from my macbook. These little garden-show visits also help to bring poor towny Mike closer to Carmens level of understanding.

Buga is actually split between Gera and Ronneburg. The highlight of the Gera section was a display of graves. Yes, that’s right. Mostly they were tasteful, but not as conservative as I imagine graves to be:

Hurrah, he's dead!

I plan on getting cremated, vaporised, or atomised. Whatever is the cleanest and most space-preserving solution, that’ll do me. However, if I were to be buried, I’d love something like this:

Intricate

Oh, go on then, maybe I do like flowers. Intricate ones are the best:

Rats lung?

There is also nothing wrong with some freakishness:

Teenage fruit

You can see more pics from the Gera and the Ronneburg sets on flickr. And yes, I am not ashamed to admit I spent a happy twenty minutes making a Lego flower.


2007-08-06

Some German TV shows sound neat. Around 6-ish you get a show called "leuteheute" (people today). The content is the usual gossip+pictures.

There is also the soap "alles was zählt" (all that counts; not “all was counted” as I would have written had I not asked Carmen). The theme tune is "ich kriege nie genug" (I can't get enough). To my ears, this sounds like “krigenigenook”; something Nils is likely to say.

Can I get a tongue-twister out of this? Hmm, “Die leute heute in Baden Baden kriege nie genug”?

The disappointing news of today is that I’ve decided to add a disclaimer regarding where I work and how it relates to what I say here. I had rather naively hoped to avoid this by simply never mentioning it.

My hand has been forced by recently joining FaceBook. It seems impossible to be part of that site and not be bombarded by constant requests for connectivity information. It wouldn’t require much graph traversal before you knew a hell of a lot about someone. Hmm.

For now, I’ll jump in and accept the continual rain of questions.


2007-08-01

I’ve been working with a combo of Junit4 + JMock2 recently. I started a new project, so I thought I’d try something new. They may also help me work up sideways to an understanding of Behaviour Driven Development. I am skeptical about the need for yet another framework, so I thought I’d see if a combo of existing frameworks would fit.

Using Junit4 means you don’t need the “test” prefix; you can write “shouldReuseExistingFrameworkWhenNewFadAppears”. The Junit4 compatible version of JMock also helps. The expectations in JMock2 are kept in an Expectations class. Here is an example (taken from examples for Junit4):

 context.checking(new Expectations() {{
     one (subscriber).receive(message);
 }});

Note that there is nothing stopping you from factoring out the Expectations() anonymous class as a variable in your test, which you can then easily re-use elsewhere within the test. So far, this is not really any different from "extract method". However, you can see that this anonymous class could be factored out away from the test class and possibly re-used. I say “possibly” as I haven’t yet got that far with this combo. We’ll see how it goes.

Now, is this really Behaviour Driven Development?


2007-07-31

You know, I really would like to actually use powerset. Instead, I can only sign-up to some “powerlabs” uselessness.

Searching for "doing PUT from an html form" is such a pain in google. I can honestly see the point in understanding that “PUT” means something special in this context. Please, powerset, show me the beef.


2007-07-30

Ah, who needs soap-opera when we have bugzilla flame wars. I’m currently investigating 99% cpu from Tomcat; shout if you know where kill -QUIT thread dumps go on debian.

… being your own sysadmin is grrrrrreat. You can attempt to fix one problem with an “apt-get install” and then spend the next couple of hours tracking down a solution to the problem you just created for yourself. I love it, really.


2007-07-22

java.util.regex.Matcher is both a pain and an angel. I’ve been having some problems combining region restrictions on matching with the use of appendReplacement. If you restrict the region using matcher.region(start, end).useTransparentBounds(true) then you get the niceties of limited search whilst still being able to use lookahead and lookbehind on text outwith the region. However when you then do appendReplacement from a match it will prepend text from outwith the region to the buffer. This is not what I expected, and seems inconsistent. It seems my unhappiness with appendReplacement is not unique: RFE: java.regex.Matcher substitution using match bindings without changing state and RFE appendNotMatched switch in appendReplacement() method

The upshot of all this is that I was finally forced to have a look at my ‘broken’ bike. Weeks – no, months – ago I had some problems with the chain grinding against the cog on the back wheel, leading to damage and much chain-falling-off-ness. From a cursory check I had surmised that fixing it would mean removing the wheel. I wasn’t looking forward to this as I have a Sturmey-Archer gear in it. Well, turns out I was a loon for not looking more closely. All I had to do was notice that the other side was not lined-up properly, meaning the wheel was at an angle. A quick adjustment and it seems to be fine after a five-minute ride.

So far so good, until I noticed the right pedal was a bit wobbly. Well, at least one problem, fingers-crossed, seems to be fixed. The replacement pedal is ordered so, it is finally time for tea (at 22:15!). Ridiculous.


2007-07-16

This cat cam is genius. Now we need only hook-up an auto-lolcat generator. We can take over die welt with fun-filled cat shenanigans!


2007-07-14

Berlin

It’s interesting reading negative comments about Graffiti in Berlin. We were in Berlin for a week as part of the great wedding odyssey two years ago (wow!). I found the Graffiti-splattered walls of Berlin an amazing treat compared to the dull tagging you get here in Edinburgh.

Slusho

Oh dear. I may be getting caught up in Internet viral marketing. It all started when I watched the mysterious trailer for 1-18-08/CloverField/Slusho. I’ve never watched Lost or Alias, so I’ve no idea about how good the director is. However, the film seldom manages to live up to the hype. Regardless, I’m now subscribing to blogs which discuss the latest rumours… save me!


2007-07-09

"The newspaper can be thoroughly soaked in water then hardened in a liquid nitrogen bath to make a very hard, short-term club." I’ve not been to many football matches. However, I’m sure I would have noticed the loitering off-duty lab technicians.

(link found on Bruce Schneier's blog).


2007-07-07

Pant-wetting levels of security-related excitement: "Some Hotter Topics in Information and Physical Security"

It’s got some cool stuff about physical security breakage and some war stories. I like war stories!


2007-07-01

Oops. I told a few people that the broadsheet newspaper was brought into existence as a reaction to a tax on the number of pages. However, I discovered a slate article which disagrees. Strangely, snopes is silent on this.

I may have gotten the mis-truth from Wikipedia. The entry looks incomplete as it is only mentioned in one sentence. I’ve rather cheakily asked the author of the book which is supposed to disprove the myth ("Seeing the Newspaper") to update the Wikipedia entry.

I hate being a vector for a myth. If only you could cancel sentences like usenet articles…


2007-06-29

Ok, some observant blog readers may have noticed a short cessation. I missed yesterdays 50 word entry. But who’s counting? Ok, apart from you. To make up for it: today is a full 100 words. What a bonus!

Ahem.

My curtailment here made me reconsider what I write elsewhere. I’m now tempted to compose all my emails as 50-word chunks. It would squeeze out all the long, parenthetical, nested, repetitious, run-on, “and another thing” sentences.

Here’s another idea: try removing “just” from all your sentences. Does it change the meaning? Most of the time it doesn’t. It is (just) filler.


2007-06-27

What I took from Daniel C. Dennett ‘Evitable Determinism’ Lecture:

I got +1 on my vocabulary, but word-chaff just makes me grumpy. If only Raymond Carver had taught philosophy.

I sweated to get there; arrived 20 minutes late. I clapped twice at the end. Now I can avoid his books.


2007-06-26

 5 7 5 and 50?
 Syllables revealed, 
 Man considers day
 Delivery man:
 Boiler can be heavy
 Shit me not sherlock
 Wikipedia
 Lots of things on syllables
 Not finding so easy
 Smoking helps lifting?
 Pushing me urgently up
 Helps falling over
 Haiku form arrived
 Nature may appear someday
 Can readers survive?

2007-06-25

50 words a day blogging? Carmen reminded me. My reading strike means no cribbing. Here goes … I’ve decided a screen isn’t the same as a book, no more Safari for me. I’ll just use up my PDF tokens, then it’s gone.

Ok, 73 words, time to compress … done.


2007-06-24

The images in the lock-fitting instructions at the Yale site have a disturbing Necker-cube effect, e.g. http://www.yalelock.com/14769.epibrw

In other news: Nils managed to travel 240cm sideways today. First he climbed up onto the side of a chair. Then I decided to try moving them around him; we have four chairs, but he ended up sliding past six widths. It’s interesting watching him position his legs. There is a lot of jittery placement and repetition but the sum is a slight movement sideways, followed by giggles.

Later on, in the tub, he was laying back and the water was just that little bit too high (cute side-effect: foam beard). I decided to gently tip some water out and I had to laugh to myself as I realised what I was doing. It’s not often you get to literally experience the (possible) source situation behind such an over-used analogy.

I’ve decided to continue my little blog-reading holiday for another week, at least until I get a little pet project to a reasonable state. So, world, if you’ve moved over to binary XML or started selling REST in SOA-clothing or even just invented another lolfoo, then, well, it’ll just have to wait. Aren’t I brave?


2007-06-20

 "What is the status of Informa?
 Currently, Informa is in beta state, but it is quite stable and fully usable."

So, what is the status of Informa, hmm?


2007-06-19

I’ve gone cold-turkey on NetNewswire; I’m having a feed-reading holiday this week. It is oh-so-tempting to launch it [background to sentence: nils is making gargling/eartha-kitt noises under the table]. So far I’ve resisted, but it is only tuesday.

Btw, I’ve increased the list of entries on the front page, so you can find older stuff more easily. It will increase load time, but oh well, I haven’t written all that much really…


2007-06-16

I have arrived! I have my very own comment spam.

Shatner.

Ha, and then I ran out of disk space on my server. Ho hum.


2007-06-11

Ok, so that ipfw did something nasty (lots of blocked unquittable programs on startup). I think the “log” bit of “ipfw add 1000 tee 911 tcp from me to any dst-port 80 uid mxm” perhaps is to blame. Then again not leaving anything listening on 911 can’t have been good! Back to the drawing board perhaps.


2007-06-10

Citeulike is like reading over someones shoulder as they wander round a library. I had been thinking of writing my own system for paper management, and then I found this. Of course, I haven’t actually used it yet.

Typically, I discover a paper linked from a blog like Geeking with Greg. I load it in a PDF viewer (PDFView is pretty good) and have a quick skim. If the PDF contains some slides then I may actually read it there and then. More often than not it stays loaded in the viewer for weeks. There is a certain chance it will get printed out and stashed in my shoulder bag. It will then be read in fits and spurts over several bus journeys. The bag will eventually be full to bursting with papers and magazines, at which point the papers (now ruffled and marked) will be emptied into my ‘interesting papers’ folder. As a background task, I uniquely number the papers and save the titles in a file in SVN where it awaits importing into ‘the great paper filing and search system’. Phew.

Ideally, I’d like the number and title to be assigned in SVN in ‘step 1’.

… ok, Nils swimming preparation time ….

… back from swimming and a trip to Edinburgh Tree Fest, where I got a free piece of wood! ;-) I marvelled at the smooth bowl that looked like stone, then wandered off when I saw the price, suitably impressed. Right now, well, five minutes ago, if you’d walked in you’d have thought we’d all been gassed. Yet, it’s only 4 O’clock!

… let’s see, about 5 hours on-and-off disgruntled hacking later, and I have a hacked up C program that dumps packets in PCAP format. The packets are sent by the built-in firewall, as configured using firewall rule removed (see 2007-06-11) (I combined a couple of existing C programs, see Divert-Sockets-mini-HOWTO and ipfwpcap.c). Believe it or not, I spent less time doing this than I did trying to get the Net::Divert perl module working under darwinports on MacOS X! Anyway, this should be a start towards transparently logging PDF GETs.


2007-06-04

I’d be interested to know how other people organise their feed-reading experience. Mine is “space” key driven: organise the feeds in the order you want to read them and then use the space key in NetNewsWire to jump to the next unread.

My feeds were growing out of control so I broke them down into groups: friends, workmates, humourous, Daily Scan, Weekly Scan and Sandbox. There are more feeds after these groups but they may as well not exist as I never read them.

The Sandbox has been very useful. It is the purgatory for newly-subbed feeds. At least it would be, but I’m not consistent enough in emptying it out.

Ok, time to go, Nils has enabled “random griping mode”

… several hours later (umm, 14 actually, god), and I am making Beorijch. This is a yummy vegan bean-based dish; recipe taken from Rose Elliots The Bean Book, ISBN 0722539479 (amazon.co.uk, isbn.nu). In the book, Beorijch is on the “porn page”; the book falls open at this recipe. Strangely enough we haven’t had Beorijch for months. Hmm, perhaps this is because it’s usually me that makes it?

… mmm, just tasted it part way through (this part of a combined effort with Carmen to make you hungry). This dish is linked in my head with Black Cat White Cat, although the dish is Armenian and this film is Yugoslavian. Close enough for me. Time to check on it ….


2007-06-03

I decided to get a new phone, as the buttons on my Sony Ericsson k750i have become ‘scrunged’ (turns out I haven’t just made this word up; it could mean “Seriously creased”. This is not exactly what I mean, but I’m sure you’ll get the idea). Whilst looking into compatibility with a possible new phone, I found FoneLink. Note to developers: if you have a downloadable demo, make sure it works. It is educational to launch Console and just lookee see if there are any warnings going by. How about this:

 FoneLink[2074] *** -[NSCFDictionary mouseExited:]: selector not recognized [self = 0x5c8ad0]

This probably has something to do with the reason I can’t quit the app.

Btw, open question of the day: what is the etiquette for informing someone that you have a blog and they may want to read it, without coming across as an absolute rank egotistical wanker?


2007-06-01

Random datapoint: I was just sitting here, reading feeds, thinking “hmm, some of the images seem to be borked, oh well, next feed. Hmm, Mail refuses to connect to .Mac. Oh well, next article”. It didn’t dawn on me for a good few minutes that I wasn’t even connected to the internet; we’d just had to turn the power off and the router does not automatically come on.

I’m not sure what to draw from this in particular. That I have far too many unread articles?


2007-05-04

http://news-service.stanford.edu/news/2007/may2/petrie-050207.html

This is, like, never, ever going to happen. Ok, maybe when we all are robots. Even then …

Oh, and he mentions “cyberspace”, which is a major alarm word.


2007-04-22

Snippets:

  • The battery life on my MacBook is beginning to piss me off. It doesn’t seem to last quite as long on standby (sleep) as my iBook did. This means I leave it plugged-in more often, meaning (I believe) that the battery performance diminishes. Vicious circle.
  • While I’m on MacBook stuff: MagSafe = safe for laptop, not safe for kids. Admittedly, you should keep power cords away from a baby when at all possible. However, the failure case is pretty bad: pull, pop goes the cord, straight down to baby level.
  • Sign seen in bakers: “new (improved) bridie”. Maybe it’s because I’m from Dundee, but for me, a bridie is a fundamental constant, like the speed of light or e. How could you improve on it anyway? Put a bridie inside a bridie? Poppycock!
  • Finally, we come full circle: widget (physical) goes to widget (software) goes to phidget (physical, but with the pointy corners rounded off to suit us poor software people).

2007-04-01

Yesterday we went to the SSA exhibition at the Royal Scottish Academy, mostly motivated by seeing Sharons entry. My typical visit to such a show goes something like: disgust as I discover some worthless or unimpressive piece, interest when the hits start making me forget the dross, and disappointment when I realise I could never afford any of them.

The disgust was provided this time in the form of a pixellated rendition of a headshot. It didn’t help that the subject is a total arse. Apparently this was worthwhile because each pixel was hand-made. Does this mean that if I used a hex-editor to make a GIF of the same picture I would also be an artist? It probably didn’t help that this viewing was in the context of a grump-filled shadow of a Friday night-out.

After the exhibition we went downstairs to the restaurant of the Playfair Project. I suggested it as I’d never been down there. Unfortunately, it has the ambience of an airport, which was oh-so-subtely underlined by the tannow announcement just before we left. The coffee was adequate, but we had to suffer through the slightly snooty waiter being taken aback when we refused the offer of afternoon tea for 11.95. Nils puked on the table, which I think was fair comment.


2007-03-25

“An IIOMetadataFormat object is used to describe the legal structure of a metadata document format. It constrains the types of nodes that may appear, […] and the audiotape of an Object value that may be stored at a node of a given type”

(http://java.sun.com/javase/6/docs/technotes/guides/imageio/spec/apps.fm5.html)

Muh?


2007-03-18

It looks like some else is just as annoyed as I am about behaviour at Airport baggage pickup areas. Russell Beale uses this is an application of his newly-coined 'Slanty Design'; he would place a slope or rough carpet around the carousel. This would discourage passengers from blocking the view but still be traversable when required. I can imagine this would work, but would make life hard for the weak. Also, being forced to do extra work in the stressful environment of the airport would amplify any inherent problems.

This design technique has already been applied to seats in bus shelters, here in Edinburgh, perhaps elsewhere. The seats are very short in depth and at a slight angle. The “non-goal” here was to stop tramps from using them as beds. Unfortunately, the design makes them pretty bloody useless for sitting on.

Examples like this make me think this isn’t really a “new take on usability”, but rather a coining of a new term to describe existing practice.


2007-02-10

I was just popping my tab stack in Safari and I happened upon this: http://dannorth.net/introducing-bdd. It seems to be a distillation of some core patterns from common test-driven development practice. Or it could another name for the same old thing, just another attempt to ramp up a wave of the ‘big new thing’ prior to reaping the awards in book sales for a select few. Ron Jeffries, I’m looking at you. I’ve not yet decided which of these it is yet.


2007-02-09

I just watched Code 46 and it was like pushing a large sack of air up a cramped flight of stairs – difficult and ultimately pointless. I don’t have a great track-record with films starring Samantha Morton, I found Morvern Callar similarly pointless.

I don’t think it’s just my taste, I think it is actually just bad. Fr’instance, the choice of music for some scenes; I like David Holmes, but “No Mans Land” is not a good choice for the scene in the desert. Ha, "This Films Crap Lets Slash The Seats", how appropriate!


2007-02-08

You agree this is an insightful satire of many firewall and virus ‘security’ mechanisms, cancel or allow?


2007-02-04

Senarian egg broth is not the sort of thing you expect to find when searching for “egg broth”. Something to look forward to on those nights in 2370 when the methane ice is frosting on the window-sill of your water house.


2007-01-24

The Problem with Wikipedia. The same goes for books like The Oxford Companion to the Mind, ISBN 0198662246 (amazon.co.uk, isbn.nu); I can’t actually find anything in the damn book. I scan through to locate an article but on the way there I just can’t help reading all those other shiny words.

On balance, I don’t actually see this as a disadvantage of physical books. It allows a sort of ‘side-ways discovery’. I suppose the directly analogous process on Wikipedia would be going through alphabetically, which is not what the cartoon was about. However, randomly following tangential keywords does seem to capture some of the chance aspect.

Another non-replicated property of books I like is the ability to search by image. For example: I was looking in Managing Gigabytes, ISBN 1558605703 (amazon.co.uk, isbn.nu), for a discussion of Hierarchical Bit Vectors. However, I actually didn’t know that name at the time; I only vaguely remembered that it was nearby a diagram of the process. I knew what this roughly looked like, so I could quite quickly flip through the book, find the image, and then the nearby section. In principle, you could do this online if you had a PDF, yet I don’t think you can scroll quite so easily as you can flip pages.


2007-01-20

Being a Mac fanboy means you are duty-bound to look forward to Mr Jobs’ every word. This makes every Keynote a feast.

… at least that’s what it says on my membership card. Anyway, MacWorld Keynote time came round so I did the usual and … failed to watch it on Quicktime (some random 400 error). This time, I could watch it in segments on YouTube.

One segment I could have done with missing was the N minutes of grey corporate Lard from the cingular CEO. I left the audio going whilst I looked elsewhere. The only memory I’m left with is the vague impression that he found four boring ways to say every fact. Maybe jobs occasionally brings on a guy like this to show, in stark contrast, just how good he is.

It seems I’m not alone: http://www.presentationzen.com/presentationzen/2007/01/steve_jobs_to_c.html


2007-01-17

This is brill: http://www.clemenskogler.net/film/grandcontent.htm “the top part of the graph is your intended career-path, the bottom is your actual career path, the difference is why you drink”. The movie was inspired by http://indexed.blogspot.com/


2007-01-16

Warning: Scintillating effervescent prose follows.

Today I had two pieces of toast with avocado, pine nuts and sliced mushrooms. It was delicious.

You may not remove safety equipment until a distance of five-hundred ems from center of text has been reached.


2007-01-14

I’ve just been out for another wander in The Meadows and Nils asked me to pass this on: “I may just be a little boy, but after several times seeing both girls and boys playing football, I have to conclude that girls playing football bear the greatest resemeblance to Brownian Motion”. From the mouth of babes, eh! Btw, I think he means that if you were to make the girls transparent, the motion of the ball would resememble the pollen used in the famous experiment that demonstrated Brownian Motion. Bear in mind, he is only 5 months old.


2007-01-12

Link log (delicious sample):


2006-12-31

Top-tip number 56: Never read a puzzle in Gödel, Escher, Bach before going to bed. I spent a good deal of the night trying to find a power of two that was also divisible by six. Turns out that the MU puzzle is not solvable (and I should have been looking for a multiple of three); if only I’d read the answer before going to bed …


2006-12-22

Now that I have a blog, I spend oh-so very little time writing in it. There is a threshold of arsedness in my head which I seldom get over. Anyway, it’s 1:30am on a friday morning a few days before xmas so what better time than this?

Punkt: I’m really enjoying playing with Nils now. He takes up a lot of our time, but the investment is starting to pay off. Perhaps it is a hard-wired nugget of reaction in my head, but every time he smiles it’s worth about 1.5 minutes of screaming. Maybe I should post a conversion ratio? ;-)

Punkt: Over the past three years I have gotten into the mentality of watching new features appear in MacOS X with a half-open eye because I knew my aging iBook couldn’t keep up; “Quartz you say? Whoohoo look at that spangle crawl”. I should just close my eyes fully and then open them afresh to the wonders of my new MacBook. I like my new MacBook, and I’m certainly glad I got it, but I’m not blown away. The battery life is pretty pish (3hours, pah), and there is still no ‘snappy’ feeling. However, I am running with the default config of 1G memory, so an upgrade could change all that.

We’ll see; I really haven’t been ever impressed or blown away by any computer I have bought. Then again, I am the sort of person who never closes any applications (or tabs). Perhaps I’ll notice the difference when I switch back to an old laptop. I still have an old indigo clamshell ibook. Using that is always a sobering experience.

I have 10 minutes remaining on my battery: “You are now running on reserve power”. The image it brings to mind is of an encampment of people in the frozen wastes, finally tucking in to the foul-smelling ration-pack that they avoided because it reminds them of the dogs they have just eaten to stave-off their hunger. So romantic.

I’ll take that at as indication to leave. Time for some Vernor Vinge on the loo. Am I over-sharing? ;-)

Oh, go on then, one last thing:

Top-ten signs of getting old/being a parent, installment 2:

  • 6: Hearing haunting cries of Nils within music. I’m not kidding; there was a jazz background on a programme I was just watching and it sounded exactly like a faint Nils cry.
  • 5: Having ‘Puke Paranoia’. This is when you are standing at work or going around a supermarket and you have the sudden creeping suspicion that there is a line of NilsPuke(tm) running down your back.

2006-11-19

Now that I have a Mac, I find myself unwilling to ‘install’ anything if I don’t need to. There are many apps where installation and removal equate directly to copying to and from the Applications folder. This is why I won’t be installing the kernel extensions which came with my new LX7 mouse. About all I will be missing is tying the tiny extra buttons to something which launches Mail.app. Umm, already launched.

Mind you, people who know me might point out that I never quit anything. When I do need to launch something, I have QuickSilver.

I bought the mouse in John Lewis. We were also considering buying a new cordless handset but decided to have a look online. Unfortunately, the only major thing I would like to discriminate by is a mis-feature. The current handset we have rings at the base-station in addition to having the phones ring. This means I often run, hell-for-leather, through the flat, only to discover I must now also scramble to find where the handset is laying.

How do you search against a feature? The only lead I found was a consumer reports website but it wouldn’t let me look at any reports for free. Do they really think I’ll pay $26.00 for it? The phone itself will likely only cost 50 pounds.


2006-10-23

I feel ashamed of my fake consumerist sentiment, but I MUST HAVE SOME OF THESE SHOES: http://www.simpleshoes.com/

I think I had a pair of these when I was at University. However, as all my favourite shoes are wont to do, they eventually fell apart, and I couldn’t find anywhere which sold them. Incidentally, if someone knows where I can get a pair of Panama Jack shoes in Edinburgh, then please tell me.

Ok, now, if someone out there, say, who has a child with a name starting with N, happened to be thinking of, say, getting someone a present for a seasonal celebration, then I do believe any one of these goods would suffice.


2006-10-08

Ha! Random synchronicity: I was reading the following whilst labelling a folder to hold my orange mobile phone details:

  Verbose declaration neat freaks like to use a colour-coded label maker to label the drawers, boxes, and files in their office.

I wouldn’t say I’m a neat freak; I think you would do too if you could see the state of my ‘office’.


2006-10-01

Top-ten signs of getting old/being a parent, installment 1:

  • 10 Allowing yourself to fall asleep on the living-room chair
  • 9 Saying “bloody students” more than once a week
  • 8 Falling asleep on the livingroom chair, but only realizing it once you wake up again, startled.
  • 7 Realising that you smell faintly of baby vomit, and not really caring

… TBC


2006-09-24

Being a parent is a little like being a Scientist inasmuchas you have lots of hypotheses about cause and effect. Unfortunately there is little chance for repeatable experiments.

Lest you think I am some sort of mad behavioural psychologist, let me give you an example. I just spent the last 20 minutes sitting with Nils in our shower-room, on the basis that he drops off like a log whenever we go outside (it rains a lot in Scotland). It seems to have worked because he got into the ‘oh my god, is he dead?’ level of sleep within a few minutes. However, could it have been caused simply by me holding him in a certain way? Did he just like the raised humidity level? It’s difficult to say.

However, this may just be the excuse for me to buy a nice portable speaker and some rain music so that I can try it out in the cot ;-)

Update: It didn’t work for long. Right now, comparisons to Speeddon't stop hugging, or he'll cry! – and Cubejust when you think you've got it worked out, it changes again – come to mind.


2006-08-22

The Eagle has landed … in the form of a small poopsy boy.

Btw, any top-tips on how to avoid fucking up your back whilst carrying, cajoling or otherwise interacting with said bundle would be mucho appreciated.


2006-08-21

Hello all, general update on what’s been ‘appenin: Nils is still well and Carmen is getting better. We should all be home on Tuesday.

This is somewhat presumptious, but: if you want to send prezzies, we’d prefer vouchers. We’re still going on the ‘buy it as you need it’ principle, as opposed to the ‘fill flat up with every concievable baby thing’ procedure ;-)

It’ll be quite strange not being able to press a button and have a helpful mid-wife appear. Can this be arranged for the home? ;-)


2006-08-16

FYI: Nils Moran was born on Monday and he’s doing well.

Random observation: when I asked the nurse for some iced water, she said the machine “wasn’t producing” as opposed to ‘broken’ ;-)

Also: you probably already know this but … please don’t phone; texting and emailing is fine.


2006-08-13

I’m reading “Influence: Psychology of Persuasion” (ISBN 0688128165 (amazon.co.uk, isbn.nu)) right now, and finding it very pertinent. I have a cloth bag that I carry round so that I don’t need to get yet another plastig bag from every single shop I go into. I don’t really blame them for automatically selecting a bag, since I’m not really the common case. However, yesterday in Marks and Sparks was an extreme. This time, I said “no, I don’t want a bag” several times, and it eventually registered. Then, she selected a ‘free’ lunch bag for me (which was itself wrapped in plastic). I don’t need a lunch bag. You see, I have a bag, already and I had just used it, demonstrating the lack of need for yet another bag. Yet, she seemed slightly shocked at this.

TBC …


2006-08-10

The next pet we get will be an elephant.


2006-07-30

Schoko went to University this morning at around 9:45. She will be studying Electrical Engineering.


2006-07-29

Let’s see, I’m 32 and I am thinking of commuting daily to work, see anything here: http://www.railcard.co.uk/ ? Railcards suck.


2006-07-24

Breaking news: Mike cycles to work

Just got in at around 8:55. I got a bit lost at the end, because I took the NCN 1 route for the last bit; nice, but I overshot my turning I think. I noticed something was wrong when I saw the bridge and realised I was actually going into Queensferry. Also, I saw rabbits! Maybe that’s why I overshot; I was looking at their bunny tails.

So, what time did I leave? 7:35? 1:20 is not bad for a first go. I may get the train back tonight though ;-)

I’ll blog more later, but I did this on my funky new bike: a Vitesse D5


2006-07-16

Nostalgia Sunday: Flat eric rides again!

One of the mid-wifes just came round so we got to hear the babies heartbeat, which was cool. Carmen thought it sounded like “the video of that yellow techno puppet from the 90s”. One google groups search for "techno yellow video puppet" later and we found: Flat Eric.

Installing Tracks on Debian Sarge

My app of choice for GTD is Tracks(version 1.041). I’ve been using it at home for a little while on my main machine and my laptop, with no major gotchas, save for some speed problems. So, I thought: “I’ll just install it on my public debian box, which should be easy because both of them are unix, right?”. Ahem ;-) Ok, I’m not actually that naive, but it is was a hope at least that it might be that easy.

For future reference, below are the steps I needed to go through (what follows is done as root unless mentioned otherwise). The links I found useful are on Delicious.

Debian packages:

Add the DotDeb sources to your sources.list (this was because I wanted MySQL 5.*), then:

 apt-get install -t dotdeb mysql-client mysql-server libmysqlclient15-dev
 apt-get install ruby libzlib-ruby rdoc irb libyaml-ruby libzlib-ruby libwebrick-ruby ruby1.8-dev

Gems:

Download rubygems, untar it somewhere, cd to the expanded dir, then:

 export GEM_HOME=/usr/local/lib/ruby/gems/1.8; echo "export GEM_HOME=/usr/local/lib/ruby/gems/1.8" >> /etc/profile
 ruby ./setup.rb config --prefix=/usr/local --sysconfdir=/usr/local/etc --siteruby=/usr/local/lib/site_ruby
 ruby ./setup.rb install
 gem install rails --include-dependencies
 gem install mysql 
 export RUBYOPT=rubygems; echo "export RUBYOPT=rubygems" >> /etc/profile

If you haven’t installed ruby1.8-dev then you’ll get some wierd errors from the mysql gem install about “mkmf” being missing (this trumped me for a bit).

Tracks install:

That should be it for dependencies, if I remember it correctly. I’m running good-old webrick, so there is no need for other dependencies, such as fastcgi.

The rest was pretty-much just copying over the tracks install, setting up db users and restoring from a db dump, except you have to add the following to your database.yml config:

 socket: /var/run/mysqld/mysqld.sock

Note that I did not do a from-scratch install; I tarred up the tracks install from my mac box and copied over a mysqldump. There may be other gotchas if you were to do it all entirely from the beginning.


2006-07-02

Wahey! We are now post movement of the BigBed(tm) into the back room, which means we now have some space for the kid in our old room. Btw, we own so much shit.

I actually went and watched some football with one of the friends who helped us move the bed. It was not bad, though a bit boring in parts. I watched England v Portugal and France v Brazil, and the latter was much more interesting. Then again, the E v P game had more crying; oh, poor becky.

I think it is the enforced tribalism that puts me off football in general. Why should a game that occurs for a couple of hours every week become a life-consuming passion? I can see why, but I just find hard to ‘get-into’ that mindset. Ultimately, this means that any conversation with me involving football is born dead. Hey, aren’t I fun? ;-)


2006-06-21

The insanity (inanity?) of public transport strikes again. I’ve been thinking about getting a Strida ‘commuter’ bike for use in getting to and from the 43 bus in the morning. This is because I am regularly scuppered in trying to get the 8:30 bus, simply because the Lothian busses are so full in the morning. They either don’t stop or get there very slowly. They also are very cramped. I could of course just get up earlier in the morning, but then again, why should I consume sleep time for the sake of travelling?

Anyway, because I was thinking of taking my bike on the bus, I took a couple of pictures of the seats so that I can remember how much space there is. This, along with the hienous crime of not putting my ticket inside an official wallet meant that the driver asked to talk to me. It turns out that bikes are not officially allowed on First busses; it is up to the ‘discretion’ of the driver. So much for integrated transport.

I think I might still get a Strida (and possibly incur some aggro) since they have a 60-day return policy.


2006-06-17

I just got back from an IKEA trip. I must admit, when I watched the scene in Fight Club where he walks through his flat and it is revealed that all he owns is from there, I was appalled at the thought of myself ever becoming like that. And now? Maybe it is like Guinness. When I first tried it, I could only barely fathom how anyone could drink the stuff; a few years later, I was drinking it like a loon.

We had a break in the restaurant, half-way through, during which I noticed that you get some ‘free’ baby food when you buy a main meal worth more than £2.25. Fair enough, this seems sensible and nice. However, I then decided to buy a banana for myself only to realise that you could only buy it as part of a ‘buy 6 items for your kid’ deal (I even checked this with the staff). Obviously, adults should not be encouraged to eat fruit. Chips, though, oh yes, anyone can have them.

It is a policy of ours (for the sake of our own sanity) that, when we go shopping in IKEA, we deliberately do not try to rush through. There is simply no point. The average person is too busy looking in one direction, whilst travelling in another, to allow you to pass by safely and efficiently. It just doesn’t work, so no point getting het-up about it.

This does not work in airports. Instead, we decided (by some vague process) that either one of us, but only one of us, was allowed to get annoyed or angry. It is the duty of the other to remain calm. Perhaps we should buy a hat or something.

Picking up baggage in airports is a particular pet-hate of mine. If only everyone simply stood back one yard from the travelator, then they could see what was coming along and yet still be able to travel the short-distance to pick up the moving baggage. Unfortunately, this policy is very unstable. It only takes one or two arses to edge forward for a better view before the whole lot decides someone is getting a better deal. Maybe not, perhaps there is some way to encourage it and make it stable. Answers on a postcard to Mike, c/o Stansted Airport.


2006-06-13

Doctor Who 8 & 9: Utter pants.


2006-06-08

I just finished ‘The Space Between Our Ears: How the Brain Represents Visual Space’ (ISBN 029782970X (amazon.co.uk, isbn.nu)) by Michael Morgan recently. I haven’t yet got a cohesive enough opinion of it in my head to write a proper review. Yet, you should know: it doesn’t give ‘an answer’ in the end. However, I never really expected one; any question which involves consciousness and awareness seldom has a simple answer.


2006-06-06

Well, that was painless, eventually.

I have just spent the better part of a day or so of ‘ideal time’ (as we funky XP developers say) arsing around with camping, trying to write a simple comments app. Perhaps I just haven’t got my Ruby head screwed-on tightly enough, or I have become accustomed to IDEs, but I just found it far too hard.

I’d chosen to investigate camping for this because it seemed like a ‘simple’ version of Ruby on Rails, and I just generally found the minimalism appealing. However, I think there is still just a little too much ‘magic’ involved for me. Maybe I am just used to having documentation?

I’ve bought some of why's t-shirts, because I find them amusing. However, call me a surly bugger (and many have), but such humour just grates when you’re trying to find some information amongst it about why your app ain’t working. Overall, it reminds me of the situation with the O’Reilly Perl book (ISBN 1565921496 (amazon.co.uk, isbn.nu)) by Randal Schwartz et al; generally amusing at first pass, but ultimately useless.

Anyway, talking of Perl, I ended up looking at the Perl source for oddmuse, and just changed the definition of UserCanEdit() to be what I wanted:

 return 1 if $EditAllowed == 2 and ($CommentsPrefix and $id =~ /^$CommentsPrefix/);

And it works. Hurrah!


2006-06-04

XQuery smilies

I’m just looking at some XQuery stuff: it just occurred to me that XQuery is friendlier than XSLT because there appears to be smilies everywhere. I think “:)” wins against “-->” any day ;-).

High Dynamic Range

A recent post by Alex about High Dynamic Range photography reminded me of some very cool stuff I found some time ago after seeing a lecture about the 'Computational Camera' by Shree Nayar. This lecture (which is really worth watching) mentioned (I think) some work this group had done which showed how a higher dynamic range (12-bits of depth) could be achieved using a normal CCD with only 8-bits of sensory depth by selectively under or over-exposing neighbouring pixels. Cool stuff indeed.

In looking up this lecture again, I just found the rss feeds for the current Colloquia series. Call me sad, but finding this stuff gives me that ‘kid in a candy shop’ rush, where I want to fork and become some sort of mult-headed beast so that I can watch/read all of these new finds simultaneously. The effect of this is usually that I complete nothing but scan everything. Oh well, maybe I should cut down on the caffiene ;-)


2006-05-25

Top-tip for expectant fathers: Braxton-Hicks is not a pickle.


2006-05-19

I’ve finally re-animated my iBook. I’ve given up on the idea of installing a new hard-disk for now, since there are about 40 steps you have to go through. Instead, I’m using an external FireWire brick, designed by F.A. Porsche, no less. Wooooo, fancy.

Anyway, I’ve managed to apply trusty DiskWarrior once again to retrieve information from the failing disk. Part of this is the PalindromeEncoding work which, if you know me and you remember, then this is part of the stuff I was wittering on about mysteriously last year. Now you know, eh? Aren’t you glad.


2006-05-14

Globe-trotter?

Oh, go on then:

create your own visited countries map

Not very impressive really …

Attack of the Mythical-Man Month

This is absolutely brilliant: http://radar.oreilly.com/archives/2006/05/engineering_management_hacks_t.html


2006-05-13

I’ve just been playing with Google Trends and I was surprised that there was no data for topic maps, yet rdf has oodles. As far as I remember, Topic Maps work predates RDF. Maybe that is why i.e. the trends data doesn’t go back long enough to capture Topic Maps.

Then again, it may just be because RDF is a TLA.


2006-05-05

Morans law of webapp complexity:

 Complexity of a webapp is in direct relation to the number of redirects you are forced to pass through on the way from the initial URL specified to the final webpage.

2006-05-03

'Fashion Core' and Group theory

I read this article on ‘Fashion Core’ yesterday. It’s basically some guys wearing womens jeans, a particular haircut and a white belt as indications that they listen to ‘Fashion Core’. When you say ‘uniform’ to most people, I guess that they’d think of either a school uniform or maybe miltary garb. Nowadays, I mostly think of things like ‘Fashion Core’. Other examples are of course the standard teenage ‘mini-goth’ or ‘punk = spikes + mangy dog’.

How does this relate to group theory? Well, maybe not group theory, but there should be some way to capture the definition of ‘uniform’ as being any combination of articles or patterns of clothing worn by individuals which can be used as a cluster label i.e. minimum distance clusters in ‘garment-space’.


2006-05-01

Safari quit no more

Aaag. That has got to be one of the most annoying things about Safari. It just does not warn you about quitting, even if you have, like, 20 tabs open; those who know me will not find this number outlandish. This particular time I got caught because Software Update had brought its window up in front of Safari but had not made itself active. So, I ‘quit’ Software Update.

I know things like Saft exist, but I’m beginning to shy away from hacks that install themselves through non-standard means.

Aaah, that’s better. I did the following:

  defaults write com.apple.Safari NSUserKeyEquivalents -dict-add "Quit Safari" "@^Q"

(found on http://www.hoboes.com/Mimsy/?ART=248)

Now, I have to type Control-Apple-Q to quit safari.

Circle of friends

Idea: Extract a circle of friends from 5s entries.

Etymology of 'develop'

That ‘Entwickler’ thing got Carmen and I thinking last night, particularly because of the ‘Entwickler’(developer)/‘Einwickeln’(envelop) pair. This led to me finding http://www.etymonline.com/index.php?term=develop and http://www.etymonline.com/index.php?term=envelop which say:

 develop 1656, "unroll, unfold," ...
 envelop 1386, "be involved in," from O.Fr. envoluper, from en- "in" + voloper "wrap up,"

Very eeeenteresting


2006-04-30

‘Entwickler’, for some reason, makes me think of ‘cockles and mussels’.


2006-04-27

My 5s, ‘cos I was tagged by Carmen. She very selfishly already bagsied answers like rats and stuff, so just assume I agree with her on those.

Five minutes to yourself: how would you spend them, ideally?

In the computer section of Borders in Glasgow or Blackwells in Edinburgh, browsing through my latest unusual and interesting ‘find’, having lots of interesting and grand ideas because of this.

Five bucks to spend right now; how would you spend it?

Let’s see, in old money, that would buy me a house in the forest, some sweeties and I’d still have change for the bus. However, nowadays I would be able to buy a nice latte from Costa Coffee.

Five items in your house you could part with, right now, that you hadn't thought of already?

  • Probably all the crap that I will never use (unfortunately, this is indistinguishable from all my essential stuff)
  • My collection of nineteenth-century alabaster hamster-shovels
  • Dirty dishes; I say we just buy new ones
  • The door on the cooker. I would like to personally ensure that the oven door is transferred immediately to a ‘place of screaming’
  • Anything that I can stub a toe on. The thought alone makes me cringe

Five items you absolutely, positively could never part with in your house?

  • Internet access
  • My prized can of WD40
  • The Radios
  • Our Spaced DVDs
  • My books. All of them. They’re mine I tell you. Mine

Five words you love?

  • Schnickschnack
  • Fresh
  • Bumblewheeny
  • Beanzmeanzheinz (ok, cheating a bit)
  • Isomorphic

Five people I tag

The latter two don’t have blogs, but they surely must soon, lest this world be torn asunder with grief!


2006-04-23

Zippity doo-da zippity-day

There is something about the unix command-line version of ‘zip’ which just does not fit into my head. Every single bloody time I use the thing I have to read the help and man page (if it is present) to work out what the arguments are for a single ‘zip everything in the the blah dir and put it in blah.zip’.

For my future reference:

  zip -r [zipfile] [directory]
  zip -r blah.zip blah

Now, if that argument list isn’t arse-about-face, I don’t know what is. Btw, found this at http://kb.iu.edu/data/aeqx.html

One, not-so-careful owner

I went white-water rafting yesterday, and oh, my body is sooo stiff today. I believe the explanation for this sits firmly in the ‘muscles you never knew you had’ category. I only got dunked once, and that was at zero miles per hour. Our boat, which was being carried around by hand so-as to avoid a grade 5, bumped into my behind and plonked me immediately into a pool. It was surprisingly non-chilly. Regardless of the dunking, I had a really good time.

I’m beginning to lose count of the number of stag-dos I’ve been on. Before the age of 30 or so, I reckon I must have been go-karting twice. In the last two years, I have been karting four times. I have also been clay-pigeon shooting, 4x4 and quad-bike driving, and now, white-water rafting.

I’m not complaining, mind. It just strikes me as strange that you can go for so long not doing any of these things and then you hit 30 and whap-whap-whap, here they come. It is, of course, not strange that people have a tendency to get married around approximately the same age, but rather that we never got off of our arses and went on these quite-enjoyable jaunts before then.

One theory is that a stag-do is:

  • Motivational: The friends of the stag feel duty-bound (or guilt-tripped, if you’re cynical) to celebrating his impending wedding.
  • Time-bounded: It generally happens within some small-ish time-interval (< 2 months) before the wedding, so a would-be participant can’t really cajole the others to have it another time. I believe that ‘scheduling thrash’ is the reason why a lot of otherwise-arranged meet-ups break down and never happen.
  • Run by a Dictatorship: Ultimately, the best-man has final say on what is happening.

All I would take from this, for now, is that you need to reduce the scope for dissent and be clear about what is wanted if anything like this is ever to happen before the next friend gets married!


2006-04-18

Random factoid of the day: rats don’t get fat the same way humans do because rats get fatter by each fat cell getting larger whereas humans (and most primates, I think) get fatter by having more fat cells. Hence, no fat cell size limit to expansion (obviously, there must be other limits)

This was gleaned from p96 of The Aquatic Ape Hypothesis, which I am currently enjoying very much.


2006-04-17

Bad web pages make baby jesus cry. I mean, really, take up two-thirds of a table with the word ‘Meaning’ in a column labelled ‘Meaning’ and then make you mouse over to get the actual meaning. Gah.

Pile of poo

No wonder people call their kids Britney.


2006-04-15

Hmm, I was just about to add some more stuff on RedesignOne2006 when I discovered the font has just gone wierd in firefox and camino. Muh?

muh

I don’t think I’ve been hacked or anything, ‘cos Safari still shows it fine. I thought it may be due to an update I just did of Firefox … but why would that affect Camino as well?

To be investigated …


2006-04-13

Metro inspires new thoughts in the SpimeProject


2006-04-09

Recycling

Just been doing some RecyclingFromSciennes and, by god, it was so much easier than normal. The cooncil have just put a packaging-recycling bin pretty-much on our doorstep, which means we no longer have to walk with our rucksacks across to the school in Marchmont.

PSP

psp+wiki=painful

That last sentence was written on my psp; it was about as much as I could bear.

I had just been playing Mercury, by Arthur Maclean1, which was good enough to keep me playing it for 45 minutes at least. It reminds me a bit of the monkey game on the Nintendo Gamecube2, except it’s more gooey. See, I could write reviews for Edge, easy, like. It will probably be good airport-fodder, at least.

A Day in Dundee

Some photos of swans. In Dundee. Near Fife. The day before a swan was found with Bird Flu in Fife. cue spannende music


2006-04-08

So, it begins again.

I’ve started on yet another re-organisation of my web site. Rather than attempt wholesale destruction, ahem, redesign, of the entire site, I’ve decided to focus my css skillz on one single page, http://portal.houseofmoran.com/. Think of it as a visual version of AboutMe.

What usually happens is that I spend an entire holiday working on a css-heavy uber-wizzy upgrade, and then discover it looks like it has been through a liquidiser when viewed in explorer on windows (I only have macs at home). There is a page on the internetweb that can show what a page looks like on different browsers, and, when I find it again ;-), I’ll run it through that.

For those who like watching car crashes, follow along in RedesignOne2006.


2006-04-06

ISBN 0321293533 (amazon.co.uk, isbn.nu)

Martin Fowler has just released a new book in his series, this time on database refactoring. I’ve had a quick peak and I was hoping for something a bit more substantial3, for example on recommended ways to version and migrate a database. Might be worth a peak in Borders…


2006-04-05

Idea: Tie a paper added to delicious to this wiki using the URL as an identifier. Write robot which subscribes to both feeds and produces a third page on the nearmap containing a link to an archive of the paper, which may also be indexed.


2006-04-04

Idea: put rdf triples in pages, using n3, or other simple format. Could be useful for a SpimeProject 4


2006-04-03

Started once again on the SelfHostingEmail project. Also began arsing about with the css.


2006-04-02

This is written on my mobile from a car on the way to dundee. See, mobiles are good for something!

Actually, being able to look up the speed limit for Carmens dad is really quiet useful from a ‘spending time in jail’ perspective


2006-04-01

The site is born again, as wiki.houseofmoran.com, until I get my arse in gear to switch things around.


2006-03-30

I discovered today that First Busses don’t use radios. This now explains why the drivers keep on stopping next to each other; I had thought they were just very chatty.

This also explains why their drivers haven’t a clue as to why they are the first bus to turn up in an hour. How very convenient.

It's all clear now


2005-08-23

Edinburgh Film Festival 2005:


2005-08-22

Edinburgh Film Festival 2005:


2005-08-21

Edinburgh Film Festival 2005:


2003-08-09

I mention in 2008-06-01 that I am having problems ordering tickets for the EIFF. For comparison, here’s what I said in 2003:

Less Than Movies

I really have to say that using your web site to attempt to order tickets has got to be one of the most disappointing and frustrating experiences I have had in recent memory.

You don’t start off well by timing out the basket after ten minutes and limiting me to nine items but you then go on to compound this bad start with incredibly bad execution. Not only am I unable to select one of the films I wanted to see because you’ve given it the wrong code, but also whenever I change the number of tickets for one of two separate films in my basket it deletes the other film instead.

I could perhaps be more forgiving of such errors if it was the 90’s and shopping baskets had just been invented, but frankly this site and this event has been going for at least three years and you had months in which you could have tested this. You did test it, didn’t you? I’m not so sure.

It’s fairly obvious you spent some time putting together the look of the site because it does indeed look swell. However, following that up with a pitiful implementation of what must be a key goal of the site, ie selling tickets, turns it into a perfect example of over-promising and under-delivering.

Let’s hope you can do it better next time,

Irate of Edinburgh,


Footnotes:

1. whoever he is; perhaps if I read Edge more religeously, I’d know, but as for now, he just sounds like a Scottish Sportscene presenter

2. which I stopped playing after a while, partly due to skill and part caused by induced-seasickness

3. For example, http://databaserefactoring.com/RenameMethod.html hardly seems like rocket science; admittedly, this site is just a summary of the book, but even so, surely such a refactoring already exists elsewhere?

4. Hmm, wiki-words don’t work too well from a mobile