27 August 2007

Misc.

Just a few points of late ;
  • Thanks for the comments and mails about my mental resignation of the library world. I actually didn't think you cared, because, seriously, I never even went to library school, so who am I?
  • I've started work on a new testing tool that intuitively blends into web applications, and integrates against a slew of issue trackers. Got support for JIRA right now, a few more baking in devel. Will write more later, and I'll simply GPL3 the whole thing. (Anybody need an agile development and testing freak? :)
  • I've sadly killed off my last Topic Maps framework ; I've been using FreeBase (beta) lately, and it does indeed everything I wanted to do, only better. And, I really don't have the time anymore for all these non-profit-but-fun projects, which I'll miss greatly.
I think that's it, at least for a small roundup. There's some big changes afoot in my life, and I'll try to document them as things move along. Right now, though, I'm trying to figure out the next paycheck. (And did I mention that most recruiting companies are brain-dead? How can these guys stay in business? I suspect a rant on this issue coming up very soon.)

22 August 2007

Resignation

Dear library world. After several years tinkering in the library world one thing has become terribly clear to me; I shouldn't be in it. It's taken a while to see it, because, frankly, I never wanted to see the truth, believing so strongly that I was doing the right thing, helping the good cause, and being in love with good ol' library values. But it's there, glaring me in the face ; I don't belong here.

Premise : The library world is a) dying, and b) not flexible enough to survive.

Most people in the library world will strongly disagree with a) and normally disagree with b), and of course that would be the case ; most people there live in something that's obviously not dead yet, and the lot of them have survived for many years. Heck, the library profession and philosophy have survived plenty of paradigm shifts in society, have undergone many transformations to adopt, and still are being talked about and used by many. "Alex, you're just simply wrong."

"Libraries don't do politics"

First, let's look at what the library world is currently doing about Digital Rights Management. Right. Not a lot, apart from lots of talking about what we should do about it. In fact, it's one of those areas which is shady at best ; we don't know where we stand, don't know how vocal we should be, leaving the copyright owners to dictate the direction of this beast. Why is DRM even mentioned here, and as the first point? I'll get back to that one. To see why, let's move on.

Second, to whom does the "keeper of knowledge" fall to? Traditionally, the educational institutions and their respective libraries. But as the digital age allows anyone to be their own library, with commercial success as part of that dogma, the traditional keepers of knowledge are losing foothold to others who are better resourced, have more money and think more progressively about users needs. As Amazon and Google Books alone give libraries a kick in the shin and LibraryThing gives them a serious groin punch, are we to expect these and other organizations to do any worse in the future? Hardly. And what are we doing about it? We're currently throwing Lucene (or similar) at the problem and hope that will fix it. Laughable.

Third, what is a book these days? I know, I know, it's those paper things that we've got stacks of (pun intended), and as much as traditionally these things have carried great weight (and not just as paperweight) and possibly meant more to human development through time than almost anything else, I can't help feeling that as keepers of knowledge they are failing. Let's talk about knowledge ; it's what we know, right? Not what we knew, nor that which we will know. It's what we know right now. Sure, knowing what we knew is also important, but not as important as what we know. This is the actual fallacy of stacks and their contents ; they are finite, stuck in time, their context diluted and judged less important as time go by. Metadata that stays stuck in time and diluted is no better than the item that is stuck in time and diluted. So what are we doing about it? Aha, thought so; not a lot, no scrutinizing the metadata, no semantic time analysis, no semantic modeling, no user-centered extensions, no structural relationships, no organized effort in bringing the schemas together. If the library world would like to make sure that context stays high then that itself would save them, but they're not.

Fourth, how fast are we? Hehehe, not only are most libraries public and hence part of the public service regatta, the time-to-become-a-librarian is long, their focus of high-end technologies is low, most library structures are not very competitive (this has advantages too, mind you, but not in the speed-department), often founded on traditional governance and management models, and traditionally not into development of technology (so low skills, low drive and low self-esteem in that area ; not saying those skills aren't already there, but they're not plentiful, not well-supported, and usually a lone ranger type per library).

Whining, are we?

Just a tad, but not because I haven't been able to make a difference or because I'm not being listened to. In a lot of ways I've contributed quite a bit, just like other geeky library friends around the globe have created a tiny white powdery icing-layer on a really big fat chocolate mud cake. Although you know what the kids want.

I'm a bit sad, though. Sad that I've not been clear enough about what I think we need do, and I've failed to stake out a clear direction to go in. I'm sad that I haven't found the time to do those things necessary to convince people through example, being bogged down in routine and maintenance. I'm also sad that my opinions are too strong and hence dismissed by many just because of that passion; maybe I should be less vocal, less passionate? And lastly I'm sad that I'm willing to give up on something that I truly love.

