Archive for 2007

From Web D to Web Apps

September 18, 2007 by Mahangu Weerasinghe | Tags

As our more regular readers may already know, Vesess began as a web design firm. What can we say? It was the early 2000s, and web design was hot. If there’s anything the Internet has taught us over the past half-decade, however, it’s this – things change. And that’s exactly what we have done.

As you may have noticed, we set the tone for this shift in focus a while back with our Vesess.com v4 design, by changing our tagline to design + code. What are we saying? We hired some code monkeys, and well, things are paying off, chum! We’re not allowed to talk specifics yet (Lankitha does terrible things to people who leak info), but rest assured that the first line of web apps from Vesess is just around the corner.

What kind of web apps, you ask? Social networking? Well, sorta. Think of it as social networking for small businesses. A matchmaking service for startups. Is it just an extension to gowebplans? Well, it’s an extension, but not just an extension. As we said earlier though, that’s about all we can say for now. There is, however, one small favour you can do for us.

Fill out this wee survey, and help us understand what you, as a small business owner, want from a web app aimed at making your life easier. What do you get from it? Well, we’re all out of cookies, but how does 25$ sound?

25$ for filling out a survey? Yes. And no, we do not require your Credit Card number to verify your personal details.

Death to the trees

August 20, 2007 by Mahangu Weerasinghe | Tags

During my formative years, I read a lot. From Enid Blyton books to short stories, and longer novels, I always had something made of dead trees in my hand. I had an active imagination, and books appealed to me because they allowed me to create a and inhabit a world of my own, even if it was just for an afternoon.

I would form parallel lives for myself, existences in which I would be a cop, a pirate, a skydiver. Books were not just entertainment to me. They were a far bigger part of my life.

Then, as I came in to contact with the Internet, I began to look at reading in a different manner. Did I read? Of course. I mean, find me a web junkie who doesn’t read. I read, and I read a lot. A lot of crap, it turns out. One of the biggest drawbacks of having a strong online life is that you constantly have to be up to date on the latest trends, memes, and lulz (epic or otherwise) to stay in the game.

You can’t, for example, have someone send you a lolcat, and not know what it is. That is Internet geek suicide. So, we, the geeks, obsessively refresh our feed readers throughout the day, looking for that bit of new information. In the real world, knowledge is power. On the Intarweb, having seen the latest youtube video first is enough to put you ahead of the rest.

Anyway, I digress. Today, I cleaned out my room. It was the first real cleanup it had received since I finished my secondary education, and believe me, it showed. After wiping away layer upon layer of dust, I stacked everything in to marginally neat piles, and began to sort through them one by one. What did I discover?

I had a lot of books. In fact, well over fifty percent of my room was literature. From Sue Townsend to Romesh Gunasekara, my room was full of books. Now, I would love to say that I had read most of them, and a few years back this would have been the truth. Looking at my stack of books now, however, I say with shame that I’ve read less than a quarter of them.
Is this because I’m a slow reader? Far from it. When I get started, it’s hard to stop me. Why, then? Why did I have so many unread books. Did I not like reading? No, I loved reading, and going through every one of them was on my todo list. After Slashdot of course.

And there lay my problem. Looking back at my five or so odd years of spending a lot of time online, I realized that I had wasted hours, days, and perhaps even weeks and months, reading some moron’s sarcastic comments about the latest linux distro. I had wasted time listening, and arguing with my fellow netizens about issues that would have never concerned me in the real world. Who cares if vim is better than emacs (which it is, make no mistake about that)? What does it matter if that dude on IRC just doesn’t get the difference between your and you’re? To be honest, who cares? Not me. At least not now.

After much thought and internal debate, I’ve come to the conclusion that the series of tubes killed my reading habit, and I’m going to do my best to recultivate it. Starting now, I’m going to read less tech news, and devour more literature. I’m going to read less blogs, and read more of the books that have shaped humanity in general. Now don’t get me wrong, I love geeky cat macros as much as the next net junkie. I’m just going to try and have more epic lulz while reading Bill Bryson.

Starting now, I’m going to make a conscious effort to spend less time online, and read more text straight from them good old dead trees. What about you? Think you can close that feed reader and go pick up a dead tree book right now? Try it, I dare you.

Not Inventing the Light Bulb

August 1, 2007 by Mahangu Weerasinghe | Tags

