Gah. The last thing I read last night was this. Combine it with this and then throw in this and you can see why I prefer PostgreSQL.
And of course I spent all night telling the MySQL developers why...
Posted at 08:17 AM
Gah. The last thing I read last night was this. Combine it with this and then throw in this and you can see why I prefer PostgreSQL.
And of course I spent all night telling the MySQL developers why...
Posted at 08:17 AM
I have this weird reaction to anything I don't get. This covers a wide spectrum of things including idiocy, lunacy, weird emotional responses I just don't understand, plain old irrationality (perceived or otherwise), quite a gamut all told.
I get angry. No, that doesn't quite cover it. I curl up into a small, black ball of rage. A lot of people seem to think I'm quite reasonable. But what passes for calm, cool and collected is usually just a side-effect of rage-induced paralysis. If my office telephone cord was longer and my autonomous nervous system took it upon itself to get in league with my limbic system we'd have a rash of death-by-telephone-handset-beatings on our hands.
Call me weird. Call me psychotic. Just do it from the other side of my desk. And stand well back. You never know when I might snap.
Posted at 07:56 PM
Last night's main feature included jello shots at a dingy bar in some unknown quarter of an anonymous city somewhere. There was a random group of people with me but I was distinctly alone and focused on ripping a trance CD from a recent rave (I don't rave) that turned out to be a data CD that contained a single 143MB mp3.
In other news ...
Posted at 08:05 AM
Newt certainly seems to have attracted a lot of attention. I'm still not sure how they're finding it (it's actually quite hard to find using Google, hard as that may be to believe). But find it they are.
And quite a range. Some of the more intriguing domains that have downloaded it include:
Not bad given zero advertising and the fact that they've all found it within a month of me making it freely available (or they've been watching it for years in the hope I'd do so and have pounced on the opportunity).
If you know of anyone who might be interested, by all means, send them my way :-)
Posted at 11:00 PM
We went for a (very pleasant) walk through our suburb this evening and stumbled across an African Goshawk. I'm not sure if it's resident in the suburb or if it was just passing through, but I'll certainly keep an eye (and ear) out for it in future.
It always lifts my spirits to come across an unexpected bird, even if it isn't particularly rare.
Posted at 07:36 PM
Utterly bizarre dream sequence last night. Someone was trying to teach me to identify a particular species of primate based on striations on it's backside.
Hey, I don't script these things. Don't look at me.
Posted at 07:21 PM
We took the long weekend as an opportunity for a bit of a LOTR marathon. Just finished the last of the three extended versions. I saw the extended version of the first one some time back and have been itching to see the remaining two ever since.
And I'm certainly not disappointed. Wow. It really was done spectacularly well. I'm spent :-)
Posted at 10:19 PM
I'm less than thrilled about the future at the moment. Well, no, that's not strictly true. But I'm not dancing on the ceiling. I think it's a combination of things. I'm bummed about my bike and the collosal waste of money it seems to have been. I'm torn because I don't want to risk a similar sum again but I really do miss it.
But as bummed as I am that's actually a pretty minor issue. It sucks but I'll live. If that were it then I'd hardly be in a position to complain (although it's likely that wouldn't stop me).
Work's in a bit of a weird phase. We've entered the official release cycle of 5.0. What this means is that we're now trying to go to beta, but like any good software project would, 5.0 is fighting back. We're gaining ground, but slowly. It's about polishing it off now, there are very few significant problems left to solve (which is not the same as there being very few stumbling blocks ahead) and that's always a difficult phase. It's not that I don't want to polish it off, I'm very keen to get it as finished as humanly possible. But it's not driven by my enjoyment of the project. Rather, it's driven by my sense of pride in the work I do.
And they're not comparable. At least not with respect to the level of enjoyment I get out of it.
Again, if that were all then I think I'd be far less conflicted. I stand at a bit of a cross-road. There are two ways to go. Neither is likely to be the wrong direction, both will probably be interesting, educational, challenging, fun, and ultimately contribute positively in a range of ways. Which makes it all the more difficult to choose a direction.
And to throw oil onto the fire, I'm feeling particularly disillusioned about the industry I'm in. I'm not even sure where to begin here. I don't want to learn yet another language. I have no problems doing it when it makes sense. I have total faith in my ability to pick a new language up quickly and use it effectively. But I don't see the point of yet another bloody language. Perl and Python made sense. They filled in an obvious gap (although they were by no means the first to do so). PHP taught a generation of "web developers" that tight-coupling was okay. But it filled a gap at a time of need. Hell, even Ruby, bastard child of the pair of them, made sense. But the flood gates have opened and there's no sign of the water slowing down. Recently, the world of Java alone has acquired Groovy, BeanShell, Rhino, JudoScript, Pnuts, Jython and Jacl.
It's not even the plethora of scripting languages that annoys me. It's the way they're all trying to be all things to all men. Python has its place. It's just not large scale development. So does Perl, but again, it's not well suited to big projects. Scripting languages are glue people. Imagine trying to build a chair out of glue. Why would you even try?
I'm especially disillusioned with the state of Java development. The rubbish they're adding to Java 5.0 is only a tiny little part of it. Every Tom, Dick and Harry seems to be building, or building on, a web application framework. Struts has taken over the world. I have no interest in developing web applications. For that matter, I have no interest in developing beans for an application server, or for developing an application server for that matter. But the world seems to have gone blind to the fact that there are, *gasp*, other types of applications out there; that some people might not need yet another e-commerce website. I see this afflication has spread to other languages too. We now have Ruby on Rails, and the creatively named Ruby Web Application Framework. I haven't linked to them because I don't want to waste your time (or mine).
I just don't see anything on the road ahead that excites me. Not at a macro level anyway. There are still plenty of things on a micro level at work that I'm looking forward to. But I'm starting to wonder if they're enough. 5.0 is the last really big project for a while. Projects of this magnitude just aren't sustainable. So what next? I can spend the next ten years of my life refining a pretty solid platform. Or I can spend it adding funky new features to our SDK. Someone asked me today if anyone actually uses all of the functionality we put into it. I'd be surprised if more than 10% actually sees active use.
Or, I can take a chance, strike out in a new direction, and see where the road leads me.
But you know what Bilbo used to say:
It's a dangerous business, Frodo, going out your door. You step onto the road, and if you don't keep your feet, there's no knowing where you might be swept off to.
Posted at 12:15 AM
Really seems to be a weekend for technical posts.
This was an interesting read. The comments more than the article, if only because they shed some light on the different kinds of developers and why some Python programmers and I tend to be at odds.
There's a reasonably long running thread that boils down to "does Python need formal interfaces" which resonates. It's something I really don't like about the language and I'm the first to admit it's because of the context in which I use it. In fact, if I'm completely honest, most of my serious gripes about Python are because its "We're all adults" design philosophy is completely at odds with what we use it for: SDK design. And SDK design is my first love so it's only natural that a language that is a bad fit in that context will rub me the wrong way.
I particularly liked this characterization of Java and Python programmers:
Python programmers are rightly afraid of creating artificial form. Most times they're already limited enough by the nature of the problem. In some sense, they are much like the craftsman. Approaching each problem with a practiced hand, making a solution that is perfect in its own way.
Java programmers revel in the joy and power of the industrialist. Taking artificial form to its highest form, they proliferate standard interfaces. When you have enough parts that fit together, you can do almost anything. The industrial solution is often large and unwieldy, but it works, works well, and can be relied upon as a tried and true method.
Posted at 06:22 PM
I ran across this this morning and I think it just pushed me over the edge.
I'm singularly unimpressed with what I've see of Java 5.0 (aka JDK 1.5). It seems to be largely about playing catchup to C#, and for the most part in ways that (I feel) screw with the language.
Everytime I run across a snippet of sample code for one of the new language features I feel like I'm essentially looking at a new language.
In 1.5 Sun have introduced seven new language features. These are:
Of these, the first two probably contribute the most to making Java 1.5 source code look so alien. The pair below them (the for-each loop and varargs) are essentially syntactic sugar which add no value to the language whatsoever and save C/C++ programmers a few keystrokes. I'll come back to annotations and generics later on, but let's run through the rest of the list quickly.
A decent modern Java IDE will let me iterate over the contents of a collection in under 10 keystrokes, so I see no point behind the addition of the for-each loop (save that C# has it so why shouldn't Java?).
Varargs are just a shortcut for declaring an array of Objects as your last parameter and for reducing some of the 'clutter' in the calling code. No real value here, move on.
Autoboxing is dangerous, for two reasons. The first is that its easy for a developer who isn't paying careful attention to think he's working with the same object when in fact he has a brand new Object. At least Java didn't fall into the trap C# did: you still can't synchronize on a basic type, Java won't autobox it for you (think about why this would be a bad thing). But, it still leaves the door wide open for a programmer to unwittingly create millions of objects, thereby killing the performance of his app. Sure, if he's careful he can avoid this, but the whole idea of autoboxing seems to be that the dev doesn't have to care about the type he's using. It's about making everything look like an Object.
Enums are hard to fault. At the heart of it they're about performance. What, you say? Performance? Surely not, enums provide type safety! Yes, they do. They're more typesafe than numeric constants. But so are Objects and there's a reasonably well established pattern for doing this with Objects in Java. But, the kicker is that you can't switch on Object handles and therein lies the rub. You could probably solve this more elegantly using the pattern indicated with a callback interface of some sort, letting polymorphism step in in plact of switching, but I digress. The point is, people want a type safe enumerated type that's also an ordinal type so that they can switch (for performance reasons). To be honest, enums in 1.5 leave me unimpressed but I can't seriously fault them.
Static imports once again has the language doing an IDEs job. They allow you to import static members of a class. So if you have a class of constants you can import the constant members directly and reference them without qualifying them (i.e. it saves typing). I suspect another driver for this was to try to stamp out something that achieves the same thing without this language change but which is considered bad practice. The idea's simple, put your constants into an interface and then when you need them in a class, simply implement that interface. This lets you reference the constants without qualifying them (because they're in your namespace) but is nothing but a hack (a crafty hack, full marks for creativity to the originator of this one).
Annotations are actually a good thing, despite the horribly mangling they introduce into the language (and the way they clutter up the reflection APIs). My concern here is that they'll be misused. So far I haven't seen any blatant misuse of this construct (outside of C# which abuses it's equivalent horribly). In my opinion, this construct should be used to assist tools (that's Sun's general idea). C# chose, unfortunately, to attach runtime behaviour to their equivalent. This is nonsense. Annotations exist so that tools can work with your code more easily. They're essentially JavaDoc's @deprecated tag done right.
And so, finally, we come to generics. Are they worth it? Opinions seem divided (admittedly this is hardly a scientifically sound poll). Bruce Eckel doesn't really agree with the implementation Sun chose. But Sun chose to retain backwards compatibility whereas Microsoft chose to break it. And Bruce has turned into a bit of a Python bitch as of late so I've lost all respect for his opinions. He truly seems to believe that finding out at runtime that a method doesn't exist on your object is a sane way to live. The mind boggles. Generics strike me as solving a problem that doesn't exist. Don't get me wrong, I'm a fan of strongly typed languages and one of the biggest (potential) problems with collections in Java is that you end up dealing with Objects and typecasting them back to what you put into the collection originally. You throw away any hope of the compiler catching type errors for you. Generics make it possible to tell the compiler what you're storing in your collections and have it double check you. Personally, I feel that the added complexity of Generics is not worth the added safety they bring to this scenario. Think about it. When last (ignoring in testing) did you see a ClassCastException because you tried to typecast an Object to something it wasn't after retrieving it from a collection? How much time do you really think you would have saved with Generics?
Posted at 02:16 PM
Everyone says it, nobody seems to listen. Backup regularly!
A brief hardware outage saw us down for a day or two. Fortunately it turned out to be a dodgy block on the HDD and we're back up and everything seems intact.
Needless to say, frantic backups of everything are underway (I actually to back up the server from time to time, but I'm a little behind).
Posted at 07:07 PM
I try to avoid posting technology rants here. There's too much and it's more fun when it's interactive. I'm sure this will come up at the office tomorrow, in fact I suspect I'll make a point of it, but here goes anyhoo.
NetBeans. Eclipse is my current IDE of choice. Some of the guys are using IntelliJ. Eclipse and Intellij seem to be pretty much neck and neck as far as functionality goes. Intellij seems (from what I've seen) to occasionally edge Eclipse out on the performance front, but most of the time they hiccup at around the same rate.
NetBeans 4.1 beta is out and one of the things they're punting hard is how it will seemlessly import an existing Eclipse project. And there are droves (I'm told) of developers abandoning the Eclipse platform in favour of it (oh woe is me, droves you say?, where do I sign up?).
Sheesh. So I thought, hell, let's give it a whirl. I'm open minded. Maybe I'll be pleasantly surprised.
It's fast. It really is. And it's lightweight, chewing up far less RAM with our fairly large project (around 3,500 class files all told). But that's about all it seems to have going for it.
The first thing that pissed me off is the lame file selection dialog. Truth be told, this is a Swing issue and it's so jarring compared to how you expect a Windows app to behave (and so generally counter-intuitive) that it had me seething within minutes.
But, being a mature, sensible kinda guy, we move past that. Importing our primary project was a no go initially. It has trouble with our workspace (or I presume so since it offers absolutely no feedback about why it's happily listing zero projects for me to choose from). So we go the slightly more adventurous route of importing a project instead of a workspace. That seems to do the trick. Quite impressed there actually, given the size of our project.
Building worked quite well too. Again, kudos here guys, well done. So, let's pull up a JUnit test and see it run. No go. Nada. Firstly, running a JUnit test as such means playing with the IDE's notion of what a test class looks like. Our template doesn't match there's (we use Test as a prefix, they want a suffix). Fortunately, our tests are written with a self-containing main method. So we try to run that. This fails, because we need to set up some system properties, but that's expected, not the IDE's fault at all. But actually doing that?
At this point we discover that NetBeans is one of those IDEs that still thinks a project has a main class. Huh? What? Come again? We have a project that includes a large SDK (with a couple of dozen command line tools), with last counting 6 major supporting apps (each could be considered to have their own main class) and a dozen or so classes which just for reasons of simplicity (in a testing sense) have a main method (classes that pop up Swing windows for example, handy to be able to tweak and run).
At this point I could decide whether to laugh or cry and I just plain gave up.
NetBeans sucked 3 years ago when I last tried it, and while it may not suck horribly today, for our purposes, it just ain't good enough.
Eclipse may be slow, but it reflects the way I work, and speed can be solved with more hardware (to some degree anyway). NetBeans seems set to just step on my toes while I'm trying to earn a living.
Posted at 09:33 PM
We bought a house about 6 months ago, and moved in to it at the beginning of the year. A range of people keep trying to have the same conversation with me. It usually starts something like this: "So, how are you finding the new place?"
I'm tempted to answer "Well, I get in my car, and if I head towards Kenilworth, it's usually pretty easy to locate."
I think they're expecting me to gush about lawns, and paint colours, and the thrilling renovation prospects in my future. Usually I just throw them a few stock "Lots to do", "So much potential", or "Nice to not be paying for someone else's property."
Bah. It's just four walls and a roof. The most it's got going for it is that I've put in ADSL and a wireless access point. Yes, it's nice (I wouldn't have forked out a small fortune toward it if I didn't like it, now would I?) Yes, I enjoy staying here (as much as I've enjoyed staying anywhere I've agreed to pay money to sleep.)
Get over it. Some of us never even climbed on to start with.
Posted at 09:53 PM
I woke up this morning thinking about life in 30 or 40 years, and beyond. And it occurred to me (surprise, surprise) that I don't particularly feel like dying.
Yup, feel free to pass me by when the old bucket comes abegging to be kicked. No thanks, I'll pass.
When I was a kid the thought that one day I would die used to bother me terribly. I just wasn't prepared to face the fact that one day I wouldn't be anymore; that the world would just continue, oblivious to my passing; and that no one would be here to look after my stuff (odd the priorities of an 8 year old).
It's been somewhat reinforced recently by a spate of scifi books with a common theme: we've advanced to the point where our bodies are essentially immortal (largely through the ability to repair themselves almost without limit).
Today, the closest we can get to immortality seems to be either through the works we leave behind, or our children. I've met other people's kids, and in many cases I'd have to say, if that's immortality, count me out :-)
Posted at 11:27 AM
Odd collection of dreams this week. Two stand in stark contrast to one another. The first can be summed up in a single sentence: I was (recently) married and I was bummed that I didn't have a ring I could show off.
Last night's was far more complex, quite a few unrelated aspects. It was set in a little holiday town at the sea. The area was familiar, it comes up in my dreams regularly, although it's not somewhere I can say I've ever seen. The dream was centered around a group of four close friends. Very close friends (one of them was me). Nothing sexual but far cosier than societal norms would be comfortable with.
Except maybe in the Netherlands :-)
Although the four were central to the dream there were random offshoots into related 'stories'. One included a shopping trip into town with Mardi Gras overtones. Another involved a long walk along the beach. Pretty arbitrary but it scored not insignificant cycles last night. The last offshoot involved a slow, rolling trip through the ocean, in a large cylinder made entirely of glass. We were sight seeing (I distinctly remember passing a large whale).
The last one was quite pleasant. Normally any sort of 'neath the surface oceanic voyage is so fraught with danger that there's a nervous tension to it. I would imagine this somewhat spoils the event. But in this case there was none of that. The cylinder was such a common occurrence that there was no reason to be nervous at all. Which meant I (I was alone but there were two of us, go figure) could truly enjoy the experience.
When I stop and think about it, it continues to amaze me that your brain can pack so much emotional content with such clarity into a very short period of time. I mean, it's not like my dream was narrated last night, and yet ...
Posted at 09:05 AM
How do you teach someone to "work smarter not harder"? How do you show them what they're doing that gets in their way? How do you do it without offending them? How do you make it stick?
I watch many people I know when they're working. It's something I have a very keen interest in. I never feel that I'm working as quickly as I could be, but I know I work much faster than a lot of people. It may seem somewhat arrogant to say but it's true, and I know a range of people who would agree with me.
I think there are a few reasons. First and foremost, I know my tools. And when I start using a new tool I make a point of getting to know it (or at least the parts of it that apply to me). I also naturally optimize repetitive tasks. If I find myself doing something for the third time, I find a keyboard alternative (if it's mouse based) and I practise it until it's second nature. And I make sure I use it whenever I get the chance. Keyboard shortcuts may only shave a few seconds off an operation, but over a thousand operations that can represent a substantial saving.
Second, I abhor operations that I feel are "too slow". I find myself watching people using Explorer (on Windows machines) to copy files. This is actually a good way to do it, if the files are diverse. Copy and paste is much faster than six or seven command line operations. But, copy, followed by using the same window to scroll up (using the mouse) to find your destination folder, and then pasting, is a colossal waste of time. Firstly, you throw away the context of the current window (and in the vast majority of cases I deal with we're dropping new class files in somewhere to test, so you can be sure you're going to have to do this again shortly). Use a second window. Combined with ALT-TAB this is much faster. And secondly, using the mouse forces you to aim at a little cross (when you're expanding directories) that's probably ten pixels across.
In general there's only one operation where the mouse really makes sense: surfing the web (okay, and graphic design or anything related to it, but it's not something I do frequently). Anything else should be done using the keyboard (if possible). Learn your shortcuts!
The third reason I think I'm faster than most is having a handy bag of tricks available which I'm not afraid to use. A lot of this comes from experience, but there's an aspect related to knowing your tools. A common example would be having to make a tedious change across a large number of source files. An editor like Ultraedit let's me search and replace across multiple files (with regular expressions if need be). That's a pretty powerful shotgun, and it's very easy to shoot yourself in the foot. But combined with source control and suddenly it's almost impossible to complete screw yourself. Once you're done, diff the files against the latest revision to make sure you haven't screwed anything up, and if you have, throw away the changes and try again. I can get this wrong nine or ten times for a dozen source files and still come in ahead of most people.
But knowing all this only gets me half-way there. I haven't yet figured out how to pass this on. Saying it isn't enough. Demonstrating doesn't seem to be enough either. How do you make it stick?
Posted at 07:03 PM
Ah, the warm, heavy-lidded glow of paracetamol. Nothing in the world like it.
Posted at 03:41 PM
A dream situated in a mixture of primary school and high school (the portion of it spent in Jhb). Most of the time was spent look for a protractor, necessary to write an exam only revealed at the end of the dream.
Some of it spent in the company of people I knew, in one of those awkward situations where you know someone is keen on you but you're just not interested yourself. And the last thing you want to do is reject them outright.
Posted at 08:10 AM
Ah, shit. It truly has been a Monday of epic proportions. Too much to do, too few people, basically just more fires to put out than we have hoses.
And then, to cap it off, it turns out a close family member has been diagnosed with cancer. At this point they might have found it early enough to make a relatively minor affair out of it. But we await the results.
Posted at 05:53 PM
Paul Graham has penned a pretty good range of essays. Some of his essays reveal him for who he truly is: an insecure, slightly deluded LISP hacker with an inferiority complex.
But others are well worth a read. I found this one particularly interesting. If you were one of the smarter kids at school and look back on your days of persec ... er, education less than enthusiastically, then you'll probably nod in agreement most of the way through.
Posted at 10:34 AM
This ruling is probably one of the most intelligent rulings I've seen come out of the US in a long, long time. Admittedly, my initial reaction to this issue was that it should (and would) be ruled on in favour of the bloggers. But it wasn't, and the judge who ruled that way makes a good enough argument to sway me.
He also managed to avoid turning it into some generalization that puts blogging, or any other form of personal expression at risk, and without (I believe) eating any further into anyone's right to privacy.
It's almost unbelievable.
Posted at 09:07 AM
Well I have to say that I'm quite pleased. Since deciding to make the full version of Newt available for download the logs show 38 separate completed downloads. Not bad for zero advertising and given that it's actually difficult to find it using Google.
Posted at 09:32 PM
Dream last night with all of the classic elements from High School: the pretty young girl taken aback by my brash, intrusive nature who doesn't know it yet but will eventually fall madly for me (taking an active disliking to me served only to spur me on); the imminent exams for which I've done little or no studying but everyone else has crammed madly for (this occasionally caught me short but most of the time wasn't a problem and nothing freaks a frantic studier like a totally relaxed demeanor); the girl finally breaking and realising she's nuts about me.
Okay, so the elements form an odd mix, and the fact that it took place as part of a school-wide sleepover in the school hall, and that my current boss was floating around (I stopped at one point to ask him if we knew which subjects we were writing the following day).
Puzzling, to say the least.
Posted at 08:08 AM
Just nominated myself for the expert group for an upcoming 6.0 JSR. I don't really expect to be accepted but hell, it would be a terrific experience and I've got nothing to lose in applying.
Posted at 09:08 PM
Weird dream about two warring factions in the neighbourhood I lived in. I have no idea what started it, I kind of dropped into the dream when they'd decided to murder, loot and pillage. At some point during the literal stampede towards one another they suddenly resolve all of their differences and just stopped.
Unfortunately, this came too late because someone had already fired off a salvo of thermonuclear missiles targeted at a major fault line running under the other neighbourhood. Pan to kids being held hostage at gunpoint. Fade to black. Wake up.
Posted at 08:06 AM
I divide the world largely into two groups of people. I find it quite difficult to pin down what differentiates the two groups. So let's try a very hazy abstract example. That's sure to confuse the issue even more.
Often I find myself involved in 'polite conversation' with people where I switch into what I can only characterize as nodding-dog mode. You know those dogs you get for the back window of a car. The ones that nod every time you hit a bump and people find so adorable (Lord knows why). Well, during these conversations I feel a bit like that. And it's largely because we're exchanging polite pleasantries about inane things and I'm usually thinking "That statement is so fundamentally stupid that I actually don't think a single human lifetime is enough to explain what's wrong with it. And to add insult to injury I don't believe you'd understand what I was getting at if I tried."
It's not about intelligence. It's not about intricate technicalities. It's about a way of looking at the world. It's about realising that 99% of the time the world is so ludicrous it's not worth taking seriously. It's about realising that most of what we do is bullshit and that the really important things are so personal that if the other person doesn't get it instinctively then it's not worth attempting to go any further. It's about not taking anything seriously unless you've made a conscious decision to do so, knowing that it's silly to have taken that decision in the first place.
Sometimes I feel like there are only a few of us who realise that there's no such thing as "adults".
Posted at 10:45 PM
I don't often write directly about my work. It's not out of some kind of loyalty. It's just difficult to establish in less than a few bound volumes some of the required background before something makes sense.
But sometimes, sometimes it's just too hard to resist.
The level of stupidity (ignorance is not an excuse) I run into on a daily basis occasionally reaches epic proportions. Some days it's all I can do not to slide a small mirror under some noses to check that they're breathing. Admittedly, breathing is an autonomous function and by no means decisive when looking for neural activity, but it's a necessary condition and easy to verify.
VISA, MasterCard and cronies (God bless them all) have suddenly woken up to the problem of Internet merchants accidentally (or deliberately) exposing sensitive information like credit cards to the world at large. They've published and are enforcing (by means of heavy fines) a set of data protection standards. The intent is admirable. The implementation leaves a lot to be desired.
An issue we're dealing with at the moment involves an internal vulnerability assessment. The basic idea is that a port scan is run from within your LAN to determine where you're vulnerable. This port scan is just the start. Open ports that are identified in a list that's a who's-who of network services are then subjected to 'simulated traffic' (so if they think an FTP server could conceivably run on a given port, a sequence of FTP commands are sent to that service).
An internal vulnerability assessment makes no sense. Scratch that, certain classes of this make sense. You want to know that users with limited rights can't gain privileges in excess of those rights. Fine, plenty of legitimate tests you could apply here. However, these are Windows boxes, and I guarantee that these tests are being run from an administrator account (the standards don't specify this kind of level of detail; like many standards they leave the details to drones who haven't a clue).
In which case I have a much better internal vulnerability assessment. Try formatting the primary hard drive. Go on, you know you want to.
This is like trying to produce a list of items that a thief could damage if he were allowed inside your house but ignoring the fact that once inside he can pretty much do whatever he wants to.
AAAAAAAAAAAAAAAAAAAAAARRRRRRRRRRRRRRRRGGGGGGGGGGHHHHHHHHHH!!!!!!!!!
Posted at 07:18 PM
Long, tortuous dream that had me battling my way through levels and levels of a traditional chinese castle (rendered in the style of Age Of Empires II).
It ends in a spectacular climactic fight between myself and a handful of ninjas. I best them using only the knitting needles I happen to be carrying with me.
Fear my knitting needle shurikens.
Posted at 07:20 AM
A complex sequence of fragments bleeding into one another. That's my excuse for the lack of detail in what I remember from my dreams last night.
A cup of tea featured prominently at some point, I have no idea why. Thereafter an undercover operative of mine entered the picture who shifted rapidly between being my daughter and my operative a few times before settling on operative permanently. I needed her to implement a new interface so I could initialize her properly, but I was worried about the overhead of the instanceof test (naturally we needed to remain backwards compatible).
At this point I hear the power trip and get out of bed (I'm awake, not dreaming) to switch it back on.
Return to bed, drift off and shift on to a line of people walking along the crest of a sand dune in a desert. Most of them faces I know, spanning about 15 years of my life. Very little talking. This is a serious journey.
At some point I'm looking at my bike, almost completely fixed except that the clutch handle is on backwards and the cable terminates at the wrong side of the front wheel. A long sequence follows where a few of us try to understand how it should be fitted and make a few attempts at correcting it. Midway through it occurs to me that this is just a dream and it's pointless to continue. So I stand up and walk away.
The dream ends with the same group of us who were walking in the desert lying side by side on the floor of a tent discussing who was the appropriate size to feed the rest of us. I dismissed the smallest (and most eager) of us because he was all skin and bones and then began the delicate task of explaining to one of the women that she was perfect. This was tricky because I didn't want to imply she was fat (she wasn't, she was just very tall and well built).
Fade out into a stiff neck and morning noises.
Posted at 10:56 AM
Some people seem so reluctant to hand off responsibility to other people.
I've spent the last few months deliberately handing off more and more responsibility to my team. There are lots of reasons behind this, some selfish (like not wanting to have to deal with things that don't interest me, and making sure I'm not indispensible in case I ever want to do something else) and some less so (nothing forces someone to grow like a good dollop of responsibility). The point is that, almost without exception, everyone has risen to the challenge.
I can't tell you how impressed I am with the kind of response I've seen.
Posted at 06:31 PM
News on the bike. It seems all the biking bad luck in the Universe was centered on me the day of the accident. The motor is completely sexual intercoursed.
So the hunt begins for a second hand motor for a Honda CBR600F4 (hint hint). If any of you lot got a spare one lying around I'd be eternally grateful if you'd give it up.
Looks like it will be some time before I take the streets of Cape Town again.
Posted at 08:27 AM
I like sushi.
With that out of the way, Mandy sends me this link so I peruse it, like any good Internet junkie would. I can't help but feel frustrated. I mean, aren't we just rehashing the same old APIs? I've lost count of the number of "databinding" APIs I've seen in the last two weeks alone. They've got an API for working with tabular data stores, like SQL databases. Who doesn't? And their big news is an API for creating login screens?
In other news, I think I'm losing my vision in my right eye. I've almost constantly had a feeling in my right eye not unlike the feeling after you've just rolled out of bed: like you need to rub it to clear your vision. But "independent studies" (me closing one eye and then the other) haven't revealed any obvious differences between the resolution of the image presented to my brain by the two eyeballs. Bah, if you're going to fail just do it already. Then I can get on with things.
Posted at 10:49 PM
I heard an interesting statement earlier.
The larger a company gets, the more stupid the people get.
Or more accurately, the more the average IQ tends towards 100. I'm still digesting this. It mirrors to some degree my own thinking.
I've spent a lot of time recently thinking about this. Is it a given that as a company gets larger it gets harder to hire good people? It makes a modicum of sense: good people are rare (the right half of the bell curve is lower than the center) so as you grow the number of people who aren't stars dominates the number of good people.
But then, surely that means your standards drop as you get bigger? Shouldn't everyone you hire be good enough?
Posted at 06:44 PM
If you want to make me anxious, start talking about me taking leave. It sounds unbelievable, but there you have it. I'm not really sure why, I don't think it's anything like not feeling I can trust my colleagues to carry on without me. I don't really have any ideas here.
The thought of leave is a major stress point in my life. Which probably means I'm up defecation creek without a canoe mobilisation accessory.
Posted at 08:10 AM
Dreams last night of spending time with a father and son I didn't know, and who spoke no English, in a snow-ridden research centre in Japan somewhere. I think it's because of these pics. They're absolutely stunning and had me ready to pack my bags and move to Japan.
From there I somehow spirit myself away to Oz, or at least a city in Oz that looks remarkably like Fish Hoek in Cape Town. There I spoke briefly with someone I recognized and watched him place the final brick in his boat. He'd just finished paving its deck. The dream ends with me looking up a side street that I clearly recognize as one in Fish Hoek, but onto a street that's unmistakably Melbourne.
And I wake up missing all three.
Posted at 08:12 PM
Well well well. Certainly unexpected. Got home to find a most interesting email in my inbox. More detail is definitely in order but certainly something to consider.
Well well well indeed.
Posted at 07:25 PM
Phew. Feel a little like Neo at the moment. I think I have an idea what it feels like to dodge bullets. We dodged a cropper. Introduced an infinite loop (the joys of multi-level object hierarchies) which fortunately never made it out of the door.
Hoo boy.
Posted at 07:13 PM