Here is a route I went on today on my Mountain Bike, thought I’d share it as its a good one. Helps explain the mysterious red “Works Unit” sign from the M4! Also gave me a chance to try out Google Maps plotting tools.
It now uses Silverstripe 2.2.1 – an excellent open source Content Management System (we are using it extensively at work for “brochureware” – or sites that would otherwise be static HTML files – put together in Dreamweaver or similar).
Check it out if you are looking for a CMS – has some great features for both the end administrator (nice visual interface) and the developer (uses PHP5 and MVC).
Some sites that I’ve come across that are targeting the individual to try and adjust their habits:
London Green500 is an exciting project I’ve been working on for the last few months. The full details of the programme for the London Development Agency will go out next week.
In a nutshell its a Carbon Management program for large organisations in the London area – aimed at reducing CO2 emissions by 1.5 million tonnes over the next couple of years. Today the marketing site went live (which is mainly a Content Management System), later in the month the Customer and Administration parts will go live. This post also has a bit of an ulterior motive – getting the site into the search engines – as its brand new and I know my blog is crawled by Google etc.
From a development standpoint the Customer and Admin areas are more exciting as they are powered by the “AEA Framework” which is major initiative I have been working on since I joined AEA earlier in the year as Architect/Senior Developer. Zend Framework (and therefore PHP5) powered, with Smarty for views (of the MVC part) some nice templating and other modules to support the various projects at AEA.
When I can spare a bit more time I’ll post some more stuff on the AEA Framework. All I say for now is that at the moment I’m putting the finishing touches to what we are calling Advanced Forms. Forms that (as an Administrator) you can edit via the site right down to the field and validation level. So you can build complex multi-page forms and ultimately processes with less code – actually mostly from the site itself). We are also integrating YUI components such as the Datatable. Can’t wait to write more about it!
It made it on to the BBC news site too – which is good news.
I decided to buck the trend and go for a Sony MP3 player over the Apple Ipod when I bought MP3 players for myself and the missus. On the whole they were a good buy – sound quality excellent but desktop software a bit iffy…
Anyway I discovered a Firmware update today and after careful consideration (as firmware updates can be a bit risky) I took the plunge and upgraded my NW-3000 from 2.01 to 3.00. Really pleased I did as the interface is now much quicker and has an improved loading icon (rather then the disk spinning you still see the normal screen with a little loading AJAX style symbol bottom right (the area where battery status is shown). It also supports AAC files and has some other little improvements – se the linked page above for full details. I upgraded the wifes A1000 with no issues too. Also I used Vista to do the upgrade.
So if you are concerned follow the instructions to the letter, keep your fingers crossed and hey presto improved MP3 player!
Naturally I take no responsibility for any damages occurring from following my recommendation – flashing firmware is always risky and you do so at your own risk.
This will be the first in a series* of articles on web applications development – not the specifics about programming, but more tips on the infrastructure and processes that can make life easier, more productive, successful and better aligned with best practises. Its based on my experiences of being in development teams and leading development teams.
I see these articles as being useful to a development team thats growing from a 1 or 2 man operation to a larger team and is perhaps using Open Source development tools such as PHP/PERL/Python and perhaps aren’t in a very processes driven environment…
Most developers won’t generally document their work as a matter of course – either they simply forget, overlook it or its just not that exciting for them. So 3 things:
Illustrating the value – most developers are already sold on documentation being a generally good idea but others aren’t. Some fear that by documenting they loose control over the project or the work that they primarily work on (in fact the reality is that is the opposite…) or they just really don’t see the point. Highlight the facts that it enables team work, improves quality, makes support and changes easier etc. Also that holding all the knowledge up in your head means that you are stuck in your current role as its not easy to bring others in to do what you do so you can be promoted.
Another great benefit is inducting new team members – it allows you to point new team members at the wiki site to help them get up to speed quickly – and you can also use that process to fill in any gaps in the documentation (and get the new start to include their tips and findings as they learn the ropes…
Build it into the development process – obviously you need to have a development process if you haven’t got one but once you have it just becomes part of the steps:
So ensure that documents are required for each step in the process – and make time for that documention. The nice thing is that documentation is a lot easier if done throughout the project life cycle rather than all at the end (then it is just really daunting) – as generally what you plan to do is what gets delivered (and if things deviate from the spec during development you can just adjust it)…
Make it more interesting – its more that just that in reality as its picking a documentation tool that supports the above points and works for the team. For me development documentation seems to works well with an internal/Intranet Wiki (something like MediaWiki for example). The main benefits (over office docs for example) it allows easy collaboration, allows for a geographically disbursed team and is generally nicer than using word processing software. It’s made more interesting by feeling very “Web 2.0” (as much as I hate the phrase!) and has some great tracking features – like the recently edited articles page. Once the team have seen the advantages and you bore you colleagues to death with “the W word” then you’ll find that you have a healthy wiki site and documentation, documentation, documentation (with any luck with minimal pain!)
Categorising the Wiki – here are some ideas on some categories that work:
Another option (which has some other positive side effects including marketing) is blogging about development projects – and this is something I am considering for my current team. The Wiki will be for the more technical and internal documentation aspects and the blog for what the project actually does. The added benefit of the blog is that it can do some link / SEO stuff for your projects and raise the profile of the development work that your team is doing to a wider audience. This is particularly useful if you develop an Intranet system for your company – where you are adding new features or enhancements over time.
To make MediaWiki easier to use (for those who aren’t familar with the syntax used on Wikipedia) we enabled a WYSIWYG editor – FCKEditor. There is a whole range of great Wiki software out there if you don’t like the look of MediaWiki – just do a Google or have a look at wikimatrix.
The next articles will more than likely be about:
… watch this space!
*I don’t know how many there will be yet but if they are received well then heck there might be as many as 3 or 4!
Joel Spolsky has a great post on his blog at the moment -part of it reads:
“Now, there are various ways to get in trouble. If you donâ€™t like writing functional specifications or doing up-front design, what happens is that youâ€™re burdening the design phase with the development phase. If you ever started a new project by writing code, and you thought youâ€™d â€œdesign as you went along,â€ what youâ€™re doing is driving around with the handbrakes on. Hereâ€™s why. Designing a feature by writing a thoughtful spec takes about 1/10th as much time as writing the code for that featureâ€”or less. If you try to code as you design, then youâ€™re interrupting your short spurts of design with long spurts of coding. Now, if youâ€™re the kind of person who designs everything perfectly the first time, thatâ€™s fine. But I donâ€™t think you are. I think that your first designs are pretty good, but when you see them, you get ideas for even better designs. And if you already coded up the first draft, bad design, well, thatâ€™s coding time wasted. Your productâ€™s design can only get better at 1/10th the speed that my productâ€™s design can.”
I couldn’t agree more with the above, yet so often web systems are developed by coding after just talking to someone about an idea or “go off and do that will you” (that being a sketch on the back of a beer mat). Its refreshing that I am currently writing a specification for a web system (for the first time in what feels like ages)…
Joel on Software is one of the sites I visit on a regular basis – its very informative on software development issues and often very funny – give it a read sometime.
Seeing as I now work for what is predominately an Energy and Environmental consultancy these days – I’m doing a fair bit of reading and research into Carbon Dioxide and other climate change issues. There seems to be a real momentum building behind green Information Technology. Today I came across The Green Grid who are a consortium of technology companies that appear to have joined forces to create a panel of experts on green data centre design. Interestingly their members feature:
2 of the companies I am currently considering using at work to replace our current hosting company (Donhost) who have let us down recently (more on that in about 12 months – when our current servers expire!!!)
Additionally I dugg a BBC article on Green IT which happened to be headlined under technology tonight and discovered that Google plan to be Carbon Neutral by 2008. Strange how patterns can emerge from web surfing at times!
I might blog a bit more about Green IT issues in the future – particularly once a big (and rather exciting project) that I am currently doing the analysis and architecture for goes live.
Why are most (small) IT support companies not interested in supporting Linux? If you are an IT support provider in the London area who can support a small network of Windows XP PCs and a Ubuntu (Samba) Fileserver (which pretty much takes care of itself) please get in touch!
I will post up details when I find someone on this in due course. [Edit opps I should have done more Googling before posting – it looks like Canonical might offer what I am after – but what I am saying here holds up – support for both Windows & Linux from IT support providers is needed…]
I think this could be an interesting/lucrative potential market – stop selling the over priced and bloated MS server offerings and sell the more cost effective and robust Ubuntu Linux based solutions for small businesses. What with web based management systems its got to be the way to go. Particular as lots of basic NAS boxes are going down the embedded Linux route.
Surely some of the saving in licensing costs can be passed on to the customer and some kept back as improved margin? I guess what this really needs to take off is a robust Open Source Email/Calendaring solution (Exchange Server killer) – I suspect Exchange is the reason a lot of businesses still go for Windows Server.
If there is one tool that has revolutionised how I develop (or more specifially investigate/re-engineer and analyse) web sites and applications its got to be Firebug: http://www.getfirebug.com/
Its great for those situations when you come across a site and think – how did they do that?! Clicking on the firebug utility (a green tick in the bottom right of firefox – once you’ve enabled it) and getting it to inspect the page soon reveals all!
Its also really handy for CSS – borders and spacing are visually displayed:
Recently I found a great little video on debugging AJAX applications with Firebug and the Zend Debugger which looks really useful. The Zend Debugger is another great PHP development tool which works really well if you have the Zend Studio IDE – when I find some more time I may well blog about that too!
Update – I discovered Yslow today – http://developer.yahoo.com/yslow/ – a plugin for Firebug that gives tips on Web site performance – pretty nifty.