Shelter

Tech, philosophy and random musings

You are here: Home / Home

5 August, 2009 by Alex

Can I ask you a favour? (Does social media actually work?)

Hi everybody. Could I ask you a favour? I’m not getting much response to my quest for a unified software architecture ontology, so could I humbly ask you to blog, tag, link or otherwise gossip about my previous post on the matter? I would really appreciate it, and I promise I’ll share my findings with you all.

(My subtitle “Does social media actually work?” is a blatant attempt to get circulation going by mocking the whole debacle which I try to, ahem, you know, promote. Thanks.)

Filed Under: Blogging, Ontology, Topic Maps

31 July, 2009 by Alex

Boundless?

Hehe, had to giggle a bit when reading this (in my never-ending quest for semantic mapping of software systems architecture) ;

“The Open Group is a vendor- and technology-neutral consortium, whose vision of Boundaryless Information Flow™ will enable access to integrated information within and between enterprises based on open standards and global interoperability.” (My emphasis)

To embrace “open” you would think that getting to the info would be, you know, just open, but no. There are free chapters available for you to see, just to make sure, you know, there’s an engine under the hood, all you need to do is to jump through a few hoops, register, and … ugh. So I bit this bullet, registered and I got the introductory guide to the TOGAF framework, but it reads as any other fluffy “use our framework, and all shall be well in the world” vendor selling you miracle cures out there. Disappointing, really. I could get the full thing if I apply for a 90-day personal license, but I don’t think I’ll bother as I react badly to fluff, and I definitly get an allergic reaction to having to register, revealing personal info and such, just to get to read their fluffy bits. What gives?

I think these people have completely misunderstood what “open” means, which is a shame considering that the content might be useful. But I say only might, as I would have no idea. Phft, open, my ass.

Filed Under: Soa Roa Woa Rest Soap Ws Architecture

29 July, 2009 by Alex

Missing ontological serinity in the world of software systems architecture

Updates: See bottom, but also this question on StackOverflow.



Ok, so let me say from the get go that I’m a little bit upset. Well, maybe angry and bewildered more than upset, but nevertheless not happy. And it all has to do with the dingbat way we architecture our various computer systems. So, yeah, quite generic and not really something we can do much about.

Let’s rehash. I’m a SOA junkie, an EDA pimp, and I hate by default the bullshit in any Enterpise camp that promotes their way of doing must be right. And by SOA, I don’t mean no ESB bullshit, I mean a hard-core focus on services for architectural means. I build ontologically driven systems, and care deeply about semantics where most others don’t give a monkey’s bottom.

Lately I’ve had to rehash my knowledge on plugin architectures (both implementation specific and theoretical), how to modularise complex pieces of software, and implement an event-driven platform on which to run my systems. So I’ve been snooping around, and there’s a ton of models and architectures to be found. But being found is not the same as finding what you’re after, especially as I have a few criteria to my search; I want to find something that’s generic, simple (but not simplistic), elegant (as in, does not suck) and extendable, an architecture that’s event-driven, modular and open. Nothing. I’ve found nothing. Of course they all claim to be amazingly fantastic and super and great, but looking under the hood, if allowed, reveals yet another staticly created shared library stack with some hooks for your software to use, using some misnomer like SOA or EDA or any of the hundreds of other Enterprise bullshit terms out there.

So, I set my goals lower in the hopes of finding anything of value, even went and asked real programmers what I thought was a simple question, making it specific enough to hopefully muster some replies. Nothing. It seems everybody’s got their own way to handle their own little piece of the universe, that people cling to their silos of comfort or something, afraid of what might happen if we all agreed on something. Even when you dig into large architectures, like my own Linux Kernel which I’m using to write this post, there’s tons of layers and shared libraries that’s hubbled together in a way that does the job, ok, but doesn’t make it, in my eyes, an easy job to do, elegant to extend or easy to change.