A while back we launched Gowebplans. We had put a lot of work in to it, and thought it would work out. It didn’t. Weeks after launch and we didn’t have any new clients. It was a little disheartening, especially since we put a lot of ourselves in to the service. As a small business, we know how hard it can be to make it online. We wanted to help, but we were obviously doing something wrong.

Gowebplans version 1

The old Gowebplans site

So, our coders went back to coding, our designers went back to designing and our executive team sat back and thought about what went wrong. Finally, after a lengthy analysis of our strategy, we decided that it needed some changes.

A few months later, and here we are, ready to try again. Now, if someone were to look at all this negatively, they’d say that we failed. Of course, we like to think along the lines of Thomas Edison.

We found a way not to run a web development service for SMEs.

We made a few mistakes, we pushed a few wrong pixels, but we’re here to try again. A lot of time and effort has gone in to this site, and our hope is that our new strategy will make our services more attractive to other small businesses.

Gowebplans version 2

Gowebplans, revamped

It may surprise you, but in the process we have learnt a lot about our sphere of business, and have found new tools and methods to serve SMEs better. We have expanded our services list to meet new demands, and are proud to present you with a stronger, and more robust web platform than our first offering. Our conclusion? Though it can be frustrating, not inventing something is sometimes as good as inventing it, and what you learn along the way will often far outweigh the time spent rethinking a strategy.

When something goes wrong, there are two main ways to deal with it. You can either ignore the problem, and continue to live in a crumbling house, or you can grab your pencils and paper and go back to the drawing board. It may take a few thousand sketches, but you will eventually understand what is wrong. It is also very likely that you will find a fix along the way.

So, even as we give this a second shot, we hope that Gowebplans will help other small businesses out there by giving them another opportunity to put themselves online. Tried once and didn’t get what you expected? We know the feeling. This time try a web plan from another small business – a company that has faced, and is still facing many of the struggles you have.

Think big, start small, keep trying.

Web Apps 101

June 17, 2007 by Lakshan Perera | Tags

So you want to write a web app? Vesess welcomes you and a million others to this primer on developing your first web based application. By the end of this post you should have a better idea of how to approach web development in the post-basecamp era. Let’s start with the basics.

Good web apps are a combination of intuitive interfaces + solid code

The quality of web application’s code lies within the simplicity, flexibility and understandability of it. Thus, agile development has quickly become the way of the web dev. At Vesess, our web team is no different. We do web apps with 1 designer + 1 developer. So, having said that, it’s time for us to share a little of how we approach this task. We’ll begin by dwelling on some fairly abstract concepts.

Use a Framework

It’s always better to use an existing web application framework rather than starting everything from the scratch. Frameworks provide you with a solid base to focus on the problem you want to solve. In the long run, that’s a lot better than having to worry about infrastructural issues. These frameworks are written in different languages and follows several conventions. Our recommendation is to work with a framework that is written following the MVC (Model, View, Controller) architecture, as this is the most productive kind to work with.

When choosing a framework it’s good to consider these factors:

  1. Your developer’s proficiency with the language involved.
  2. The suitability of the framework to the problem domain (for example, frameworks such as MODx or Silverstripe best used in the development of content rich sites).
  3. Your deployment environment and budget.

Use a Source Code Management System (SCM)

We recommend that you use a SCM such as Subversion to manage your application code from the beginning. Got only one developer on the project? We still think it’s worthwhile. SCM systems are a great insurance for developers since they have the comfort of a code rollback at all times, and can even sync their projects easily between multiple PCs.

Further having a code repository makes your life easy when it comes to application deployment. You could simply use a tool such as Capistrano with your repository to deploy your application on a remote server.

Choose a Good Editor

A web application project may contain code written in different languages, with snippets stored in different file formats and in different directory structures. Thus, it is essential that you use a editor or IDE which supports all of these conventions. Of course, syntax highlighting and smart indention will help you write clear, precise code, and in the long run will make hunting bugs that much easier. Many modern IDEs also have smart pop-up menus that can complete code for you. Although veteran coders often shun such features, they can save you a lot of time and keystrokes when typing in repetitive strings.

If you are on mac you could get your hands on TextMate or Coda. Linux users on the other hand might like to try this lightweight editor called Scribes, especially if you feel Vim and Emacs are too much for you. If you are willing to use a web based IDE, Aptana is a great one.

Use AJAX and JavaScript wisely

Lot of web applications get bloated with unnecessary AJAX and JavaScript effects. Don’t let the application’s usability drop because of the overuse of these. Always make your JavaScript unobtrusive and have fall through methods for your AJAX calls. Make the habit of using the Firebug plugin for testing and tweaking your JavaScript.

