sky's Journal sky's use Perl Journal en-us use Perl; is Copyright 1998-2006, Chris Nandor. Stories, comments, journals, and other submissions posted on use Perl; are Copyright their respective owners. 2012-01-25T02:03:47+00:00 pudge Technology hourly 1 1970-01-01T00:00+00:00 sky's Journal Quantum Lesion now gone Earlier this week I got discharged from hospital after the removal of a orange sized tumour and part of my rib in my lower left back. It is a very very rare form of lesion that has now been confirmed as benign, thankfully. I am writing about this over <a href="">at</a> sky 2007-02-17T05:17:11+00:00 journal Devel::GC::Helper - Finds leaked variables. <p><a href="">Devel::GC::Helper</a> has been released..</p><p>This module walks the entire perl space, from main:: and notes what it has found, then it walks all SVs that are active and tells you which ones are potential leaks.</p><p>Basically, a easy mark and sweep, try using it with Devel::Cycle and enjoy!</p><p>x-posted from <a href="">my livejournal</a></p> sky 2006-08-07T22:49:21+00:00 journal Euro OSCON day -1 I take a short flight from London Heathrow to Amsterdam, sharing the cab to the airport with clkao. Arriving into luggage chaos at Amsterdam and then a fairly expensive cab ride to the NH City Center where my key is waiting. <p> I don't actually know where anyone else, and I don't have a cellphone to contact people, so I sync up quickly with my friends who live outside of Amsterdam, and then head over to the conference hotel, another NH hotel. </p><p> At the registration desk I meet Gina again, we chat a bit about Amsterdam and Europe vs the US. Then I head up to the speaker lounge and get registered and say hi to Vee. </p><p> In the lobby I find a certain Larry Wall circling around and decide together with Gina to go out for dinner, we end up in Oriental City where I've had dim sum earlier. Just coming from Singapore and Kuala Lumpur, the food wasn't as exciting but nevertheless it was good, and the company was excellent. </p><p> And oddity I did mention is that they use portable two way radios, which I find hilarious. We gave those up 15 years ago and actually use cellphones. Even the military mostly uses cellphones and text messaging these days! </p><p> Went to bed early. </p><p> Cheers<br> Artur </p><p> <i>Posted via: <a href=""></a> </i></p> sky 2005-10-18T22:03:19+00:00 journal A month of slacking It is now a month since I left <a href="">Fotango</a> and I have been quite busy packing up my life. Half of it is in storage with <a href="">Bishops Move</a> which did a fantastic job organising this last minute move, the other was sent back to Sweden or given away. Last Saturday we had a fantastic party at my near empty place and we moved out on Sunday, a night sleeping in a sofa bed and then in the early morning I was off to Krakow to spend time with brother. <p> Krakow was absolutely fantastic and I sure want to go back, it was full of clubs, students and cheap food, the old town and the old jewish quarters are really amazing. </p><p> After 5 days of slacking in Krakow I flew back to London to spend some time at <a href=""> </a></p><p> <i>Posted via: <a href=""></a> </i></p> sky 2005-10-03T08:42:57+00:00 journal Washing machines <p>Why don't we have RFID tags in all clothes that tell the washing machine HOW to wash the clothes instead of having to magically try different settings all the time!?</p><p>Or at least force all washing clothes UI designers to have to use their own designs.</p> sky 2005-08-06T22:30:29+00:00 journal Alive in London Thankfully sky 2005-07-07T15:02:32+00:00 journal Holiday and Conference Tour Off on holiday So today I am going on a 3 week holiday. Of course, when I say that I actually mean a holiday period of 3 weeks interrupted by a conference tour in between. <p> So on the 19th of July, I will fly to Ottawa via Chicago from Stockholm for the Ottawa Linux Symposium. I am staying the conference hotel together with Mr Duncan. </p><p> On the 25th of July After the conference ends we will fly down to Portland via Chicago and arrive on the evening of that sunday. </p><p> 5 days of OSCON! </p><p> Fly home on the 29th of July to Stockholm for another 8 days of holiday before I start working again back in London. </p><p> If anyone wants to meet up in Ottawa, please drop me an email! </p> sky 2004-07-16T19:43:04+00:00 journal Net::LibNIDS on CPAN <p>The uploaded file</p><p> &nbsp; &nbsp; &nbsp; &nbsp; Net-LibNIDS-0.01.tar.gz</p><p>has entered CPAN as</p><p> &nbsp; &nbsp; file: $CPAN/authors/id/A/AB/ABERGMAN/Net-LibNIDS-0.01.tar.gz<br> &nbsp; &nbsp; size: 19949 bytes<br> &nbsp; &nbsp; &nbsp; md5: 69ebf6657a84f3d2277846bc795ee557</p><p>No action is required on your part<br>Request entered by: ABERGMAN (Arthur Bergman)<br>Request entered on: Thu, 01 Jul 2004 16:27:06 GMT<br>Request completed: Thu, 01 Jul 2004 16:29:11 GMT</p><p>Thanks,<br>--<br>paused, v460</p><p>--</p><p>Enjoy</p> sky 2004-07-01T18:45:25+00:00 journal Net::LibNIDS No one can say I don't listen to comments! I renamed to module to Net::LibNIDS as per comments on this forum. Up to date compiling and test passing example at <a href="">the fotango opensource subversion repository:</a> <p> Now please, how the hell do I write portable tests for a network sniffer! (And no, you can't portable sniff on loopback interfaces)</p><p> <i>sky</i></p> sky 2004-06-23T22:38:25+00:00 journal Module name Simple question tough answer, I embed libnids in XS, what do I call it? Lib::nids? sky 2004-06-16T14:20:09+00:00 journal Producing things After a very turbulent time during the last months, things are becoming more hectic for every single day! In April I got offered/got told/accepted a new position within Fotango as Infrastructure Manager, leaving my role as Senior Developer behind me. From an opensource point of view this affects our commitment to perl and ponie slightly, however since we had recently hired internal maverick and perl 5 port herder Nicholas Clark that got solved by Nicholas getting the company time previously allocated to me to do Ponie. For me it is a return to managing things and has turned out very interesting. This has actually led me to looking into opensource projects again, and as a first step I embedded <a href="">libnids</a> in perl using XS, the first steps are at <a href="">Fotangos subversion server</a> and I hope to release this weekend to CPAN complete with documentation but no tests! On that note I would really much like ideas how to write portable tests for a network sniffer<nobr> <wbr></nobr>:-). sky 2004-06-16T14:16:39+00:00 journal ENOOSCON So none of my OSCON proposals were accepted, so I guess Fotango will not make the extra funds available.<p>That means I am staying in Europe and might hit YAPC::EU or Italian Perl Workshop, which has the benefit of being in Italy and I have never seen the leaning tower.</p> sky 2004-03-15T15:24:27+00:00 journal Poniedate #62 So we have been tracking down bugs lately, seems that parrot hijacks by design SIGINT making several perl tests fail, other were attributed to statically constructed message sv that didn't clear the memory it was using (sigh). We also uncovered a bug in parrot with too many active registered PMCs, so currently ponie is compiled with the libc gc option.<p> So today we succeeded and we released, it should propagate on CPAN over the next couple of hours.</p> sky 2004-03-12T17:26:52+00:00 journal Poniedate #43 So, today was supposed to be a big release day, and it was for the parrot guys, but it isn't for me! After working hard on tracking down memory corruption problems over the weekend, I still fail at my objective. <p> Status is pretty good, the current ponie will use hashes and arrays and lvalues hidden in PMCs, and it will pass over 80% of miniperl tests. However there seems to be some random memory corruption happening with arrays when they are being resized after something has happened to them. AvARRAY ends up pointing directly into an parrot managed arena. </p><p> The annoying thing is that most test pass, but a random selection of things fail, and they fail int he pad code because of the array issue, but no array tests fail, meaning there is most likely a lack of tests for how array resizing works. </p><p> One good thing is I sent a ponie related patch to p5p to clear up some nasty macros. </p><p> Arthur</p> sky 2004-02-29T23:50:14+00:00 journal Poniedate #33 Things are starting to move again, I am now focusing hard on making my Array as PMC experiments working for real. After a hectic last month that included various non perl activities including a trip to Minneapolis, moving things form Sweden, settling in a new house and trying to hit a meaningless deadline at work, I am now back on ponie development again and should be so more actively over the next month.<p> Essentially I have a solution for using PMCs for arrays simply by hiding the XPVAV behind an interface, and have all the macros return pointers into the structure. Now this allows the perl internals only to function with perl5array pmcs and not general pmcs, but for the the time being there is not much to do about it. Most parts of the perl internals assume total access to the internals of an array, this includes pad and stack handling code, the correct solution is for them to use the official API and not hack things directly, the reason they are not doing so is of course 'speed' reasons (or in some cases, because they do really really evil things). So for the time being, you will only be able to use perl5array pmcs in there, further ahead we should be able to, at least for most operations, be able to use any Parrot PMC that works as a container. (The question on how much XS code depends on the internals of arrays/hashes need to be looked at too). </p><p> Hopefully, by end of next week, arrays should be working fully again with tie calls going through a PMC switch and using a perl5tie pmc instead. </p><p> <i>sky</i></p> sky 2004-02-20T13:32:48+00:00 journal In the twin cities So I arrived on Friday afternoon after a spending a long time flying, due to insane regulations I had to be up at 6AM in the morning so I could be at the airport for for 7 so I could sit around for 3 hours to until the flight left at 10.15. Thankfully I have a <a href="">Priority Pass</a> so I could relax in a lounge. I wisely choose to fly American Airlines since they have air marshals and therefore they fly, they also have plenty of space in economy and more importantly, power in economy (if you ask for it, Delta also has this). I was picked up by Mandi from Codeweavers and after a detour by the hotel we ended up at the Codeweaver office. Lots of geeks here but I am kind of alone with my laptop. <p> After a few more people joined in we went off to a mexican resturant which was nice, ended up in bed at midnight after being up close to 24 hours. </p><p> Then on saturday we got picked up by Jeremey White and taken to the hotel, it was a lot of small speeches, discussion and interesting approaches on how to fix things, and when the mythical 1.0 release will happen. The big thing is that Office really runs except clippy. </p><p> Right now there is demos and talk about winebuild, which is ofcourse what I think is most interesting, and then after this it will be a demo of ReactOS by the core ReactOS team. But first pizza. </p><p> <i>sky</i></p> sky 2004-02-01T16:22:51+00:00 journal Minneapolis/St Paul visit to wine conf So, this year the conference season starts of early for me, with little advance warning and a strange new conference too. <p> At <a href="">work</a> I have recently been dabbing a bit into wine, you know, the ultra cool opensource implementation of the Win32 API. So I suggested to the company that instead of going to all boring (in the sense I heard most of the talks by now) perl conferences again, I switch one and hit <a href="">Wine Conf</a>, after an hours thinking I got the ok and now I am off to fly to Minneapolis on Friday the 29th of January, see wine hackers for the weekend and then fly back early morning on Monday the 2nd of February! </p><p> Maybe some perl people live in the area? Maybe some time on sunday to meet up? </p><p> <i>sky</i></p> sky 2004-01-20T23:16:15+00:00 journal Poniedate #30 Not much happened over christmas, I celebrated it in Sweden with proper amount of snow and christmasy feeling. Arriving back to the Fotango mothership to hack on ponie full time led me into a rude chock. <p> I had a working hack of LVALUE types, barely, that kind of did interesting things. Most importantly it did compile miniperl. However life is never easy, a certain excellent french perl hacker, yes Rafael you, had changed LVALUE types since I last looked at them to be used in tie magic. So when you are fetching a tied value today, you actually get a LVALUE type with a undocumented 't' type, but this LVALUE type still uses tie magic instead of lvalue magic. </p><p> Implementing a emulation layer for tie magic seems fairly hopeless to me since tie magic is the most advanced type of magic and also since I am going totally rip it out when I redo hashes and arrays. </p><p> Obviously, the solution is simple, just rearrange the schedule a bit and RIP out hashes and arrays and implement them using PMCs instead, and this is exactly what I am going to do. So instead of January release there will be a leap day release (end of February) with lvalues, arrays and hashes being implemented using PMCs. This will be followed by a end of april - middle of may release which will have all SV types converted to PMCs, this release should be tested out in the wild against CPAN modules. Fixes to this release should lead up to a conference season release where the PMC conversion is declared to be done. This will let us focus on the next step, opcode to bytecode conversion. </p><p> <i>sky</i></p> sky 2004-01-07T11:26:55+00:00 journal Poniedate 21 <p>Since nothing goes on in the ponie mailing list, there are no summarises, I have decided (after gnat and acme forced me<nobr> <wbr></nobr>;) to start writing a little ponie blog.</p><p>Over the last 4 months or so that I have been working on ponie (august, september, october, november) not much seems to have happen, quickly a first snapshot was released with an integrated perl/parrot build system, and a couple of emails to the parrot internal mailing list. However, several things have actually happened.</p><p>Ponie has pushed parrots embedding and extending API to a point where you can actually do things with parrot without including all of the parrot header files. It has also gotten build system that seems to be reliable to changes in parrot, there hasn't been a need to change it in quite a while.</p><p>The current plan is to implement perls LVALUEs using a PMC, since perls LVALUEs don't actually store any date, just pass on to whatever is behind the lvalue, (using magic today) this should be a somewhat limited thing to do that only touches specific ares of the core. So still being able to compile miniperl and run minitest without LVALUES is very very handy.</p><p>The current cvs version will in fact create a Perl5_LV PMC when you create a lvalue in perl (little treasure hunt, can anyone list all the ways to get a LVALUE reference type in perl), it will then die a horrible death because it attempts to use a SvPVX and fails with a FIXME error message. The use of macros as lvalues in C, (SvPVX(foo) = bar), was a bit difficult to find a way to emulate using functions. However, thanks to Nicholas Clark and Abhijit who told me that I can do #define SvPVX *(&amp;Perl_svpvx((sv))) to make a lvalue function call. This will make it possible to emulate things properly in XSUBs. (All of the core will get their usage of lvalue macros rewritten however).</p><p>sky</p> sky 2003-12-11T11:48:02+00:00 journal Ponie Snapshot Despite various problems with subversion, here is the first snapshot of Ponie.<p> <a href=""></a> </p><p> <i> Sky</i></p> sky 2003-08-21T14:46:40+00:00 journal Sub(standard)versioning system. Hey, I have this brilliant idea, I want to write a version control system...... a networked version control system!<p> Now, obviously a networked version control system is going to be CPU and memory bound, and it doesn't do much string manipulation so I am going to write it in C! And then I am going to base it on APR which is way less portable than for example Perl, because I don't want it to run on any other platforms than standard unix and win32!</p><p> Then I base it on a 666 layered architectured design without doing enough scalability testing to make sure it actually works, then I start hyping it incredibly! </p><p> PROFIT! </p><p> Sad news, subversion has <a href="">delayed the Ponie project at least a week</a> and most likely lost me as a user.</p><p> <i>sky</i></p> sky 2003-07-31T14:22:51+00:00 journal Copenhagen Perl Workshop So, I just held my threads tutorial, it went reasonably well except the fact I only had 1.5 hour of material instead of 2.5 hours, but I filled out another 30 minutes.<br> Mostly because the high level of the people here, they asked way less questions. Now <a href="">Obra</a> is speaking, if you want to check it out look at the <a href="">live perl porn webcam</a>. sky 2003-04-25T11:39:37+00:00 journal flock != O_EXCL ? Reading the journal of <a href="">brain d foy</a> I noticed his <a href="">filecounter entry</a> where talks about using O_EXCL instead of flock. However I was under the impression O_EXCL is related to O_CREAT when the file exists, and should be used when you use rename() to get atomic operation at the filesystem level. In fact quoted fom perldoc -f open is the following.<blockquote><div><p> In many systems the "O_EXCL" flag is available for opening files in exclusive mode. This is not locking: exclusiveness means here that if the file already exists, sysopen() fails. The "O_EXCL" wins "O_TRUNC".</p></div> </blockquote><p> So what is correct?</p><p> <i>sky</i></p> sky 2003-01-21T07:37:41+00:00 journal Interesting quote I just noticed a quote here on use.perl from Larry, <i>"What about WRITING it first and rationalizing it afterwords?<nobr> <wbr></nobr>:-)"</i>, which I must say is an excellent point that some people should read and understand. (p5p members be extra attentive) sky 2002-08-05T09:19:11+00:00 journal I am back from outerspace <p>My journal has been rather dead for quite some time. This has mostly been corresponding work workload and depression.</p><p>Now that 5.8 is out, threading is done, my depression is finally lifting I am getting time to do something fun!</p><p>That fun seems to be taking over some of Simon internal tools to be able to do something I have wanted to do for quite some time</p><p> - strict type checking in perl</p><p>People have said it is impossible, can't be done and so on, but guess what, people are stupid and wrong!</p><p><b>NOTHING IS IMPOSSIBLE</b></p><p><code><br>use types;<br>my int $foo;<br>sub foo { return 5.5 };<br>$foo = foo();<br></code><br>What does that give you, it gives you a compile time warning that you are trying to assign the return value of main::foo() which is a float to an int.</p><p>Stay tuned, I will continue talking about and around here.</p> sky 2002-07-28T22:20:02+00:00 journal Threads Perldate #12240<p> I think I nailed the big threading bug here. You see I was using the main interpreter to store shared svs, now this is pretty silly since the main interpreter is well, used to executing the main thread! So we would get random segfaults. So I fixed up perl so you could do perl_alloc perl_construct and then use it for SV/AV/HVs, however this kind of broke because perl_parse was init PL_strtab and some other stuff, so I moved that stuff to perl_contruct and construct a new plain empty interpreter to keep my shared svs in, and now it works!</p><p> You might think this sounds easy, and it is, but it has been avoiding me for a month now, it struck me while U was drying home made pasta.</p><p> So know I have to add threads::shared to the mix and be happy. </p><p> Arthur</p> sky 2001-09-26T19:56:22+00:00 journal POE::Component::Server::HTTP Perldate #11973<p> Whee, I just silenced the last warning when building perl with threads and 64bit platforms on my main platform. Life is good.</p><p> This weekend was productive, I am nearly finished with the base POE::Componenet::HTTP::Server. It is a simple module for dealing with http requests. It is mildly modeled around some ideas taken from apache. It supports. </p><ul> <li>TransHandler</li> <li>Per directory stackable Pre, Content and Post handlers</li> <li>Streaming output with watermark and timebased callback</li> <li>Asynchronous callback and restart of callback dispatching.</li> <li>Pretty decent speed.</li> <li>Uses URI, HTTP::Response/HTTP::Request and other standard modules.</li> </ul><p> <i> <b>A</b>r<b>t</b>h<b>u</b>r</i></p> sky 2001-09-10T13:25:42+00:00 journal Threading troubles Perldate #11854<p> I am having random troubles with threading on random platforms. It works well on single CPU machines. It fails badly on multiple CPU machines. Now this is usually the case with multithreaded programs. Now you have to identify the assumptions in your code that might break things. This is relativly easy when you have written code yourself, but next to impossible if you haven't. And debuggin threaded applications is not trivial, since if you slow it down with debugging information, you usually end up with something running correctly. Remeber, god is involved in how your threads are scheduled<nobr> <wbr></nobr>:)</p><p> What is left to do now is. </p><ol> <li>Sharedsv is broken</li> <li>perlio is not threadsafe</li> <li>I believe there is a bug in the cloning of anonymous uncloned subroutines</li> </ol><p> So now I have to fix that. Lets move on! </p><p> <i>sky</i></p> sky 2001-09-04T08:03:03+00:00 journal Leaving readio silence. Perldate #11836 <p> I am now leaving radio silence after a month. I had a post YAPC burnout combined with increased work on p5p.</p><p> Our dear pumpking went on vacation with his lovely wife and they visited us in Stockholm sunday a week ago. Meeting Elaine and Jarkko was a blast! I look forward to having them live closeby in Helsinki<nobr> <wbr></nobr>:)</p><p> Today is my 1 year anniversay since engagment, 1 year and 2 months to marriage, wheee I am happy<nobr> <wbr></nobr>:)</p><p> Back to work for know.</p><p> <i>sky</i></p> sky 2001-09-03T09:15:52+00:00 journal Interview Read the <a href="">interview</a> Simon did with me at sky 2001-08-06T21:08:28+00:00 journal