I guess I should clarify. I’m knee-deep in ontology work for software systems architecture, a field that’s almost chemically free of any active community, has a few scattered experiements that went no where (and I’m tempted to put ADL in that category, too), a few papers here and there that talks about it in very generic terms (either as abstracts to academic stroke sessions, or a white paper claiming to be the second coming of Jeebus!), but as to hard-core practitioners like me who want to inject a Topic Map with events of given types that matches certain ontological expressions and Topic Map fragments of certain types of architectual patterns, tough! You’re on your own, kid.

So, what am I after?

Well, many things, but I’ll try to be a bit clear here. I’ve cut down on my wants, to, in order to try to find others out there doing similar things. So. I’d like to see a simple event-driven software stack that scales ontologically, and isn’t bound to any technology, company or otherwise religious platform. This means that the stack with its names and values work just as well for a small plugin as it does for a larger system like an extra-OS or a cloud, works for potato-peelers as well as online booking agents, database connection pools and kernel space memory managers, but also can grow and shrink with need, in such a way that all other parts of it when they need to can find out what those changes are. This digs into creating an upper ontology for information science, of course, but more importantly it means I’d like to plug software into various parts of a stack, so that everything – and I mean everything! – is an event listener. I know some micro-kernels work in similar ways but highly statically bound, but regardless these ideas are way past the cradle stage by now and need to have a greater exploration in the real-world.

So when I download an open-source package of sorts and try to find out what its stack of operation looks like, why is this information so hard to find? Or compare the Java event model and the .Net model. Or OSes. It seems it’s very hard to agree on these things, but I doubt the state of things isn’t because they’ve tried and failed, but because they haven’t tried. It’s a big world and this is a big field, yet this has not been tried in any meaningful way.

Sure, the technologies promoted through OASIS, ECMA and W3C in themselves have various solutions and tries to bind stuff together in a coherent way as not to confuse us too much, but even within their own stacks of proposals and standards there are huge gaps, great leaps of faith, and generally no clear direction. Even W3C who pushes the semantic web movement hasn’t got anything to say on the matter. It’s starting to drive me bonkers.

Ok, I’m done. My steam has gone out, but I’m not feeling any better. Off to do my own thing, like the rest of them. 🙂


Update: Ok, it seems I’m not getting my message across. Let me create a simple (and wrong) example ;

  • SOA : Start
  • SOA : Configure
  • SOA : Map
  • ENV : Start
  • ENV : Configure
  • ENV : Map
  • APP : Start
  • APP : Configure
  • APP : Init
  • APP : Connect
  • APP : Perform
  • APP : Teardown
  • ENV : Teardown
  • SOA : Teardown

Here we got an application session events where SOA is, er, SOA, ENV the “environment” (whatever that should mean), APP is an application, and so forth. This list should be HUGE! Think of all the interesting events one could generate from you turn the computer on until someone gets Rickrolled on the other side of the planet! I want to map environments, systems and eco-systems, with labels. In some regards it’s an enumerated list of points that any computer system traverses on its path from being loaded into memory until it leaves it. And possibly then some.

I want to map the software system world! I want to know what people call their various points on the software stack, what they call their events, how they see them work together, how they forsee workflow interactions, how they define system integrity, thoughts on implementation, named entities, the works.

I can find heaps of this stuff, but none of it is globally agreed upon, it’s all tucked away in projects or companies, it’s their own version of how things should be and what happens. Even big players such as Sun / Java and Microsoft / .Net have very different event models and ontologies, and they are not compatible in any meaningful way. I would expect some parts of CORBA had done work in this area, but what I’ve seen is very transaction oriented where clients already know the ontology and uses CORBA to travel through rather than be defined by.

As an example of the closest I’ve found so far in the realm of mapping machine-parts (“machine” here is “software systems”) is the Open architecture computing environment which tries to define up the most important parts of software systems (although the final version was released in 2004 … these things can be considered to be final? Where’s the clouds?), but lacks the ontological and semantic definition, has no event or message structures or standards, nor does it have any notational value or end-points which, admittedly, I could spend the next couple of weeks doing, but let’s see what else is out there.

Making any sense?



