Month: October 2010


Posted by – October 28, 2010

Today, in the business area: Time tracking. Kimai.

The Kimai project originated from Germany, which is also evident in some of the default values you encounter along the way - but to comment on first glance: You are asked whether you prefer an installation in English or in German.

There are several aspects of time tracking. On one hand, there is measuring the time - how much time has been spent on what; second, there is how much time it has taken to work on a specific task, perhaps as part of a larger project. Maybe there are more people we need to track, but they still may work on the same project. And maybe this is one of several projects associated with a client we would like to wrest some money out of.
Kimai is a web client allowing individual users to log in. You select a customer and a project - and a task to track time for.

There are two ways of doing this.
One way is to simply use this as a notepad for time you have already registered - and a calculator to report on how much has been registered so you know how much to squeeze the client for.
The other is to push the huge green button on the interface - and it will start a stop watch. Now, doing that like this is clever; it is tied to a web-based system. That means that if you need to use another computer to do this work - or the copier, fax, scanner or hangglider - the clock will keep ticking, and once you come back, you can log in and stop the clock. It will register the hours you have spent on the task. This also means that if you have to do client services while on vacation by the hot, sandy beach, you can still go to your local internet café, log in, start your timer, help out your client, quit it - and your home accountant can log in to collect the cash from the client, and your colleagues can log in to see what has been done on the job.

Now, your home accountant doesn’t have to go that far to collect, because Kimai will create a timetrack report, and even an invoice for the client. Kimai doesn’t really do accounting, so it is simply a question of converting the relevant billable time to an invoice, and your accounting system - and we will be covering the very promising Phreebooks soon - will do the rest.

There is one issue we have come across, and a potential feature - both of which have been taken up in the development forums: First, there is a bit of confusion when you are in a different timezone from your Kimai installation, because while the installation will show local time in the interface, it will use server time in the tracked time and report. And while this will not change the time spent, it may place billable time on a different date from what you - and, more importantly, your client - has experienced. This is a real issue in a world where your system hosting is not necessarily on the same continent as you - and with a company spanning many time zones, this would be an issue. After addressing this on the forums, it seems that it is a recurring request - and a fix has been committed to be included in the upcoming release. As a completely web-based operation, we have submitted a feature suggestion: That since this system is tied into the user, it might be practical to associate a per-user time zone. Consider a law firm with a branch in New York, Houston and San Francisco. In this case, it would be useful for every Kimai user to have an associated time zone. Also, it is possible to create groups for users, and a suggestion for this issue could be to create a group for varying offices; of course, this would require multiple-group membership as an option, since one would still need to be in the accountant group, even if registered as part of the Houston group.
From the category of not-too-serious-but-nice-to-have, it should be mentioned that when you create a customer, there are no additional fields beside the customer’s name/identifier. We have submitted a feature request to make it possible to add more info on the clients in order to make it a lightweight CRM, partly because of the invoice feature.

Kimai will not let you work on the same project for several clients. While we will agree that this is not the most obvious combination, it has been done in situations where a cooperation agreement is place, and various clients will pay for different aspects of a project. Of course, this is something one can work around. This is not a project management system, but a time tracker with integrated reporting and invoicing.

WordPress - Content management system

Posted by – October 20, 2010

It seems reasonable when going over the toolchain I use that I should mention the foundation.

Now, this can be defined at one level or the other. This is a webbased service, so I will talk foundations with the Content Management System. We could go into server specifics, but for now, all I will say is that the server is an Apache web server based on Debian Linux. This is also Free Software, and anyone is free to get it and use it. The reason not to go into it here is that server hosting - often Debian-based - is available at an affordable rate, and it is only under certain conditions requiring more control that self-hosting will make sense financially.

So, Content Management System - CMS. WordPress.

The WordPress is one of the most used systems for weblogs - which is the original intention - but over time, it has come to support a lot of other functions through plugins, and essentially, a content management system generally allows you to store data for many purposes, you have but to style the design in such a way that it fits into your workflow.

