Tag Archive | "PHP"

Tags: , ,

Handy Design Patterns Cheatsheet

Posted on 10 October 2008 by Demian Turner

Wei Ling Chen from DZone contacted me the other day to announce a range of cheatsheets (or refcardz) they have made available for free download.  They offer a whole range from Java, to PHP to .NET to Flex and more.

I found the cheatsheet for design patterns quite interesting, you need to register with the site in order to get the download link.

Comments (6)

Tags: , ,

Recruitment Agent Entertainment

Posted on 01 October 2008 by Demian Turner

It feels like a friday when I receive emails like this from our friends in the recruitment profession:

PHP5 (php 4 isn’t relevant)
MVC experience (and/or Design Patterns in general)
SVN (we use Eclipse with Subclipse – experience with these things are preferred)
MemCache (pronounced “Mim-Cash”)
Experience with either JSON or SimpleXML (preferably both)

Comments (0)

Tags: ,

PHP on Rails

Posted on 27 September 2008 by Demian Turner

This is well-known stuff but funny nevertheless 😉

Comments (3)

Tags: , , ,

Kindo Acquired by MyHeritage

Posted on 23 September 2008 by Demian Turner

I didn’t get a chance yet to blog about our last TechCrunching, but Kindo, the startup I co-founded in March 2007, today announced its sale to MyHeritage, the biggest player in the family tree space.

Kindo is a PHP social net app built on the Seagull framework and other open source software.  At peak popularity our users were building 38k profiles/day and we acquired more than 1m profiles in our first 10 weeks.  More details on my CV.

Hats off to the Kindo team and to the Kindo devs who don’t appear in the TC photo.

Comments (5)

Tags: , , , , , , , , , , , ,

What software do you use to run your business?

Posted on 09 September 2008 by Demian Turner

The problem

Increasingly I’m focusing less on cutting code and more on running a web development business.  While it can be painful not to get your hands dirty as often as you would like, there are great pleasures in seeing your business pick up momentum.

But one of the first factors that needs to be brought under control is time management for yourself and your employees, and general CRM.  The problem I’ve found is that the functionality scope of the various apps I’ve been using is wildly different from one to the next.  I need a level of baseline functionality from a single app, mainly because the overhead of sharing data between apps makes using multiple apps untenable.  I would still like to do as much coding as possible, and as we are in 2008, so there must be something out there that ticks all the basic boxes.

Well googling brought up very little.  What did have good results was this thread from the php-london ML, and direct feedback from a few colleagues.

Minimum requirements

Here are the baseline features I concluded were the minimum required to be useful for my small business

  • timesheets: ability for multiple employees to login and log their time against multiple clients and projects
  • client and project management handling: I don’t want a project management app, am very happy with Trac, but I do need to keep track of all my clients, the relevant contacts and the projects I’m running with each of them
  • invoicing: there’s no point in decoupling the time logging and how clients are billed
  • expenses: the above 3 features are available in the majority of software out there, desktop and web-based, but the minute you need to be able to record your expenses, eg costs associated with web hosting or software rental costs (not billable to clients), the choice dramatically reduces
  • balance sheet: this seems to be the killer question, if I know what I’m making on projects, and my business has a range of running costs, then surely I want to know what the operating profit is right?  The requirement for balance sheet functionality even more dramatically reduces the amount of options available

Let me just reiterate what I don’t want, to be clear.  I don’t want a detailed accounting app like Sage, Quickbooks, Quicken etc, but I do need to be able to know the bottom line for the business at any point.  I don’t want to have to import employee/contractor times from one app into another, or transfer across the value of invoices – who has time for that overhead?

Nice to haves

  • web-based: I think having the software available in a browser wherever I might be is invaluable, and with web2.0 style apps and the provider using a fast server, there should be very little difference to a desktop app.
  • decent customer service: if the customer service is crap, just forget it.  There is too much healthy competition around to have to settle for mediocre customer service.   You want to take my money for your product, make sure I am a happy customer.
  • multi-currency: I think in today’s economy it’s quite unusual to have clients in just one country or using a single currency