Test your Code

Most of the major web application frameworks come with an integrated testing environment, and we recommended that you use them to do unit and functional tests on your application. Best practice would be to create the test cases alongside the development classes and test as you go along. Time spent on this will prevent you from falling into blind errors mid way in to development. Another good approach would be to use a test tool such as Selenium to troubleshoot browser compatibility and perform system functional testing.

Use a Bug Tracker

Although you will not need a fully fledged tracking system such as Bugzilla or Trac, maintaining a task list for bugs in your Project Management portal would be a wise thing to do. Keep all the bugs recorded there, as this might save you the trouble of fixing the same bug twice, and so on. Lighthouse seems to be a nice hosted bug tracker for web application projects.

Abstract and extend your Code

In the long run you may want to release an API for your application or you might want it to be compatible with mobile devices. Making your code abstract will give you the option of reusing and porting it. Always have a meaningful naming convention (usually, frameworks such as Rails force you to do this) for classes and models, as this will save you (and perhaps others) a lot of confusions later on. Also try to incorporate things like Microformats in to your application, since this will enable you to structure the output in a logical manner and make it easy to consume.

Paper prototyping for the genius designer

May 31, 2007 by Prabhath Sirisena | Tags ,

It’s very convenient for us designers to think that we always know the best way to do things. Genius design, explained aptly by Dan Saffer in his excellent book, is probably a favourite method among web designers, especially in today’s web-two-point-oh environment of quickly-hacked web apps. After all, there’s only so much you can do with a web interface, and so much of it has been done before, it must be quite difficult to get anything wrong!

Yet we manage to get things horribly wrong with startling frequency. And almost always the reason could be traced back to lack of proper user input in the early stages of design. In a rare productive meeting yesterday, a Client shattered all our assumptions and injected a good dose of common sense in to our heads when he pointed out some glaring flaws in the design of a web application we were developing. In addition to saving us a lot of wasted effort and significantly improving the usability of the interface, that meeting also reminded us of the importance and usefulness of paper prototyping.

What on earth is a list?

This particular web application facilitates online recruitment, and a primary function involves an employer (the user in this instance) picking suitable candidates from a pool of applicants, and adding them to “lists”. For example, if the user wants to hire a designer, she would create a list for this purpose and add candidates to that list. In our design, the list name was independent from the actual job title: she could just create a list named “my hot list” and add people, and set the job title for that list later.

In true Getting Real fashion, we had the interfaces done first. We started explaining the above process to the client (who, fortunately, fits the role of the user perfectly), using a set of crude wireframes:

Lankitha: First, the user creates a list-

Client: Hold on, what’s a list?

L: That’s just a place for you to add candidates, like a folder in your computer-

C: Why is it called a list then? Why not folder or something?

L: Because it’s not really a folder; it’s a list of candidates

C: Er, OK…

L: So, the user creates a list-

C: Hold on, this is confusing… What on earth is a list?

It went steadily downhill from there onwards. Our first reaction was to be defensive: after all, we had put a considerable amount of effort in to designing the process and the interfaces, and before we could even get started, we were faced with a stumbling block. Surely the client was wrong?

It took a couple of minutes to realize what was happening. Paper (or, in this instance, on-screen) prototyping was already paying dividends.

Paper prototypes to the rescue

Highlighting our mistaken labeling was only the beginning. We continued with a different label and along the way found out several other problems too. At the end of the session we realized that a major overhaul of the process was called for, and a number of changes to the interfaces were in order.

Cheap yet effective

I wouldn’t call what we had a usability test: it turned out to be one by chance. But it did show how simple and cost efficient usability tests could be carried out for projects that have budget constraints and tight deadlines. People like Jakob Nielsen have been harping on this for years, but the true value of simple methods such as paper prototyping can only be understood once you do it and see the results for yourself.

Live redesigns

Another advantage of paper prototyping is you could make quick changes based on user input and see how the new interfaces are received. Since paper prototyping happens at the beginning of a project, the cost of throwing away is minimal. In fact, almost always you’ll have to throw away your first few attempts. That’s a very small price to pay for the guaranteed improvements in usability.

Towards the end of our session, the client was the one talking and sketching, and we were the ones listening. Much of the upcoming revamped design of the application would be directly from the sketches of our client rather than our genius designers.

Test early, test often

