ramblings on PHP, SQL, the web, politics, ultimate frisbee and what else is on in my life
On scaring your audience shitless
Well it really wasn't my intention, but I was aware of the risk when I prepared this talk at Forum PHP in Paris. I held the closing session where I talked about what I have learned while trying to document and eventually becoming part of the "PHP development process". The gist is essentially that there is not much of a formal process or any single person/entity that is controlling things. It all works based on trust, mostly implied rules/guidelines .. although increasingly the implied stuff is getting documented. Sounds scary? Well it sounds quite reassuring to some and scary to others.
Persistent connections with MSSQL
Hoping someone can explain to me what is going on here. We are connecting to SQL Server via mssql_pconnect(). MaxChilds is set to 256 and we are only establishing one connection per request. So as a result I am expecting a maximum of 256 established connections. A client went into production yesterday and due to a missing index the server ended up being insanely loaded, as the queries started to block each other. The sysadmin checked the state of things via netstat and found that there were close to 500 tcp connections to the SQL Server. What gives?
PHP 5.3.0alpha3 is finally out
Wow, after what feels like ages PHP 5.3.0alpha3 was just released. Originally we hoped to be able to release now intermediate releases every 2-3 weeks, this one took a good 2 months. Somehow this releases did its very best to stall itself. People that needed to work on things together by chance ended up being busy with other things and vacations in just the right order to make things impossible. Most of this was to be attributed to the namespace discussions, which climaxed in the backslash FUD campaign. I think we have finally a workable solution and its even documented! Greg even added a long promised FAQ. I am also happy to see that Christian got his rounding RFC committed.
Short mental note on fulltext indexes
I rarely use MySQL Fulltext indexes. Their performance is just not good enough, so often its better to just stick with "LIKE" or move to something else like Sphinx, Lucene etc. The only nice thing about them is the ability to compute a match "rank". Well anyways I had to write a new search plugin for a project that is based around MySQL Fulltext indexes and a match rank and all as well .. except that for some reasons some words just would not produce any results. As I was trying to find a pattern I finally noticed that in my test data some words were used in most rows and exactly those were not matching. Obviously it makes sense to exclude automatically any words that have a very high hit ratio. And indeed the documentation states that by default all words with a hit ratio of over 50% are excluded. Doh!
48 hours later .. and I still feel good
Two days after having finally settled on a namespace separator, having read all of the big threads on reddit and slashdot, countless blogs, hate mail send to my private email, hate mail to internals, whining on IRC, I still feel good about the choice we made. Very very very few of the critics even understand the problems. Even less are able to formulate their concerns in a manner worth answering. So yup, none of the things people whine and moan about that could have been done instead make me reconsider.