Categories
Blogs Computere og Internet Hackers Historier/Stories Kim Blog (English) Open Source Technology

DrupalCamp Copenhagen 2008: Guess what, I’m the hero – Introducing Droopy your new microblogging service

The Danish Drupal community, Drupal Danmark, organised a miniconference, DrupalCamp Copenhagen, in the weekend of the 15th and 16th of November 2008 at La Oficina, a new – FANTASTIC – co-working space in Copenhagen

Show your <3 for Drupal

People that know me, also knows that I’m a big fan of the Content Management System (CMS) Drupal, and I constantly push it.

One of the main reasons I LOVE Drupal is that it, besides the pure open source license <3, also tries hard to support standards, rather than doing “clever” things in core. This is in strong contrast to other tools, that attempt to make it easy for the user, but then locks you in.

Personally I love HTML and the constant cry for a rich editor in core is lost on me, but then again, I’m writing this using the off-line client ecto 😉

A restless 2008, but where’s the inspiration
2008 has been an amazing year for me, and I’ve attended several events that should have made me so inspired that I’d blog up a storm, but somehow this failed to happen, and I was reluctant to sign up for DrupalCamp Copenhagen, because I was also involved in the organisation of BarCamp Copenhagen the following weekend – I was afraid to overcommit myself, resulting in me burning out.

It turned out that I was “pushed” – nah let’s say inspired – to sign-up by a guy I’ve never met in person, but knew well from the Danish Mac community.

“Unfortunately” I got so inspired that I even had the audacity to suggest that I should host a session at DrupalCamp Copenhagen – oh no what a fine mess I got myself into, this happens every time I get inspired, like I said, I tend to overcommit myself.

Then all was quiet for a while, like forever, and DrupalCamp Copenhagen was only four days away, when a preliminary schedule was sent out to the participants, which, by the way, was now exceeding the capacity of the venue, pretty Fanø amazing!

Hmm, my session wasn’t on the schedule, ok, I guess I don’t have to prepare anything then 🙂

So you want to be a Drupal Star, well the stage is yours!
On Wednesday night the final schedule was sent out, and lo-and-behold, my session was actually featured, “Using Drupal as a Web Application Framework“, hmm I’ll be addressing a bunch of hardcore Drupal professionals, and they have payed a fee, albeit a nominal one, to attend, but still this is the first time ever that I was to address a paying audience, pretty daunting when you think about it.

So I started thinking hard about the theme of the session.

When I sugested the session, I had promised that the session would be much more of a participatory session, than a presentation, and that I was hosting it to learn from the failures I had trying use Drupal as a framework for web-applications.

In my mind a different idea began to take hold, one that focused on the things that I learned, and was succesful in achieving instead of focusing on the failure of my projects.

I decided that I’d start by asking the question: “What is a web-application?”, and inspired by one of my “failed” projects, I decided that I’d do a walk-through of how you could build a Twitter like site without any, or close to no, coding on your part.

Twitter is the perfect candidate for demoing a web-application implemented using Drupal, since it’s all about content and simplicity. Strangely enough my choice of Twitter as a model for a sample aligned itself perfectly with the Miki’s session, Modules 101, on Sunday, even though he took a different approach than I did, and actually did a fair amount of coding.

One could have the idea that we had co-ordinated this, we hadn’t, so I’ll just rack it up to coincidence, and the fact that Twitter is the second most hyped thing on the Internet these days.

Guess what, I’m the hero
Drupal Droopy DogI won’t go into serious details about my session, but it saw me show praise for open source and Drupal, do a hands-on step through of how to build a Twitter clone, called Droopy, and demo my first Mac OS X Cocoa application EVER!

Droopy is a fictonal web-application, the name was inspired by the Tex Avery cartoon, but it also sounds like Drupal.

Droopy allows you to post microblog content using a simplified form. Microblog content, or “Droops”. A “Droop” is a standard Drupal content-type, that you can submit to the site by using a custom form. Implementing the form took some 10 lines of code to implement as a module.

At your service
The real star of the show was, however, the wonderful Drupal services module. If you install the services module you can access Drupal using a varity of web-service standards, but as default it support XML-RPC, so that’s what I focused on.

The services module implements a number of methods that you can use, I focused on the node and the user services.

The node service implements methods for retrieving, deleting and updating nodes, the user service implements methods for login and logout.

One of the nicest features of the services module, is that it has a nice UI for browsing and testing the exposed services.

A KISS from Droopy
You can, of course post content using /node/add/droop, but like I said I’d like to do that a little smarter/simpler, so for that purpose I developed a small module that utilises the Form API to implement a simplified data entry-form to post the content-type a “droop”.

This was quite simple to do, the only problem I had was that I wanted to tag my content (flat taxonomy), and in order to do that, you can’t simpy use the standard mechanism to save a node, this is how I implemented a method to create a node programatically including creation of tags, the vid that is hardcoded to 2 might be problematic, but the thing to focus on is the line:

$node->taxonomy['tags'] = array($vid => $tags);
/**
 * Create a droop node programatically.
 * @param $param 
 * Either a droop - enabled node type or a $node object with at least valid $node->type.
 * @param $title 
 * The body of the droop post.
 */
function droop_create_node($param, $title, $tags) {
  if (is_object($param)) {
    $node = $param;
  }
  else {
    $node = new stdClass();
    $node->type = $param;
  }
  $node->title = $title;
  $node->body = $title;
  $node_options = variable_get('node_options_'. $node->type, array('status', 'promote'));
  // If this is a new node, fill in the default values.
  foreach (array('status', 'promote', 'sticky') as $key) {
    $node->$key = in_array($key, $node_options);
  }
  // Get the content-type settings as default
  node_object_prepare($node);
  global $user;
  $node->uid = $user->uid;
  $vid = 2;
  $node->taxonomy['tags'] = array($vid => $tags);
  
  node_save($node);
  return $node;
}

