Congratulations to everyone involved in getting Django 1.0 out of the door. Great job.
The good news; the new Guardian Sport and Football sites were launched successfully, and seem to be working fine. The bad news; 24 hour licensing notwithstanding, we couldn't find anywhere to serve us a beer at two in the morning. Grrr.
Update: More on the new sites here; Our new look.
Thanks to Jemima Kiss for the special key that we've been using for site launching:
Loads of stuff in the blogsphere about the Google App Engine, unsurprisingly, some of it even worth reading.
- Ruby fanboys throw their toys out of the pram. You will be assimilated. Mwahahahahaha!
- Python is the new BASIC
- Tomato tracking. "It’s going to be the world’s greatest web application." ;-)
- Django on Google App Engine in 13 simple steps. Nice getting started tutorial.
- Experimenting with Google App Engine. "The lack of SQL is actually refreshing." ... "I am impressed. The App Engine team has done a fantastic job, and I think they have already changed the way I do hobby projects."
So, it's looking good, though I'm still concerned about lock-in. It's not just the Datastore API which locks you in - that's probably fairly east to emulate - but also the Authentication and Authorization API, which looks much trickier.
The Python blogsphere has been exploding with the news of the Google App Engine today. And fascinating it is too - free hosting for Python web apps, Django included. With the might of Google behind it, this will push Python big style. Take that, Rails hype!
I'm a bit uneasy about the datastore, though. Not only does this gut any existing Django app, it also any means that any app that you write that persists data (read - non-toy) will be bound to the GAE API. What's wrong with a real database?
Naturally, I've signed up already. ;-)
FWIF, The Guardian had it first. ;-)
Now, I'm sorry they guy can't get a job, but if this is his attitude, I can't say I'm surprised. He's burned his bridges with ThoughtWorks, for a start. ;-)
Disclaimer - I work for ThoughtWorks. But I can say that with perfect honestly that his impression of TW doesn't mesh with mine. Thing is, he seems to think that what TW sells is platform expertise. It's not. We primarily sell smart people. (Oh, and me, too.) A smart person will pick up a new platform quickly. If that's not possible with Rails, that that's Rail's problem - not that I believe that to be the case. Yes, you do need a cadre of people with platform experience for a project to succeed, but not the whole team. (Perhaps he'd have better luck job hunting if he didn't restrict himself exclusively to Rails?)
He says that TW leaves bad code bases behind. Again, in my limited experience, that's not true at all. TWers seem to care deeply about what they do. Anyone else out there who doesn't work for TW who has any experiences they'd care to hare?
Also, his dismissal of TDD and agile practices such as pair programming suggests to me that he's not really tried them. We at TW have a lot of experience in these areas, and it all works just fine for us. If he claims to have improved productivity by dropping them, then he's clearly not comparing like-for-like. Done properly, I fervently believe that these practices improve productivity in the long term (if not in the short term).
I do wish we used more Django and less Rails, though. ;-)
I don't think I'll be able to make QCon, London this year - my current employer doesn't really see the point of conferences. Which is a shame, 'cos it could have been designed for us. There are an uncanny number of speakers relevant to us: Jeff Sutherland ('cos we Scrum), Gavin King ('cos we use Hibernate), Rod Johnson ('cos we use Spring), and Alex Russell ('cos we use Dojo), plus movers and shakers like Martin Fowler, Werner Vogels, Kylie, and Dave Thomas. I might be lying about one of those, though.
Never mind - there's always PyCamp!
And who knows - I might win a ticket. ;-)
I'd love to give Bicycle Repair Man a go; it looks fab when Phil demos it. but there's one hurdle to get over first - Emacs. And it's a big one.
I've given Emacs a go a couple of times (most recently Aquamacs), and it seems to make sense to me. It's not totally horrid like that nasty vi thing that just beeps at me all the bloody time. No, it's just that the learning curve is steep, and I have real work to do, work that I can accomplish far more easily at the moment using jEdit.
There are loads of tasks that I can achieve really easily using jEdit that I wouldn't even know where to start looking for in Emacs - line sorting, search and replace across a filtered set of files throughout a directory sub-tree, opening files in archives or FTP repositories, HTMlifying, XML re-indenting. I know Emacs can do all this stuff, but I really don't know where to look for it all, and I need to get stuff done.
There are a couple of other jEdit features that I really like and would miss, too. The File System Browser (which I keep docked and open at all times) is a fabulous tool. I like a mouse driven interface for navigating around the file system, and jEdit's is a very powerful one. Also, the combination of the search bar and the hypersearch panel (which I leave on by default and dock at the bottom respectively) is really powerful too. Are there Emacs analogs of these tools?
Oh yes, and I like buffer tabs too.
And before Andy comes in and starts accusing me of being a weak-minded GUI lover, I'm not. I'm getting on fine with bash on the Mac. I'm starting to use awk and sed to do stuff on the command line that are totally impossible via a GUI. (Oh, and thanks for the help on that, Andy.)
So, should I stick with what I know? After all, it's not like I'm using Notepad here - jEdit's very good. Or should I take the pain and try to switch to Emacs? I'd be able to use Bicycle Repair Man!
Update: Just to be clear - London 2.0 isn't off by any means. It's just that I'm concerned that many of our potential attendees will go the the Backstage meetup.
This is getting out of hand. December the 12th now appears to be a combined Python/Django/TurboGears/Ruby/Rails/Java/Spring/Hibernate/the million other things you need to build a Java web app these days/Perl/Catalyst/Maypole/Groovy/Grails Christmas party, and Jez is trying to get the Geek Girls on board too. Though that may be just wishful thinking on his part. ;-)
So, we really need another name. Jez suggested London 2.0, which is just so zeitgeist. Me, I'm more London 0.9, but I'll go with it...
Speaking of the London Web Framework Night - I never did write that up, did I?
OK, so, first up, Catalyst. What can I say? Catalyst may or may not be a great web framework, but since I didn't understand a word of the presentation, I'm not in any position to judge. It seemed mainly to consist of a list of CPAN modules that are either part of Catalyst, or can be plugged into it. No code, no working system, no screenshots, no inkling of what's in it for me. Nothing. Awkward, opaque, and unfriendly to all but insiders - much like I imagine Perl to be. (It must be said, the Perl mongers are aware of the problem - see this post, and this one. Message for Simon Wistow re your "Show Leon's Catalyst based web debugger. I'm willing to bet that it would be largely impossible in either of the other two" comment - I give you Ajaxy Exception Catching.)
Next up came Simon's Django presentation. I may have put The Fear into Simon about presenting to so many people, but perhaps I did him a favour - despite his admitted inexperience as a presenter, it was a cracking show. Compelling, funny, enthusiastic, and giving a very good idea as to what Django does, and how it does it. Using it will be pretty much a no-brainer when it comes to putting together a CMS style site. Whether it's the right platform for database driven sites like the kind of thing that I do for my day job is another matter. There's a clear front end/back end division with Django, with editors using its spectacular "magic" admin interface, and users mainly viewing content - though you do get community features like commenting pretty much for free. Perfect for a lot of sites, but would it suit enterprise database apps like banks and insurance houses need - and I write?
Simon demonstrated both the front and back ends of Django using lawrence.com - one of the sites for which Django was developed in the first place. Though the God of Demos made an apprearance at one point giving Simon an SQL exception, he also had a number of "oooh"s, and outright applause at least twice.
Last up was Matt Biddulph giving us a flavour of Rails. Struggling manfully through a stinking cold, Matt gave us the phiosophy of Rails in a very punchy manner. It looks very much a case of "do it our way", but that's often the right approach. Not enough code on show to tempt me away from a Python platform, though. ;-)
Without a doubt, the highlight here was Matt's demo of BBC Programme Catalogue. I have no words for how cool this project is. None.
I missed out on the booze up afterwards - I was feeling a bit fragile after several heavy sessions on the trot - so I'm sorry if I missed any of you. It was a good night nevertheless - a big thank you to Dean Wilson for organising it all.
Me? I'm looking at TurboGears. ;-) I like the concept of tying together best-of-breed components. Getting it running on my Mac was trivial, and the 20 minute Wiki is a superb demo. As soon as I locate some of that copious free time of mine, I'll try throwing together a simple site or two to see how it hangs together.
Not content with a Python/Django/Ruby/Rails meetup, Sam, Jez and I have teamed up to throw a Python/Django/Ruby/Rails/Java Christmas party this year. (For "party", read "bunch of nerdy blokes, many with beards, standing around drinking beer and chatting about computers".) It's at The Old Bank of England, Fleet Street on the evening of December the 12th.
Do leave a comment if you fancy coming - we have a room booked, and but we can change it to a bigger one if we need to. I anticipate a lot of interest, what with combining the Java crowd with the dynamic language people, and possible extra interest due to last week's London Web Frameworks Night.
Anyone want to demo TurboGears? ;-)
Son of Update - This Time it's Personal: See London 2.0rc1.
It's going to be a busy month for nerdy stuff.
Then, next Monday, we have the London Python/Django/Ruby/Rails meetup. It's looking like we might get a good turnout for that - including my Technical Director! Gulp - I'd better be on my best behavior.
Then again, naaah.
On the 17th, there's the London Web Frameworks Night. Looks fascinating - demos of many of the happening web app frameworks back to back. Given the noise and drunkeness I don't tend to take much detail in during the Python/Django/Ruby/Rails meetups, so it'll be interesting to see more formal demos. Let's hope I'm quick enough to book a seat...
Update: If you want to go to the London Web Frameworks Night, sign up now.
I've most often come across this issue building Java web applications. There are just so many pieces to stitch together, and to find places to put; your your build script, your business objects, your tests, your JSPs (or whatever), all your 3rd party JARs, your persistence stuff, your MVC stuff, your IoC stuff, about a gazillion configuration files to make all this lot work together, it just goes on and on. It takes a while, and if you get it wrong, well, everything still works, mostly, but you'll have maintenance nightmares for life.
In fact, it got so out of control that Matt Raible came up with the wonderful AppFuse. Appfuse is great - it builds a project structure for you, using your choice of frameworks, so you can hit the ground running. I only hope that Matt learns to slow down a little!
Excellent! My next project will involve building a new site which will include some 'announcment and discussion forums', or, well, blogs. I wonder why I'm in the frame for this one? ;-)
I'm thinking WordPress for the blog engine. Seems to be all the go at the moment.
Even more excellent, if a little scary, is that all this is to run on a Linux box. I've not used Linux in anger, and I'm really looking forward to it. I'm very much a command line man, so I'm sure I'll get on fine once I've got some momentum up. But getting started...
Which distro should I use? I quite fancy Debian, but I'm not sure that I'm hary chested enough for it. Would I better off with SuSE, or is that a bit desktop oriented? Is Ubuntu ready for prime-time? Or is there another distro altogether that I should be using?
What do you put in your CSS
font-familys? I know what fonts are available on Windows, and I know about the lowest common denominator generic-families -
sans-serif and the like, but what I'd really like to know is what more attractive fonts might be found on other systems. The Web Style Guide, Typeography, Cross-platform issues is a good start, but it doesn't cover Linux.
It's occured to me that we really need to be able to do a bit of cross platform testing here. I've volenteered to take on the burden of using a top-end PowerBook, but the management has yet to get back to me on that one...
At work, we use a web application timesheet system (written in Notes, would you believe). You have to type the dates in yourself, which is irritating. There is absolutely no flexibility as to how you enter them, which is even more irritating. So, today is "07/10/2003". You cannot enter "07102003", and nor can you enter "7/10/2003", nor "07/10/03". You have to enter exactly "07/10/2003", or you'll get an irritating dialog box, detailing the acceptable date format, as soon as the date field looses focus. This drives me insane. We have got to use this widget, or something like it.
Update: Our timesheet system is "functionally stable", i.e. no enhancements are being made, no matter how useful and trivial to implement. Sigh. I may have to get a petition up. I'm certainly not alone in being irritated by this.
What a cool little widget!
Include this link on your page.
Via Brett Morgan.
An excelent set of tips for developing web sites for non-technical people. It's important for techies to bear this sort of thing in mind.
Via from the orient.
The Color Schemer is a superb tool for creating harmonious colour schemes.
Via Mark McEahern.
Interesting discussion on Slashdot - Who is Using Tomcat or Jetty in Production?
No one recommending Websphere, I notice.
We are using Tomcat for our latest product, but we haven't rolled out to our largest clients yet...
If we end up with scalability issues, there are some alternative J2EE servers mentioned here which we can look at.
Cool 5k web-pages, winners of the 5k competition.
See also Dive Into Accessibility. There is no excuse for an inacessable website. Not any more.
Connection Pooling with Tomcat is just what I have been looking for - I've been trying to work this out for hours!
Dive into connection pooling with J2EE is a good follow-up read, but it doesn't have a simple step-by-step guide to getting started.
Open-source servers today discusses a number of interesting web app platforms.
I have mentioned Zope before.
(Via Daily Python URL)
The dawn of Eclipse.
My boss and I attended the Stargate event at IBM yesterday. There we were shown the new version of the WebSphere Development Studio Client. This comes in a bewildering variety of versions, and consists of an equally bewildering array of subcomponents. All of the versions of WDSc, and all of the subcomponents were referred to by acronym, and all the acronyms began with W, and we were thoroughly confused.
But anyway, the long and the short of it is that if you are an iSeries shop, you get the lot.
The new version of WDSc is based in the Eclipse framework. As anyone who has used Eclipse will know, it is just beautiful.
Eclipse is basically a framework for building IDEs, and other things. It ships with a plug in which makes it into a Java IDE, which as I said, is superb. Tools vendors other than IBM are also basing tools on Eclipse.
WDSc consists of a number of plug-ins to Eclipse to enable iSeries development. It has tools to navigate libraries and objects on the iSeries - think of a cross between PDM and Windows Explorer, but with filtering options more powerful than either. You can edit and compile RPG, DDS and so on, with any one of several powerful editors. SEU is ancient history now.
There are also some powerful tools for developing Java based web applications possibly involving iSeries components, though not necessarily. The tools for building JSPs, beans of various types (including EJBs) and so on are powerful. There are also tools to building wrappers around iSeries based RPG modules and turning them into beans and/or web services.
All great stuff, and for iSeries development it is going to be wonderful.
It is missing one crucial set of tools, though, as far as I am concerned. There are no tools for refactoring RPG. All these clever tools which IBM provide are meant to work on nice modular systems, where your presentation and business logic are nicely separated. Our legacy system isn't like this - it consists of large programs (5000 to 15000 lines) with the business and presentation logic thoroughly mixed. There are no separate callable modules implementing business functions, and that is what much of the new tooling requires.
Now, obviously there is no way to automate the modularise of a large program - it is inevitably a manual job, and a big one. But there are tools which can help - or there could be.
The Java development tools which ship with Eclipse include a number of powerful refactoring tools. For example, you can highlight a block of code and extract into a separate function (method). All inputs to and outputs from the selected code are automatically worked out, and turned into parameters (arguments). If large RPG systems are to be modernised, this is the sort of tool which we need.
I brought this up at the event. IBM have no plans to build this sort of thing into WDSc. Eclipse is totally modular and extensible, though, so anyone could do it. It was suggested that this might be an opportunity for my company! We are not a tools vendor, though, so it isn't going to happen. There were a number of tools vendors present, though, and a couple were interested enough in the idea to come and talk to me...
The latest version of WebFacing was also demoed - on which more later.
Another 15 years, and all web sites will be 100% usable. Yeah, right.
What improvements there are can only have been spurred on by the likes of Mark Pilgrim.
These draft guidelines are pretty good - HTML for content, CSS for layout, no browser specific tricks, ensure accessibility. Cool!
I was a little worried that he was just going to keep up with the character sketches. Good they were, once you accept that making your site accessible is important, you don't need to keep on being told why. (I must say, SubAverage's parody was funny.)
Instead, Mark is going to give us some practical advice on how to make our sites more accessible. Good.
The CSS Panic Guide is a good set of CSS related links, covering what, how and why.
Basically, the categories used by the site ought to match the categories that the users perceives, but usually don't.
Of course, this is the case with for all UI design, not just web site design.
This site is all laid out with CSS. It all seems to work fine. I'll get around to CSSizing the rest of my site, too. Eventually.
Since starting to use Moveable Type, I've had a good look at CSS. I bought the O'Reilly book, 'cos it's always the first thing that I do if I'm interested in a new technical area - see if O'Reilly have a book on the subject, and buy it if they do. I've not been disappointed yet.
I think that CSS is the way forward. So does Mark Pilgrim.