Christian Heilmann

You are currently browsing the Christian Heilmann blog archives for October, 2008.

Archive for October, 2008

Working in the now

Friday, October 31st, 2008

I just finished my slides for the upcoming Paris Web Conference entitled “Working in the now”. Originally I planned to have a cool presentation showing things we will be able to use in HTML5 like native audio and video and their Flash and JavaScript equivalents that can be used right now.

Then I heard even more about the cost-cutting exercises the market (yes, and my employer) is going through and ditched the original idea. Instead I am giving a presentation that shows how we can right now use systems we don’t use to save money and time and work more efficiently. I think this is a better message to give out right now than to catch the latest technical craze out there.

We are not working in happy times right now and I am getting a terrible sense of deja vu.

2000 called, they want their silly decisions back

Seeing the economic downturn and the stock market debacles right now I am painfully reminded of the first .com crash and the effects it had. Back then I worked in an awesome technical team that created and ran a massive ecommerce site that had great products, happy customers and a totally mental money spending plan. Hence it went bust.

Morale was down the chute and a lot of very gifted people left IT to find their happiness elsewhere. Other, mostly technical people went “underground” and worked in agencies doing mind-numbing work for a paycheck until the market recovered and we were asked to “push the envelope” once more. If anything, the crash killed not only a lot of investment portfolios but it also killed great teams that worked together. This is happening again right now. You hardly find the heads of those who made stupid money-spending decisions or repeatedly flogging dead horse projects on a fence post but the blame (and job cuts) is administered first and foremost on the shop floor.

Diminishing headcount means bleeding of talent

As Douglas Crockford wrote, if there are layoffs to be made, better be swift about it (paraphrased). That works in the US, but in Europe the issue is a bit bigger.

You cannot just fire or “let go” people nilly-willy but there are a truckload of laws, consultation phases and methodologies to go through. These are great as they protect the rights of the employees but they also force employers to keep people in a state of flux for quite some time.

This state is terribly dangerous as morale is down, people are not working effective and instead spend their time wondering what the bleep is going on and who might not be there any more next week. The very sought after and talented people will brush up their CVs and not hang up on headhunters any longer and in general you will destroy the social groups that built over time and forged very successful professional teams.

This even happens in the groups themselves – instead of huddling together and making sure everybody works at peak efficiency people stop sharing and try to shine above the others. Even worse, anything that is out of the ordinary – for example business trips that have been planned months before – is seen as favoritism or “useless expenditure while others are laid off”.

In essence, layoffs are terrible and while they are an amazingly effective short time cost cutting exercise they actually will leave you with a far less effective company – as you not only get rid of some headcount but also a lot of talent.

What will (probably) happen now

The last time we were in this situation the people in charge of the business in IT companies felt cheated by their techies and fled into the arms of companies that promised effective working and immediate results with minimal technical knowledge or overhead. These were half-baked framework solutions and “enterprise CMS solutions” giving you the chance to build a cookie-cutter site quickly but requiring a lot of work every time you need to build something bespoke (never happens, right?).

I don’t quite think this will not happen this time, but we will see a lot more solutions that take a stance of being for “mashups”, “hacking” and “open to developers” but are in reality a cloaked way to tie developers to a certain framework, brand or environment. If that means it is easier for developers to build great solutions for end users and get a share of the money they made with ad sales that is great. Personally however I would love the web as a whole to improve and companies understand that distribution and decentralization as concepts are immensely powerful.

What will surely happen is that a lot of startups will go the way of the Dodo, and frankly I don’t care. I love innovation and I think having a small, new, struggling company with gifted people gives you a very fertile ground for it. On the other hand I have seen far too much money and time spent on ideas that were simply blatantly ripped off or stupid. In the current startup circus it is more important how you sell your image and what the hype potential of your product is and not what it helps the end user to achieve. I am generalizing a bit here and I shouldn’t – there are a lot of amazing startups and I do use a lot of products built by them I would hate to see go. Others however, I am happy to see die and the only thing that annoys me about them is the hype and money and time spent on them where other products and ideas struggle to get minimal funding. The fast rise and fall of startups make people not believe in long-term planning and giving people a chance as a way to get better results. We will only have another “death list” of failed innovation ideas that will become a rubber stamp for “let’s never touch this again”.

What we should be doing now

Well, a lot of the control is out of our hands. When push() comes to shove() money is the only decision factor and it would be arrogant for us as techies to claim we have an understanding or impact into how this whole game works. What (IMHO) we should be doing right now is to be as effective as we can and shout louder than ever that the natural effectiveness of good developers can save a company a lot of money if they listen to us. This includes first and foremost re-using of good information and code and this is where it is about time we stop navel-gazing and look around us. CSS frameworks, JavaScript libraries and tutorials are out there and all of them want to do one thing: make our work environment less random. Instead of seeing this as an opportunity we dismiss them most of the time as they are not right for what we want to achieve. All of the ones I am using are open source though and have very responsive development teams. So instead of writing yet another bespoke solution and not getting the time to test it why not build on something tried and true and extend it to what we need it to do?