In order to have the custom form show up, I decided to do a theme hack, this could probably be done much cleaner, but it’s really simple to have a form show up on a page.

print(drupal_get_form('droop_simplified_form', $currentGroup));

Below is a screenshot of a simple theme that shows the simplified form:

Droopy and Droop form screenshot

Fat client
I already had a functional XML-RPC client written in PHP, but I wanted to do something a little smarter.

Fundamentally I believe that the web is extremely ill suited to host applications, what you can do with a full client that has direct access to the rich presentation services that the operating system exposes, is just so much easier to develop, than trying to support x-number of browsers. I’m a huge fan of applications like iTunes, since they combine webcontent with a fat client, I think that’s going to comeback in a big way, powered by the mobile platforms, that, due to limited resources, forces us back to writing applications that tagets specific platforms.

In my daily job I work with Microsoft .NET on a standard Lenovo pc, but when I’m at home, I swear by my beloved PowerBook G4 12″, and that doesn’t run Windows and Visual Studio, so how could I develop a fat client to use to demo how to shout “DOWN BOY!” to Droopy, I had never ever had any success developing for Mac OS X? OTHO, that was a challenge, and I love those, even though this was now late Friday morning, and my presentation was less than 48 hours away!

Schizoid development platform from the last century
Development for Mac OS X is strange, Apple does bundle the development tools you need to target Mac OS X with Leopard, but that’s basically where the help stops.

So I knew that I need to enlist the help of Google, and I already knew what I was looking for, so how difficult could it be, well it turned out that it was.

For one, development for Mac OS X is not very widespread, but I did manage to find a number of samples, one of them implemented what is know as a framework, which basically extends Mac OS X with additional features, but hey, I just wanted to call a service using some simple XML that I wanted to post using HTTP, did that really require a framework?

Another strange fact, was that the samples I found were really old, but I found out that Mac OS X actually contains some nice high-level APIs that you can use to call web-services, they’re all prefixed with WS, for instance WSMethodInvocationCreate, WSMethodInvocationSetParameters and WSMethodInvocationInvoke, the strangest thing about these interfaces was that I saw several warnings against using these functions, strange.

Drupal XMLRPC Cocoa ClientOh well I manged to find a suitable sample here: Ranchero Software: Cocoa XML-RPC Demo, and I managed to change it so that I could call the node.load method exposed by the node service, but this was when trouble arose.

The node.load service allows you to supply a list of node-fields that you want to to have returned, if you supply an empty list, you’ll get all the fields. I tried several things, to no avail, my service kept returning node not found errors, this was a problem that I never manged to fix.

The problem has something to do with the way Apple’s API serialises it’s parameters, Drupal is expecting a list, that will get de-serialised into a PHP array, I couldn’t get that to work.

I then decided that I’d try to interface with the user service instead, and that faired better, and I manged to login to Drupal from my client, heavenly bliss :-).

OK, next step would be to add an additional button to my client, called “Login”, and have two buttons in my application, this was when I hit rock-bottom, I just couldn’t figure out how to hook up an InterfaceBuilder push-button with an Objective-C eventhandler.

This is something that is super-simple to do with almost any other development tools, why oh why has Apple decided to stay in the 80ies, I want a double-click in the designer to generate a stub and open my event-handler code in the editor.

Oh well, my application works, but I think that I’ll follow the advice, and stop using the WS* APIs, and start interfacing directly with the HTTP POST API, and serialise/deserialise the XML myself, another benefit of this approach, is that it’ll also works on the iPhone 😉

Below is the code required to do a login to Drupal using XML-RPC from Mac OS X.

- (IBAction) doUserLoginLogin: (id) sender {
	
	/*
	Called when the Login button is clicked.
	*/
	
	int ixState = [numberField intValue];
	NSNumber *stateNum = [NSNumber numberWithInt: ixState];
	WSMethodInvocationRef rpcCall;
	NSURL *rpcURL = [NSURL URLWithString: @"http://localhost:8888/droopy/?q=services/xmlrpc"];
	NSString *methodName = @"user.login";
	NSDictionary *result;
	NSMutableDictionary   *params;
	
	params     = [[[NSMutableDictionary alloc] init] retain];

	[params setObject:@"user" forKey:@"username"];
	[params setObject:@"password"            forKey:@"password"];
	
	/*First create a method invocation.*/
	
	/*First parameter is the URL to the XML-RPC web service.
	Second parameter is the name of the XML-RPC method to call.
	Third parameter is a constant specifying XML-RPC protocol.*/
	
	rpcCall = WSMethodInvocationCreate ((CFURLRef) rpcURL, (CFStringRef) methodName, kWSXMLRPCProtocol);

	/*Then set the parameters. (There's just one in this case.)*/
	
	/*First parameter is the invocation created above.
	Second parameter is a dictionary containing the parameters.
	Third parameter may be an array specifying parameter order.
	(Since there's just one parameter, NULL is passed for parameter order.)*/
	
	WSMethodInvocationSetParameters (rpcCall, (CFDictionaryRef) params, NULL);
	
	/*Do the actual XML-RPC call and get the result.*/
	
	result = (NSDictionary *) (WSMethodInvocationInvoke (rpcCall));
	
	/*Display the result.*/
	
	if (WSMethodResultIsFault ((CFDictionaryRef) result)) /*error?*/
		[resultField setStringValue: [result objectForKey: (NSString *) kWSFaultString]];
		
	else /*no error; all's well*/
		[resultField setStringValue: [result objectForKey: (NSString *) kWSMethodInvocationResult]];		
	} /*doLogin*/

Lessons learned

  • It’s easy to develop a web application with little, or no, coding using Drupal.
  • I’ve actually learned a LOT from my failures
  • Work with the framework, not against it
  • I can haz OS X apps
  • Oh and: Don’t hack core 😉

