Archive for the ‘Technical discussion’ Category
Infrastructure part 2
February 23rd, 2010 Posted 1:04 pm
This is a follow up to out previous post about our infrastructure which is can be found here:
Infrastructure Part 1
There is the intention to go a bit deeper with this post, as well as mention what was forgotten in the first post, as mentioned when customers and users were asking questions such as “Well, nice post but how do you debug?“.
- Debugging: Firebug and FirePHP
- Unit Testing: phpUnit
- Document Collaboration: Google Documents
- Diagram Editing: dia
- File Sharing: dropbox
More detailed:

Debugging a web application is always tricky because of the specific nature of the medium. There are a lot of options available and there is the well known xDebug. XDebug projects the traditional debugger approach, like the use of breakpoints and object inspection to the web environment. For our application, the combination of FireBug with FirePhp works (almost) perfectly. One reason for this is that FirePhp integrates well with Zend framework which we are already using.
There are many popular modern development methodologies such as TDD or about more modern ones such as AOP or Continuous Integration. Our project is in favour of using tests, like phpUnit, because of familiarity with other *Unit (mainly jUnit) frameworks. Test Driven Development has been extremely helpful and beneficial, although currently we do not use it as much as we should.
Google is a household name, so no introduction is needed, but definitely worth to be mentioned. Google Documents help us a lot in editing documents with partners from all over the world or all over our office, available 24×7 by just using any available browser. The same idea as with notion learning, your web based e-learning platform.

Gnome’s dia is an unsung hero that I happen to use extensively from my university years, many of diagrams you stumble across in blog post academical or other papers have been produced with this pretty elegant multi-platform tool. It is not part of an IDE or any other application development platform and it’s UML capabilities have not yet been utilized, but it is great for small
clean and tidy diagrams.
Dropbox belongs to the family of tools that belong to the cloud/storage family. Drop-box had the approach to files that google documents had to document editing, a very nice description is here: https://www.dropbox.com/tour#6.
Tags: dropbox firephp firebug zend documents unit testing tools collaboration file sharing notion learning
Posted in Technical discussion
Infrastructure
February 4th, 2010 Posted 11:55 am
It is very common for us when we talk to customers and attend events for people to ask us questions about our infrastructure and the rationale behind our choices. It is a very common question in the startup ecosystem for different reasons such as getting the feel for the company’s profile or as a source of inspiration for people’s projects.
This post goes into detail on our entire development stack from top to bottom.
At a glance:
- Source Control: Subversion
- Programming Language and OS: PHP on Ubuntu
- Framework: Zend
- Javascript Library: jQuery
- Programming IDE: Eclipse
- Build System: Phing
- Data Base Management System: PostgreSQL
- Backup and Restore: Backup Ninja and GPG
More detailed:
There are many choices here and all are supported with very good arguments. based on our organizational structure and the decision to support linear development (which means minimal branching), the choice was for traditional source control tools (instead of distributed ones such as GIT/perforce). Because of extensive exposure to subversion and it’s general acceptance, we chose this.
Because we are a SaaS company and we generally prefer using services, we also have an on-line hosting package for it.

This is a very open discussion and there is a nice chapter titled “So Many Platforms, So Many Options”, from The Web Startup Sucess Guide, by Bob Walsh. We had decided before to use PHP on top of linux. Our distribution of choice is ubuntu, with which we are very familiar.
In PHP, the choices are really endless. We chose Zend Framework for the following reasons:
- Familiarity: already used it in (smaller) projects in the past
- Leverage as much or as little of it as we want
- Supplementary tools available as we upscale, such as the rest of the Zend platform
The best element inside the Zend framework is that a software house can use as many features of it as they want, without getting into trouble. You can use the MVC, or you can just do it on your own with mod-rewrites. This goes all along the framework, which is good both in terms of being able to do custom development on what we needed different, as well as a smaller learning curve: when the project had to do some things urgently, the fastest approach was taken, and then when familiarity and exposure to the framework was better, we re-implemented those features in the framework’s ontology.

jQuery Simple, easy choice
. Better supported, large user base, ease of use, number of plugins, nice and diverse community (eg. designers, coders, etc). We could not have thought of anything else, although we considered MooTools because of the Zend Framework integration.
Given the rest of the choices, the options available are limited, so we used Phing for build automation.
![]()
There are many custom builds for Eclipse, our main one is the following: Eclipse for PHP Developers, which is tailored to our needs and has nice features such as code completion, subversion integration and many others.
We also use Komodo edit from Active state, which may be a good candidate for a future IDE. Both of those are cross platform. In each developer’s platform the following mini-IDEs/editors are utilized:
- Linux: geany and gEdit
- OS-X: TextMate
- Windows: Textpad

