Archive for the ‘development’ Category

Light-weight and quick CMSs solutions (that work!)

Friday, December 11th, 2009

Not too long ago I had a chat with a graphic designer who told me about that amazingly easy to use CMS that will leave all developers sooner or later unemployed but I did not feel that threatend to try it out until recently that I needed to come up with a solution for a models agency website that required only a few pages to be frequently updated, consisting mainly of text and images. I thought to try that miraculous thing, whose name reminded me of Sushi, that allows non developers to offer CMS solutions to their clients just out of curiosity and because I found it totally uneccessary to install a big full-on CMS or write a bespoke one.  By nature I am not easily convinced that things are as great as they sound, and in every case I try to discover imperfections and disadvantages so I make my life a bit harder than it deserves to be. However, in the case of CushyCMS, I was taken by great suprise and started being worried about graphic designers taking over the whole world being able to offer complete web sites with both great looking front-ends and functional back-end solutions.

The big advantage of Cushy is that it is very fast to set up as it only requires registration (which is free), rather than any sort of installation. It is ideal for small web sites that users want to update text and images in some parts of their site e.g. news, events or even the homepage. The only thing the designer has to do is to provide the FTP details of the site, specify which parts and pages will be editable and who is going to edit those. Cushy will then create the WYSIWYG editors and the CMS is up and running! I have never come across any CMS that can do the job so quickly, absolutely stunning!

Unless your client has a big site with lots of different content types, it is not really worth installing one of the big CMSs such as Joomla or Drupal. But even if this is the case, you would be better off developing a proprietary CMS that does exactly what your client’s requirements are, rather than install an all-in-one solution that will result in unnecessary server processing, slow response times, let aside bugs that are very hard to find and fix given that those applications have been written by so many different people using totally different coding styles.

Wordpress is getting more and more popular as a CMS lately apart from being an excellent blog platform. It is much more light-weight and clean compared to Joomla and Drupal and with the recent release of the Pods framework it can easily(?) turn into a powerful CMS. What is great about Pods is that you can create and display your own content types, and even build relationships between them, unlike Cushy, which make it really powerful while at the same time it retains all the Wordpress advantages: simplicity, SEO benefits, excellent plugins that increase functionality without having to tweak the actual code (normally). No wonder Wordpress won for the first time the ‘Best Overall  Open source CMS’ award in the 2009 Open Source CMS awards.

You need to bear in mind though, that Pods is made for developers who are familiar with PHP.  For non developers, there are a few alternatives s that can help significantly turning Wordpress into a CMS but with some limitations. The most interesting ones are:

  • Custom fields built in functionality – assign custom fields to a post (requires editing templates / php files).
  • More fields plugin – add extra (custom) fields in the write/edit page – more powerful than custom fields.
  • WP-CMS Post control plugin – control your admin write options and hide unwanted items from content authors.

There’s many other interesting light-weight open source CMSs for small websites many developers claim they are easy to use and set up such as XOOPS, concrete5, SkyBlueCanvas, Perch and MODx. Unfortunately, I haven’t had the chance to try them yet but once I do I will write another post about them.

Why a designer can love Ruby

Tuesday, October 6th, 2009

Over the past eighteen months, we’ve built more and more of our projects in ruby frameworks (rails, merb, and sinatra). It’s been hugely exciting for our coding team – new technology, new tricks to learn, and the whole ‘geek-cachet’ of being on the bleeding-edge.

And, whilst a change in the technologies underpinning  our sites normally elicits a disinterested ‘meh’ from those of us with ’softer skills’, our UI, design and SEO staff are hugely excited about the move as well.

So, what makes a non-programmer excited about a programming language and its associated frameworks. It’s not that it’s a ‘miracle tool’ for non-programmers – Rob still spends half his working day rolling his eyes as I ask (for the 25th time) how to add a ‘foreach’ loop in Ruby. What’s revolutionary is the way it enables us all to work closely together on a project and deliver a much more holistic and integrated solution to the client. (It’s also no bad thing that it has also slashed the time it takes for us to develop complex web applications).

To be fair it’s not all down to Ruby alone, but also the simultaneous adoption of an MVC (Model, View, Controller) workflow and ‘git’. MVC isn’t unique to Ruby frameworks, but it is much easier to incorporate than it would be with a PHP-based workflow (yes we know about Cake). Git is a robust versioning control system that leaves SVN for dead. In adopting MVC and ‘git’ we have effectively separated the work Simon (Major Model), Rob (Captain Control) and myself (Vice-admiral  View) do on a project.

Pre-Ruby, we used to design a site’s look and feel and then code it (mostly to stop designers and programmers cursing each other as the latest version of a template got overwritten for the fifteenth time). Now that we’re all able to work on a site at the same time without tripping over each-other’s ‘virtual toes’, we’re actually finding more time to talk to one another, brainstorm on the job, and refine the shape a project as we go along.

The end-results is that we are much more agile in how we build sites and applications. It’s effectively one giant ‘mix-in’ with ideas bouncing round at a million miles an hour and new features being discussed, prototyped and rolled out in hours. And the client benefit is huge (at least for those clients that ‘get’ the whole agile methodology). They’re benefitting from a cross-disciplinary team working together and building in great features that weren’t even the scope (and for for no additional charge at that). How could it be any better?