The contenders

Here’s the apps I evaluated and the various pro/cons of each.


studiometryStudiometry is a desktop app available for the Mac and PC.  The UI is a bit klunky, but for customer/project/timesheet management it’s great.  It was the best app I found first time around, was recommended by a few friends, and I would probably still be using it if it could track expenses and report on the business balance sheet.  It has a number of demo videos which hugely help learning the software, and let’s face it, if you have the choice between reading an enormous PDF or mimicking what you saw on a screencast, which would you choose?   Also for the record, these guys do not answer customer support requests took ten days to respond to my customer support request.


harvestHarvest is quite strongly recommended in the industry, and the interface is first rate, and for time-keeping it’s great.  However these guys don’t claim to do balance sheet handling so it’s not really fair to compare.  For timesheets and billing they’re pretty good.  Did I mention the UI was sweet?


basecampI don’t want to say too much about Basecamp because I know everyone is using it, and it’s probably bad luck to diss 37 Signals. But …. Well let’s start with the positives first.  For time tracking it’s great.  The UI is fantastic, and once you get to the time tracking page, it’s a pleasure to use.  But what about navigation?!  This app takes the prize for requiring the most clicks to get anything done.  I mean I read Getting Real is it was great, but they should practice what they preach.  I was even driven to mess around with bookmarklets just not to waste so much time using this app.  I seriously considered logging time wasted wrestling with the time-keeping app.  Ok, enough.  Wait – one more.  What’s up with Writeboards?  So klunky to load these notepads.  I can truthfully say I have migrated quite a number of people off Basecamp and onto Trac.


billingsBillings is another sexy looking app, recommended by some of the PHPlondon guys, but ultimately it’s way too simplistic to be useful.  It’s a Mac only desktop app, and after using Studiometry for several months I wish the Studiometry guys would look at Billings and get some interface ideas.  But it handles time-keeping, invoicing and basic client info only, and has a few dinky ideas like ‘add url’ button that let’s you add “urls” to your projects.  Better left out in my opinion.  You can do estimates with the app, and you get a status of the account, but only for a given project, not globally.


moneyworksMoneyworks looks like a decent accounting package and is reasonably priced, but seems a bit much for my needs.  I must be honest and say that I didn’t download the demo, but after looking at the screenshots I wasn’t too impressed.  Overall it seemed like a package more suitable for someone with an accounting background, which I don’t have.

Time Doctor

Screen Shot 2016-11-14 at 4.26.10 pmTime Doctor is an accurate time tracking and time management software that helps you get a lot more done each day. It is a web-based solution that provides time tracking, computer work session monitoring, reminders, screenshot recording, invoicing, reporting tools, integrations and so much more.


freshbooksFreshBooks is a very exciting app.  It’s widely used in the web industry, and for good reason.  The interface is fantastic and there’s a lot of functionality.  Not to mention the app has been around for ages and has gone through a lot of iterations presumably based on customer feedback.  And the customer service was excellent, best of the batch.  I exchanged a few emails with Grace who was very helpful but ultimately let me know that the 2 features I needed (recurring expenses and balance sheet) were not available.  But they were top of the feature request list 😉  This app to me looks like it’s done by 37 Signals, I guess on purpose, but FreshBooks operates out of Toronto.


kashflowKashflow was an interesting one.  They have all the features I listed above, and they’re even UK-based so great for businesses like mine.  They’re web-based which should be an advantage, but the UI looks stuck somewhere back in the 80’s.  And the logo is pink.  In fact the whole site is pink.  Not that I have anything against pink, but arguably it’s an unusual choice of colour for a business app.  But the functionality is there, even if it takes a bit of searching around to get to it.  In fact I think of all apps compared here Kashflow had the most functionality of the bunch.  Guys, drop the ASP frontend and hire my company to rebuild your product into a web2.0 app with PHP calling out to your extensive API – you won’t regret it.