The point of a Content Management System is to make the route between author and website shorter. While it is not as difficult to make a website - not much more complicated than writing a document in a text processor - for a long time, it required you to either write the code in an editor application and open the file in a web browser to see how it worked; to write the text, you would have to code your formatting - italics, bold, links, line breaks and the like - into the text as you wrote it. Afterwards, to publish, you had to upload it to a site on the internet. This does not exactly make for intuitive fast-overview text writing, and the barrier to entry was still quite high. What a content management system does is to keep track of the layout of the website, in order to let you concentrate on the content itself - text, images et cetera - and the CMS will bother about link colors, font sizes and such settings.
Note that the modular nature of WordPress also makes it possible to embed external materials like a Youtube or Vimeo video.

WordPress has been set up in a modular fashion, so when you download a WordPress package, unpack it and upload it to your own site for installation - like I have uploaded the WP files to - it is only the most basic setup you get. It does work as a website, you can log into it, write pages and blogpost, and people can add comments to what you have written. The user interface you use to enter text will be tucked away, and people will only see your site.

The WordPress administration interface allows for a lot of additional setup. This installation has been modified to create human-readable links - so it isn’t a timestamp or a random textstring or article publication number being used. In this case, WordPress will see that the article title is “WordPress” and will attempt to generate a link with a similar name. In this case, it succeeds one-to-one, so the address is It is also possible to modify who will be allowed to post responses to entries.

The interface also allows the user to install plugins. In some cases, it is a minor extension - like allowing you to hide some posts from the index, if they are only intended for certain members or using Akismet to check the responses to your posts for spam. Yes, the spammers have found WordPress as well, and odds are they will find your site, too. The plugin can also be more extensive, like posting a contact form, an activity calendar, a poll or image gallery on the site, or even turning your site into a social network with BuddyPress. Until recently, you had to download and install these plugins separately, but now they can be installed directly throught the interface of your installation. A command centre indeed.

The above goes for plugins changing functionality, but the truth is that it can also be cosmetic - by choosing a theme. Themes will change the visual appearance of the page. For this site, a fairly simple theme was chosen to keep the focus on the text, but the artistic potential is immense. Compare, for instance, with the WordPress-based New York Times Blogs or Miller Rosenfalck.

As you see, a Content Management System allows a person who is less technical to run an advanced website, and even the more technically inclined will often find a CMS easier to use on a day-to-day basis.
So, WordPress is the face of our institute and works as the platform for our publications.
Now that this is covered, we will be moving on to other, more specialised features.

Phreebooks - an online accounting system

Posted by – October 13, 2010

I am a terrible person.
Okay, now that is out of the way, we can get back to business. In this case, literally. Or maybe I should just take that little step back to explain?

The thing is: When I started this website, the intention was to write about literature and history - what I had written and what I was reading.

As it turns out, after I moved to New York and started working for the Danish-American Chamber of Commerce and the law firm Miller Rosenfalck (NY), my focus has sort of drifted to other things. So I have written about software - which I often do - and in this case, I take it a bit further: A piece on business software.
Now, I have actually had a soft spot for this kind of thing for a long time. As is hardly a secret, I am a Free and open source software enthusiast. And ever since I got into working with accounting, I have been interested in the problematic watershed which is crowd-sourcing expertise for specialised applications, and specifically business apps. I doubt there are many who would have the audacity/plain ignorance to claim that Inkscape, Gimp and Blender aren’t impressive. But considering the areas of CAD and accounting are different beasts, and for different reasons. The CAD apps like the Autodesk programs - AutoCAD is the most well-known, I would guess - and SolidWorks - are developed as a highly specialised, closed process, and though one would assume there is a certain overlap between technologists in construction and IT, the community has yet to produce top of the line applications. One might also wonder why these applications have yet to even be ported to Linux and BSDs, considering the fact that they are less resource-demanding than the Windows platforms; but there is simply no expectation of sale. There are applications like the 2D QCAD and the rather impressive, though non-free VariCad, but the industry standard applications are simply not represented. Now, accounting… there are a lot of people who have yet to discover why accounting is sexy. Funny how people in love with the attention to detail that programming requires seem to glaze over when met(/confronted) with accounting tasks. And so, the gap between accounting and software development seems to be an even longer stretch than in the previous example. Again, applications exist, with their own limitations. Most used is probably Gnucash, in interface somewhat similar to Quicken. However, I actually find myself impressed with another system, namely Phreebooks.