Here's why I'm giving up, though; I'm tired, so tired, of fighting for the survival of something that possibly don't have the fitness to live. The Thylacine (or, Tasmanian Tiger) was a beautiful animal, respected and feared, until about 1930 when it was pronounced extinct. It's not that the Thylacine didn't deserve to survive, but its time had come. And that's sad as well. I can say that its time had come and that I'm sad about it at the same time, but it wasn't fit enough (in an evolutionary sense) to survive. And maybe the library is a Thylacine.

Every time I see a glimmer of hope or a flash of something exciting going on in the library world, it usually fast fades into a charades of politics and committee-shuffle. I'm too impatient for this, and I seriously think the world is, too ; it will race past us as we decide on who's going to chair what committee, who'll take notes, and how we're reporting progress to what group. Also since these glimmers of hope usually is attached to specific people more than institutions or organizations, whenever that person goes or moves, so does the glimmer. Again, because we're not traditionally in the business of technical development, we're so fragile. I'm fragile. I feel I've shattered a few times too many.

And seriously, the library see no gain by being rad. Sure, we will do what we need to do to support what we do, but we won't do more. And by not doing more, you're not doing what needs to be done.

And hence, I've decided to move on. There's no need for me to explain that all the things I see wrong with the library world don't suit me, and hey, I'm not ruling out that the library world is just fine and dandy and will get by just great. But we're not compatible, that's all. It's a bit like an old couple that after many years of staying together because that's what you do, they get to a point of realization that splitting up just seems a good thing to do, and both knows everything will be just fine.

I have no idea what to do next, though. All I know is that I'm starving.

Update : Just a note that this isn't a formal resignation as much as a personal one. I haven't formally quit. Yet.

Update 2 : Here's a follow-up on this post.

8 August 2007

UX, IA, UCD : Huh?

For as long as I can remember I've been immersed in the User Experience (UX), Information Architecture (IA) and User-centered Design (UCD) genres, long before I knew what they were called and what they embraced. To me, it was just doing what I always do, naturally, instinctively. The last few years I've joined the professional circles of these genres to sort of get up to speed, see what I've missed, help out where I can, and of course, promote myself and the genre in question in all professional things that I do.

But the more I learn about everything and all, the more I'm coming back to the beginning, back to where it all starts ; mental models of a problem space. Being a very creative person, one of those who love to fix things, love to sort problems out, mental models of problem spaces isn't something I have to do ; it's something that's always there. I don't have to visually try to understand problems ; they're there as a default, so I jump straight into solving whatever problem there is.

Well, big mistake ; that's not how the world works. No, the world wants to know that you indeed have got the problem space sorted out before you do anything, and you have to prove this through a small ton of documentation, convincing and bickering. The reason for this is that worlds modus operandi is the waterfall method, or in agile circles, we talk about chaining ; one thing needs to happen after another thing, and due to people's time schedules these things always have various degrees of gaps between when one task end and another start. They also need to start after someone has read a document they understand and agree with. Hmm.

To me, it's always been about fixing something small, check that it's okay, and continue until the problem is fixed to the point of some satisfaction or success. This is agile methodology in a nutshell ; never embark on blind-date thinking you know exactly what she looks like, how the evening will go, and how lucky you'll get. You need to take each step at a time, evaluate, make small plans to what to do next, and reiterate until some satisfaction or success.

The UX / IA / UCD disciplines to me always looked like agile development with a user-interface focus to me. It was never meant to be a big bang, big documentation, big plan type of thing. If nothing else, usability testing always tell us that big bang is big waste of time and resources. Yet, the more I walk in these circles the more documentation, meetings and justification I see. What's up with that? Is it that the initial small group of people have been flooded with a large group of not-so-smart people? Or are we succumbing to the business-need for paper stability? Or is it a lack of trust? Should we - indeed - sell better trust in order to do a better job?

Anyway, I'm slowly backing out of this whole debacle ; I'm so very, very tired of fighting the good cause. Being good in any of these things require the person to have great knowledge across many fields, and an instinctive feel for design, and I simply can't write a novel every time I come to some conclusion about some arbitrary nugget of wisdom. Consultants and contractors must struggle with this all the time ; justifying their wisdom based on their knowledge rooted in experience and education. Surely there's a better way. Perhaps, better customers?

30 June 2007

Hello World!

Falling into dad's hands at 6:45pm (18:45) on Friday the 29th of June, 2007, little Samuel Alexander Johannesen decided to see what the fuzz was all about. It couldn't have been much, because he's slept through most of it. Some choice moments ;







16 May 2007

Religion, politics, science and all that

