This week on Boagworld: Paul looks at the growing importance of the favicon. Marcus talks about what to do when the work dries up and Rob Borley looks an alternative approach to storing data in your CMS.
Just wanted to say a big thank you for everybody who came along to the 100th boagworld. For more information on the evening check out my 100th Boagworld blog post. A special congratulations to the 4 winners of a years subscription to .net magazine and to Anna who won a CSS beginners course run by Drew and Rachel at edgeofmyseat.com.
Also live on the show we announce the winner of the FOWD competition.
News and events
Shift in the web wind
The latest Dot.Com boom is declining as far as I can tell. Are we on the edge of another Dot.Bomb?
Its an interesting question and one that seems to be appearing on an increasing number of sites.
Personally I have to say that I have become concerned about the state of the web at the moment. Not because I believe we have necessarily reached the point of a collapse, but because the boom we have been experiencing is unhealthy. I am in no doubt that we are now experiencing a bubble very similar to that of the dot com era. There are far too many copycat companies out there and the share price of companies such as Google are disproportionate to their revenue. What is more, once again we are seeing the majority of these companies leaning on advertising as a revenue stream. Advertising is very fickle business model because any dip in the overall economy and advertising is the first area to be cut.
So is everything doom and gloom? Are we about to all be out of work? Certainly if you work for a web 2.0. company or the majority of your clients are web 2.0 companies, then I would be twitchy. However, for the majority of us I don’t think there is much to be concerned about. Even if the bubble bursts there is going to be no shortage of web work around. The majority of web designers don’t work on web 2.0. sites. We work with offline businesses that have an online presence. These sites are not going to stop trading just because some high profile web businesses fall. The web is too well established this time around.
If it wasn’t for the fact that it will mess up people’s careers, I would welcome the crash. I think the current state of the sector is unrealistic and the larger the bubble grows the bigger the ‘pop’ when it bursts.
Best practice in email
Most organisations rely on email to communicate with their customers on mass. Whether it is order confirmation, special offers or regular newsletters, email is an essential tool in our web strategy. The problem is that our emails have to fight there way past junk mail filters and increasingly they fail to do so. This isn’t necessarily because we are sending out spam. In most cases it is because we are just ignorant of best practice when it comes to email delivery.
Fortunately this week I came across a great article that suggests some best practice when it comes to using email. This isn’t a list of ways to trick spam filters, rather it provides all kinds of great advice about running any kind of email campaign. From technical advice about CSS and HTML to common curtsy like don’t attach large files, this article really does contain some excellent advice. Finally, it also contains an invaluable list of tools for checking how likely your email is to be classed as spam. If you send out email to your customers then check out this article.
Flash based galleries for your images
Even better is the fact that there many flash based gallery systems out there that you can just drop into your site with minimal effort. Whether you are showing off your portfolio or building an image gallery for a client you might want to consider one of flash based galleries reviewed in Smashing Magazine.
20+ tools for working with AJAX
Marcus’ bit: Don’t panic
Marcus looks at those times when the phone’s not ringing, your inbox is empty and you just lost out on three pitches in a row. No matter how much you tell yourself not to worry, it starts to creep up on you.
Paul’s corner: Favicons – small but significant
In my section of the show I want to look at favicons. Favicons are those 16 by 16 pixel graphics that appear in your address bar, bookmarks and various other places. They maybe tiny, but they are becoming increasingly important. I look at why Favicons are worth your attention.
Ask the expert: Rob Borley on an alternative approach to your CMS
Paul: So joining us on the show this week is Rob Borley who is, what is your job title Rob actually, I should know this but I don’t?
Rob Borley: (Laughs) Ye you should I think you gave it to me.
Paul: Oh did I?
Rob Borley: Technical Manager officially.
Paul: Uhhh… But basically Technical Manager/Lead Developer/anything vaguely techie goes in his direction.
Rob Borley: Basically it’s my fault when it breaks.
Paul: Yes, so if you want to get pissed at somebody about the boagworld forum there’s your man.
Rob Borley: (Laughs) I knew this was going to come up.
Paul: Well obviously it was going to come up.
Rob Borley: (More Laughs)
Paul: So if you haven’t gathered, Rob works for Headscape, the web design company that myself, Marcus and Chris Scott run and no he shouldn’t be blamed for the boagworld forum, he is actually trying to fix it, but his skills just aren’t up to the job.
Rob Borley: Oh, I see, I see, I see… (Laughs)
Paul: (Laughs) But why I’ve got him on the show today isn’t actually to be rude to him about the boagworld forum, but it’s actually to talk about our content management system because I get a lot of questions asking why content management system Headscape use and what one we would recommend and stuff like that so we’ve just got through a kind of major rebuild of our content management system and so I thought OK lets get Rob on the show and have a little bit of a chat about it and how it works and what it does. So I guess Rob the question to kick off with is why did Headscape decide to develop its own CMS rather than go with an off the shelf one, because there are so many off the shelf solutions around it kind of seem absurd in some ways?
Rob Borley: Umm, ye I guess when you first look at the problem, as you say, there are lots of CMS solutions around but the reason we kind of work from our own is because it gives us complete control over what we’ve got so if there’s a problem with it, we know were the problem is and can go in and fix it but more likely if there’s some new functionality we need specific to our clients we’re able to just go and build it and develop it very quickly because we know exactly how the thing works. Often these off the shelf CMS’s are trying to do everything because they’re in competition with all the other products out there and so they’re vastly complicated, they do lots of things we don’t need them to do and they’re not generally as useful for the client as what we’ve got as a result, because they’re designed by techies, techies know how they work and they’re generally far too complicated for average Joe user out there. What we’ve build is tailored specifically for our clients needs and hopefully is intuitive and easy for them to pick up because it’s designed for them.
Paul: Would you kind of, you know, are you being more brash in that your saying all web design agencies should be developing their own CMS’s or is that something specific to our requirements and the type of clients we have?
Rob Borley: I think when you look at our client base and the sort of projects that we get, a vast majority of our projects are based on our CMS technology now and so, I mean, if we were doing just one or two projects here and there then it would probably make sense for us to get to know our favourite brand of CMS and use that, but as a vast majority of our clients are using this technology it’s actually more productive for us to develop with our own, because we can just keep reusing stuff and add any new development or any area that we can add to it, we can then use it for future clients as well.
Paul: Hmm… So we had a content management system, it seemed to work, why then did you, actually no it wasn’t just you, you and Chris persuade me and Marcus to spend huge quantities of money on re-doing it from scratch?
Rob Borley: (Laughs) Well the first iteration, well I say the first iteration, I think we’re up too officially CMS 3 before we started this new one, it naturally evolved, it came from the need of one client wanting a CMS and then we thought “hey this is a good idea” and things got tagged on and other things got tagged onto that and it just became this, evolved almost organic mess of Darwinian thing which worked and held together and did it’s thing but had never been properly designed, it had never been build for a specific purpose, it was all just kind of mashed together and so as we came to the conclusion that most of our clients are going to be using this we took the opportunity to build a new one from scratch to do it properly. That’s the general theory.
Paul: So what’s different with the new one to the old one?
Rob Borley: Umm… Well there where a few extra features like there’s a more complicated, well I say complicated, more in depth permissions system for pages and parts of the site, there’s also some work flow stuff we’ve added but the main difference is actually what goes on underneath and so this time around we build the whole thing on XML data structures.
Rob Borley: Which probably doesn’t mean a great deal to a lot of people out there, but what it means to Headscape, it’s actually changed the way that we develop projects and the way that we work, and it means a lot more less techie people can get down to the nitty-gritty of designing the data and the way things work.
Paul: So, give me an example of how that kind of works in practice?
Rob Borley: OK, so an everyday clients might come to us and say “We need a CMS to create” I don’t know, “hotel vacancies” and so what we’d have to do with previous versions of our CMS is go off, create the data structure in the database, write the logic in the server side pages and the database logic and techies would have to do that because your talking about writing ASP or .NET or PHP or using SQL Server and it’s a very techie orientated job. What we’ve done now by using XML is all the actual logic for the data structure is done in what’s called an XML Scheme which is basically a text document which describes the data. So it means that an average person in the company, who not particularly techie, so a designer or a project manager, a tester or someone can actually sit down and write a document that describes the data, feed it into the system and we’ve got our new area of data, our new “hotel vacancies” structure straight away. So it can be done much, much quicker.
Paul: So if I’m understanding this right, which I probably should do (Laughs)…
Rob Borley: (Laughs)
Paul: lah lah lah, so what we’re talking about here is basically that traditionally with a database you have a serious of hmm… well lets say for example in the “hotel booking” example you gave lets say the hotel had a name, a description and a price range, in the database that would have appeared as three fields basically, it would have been a name field, a description field and a price field.
Rob Borley: Exactly.
Paul: And then your code would have had to, on the back end, would have had to create form fields for each of those that would input into the database and on the front end you’d have to pull, ya know, your code would have to pull out those three pieces of information and display them on the front end, is that correct so far?
Rob Borley: Exactly right yes.
Paul: Right, so what your describing now if I’m getting this right is that basically you wouldn’t have three separate fields in the database, you would just have XML code for those three elements.
Rob Borley: That’s right.
Paul: And then the code both front end and back end looks at the code in the database and just pulls them all out and just displays them as form fields for inputting or text for out putting?
Rob Borley: Exactly, all the logic for that is already done so as soon as the XML is fed in, the back end displays the form fields to fill out the information, the front end pops out the raw XML which we can then style and apply your fancy CSS to.
Paul: I mean that’s quite incredible because like you say then, someone like Charlie who’s one of our Project Managers, can just go in and define, ya know, say we wanted to add, I don’t know, ratings to that list and then suddenly it will just miraculously appear on the front end and back end without any additional coding from you. Is that right?
Rob Borley: Exactly.
Rob Borley: And often, so we’ll be half way through a project and a client will come along and say, “oh, well actually I don’t want that text field there, I want this text field” or “I want this drop down” or “I want this particular text field to be on the front end” and they’ve never mention it before, ya know, it’s typical client changing things as they go along and the Project Manager can just go in there and change the scheme and it does it, it’s done.
Paul: So there are lots of people using this XML/database technique?
Rob Borley: We like to think it’s quite new.
Paul: Oh really?
Rob Borley: Yes. I’ve personally not come across it being used before, but I’m sure there are people out there who are going to correct me on that. (Laughs) But it is quite new.
Paul: It would be quite interesting to know actually, if you are listening to this and you know of somebody doing a similar thing, drop me a line on firstname.lastname@example.org. It’s just kind of interesting to know. So what about, umm… have you kind of made any changes that have kind of made expanding the functionality more kind of modular or anything like that? I mean beyond this XML?
Rob Borley: Ye.
Paul: Is the architecture designed in a different way?
Rob Borley: Ye, so previously it was built on ASP Classic, which is not best for modular design, it’s quite difficult then to move functionality around and re-implant it else were. This time we’ve built it in .NET, in an object orientated way, so the theory being that when somebody else comes along and say “I want this addition to the form builder” or “I want to add a rating system” or “I want to add a product management system/stock management system”, we can literally just, that goes in as a block of code, we call it in an object orientated way, we can turn it off for some clients and so hopefully you build it once and it works for everyone that wants it.
Paul: So does that mean we’re going to have a consistent version of the CMS basically applied to, no we won’t because if a client asks for a new module that’s not going to be on the previous clients ones.
Rob Borley: No, so we won’t roll it back to previous clients, but there’s the potential, as we build stuff up, the potentials great for using in future projects because core of code to use as a base for all the projects.
Paul: So there’s like a core, what do they call it? Kernel of code that will stay the same and all the other modules are built around it?
Rob Borley: Ye, and the idea is that the kernel is kept as small as possible, so that the actual “guts” of the CMS are as tiny as possible and then it’s used to call all these extra modules when it needs it.
Paul: I’ll tell you another completely random question.
Rob Borley: (Laughs)
Paul: That I got asked recently, that you may be able to answer, you mentioned that we’ve built this CMS in .NET and that we do do a lot of .NET work, umm… the question that I got asked was somebody was going on about how it’s hard to produce standards based code out of .NET or Visual Studios, do you know what they’re talking about?
Rob Borley: No.
Rob Borley: (Laughs)
Paul: Well it didn’t make a lot of sense to me because we produce standards based code don’t we?
Rob Borley: Ye, all of our code is output to your specification actually Paul.
Rob Borley: (Laughs)
Paul: Anyway it just confused the hell out of me that one so I thought I’d ask you about it.
Rob Borley: (Laughs)
Paul: So, what next then is guess is the thing you would kind of ask? Is this a model you think is going to service for a long time going forward or are we going to have to go through this process again in a couple of years?
Rob Borley: I certainly don’t see us having to redesign it again for a long, long time. I mean this seems like it’s going to work and it’s easy to add and extend, I think that’s the key, it’s also very portable, because all the data structures are all XML based, if we for whatever reason decided to ditch Microsoft and move over to PHP and mySQL, all we’d have to do it re-write the logic that calls the XML in and out.
Paul: Oh OK.
Rob Borley: The data structure stays the same to the potential for importing it to other technologies as well as extending the functionality is there, it’s going to be a lot simpler than it would have been in previous versions of things we’ve done.
Paul: That’s very interesting isn’t it? I like that a lot. OK so just to wrap up then, if people wanted to learn any more about this kind of approach, I know your saying there isn’t much around about this kind of stuff but is there any way you would recommend people start having a look?
Rob Borley: Umm… Well the key behind it is storing XML so that’s were you’ve got to start, you’ve got to start with actually storing XML in a database and using the XML data types that the various database engines use now and then pulling the data out , so if you’ve got a good grasp of XML and XSLT then you can actually use whatever server side language you like so if you into PHP, or ASP or .NET or Ruby or whatever you want to do umm… getting to grips with the way the XML works is going to be the place to start, there are lots of places to check that out, W3 Schools is probably the easiest place to start, so the base technologies are standards it’s just what we’re doing with them that slightly different.
Paul: Ah… I think you need to write a blog post on this Rob so that people can access it.
Rob Borley: Your going to let me loose on boagworld Paul that very brave.
Paul: I’ll let you loose, if you write something I’ll put it onto boagworld for you.
Rob Borley: (Laughs)
Paul: Once I’ve read it, edited it and removed all the rude comments. (Laughs)
Rob Borley: Good idea.
Paul: Because you really need something else to do. You seem to be sitting around doing nothing so lets get you doing something constructive. (Laughs)
Rob Borley: I think so, hence I’m on this show.
Paul: Exactly, alright Rob thanks very much for coming in, that’s really interesting, a lot of that I’ve kind of grasped at some level because you’ve told me I need to understand it but ye, that’s really helped.
Rob Borley: (Laughs)
Paul: Thank you very much.
Rob Borley: No problem at all.
Question of the week
Are we facing another dot com bust and if so what affect will it have on you? Answers in the comments.