Okay, so the above may have reinforced those who think that open source developers should keep a safety distance between coding and the naming of the applications, but this is actually very good.
Phreebooks is not an installable application - in the sense that it is a web application. This is not to say that there is anything preventing you from installing a web server on your desktop machine, but one of the reasons I was looking into this was so I could find something I could host on a web server - the infamous, yet ubiquitous concept of in the cloud - because data centers simply know more about keeping systems alive than I do. Also, I appreciate that a company which is not just a local operation can access the data from anywhere (no, I am not trying to set up an opportunity to do my work from a tropical island, but yes, I appreciate the fact that this would be possible).

The system is a basic double-entry account structure. During installation, you are offered the choice of a set of default accounts, and while this is not necessarily what you need, I found it useful to get an impression of the thoughts behind the setup.
While on the subject on installation: The Installation Guide simply lists PHP5 or higher & MySQL 4 or higher as dependencies - which means you should be able to run it off pretty much any Linux hosting service you can come across. As you go through the installation, you also enter basic information about your company, the fiscal year and the currency you will be using. You will have to create the MySQL database yourself, but after that, it is simply to enter the database credentials, and the installer will pick it up. As you finish the installer, you arrive at a login screen - which will take you to the main overview. Which is not much to look at, at first.

See? Wow. Well, it is simply the beginning. I will get into the categories you see listed there. All these are pull-down menus.
The Customers section allows you to - not just create and manage customers, but this has most of the dealings with the customers in general.
Besides customers, there is a wider CRM - Customer Relationship Management - system built in - PhreeCRM - which works as an extended address book with the contact information on people relevant to your business - to some depth, actually, including also things like Twitter and Facebook IDs and space for your own notes.
This is also the section where you can create quotes for your potential customers - and invoices. Phreebooks are clearly centered around a business selling a physical object; Quotes and invoices are created based on the inventory, and so far, I have yet to determine a way to sell goods which do not work like that - as in the membership we work with at the chamber of commerce or the billable hours we manage at the law firm. I mean, obviously I can start with adding a million of each to the inventory and selling from that pool, but it seems more logical there would be a type of good which would function differently. I am exploring this at the moment. After entering the data for the quote/invoice, Phreebooks can generate a PDF file of the invoice and let you download it - or email it directly from the system. Actually, it can pretty much create a PDF file of any form you might need to keep as a file or print.

The Vendors section once again gives you a clear impression that this is a buy-and-sell company - you can request a quote on every object in your inventory list and send it to the contacts you have created, so it is quite easy to manage these requests. It is even possible to set a preferred vendor for a product, which will be default in your quote request form. This is also the section where you place a Purchase order.
Both of these have a management interface where you can see the list of requested quotes and the purchase orders.

You can probably guess what the Inventory is. An interesting feature is that while you can add products, you can also add ‘assemblies’ - products which are a package of other products. The example is a computer, which is an assembly of hard drive, case, motherboard et cetera.
Curiously: While I am not particularly scared off by setup options and freedom choice, the fields available in the Inventory are pretty much open. There is a default selection of fields in the inventory for a product - Product numbers, descriptions, relevant accounts and so forth - but all this is editable! You can set up a field for any metadata you want to associate with the particular item. This is one of those functions which you probably don’t want to touch in the first run, but which will suddenly be a lifesaver at some point, you know? That is the gift of flexibility.
As I said at the beginning of the walkthrough: If you haven’t added items to your inventory, there is nothing you can do; it is all considered a closed circuit - as a true account set should - where values are transferred from one end to the other in the system of debits and credits.
Note, by the way, the History tab in the product view. This offers an overview of how the product is selling.