Thank you to the organisers
DrupalCamp Copenhagen 2008 was a tremendous success, 100 people, including visitors from as far away as Canada, a venue filled with energy, amazing sessions, especially the sessions hosted by Miki and Acquia filled with practical advice, but it’s also amazing that the Danish newspapers showed up, ready to share their experiences on how to performance optimise Drupal, I guess that print media is finally getting the Internet and the concept of open and free, and it fills me with optimism!

I’m now ready to face the world with renewed faith in Drupal and my own abilities to put it to use, gentlemen start your Drupal engines!

One more thing
Come to think about it I should have named my Twitter clone, Sylvester, OTOH Sylvester never manages to catch “Tweety Bird” does he 🙂

External links

Droopy is a trademark of and copyright MGM, Sylvester and Tweety are trademarks of and copyright Warner Brothers. I claim fair use

Categories
Blogs Bookmarks Computere og Internet Education/Undervisning Frivillig arbejde Hackers Historier/Stories Kim Blog (English) Open Source Resources Technology

BarCamp Copenhagen 8.2: BarCamp Copenhagen Intelligence Agency – Part I

BarCamp Copenhagen 8.2 - one of my bagsBarCamp Copenhagen 8.2 on the 22nd of November 2008 is over, THANK YOU SO MUCH for being such a great crowd.

I’d like to extend a special thank you to the sponsors (Signal Digital, Københavns Erhvervs Akademi, Nabz.dk, basementcopenhagen and Toothless Tiger), Ras Bolding and our fabulous team Henriette Weber, Thomas Kristensen, Anders Bendix, Troels Wittrup, Benjamin Wendelboe, Laura Kiralfy and Mark Wubben – you ALL rock, and you KNOW it!

BTW! We’re trying to build a community site at barcamp.dk, so check back often for updates

Pre-camp game
I’m a 3 time veteran of BarCamp Copenhagen, and this time I had multiple roles, primary Henriette challenged me to host a pre-camp game, and this article is focusing on how that unfolded.

My roles were these:

  • Co-organiser
  • Co-host
  • Host of pre-camp warm-up – hmm, it was freezing wasn’t it – event
  • Co-sponsor through Nabz.dk – reseller of the Nabaztag
  • Speaker (accept my sincere apologies for that disaster of a session, but I did learn some important Xcode/Interface Builder tricks)
  • Webmaster at barcamp.dk

Phew! I think that’s about it, no wait, I also found time to be a participant!

“Un-conference”
For those of you not familiar with the concept, BarCamp Copenhagen is part of the world-wide phenomenon BarCamp, and can best be described as a conference with a twist, a so-called un-conference.

I’ll try to illustrate the differences between a conference and BarCamp below.

Conference

  • The list of speakers usually is announced and scheduled
  • Active participation is neither required nor the norm
  • Speakers are invited and often payed
  • Attendees usually pay a fee

BarCamp (un-conference)

  • The list of speakers and the schedule is made up just before the camp starts
  • The audience is expected to participate actively
  • Speakers are volunteering, and access is only limited by the number of presentation slots

Technological treasure hunt, huh?
My major contribution to BarCamp Copenhagen 8.2 was being organiser of the pre-camp warm up.

As mentioned, the task of organising a pre-camp warm-up was given to me by Henriette Weber, she had envisioned a “technological treasure hunt”, and I immediately jumped at the chance, but what to do?

Technology and treasure hunt, we’ll that should be something with GPS, isn’t that something you can assume that people have these days?

After looking into what existed in the market, and even considering if we should try to build our own, I was sort of stuck for at while.

I suspect that Henriette was getting a bit worried, so she sent Mark Wubben to the rescue, and that was great! Mark is probably the coolest guy I’ve ever met, and it’s hard to believe that he’s only 22. Mark is destined for greatness, and I’m humbled by his presence!

I quickly started down an avenue of sending the participants out to research the history of the neighbourhood where the event was to take place, but Mark, in diplomatic terms, told me that that sounded too boring, I instantly agreed, it did sound like a school project didn’t it? I guess my short career as a school teacher had a bad influence on my creativity ;-).

Brainstorm
On October 28th I met with Mark, and he made a couple of important points.

  • The game must not be boring
  • The game should be “hackable”
  • The game should be directed using SMS by the game master

We had a great brainstorming session, and immediately we were turning in the direction of spies, conspiricies etc. Mostly because I instantly made the connection to November 22nd and the mother of all conspiracy theories, since November 22nd is the day of the JFK assassination.

So what we came up with was the concept of a spy-game where you were supposed to find an assassin, take a picture and return with it to the headquarter.

The assassin would be meeting with a contact at an undisclosed location, I thought of Nørrebroparken because it has a “grassy knoll” ;-).

The participitants would be divided into teams, and then sent around in the area looking for codes that, when found, should be relayed to HQ, resulting in another hint about the whereabouts of the assassin.

Planning
On the 8th of November Mark Wubben and I met to investigate the area, and we found several places that would be suitable for waypoints, we decided that Nørrebroparken would be too far away, since we only had two hours for the game, and wanted 5 hints/waypoints.

I didn’t really work too much on the detalis of the game, after the 8th, but when the 22nd of November approached, I suddenly decided that we needed a website to support the game, and what you can whip together in two shakes of a rats tail using Drupal is just amazing, I had a full community site with full geolocation support up and running in a few hours.

Calls for participation
Approx. one week prior to the event, we issued an e-mail with a call for participation, and people were asked to sign-up for the pre-camp event, this was before I had configured the website, so I received a possitive answer from a few people.

Teaser
On the eve of the event, I then sent out this e-mail to the people that had responded to the call for participation:

Dear Agent,

You’ve been selected as a prospect to lead a team at BarCamp Copenhagen.

You will be given a mission that requires that you operate as a field agent from 10am to 11:59am.