There is a very old post about that here. Many things have changed since then, but the choice remains the same: PostgreSQL. Now I have more arguments in favour of it:
- Cohesive and easy to find documentation
- Clear licensing – see what’s going on with MySQL/Sun/Oracle
- Feature Set
But most of all it is very dependable and stable. I know that it is not the most popular choice and that we have issues with software that runs on top of MySQL only, but we are very happy and confident for our choice and no company can take it away from us.

We chose Backup Ninja because it had a very small learning curve.
We might evaluate more options in the future, when we re-evaluate our backup strategy. Also
Gnu Privacy Guard is being use to encrypt the backups so that they can be transmitted and stored remotely.
Tags: eclipse, framework, ide, jquery, php, postgresql, subversion, ubuntu, zend
Posted in Technical discussion
Notion Learning alpha version released
December 10th, 2009 Posted 3:37 pm
Notion Learning; our easy to use, web based, powerful learning and training management system for businesses has just gone live in alpha.
As we had said back in October, it’s been very quiet on the blog because of the huge amount of development we’ve been doing in preperation for our first release. On Monday evening we deployed the alpha version (0.85) of Notion Learning. This is a huge milestone for us as it’s the first time the software is available on the Internet. Since Monday we’ve been doing a lot of testing to ensure that the application works in terms of performance – it’s vital that the application runs at a capable speed so it’s just as usable as a local, desktop application.
As well as that, we’re also revising the first version of the notion learning homepage. There is still a bit to go on that to really emphasise the benefits that Notion Learning brings to an organisation, but there’s a big difference between a big empty black screen (what was there before Monday) and what’s there now.
Currently we are in private alpha, which means that we are rolling it out ever so slowly to stakeholders and friends, for example, early adopters have already been into our system as student users, taking a course we’ve developed. Soon, those early adopters will be given invites so they can create full Notion Learning portal sites and create and manage e-learning themselves.
If you are interested in seeing more of Notion Learning, do get in touch – while it is a private alpha, we’re more than happy to show demos of the software.
Posted in Achievements, Business development, Technical discussion
Where are we?
October 20th, 2009 Posted 1:40 pm
It’s very quiet on the blog for one simple reason: We’re up to our necks in development of the first prototype. People have been genuinely impressed to see what we’ve managed to develop in a month and a half of full time (well, more than full time, more like all-the-time) development and to be honest we hadn’t realised it until someone pointed it out but we are forced to agree. The product is now a real entity as opposed to a bunch of mockups and best intentions. Shipping is a feature, and that is our new mantra for the next few weeks as we move towards the alpha release of the batman (we went with superheroes, more exciting than rivers) prototype.
Image credit: From the wikipedia entry for Batman.
Posted in Technical discussion
Review: The Web Startup Success Guide by Bob Walsh
September 9th, 2009 Posted 5:11 pm
Both of us follow Joel Spolsky’s blog, Joel on Software, so when he recommended a new book: The Web Startup Success Guide, we both went off and ordered it.
The author Bob Walsh has crafted an invaluable guide dedicated to everything related to starting a startup in the web space. He covers SaaS, mobile apps, tools, money and funding advice, social media and way more. Sprinkled throughout the book are interviews with various serial entrepreneurs and experts (Guy Kawasaki, Joel Spolsky obviously, David Allen and many more). No matter how much you think you know about starting up, there’s so much more to learn from the book. He provides up to date links to various helpful online tools and resources, some of which Notion Learning will soon be using. His final advice on the last page (I won’t spoil it) is something we both now point each other at whenever things aren’t going so well.
Buy it, read it and tell everyone else involved in a web startup to do the same.
The Web Startup Success Guide @ amazon.co.uk.
The Web Startup Success Guide @ amazon.com.
Tags: bob walsh, book, review, startup, web startup success guide
Posted in Business development, Technical discussion
Choice of DBMS
July 3rd, 2009 Posted 7:40 pm
At every start-up/project that is based on Linux one of the first and biggest decisions is which database to use.
In the Linux world there are many options, but considering our needs we had two choose between the two… usual suspects, PostgreSQL and MySQL.
For those of you who just want the answer, we chose the one with the elephant logo, PostgreSQL
.

Now, how we got there: (more…)
Tags: database, dbms, mysql, oracle, postgresql, rdbms
Posted in Technical discussion