The same applies to hosted services and “the cloud”. Instead of writing awesome long treaties on the subject or listen to hour long inspirational presentations about it why not just use what is out there? Why not do some internal presentations showing people how cheap it is to host files on S3 and do heavy computation on virtual machines rented for pennies instead of rendering work computers useless for hours on end?

I am very much looking forward to giving my Paris Web talk and I would love if I can inspire some people to go back to their managers and show them just how much is out there to use for free, if we only stop thinking about building everything ourselves over and over again and use what people offer to us anyways.

The art and pain of teaching JavaScript – my talk at <head>

Sunday, October 26th, 2008

I just delivered my talk on teaching, learning and writing JavaScript for use. The slides are available on slideshare below and if you don’t want to sign up, I’ve also put them up on S3.

[slideshare id=695060&doc=javascripttutorialshead-1225047967659425-9&w=425]

I’ve covered the different types of JavaScript consumers: Users, Tinkerers (explaining that there is nothing derogative about this term), Implementers and Developers. I then started to explain where these people come from, what they expect and how we can reach them.

Other topics where how to battle successful but outdated information, ideas how to keep systems upgradeable and generally to consider moving away from an “OMG Ponies! Technology! Let me show you what I can do” to a “Here’s why I love using this and this is how I did it” approach.

Hopefully I inspired some people. I thoroughly enjoyed the session, although it is weird to talk to a monitor :)

YouTube now offers deep links to timestamps (via URI hash)

Sunday, October 26th, 2008

I was very happy this morning to see that YouTube now features the option to jump to a certain time in the video directly by adding a timestamp hash to the URL. For example:

They also automatically create links from comments that mention timestamps. This all is something that I’ve been hacking into YouTube with the YouTube captioner and other people building Splicd.

I guess the next natural step would be to show the timestamped comments as annotations just like Viddler does it.

A spot of rain on the parade is that the geo IP redirect in YouTube breaks timestamped links as you get sent from www. to uk. (for example here in the UK as found by Simon Willison). This should be easy to fix though, please?

Seven reasons why web development is running in circles

Friday, October 24th, 2008

I just finished giving my presentation at the conference called Seven reasons why web development is running in circles

[slideshare id=689228&doc=sevenhead-1224870102571557-8&w=425]

In this presentation I was listing some of the issues that – to me – keep web development from being professional and innovative. I get the discouraging feeling following the web and several mailing list that we do the same mistakes over and over again instead of learning from them and moving on.

The reasons are:

  • Turf Wars
  • Ego
  • Quick Win Tutorials
  • Antique Recommendations
  • Tickbox Standards
  • Status Quo Fetishism
  • Form Over Function

I think the talk went down quite nicely and if I came across as “patronising” I am sorry, this was not the intention. I’ve been working a long time as a web developer and I love getting new people into our world. It would be a shame if new people couldn’t bring new ideas and angles because they get caught in the same fights we fought repeatedly.

GreaseMonkey script to show if a twitter user follows you or not

Wednesday, October 22nd, 2008

As requested by Josh here’s a greasemonkey script that shows if a certain user follows you on twitter by adding a (follows you) to their name on their profile page.

It works – kinda. As there is no way to get a list of all the people a certain twitter user follows on one page (unless I missed something in the API - help please?) the script first checks if you are in the 30 first followers on the page (the thumbs) and if you are not it loads the “friends” page of a certain user and checks if you are in that page. This covers 60 cases, but not all. Oh well…

Source:


// UserScript
// @name Follower
// @namespace twittertools
// @description Shows in an obvious way if a certain twitter user is following you
// @include http://twitter.com/
// /UserScript

(function(){
if(document.getElementById(‘profile_link’)){
var you = document.getElementById(‘profile_link’).href.replace(/.*//,’‘);
var friends = document.getElementById(‘friends’);
var header = document.getElementsByTagName(‘h2’)[0];
var friends = document.getElementById(‘friends’);
if(friends.innerHTML.indexOf(‘/’+you)!==-1){
var side = document.getElementById(‘friends’);
var header = document.getElementsByTagName(‘h2’)[0];
header.innerHTML += ’ (follows you)’;
} else {
var url = window.location.href + ‘/friends’;
var isme = ‘http://twitter.com/’ + you;
GM_xmlhttpRequest({
method: ‘GET’,
url:url,
onload: function(responseDetails) {
if(responseDetails.responseText.indexOf(isme)!==-1){
header.innerHTML += ’ (follows you)’;
}

}
});
}

}
})();