13. April 2008, 07:29, by Silvan Mühlemann
There’s a number of pitfalls one should be aware of when working with AUTO_INCREMENT fields in MySQL. Last week, we fell in each of them:
We have the table photos which contains all 15 million pictures on tilllate.com. This table is MyISAM and has id INT NOT NULL AUTO_INCREMENT as the primary key. The position of the auto increment counter was at 112′606′834.
(more…)
18. March 2008, 03:44, by Maarten Manders
Last week, I was lucky to go to QCon 2008 in London to meet with all the big names in the software industry. This was a great opportunity to see what everyone’s working on and to get a feeling for the newest trends in software development. Here’s what my gut says about the world of software development after QCon 2008 (part 1):
(more…)
22. February 2008, 12:12, by Steven Varco
Our Dell PowerEdge 2950 Servers for the new DB Cluster has just arrived and I’m very excited, unpacking them.

(more…)
5. February 2008, 17:09, by Silvan Mühlemann
EXPLAIN is not the only way to analyze query perfomance im MySql because some things are not being taken into account. For example LIMIT clauses or the cost of the optimizer. There is also the mk-query-profiler.
An interesting way to compare the performance of two queries is to use mk-query-profiler along with diff
Here’s how you do it. As an example I take the queries from this mysql performance blog article
article. Because I’d like to learn what excactly SQL_CALC_FOUND_ROWS does.
(more…)
28. January 2008, 16:55, by Mario Rimann
Moving all servers of tilllate.com in one night?
Maybe you’ve read our short announcement on the tilllate website last week: We were offline for some planned maintenance.

In detail, we moved all servers to a new cage in the datacenter. We like to give you some insight, of what happened after switching off the tilllate webservers. (more…)
18. January 2008, 17:47, by Silvan Mühlemann
I am a lazy guy. I hate moving my hand away from the keyboard to the mouse and back. So I try to use as much keyboard shortcuts as possible. Here’s 2 ways I improve my productivity by avoiding device switches in Firefox:
Keyboard shortcuts
Here’s my personal Top 5 of keyboard shortcuts:
| 1. Ctrl+L |
Move the focus to the location/URL field |
| 2. Ctrl+K |
Move the focus to the search field |
| 3. Ctrl+H |
Open the history |
| 4. Ctrl+F / F3 |
Open the search. F3 repeats the last search |
| 5. Ctrl+T |
Open a new tab |
You’ll find a lot more useful shortcuts here
Keywords for your bookmarks
To access my bookmarks quickly I usually use Ctrl+L and then type a keyword. n is our Nagios problem overview. c is our confluence homepage.
Combined with the search variable %s I have extremely fast wikipedia searches (wiki foo) or translations from German to English (leoe fahrvergnügen).
How to set it up? micrux.net tells you more.
Thanks, Patrice, for showing me this. You helped me save hours switching between mouse and keyboard.
7. January 2008, 08:39, by Leo Büttiker
Trevi is not only a fountain in Italy, it’s our new application framework as well. We migrated our first pages to this new platform and brought them online three weeks ago. But let me explain the story of Trevi.
Another Framework?
There’re already thousands of web frameworks out there so I would sink into the ground if we really wrote another one. But serving pages for 2 million unique clients, it would also not have been a solution to just go to a shop and take the beautiful looking, nice boxed xyz framework from a big company. So my co-worker (and Trevi project lead) Maarten started a year ago to evaluate a framework that fits our needs best.
(more…)
5. January 2008, 22:16, by Leo Büttiker
On the view of your database the worst thing you can do in your web app is paging. Paging is horrible in the view of performance. To explain let me make a little example:
SELECT SQL_CALC_FOUND_ROWS gb.*,
u.username,
u.uid,
u.geschlecht,
u.mitfoto,
[... some more fields...]
FROM member_gold_guestbook gb
LEFT JOIN users u ON u.uid=gb.uid_from
[... some more left joins...]
WHERE gb.uid_to='22152'
AND visible='1'
LIMIT 0,10;
That’s not that bad at all, but when you go to page 300 your database server will hate you for this. The database server has not only to calculate the 10 items you want to show but also all 3000 previous items.
Sure you may argue nobody will ever go to page 300. Somebody will not, but “googlebot” and his evil brothers will. And the bad thing is that you can do nothing against it, as long as you need paging. There are just a few tricks that may reduce your server load a bit.
(more…)
30. December 2007, 23:49, by Silvan Mühlemann
For me, the time around Christmas and New Year is the best time of the year. Of course, there’s the peaceful family reunions around the christmas tree. The cozy evenings at home on the couch. Or days where you can shamelessly sleep in. In my case I am expecting my son Orell who should be born anytime.
But stop: This is a business related blog. And so I am not talking about my private life. When I say “the best time of the year” I am thinking about work. There’s no better time of year for not taking vacations. Here’s why:
(more…)
20. December 2007, 11:30, by Vladimir Tišma
In many companies, management decides to setup a web proxy server to be able to control/disable the non-busines-related content. YouTube could probably be blamed for many hours spent doing non-business stuff.
Well, I use YouTube myself. Sometimes when taking a break and sometimes to listen to music that goes with the video, and you don’t have to watch it at all, but it’s probably the fastest way find and listen to a certain song if it’s available. Well, this time, YouTube will be a critical factor to finding the elegant solution.
(more…)