June is here. While we still don’t have much to show you, a lot of things have happened during these last two months.
We have been busy working these last two months and made lots of improvements on Web Translate It.
We hope to have something substantial to show you this summer. Here’s what we have been up to.
House cleaning and a few new features
Back in April we launched a temporary front page for Web Translate It to present our product. Since then, a lot has happened.
We’ve been working on a brand new design, implemented a few new features, dusted off some scalability problems and have drastically simplified our product’s architecture.
A new design
Remember the sketch we posted a few weeks ago?
Well, after using it ourselves, it didn’t felt right so we went back to our pencils and came up with something dramatically simpler.
This is very green. If you don’t like it, you will be able to change the background and header colour to your taste.
This new design is much more simple and will allow easier modifications in the future.
We worked on a new page we call the “String Log” (screen-grab above). This is basically a page showing the details of what happened on a string: translations changes, status changes, comments posted, in a chronological order. We still have a bit more cosmetic work to do on it.
We also worked on implementing string export, so you can actually fetch your languages files once the translation work is done. It’s not entirely finished yet, but the engine is here and ready to use.
We noticed some performance issues while importing large languages files to our system. These kind of tasks simply take too much time to perform online.
So we moved these CPU-hungry tasks as background jobs. It was a very interesting project to do. We’ll write another post later to share our experience on this.
As much as we try to keep things simple, some parts of our product seemed very complex to use so we reworked them in a much more simple way.
We also rewrote our
.pot file parser from scratch, as the one we were using was blatantly inefficient.
Some of our work cannot be seen. We set up a communication system, a server monitoring system, and tuned our backup system.
Our source code and our database are backed up to an offsite server every day.
We also installed some tools to help us code better.
We now have a continuous integration server, Integrity.
Every time we we push code to the main branch, Integrity runs the website’s batch of tests and tells us the result on Campfire.
Of course we test our code locally on our computers while we code, but several times we committed code breaking the test suite without noticing.
It is now impossible to ignore it.
“You can’t control what you can’t measure”. We run software metrics on our code since four days now.
It seems promising and will help us a lot to improve our code.
Inspired by the good folks at Thoughtbot we chose metric_fu, a tool to generate software metrics for ruby code.
Basically, metric_fu calculates everyday a few software metrics from our source code and notifies us from design issues, code smells, missing test cases, duplicated or too complex code.
Tools like Reek, Flay,
Flog and Rcov are amazingly useful.
Now, the vanilla metric_fu doesn’t look so hot. So we decided to go ahead and use Thoughbot’s fork which is aesthetically more appealing, and since we were at it we made it a bit better.
Our fork automatically generates and includes graphs showing our day-to-day progression. Grab our fork at Github.
Edit: our changes have actually been pull to the official metric_fu.
Getting in touch
We launched our company website/blog a few weeks ago to be as transparent as possible and talk about what we are doing.
We are really pleased to read you left us a few comments and we hope we’ll have the opportunity to discuss more.
If you want to hear from us or get in touch, you can use the comments here, or use our customer support forum at GetSatisfaction or send us an email.
If you prefer to just watch what is going on you can subscribe to the RSS feed for frequent updates, or join our mailing list if you want to get an email when we launch our product.