andrew@littlesvr:~$ uptime 13:26:34 up 1104 days, 10:14,  4 users,  load average: 0.61, 0.31, 0.21 I guess 1100 days doesn’t sound like a lot but 3 years does :) It’s still the same machine I mentioned a year ago. It’s been running and running and running, and not crashing! Theoretically 3 years is not a lot, …

Continue reading Beat my uptime: 3 years!

Here’s an OSTD feature I was really excited about and looking forward to implement: allow the user to put in some version control info for a project so that I can run a nightly cron job and pull any new translations that have been added to that project. Would have been a great feature, and …

Continue reading Oh, you Git!

I’ve started to run into serious performance issues with my SQL queries. I mentioned my concerns earlier, but now (still long before production time) I’m already experiencing clearly unacceptable performance. I’ve added a couple of thousand translated strings to the database, and uploaded another PO file for the record. That would run the following query …

Continue reading Good query bad query

Back in 2009 I wrote a post complaining about the needless complexities plural forms introduce to the i18n process. Now I ran into them again. Working on the OSTD I have to make sure I work with all kinds of PO files, and that has to include PO files with plural forms. The format of …

Continue reading Plural forms, again

A long long time ago I decided to do an experiment. I ported my open source application ISO Master to Windows, and kept the port as proprietary software. The experiment paid off, and I definitely made enough money to pay myself for the porting work, but that was then. In december last year my webserver …

Continue reading Shareware bandwidth

There are a number of articles and blog posts out there trying to explain scope and closures, but overall I’d say that a majority of them aren’t crystal-clear. No sh**. I’ve been trying to figure out how scope works in JavaScript on-and-off for the last several years. I was never a committed JS programmer though …

Continue reading Scoping in JavaScript

If you read the slightly older post and look at its screenshot and do some thinking – you might like me wonder this: given a bunch of JSON with multiple selections which can be modified in JavaScript using a form.. wait, modified using a form? One of the nice things about json is you can …

Continue reading Modifying JSON using a form

PHP has this really neat function, json_encode(). It can take an object of whatever type, including my own class with child arrays/classes, and make a valid JSON string out of it. I was going to write this function myself but I found PHP already has it. There’s one concern I have about it – it …

Continue reading Scary json_encode()

I got to implementing one of the primary use cases for OSTD – user uploads a template .pot file and gets a bunch of .po files with as many translated strings as possible. From a design point of view this isn’t a big deal: parse the .pot into a data structure, make a query per …

Continue reading Translating template files