Update: To be even more specific, trawling through IPC is really what I have been doing for the last few days, but getting to the core ontology of all of this is soooo painful. Surely someone out there have done something like this? I’ve even gone through POSIX trying to gleam what nuggets I could find, but the system level of that beast is just so low it’s not funny. Promising is the DBus architecture and event stack, but this again is very low-level, covers only a fraction of the software systems, and is littered with duplication of complexities.

Anything else I should hack at? Yes, I’ve gone through the most of the WS-* stack as well, digging into past knowledge I had hoped to never see again, but here as well as most other technologies out there they seem to be obsessed with being so flexible that they forget to be defining. So, we get a lot of scaffolding and frameworks that you can extend and define your stuff in, but no clear definitions of what the world looks like. Even an obvious contender like WS-Events and the less-know WS-Event from Hewlett-Packard have nothing more than a functional approach to defining and registering events but that’s it, leaving the defining to some semi-ontological layer.

But I’m still convinced lots of people have done this sort of work, especially in these Semantic Web haydays. Browsing through the thousands of OWL ontologies in Swoogle for ‘software architecture’ (which doesn’t really cut it, but is the closest term that yield results) leaves me just overloaded. Sure, the OpenGroup SOA ontology for example, does provide me with, eh, lots of interesting stuff, but again it’s a special domain (SOA, obviously) using a certain moniker (service orientation, which sucks when you want to define events across operational stacks).

Argh! Can you tell I’m going bonkers?

Filed Under: Ead, Ontology, Soa, Soa Roa Woa Rest Soap Ws Architecture

28 July, 2009 by Alex

A submersive state of mind

Sorry for the low blogging of late. I’ve hit the opposite of a blog-drain; I’m in a state where there’s simply too much to write about, and instead of just exploding with it I retract into myself think I should mull on it a bit before I pop it out. Today is one of those popping days, and I want to talk about something that has been new to me for the last 5 months or so and has proven itself to be a mixed bag of pro’s and con’s ; working from home.

As of the beginning of this year I started to work for Free Systems Technology Labs, an Indian company bent on doing funky stuff the right way with the right people (I had to say that, didn’t I?), and as such I now live in my wife’s home-town of Kiama, a couple of hours south of Sydney, Australia. We moved here from Norway at the beginning of the year for a number of reasons, but being closer to (my wife’s) family also with little kids and the nice climate were two strong contenders (but we’re still talking about moving back to Norway someday… or somewhere else entirely, wherever fate and lust drives us, really).

Kiama at dawn Working from home can be boring, I know, but we’re actually living in a 1880’s built old two-storey farmhouse, verandahs all along the house, with some of the best views in town. Here’s a pic I took last evening before finishing up work for the day. Yes, it can be hard concentrating on hard-core ontologies and magic Tuple-stores when you can stare at the sea for hours, and it doesn’t help either that there’s a number of comfy chairs with fluffy pillows right outside my French-doors that leads out to the verandah. Especially on a nice sunny day. Like today.

So, in order to break up my day I’ve got a schedule of sorts. First, after the kids are out the door for school and breakfast is tidied up, if I still got tea left I bring it upstairs to my office. Now here’s a crucial part of my day; do I sit down and get started, or go and get dressed? Ah, the number of times I’ve written important emails or talked on Skype in my underwear. Well, the sensible thing to do – and, really, what I try to do every morning – is to get dressed. I know it sounds pathetically lame to lament over this, but it’s so easy to just get going. I’m not going anywhere, right?

Amaki Cottage Cafe Well, that’s the thing. Part of my schedule, which I don’t do absolutely everyday, but every so often, is to go to my local coffee-fixer-upper-place. I gives me an excuse to get dressed, and makes for a nice 2 minute (!!) stroll down the picturesque Kiama town-houses, all the way to the bottom of the hill to get my double-strength coffee, double-strength chocolate Mocha. Some days when I do my walk on lunch time, I might even get one of their amazingly yummy salmon on Turkish-bread, and just stroll another minute down to the park, sit in the sun on the grass, and enjoy the serenity.