quickenQuicken is a funny one – just read the comments 😉


Quickbooks is not far different.


facFreeAgent is where things start to change.  Wow was I impressed with this software.  A big thanks to Nigel James who suggested it and gets my 10% referral fee with a a free beer thrown in at the next PHPlondon 😉  FreeAgent is a very complete web-based accounting/timesheets/invoicing app that’s perfect for small businesses.  And if you’re based in the UK it’s even more strongly recommended, taking in its stride things like IR35 intermediaries legislation, VAT obligation, corporation tax due, National Insurance and PAYE payments, the list goes on.

FreeAgent handles all aspects of clients, projects, time-keeping, invoicing and expenses (one off and recurring).  This app is put together by a team that really understands accounting and what small businesses need.  It also lets you setup multiple bank accounts and manage reconciliations between what you invoice and what you collect.  Paypal import is supported.  Regarding income FreeAgent lets you track money you earn in terms of dividends or salary and will even guide you through the full setup of payroll for your employees, calculating Taxable Gross, Tax Code Tax, Employee NI, Net Pay, Employer NI and PAYE/NI Due to HMRC for you based on gross annually salary input.  The app will also do a self assessment for you  which can be used at the end of your limited company’s financial year.

But I think the main strength of FreeAgent is what you find under the Accounting tab.  Included are reports for monthly and yearly profit & loss, balance sheet, trial balance, dividend vouchers, capital assets and journal entries.  At any moment you can see exactly how your business is doing, how much corporate tax you owe, how many unpaid invoices there are, and how your monthly operating profit is performing.  There is also a great dashboard to greet you when you login with graphs of the various business metrics and notifications of priority matters.


In my opinion FreeAgent is the strongest of all the contenders here; it combines a balanced feature set with a great interface and a fair price.  It has one or two shortcomings to be fair, but not showstoppers.  For one employees can login to manage their own timesheets, but they get access to the entire business financials, effectively an admin login.  I suspect this will be addressed soon, I’ve certainly complained about it.  Secondly there’s currently no concept of tracking revenue by product or service.  This is very useful to have if your company provides a number of products as well as the usual grind of service work.  I don’t think it would be hard to integrate.

What’s your opinion?

Now you’ve heard my rather long-winded opinion, what are you experiences with accounting/invoicing software?  Have I missed any interesting stuff?  Have I left out any essential requirements?  It took a lot of time to research the current offerings and I would have loved to find a decent review so I hope the above is helpful to someone.

Comments (47)

Tags: ,

What’s your killer iPhone Idea?

Posted on 27 August 2008 by Demian Turner

Been so busy lately I haven’t had much time to think about the wonderful new 3g iPhone, however reading the comments on Dave Troy’s blog got the ball rolling again 😉

I’m quite happy with the latest iPhone, but it certainly has quite a few problems.  Most of the complaints I’ve bumped into on the web has been overhyped, but what I would consider real issues are as follows:

  • poor 3g reception
  • inability to recognise that a trusted wifi network won’t authenticate, and the need to manually “forget the network” in order to connect
  • instability of even core software: what’s up with address book, even after firmware update 2.0.2 it constantly freezes … am restarting the phone a lot to try and get around it
  • what’s up with the New York Times? I love this app but it’s a frequent crasher and mostly can’t retrieve data, even on wifi I get endless spinning wheels
  • inability to run programs in the background: if you can run music behind any program, why not any other program?  I recently tried out http://www.instamapper.com and it’s great, but totally impractical as you can’t use the phone for anything else while it’s tracking ..

Two apps I’d love to see asap, not listed in aforementioned comments:

  • ability to use the iPhone as a 3g wifi router: free wifi connectivity outside your home/office in the UK is absolutely horrendous and I often find myself stuck because either Starbucks data rates are unreasonable or more likely because Joe Bloggs wifi service is out of order
  • verbose feedback for network activity: like the verbose output on an ssh connection.  There’s so much wheel-spinning I think it would greatly relieve frustration to know what exact problem the iPhone is having connecting
  • loopt: I wrote those guys to see when their app would be released in the UK, no answer …

