A freelance software engineer with experience in webapplications, databases and bioinformatics.
A contributor to Parrot and the person behind Pipp.
A physicist who worked with third sound in Helium-III and CCD X-ray detectors.
barney on irc.perl.org
github: http://github.com/bschmalhofer [github.com]
XING: https://www.xing.com/profile/Bernhard_Schmalhofer [xing.com]
In the last weeks I have been neglecting Plumhead, that is PHP on Parrot. Instead I have been concentrating on learning about Common Lisp and Scheme. Currently I'm working my way through a nice Scheme tutorial, Teach Yourself Scheme in Fixnum Days http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html. I try to make the tutorial examples work in 'languages/scheme', a Scheme on Parrot implementation from Jeff Goff.
I also got me a copy of Lisp in small pieces. But I found that it's better to know a little bit of Scheme, before starting to delve into that.
On Friday a colleague @work asked me about an error in a webapplication. There was a Perl syntax error in Sys::Hostname. As I saw no reason that anybody should mess with with Sys::Hostname, I checked the time Hostname.pm was last changed. Confusingly the last change was in 2004, apparently this was the time the server was set up. A diff with another Perl 5.8.0 installation showed a single bit change. The first space, 0x20, of Hostname.pm line 104 has turned into into a '(', 0x28. The only explanation I can imagine is that a bit has flipped in file cache.
I have been thinking on how to proceed with Plumhead, that is PHP on Parrot. The problem is that I have neither the ability nor the inclining to write a PHP grammar from scratch. So a template is needed. This brings up the question of licensing.
Johnlim's blog http://phplens.com/phpeverywhere/?q=node/view/223 got me jumpstarted on which PHP implementations are out there. I have put my finding into the Parrot Wiki, http://rakudo.org/parrot/index.cgi?plumhead. The projects that look most interesting to me are phc, PHP4Mono and Roadsend. The PHP4Mono and the Roadsend grammars seem to be written from scratch. Both projects are GPL licensed. The phc grammar is derived from the PHP 5.2 grammar.
PHP 5.2 is licensed under the PHP license, while parts are under the Zend license. Both licenses are BSD-like, which is quite acceptable to me.
So the plan of the day is to derive the Plumhead grammars from the PHP 5.2 grammar. I'm not sure whether that means that I need to put the whole of Plumhead under BSD license, or whether I can stick with Artistic+GPL.
Tonight I was opening a sealed envolope in dim light. When opening the envelope I noticed blueish flashes of light where the adhesive was pulling apart. Subconciously I probably was looking out for that, as I already had noticed the phemenomen some years ago.
Googling told me that this effect in called Triboluminescence http://en.wikipedia.org/wiki/Triboluminescence, which means 'light from rubbing'. Apparently this is one of the messier phemenomens. At least three different mechanisms were suggested. Breaking of polymers, squashing of crystals and surface excitations. During my study of physics I never came accross it. The closest thing was the piezoelectric effect, which has a lot of technical applications.
If I don't forget about it, I'll get me some sugar cubes and crush them in the dark.
PS: Is there a something like a TinyMCE for use.perl ? Typing all that markup is tiring.
Lately I have expanded the scope of PlumHeaded Parakeet. The current plan is to have a side-by-side comparison of differend parsing and transformation techniques. These techniques are:
The transformation target is in all three PAST-pm, an abstract syntax tree that can be trasformed into Parrot bytecode.
After starting on Plumhead, aka PlumHeaded Parakeet, I stumbled on base64 encoded strings embedded in the XML emitted by phc http://phpcompiler.org/.
So an incomplete implementation is now at http://svn.perl.org/viewcvs/parrot/trunk/runtime/parrot/library/MIME/Base64.pir
The tests I stole from the Perl5 module MIME::Base64. Thanks to Will Coleda for compilers/json, which helps in setting up the test cases.
Mark Overmeer passed on one of the take home messages from YAPC::Europe in Birmingham. In a lightening talk about XML::Compile, http://search.cpan.org/~markov/XML-Compile/, he said something like: Never mind the XML, it's just syntax. The day before, Allison Randall had talked about the Parrot compiler tools and mentioned how XSLT had influenced the design of TGE. So I wondered whether Never mind the XSLT, it's just syntax. applies as well.
The XSLT project I came up with, is to take the XML output of phc, http://phpcompiler.org/ and transform it to something Parrot can understand. phc parses PHP, so this should become an implementation of PHP on Parrot.
As a projectname, http://svn.perl.org/viewcvs/parrot/trunk/languages/plumhead/, I chose 'Plumhead', which is short for Plum-headed Parakeet, http://en.wikipedia.org/wiki/Plum-headed_parakeet. The description on Wikipedia is neat too: Plum-headed Parakeet is a gregarious and noisy species with range of raucous calls.
Last night the Munich Perl Mongers celebrated the second installment of the bimonthly meeting. Harald Jörg, the MPM fearless leader, suggested a 'Man Fat, a chinese restaurant in Schwabing as the stomping ground. The food was tasty and the wheatbeer was most welcome after the bike ride from $work at the other end of town.
Besides 7 regulars, two new faces showed up: another Jörg, of Perl golf fame, and Susanne Ruppel. Susanne got the rocks rolling by suggesting to bid for the German Perl Workshop 2007. As the enthusiasm is there, it was decided to go for it! In 2002, when we hosted the YAPC::EU, only Norbert Grüner really knew what we were getting into. This time we have no excuses.
In a radical breach of tradition, the Munich Perl Mongers decided to have regular bimonthly meetings. In order to limit the culture shock, the location will remain dynamic and will be chosen in feverish indecision.
So yesterday evening was the first regular meeting. Five Mongers showed, including a new face, Gertraud. Harald Jörg has a writeup in German, http://munich.pm.org/2006-03-15.html. Topics ranged from using 'ed' on appliances to the job prospects of assembler programmers for BS2000.
The MPM schedule is the third wednesday of uneven months. When in doubt consult the perlgolf entries in http://munich.pm.org/perlgolf.html.
On the Parrot side, I hope to teach ANTLR 3 more about bc. And coming saturday I plan to attend the 'Linux Info Tag' in Augsburg, enjoying Ingo Blechschmidt's talk 'Perl6 genau jetzt'.