Of course, too much serenity is kinda boring, especially when your mind is racing with ontologies, event-models, dual-stored Tuples, or worrying if I need to consider using Bessel functions for subject equality in the Topic Maps Reference Model, it can get a bit busy in my head. Thankfully when the day is over I’ve got a way to kinda deal with all that, but during the day itself it’s sometimes hard to focus on just one thing and one thing alone. So I need to schedule even such things.

I do have a schedule, though. 9am – 10am is the time for all things not specifically work tasks related, such as emails, news, blogs, etc. At around 10.30am till about lunch I do the more practical things about my work, such as coding, writing, testing, dowloading and installing, meddling, fiddling, prototyping and breaking my machine. Then I have lunch, quite often with my wife who downstairs somewhere chasing Samuel around, trying to stop him from getting into stuff he shouldn’t. And then after lunch, at about 1pm, I fix my machine and do more thinking-related stuff, hold meetings (mostly through calling through Skype at around 2-2.30pm when India is getting into the office), write emails, and try to come up with plans, thoughts for the next day, and scheming in general.

I try to follow this pattern as much as I can. It’s a lonely job in many ways as I don’t have that office intermingling that I love. So, to keep myself sane I go places. I often go to the Kiama Library where I meet up with Tim, the crazy-fun-beardy local IT librarian. I sometimes meet up with a few guys I know around the place (not that many) and even got to meet up with Murray Woodman from Sydney the other day. As often as I can, at least once or twice a week.

And then, just like in over a week or so, I go to India (Bangalore mostly, but sometimes Mumbai) for 10-12 days to do an intense stint of socializing, hacking, planning, talking, planning, teaching, drinking excellent Chai tea, more planning, around the clock until I don’t know what day it is (which suits, given the jet-lag). Then back home for another 2-3 months of working from home again.

Jones' Beach, Kiama It works. It’s not perfect, but it sure beats living a crazy stressful life in a big city where you don’t have control over your surroundings. Here, if I’m stuck with something and need a break, I put on my slippers, open the door, and walk 4 minutes to the beach. All is well, and when I get back I know for sure that implementing the Bessel function in my Topic Maps Reference Model is an excercise for the modeler and the TMDM engine, not for the technical implementation itself. Problem refreshingly solved.

Oh, and do come and visit. I’ll buy the coffees.

Filed Under: Fstl, India, Kiama, Working From Home

30 June, 2009 by Alex

Sorry, moderation switched on

Sorry everybody, but I’ve been attacked by spammers of late, and have had to switch moderation on, at least for now, but I’m terribly liberal and will approve every single message that talks badly of my, uh, bum. When things calm down again I’ll turn it off I’m sure, but I seriously wish Blogger.com had a better comments system (or even a better way to kill spam from an infected site; the current way is just absolute rubbish and painful!). Or maybe this is another sign from below to switch to WordPress which I’ve got a half-finished Topic Maps plugin for and integrates against my shiny new xSiteable Framework 3.0. Hmm.

Filed Under: Uncategorized

24 June, 2009 by Alex

Linux sound-system sucks!

Yeah, so I’ve been running Linux / Ubuntu now for about 4 months, and it has been a pleasure almost the whole way. I’ve had to dabble in Windows from time to time, especially “supporting” our two other Windows machines in the house, but every time I meddle with them, I’m extremely happy to return to my Ubuntu Jaunty 9.04. For the most parts.

There is this one area which sucks, though, and I mentioned it in one of my previous reports that I couldn’t get the microphone to work. Here’s the low-down on this whole thing ;

Ubuntu comes out of the box with ALSA (Advanced Linux Sound Architecture) and PulseAudio (a client/server system for sound over networks, amongst other things), and the two connected together in GNOME (the default Window manager it uses) should in theory work. But the forums and intertubes are abundant with problems relating to sound setup, anything from sound not working at all, some aspects not working, cracking or garbled sounds, and so on. Because Linux is open-source and has the advantage of “so many options”, then the disadvantage of “so many options” also becomes quite clear.