Any technology you bring can potentially help you, but you’ll need, at least a camera and a cellphone.

There will be a briefing at 10am on November 22nd @Lygten 16.

Until then you can get updates at the barcamp.dk site, so check back frequently. http://barcamp.dk/content/barcamp-copenhagen-intelligence-agency

If you choose to accept the mission I’ll need your cell-phone number.

Kind regards
Kim Bach aka. K.ox
BCCIA Director

I received commitment from 4 people, I picked them as team-leaders, so that we would have four teams, and now I started building the website, having specific locations geocoded on the website helped me produce nice maps, so all I needed was to finalise the plot.

In the week leading to the event I had enlisted two of my friends to act as agents, and one of them is an experienced role-player so she helped me debug the game, she suggested that I should get rid of the good/bad distinction, and focus on making it much more confusing what was good and bad.

We met the night before BarCamp and decided that the mission should be for the teams to located the whereabouts of an agent, deliver documents, that they should document the handover of the documents, and return to base. What they weren’t aware of was that there was a second agent operating, and that he should steal the documents and disappear.

Hackable game
As mentioned, Mark Wubben tought me the importance of the game being “hackable”, this means that you should be able to bend the rules, so what I came up with was this:

  • Information about the waypoints would be made available on the website once the teams had departed
  • It would be possible to guess the access-codes, and get the hints faster. I choose these numbers for the 5 codes that should be gathered: 13-21-34-55-89 – does that ring a bell? Not? Well it’s the 5 two digit Fibonacci numbers 😉
  • You could get help if you asked for it

The plot
I ended up with a plot where the participants were sent out to locate field agent Szeba, they would be guided by hints that were given to them once they had gone to a waypoint and located the access code and sent it by SMS to HQ

The mission was to hand over some documents to the agent, and return with proof that the documents were delivered to the agent, and return to HQ.

The twist
What the participants didn’t know, was that I had also enlisted another agent, Petrus. The idea was that the agent would steal the documents once they were delivered to agent Szeba.

Game-on
On the eve of the evening I met with agents Szeba and Petrus (aka. Signe and Kim, thank you for helping me, you guys rock).

We went over the plan.

Szeba would be at Nørrebro Station at 11:30 waiting for the documents, Petrus would be lurking, wait for the next train, steal the documents and jump on the train just before it left.

We were ready for the game – mu-ha-ha-ha – it will be GREAT!

Stay tuned for the part two of this where you’ll be told how the game actually unfolded.

The picture that accompanies this article was taken by Karin Høgh, it’s copyright Karin Høgh and she has allowed me to use it here. The picture shows one of my bags!

Categories
Blogs Computere og Internet Historier/Stories IT Guruer Kim Blog (English) Macintosh Mactopia Technology

Passion for industrial design: The spotlight turns to…Jonathan “Jony” Ive

Jony Ive - Apple Senior Vice President - Design

Yesterday, the 14th of October 2008, Apple had an event titled “The spotlight turns to notebooks”, where they unveiled a refresh of the MacBook Pro, a new version of the MacBook in aluminium and a new Cinema Display.

Clever spin
All of these announcements were already confirmed and leaked days before the event, Apple can’t or won’t, contain the leaks, and the new strategy seems to be to use the leaks to drive the hype.

Remembering how secretive Apple events used to be, I sort of, expected Steve Jobs to pull something out of the sleeves of his turtleneck, “one more thing”, but he didn’t, or did he?

One more “thing”
One notable thing about the event was that Steve shared the stage to such a high degree. This is a trend that has been going for some time, especially when it comes to events that focus on the Mac, it’s a bit like Steve isn’t that passionate about computers.

Luckily others are, and at this event Jonathan “Jony” Ive shined – and I’m not referring to the reflections from his shaved head.

It was simply a thrill to see this low-key, soft-spoken, man talk about the manufacturing process involved in producing the new MacBooks, the attention to detail, the months spend refining the new trackpad etc. etc.

Over the years, speculation as to who might take over the position as CEO of Apple after Steve Jobs, has been growing, and my first reaction was that I’d love to see Ive in that position, he’d be a natural.

But really that would be such a shame, so I’m convinced that Ive will stay in his current position, and there’s many more iconic designs hidden in that shiny bald head of his.

So watch the video where Ive talks us through the manufacturing process of the new MacBooks, it’s simply breathtaking.

Risky strategy?
The MacBooks themselves? To me they ooze quality. Apple has obviously decided that they will not address the current trend towards cheap notebooks, aka. netbooks, when asked Steve called it a “developing market”.

The strategy is risky, it defies the market, but I welcome it, and it will only mean that Apple will grow it’s market share in terms of revenue, instead of units moved. With these new notebooks, there’s no doubt that Apple owns the high-end market, and that’s where it’s the most fun, and profitable, to be.

The old MacBook product line has been plagued by quality problems, hopefully the new MacBooks addresses this, I’ll bet that this is the case, these are, to me, the first true Intel based notebooks, designed from the ground up for the Intel chips.

I’m tempted by Ive’s new industrial sculpture

The picture of Jonathan “Jony” Ive, that accompanies this article, is a frame from the video issued by Apple for the launch of the MacBook Aluminium, it’s Copyright Apple Inc. I hope that my use here is considered “Fair Use”.

Currently the video is available on the Apple Website here, it’s likely to be moved, and it’s a good guess that it’s already on YouTube. The video is produced much like a documentary, really professional marketing on Apple’s part.

Categories
Blogs Computere og Internet Historier/Stories Humor Open Source Technology

One final thing: How do you like them Apples? – The spotlight turns to notebooks

Applenotebookevent - The spotlight turns to notebooksA draft of Steve Jobs’ presentation for the Notebook Event titled “The spotlight turns to notebooks” scheduled to take place on October 14th 2008 in Cupertino, has been leaked.