The Banking section is pretty much just dealing with the cost and income generated from the previous postings. It is for paying the bills, receiving payment, doing refunds - and it allows you to see the cashflow in the cash accounts.

The General Ledger lets you register  internal transfers. It is where you access and administer the chart of accounts, and there is a budget function which allows you to target the budget limitations on all accounts.

I was quite happy to see the Employees section, as I was hoping to be able to tie costs and earning into the employees. The section doesn’t exactly do that - it is mostly a question of being able to tag purchases, sales and the like to the person performing them. I did note, however, that it is possible to tie these employees to the users created with access to Phreebooks, which should make the user entering the transaction the default user getting the credit, so to speak, for the transaction.

Okay, so this was the regular user’s side of it. The rest is administration, but no less interesting for that.  The first user created has full access to everything as an admin-type account. But it is actually possible when creating a new user to completely define which features this user should have access to - and whether it should be read-only access or full access. The Tools section offers some options which not everyone should have access to - such as being able to delete the company in question - but also functions like setting the designated numbering scheme of invoices, transactions, payments, quote requests et cetera. It is quite elaborate, actually. This is also the section where it is possible to back up the transaction log. The ability to trim it should make Phreebooks more snappy. The Report function makes it possible to generate reports on any type of transaction - from invoicing and cash flow to expected arrival dates of items ordered by vendors. These reports go a long way towards creating an overview of what is actually happening in the operation - on a more approachable level.
An import/export function enables you to use an existing list of customers, vendors, employees etc. - or to make a copy for the sister company with a client/product overlap. This is a clever way of solving that.
Finally, the main tool: It can back up all data from the company accounts. This is obviously very important for safety, but also because it makes it easier to upgrade. I am currently stuck with older data on a CiviCRM installation which I can’t work out how to upgrade around… If one can extract a complete dataset, nuke the installation, install an updated version and import the old data - that can make you happy.

A Setup section will let you define tax rates and currencies - it is possible to work with several currencies, and Phreebooks has the ability to update the currency rates remotely, so you will have the correct exchange rate. Default rates are USD as the primary currency and Euros as secondary. So this section is more centered around the metadata of the transactions.

The last (okay, almost the last) thing I will get into is the Company section. This sets up the default values for the accounts - as in, which account should be default in dealing with which categories, how and when should taxation be applied, what are the basic credit limits - support for several branches, if you are doing accounts for a company with several locations, and how to work with several currencies in the account set.

There is just one more thing, and that is one thing which makes it all a little bit happier to work with. You remember the blank starting page I posted about in the beginning? There is actually an option to create a view profile, so the first you see could be a financial summery, open invoices - or intracompany links or personal notes to keep track of what you need to do.

In conclusion: I believe that Phreebooks could cover the needs of the two operations I am currently working with. The functionality is certainly there, so it would mostly be a question of the user setting up a sensible set of accounts.
I would personally love to see time tracking added to the mix, but this can obviously be covered by other tools like Taskcoach or the web-based Kimai and added as a product sold by the unit. It merely seems practical to me if the employees - who can be tied into Phreebooks user logins - could do billable time tracking as well.
The stylesheets - the color aspects of the design - are not particularly pleasant to look at. While it is definitely functional, it would be nice with a bit of fairly simple graphical overhaul.
The dynamic interface sometimes tries to make some slightly odd guesses as to what you are trying to do. For instance, if you are making an invoice and enter quantity and choose a product from the drop-down product menu, the invoice comment line is automatically filled out - or not, if there is no comment associated with the product - and the cursor moves to the next line. If it is automatically done, why have a specific comment field?
Having said that, I can only conclude it is a very potent package, and I am strongly considering it as a hosted accounting solution.

I am going to do some screenshots of the interface. The link will be arriving shortly.