When you write your software you write for either OSS (Open Sound System; try Googling for OSS and they’ll translate it into Open Source Software … AAARGH!) or ALSA, and both packages have wrappers for eachother, but it means that there’s a multitude of ways to reach that haven of good supported sound. We can throw ESound and Gstreamer and JACK into the mix for further confusion as well.

So, one perticular part of these options was that the Linux kernel guys decided to throw out OSS and put in ALSA instead, at around Kernel version 2.5.x or so. The reason was mostly that OSS v.2 was in wide use as the developers entered into a lengthy v.3 rewrite, the company that sponsored them changed the license (dual license, one branch for GPL [often lagging], another for a sellable version). Then they scrapped v.3 to start on the new and improved v.4, which was to be fully GPL’ed and all things sorted out. In theory, but in the mean-time the world moved on, and ALSA became the standard.

So, back to my story. My sound system was finally working, except for the fact that my microphones (plug and internal) didn’t work. I tried it all, including downloading and manually compiling and modding the Kernel with the latest version of ALSA drivers and libs, without any luck. (Well, I upgraded ALSA nicely, but alas no microphones). I tweaked manually the modprobe configuration files, upgraded and updated any Esound, Gstreamer or ALSA thing I could find, tweaked their links configs, reset them, autodetection and manual stuff, on and off, on and off. It drove me nuts!

So in the end I got the whiff of the OSS story. First it was simply dismissed because it was “the old system”, but as more and more reported success with the latest OSS v.4 where ALSA failed, I thought I’d give it a try. I removed anything ALSA and PulseAudio (and frankly, not that many people have a need for PulseAudio, even less be able to correctly set it up, so why make it default?), installed some dependencies for OSS, downloaded a .deb package (trickier than it sounds), restarted, installed, configured (setup GNOME with the OSS sinks), and …

Microphones work! They friggin’ actually work, and after only 4 months I can make Skype calls which I need for work. But, as sound in general works fine – and here’s the punchline! – now the left channel has crackling when the sound reaches a certain low / mid threshold (no, the mixer is set correctly; this is weirder in that it’s only in the left channel. It’s not overdrive, but some clicking-ish noise), and I can’t friggin’ get rid of it!

And yeah, you try searching the intertubes for Ubuntu 9.04, sound and OSS v.4 where “OSS” is treated as “Open Source Software” by Google. Bloody smart-arses.

Sure I love Linux, but I friggin’ hate the Linux sound system. And I hate Google a little bit, too, this time.

Filed Under: Alsa, Linux, Oss, Sound, Ubuntu 9.04

5 June, 2009 by Alex

My creative past

Moving to a different country away from old friends and family can make you somewhat nostalgic, so add to that when playing my music collection at random I bump into either something that has memories attached, or, as in this case, blows the memories meter. I can’t not want to share and talk about it.

Many years ago now I had a music studio down-town Oslo (near Børsen, top-floor where that great Indian restaurant is) which I shared with an old musical buddy of mine and a movie production company (more on that later, I suspect). There I laid down the foundations of much which was to become my music and musical style for years to follow. It was sitting in this loft office in the murky hours of the night I first met my wife online in one of the few chat sessions I ever did back in those days, chatting with Julie who was in the Australian bush near Bowral in the Southern Highlands. Instead of continuing my musical and movie carreer, I chose to go to Australia to meet the woman I fell in love with instead. And 10 years later I’m married to her, got three kids, a house and a Volvo S70 station-wagon and live in Australia. Things certainly took a different path.

But before my married life happened, there was a few years of back and forth and the pain of separation from both Julie and my first daughter, Grace. Two years in which a lot of my frustrations and lonely nights after long working days were filled with the remnants of my old music, and in this brew I concocted a whole slew of stuff. And some of that old music I stumbled upon by random last night, and I’ve got three tunes I’d like to share.

I popped them into my MySpace, and they are ;