Since rumour has it that Apple is softening up to rumour sites: if you don’t like me publishing this rumour: SOSUME.

“Gi’ mig Danmark tilbage” by Natasja is blasting the Cupertino speakers!

Steve Jobs takes the stage

(applause)

Welcome, and thank you for coming.

One first thing:
Apple has realized that we can’t compete with Linux and has decided to make an investment in Linux. So we’re discontinuing Mac OS X in favour of Linux with KDE, all Mac OS X developers will instead be working on contributing to Linux, ending years of, mostly, passive and luke warm support for the open source movement. Apple wants to appologise for this mal-pratice, and all code will be shared back with the community.

The next version of Mac OS X will be renamed Linux Snow Leopard, and it will be licensed under the GPL – meaning that it can be freely copied, and installed, on any computer.

(oooooh)

Linux Snow Leopard is available as a free download from Apple AppStore, and it is available…NOW!

(applause and cheers)

The reason for this change is that captalism, as we knew it is dead, instead of competing to death and the focus on economic growth, that is destroying the planet, human kind will instead work to improve the quality of life for all.

Democratisation of technology will be instrumental in bringing these changes.

Apple wants to be part of this.

(Steve moves the cover on the table, pulls out a picture frame with a picture of Richard Stallman on one side and Nicholas Negroponte on the other side, from this frame he pulls out a beautiful sub-notebook)

So today I’m happy to announce the insanely great TuxBook, developed in coorporation with Asus.

Asus is bringing the change, and since our old notebooks really weren’t anything but repackaged Asus products anyway, we’ve decided that Jonathan Ive will now be working full time making Asuses look cool.

The TuxBook comes with 2GB RAM, 32GB SSD, WiFi, Bluetooth, a 3G modem and A-GPS. It sports 8 hours of batterylife, and can, optionally, be solarpowered.

Demo:
(The splash screen is a Penguin holding an Apple)

Isn’t that beautiful? KDE 4.1: BOOM!

The TuxBook will be priced at $99, and it is available…NOW!

Thank you all for coming, and Karl Marx was right.

(applause)

One more thing:
Since you can’t make money on stock, APPL will be unlisted from the stock exchange, Apple will in the future be a Section 501(c)(3) not-for-profit charity.

One final thing:
How do you like them Apples?

(standing ovations and wild cheers: T-U-X what’s that spell? TUX!, what’s that spell? TUX!)

Categories
Blogs Bookmarks Computere og Internet Humor Kim Blog (English) Technology

xkcd – A webcomic of romance, sarcasm, math, and language – By Randall Munroe

xkcd – A webcomic of romance, sarcasm, math, and language – By Randall Munroe

I love xkcd, it’s way over my own humour, which, frankly, is Benny Hilly, I bow in respect, I’m not worthy :-D.

The ones about academia, often are over my head, but my online buddies Esben, Thøger and Jacob, who introduced me to xkcd, seems to get them (faster) than me, I suspect that they’re not uneducated drop-outs like me ;-).

The computing ones, sometimes, stoop to the Benny Hill level of computing jokes, like this one:

Sandwich

Nah, it’s actually quite profound…Brilliant…For even geekier computing humour check the geohashing wiki, I’ll have to try that!

Categories
Blogs Bookmarks Computere og Internet Kim Blog (English) Resources Technology

OIO REST: RESTful web services developed by the Danish Public Sector

The Danish Office for IT and Telecommunications (IT & Telestyrelsen) is experimenting with so-called RESTful web services, and I’m very happy to hear that, because this is an indication that something finally is happening again, after years of impasse.

Services for the REST (sry) of us

RESTful web services are the predominant implementation model for web services developed by web 2.0 companies, Last.fm and Flickr are prime examples of services with extensive RESTful web services and APIs (Application Programming Interfaces).

A web service is a software service, or API, that software (application) developers can use to provide functionality to their applications, and thus users. The “web” refers to the fact that the service can be accessed using technology developed for the web, like a standard web-browser.

Other technologies for implementing web services exits, the best known is the web service or (WS_*) stack, often referred to as SOAP. REST is, however, much easier to use than SOAP, because it has a GET based interface, meaning that you can query a RESTful service using simple URIs for instance entered using a browser. REST is also much better understood by commercial web developers in the private sector, and the tools they use, eats REST for breakfast.

Here’s an example: http://oiorest.dk/danmark/veje?q=lindevangshusene

This retrieves the road-code and city-number of the street I live on in XML format, pretty sweet.

What IT&TS has done is that they, two years later, have picked up my idea, so that I don’t have to implement it (well it only means that I’ll never release my own code) ;-).

Concerns that history will repeat itself

I’m pleased, very pleased, and surprised that The Danish Office for IT and Telecommunications (IT & Telestyrelsen) has begun experimenting with such a relevant service, and has actually made some real-word applications available on the web-site.

But! I fear that history might repeat itself.

Something like 3-4 years ago, a sample SOAP service Address Web Service (AWS) was developed by IT&Telestyrelsen, they even had a competition to develop a sample application, and there even was a winner. But AWS never went into production, and the project dropped off the radar, that is until now. It seems that AWS soon will be released for production, and this is great news.

The problem was that I lost faith in AWS, I felt the project had died, so I didn’t really want to develop against it, and I hear the same concerns from others regarding the RESTful services today.

Do we need pseudo-standards like REST?

The RESTful experiments will probably never launch, but with the SOAP/WS_* AWS likely to go into production, we don’t really need them do we?

What we do need is an open and free infrastructure, for instance for eFaktura, it’s way too expensive to use the current providers, so I suggest that the next thing you do IT&TS, is to pick up another of my old projects 😉

In many ways I fail to see the real need for a RESTful service, but RESTful APIs are so much easier to implement than SOAP.

