Archive for March, 2008

Upgrading to WordPress 2.5

Wordpress 2.5 Upgrade

Ok, so I’ve just upgraded to WordPress 2.5, and so far I’m pretty impressed with the new admin interface. The upgrade itself went pretty smoothly and also prompted me to create a scheduled database backup, which is something I should have done straight from the start.

A New Interface

There’s plenty of useful new features, mostly for the admin end of things. The two I like the most are the new multi-upload capability and the widigitized dashboard. And as any modern web-based software should, it sports a host of Ajax style features including new editing tools, and an updated plugin section.

Heating Up the Competition

Earlier in the month, whilst setting up this blog I considered a number of other blogging tools, including B2Evolution – a branch off from the original WordPress, Movable Type, and Textpattern. After some testing and poking around I decided to go with WordPress because of three key reasons:

  • The flexible open source GPL licence
  • The simple intuitive interface
  • A straightforward templating system

I don’t think any of the other blogging software out at the moment can match WordPress for it’s ease of use and customisation, yet there are still some who are moaning about it’s lack of features for multi-user blogs.

Bending it Your Way

WordPress is an open source project and much if it’s development is contributed by the dedicated members of it’s community. If the new release of WordPress doesn’t provide you with what you need then I say it’s your own fault for not getting involved and encouraging it’s development in a direction that suits you.

I for one am, so far, delighted with the new release and encourage the continued development of a great tool that is largely responsible for the explosive growth of bloggers on the Internet. To the nay sayers, all I can say is “get involved!”.

Comments Closed

Looking on the BRITE Side

BRITE Accel Programme

For the last 18 months I’ve been a participant in a government funded programme which was setup to help small technology based businesses, mostly in the Dublin area. It provided heavily subsidised training, mentoring and networking opportunities. Yesterday, in the Digital Hub, we had our final graduating event.

Over the course of the many training sessions and networking events, which included topics like Business Planning and Negotiation and Conflict Management I was lucky enough to meet some really great people and learned a huge amount about running a business. I also managed to become ILM certified in the process.

Sound Business Advice

For me, starting out in business on my own was driven by a love of what I do, but nowadays being passionate or expert in a particular field isn’t enough. You have to know how to run a business as well. You have to be able to do all the other boring tax and admin stuff too. The BRITE programme has given me an enormous amount of help in this area.

In addition to the extensive training courses provided mostly by Optimum, it also provided 20 hours of one to one private business mentoring, which included consultancy with an IP specialist solicitor. I used my meetings with my mentor to discuss my business plan, some legal documentation, and also as a time to think strategically about where I’m going with my business.

YGOWYPI (You Get Out What You Put In)

Like anything I suppose, the more you give of yourself into something, the more you get out of it. It’s true in relationships, it’s true in business and it’s also true in learning. I came to the BRITE programme with an open mind and a willingness to learn and I took great value out of the different training courses I went to.

There was great tips on tax, public speaking, creating a business plan and long term strategy (to name but a few), but these things are only really useful if they are put into action. I think I’ve managed to put a good portion of what I learned into practice, but there is still a huge amount that I need to go back and look at.

The Real Social Network

Nothing compares to meeting people face-to-face and really getting to know them. During my time on the BRITE programme I’ve made great contacts, some new friends, and I’ve even gotten some new business out of it. The programme included three overnight networking events hosted in the Hodson Bay Hotel, the Marriott Johnstown House and the Dunboyne Castle Hotel. These helped enormously in getting to know the other participants. People always tend to relax a little after a few free rounds at the bar!

Moving On

Now that the programme has ended (for me at least, I think it’s set to run again next year) I’m looking for ways to continue what I started on the BRITE programme, to keep meeting new people within the technology sector in Ireland and to continue learning new ways to run my business.

I’m looking at a few different programmes right now, some are more involved than others, but all provide new ways to meet people, learn new business skills and help get your business out in front of the right people.

As soon as I’ve found my next networking programme, I’ll post it up here. In the mean time, I guess I’ll have to go back to paying for my own lunches.

SaaS is the Future

Software as a Service

Great Web 2.0 Services

Using online web services is part and parcel of my daily routine as a web developer. For time-keeping and invoicing I use the excellent FreshBooks by 2ndSite, for To Do lists I’ve been using Remember The Milk, for document collaboration Google Docs is the best option at the moment, and I use Google Calender and Google Reader for scheduling and RSS feeds respectively.

As more and more services, which traditionally were only available as desktop software are adopted for the web, they become more flexible, accessible and are far easier to use. For developers, hosted software is easier to update, maintain, and monetise. And with complete control over who has access to the software, the idea of software piracy is now as old as the notion of a downloadable trial version.

Taking Advantage