Our attempt at genius design wasn’t a total failure: a lot of other sections of the application were readily accepted, and some are already implemented. But, we’ve learnt our lesson from this meeting: the genius designer is a myth. Unless, of course, you’re Jonathan Ive.

As Steve Krug says in Don’t Make Me Think, testing one user is 100 percent better than testing none. Our first test wasn’t even intended, but surely it won’t be the last.

Coping with Copy

May 3, 2007 by Mahangu Weerasinghe | Tags

If you’re a copywriter who can’t seem to work with others, you’re not alone. Lots of writers out there struggle everyday in having to work with teams. In giving their words the highest priority, they often forget that they are a part of something that is bigger than just themselves and their copy. In this vein, I thought I’d share a few tips with you, a few points that will help you get along better with the team you are working with.

Your designer is not three years old.
Talking to a friend of mine who works in the art department at an ad firm, he said that what annoys him the most is when copywriters treat him like an infant. In general, I think this is a big complaint among designers everywhere. As a writer myself, I believe that your copy briefs should never tell the designer what to do or how to do it. In the very least, your visual suggestions should be the beginning of a conversation, not the delivering of an order.

Instead of suggesting,

A yellow background with black lettering and a white border.

Try saying,

I feel a light background with dark lettering would suit this best. What do you think?

You will need to edit, and re-edit – it’s your job.
Part of being a good writer means you think that your work is flawless. Of course, it’s also essential to know at the back of your mind that it is not so. Authors have editors, reporters have editors, and you have an editor as well – yourself. When your manager sends back some copy saying he’d like some edits, don’t take it personally. In fact, these changes are often not corrections to mistakes you’ve made, they’re just slight shifts in tone and voice as required by your team.

You will never have total creative license.
This is the real world. If you want total freedom, it’s best to start penning that maiden novel. Out here, there are deadlines to meet, clients to please, and someone, somewhere is going to ask you to be a little more formal. When this happens, don’t take it personally – it’s not an indictment on your talent, just a little reminder that Tolkien didn’t write corporate copy. Though being creative is an essential part of being a good writer, knowing when to draw the line is a skill that is far more valuable.

Coming to terms with these three points helped me a lot during my first few years of writing professional copy, and my hope is that they will help you too. Good writers are born, not made, and though nobody can teach you good writing, you can unteach yourself bad writing. Live, learn, and write – never stop learning, never stop writing, and when you find something new, share it with others. There are too few of us not to.

Summer of Code

April 19, 2007 by Mahangu Weerasinghe | Tags

Wow, what a week. First off, we’d like to wish all our readers a (slightly belated) Happy and Prosperous Sinhala and Tamil New Year.

Suba Aluth Avuruddak Weva!

Apart from stepping in to a New Year however, something else happened last week, and something pretty awesome at that. Three of our very own were selected for Google Summer of Code 2007.

Over the next few months, Amila, Lakshan and Laknath are going to spend their time working for three FOSS projects.

Amila will be putting together a new core theme for the popular CMS Drupal, while Lakshan will be hacking some web mashup goodness for SilverStripe, a newer CMS. Finally, Laknath will be working with the people at Gnome to put together a new document editor for Project Mallard.

So, congratulations guys – we’re really excited for you. In fact, we haven’t been this excited since we first got broadband. Here’s to a summer of squashed bugs, completed milestones, and lots of good, solid, code.

gowebplans Launched

April 4, 2007 by Mahangu Weerasinghe | Tags

For many years (well two, to be precise), we were what most people would call a startup. When I joined Vesess, the company ran out of a tiny room in a technology incubator. A few PCs, a telephone, and four guys in one cubicle, with shared net access (I still shudder at the thought). Fortunately, Youtube wasn’t yet invented, or we’d have died of buffering related stress.

For our clients, not much has changed. We were responsive then, we’re equally responsive now. We delivered on time then, we deliver on time now. For us, however, a lot has changed. Moving past the startup phase, if anything, is a major shot in the arm. It’s a confirmation of something we knew all a long – that we’re in this for the long run.

This is not to say that we haven’t seen hard times. Although tech startups from developing nations are getting more common now, there were very few when we first entered the playing field. It was an uphill climb, and although there were moments where we felt like folding up and going away, we knew the scenery was getting better all the time. Now, as we stand at the top of startup hill and prepare to plunge in to the valley of corporates, we want to be careful not to forget our roots.

It’s in this vein that we launch gowebplans, a web service for Small and Medium enterprises. Having been at the bottom of the hill, we know how imposing that climb can seem. Rent, phone bills, stationery – the last thing a new startup needs is a website, right? Wrong.

