After we reached the hotel yesterday at 10PM, we met up with Shmuel Fomberg from Israel.pm who was in the lobby. He provided us with a lot of information (we missed the get-together that day), maps and explanations with the locations of various places (hotel, leaning tower, where the Friends and Family meeting the next day is, etc.) and even offered some food. One awesome guy!
We tried to find a place open nearby but in the dark, near a stretch of main road, it all looks like places to get mugged/gang-raped. We decided to stay in where I could practice my lecture one more time before tomorrow. Considering how nervous I was, it was a good idea! After practicing the lecture one last time, I noticed that my battery is almost done so I reached for my power supply and found the socket here is incompatible. Panic ensued.
As I was sitting in Jonathan Worthington's talk about Perl 6 signatures this morning, it struck me how easy it was to read the code he was showing. The intent was always very clear, it was short and to the point, and just made sense.
But then I looked closer, and there were a lot of sigils, *, := and so on, and I could not see myself writing this. Now the fact that I have never actually written any Perl 6 might explain that ;--) I will see what the learning curve is when I start using Perl 6 for good.
Still, it looks to me like the necessary complexity of code is pushed into a compact and for me quite overwhelming syntax. Which is probably as good a place as any to put it.
It's still quite striking though that Perl 6 might turn out to be a language that is easier to read than to write. Some might say that this makes it the exact opposite of Perl 5!
My second morning at YAPC::EU::2010 wasn't very productive. I went to one presentation, and got sick during the coffee break (something wrong with the breakfast, I would say). I went to the bedroom to rest, and got back during the afternoon.
The only talk I've watched was Graphic visualization - there is a life after GD and GD::Graph. Uwe was kind of nervous as it was his first English talk. That was easy to notice, as he even did not remember correctly the slide order. That's the speakers life.
Regarding content, he talked mostly on four technologies: GD and GD::Graph, Chart::Clicker, GraphViz and SVG. While he shown some examples of what can be done with each one of these modules I missed some kind of conclusion. A table associating objectives with the tools available for that task would be enough (as the presented modules are not equivalent).
"Across all Perl projects on Ohloh, 28% of all source code lines are comments. For ClamTk, this figure is only 14%.
This lack of comments puts ClamTk among the lowest one-third of all Perl projects on Ohloh."
Now when I first saw that, the figure was probably 8%. Ohloh has since shamed me into obsessively adding more. I'm somewhat embarrased about the low number of comments - especially after developing this for 6+ years - but the 28% figure stuns me. In a good way, of course. As an amateur, it's probably just my lack of experience and limited exposure to other code bases.
The problem: running several thousand tests in one Test::Class process can swallow up a lot of information. I want to instrument Test::Class to optionally capture that information to assist debugging/management of your test suite. I need to write code which will:
Tell you what classes ran and in which order
How long did each class take to run
How long does each test control method take to run
Overhead on test methods from test control methods
The last one is rather interesting. Consider a test class with a setup method which takes 8 seconds to run. If it has 10 test methods, than that's an extra 80 seconds of overhead you've added. If you can get the setup method to run in 4 seconds, you can save 40 seconds on the test class. Do this with just a few test classes and you're talking about serious performance savings.
What other information would you want in something like this? How should the information be recorded/presented?
I'm slowly (one section per day, on top of my other responsibilities) getting through the questions for the Perl Survey data. My initial step is to convert as much as the quick and dirty code I wrote for German Perl Workshop, into replicable R code, so that we have similar graphics and reports. Once I'm through that I'll start writing some text to explain the graphs, and take some key cross comparisons between different aspects of the results. You can see the results as they are put together on the final_report branch on github.
I love perlbrew! I like to keep the version of Perl that I normally use as up-to-date as possible, but it's nice to keep other versions around for compatibility. Just now, I needed to know when readline got fixed. With perlbrew, it was faster to check directly than it was to look it up!
Here are some indicators that your test suite is broken:
It has any failing tests.
It emits anything other than test information.
It takes too long to run.
People are going to have issues with the second item on that list but they're definitely going to argue with that last one. I don't care. It's time to throw the gauntlet down. Let's look at these three points in detail.
I am at YAPC::EU::2010 and I would like to congratulate the Italian organization. Everything is going smoothly. Just a few itches (like the fact of the chairs not being comfortable to be more than half an hour listening to somebody).
Wouldn't it be nice to have symbolic matrix operations in Perl? Instead of composing matrices of numbers, we could compose matrices of expressions. Consider the following:
use strict;
use warnings;
use Math::MatrixReal;
my $x = 1;
my $m = Math::MatrixReal->new_from_rows([ [$x, 2*$x], [3*$x, 4*$x] ]);
for(; $x < 4; ++$x)
{
print "$m\n";
}
After a while of loose planning, while working on 20 other things at the same time, we've finally left for the airport. We've taken 4 hours in advanced so we don't worry about delays.
We've reached the airport and got to the terminal so quickly that it left us quite a lot of time. One of the people at the border checkup asked me which metal festival am I going to. "A Perl conference" - "what?" - "computer stuff" - "oh..", "surprised?" - "hell yeah!" I suppose a lot of tattoos give that impression. :)
Unfortunately there isn't much to do here. There's internet connection so I was able to talk to $work and make sure everything is okay to find yet another Slowloris attack on a server. Perlbal to the rescue, Tlousky++!
We went to check out gadgets but there wasn't anything interesting or cheap. Thought about getting a 1TB USB disk (these aren't that common here) but it costs twice as much as a specially-ordered one.
After too many failing cpanreports for perl-compiler releases I'll finally unify my failing test results into manable code of todo logic. Automatically.
After reading about opening Perl module via name with vim, I realized it had a couple of (for me) limitations. First, I always operate from my top-level directory in a project, but that post doesn't prepend a lib/. Second, when I'm running a test suite, I see failure which might be from a module in the lib/ directory, but more often than not are in the t/lib/ directory. Since I keep all of my project directories identical, I can use one little bash function to handle this:
Hello. I guess I'm a bit of a new-comer to the Perl community. I've been using Perl 5 for the past year and a half, and have been having a lot of fun with it. I started playing with Perl 6 the other day, and I can tell already that it's going to be even more fun!
finally 0.4.3.2 does install under all sane linux systems and will be packaged to become a .deb package. thanks jozef++.
recently i got 3 new ideas what to put into kephra. elastic tabs i cant implement, like MC hammer said it: can`t touch it. an spelling checker will be implemented for me and wil propably become the first real Kephra plugin and an idea by stefan suicu I will implement ASAP because it seems to me helpfull, especially in oop programming. insert the variable from the last line on curso position.
my talk about the philosophy behind kephra, held here in Pisa, is also almost completed. after i get the listeners feedback it will become another blogpost here.