So what’s your great iPhone idea?  Any interesting experiences to relate using PHP as a backend?

Comments (2)

Tags: ,

Seagull 0.6.5 Released

Posted on 08 August 2008 by Demian Turner

I’m happy to announce 0.6.5 was released last week, the code is available in the usual place:


According to Trac this release contains 13 enhancements and fixes for  
26 defects, although there was also a lot of internal cleanup and small  
features added.

The wysiwg library has been updated from tinyFCK to FCKeditor  
following the security alert discussed here:


I’ve had one developer contact me reporting a security compromise to  
one of his servers following the publication of the tinyFCK exploit,  
so please take care and upgrade to 0.6.5 or at least remove tinyfck to  
be on the safe side.  As mentioned before, being vulnerable to the  
exploit depends on a number of conditions existing however you are  
advised to update in all cases.

The main new features and improvements in this release are:

  • Added ability to rebuild single modules
  • New modules: comment2, emailqueue, simplesite, siteexporter
  • New/improved libs: SGL_Emailer2, SGL_AjaxProvider2,
  • Added ability to synchonise prefs for all members
  • Improved preference handling
  • CSS handling more flexible

Or for a detailed list see the changelog:

Work has also started on trunk again which is now 0.9, it will be a  
greatly slimmed down version of 0.6.x with no modules required by  
default, php5 only, and no libs bundled in the distro.

Thanks as always to everyone who sent in comments and helped us fix  
problems with their patches and/or feedback.

Comments (1)

Tags: , , , , ,

Resetting the password in Open X

Posted on 03 July 2008 by Demian Turner

OpenXEvery time I need to reset the admin password in Open X it takes me ages to scan through all the tables, thinking “which bloody table would contain the admin password”, remembering from the last time it’s the one you least expect …

For future reference, it’s the preference table, record 0 and where the agency_id = 0.  Imagine, who ever would have thought of a password as a preference.  I suppose it’s getting better, in phpAdsNew it was in the config table!

This is where logical thinking can cause you to waste hours of time: an application has many users, each user has a password …

Comments (6)

Tags: , , ,

Using jQuery and Forms

Posted on 25 June 2008 by Demian Turner

jquerySome great jquery form tips from Laszlo, I also used the jQuery form plugin in the recent comment2 module.

Comments (1)

Tags: , ,

How to price your tech services

Posted on 15 May 2008 by Demian Turner

I was googling around to see what folks are charging for the range of services software devs offer. Although some humorous sites (a must read) are amongst the top results returned, how to price one’s services is of course a serious question.

One categorisation of services could be as follows:

  • consultancy
  • training
  • software development
  • support
    • ad-hoc
    • packages

For me the list runs from most difficult to easiest, and I charge accordingly.  Consultancy general involves technology recommendations, project specification, business analysis, etc, and the kind of input you can give after say 10 years experience is considerably different to what you might have offered after 5.

Next is training, and the reason I’ve put that higher than run-of-the-mill development is that preparation is involved.  For a 1/2 day or 3 day course considerable prep work is involved.  Subject matter can cover any software or platform you’re an expert on, but ideally you want to be teaching something that you built that you know better than anyone else.

In third position is regular software development; the more I do of this the more I see it as generic implementation – a commodity, and therefore chargeable at a lower rate.  Given a skilled team, whether you do the coding or you direct others, the final result is pretty much the same.  System design, however, makes all the difference and should be charged as consultancy.

And finally there’s support, which is like helpdesk work: the people paying you either couldn’t be bothered to read the manual or they’re on the beginner end of the programming spectrum.  Not to sound negative, support is the bread and butter of many businesses, however anybody really excited about software doesn’t want to be caught doing this.

So I’m curious what folks think of this way of breaking down development services and the rationale for charging?

Comments (3)



Demian Turner's currently-reading book recommendations, reviews, favorite quotes, book clubs, book trivia, book lists