Software as a Service (SaaS) has really gotten my attention of late and I think I’ll be spending more of my time in this area over the next while. I believe there is a great opportunity to provide tailored software for specific industries and communities. The days of large software houses dominating the market is coming to an end. Tools that try to be all things to all people often fall short of the mark and end up bloated and difficult to use. In contrast, providing software that is highly tailored to market niches is a more focused approach that is growing in popularity.

Collaboration is King

Hosted software can be accessed by any computer with an Internet connection, it all runs directly within the browser. This simple shift in the software paradigm highlights a major advantage that SaaS has over traditional desktop software. It facilitates a truly collaborative and multi-user environment, which will encourage a whole new wave of software applications to be created. So far, this opportunity has mainly been manifested in social networking websites, but they have struggled to convert their huge visitor numbers into huge piles of cash.

A business collaboration tool built on the SaaS model that also harnesses the inherent social networking capabilities of the web is the type of project that really interests me.

Comments Closed

Building Web Applications My Way

Web Development Tools

There’s a huge range of excellent tools available to developers to help them build their next big idea. Over the years, the tools I favour and the way in which I use them have had to be constantly updated. Some of this was due to improvements in technologies but more so it was because I’m always looking for the best way to build web applications.

Often the changes in my approach are borne from wanting more re-usable code. Sometimes it’s because it’s simply a more elegant way to do it, and other times I update my approach because I just want to learn. Here’s a quick look at how to build web applications my way:

Design

The first stage to creating the app is to get a good feel for what it will look like, and the best place to do that is in your favourite graphics package.

  1. Design the Dashboard/Homepage as a graphic.
  2. Use the new design to determine what parts need to be images and what can be styled as CSS.
  3. Cut and crop the necessary images.

Prototype

Before a database has been designed and before a single piece of programming code has been written, I always do a prototype. I code up the XHTML/CSS of how the app will look based on the design done in Photoshop. Even the parts that would normally be generated by the database are hard-coded into the page. This might sound like a fruitless task, but changing data fields or your application structure is far easier at this early stage.

To simplify the structure of the code and to help keep the PHP separate from the XHTML I use Smarty. It’s quick and easy to learn and makes development easier and maintainable.

  1. Setup a new instance of the Smarty Templating System.
  2. Create a template page and CSS file.
  3. Hard code everything into it including data that will eventually be dynamically driven.

Control

I’m a huge fan of the MVC approach to development but rather then use an existing framework, I tend to write my own as I need to. This gives me ultimate flexibility and freedom to create whatever I like. The ‘C’ in MVC stands for controller, and that’s what I create first. It forces me to think carefully about what the application really needs ‘underneath the hood’.

  1. Think about what the application needs to do.
  2. Write the controller as if all the classes and methods already existed.
  3. Output to the templates.

It’s About Class

Once the templates have been coded and the controllers have been fleshed out, I then go about writing the ‘engine’ behind the scenes. Doing it in reverse means that I have more flexibility during phases of the project where I need it the most.

  1. Write the main class to act as the application controller.
  2. Create a new class for each object within the application (such as a user, a report, a customer etc.).
  3. Re-use classes and plugins wherever possible.

Database Design

When I started out designing web applications I would always create the database first and work from there, but now I’m certain that doing it in reverse and building the it last is by far the better way. So, based on the needs for tables and fields which undoubtedly arose during the class creation stage, these can now be built into the database.

  1. Determine what tables and fields are required.
  2. Give plenty of thought to normalisation and keep redundancy to a minimum.
  3. Build the database. MySQL is my engine of choice.

Revisit the Prototype

Now that the structures are in place to populate the template with actual data, it’s time to create some template code that uses the variables assigned from the controller. The syntax of Smarty’s template code is very straightforward and anyone with knowledge of a C based programming language will pick it up very quickly.

  1. Assign the necessary variables to the templates.
  2. Remove the hard-coded temporary data.
  3. Write some template code to output the information.

Technologies

There are loads of different options when creating web applications, here’s a list of the tools and technologies I use:

Tools

Technologies

  • Server Side Scripting: PHP
  • Template Engine: Smarty
  • Javascript Framework: jQuery (great for Ajax and UI widgets etc.)
  • Client-Server Communications: JSON
  • Plugins: PEAR
  • Database Engine: MySQL

Summary

So, that’s about it. Obviously this is an extremely high level overview, but I’d be very interested in hearing how other people go about creating their web applications. Go on, leave a comment!

Comments Closed

Semantic Web Links – Microformats

XFN Banner

The semantic web is the buzz of the industry right now, so in keeping with current trends, I’ll be using xfn formatted links in this blog wherever possible. I know that Yahoo have started to spider this new information but apart from them, are there any other really useful applications harnessing this new wealth of information on the web?

Here’s my micro-formatted hCard, built using the very easy-to-use hCard Creator.

Comments Closed