Talk to us to see what ‘agile’ can do for you.

A bit of Merb mojo

Thursday, November 20th, 2008

I guess it’s true for a lot of businesses, but it’s a sad fact that the busier we are (and the more we have to tell you about) – the less time we get to add blog entries.

We’ve just finished up a couple of big new sites, My Wish Wand and Complete Models and effects in Merb.

Geeks like Merb because it’s an “agile, platform agnostic MVC framework that plays nicely with Ruby” (as Simon and Rob will explain in altogether too much detail if I ever let them out of the back room). But developing sites in Merb also results in huge benefits for our clients.Using Merb drives costs down and slashes development timescales.   So how does it do this? (And why should you care?).

A lot of it comes from the MVC approach used by Merb. MVC stands for Model (the end-user data we’re interested in using on the sites), View (how the data should be displayed) and Control (the actions we perform on both). This means that Simon (Mr. Model), myself (Mr. View) and Robert (Mr. Controller), can all work simultaneously on a section of a site without constantly getting in each other’s way or (thanks to our recent adoption of Git) overwriting each other’s files.

Merb is also much leaner and more flexible than Ruby on Rails (our previous MVC framework of choice). Merb 1.0 has only been out a couple of weeks, so it hasn’t hit the mainstream web design community yet. This gives us (and our clients) a real competitive edge.

It really is Merbaceous!

  

Merb 1.0 Released

Tuesday, November 11th, 2008

Well the last couple of months has been a roller-coaster ride. Previously we had only used Merb for small admin sites, but on October 2nd we launched a massive site “MyWishWand” (www.mywishwand.co.uk) written entirely using merb. (using nginx + thin). As the merb developers were reaching the 1.0 milestone and code changes were flying in and out of the git repository (and rubygems too) this was nail-biting stuff. But it was worth it.

From a programming perspective this has to have been one of the most satisfying projects I have ever worked on. It’s all in there – we’re sending out automated emails based on additions / changes to the model, we’re extending classes (adding .uk method to Date for example), we’re pushing Data Mapper through it’s paces (loads of many-to-many resources) and, my personal favourite, doing routing voodoo – which I want to share now…

The challenge

MyWishWand is a wish-list hosting site that lets people keep a wish-list (typically for their children) online. Once created the wish-list can be emailed to people or added to a party invitation so that friends and familty can easily come and grant wishes. With respect to the party invitation we wanted a way to let the individual users create a nice url. Obviously this had to be unique across all wish-lists and all users. To that end we decided to make the url use the username as the first part of the domain and then the unique name for the wishlist as the end. (e.g. http://simon.mywishwand.co.uk/birthday) First we created the * A record on the DNS server for the domain. Then we had to think about how to route any number of usernames to the same controller. For about 2 minutes!

Merb::Router.prepare do |r|

r.match(’/:niceref’).defer_to :controller => “grant” do |request, params|
unless request.subdomains.empty? || %w(www dev 192 127 mywishwand).include?(request.subdomains.first)
params.merge({:action => ‘take_niceref’, :user_name => request.subdomains.first})
end
end


end

jQuery and Vodafone

Thursday, June 26th, 2008

As you may know from previous posts, we’re loving jQuery. However, the other day I previewed a site over Vodaphone’s 3.5G mobile broadband and it all went horribly wrong. Vodafone seem to be compressing data in such a way that jQuery simply doesn’t load. The site appears just fine over T-Mobile’s network, so clearly not all carriers are doing the same thing.The solution? Thankfully it didn’t take to long to find (unlike our ongoing battle with IE7 over PNG transparency). Use the compressed version of jQuery and all is suddenly right with the world.

Getting excited about merb

Wednesday, June 25th, 2008

We’re huge fans of Ruby, and make use of Ruby on Rails whenever we get the chance. MVC frameworks feel so natural in web development, getting sites up faster while keeping everything neat and maintainable is a nothing less than a great thing.

But as great as Rails is, it’s at the point now where it’s feeling a little bloated. The truth is, a lot of applications don’t need a kitchen sink, some don’t even need a kitchen. Rails makes a lot of excellent decisions for developers, which cuts a lot of time out of the development cycle, but I can’t help but think the rigidity of rails is making me churn out cookie-cutter rails sites.

Enter Merb, a younger Ruby MVC framework which bills itself as “a hackers framework”. It’s developing quickly, and we’re getting excited about the release of version 1.0. It’s shaping up to be an excellent tool, and I’m looking forward to getting some Merb projects into production.

(Short) List of cool things:

Merb puts the big decisions in your hands, you choose which ORM to use, which javascript framework to use, and how you want to template (currently DataMapper, jQuery, and Haml for me :) ). It gives you just what you need to build whatever you want, how you want it while staying small and out of your way.

My favorite thing about Merb is how small and tight it is, in the most recent merb-gen you can even specify how you want your app structured, from the default structure (which is still much smaller than Rails), flat, and very flat. With very flat being just a single file – nice. With the default structure, it’s all every intuitive as to where everything is, and the configuration is simple.

If you’re a fan or Rails, I’d suggest taking a look at Merb – or least keeping it in the back of your mind. I’m sure it’s something that will only gain more and more attention, and some well deserved hype.

 

Blog powered by WordPress