Flying Through – an alien observing life on earth. Well, probably an alien. Could be anything or anyone observing us. This tune is somewhat in the style of Klaus Schulze, and features some well-planned syntheziser counterpoints, and probably most importantly my old friend Bjørn Rummelhoff-Hansen (my old band-mate from Sundrunk) on guitar. It’s dedicated to another friend of mine, Øystein Aarseth, who turned me on to old-school synth music. Oh, and if you followed that WikiPedia link, don’t take the bad stuff written there as absolute truth; there was more to Øystein that could fit into his act (our shared passions were classical and old-school synth music, protagonist philosophy and port-wine, stuff rather far from the public image he put on).

Sexy DJ – Back in the days when MP3.com was a place of good music and a fantastic community, singer/songwriter Nadine Renee started a cool competition where she release the vocal tracks from her song “Sexy DJ” to the hoards of the interwebs, saying “let’s see what you can make of it”, and my contribution won the Rythm’n’blues category (although I think this is rather far from rythm’n’blues). She has sadly passed away during complications of child-labour a few years back, so I note her for posterity that the whole competition was as fantastic as she was good-natured and kind. This tune happens to also feature my own dad on saxophone, Milos Ocasek.

Dunish – I’m a Dune-fanatic. If Frank Herbert was a woman, I’d have a crush on her for sure. This music is like a collage of musical themes and styles, and was for me an excercise in music production as I was working on film music at the time. If you loved the movie by David Lynch, you’d hopefully enjoy this one as well.

Update: added a song ;

Bekk – What e-business consultancy company with respect for itself doesn’t have a theme song? My old company in Norway, Bekk Consulting, is truly the most rockin’ gig in town. This is a tune I made in the wee hours of the night for no apparent reason, featuring my dad on sax, my good friend Hanne Svenningsen on “vocals”, and Bjørn Rummelhoff-Hansen again on guitar (what would I have done without you?).

Let me know what you think of my MySpace adventures of the past.

Filed Under: Baroque Music, Dune, Film, Music Production

3 June, 2009 by Alex

03.06.09

Wow, what cool sequence of numbers is that?

03.06.09

And that’s today’s date, a very special day indeed. Expect me to meddle and go slow and enjoy family and friends, and I’ll see you all on the other side tomorrow. (And given my wife’s fantastic treatment I’d better start planning something seriously cool for 09.09.09. Suggestions welcome!)

Filed Under: Uncategorized

2 June, 2009 by Alex

Successful crap

It never ceases to amaze me peeking into various successful open-source projects, seeing the innards, and wonder how they even got this crap code past their own pride. Yes, I need to vent.

This weekend I was head-down in various content-management systems and their ilk, digging into anything from WordPress to Habari to Joomla to Simple CMS (which you would expect be simple) eZ publishing. All of them had rather abysmal code scattered throughout (with eZ publishing being the better of the lot), oddities, and all the worts you’d expect of systems hobbled together, where their success is more an afterthought.

But hang on, I can’t criticise systems for their organic growth. But I can criticise them for not doing much about the trouble that comes from it. Sure, I understand that rewriting core parts of a system requires a huge ego and nerves of steel, and I understand how “if it ain’t brok, don’t touch it” rules the end of the day, but surely the end means is good software, right?

But.

It’s crap. It’s rubbish. And more importantly, as I can put up with crap if it gives me opportunities and love, it hinders innovation, flexibility and, well, love.

Let’s pick on a random contender that I worked heaps with last week, WordPress. If we cut away comments, this is its index.php ;

define(‘WP_USE_THEMES’, true);
require(‘./wp-blog-header.php’);

If we look into wp-blog-header.php, here’s what we get ;

if ( !isset($wp_did_header) ) {
$wp_did_header = true;
require_once( dirname(__FILE__) . ‘/wp-load.php’ );
wp();
require_once( ABSPATH . WPINC . ‘/template-loader.php’ );
}

Ok, so let’s peak into wp-load.php, and we find about 20 lines of code and more includes. Don’t you just love playing hide and seek with files to find out where it’s going and why? These things maybe have come around from shuffling the organic growth of the system into other files, and left them with these sad little snippets that’s hard to get an overview of and takes a slight performance toll, too, as well as eat away your sanity and good programming ethics. And they all contain that newbie error of putting this at the end of every business logic file ;

