|
|
Andrei Zmievski |
|
19-January-2008
GeekSessions Talk and Slides
This past Tuesday I was a co-presenter at GeekSessions, an event that brings together speakers on a particular topic and the audience interested in it, or, as their site says, "a place with smart people and free beer." This Geeksessions event was, of course, centered on PHP and the other speakers were Cal Henderson of Flickr, Lucas Nealan of Facebook, and Sara Golemon of Yahoo!. We each had 15 minutes, but everyone had excellent talks given the time constraints. Thanks to Cindy and Shon Burton and Christian Perry for inviting me and for organizing the event, and to Terry Chay, for being the MC. The slides from my 15 minute talk, all 40+ of them are on the Talks page.
Posted at 10:37
|
Permalink
| Comments (2)
15-September-2007
php|works Atlanta Slides
I am back from Atlanta. This was a pretty good conference and also my first visit to that area. There were some very interesting talks, and the closing keynote was supremely funny and inventive - great job, Sean (and Marco). A few of us ventured into the city in the evening and had the best LHB event so far. Slides for my keynote and VIM presentation are available on the Talks page.
Posted at 14:30
|
Permalink
| Comments (0)
11-September-2007
php|works Atlanta
Ed Finkler, or funkatron, as he prefers to be known (although I'll have to investigate this claim of "tron"ing the "funk"), put up a Guide to php|works Atlanta. He has good judgement to highlight both of my talks (your pick of a beer at the conference, Ed). Apparently, Matt Mullenweg won't like whatever it is I have to say in my keynote, which means I can make whatever extravagant claims I want. And yes, "Vim for (PHP) Programers" should be very nerdy, yet very, very hot. Oh yes. Work it, baby. I'm almost positive someone will go into the Insert mode during the talk. Off to Atlanta tomorrow. I hear that the ratio of single, attractive, funny and intelligent women to, well, men over there is about 9:1. 'Nuff said.
Posted at 10:15
|
Permalink
| Comments (4)
13-August-2007
Conference Update
It looks like the rest of the year will be pretty busy with conferences. First up is php|works in Atlanta, coming up in September, where I will be giving the opening keynote as well as the popular VIM for (PHP) Programmers talk. The week after that, I was invited to present at the TYPO3 conference in Karlsruhe Germany. In October, I will give the Internationalization with PHP 6 talk at ZendCon, which, thankfully, is only about 15 miles away, and finally, at the end of November, I'll present the same talk to the audience at the AFUP Forum in Paris. Somehow, I think I'll be ready for a vacation in December..
Posted at 22:04
|
Permalink
| Comments (4)
19-July-2007
Presumption of uncluefulness
PHP internals mailing list has been filled with massive threads lately, mostly concerning PHP 6. Nothing too surprising in the amount, topics, or quality of polemic there, but I just love it when someone pipes in with a post like this:
That's just awesome. We totally haven't considered that before, but your brilliant, yet humble and self-deprecating idea has shined new light onto the issue. Don't worry about PHP internals, it's just some hackish code we had lying around. I just have to wonder why someone would post this without bothering to research the issue at hand for at least 15 minutes. It'd be like me going to the space shuttle designers and saying, "Hey, I know I don't have a degree in rocket engineering and it's just an idea, but that problem with the insulation foam you're having.. have you thought about putting some duct tape on it?" Every message like this leads me to change my default presumptions about the cluefulness of the new posters to the list, and unfortunately, not in a better direction.
Posted at 17:41
|
Permalink
| Comments (4)
12-July-2007
No_More_Absurdly_Long_Class_Names
Ladies and gentlemen, we have namespaces.
Posted at 22:14
|
Permalink
| Comments (16)
11-April-2007
Two openings at Yahoo!
Yahoo! Engineering has two immediate openings in its Sunnyvale, CA office. First opening:
Second opening:
If any of this sound like your cup of tea and if you want to live in sunny California and work in one of the best companies in the tech arena, send your resume to
Posted at 10:19
|
Permalink
| Comments (3)
16-March-2007
Conférence PHP Québec talks
Just finished giving my second talk, VIM for (PHP) Programmers, at the PHP Québec conference. The first one was the usual Unicoding with PHP 6 one, and this is next to last time I've given it (php|tek in Chicago will be the last one). Both are available on the Talks page. I also updated the VIM resource files which I encourage you to download. Unfortunately, I did not beat Rasmus's talk this time, so clearly there is room for improvement.
Posted at 11:00
|
Permalink
| Comments (1)
05-March-2007
Linux.com interview
Linux.com published an article based on the interview that Bruce Byfield did with me at the Vancouver PHP Conference. It's a pretty good overview of the Unicode effort in PHP 6, albeit with a couple of minor inaccuracies.
Posted at 17:40
|
Permalink
| Comments (1)
02-March-2007
Vim talk claims top spot
I just received the evaluations for my talks from the Vancouver PHP Conference, and, surprisingly, the new VIM for (PHP) Programmers talk got the top overall rating, even beating Rasmus's keynote. :) I guess VIM is a lot more popular than I expected. The next time I am giving it is at the PHP Québec Conference, so I am planning to invest some time into making it even better.
Posted at 15:49
|
Permalink
| Comments (2)
21-February-2007
PHP 6 and Request Decoding
It looks like we have finally settled on an approach for HTTP input (request) decoding in PHP 6. There have been no fewer than 4 different proposals floated before, but this one combines flexibility, performance, intuitiveness, and minimal architectural changes, and has only a couple of small drawbacks. Let's take a closer look. As you probably know, correctly determining the encoding of HTTP requests is somewhat of an unsolved problem. I know of no mainstream clients that send the charset specification along with the request. This means that it is up to the server or the application to figure out the encoding, which can be done in a number of ways, including encoding detection, looking at Accept-Charset header, parsing request to see if _charset_ field is passed, and more. Unfortunately, none of them are completely reliable and the best you can do is guess the encoding with some degree of confidence. The approach that we decided on is basically a lazy evaluation scheme. When PHP receives the request, it will simply store it internally as-is and not do any request decoding at all. However, if your script happens to access $_GET, $_POST, or $_REQUEST arrays, the runtime JIT handler will kick in and convert the values in the array from binary (raw) to Unicode based on the current HTTP input encoding setting. This will be done for the whole array at once, not per element. The encoding setting can be changed at runtime via tentatively named http_input_encoding() function. If the encoding is changed, the JIT handler is re-armed and the next access to the arrays will re-convert the stored raw data to Unicode based on the new setting. The advantages of this approach are numerous. For one, PHP is not forced to guess the encoding of the request during request parsing stage, which happens before the script is executed. This allows the application to explicitly set the expected encoding or query other sources for the possible encoding value. For example, there could be a function that performs encoding detection on the request and returns the guess along with the degree of confidence; or PHP could parse the request and provide the raw value of the _charset_ field. In either case, it is up to the application to set the encoding before accessing the request arrays. Secondly, PHP does not have to do request decoding until it is necessary to do so, removing the upfront cost for scripts that do not need request arrays. Thirdly, in case there are conversion errors, they are processed using the same mechanism that PHP employs for other encoding conversions, allowing application to set a custom conversion error handler. One possible problem with this approach was pointed out by Rasmus. Someone could try to inject bogus data into the request, so that when the app accesses a request array for the first time, the bogus data trigger the errors in the conversion process. I think we can deal with this issue in a sensible way, and that the pros of our approach outweigh the cons. Note that the decoding of the request has nothing to do with filtering. The job of the filter extension is to validate or sanitize the data, and it has to operate on the results of the request conversion, i.e. Unicode strings. Hope this has been a useful preview of this very important part of PHP 6. Once this functionality is complete, we can finally make the Unicode preview release. Stay tuned.
Posted at 11:27
|
Permalink
| Comments (4)
16-February-2007
99 Frameworks of Code Out There
People, enough with new frameworks already. I know you might be lusting after Rails for some reason and want to have the fame, the glory, and the dancing girls of DHH, but are we not going to be satisifed until Sourceforge is filled with the object-oriented diarrheal remains of our overblown egos and delusions of grandeur? I counted no less than 3 separate announcements about new PHP frameworks today, just by scanning the front pages of phpdeveloper.org and planet-php.net. As well intentioned and technically robust as these efforts might be, do we really need yet another patterns-based abstracted MVC-driven buzzwords-filled concoction? Look at the list of existing PHP frameworks, are they really all that different? Why start another one? Why? How long are we going to be suffering from the NIH syndrome? Oh, the humanity... If you have an itch that only frameworks can scratch, then my advice, should you choose to take it, is to find an existing mature framework that gets as close as possible to your requirements and work on it. Add features, fix bugs, write documentation, promote, contribute, and improve in general, but resist the urge to spew out a torrent of code into our environment simply because you thought of an oh-so-clever moniker and need to stick it onto something. Please, no more new frameworks.
Posted at 16:50
|
Permalink
| Comments (33)
"VIM for (PHP) Programmers" slides and resources
By popular demand, I have uploaded the slides and the VIM script files from my VIM for (PHP) Programmers talk in Vancouver. You can find them on the Talks page. This was the inaugural presentation of the talk, so I beg forgiveness for the rough edges and any inadvertent mistakes (of which there should be none, I hope). It was nice to see that the talk was well attended and received. With any luck, it might become a semi-regular one on the PHP conference circuit. Happy VIM'ing.
Posted at 0:18
|
Permalink
| Comments (7)
15-February-2007
Unicode slides from Vancouver PHP Conf
The slides from my Unicoding with PHP 6 talk are now available on the Talks page. VIM slides and resources will be coming up shortly. I want to thank Shane Caraveo, Audrey Foo, Peter, and the rest of the organizers for the excellent, well-run conference. I really enjoyed the variety and quality of the talks.
Posted at 10:41
|
Permalink
| Comments (1)
19-December-2006
50% There
Well, PHP boys and girls, this feels like quite a milestone: 50% of the 3084 functions that are bundled with PHP 6 have been upgraded to support and work safely with Unicode. I think it was hovering at around 10% only a few short months ago, so the development has definitely accelerated and, hopefully, the avalanche effect will continue. Preview release, here we come.
Posted at 15:20
|
Permalink
| Comments (7)
02-November-2006
Slides from Zend Conference
I gave a talk on PHP and Unicode at the Zend Conference 2006. It was actually at 8:30 in the morning on the day of my birthday (November 2), which I thought was a nice touch on Zend's part. Additionally, all the sessions in the conference were numbered with track number and order, so my session's number was 2-11. Coincidence or not? In any case, the slides are online now.
Posted at 12:35
|
Permalink
| Comments (1)
21-October-2006
"PHP Eats Rails for Breakfast"
That is indeed the title of the article on Ohloh, a site that collects information on open source projects and gathers statistics by analyzing the source code of those projects. So far they've indexed over 3,000 projects and their conclusion seems to be that among Web scripting languages, PHP is the undisputed champion (as measured by the LOC count). Measured purely by the number of new lines of code, PHP leaves all other web-scripting languages in the dust, and continues to grow. Quite simply, one-fifth of all open source code being written today is written in PHP. This, combined with their observation that the relative number of developers working in PHP is not increasing and that the number of new projects being started has actually decreased, leads to an interesting premise: the trend for for PHP-based projects points towards mature code bases. Meaning that the developers prefer to work with existing applications or frameworks and increase their output through updating these applications rather than starting new ones. In general, that seems to be a good trend, if one can rely on the data gathered by Ohloh. I have not done an exhaustive examination, but there are some puzzling things in the data on PHP project itself. For example, how do they calculate "man-years" for each developer? My number is 5.5, which puts me fourth on the list behind Rasmus, Derick, and Frank. I know I've been working on PHP longer than that. And then, Andi and Zeev are actually below me with 5.3 and 5.2 man-years respectively. The account with the most man-years seems to be our automatic changelog committer script, even though it committed a total 0 lines of usable code. :) Even without Ohloh's data, one could venture to say that the code base of projects using PHP is larger than those of Ruby or Python. A lot of that is due to the accessibility of PHP, I think, but does pure lines-of-code count give indication to the quality of said code? Of course not. I think Ohloh is providing a useful service by tracking this kind of information, but I would take its results with a few grains of salt.
Posted at 12:18
|
Permalink
| Comments (3)
15-September-2006
php|works 2006
A quick note to let people know that the slides from my php|works 2006 talks — "I Love Unicode, You Love Unicode" and "PHP-GTK 2" — are available online now.
Posted at 7:49
|
Permalink
| Comments (2)
30-August-2006
Interview on DevZone
Cal Evans caught up with me at OSCON 2006 and talked to me about Unicode and other PHP stuff for 30 minutes. The resulting interview is now online at Zend's DevZone. I do wish he'd have picked a different picture for the top one — that was one taken too late in the night.
Posted at 10:01
|
Permalink
| Comments (5)
31-July-2006
My name is not really Andrei
Ryan Kennedy commented on the presentation I gave at OSCON; specifically, about the transliteration support in PHP 6. I wanted to follow up and explain exactly what it is and, unfortunately, what it is not. Ryan was excited about the possibilities presented by transliteration, especially as it applies to representing foreign names in reader's native script (think mail readers). This works really well for Japanese names:
echo str_transliterate("やまもと, のぼる", "Any", "Latin");
And the result is: yamamoto, noboru This is sweet, right? We get an approximate spelling of the foreign name and one could even attempt to pronounce it. But does it work for all script pairs?
echo str_transliterate("Tom Cruise", "Latin", "Cyrillic");
What do we get for this paragon of fame? Том Цруисе Hmm. If I had to reconstruct for you English speakers what that sounds like in Russian, it would be something close to TOM TSRU-EE-SEH. Probably not how he'd like to be known in Russia. What is the problem here? The problem is that English orthography is defective. There is a disconnect between the orthography (spelling) of English and the phonemes (sounds) of the language. We've all seen this: each English letter may represent more than one sound (c can be [s] or [k]), and each English sound may be written by more than one letter ([f] can be f, or ph, or gh). This plays havoc with transliteration which is a literal mapping from one system of writing to another. Transliteration is supposed to be lossless and thus, reversible. In order to achieve this the mapping rules must represent each letter (glyph) of the source script as a separate glyph or a unique combination of glyphs in the target script. Transliteration knows nothing about the underlying sounds of the language and works only with the written forms. You can see how this is problematic when you come to a language like English. What you really want is transcription which maps the sounds of the source language to the script of the target language. This is fairly easy for an efficient language, one where the sounds have one-to-one mapping to glyphs, and becomes progressively more difficult for less efficient languages. With English, the transcription process has to rely on a dictionary providing exact phonetic transcription of pretty much every word. Still, transliteration works fairly well for a good number of script pairs since it attempts to map the letters of the source script to similar sounding letters in the target one. The results mostly depend on how efficient the source language is (as with Russian->English). Transliteration rules can be customized, and if you're willing to live without the reversibility requirement, one can get fairly accurate representations. The str_transliterate() function in PHP 6 uses default built-in transliteration rules, but there will be a way to provide your own rules towards achieving this goal. Hope this helps explain some of the issues concerning mapping one writing system to another. Until next time.
Posted at 11:14
|
Permalink
| Comments (8)
29-July-2006
Back from OSCON 2006
Just got back from OSCON which was again in Portland this year. The conference was excellent, as always and so were the events and extracurricular activities. The sheer variety of talks at OSCON is exciting and frustrating at the same time: exciting because I attended several talks that I would not get to hear at a more focused conference, and frustrating because of the time conflicts between these talks. The slides from my own session on PHP 6 and Unicode are online now. By the way, if you like books just a tiny little bit and happen to be in Portland, do yourself a favor: set aside a full day and visit the Powell's. It the world's largest independent used and new bookstore (covering, oh, a couple of city blocks) and has an amazing collection of books (including some very rare ones). You could literally lose your friends and family there and wonder among the stacks for hours whilst salivating giddily over the titles on whatever topic your mind can imagine. And don't worry, there is always the coffee shop to come back to and get provisions to sustain yourself.
Posted at 21:24
|
Permalink
| Comments (3)
15-July-2006
PHP-GTK 2 Zeta (Yes, Zeta)
PHP-GTK 2 Zeta release, the first one of the new architecture, is finally out. No, zeta it's not a typo. What's a zeta? Well, it's a letter of the Greek alphabet. Why zeta? Because, a) we've gone through several "iterations" of this release without actually releasing anything, but more importantly, b) alpha and beta get all the glory in the software world, leaving the other Greek letters longing for a spot in the sunshine. So, zeta it is. While preparing this release I looked at the very end of the NEWS file and realized that I have been working on this project for over 5 years now. That is a sobering thought, which reminds me that I need to go and set up my place for the party tonight in preparation of imbibing copious amounts of mood-altering substances better knows as beers. Cheers.
Posted at 11:50
|
Permalink
| Comments (4)
13-July-2006
All the Little Pieces, or TextIterator in PHP 6
I have been working on the Unicode support in PHP for quite a while now and I figure that it is time to start talking about Unicode and I18N in general and specifically about some of the new features that PHP 6 will be bringing to the table. First up is the new Swiss-army knife-like TextIterator class. The purpose of this class is to provide access to various text units in a generic fashion. Actually, I lied. TextIterator implements ICU's full boundary analysis API, so what it really gives you are the boundaries between the text units. A slight distinction, but well worth remembering. And what are these units, might you ask?
As its name tells you, TextIterator also implements PHP's Iterator interface and thus can be used in such constructs as foreach(). As a quick example, let's go through a string and extract all words contained in it (skipping empty pieces). Using foreach() it is as simple as:
$str = "The quick brown fox jumped over the lazy dog.";
The result is: 0. The 2. quick 4. brown 6. fox 8. jumped 10. over 12. the 14. lazy 16. dog 17. . Doing the same thing without foreach() is a bit more involved, but also more flexible. We'll print out the words along with their boundaries' offsets.
$it = new TextIterator($str, TextIterator::WORD);
And the result here: [ 0.. 3] The [ 4.. 9] quick [10..15] brown [16..19] fox [20..26] jumped [27..31] over [32..35] the [36..40] lazy [41..44] dog [44..45] . One thing worth mentioning is that, at least for now, accessing random offsets in the Unicode strings is somewhat slower than in the binary strings. So the foreach() approach ends up being faster and is the recommended way of accessing text units in a linear fashion. What else can we do with boundary analysis? At any point we can retrieve the text element at the current boundary with the current() method. Continuing the example:
$it->first();
will give you "The". We can move backward with the previous() method:
$it->last(); // positions iterator beyond the last character
gives you "." which is the last word in the text. If you want to move through multiple boundaries in the same call, just pass that number to next() and previous():
$it->first();
gives you "brown". You can check whether a certain offset is a boundary or not with isBoundary():
var_dump($it->isBoundary(10)); // true since 'brown' is at offset 10 and it's a boundary
Two more methods, following() and preceding(), allow you to locate a boundary immediately following or preceding the specified offset. This might be useful for doing ellipsis on a piece of text:
$limit = 25; // cut off at 25 chars or before
gives "The quick brown fox ...". One more thing to note is that isBoundary(), following() and preceding() actually reposition the iterator to the located boundary. TextIterator has a counterpart that does everything (well, almost) in reverse. It's called, wait for it.. ReverseTextIterator. It has the exact same API and can be used transparently where needed:
foreach (new ReverseTextIterator($str, TextIterator::WORD) as $num => $word) {
The result here is: 0. . 1. dog 3. lazy 5. the 7. over 9. jumped 11. fox 13. brown 15. quick 17. The Last but not least, if you are really lazy and just want to get all the text pieces defined by the boundaries, TextIterator provides a convenient getAll() method:
$it = new TextIterator($str, TextIterator::WORD);
With the expected result of:
Array
(
[0] => The
[1] =>
[2] => quick
[3] =>
[4] => brown
[5] =>
[6] => fox
[7] =>
[8] => jumped
[9] =>
[10] => over
[11] =>
[12] => the
[13] =>
[14] => lazy
[15] =>
[16] => dog
[17] => .
)
Performance has been an important consideration when designing TextIterator. It does a few optimization tricks internally that allow it to be much faster than using offset operator, substr() or even word boundaries in regular expressions. Hopefully, this has been a useful preview of an important new piece of functionality in PHP 6. Stay tuned for more to come.
Posted at 11:06
|
Permalink
| Comments (11)
11-July-2006
Yahoo! Looking for PHP Talent
Yahoo Site Operations Group needs a top-class PHP developer. Here is the official job description:
If that sounds like you, send me a resume and I'll forward it to the hiring manager.
Posted at 12:58
|
Permalink
| Comments (0)
10-July-2006
Sara joins Yahoo!
This may be known to some of you already, but Sara Golemon, author of runkit, classkit, ssh2, and other PECL packages as well as a regular contributor to PHP core, has started at Yahoo! today. She'll be working in the Search & Marketplace Group and will be a valuable addition to the team. Welcome, Sara!
Posted at 22:08
|
Permalink
| Comments (0)
20-June-2006
Conference Update
I gave the Unicode talk, which is slowly evolving, at the PHPConf in Moscow in May (more on that trip later) and at the New York PHP Conference last week. The slides for both can be found on the talks page. Next week is the ApacheCon Europe in Dublin and then OSCON in Portland last week of July. Stop by and say hello. Unicode is not scary, I promise.
Posted at 8:55
|
Permalink
| Comments (1)
30-April-2006
PHP-GTK Book is Out
Well, I certainly never imagined back when I was starting work on PHP-GTK that one day there would be a 400 page book about it. Pro PHP-GTK by Scott Mattocks is the first English language book on this topic and it is on the bookshelves, real and virtual, right now. I just wanted to say, kudos to Scott and congrats on his newborn as well. He's very productive. :)
Posted at 20:43
|
Permalink
| Comments (0)
29-April-2006
Notes from php|tek 2006
I was in Orlando this past week at the php|tek conference, put on by php|architect. I gave two presentations there: PHP 6 and Unicode and Regex Clinic. The slides for both of them are available on my Talks page. The social highlight of the conference was, perhaps, the dinner outing on Thursday night which culminated in an impromptu speed beer drinking contest. Guess who started it. (hint: name starts with Ras and ends with beer glass slamming on the table)
Posted at 15:31
|
Permalink
| Comments (5)
18-April-2006
Good Old Times
I was browsing the MARC archives the other day and decide to see what my very first posting to any of the PHP lists was. It turned out to be this one on php-general list. And then shortly thereafter I posted on php-dev offering to help with ... wait for it ... PHP on Windows development. And here's my first submitted bug, too. <tear up />. Ah, good old times indeed.. Especially considering Zeev's reply to me. :)
Posted at 13:26
|
Permalink
| Comments (9)
03-April-2006
Notes from PHP Québec 2006
I just got back from Montreal where I gave two talks at the PHP Québec conference: one on PHP 6 and Unicode and another on PHP-GTK 2. Both of my sessions were full and I got very positive comments from the attendees. I think I am getting close to figuring out the right proportions of theory, examples, and demos that should be present in a talk. For PHP-GTK 2, I showed off a couple of apps that I quickly wrote a few days before and that make use of Yahoo! developer APIs. The first one lets you pick two airports and calculates the distance between them as well as showing the local maps and weather info. The second one uses Flickr API to display a continuous grid of latest images from flickr.com. These were about 100-200 lines of code total each, so, of course, Rasmus had to brand them as Pidgets. The conference itself was well organized and attended and had a number of interesting talks. Kudos to Sylvan, Yann, and others for their efforts. The post conference program for each day was full as well. On Thursday night we had a dinner for speakers and organizers at the always excellent À la Decouverte, a small and cozy restaurant with a big taste. I had marinated snails with mushrooms in garlic butter and phylo dough for appetizer, and ostrich medallions in blueberry sauce for main course, and both were delicious. On Friday night we made a visit to the ever popular Les Deux Pierrots which is hard to describe to someone who's never been there before. Two bands alternate on the stage and play anything from popular rock tunes (think Take Me Out) to French camping songs to something resembling a hoedown. The level of energy is amazing, and you can't help being pulled into the manic foot-stomping/hand-clapping atmosphere. Great place to let off steam, basically. And Saturday morning found us at the Sucrerie de la Montagne, a "sugar shack" outside Montreal that lets you take a peek into the process of obtaining and making maple syrup and also manages to feed hundreds of visitors an hour at the rustic wooden tables in its giant restaurant. The rule of thumb is, you have a big (> 1 liter) bottle of syrup on the table and it has to be gone by the end of the meal. So you put maple syrup on and into everything: bread, pea soup, omelette, sausages, meat pie, mashed potatoes, pancakes, and coffee. We almost managed to finish ours. Pics should be coming up soon.
Posted at 19:17
|
Permalink
| Comments (1)
06-January-2006
He saves... but does he commit?
Looking through the email inbox this morning I saw these headers, which provided a low-yield amusement factor.
Good to know that even the deities have to go through formalities. Happy New 2006 to y'all by the way!
Posted at 9:32
|
Permalink
| Comments (2)
29-November-2005
This Is Not "American Idol"
The latest round of discussions on the php-internals mailing list highlights something that has been a pet peeve of mine for a long time. As PHP became more and more popular, the number of people subscribed to the mailing list has grown as well, and lately this has resulted in a slew of interminable threads of will-crushing length. It seems that every time I open my mail reader, the counter next to "php-internals" blinks and jumps to over a 100. And roughly half, if not more, of the messages are, a) from people I have never heard about, and b) contain opinions, rants, and "votes" on fairly important issues, as in "I'm +2 on this namespace separator". A whole lot of these folks are under the impression that one can simply subscribe to the list, read discussions while lurking or semi-lurking, and start to vote on things that affect intimate parts of the language. That is... kind of gall-ish, if you ask me. I have lived in the United States for over 13 years, I pay all my taxes, I respect the law (except for occasional speeding), yet I still cannot vote in either federal or state elections. Whether it's fair or not is debatable, but at least there is a vetting process in place that requires immigrants to fully adopt this country as their new home before being able to vote. I appreciate the enthusiasm with which these people partake in the discussions, and I understand that they may have strong opinions on things that PHP does or does not do. However, in order to be taken seriously one has to have a certain amount of respect, experience, "karma" - call it what you will - and that has to be earned. And how do you earn it? Through concrete participation, be it code contributions, documentation write-ups, bug triage, or just some good ideas that you design and promote in a respectful and polite manner. But to show up, issue forth proclamations on topics that you do not even necessarily understand, and assume that you can influence the course of development through sheer arrogance or grandiose rants is a misguided, if not brazen, attempt at "democracy". And if your first email to the list ignores the customs and practices of the group, your subsequent ones are likely to be taken less than seriously. First impressions count, you know. Why not just ignore posts like these, some would say? Because on average, the signal to noise ratio on php-internals is still pretty good, and there are occasional insightful posts from new people that I would like to read. But since they may be buried under an avalanche of superfluous messages, I have to take a deep breath and wade through until I find the worthy ones. And that takes time. Precious, precious time. To sum up: make a difference, contribute something, think before you post, be polite, and try to consider that yours is not the only opinion out there, especially if you are new to the list. Oh, if you are using a mail reader that screws up message threading, I will hunt you down and stuff you full of Perl internals until you look like a camel. I will go fucking ninja on you, and you will not see me coming.
Posted at 21:16
|
Permalink
| Comments (9)
22-November-2005
PHP Developer's Meeting 2005
It's been a while since there was a small, focused meeting for the purposes of working out the evolution of the next version of PHP. The last, and only, time was probably in January 2000 when Rasmus, Zeev, Andi, Stig, Sascha, Thies, Frank, myself, and a few others gathered in Tel Aviv to hash out PHP 4. You can see how young we looked back then. Last week in Paris saw the second iteration of the PDM and this time the focus was on PHP 6. We had a very productive discussion over two days and Derick did a great job taking notes and writing up the report. It has been posted on the internals mailing list, and once 5.1 is out, I think we can concentrate on the implementation of PHP 6, which should be great.
Posted at 22:40
|
Permalink
| Comments (1)
18-November-2005
PHP Quebec 2006 Note
I got the notice today that PHP Quebec 2006 committee has accepted two of my talk proposals: one about PHP 6 Unicode support and another about PHP-GTK 2. So, see you in Montreal in March!
Posted at 14:56
|
Permalink
| Comments (2)
29-September-2005
All Bless PHP
Today's issue of Wall Street Journal has an article by David Bank, "PHP Language Wins Supporters As Tool for Making Web Software: Alternative to Sun's Java Is Adopted by Companies, Developers Like Andreessen". On the whole, it plays up PHP and its success over the years, but contains several things that I could not help but talk about here. I hope WSJ doesn't mind if I quote a few sentences. Back when the Web was young, Marc Andreessen, then the wunderkind co-founder of Netscape Communications Inc., gave his backing to a new software programming language from Sun Microsystems Inc. That blessing launched the Java language as a counterweight to Microsoft Corp.'s technology dominance. A decade later, Mr. Andreessen is endorsing another programming language called PHP as an alternative to Java for creating a new generation of Internet software. I like Marc. He's a bright guy who did a lot for the Web by driving the development of NCSA and Netscape browsers and trying to fight Microsoft. But "blessing" and "endorsement"? I would really hope we're past the point where intelligent developers -- and would you want any other kind -- are swayed by a celebrity endorsement that tells them what programming language they should use. I think PHP's record speaks for itself, and hardly needs any "blessing". My guess is that this is a marketing maneuver designed to capitalize on the recent news of Marc joining Zend's board of directors. "When it comes to the Web and Web applications, Java is not the right language," Mr. Andreessen says. Indubitably so. But he adds: "[..] PHP is to 2005 what Java was to 1995." If that means that all of a sudden there are hundreds of half-assed books written by people suffering from what can only be called delusions of self-grandeur and whose only skill is the ability to copy-and-paste text from the online manual, no, thank you. If that also heralds the day that I see thousands of job postings asking for overpaid and underqualified PHP consultants with "10 years of experience" who don't know their 404 from 403 and whose highest qualification is building a personal guestbook, I can live without that too. Although, maybe it's already happening.. Zend, originally based in Israel, includes two of the leaders of the open-source PHP effort, Andi Gutmans and Zeev Suraski, who took over the project from Rasmus Lerdorf, who released the first version in 1995. That's just plain wrong. Rasmus didn't hand off the project to Zend, but to the open source community that Zend and Andi are part of. Keep your facts straight, WSJ. IBM has assigned 20 engineers to PHP and is particularly focused on improving the technology's security, considered a weak point. These must be phenomenally stealthy engineers, sneaking onto our CVS server and planting in the bug fixes under the cover of the night. Because that's the first that I have heard of 20 IBM engineers working on PHP, and the article makes it sound like they are engaged in it full-time. What are they producing exactly? Maybe I'm senile, but other PHP developers, such as Edin and Ilia, confirmed that there has not been a single official security patch from IBM. The only regular contributor from IBM that I know if is Dan Scott, and he himself acknowledges that he only spends about 10% of his time on PHP-related stuff. If I am incorrect, then I would invite IBM to share with the PHP community all the work that these engineers have been producing. I don't know who David Bank interviewed for this story exactly -- aside from Zend folks, Marc, and Rod Smith -- but next time he should include a couple more relevant people, like, oh, say, Rasmus. It's only fair. Me, I'm going to listen to a song from 1995.
Posted at 9:40
|
Permalink
| Comments (22)
12-August-2005
Unicoding
The project that we have been working on for the past 4 months is finally seeing the light of day: yesterday I merged the Unicode support into the public PHP tree. I was going to say that my part of the hard work is done, but I guess I still have to edu-ma-cate developers about Unicode and other finer things in life. :)
Posted at 9:18
|
Permalink
| Comments (3)
06-August-2005
OSCON 2005
I am back from OSCON 2005, where I presented a talk about the work we're doing on the Unicode support in PHP. The slides are available here. Mine was not the only talk regarding Unicode at the conference: Dan Kogai gave a presenation on Perl 5.8 and Unicode, and in my opinion, PHP 5.5/6 or whatever it ends up being will have a much better integrated runtime support in this area, not to mention an awesome set of i18n functions thanks to ICU. The goal is to make PHP as good as or better than any other Web development language out there when it comes to Unicode support, and so far that pretty much means Java. I am confident that that goal will be achieved. This conference was, by any account, an excellent one: great talks, good networking, seeing Portland for the first time, and of course a chance to catch up with old friends and make new ones.
Posted at 19:59
|
Permalink
| Comments (3)
07-June-2005
age(PHP) = 10 years
PHP is 10 years old. It's a big kid now, and it's been a large part of my professional life ever since December of 1998 when I submitted bug #870 asking for a new language construct and then offered to help make PHP run better on Windows. Many words have been and will be written about this anniversary, but I would simply like to thank Rasmus for his friendship and for creating and nurturing PHP, and also his wife Christine for supporting Rasmus' efforts throughout the years. May the next decade be ever more fun.
Posted at 15:00
|
Permalink
| Comments (1)
17-May-2005
Cancún Conference
Last week I was at the PHP|Tropics conference in Cancún, Mexico presenting two talks, one on regular expressions in PHP and the other on the new version of PHP-GTK. The conference was held at the Moon Palace, a sprawling resort located not far from the city. Some of its highlights are worth mentioning: free drinks, 6 restaurants and snacks around the clock, an enormous swimming pool with swim-up bars, jacuzzi in the room, a variety of tours and activities and much more. My only complaint would be that the place was so big that it took a good 10-15 minutes to walk from the lobby to the to the room and back. The conference itself went very well - kudos to Marco again. The talks were interesting and informative, and it was great to sit by the pool afterwards and discuss everything from PHP to traveling around the world to British comedy series and so on. Since I am always up for extracurricular activities, I wanted to get out of the resort and do something different, specifically zip-lining. So, Derick, Ilia, and I signed up for an adventure tour from AllTourNative to Chikin-Ha, a Maya village about an hour's drive south from the Moon Palace. We were up bright and early that morning, when Ricardo, our tour guide for the day, picked us up at the hotel. He already had a few other people in the van, but they were staying in Cancún. We took off for Chikin-Ha, with Maya native music playing in the background, and Ricardo gave us an introduction to what our tour would involve as well as insights into Maya language, culture, and customs. He explained that in Maya “chi” means “mouth”, “kin” is sun and “ha” is water, so Chikin-Ha means “water that comes from the mouth of the sun”. The drive seemed quick. Once we got there, we jumped on the provided mountain bikes and rode a couple of miles inland to where the village was. The first activity of the day was zip-lining, which I couldn't wait for, although there was just a bit of anxiety about what it would feel like jumping off into the air. We strapped into harnesses and Ricardo explained how to brake properly so that you don't overshoot and end up hitting the bumper on the other end like a sack of potatoes. Naturally, being gentlemen, we let the women go first :-). Then I stepped onto the platform and leaped off. The feeling was great - slicing through the air, feeling the wind in your face, and knowing that you are that much closer to flying. This zip-line was not very steep or long, so when it was over with, I felt charged up and ready for the next one, not a bit of apprehension remaining. After everyone was done with their first line, we walked up a bit to the second one, which was a bit steeper and longer. We had no problems with it and Ricardo, who went last, showed how you can jump off and travel upside down for a bit before flipping yourself upright and braking. Then he led us to a tower from which the final zip-line was strung. It was about 60-70 feet tall and had pretty steep staircase. We had to clip ourselves onto a metal cable just in case we took a wrong step. We climbed in a single file and reached the top platform. Stepping onto it I could see the tree tops stretching to the horizon and the zip-line cable running far away and down to the other platform which seemed very small indeed at this point. The last two lines we were not more than 10-15 feet high and with water below them. This seemed like the real thing. When it was my turn, Ricardo unclipped my safety line, attached the harness to the zip-line and said, “Have fun”. And so I did. Taking a big jump, arms and legs spread, and feeling a great rush all the way to the other end, about 20 seconds in all. I stepped down to free the way for others and knew that this was an experience I would want to repeat. The next activity was snorkeling in the cenotes - water-filled sinkholes. Ricardo said that Maya people consider cenotes somewhat sacred places, and that we would need to have a ceremony where shaman's grandson would ask the spirits to allow us to enter cenotes and protect us while we were there. The ceremony was inside an old cenote which was almost dry. We walked into the darkness, and took a seat on a low bench. It was incredibly quiet, so we just sat with our eyes closed and waited, breathing in the earthy smell that was around us. The shaman's grandson appeared shortly, a cup full of coals in hand. He crushed a bit of what looked like amber or petrified tree sap and put it into the cup, producing billowing white smoke. The ceremony was not long, and it was fascinating to watch him pray in rapid staccato Maya language and ask the superworld and infraworld gods for blessing first, then walk to the four cardinal points and pray to the cenote spirits, and finally go in front of us one by one, saying a short prayer, all while blowing onto the cup with coals and letting the aromatic smoke cover us. Appropriately blessed, we left and descended into another cenote, this one with water. Ricardo gave out snorkeling equipment and off we went. The water was cool and very plesant, and visibility was not bad for an underground cave. It seemed shallow from the surface, but in fact the cenotes may extend 40 to 70 meters deep, so they are suitable for scuba diving as well. In fact, the whole cenotes system of the region extends more than 70 km. We swam for a while, and then dived through a couple of underwater channels. This was a very refreshing activity, especially for the hot day. Afterwards, went to another cenote and swam on the inner tubes, directly under the third zip-line, so we could see other groups flying above us while we ourselves basked in the sun. After swimming we were supposed to eat, but Ricardo said we had some time, so who wanted to do another zip-line jump? Everyone, of course! Harnesses on, we climbed the tower again, and this time tried to jump off and turn upside down. I almost managed to do this properly, but next time it should be no problem. The meal was provided for us in the hut, buffet style, with soup, chicken and beef en mole, rice, and hand-made tortillas. For drinks there was tamarind and jamaica water, which I liked best. Jamaica water is made from petals of the hibiscus flower, by boiling them and adding a bit of sugar so it achieves a nice red color and taste. Finished with the meal, we went to pick up our photos, which were taken just at the end of the third zip-line. Mine didn't turn out as well as I'd hoped, because I was twisting a bit during the jump and ended up with my back to the camera. But no worries, the important thing was the jump itself. This was it for the day, so we piled into the van and headed back to civilization. Ricardo dropped us off at the Moon Palace and we thanked him for being a great tour guide. Throughout the day his good humor, energy, and infectious enthusiasm were unbounded and our adventure was that much better for it. He went above and beyond his duties by getting us another zip-line jump and also promising to email us the photos, even though it's not really allowed. I would highly recommend AllTourNative tours - ours was well organized, informative, exciting, and safe. By all means, take one if you are ever in Cancún and make sure to ask for Ricardo. You will have a great time.
Posted at 5:40
|
Permalink
| Comments (2)
08-May-2005
Slides from the Amsterdam Conference
The slides for both of my talks, PHP and Unicode: A Love at Fifth Sight and Say "Hello" to PHP-GTK 2 are online now.
Posted at 0:35
|
Permalink
| Comments (2)
26-September-2004
Toronto Conference
This past week I have been in Toronto at the php|works conference, presenting a talk on regular expressions in PHP. The slides from the talk can be found in the new Talks section.
Posted at 10:48
|
Permalink
| Comments (0)
|