In my second post about Kayako, I would like to show what we managed to achieve. We posted our list of requirements for a help desk system in the previous post. I must admit that the setup took a lot of time we discovered a few bugs in Kayako along the way. Some of them were quite serious. The rest can be classified as defects as it looked like some functionality which was added on top of the existing system and implementation was not well thought through by Kayako.
Almost all errors were fixed by Kayako developers soon enough. However, we had one error which took us two weeks to fix. We exchanged emails with Kayako until they agreed to provide us with their open source code. From that point we tracked the bug within an hour. After setting up Kayako, as we have been making web applications for quite a long time now, our hands itched to make our own simple help desk system. If you are like us, you will understand, or at least will agree with us upon closer acquaintance with Kayako.
Read the rest of this entry »
2 comments | Print this post
In this post I would like to show how you can install bare minimum CentOS 6 system on VMware using a kickstart file. You will need to have a VMWare Workstation 8 installed and load either i386 netinstall image or the x86_64 bit version. My links point to the closest CentOS mirrors for me, and you will load it from one close to you.
We will not need Virtual CloneDrive as VMware is capable of running install directly from .iso file.
Let’s begin by creating a new virtual machine.
Read the rest of this entry »
No comments | Print this post
As you know we are about to launch our system – Nerrvana. It is time for the finale, hang the curtains, so to say – to prepare some nice templates for emails sent by the system. ‘A nice’ means it has to be in HTML format.
In the design of the system’s site we used loadable fonts and of course we would not mind using them in the emails. However, according to Campaign Monitor, in recent years nothing has changed – external fonts cannot be used in emails. Ok, we will take this as a given and will only use CSS and standard fonts. Googling this topic brings a tip on HTML coding for emails from MailChimp where they suggest to use inline CSS instructions, i.e. include the styles directly in the html tags. I will illustrate, using GMail as an example.
Read the rest of this entry »
No comments | Print this post
Writing this post was quite easy as we have already written about a way we use project management system and its’ connection to the forum. I decided to add some stats:
Board started: 15/Jan/2009 2:16 am (no, we are not only launching boards at night)
Number of posts: 12705
Number of topics: 537
Number of users: 26
Number of attachments: 2677
Size of posted attachments: 513.56 Mb
Database size: 89.3 Mb
Posts per day: 12.61
Attachments per day: 2.66
These are for three developers who are engaged in work continuously and the system administrator. All other activity is from customers and two guys who have tried to work with us some time ago.
This is a breakdown of posts inside our team:
Igor – 6484
Dmitry – 2516
Alexander – 2843
Vadym (systems administrator) – 252
I decided it will be better to let you see it all first. Taking into account my addiction to screenshots with notes inside I made this screenshot (click to enlarge):
Read the rest of this entry »
No comments | Print this post
We are quite conservative in the use of a version control system. Three years ago, Vadym had convinced us to start using SVN instead of CVS. At the same time Nerrvana came into our lives and we wanted to try some new systems that we thought would improve the process of its development. So we eventually adopted PHP Under Control (PUC) and Review Board (RB).
Today we will talk about RB. We use RB in the post commit mode. In this mode code is first committed to the SVN repository, and then later SVN RB hook* picks it up, adds to the RB which in turn sends letters to all the participants signed on changes in this SVN repository.
There is another mode – pre-commit. More information can be found in the RB documentation. This mode requires that the review request is created by hand. We thought it would be much easier to get it to do SVN. What if the errors will slip into the repository? They get there anyway
But the requests are generated automatically, and errors in the code can be fixed in the next commit.
Read the rest of this entry »
2 comments | Print this post
Part VII – our plans changed, we start implementing it.
In our last post we promised to tell you about the integration of our product (Nerrvana) with our forum (phpBB), blog (WP) and marketing site. We also were planning to show how we added code to collect analytics info into each component. Our plans changed since.
We decided to launch a beta version of our product without a forum, which takes the forum as well as Ideas and Answers out of our priorities list for now. We will add these parts during the beta testing period. But we need analytics anyway and it is time to start implementing it. Rephrasing ‘I sing what I see’ into ‘I code what I sing’ we start making it.
To heat up and tune we will complete a few tasks supporting our project.
1. Import GeoIP City database into PostgreSQL
We will need it to get visitors’ location. If you read our previous posts this is not something we terribly want from web analytics. However it can be handy to figure out what our clients business hours are. It is to understand that city info can be very wrong. According to this database I am in Perth which is not true for me. I am in Sydney but my ISP is in Perth. Country info is more reliable.
Read the rest of this entry »
No comments | Print this post
This post lists our requirements for a support system and will be followed up (in our next post) by configuration instructions implementing them in a system of our choice – Kayako.
You may ask us ‘Why Kayako?’ We tried some other systems – open source OTRS, OSTicket and commercial HelpSpot. Below you can find some reasons why these systems were rejected by us.
HelpSpot
- no prebuilt list of customers
- sharing is global and is not per portal at this time. So we can not turn on sharing (seeing all tickets for a company) for a client and turn it off for Nerrvana.
OTRS
- did not like UI
- too complex
- no portals
OSTicket
- no sharing. Each user can see only their own tickets
- no time tracking
- no portals
What are our requirements?
Read the rest of this entry »
No comments | Print this post
After reading Jason Cohen’s post “Naming your startup: Settle down, it’s cool!”, I recalled previously read “How To Pick A Company Name: Tips From The Trenches” and “17 Mutable Suggestions For Naming A Startup”, and even a manual from Igor International. I still remember how we came up with the name. All discussions have been recorded in our forum. Besides, I’ve never seen stories about inventing a name. And so was born the idea of this post.
Here is the (first?) naming chronicle. To ensure that you understand our conversations, I must say that English, for many of us, is the second, and for some – the third language. We were looking, of course, for an English name, so if some candidates may sound funny or have weird association in English, you’ll know that in Russian, they sound just great.
Read the rest of this entry »
No comments | Print this post
The system we are developing is intensively using virtual machines. When the system core requires another machine it copies the template image, and starts it. Thus, many copies of essentially the same machine can work simultaneously.
Of course, at launch each virtual machine is identical to the template including the inherited set of the network settings. All virtual machines run on the same subnet, and therefore they should not use the same IP obtained from the template image to prevent conflicts. That is, each machine should get its own IP. It would seem that the solution is simple – use a DHCP server and dynamic IPs.
However, there are other options which I will discuss in this post.
Read the rest of this entry »
5 comments | Print this post
In this post we’ll talk about dotProject – a web-based open source project management system. We have used it from 2004 to the present day (seven years). You may consider this post as a mini-guide on the use of dotProject, based on the experience of a team of four developers who build web applications for businesses. This post is quite lengthy as we wanted to share our experiences and avoid creating just another impractical review.
It is hard to remember now, amongst which systems I had to choose. I remember that I found dotProject and eGroupWare. Today, according to Wikipedia, there are tons of such systems. In 2005 the choice was much smaller and the level of their maturity much lower. I have installed dotProject and eGroupWare, and I liked the dotProject – it had all the features that were needed, and even more. If you’ve read some of my previous posts, you know that I am not a supporter of services when you have to pay regardless of whether or not you are using the service, where the data can not be easily migrated to another provider. In general, I like lock-in free services and respect people who create them. It is not easy. I want to be able to leave without loosing data or having a headache because of data conversion. In this case we are talking about the data stored in the database and the files that are attached to projects, tasks, etc. Otherwise, I feel insecure and dependent on the service provider. If we talk about project management systems, then this freedom is only given to you by an open source system installed on your server, developed (preferably) on the language you are familiar with. This gives you almost unlimited possibilities – you can dig up and tweak anything. Rule is simple. If you do not want to tweak – you can live without it. That’s why I chose dotProject.
Read the rest of this entry »
6 comments | Print this post