?>

It’s not needed, and if you like your whitespace under reasonable control, you’re stuffed. Not a big crime, mind you, but just one of those niggling little things. Then you’ve got functions and objects, some with the wp_ prefix, some without, business logic in files called wp_settings.php, repetition of code everywhere, hundreds of DEFINE’s scattered about in different files, and so on and so on. (And yeah, I should contribute as it is open-source and all that, and I’m actually writing a embedded Topic Maps engine as a plugin, so we’ll see)

But I’m not here to pick on WordPress per se. It’s more about how this organic growth hinders innovation and opportunities. So let’s talk about frameworks. All little pieces of code together form a framework, so we’re not necessarily talking about a framework of disjoint classes or functions that aid developers making stuff like the Zend Framework, or Cake, or Symfony, or CodeIgniter, or 1000 others out there. Well, kinda; all those little things the app is made from also constitutes a framework, but it isn’t disjoint nor refactored or synergetic or stable or well thought-out as you get in a more established framework, but never the less that’s what it is.

PHP itself is a framework, of course, and most PHP frameworks are wrappers and added code to make PHP act more like a coherent system, fixing inaccuracies and bugs and niggles, stabilizing behaviour and increasing the need for spending hours and hours learning some new paradigm you can’t use elsewhere.

Hmm. Where was I? Oh, right; every app is a framework. But when the framework isn’t a perticulary good one, where the pieces are either too fragmented or too disjoined to make any sense, making stuff in that framework is going to be a pain. Like WordPress is a pain. And before you know it we get to the next rewrite, and this time we’ll get it right, although we need to keep our legacy intact, and hence we write hacks on top of fresh code to drag it back to the hole it came from. The data model needs to rewritten, but it won’t because “well, it works, doesn’t it?” and the framework needs to be rewritten, but it won’t because “well, it’s not broken!”

When I can’t replace MySQL with something else, that’s a hindrance. If I can’t change the way tagging works, I can’t move forward. If I can’t change the URI handling, I’m stuffed. If I can’t use portions of it to write something else, nothing new will come. Sure, there might be a plugin architecture somewhere, perhaps a simple event model that one can tap into, but if I can’t replace the model in which it operates I can’t make it more beautiful. I am forced to accept the model and framework in which WordPress sits.

And it sits quite squarely on top of everything I want to do. I want to create better and typed links, I want to reuse a model for sequences and storage, I want to replace tags with guided controlled vocabularies (maybe even typed and binary linked to external WordNet sites), I want to use it as a CMS and skip the URI handling alltogether, and so on. But I can’t, because WordPress wasn’t designed with change and innovation in mind.

But a day will come when even the most successful project will face its own innards. And some people will branch it, some will stay on, some will create something new, and some will stop using it alltogether. And it’s all a really good thing; this is organic growth, it’s a framework that spawns other frameworks. And more crap will be successful. Things will be broken and ugly and hackish, just like some things hopefully won’t.

And in a few iterations, something beautiful – with a probably different name – will emerge.

Update: It would be great to get your suggestions for open-source projects which are designed for change and has quality and / or elegant code to boot. Let’s make a list!

Filed Under: Elegant Code, Open Source, Php, Programming

25 May, 2009 by Alex

How to stop thinking in code

A while back user TStamper on StackOverflow wrote a question which I’ve struggled with in the past ;

How do you clear your mind after 8-10 hours per day of coding?

Have you struggled with this, perhaps as a young developer? How did you overcome it? Can anyone offer general advice on winding down after a long programming session?

Now, unless you already know, StackOverflow is a brilliant place for developers to ask and answer questions about programming and related stuff (Joel from Joel on Software was one of the startup guys, a brilliant guy I’ve had the pleasure to meet at some geeky event in Oslo a few years back). Even the question above was on the edge of that criteria, so that’s how hardcore the programming focus is. However, I did write an answer based on years of experience with a brain that never seem to shut down which I’d like to share, because only yesterday I was once again asked this very question, so I need to share ;