What I’d like to see is light-weight data-formats, like JSON, and JavaScript APIs Google style. The light-weight data-formats are simpler to parse than XML, so I’d love to see a JSON, or similar, version, e.g. something that is closer to the internal representations of data, without going to binary interfaces, even though they’re coming back, for instance through WCF (Windows Communication Framework).

Conclusion: BIG thumbs up! (but it was overdue)

All in all BIG thumbs up to IT&TS for this initiative, keep it up, and stay above the radar in the future, please. We need widely available, and free, services like AWS, and with the competition from Google GeoCoder, which can be implemented with few lines of code – and works with other than Danish addresses, and findvej.dk – that is using it’s own, outdated, copy of data from Kort og Matrikelstyrelsen to provide a nice, URI based service, reviving of AWS, and the new initiatives, were way overdue.

Categories
'i dag' (Danish) Blogs Computere og Internet Frivillig arbejde Hackers Historier/Stories Macintosh Mactopia Resources Technology

Æbletræet.dk fylder 2 år – stort til-held-og-lykke og Elvis har forladt bygningen

Elvis Smoking - By Esben ThomsenI går, den 3die April, kunne Æbletræet.dk fejre sin 2 års fødselsdag. Æbletræet.dk er et Internetbaseret, indholdsdrevet, fællesskabs projekt der startede som en idé om at skabe en begynderguide til Mac, men er endt med at være en af de, ja måske det, største Danske online fællesskabsdrevne indholdsdrevne Internet projekter. Projektet er dog, for længst, gået skridtet videre, og indeholder nu artikler om meget andet end Apple.

Historien om Æbletræet, eller MacWiki som det oprindelig hed, er dokumenteret på Wikien, hvilket er ganske unikt, som du kan finde på http://www.theappletree.dk (jeg bruger – bevidst – den Engelske version – da projektet – naturligvis – som nogle af de første – benytter en IDN (International Domain Name) – nogle skulle jo starte, og det blev os.

Ideen til Æbletræet udsprang af det danske forum for Apple fans, Macnyt.dk, en gruppe af faste brugere var blevet trætte af at besvare de samme spørgsmål om og om igen, så det blev diskuteret om man kunne skrive en bog eller lignende.

Fra start af var det klart, for mig, at man absolut ikke skulle skrive en bog, men lave det online på Internettet, og jeg havde noget i baghånden, MediaWiki, det samme system som driver Wikipedia – der er åben og fri software.

Første møde blev afholdt den 3-April-2006, og da jeg kom hjem installerede jeg MediaWiki på min server og oprettede de første artikler.

Der gik noget tid inden de andre projekt deltagere forstod ideen, og indlæringskurven for MediaWiki er ikke just lav, derfor opsatte jeg også et traditionelt forum, som stadig kan findes på http://macwiki.kimbach.org/portal, og diskussionen flød.

Det er fantastisk at arbejde sammen om at producere indhold, og når man kan se at der er mange rettelser på MediaWikis recent changes, så virker det simpelthen ganske inspirerende, og man får lyst til at skrive mere.

Jeg føler det er nødvendigt at aflive nogle myter, da den slags opstår når folk ikke taler sammen.

  • Jeg har ingen ambitioner om at være leder eller bestemme noget som helst
  • Jeg er blevet beskyldt for at tage Æbletræet som gidsel – det kan jeg ikke se – grunden til at vi ikke er på PHP5 – som jeg helt ærligt – ikke forstår er så vigtigt – er at vores udbyder Site5 ikke understøtter det, og da projektet er baseret på gratis og frivillig arbejdskraft, så har det været svært at få ejeren af serveren til at bruge tid til at få flyttet server

Og så et par ord om hvordan jeg fungerer: jeg bliver stresset af at tænke på produktions-problemer, og i påsken forsøgte jeg at opgradere Æbletræet.dk, det gik ikke helt som ventet, jeg bad derfor om, først at få os på PHP5, derefter ville jeg installere MediaWiki 1.12, og så flytte til Gigahost (hvilket jeg ikke tror er så god en idé), hvis man spørger kan man jo få svar, og jeg venter på min frivillige hjælper.

Fundamentalt hader jeg simpelthen drift, og her mener jeg ikke den første installation, men de problemer der – næsten altid – opstår når man skal opgradere serveren – så vidt jeg husker – så har vi nu ikke haft de store produktions problemer – en enkelt gang var vi nede i 48 timer – fordi Site5 havde skiftet IP adresser.

En grundregel – som gælder al drift – er: “if it ain’t (totally) broke – don’t fix it” – på Dansk: “pil ikke ved noget der fungerer, også selv om det ikke fungere helt optimalt”. At dette så betyder at “change” ikke sker, er uheldigt, men det er simpelthen ikke noget man kan byde frivillig arbejdskraft – så ting tager tid!

Jeg har – længe – forsøgt at få vores server opgraderet til PHP5, men igen – frivillig arbejdskraft skal man ikke presse – man må væbne sig med tålmodighed. Tro mig, jeg ved det – for 3 år siden prøvede jeg at køre et del-projekt i min Frivilliggruppe hårdt, det faldt ikke i god jord – og folk hadede det jeg producerede, men jeg producerede! Siden dengang har jeg væbnet mig med tålmodighed.

Efter 2 år kan projektet dog, sagtens, stå på egne ben, og jeg føler at min fortsatte deltagelse i projektet ville betyde en fragmentering af fællesskabet, der – efter min mening – ganske enkelt ikke brug for endnu et Dansk Apple site, og nøj hvor er det imponerende med de nye Apple fora, som i kan se havde vi et Drupal baseret forum allerede for 2 år siden.

Jeg vil derfor, fremover, ikke deltage i projektet som andet end bidragyder, med mindre jeg bliver udelukket – hvilket jo ikke kan udelukkes (pun intended).

