Thiemo Mättig

Thiemo Mättig

Aktuell bei den Kurzkritiken: »Edge of Tomorrow«
I'm working with MySQL databases in PHP projects for about 14 years now. You connect to the database server, select a default database, query a result set resource with $result = mysql_query( 'SELECT column FROM table' ) and start fetching the rows with $row = mysql_fetch_assoc( $result ) in a loop. mysql_query does not fetch the rows, right? That would be stupid, right? It can't know what you are going to do with the result, right? Wrong. mysql_query fetches the rows. All of them. Which means using mysql_num_rows for everything with more than a few dozen rows is a stupid idea.

PHP, I love you, but you are still weird.
Kommentar hinzufügen
So Ubuntu/Unity really utilizes the same rainbow effect as Windows and MacOS?
Subpixel rendering in Ubuntu/Unity
But why does this feel so much more comfortable than the ridiculous color bleeding Microsoft calls »ClearType« for unclear reasons?
Kommentar hinzufügen
(bereits 1 Kommentar)
Why are you still using Opera 12?

There is nothing wrong with using Opera 12. It's a recent browser. It was updated to version 12.17 in April 2014. That's just a few weeks ago.

Using so called »major« version numbers is completely pointless nowadays. The original development team spent 19 years, from 1994 to 2013, to develop Operas first twelve major versions. And as a Opera 12 fan I can assure you it was worth the time. Then they started over, used the product name for something different, even skipped some numbers completely and increased the number to 21 in less than a year.

So hell, no, Opera 12 is not »9 major versions numbers behind«. Even if you do not count the security updates, Opera 12.10 is only one and a half year old.

For comparison: The first non-preview release of Internet Explorer 10 is older.

Sure, Opera 12 starts getting old. So gets IE 10. We all must move forward and even I as a deeply hooked Opera 12 fan had no other choice and started using a Chromium build in parallel. But still, one misconception always annoyed and keeps annoying me: You just can't blame the browser if a website stops working. Hell, the browser doesn't change. It's the website that changes and stops working.

Opera always was ahead of it's time and is still not at a point where it falls behind. Some of it's HTML 5 features are still better than what's in the current Firefox version. Opera 12 supports transparent colors, gradients and transitions, for example. Sure, there is no way to make recent games work in Opera 12. But if we are talking about content driven sites like Wikipedia it's still an absolutely valid, flexible, feature-rich and heavily customizable browser that does exactly what it's supposed to do: Let me edit Wikipedia.

I don't care if a gradient is missing or a transition looks odd. But using and editing Wikipedia in Opera 12 must be possible for at least another year.
Kommentar hinzufügen
(bereits 6 Kommentare)
In PHP, there is no difference between arrays and hash tables. Arrays are always associative arrays. There are several methods to check if a specific key or value is present in an array. If you know a little bit about data structures you should know that searching for a key should be much more efficient than searching for a value. But how big is the difference? Does it even matter?

My simple benchmark compares in_array( $value, $array ), array_key_exists( $key, $array ) and isset( $array[$key] ) on arrays of different sizes. The number of function calls is always the same (10000), randomly spread so that half of them succeeds and the other half fails. Time is measured using microtime( true ) and rounded to milliseconds.

Array search in PHP: Benchmark to compare in_array, array_key_exists and isset
(Same graph on quadratic/logarithmic scales.)

The result really looks how you think it should look. Searching for a key in a hash table needs constant time, no matter how big the array is. That's exactly why we have hash tables, right? On the other hand, searching for a value in an array needs dramatically more time even on relatively small arrays with only 100 elements. For an array with 10000 elements in_array is more than 100 times slower.

So never ever do in_array( $key, array_keys( $array ) ), that's just stupid.
Kommentar hinzufügen
(bereits 2 Kommentare)
Mein Blog-Nachbar Sven hat eine Videoreihe angefangen und er läuft sich langsam aber sicher richtig gut warm. Spieletest, Filmkritiken, Retro-Zeug und mehr. Wenn ich das Projekt in eine Schublade stecken müsste, würde ich sagen, dass es sich um Geek-Stuff für Geeks und Nerds handelt. Schaut mal rein.
Aktuell in der Fotogalerie:
Vernebelter Hinterhof bei Nacht in einem Wohngebiet mit dreigeschossigen Wohnhäusern
Aktuell im Glow-Entwicklertagebuch: »Gamebrief«
Aus meinem Spam-Ordner: »Mir ist aufegfallen das Sie zuviel für Ihre Krankenversicherung zahlen.« Ach, die Spammer haben also Zugriff auf meine Kontobewegungen? Naja, seit PRISM wundert sich darüber wahrscheinlich kein Opfer mehr. »475 €uro pro Tag VOLLAUTOMATISCH durch SOFTWARE!« Klar, das funktioniert wahrscheinlich sogar ein paar Tage lang, bis das Bundeskriminalamt klingelt. Ich werde nie verstehen, wie es Menschen geben kann, die auf so etwas hereinfallen. Und die muss es offenbar geben, sonst würde sich das für die Spammer nicht lohnen und sie hätten längst aufgehört.
(bereits 4 Kommentare)
Endspurt im js13kGames-Wettbewerb, daraus gezogene Lehren und Anmerkungen zur Produkt- und Webentwicklung in meiner Twitter-Woche von 2012-09-10 bis 2012-09-16.
Weiter lesen …

[ Ältere Einträge → ]