Something that's incredibly close to my heart is disussions around where religion and science clash. There's tons to be said about this topic, and I'm both mentally and physically preparing myself to write large chunks on it in the not-so-distant future. I'd like to point whoever reads this to my starting point (which I have taken a long path to come to) which is a really good "chat" between british Bishop Harries and Richard Dawkins (Oxford University professor, and most famous atheist), both highlighting excelent points on both sides of the "debate." Of course, we're here witnessing two highly intelligent people, two who are very used to public discourse, and who are, in many ways, friends and share mutual respect for eachother. And needless to say, this is how these issues should be discussed;


30 April 2007

Topic Maps for PHP5

From time to time people write me about what I wrote some time ago about Topic Maps and PHP5. Most of them ask for the ZIP file that I linked to. Unfortunately that ZIP file has been lost due to various hard-disk crashes (both my own, and my ISP [!!]) so most of the time I give some small advice and tell them the files have been lost.

Just last week I had two more such requests, and decided to do something about it; I'm doing it again, this time a bit more formal and a bit better informed. Basically, I'm starting up again a Topic Maps for PHP5 project, and this post will work as a first design draft. Some of it is based on code I've already done, and the rest I will have to take in stride over the next little while as I'm in a deadline zone right now;

Toic Maps

There's a few things to say about Topic Maps in itself. The first is a choice between using the Topic Maps DataModel (TMDM) vs. the Topic Maps Reference Model (TMRM). Actually, it's an easy choice; I've made the switch to the TMRM some time ago, and haven't looked back since. The TMRM is an abstract layer above the TMDM, and in fact you can define the TMDM in it, so it's a good candidate for doing serious work, albeit it's not as widely supported as the TMDM. In this case, it shouldn't matter too much as I'll be using it to define a version of the TMDM to stay compatible with XTM (1.0 and 2.0).

Features and requirements

The framework / toolkit will do the following ;
  • Out-of-the-box visualisation and browsing of Topic Maps
  • Provide a simple API for working with Topic Maps (but not TMAPI)
  • input and output XTM 1.0 and 2.0, input LTM and input CSXTM
It will require PHP5 with XSLT enabled. It may be PHP4 compatible, but I doubt it as I want to use the better OO structures and support from 5.x, but I'm sure that could be a fun project for someone. I also may use the Zend::Cache classes from the Zend Framework if they prove to be good, but I have some caching classes I've developed recently that does some funky stuff that I may want instead, so we'll see.

Design

A bit of controversy about this one, perhaps, but the internal representation of the Topic Maps data / reference model will be done in XML. Yup, you heard that right, but there's a few reasons that I'm going down this path;
  • Cross-technology; most technology platforms have support for XML, with API's or tools to work with them.
  • XML technologies are mature and getting very fast indeed; I don't want to impose too much OO mockery if I can avoid it for such a simple tool.
  • I love XSLT and XPath; no way around this one, and XPath is a fantastic way to handle a lot of complex XML querying, given that the XML is well-written for the task (this is why we're not using XTM but something else internally)
The framework work as follows; Take the input Topic Maps format, and convert it to our internal TMRM XML format, caching the result and process. We need converters for XTM 1.0 and 2.0, LTM (1.3, I think?) and CSXTM 1.0. As all of these formats are well travelled in the TMDM world, this shouldn't be too hard, and the internal XML format will reflect this.

Where am I up to?

The caching and converting of XTM 1.0 is complete, and the internal XML format nearly complete, with queries being about 7 times faster than they would be if working with XTM directly. That's a pretty good start. The caching layer is such that you can use file cahcing, database caching, or somewhere inbetween (for example, choosing ADO or Zend::Db), giving you heaps of options for scalability and performance.

Using the normal test Topic Map, the Opera map by Steve Pepper, somewhat complex queries and handling is done in the 0.3 ms region, which is good enough for a version 1.0 of the framework.

I'm currently tweaking the input and output buffering and converters, creating more efficent internals for the XML handling, and writing up some documentation as well.

Where do I want to go?

  • Support for "enterprise size" topic mapping, meaning maps between 5 and 50 Mb in XTM 1.0 size.
  • Concurrent editing of the maps.
  • Astoundingly easy user-interface.
  • An XSLT framework to support those user-interfaces (I've actually done this bit already as part of a different project, but I need some time to document and clean it up :)
  • An internet community to use and help out (which is also why I chose an XML internal engine wrapped up in PHP for simplicity).
That's it. I'll let you know how it goes, and contact me in regards to anything at all.

28 March 2007

Quiet, oh so quiet ...

For those who wonder why I've been so quiet of late should go read this Lorcan Dempsey bit. Now you also know why I might be a bit quiet for a little while as well, as there's big deadlines and interesting stuff coming up. Watch this space.

9 March 2007

New article : Electronic resources

I've written an article about electronic resources, and I've published it to my "articles" blog (which will look prettier and the same as the blog Any Time Soon(TM) ); "Electronic Resource by any other name", an article deemed unworthy of paper publication.