Of course you need a website. The kid next door has a site about geckos that gets three thousand hits a day. It’s 2007, and you are a small business. You’d be crazy not to have a website. So, what’s the solution? Websites on a budget, with the same Vesess quality you have come to trust.

At gowebplans, we offer Wallet-sized Websites that you can customise to suit your outlook and budget. The process is simple, the turn-around time is quick, and the product, as always, is excellent. Here’s an introduction from GWP itself -

1) Sign Up

We offer you a base website package which you can change to suit your needs. Select everything from your webspace quota, to the number of email addresses you’d like.

2) Fill Out

Once you have selected your package and filled out our project planner document, we will begin to design you a unique layout based on your preferences, and enhance it according to your feedback. Once completed, we’ll setup the functional site. At this point, all you have to do is add the content you require.

3) Go Live!

That’s it. After you have added what you want, we go under the hood again for one last look. Once we’ve tweaked everything to our satisfaction, your new website is ready to be launched.

If only other things in life were this easy.

Here are some interesting uses for gowebplans that you might want to think about while you consider using this service.

Can you say blog?

Although there are a number of free blog services out there with hundreds of excellent themes, there’s one problem you can’t get away from. There are millions of bloggers. Thousand of themes, millions of bloggers – yes, that’s right, your design of choice is going to be used by many, many others. When you sign up with GWP, you get a unique design included in the package, and better yet, you get to take part in the process of creating it by giving us feedback. Apart from good content, nothing says professional like a slick design that is only sported by you.

Sell that toilet paper, and sell it good.

Whether you sell bathroom supplies or kiwi fruit, an online store is becoming more and more useful. However, E-Commerce software, and websites, and databases – what a lot of work to get done for it. At gowebplans, we’ll setup your website and online store as well. Need more storage space for your ever increasing catalogue of images? Not a problem. We have the resources to expand with you.

Whether you decide to become a political blogger or an online mango seller, rest assured that it is Vesess’ flexibility that underlies GWP and all it offers. We’ve been setting up sites for years, and it’s as natural for us now as reading the 500 or so RSS feeds we subscribe to, every night before bed.

We’re proud of GWP, and what we hope to do with it. As we move forward, I guess it’s a way for us to say thank you to that startup hill and the climb that we loved (and sometimes hated). Although we’re never getting those two years back, there are many companies and individuals who are currently living them. GWP is our way of saying we’d like to wish them luck, and help them get themselves online.

More than a redesign

April 4, 2007 by Mahangu Weerasinghe | Tags ,

Welcome to Vesess.com v4. You may notice our site design, and of course, this new weblog. The online reincarnation you see was not just done for kicks (thought we admit, nitpicking the design was mad fun). It also reflects a shift in focus for us as a company.

Christened Bherunda after the mythical bird of the Ancient Kandyan tradition (as seen in the footer), the new design is finally here, and we couldn’t be more excited. As someone who’s responsible for weaving in all the different aspects of the Vesess experience in to the site’s content, it’s been a pleasure watching all the pieces of this exotic beast come together to form what can only be described as a beautiful, Web Standards friendly puzzle built with XHTML, CSS and lots of love.

With plenty of whitespace, clear fonts and soft backgrounds, Vesess.com v4 reflects who we have become. No longer a startup, not yet a multinational, we’re stepping out in to corporate no man’s land with this design. With many happy clients under our belt, we feel we’re beyond bandying words. You know how we perform, you know that we deliver. We thought we’d sit back and let our results do the talking.

Speaking of steps, we’ve also taken a leap in to the US with this launch. We found ourselves catering to so many clients from the United States that a presence in North America seemed like the next logical step.

Ever trained a code monkey? It’s a fine art, and we’ve learnt it. While we’ve been doing web and print design for a while now, we’re now also in a strong position to offer killer applications using PHP, Ruby on Rails and (I have to say it) AJAX. While Design has always been a key focus of ours, we now have the coding talent to also offer cutting edge Development services. If it’s a web application you need, let us know – we’re here for the long run. Web two-point-oh-noes and beyond.

3 years ago, the first version of Vesess.com was released. Today, we’re at v4. Bherunda is sleek, beautiful, and reflects who we are, and where we’re headed. Watch this blog for updates as we high dive in to yet another era of late nights, good tea, and the same all round awesomeness you’ve come to expect from everything that’s stamped with the kombuwa. It’s true, some things never change.