I spent the day playing with JSGrowl, JQuery, and am thinking about doing some things with Raphael. Raphael is what is used to generate the wicked looking “impact” graphs on github — I want to use This Raphael Widget to show some topology associations between objects in the web app. The JSGrowl stuff? Live event updates as new events happen in my background daemon (cobblerd), such as a background task being started or failing. Wicked.
These are all things that would have made my life infinitely more awesome at my last job, where I tried to do much of this the hard way (raw AJAX, raw CSS). Today? We have it easy.
Previously I had attempted to try to understand JQuery the hard way — all of it at once, when I really should have tried to just borrow what I needed to do. I’m starting small, with simple things like getJSON talking to my custom JSON pages, and … OMG … it’s full of stars.
I should also add, people who think Javascript is hard are weaklings. I’ve said that for a long time. It’s quite a useful language, it even has first class functions and can be rather functional — and is totally fine especially if you are writing the right minimal amounts of it and leaving the rest to libraries. You don’t really even have to mess with the DOM that much, though I did a bit for my “multiple network interfaces editor”, which is, IMHO, still a bit of an abomination.
Anyway, good stuff.
Also thanks to Django for making basic web boilerplate a bit easier — though I still think it’s templating engine is a /bit/ on the lame side compared to Cheetah, though it’s easier to write, meaning I think it will attract more contributors. As I was talking with Dan Radez, the complexity of the language is powerful, but it /not being able to do things you want to do/ is also a bit of a feature making sure you have a decent model separation. I should also point out that I’m not using the model classes though. I hate it when web applications are tightly aware of their data model and you implement things on top of them. I prefer a solid backend separation with the web service completely controlling the model, which makes absolutely sure you have an API you can hand to someone that will do whatever you need it to — because you yourself have to use it to build your app