Faktisk er det eneste jeg er ked af, at jeg har mistet en fantastisk god ven – det bedste minde jeg har er dengang vi bagte en kage til brug for Dansk Flygtningehjælps 1000 flere arrangement, og jeg undskylder MANGE MANGE gange for Beyoncé, som blev Skypet til dine sarte ører mangen sen nat.

Det sjoveste er faktisk at vi, mest fordi vi havde en åben proces, blev udsat for en domænehaj. macwiki.dk blev registreret af en af den slags personer ,der ikke burde have lov at betræde Internettet, sjovt nok blev navnet jo æbletræet.dk, så fjolset brændte inde med domænet LOL.

God vind kære Æbletræ, det har været fantastisk sjovt! Specielt tak til David, Esben men også Thomas x 2, Wendelboe, Sebastian, Allan, Liv for at have holdt mig ud så længe, noget af en bedrift ;-).

Et par fakta – Æbletræet.dk kører videre, så længe det ønskes. Hvis der er interesse i at bevare navnet, hvilket jeg da tvivler på, så kan det redelegeres, jeg ejer det p.t. I øvrigt sletter jeg aldrig indhold, men da vi ved at dublikeret indhold er noget Google ikke bryder sig om, trækker jeg stikket så snart der er flertal for det.

Jeg er blevet beskyldt for gidseltagning – intet er mig fjernere – jeg er SUPER stolt af at have været med til dette – og det var det jeg kunne få jer med til. Fremtiden tilhører egen-produceret indhold, som man selv hoster og ejer, websitet er dødt! Elvis har forladt bygningen.

Billedet der ledsager denne artikel er en manipulation udført af Esben Thomsen, det er Copyright Esben Thomsen, men jeg håber at dette falder under fair use. Esben kender mig bedre end de fleste, og det “grønne skrig” opsumerer “mig” ganske godt (man kunne sige perfekt)

Categories
'i dag' (Danish) Blogs Computere og Internet Historier/Stories Humor Technology Undervisning

Papirbesparelse…

Q:
Har du forslag til besparelser indenfor print/ kopiering (sort-hvid/farve tryk) og/eller papir-forbrug, – (også gerne systemændringsforslag), så skriv dit forslag og send det til postkassen: xxxxxxxx

A:
Det gælder jo ikke kun om at begrænse medarbejdernes papirforbrug, men også den mængde papir der sendes til kunder i form af regninger, og her er der også en stor logistisk omkostning da brevene jo skal bringes ud.

Det skal også nævnes at man udover at benytte dobbeltsidet tryk, også kan udskrive flere ark på samme side, og personligt er det meget få af de dokumenter jeg udskriver på den måde, der bliver sværere at læse.

Ellers er det også relevant at vælge en papir-leverandør der prioriterer miljømæssig bæredygtighed højt, og det er ikke kun for at opnå en økonomisk besparelse på “papiret” (bevidst vittig ;-), det må nemlig gerne koste mere, hvis det samtidig er bæredygtigt, og så er det et godt signal at sende til omverden. Noget andet er at hvis prisen er højere, kan det også virke som et inictament til at sænke forbruget yderligere.

Bortset fra det kan man rent faktisk ofte undgå helt at udskrive, det kræver bare at man lettere kan finde informationerne, og så er det vigtigt at man ikke længere sender f.eks. Word dokumenter til hinanden, men i stedet henvisninger til Intranettet/Lokalnettet, så man vendes til at læse informationer på skærmen i stedet for at udskrive den.

Systemer til vidensdeling som wikier, diskussionsfora og team blogs kan også hjælpe til at begrænse mængden af papir, der er heller ikke længere diskussion om hvilke versioner af et dokument man har. Man kan også med den slags systemer begrænse behovet for møder da projekter lettere kan diskuteres og resultater fastholdes når man bruger den slags systemer.

Det kunne også være en idé hvis der var en computer i mødelokalerne der var koblet op til lokalnettet og en storskærm, som man var SIKKER på virkede – det er min opfattelse at der bruges en del tid på at være sikker på at et mødelokale har fungerende netforbindelse etc. På denne computer vil man så kunne hente projekt dokumenter, inklusive diskussioner, så de kan diskuteres på mødet.

Principielt kan det diskuteres om det overhovedet er nøvendigt at have en harddisk i en computer, afskaffelsen af den lokale harddisk vil betyde at man altid vil gemme informationer på en sådan måde at man kan få fat i dem fra en vilkårlig computer, og derfor ikke har behov for at udskrive dokumenterne når man går på besøg hos kolleger for at diskutere dokumenterne.

Dette vil dog stille større krav til netværket, og derfor vil det være en idé at tænke i en distribueret infrastruktur, f.eks. ville det være smart hvis en udviklingsafdeling havde sin egen filserver på lokalnettet, der så blev replikeret til firmaserverne automatisk.

Konkurrencemailen er i øvrigt et “sjovt” eksempel på forkert brug af elektronisk distribution, da der er en vedhæftet fil medsendt, i stedet for et link til Intranettet.

Categories
Blogs Design Hackers IT Guruer Kim Blog (English) Resources Technology

sIFR inside: mourning the loss of a friend, with a tribute to Mark Wubben

Logo Sifr2Yesterday I had the, unexpected, pleasure of meeting Mark Wubben in person, and it was great.

The reason: yesterday we had a meeting in relation to a project, and webgrl extraordinarie, Henriette Weber asked if she could bring a guest. Sure! His name is Mark Wubben, do you knew who he is? No, not really!…Well it turned out that I did, he’s the man behind the incredible piece of code known as sIFR.

In case you don’t know what sIFR is – chances are that you don’t – it’s a method to display rich typography on the web, using Flash, but in a completely transparent, and accesible way.

So as a tribute to Mark and the fantastic work he’s done with SiFR, I’ve switched my sites theme to the sIFR experiment, I never got quite finished with last year – it’s based on the standard template.

I got to look at some of the work he’s done at his company, and it’s SUPER cool.

