April 7th, 2010 by Dario Solera | 1 Comment | Filed in Development, Localization
ScrewTurn Wiki now supports 14 languages. They used to be more, but some of them have never been updated since 2.0 (you’re welcome if you care to help).
Handling translations have always been a pain. It’s time-consuming, it’s boring, and translation are quite never up-to-date. Last year we started developing and testing an in-house tool to let volunteers translate STW directly in their web browser, using a custom web application that talked directly with our Subversion repository. The aim was to achieve zero overhead.
As you might have heard, the thing turned out to be quite useful, so we decided to make a product out of it. Well, I’m glad to announce that thanks to Nuno and Pedro, two brave Portuguese contributors, we had our first brand new translation done entirely with Amanuens, starting from .resx files generation to the final commit.
Now, take a look at this figure: the total time we spent in handling this translation is something like 3 minutes. In case we update resource files, the system will automatically highlight changes so translators will know where to look. No more files sent via email.
This will sound like an advertisement, but Amanuens really changed how we handle translations for the better and I’m very, very happy about it. I had to tell someone!
March 29th, 2010 by Dario Solera | No Comments | Filed in Development, Software Design
We’re not moving to .NET 4.0 (yet), but it’s interesting to see how ScrewTurn Wiki starts up faster when run in a .NET 4.0 environment. Scott Hanselman put together a small comparison and it turns out STW starts 5.03% faster than on .NET 3.5.
It’s funny to see that our wiki engine is the fastest application in the list, but it’s also the one benefiting the smallest performance improvement. The others are all around a 10% improvement. Personally, I feel that startup time is not relevant anymore as servers are very powerful these days, moreover an improvement of 0.08s is pretty much negligible. At any rate, slower servers will benefit from the improvement.
We targeted .NET 3.5 only with STW 3.0 as we wanted to ensure that no one would be stuck to the old version because she could not upgrade .NET, and the same will happen with .NET 4.0. Although we’ll migrate the solution to Visual Studio 2010 quite soon after its official release date, we’ll still target .NET 3.5.
December 16th, 2009 by Dario Solera | 2 Comments | Filed in Uncategorized
As a couple of my favorite bloggers recently suffered a total data loss on their server and they had no reliable backup plan, I thought someone would be interested in how we do backups for the ScrewTurn website.
For a starter, the SVN repository is hosted at Unfuddle. svn.screwturn.eu is just a read-only mirror.
The backup is done this way, daily, via a set of batch scripts:
- a comprehensive backup of the MySQL database (used for phpBB and WordPress) is generated using the integrated scheduler
- the database backup file and all the other data (websites, SVN repository, etc.) is packed in a ZIP file
- the ZIP file is downloaded via FTP from a remote machine; the latter runs in Italy while the server runs in New Jersey, USA.
The most important part: how can we make sure that the backup works? Because we used it to migrate the site to a new server, and it works. The backup is all-inclusive: even scheduled tasks are backed up. The only thing that is not included is the IIS metabase, but for that I have a copy stored on my PC (also backed up daily).
Trivia:
- daily backups are preserved for an entire month offsite and for a week on the server, in case we need to restore something that’s been accidentally deleted (or hacked)
- the ZIP file containing the backup is roughly 465 MB, growing 1.5 Mb a day
- backups take up to 25% of our daily network traffic.
I’m personally a bit paranoid about backups, but I think they’re worth the time and money spent.
Bottom line: in case the whole datacenter blows up, we would only lose a day worth of data, which consists of a dozen forum posts, on average. All the other data is either a copy itself (SVN) or does not change very frequently (content of the wiki, the blog).