I use the last 5 minutes of my day to write myself a debrief note for the next day. This will do three important things;

  1. It takes your mind off the complexities as the debriefing will be a short form of all the things you’ve worried about, and helps clear the mind of all the what-if things.

  2. If your mind have a long down-settling time, the debrief note is the perfect place to use for a central of “things I forgot about” or should note somewhere. The debrief note becomes a knowledge central for whatever you did that day.

  3. It focuses your mind on the real issues. One thing is to clear the mind, another is to let it keep going, but more focused. So even if your conscious mind is letting go, it’s probably a good idea to let your unconscious mind keep churning at the problems, and a good way to help your mind do this is to be slightly futuristic in your notes (thoughts on direction, for example).

Read the rest and fuller response at StackOverflow.

Filed Under: Uncategorized

  • « Previous Page
  • 1
  • 2
  • 3
  • 4
  • 5
  • …
  • 13
  • Next Page »

Recent Posts

  • Another bob
  • Another tidbits
  • Philosophical and religious matters
  • Do libraries understand the future? Or how to get there?
  • Before I write what I write before the next time I write

Archives

  • April 2010
  • March 2010
  • February 2010
  • December 2009
  • October 2009
  • September 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • January 2009
  • November 2008
  • October 2008
  • September 2008
  • August 2008
  • July 2008
  • June 2008
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • September 2007
  • August 2007
  • June 2007
  • May 2007
  • April 2007
  • March 2007
  • February 2007
  • January 2007
  • December 2006
  • November 2006
  • October 2006
  • September 2006
  • August 2006
  • July 2006
  • June 2006
  • May 2006
  • March 2006
  • October 2000

Categories

  • Alsa
  • Application Design
  • Australia
  • Baroque Music
  • Biology
  • Blogging
  • Book Review
  • Business
  • Canberra
  • Chemistry
  • Coaching
  • Communication
  • Conceptual Models
  • Conference
  • Context
  • Cooperation
  • Cosmology
  • Creationism
  • Crows
  • Cute
  • Data Modelling
  • Data Models
  • Debt
  • Dune
  • Ead
  • Ecology
  • Elegant Code
  • Emnekart
  • Environmentalism
  • Everything
  • Evolution
  • Family
  • Film
  • Food
  • Frameworks
  • Fstl
  • Future
  • General
  • General Life
  • Globalism
  • Grace
  • Happiness
  • Harmonica
  • Holidays
  • Humanity
  • Ia
  • India
  • Indiana Jones
  • Intelligence
  • Java
  • Jobs
  • Juggling
  • Kiama
  • Kids
  • Knowledge Representation
  • Kuala Lumpur
  • Language
  • Laptop
  • Leipzig
  • Library
  • Life
  • Life Lessons
  • Linux
  • Localivore
  • Lucas
  • Marcxml
  • Misc
  • Monteverdi
  • Mood
  • Movies
  • Music
  • Music Production
  • Norway
  • Ontology
  • Ooxml
  • Open Source
  • Oslo
  • Oslo Domkor
  • Oss
  • Philosophy
  • Php
  • Planning
  • Programming
  • Programming Languages
  • Proud
  • Rdbms
  • Real Estate
  • Rental
  • Rest
  • Richard Dawkins
  • Salut Baroque
  • Sam
  • School Closures
  • Semantic Web
  • Semantics
  • Soa
  • Soa Roa Woa Rest Soap Ws Architecture
  • Sound
  • Spielberg
  • Status
  • Stupidity
  • Systems Thinking
  • Talk
  • Technology
  • Terje Kvam
  • Test Driven Development
  • Tidbits
  • Tmra
  • Tmra 2008
  • Topic Maps
  • Ubuntu
  • Ubuntu 9.04
  • Ucd
  • Uncategorized
  • Universe
  • Ux
  • Vista
  • Wollongong
  • Work
  • Working From Home
  • Xml
Copyright © 2019 Shelter.nu