Mark is also finding time – which is amazing – to work on sIFR, and I got a sneak-view of version 3.0 of sIFR, and it’s going API, will be fully scalable etc.

The main reason I stopped my experimentation with sIFR, was because it didn’t support Danish characters, but Mark would LOVE to hear from you, so I’ll ask him for advice – really it’s “just” a matter of providing the correct Flash files. Another reason I stopped using sIFR, was that I didn’t have the energy to chase down nicer fonts, the defaults aren’t exactly the nicest.

Wondering what Mark is up to these days? You’ll better watch it!

If you’re using sIFR, do give Mark a shout, he’d appreciate it, and his work deserves ALL the recognition in the world!

ps. Incidentally I just lost a good friend, due to COMPLETE stupidity on my part, I guees that I’m an a**hole, and the irony is that, he was the one, who drew my attention to sIFR. So long buddy 🙁

Categories
Education/Undervisning Historier/Stories Humor Kim Blog (English) Rumforskning Technology Undervisning Videnskab

The Pod Bay Doors have been opened – Godspeed Arthur and thank you

HAL Sheeding a tear for Arthur C. ClarkeThis week, the world got a lot less interesting, when the visionary, humanist, inventor and author Arthur C. Clarke died. I really considered not commenting on it, because others would be better at it, and the picture from Joy of Tech on the left sums up my feelings.

Remembering a great visionary and humanitarian

Arthur might not be the best writer, but his clear visions, belief in humanity and always good spirit was such an inspiration.

Clarke has mostly been remembered for his two most famous contributions to the collective heritage of humankind:

  1. The movie 2001
  2. The concept of Geo-synchronous communications satellites

The only thing that I feel sorry for, is that Arthur didn’t live to witness the discovery of Extraterrestial Intelligence, which I’m sure is on the verge of happening, and when we have First Contact, I hope that the politicians and scientists read the works of Arthur C. Clarke, before trying to understand E.T., I really feel that Arthur did.

First Contact

I’ll give you an example, and it’s my favourite part from one of his books, “The Fountains of Paradise”.

As is traditional with the novells by Arthur C. Clarke, the plot contains several independent sub-plots, and that is the strongest aspect of his writing, it never gets dull, and it’s filled with humour, and insights into humanity.

The main plot in the “Fountains of Paradise” is really about the construction of an elevator to the Clarke Belt, the geo-synchronous orbit, 36,000 kms from Earth.

But the by-line is a story about First Contact – e.g. the discovery of intelligent Extraterrestrials – a favourite topic of Clarke – it’s also about Artificial Intelligence – the favourite topic of Clarke.

The sub-plot is similar to “Rendezvous with Rama”: Due to universal limits of relativity, you can only travel at sub-light speeds. Another universal law is that the ordinary life-spans are too short even for ET, so ET is investigating the universe using unmanned probes.

Earth, or rather the solar system, is visited by such a a spaceship, and onboard is a computer or more correctly an AI – that is somewhat secretive – but co-operative – and we have so much to learn, like the fact that we’re an emerging level 1 Civilisation, at least in the 22nd Century, where the book is taking place.

Clarke suggested that advanced Civilisations goes through three levels:

  1. Civilisation can control energy on Planetary level
  2. Civilisation can control energy on Solar level
  3. Civilisation can control energy on Galactical level

Needless to say we’re not even a level 0 civiisation right now. When ET finally arrives, some hundred years after the probe visited, he expresses admiration for the achievements of “such a young civilisation.

Well the computer abroad the space-probe, is co-operating and teaching us lot’s of things, without violating the rules about giving away information posessed by a higher level civilisation, so we’re only given hints, like a level 1 civilisation, has mastered the conversion of matter to energy and back – e.g. has things like matter transporters and replicators, like in Star Trek.

That is until someone at a Theological Institute decides to transmit the complete religious scriptures to the computer, it painstakingly analyses it, points out the fundamental flaws of religious thinking, shuts down communication with a comment that expresses disappointment at such tribal manners from an emerging level 1 Culture, and sorry but now you have to switch to direct communications, going to cruise mode, shutting down, bye.

Mind you, ET is 50 light-years away, so everyone was upset by the actions of the religious people, but really it was also the end of religious thought, and humanity could move on the bigger projects, like building the space elevator.

The concept of the Space Elevator was lifted from a Russian scientist Konstantin Tsiolkovsky, that Arthur credits in the closing notes of “Fountains”. Clarke also suggests that it might be possible to build it already in this century, and the concept is well thought out, and actually feasible with current technology, unfortunately the current funding of space exploration, dictates direct military benefits, and the military seems to love chemical rockets, what a shame.

Other contributions

Another important contribution by Clarke, was his 80th birthday special feature, where Discovery dedicated an entire evening to Arthur, another was his series The “Arthur C. Clarke’s Mysterious World”, where he was also dealt with myths and Urban legends, paving the way for the “Mythbusters”.

Clarke deserved the Nobel Peace Price, not least for deciding to live his final many years in war-torn Sri Lanka.

The Pod Bay doors have been opened, Godspeed Arthur

The Imperial Cinema in Copenhagen is showing “2001: A Space Odyssey” on Monday 24th of March oops April 28th at 3.45pm CEST.

Imperial has one of the best cinemas in Northern Europe, expect me to be in the audience, I can’t really think of a better way to pay tribute to Arthur, get your ticket here (link will probably expire soon ;-)).

I’m humbled by your creative vision: The Pod Bay doors have been opened, and my God it’s full of Stars. Godspeed Arthur!

The picture that accompanies this article is from the great comic strip, The Joy of Tech. I dare to claim “fair use”, and why don’t you click here to buy some merchandise, or one of the paintings – I’d love to own “HAL 9000 shedding a tear” as a painting. BTW: I’m not making any money from providing Joy of Tech with such a link, welcome to the future of advertising ;-).