dpc09: Day 2 - My (personal) highlights
I'm just gonna pick the highlights today. I have written quite some stuff down about every speaker I heard, but the highlights for me personally were the following.
Opening keynote by Andrei Zmievski
This was a very pleasant note, basically outlining the PHP's past, present and future as a language, platform and community. It was very easy to listen to, and had the right amount of jokes in there. So thumbs up there, Andrei :)
Some keywords from the speech: PHP 5.3: closures, namespaces (stop bitching about the backslash), phar, garbage collection and unicode forward compatibility (the first steps towards 6.0). Well, nothing real new in there, since it is of course all available on PHP.net, with the release date set to (I think i heard) 25th of june.
PHP6: Unicode, traits (which are, if I understand it correctly, an implementation for Aspect oriented programming), read-only properties, scalar type hints and return value type hints and case sensitive identifiers. After PHP6, First order function, C# style accessors and modifiers, transparent usage of ArrayObject and ArrayAccess in array_* functions. Very cool stuff, and it definitely proves that the direction PHP is going is an evolutionary step forwards :) I'm very happy to see this kind of development :)
Oh yea, google Adie Close1. It should be a fun read. That's how you're NOT contributing, as you shouldn't be a douchebag. Thanks Andrei :)
Paul Reinheimer - The easy problems are hard
Paul shared some of his valuable experience in building and maintaining high-demand sites. The best tip I had was to keep count of logins per username and per IP, not in a DB, but just on the filesystem. Open a file, append one character, and when the file gets too big, there is something wrong. Simple yet effective against dictionary attacks. Also: keep the display name separate from the username, which drastically decreases the chances a dictionary attack hitting a valid combination (with way more than 50%, actually, Paul ;))
Some more tips, which I won't get into here. Oh yeah, fileinfo is a good tip for checking file uploads (I didn't know that one). Be sure to compress your images with pngcrush and a [jpeg tool I didn't get the name of] (someone fill me in here please :)) to get rid of any PHP injection in your image's meta data.
Michael Wittke - PHP on Embedded Devices
Actually, I didn't mean to attend this talk, but Michael's flight from Germany had been delayed, so this talk was switched with the one before, "Keeping web applications lean and mean", which I actually expected to start :P Nonetheless, this talk was a pleasant surprise. Not so much the PHP thing, but the cross-compilation of libraries for a debian-ARM system is something I was interested in without knowing beforehand :) To sum up: get a linux system running, start a virtual emulation box inside it using Qemu, compile your stuff dynamically inside this virtual box, get the libraries over to your embedded device, and the stuff works, without the need to compile on the device itself which may take many many hours.
Also a nice KISS tip: using a SOAP server and SOAP client on embedded devices drastically simplifies the communication between the two. That is something I wouldn't have come up with myself. I would probably have chosen Python over PHP though :)
Matthew Weier O'Phinney - Contribute!
I expected this to be a talk on contribution to Zend Framework, but it was a bit more general than that. Basically the idea is that you should contribute to open source projects, as that's the only way open source works. Help other people, write docs, write patches, get karma, and be nice. Be very nice :) I think that is something I have proven to be able to on the GoT forums, so I probably will be popping up somewhere in the ZF scene any time soon.
Scott MacVicar - Alternative Databases
Scott unfortunately wasn't very audible, mainly because I was sitting way in the back, the battery of his mike was low. It really hadn't much to do with his scottish accent..... Well, maybe it did a tiny bit ;)
The idea was to let people show some area over the hedge of RDBMS's. He showed a few, which all had their strong points: MemcacheDB (basically BerkelyDB with a memcache front end), Tokyo Cabinet, CouchDB and SimpleDB by Amazon. CouchDB is, I think, the most interesting, and I will be trying some of it out.
I believe, though, that the approach of the talk was a bit..... off. It seemed as though Scott was advocating against RDBMS's, but that probably wasn't the intention. The main point is (imo): don't only use RDBMS's and the file system, because there is a whole lot in between. That's always good to be aware of, since it isn't very practical to store session data in an RDBMS, or do your logging only in flat files, or have versatile row data in "rectangular" tables. Scott, if you might read this, don't use a blog as an example next time, it gives the audience the idea that the relational thing is what you are giving an alternative for, but actually, you are showing different storage types for different goals. Show the other types of usage that might be taking great advantage of the mentioned DB's strong points! I enjoyed the talk though.
So, that was all for today. There's more stuff coming tomorrow :)
-
This doesn't actually come up in google. It basically was a "effing" rant on "effing" PHP all in capitals, and the PHP developer team would get their asses sued over PHP being so "effing" "s". etc ↩︎