Monday, November 29, 2010
OSDC trip
Although there were a couple of good Perl talks too; Schwern's Perl5i and Damian Conway's talk on Quantum Mechanics + General Relativity + Perl. Reading several of Richard Feynman's books in the last year certainly helped to keep on the same page as Damian as he galloped along with some complex ideas. The talk "git for age 4 and up" was great, certainly cleared up my misconceptions of labels in git =)
73, Kim
Friday, September 10, 2010
junk code
So, whats this for? There was a challenge a while back on the Brainwagon blog, using /dev/urandom to generate a list of 'random' characters to fit a pattern, ten blocks of five characters, each block separated by spaces.
This is used for testing cyphers and other fun stuff =) I spent some time when I was back in London working on some cypher and compression code. So I can vouch for the need for tools to generate large random sets - one time pads - that you can play back over and over to make sure that you reproduce that bug, with different versions of your code. Correctness was the issue at hand. Later came the performance issues.
So, Mark posted a "Unix/sh challenge". My brain needed a break and who can resist a bit lunch time shell coding? Well I tried and I got it pretty close. Anyway I decided to try a Perl version to see if I could make it easier to read, then make it faster.
#!/usr/bin/perl
my $limit = 10_000;
my @cypher;
while (<>) {
my @chars = split(undef, $_);
for my $char (@chars) {
if ($char =~ m/[A-Z]/ ) {
push @cypher, $char;
if ($limit <= scalar(@cypher)) {
my $offest = 0;
while (@cypher) {
for (1..10) {
print " ";
for (1..5) {
print pop @cypher;
}
}
print "\n";
}
exit;
}
}
}
}
72, Kim
Monday, May 03, 2010
looking for an interactive perl shell...
So tinkering with it to do interactive DBI and DBD::Oracle stuff. sqlplus is fail on a stick without readline support =( I wish that Oracle would move catch up to at least the mid 1990's and add at least basic readline functionality. I wonder if you have to pay extra for that?
I'd like to try Zoidberg, but the current version fails to build. Maybe next version. ;)
Perl 5.12.0 has been released
Reposting the new release of Perl 5.12. I can't believe that Perl 5.10.0 was release over two years ago, on December 18th, 2007. Has it really been that long?
Perl 5.12.0 has been released!
Release notes follow.
| From | Jesse Vincent |
| to | perl5-porters@perl.org |
| Date | Mon, 12 Apr 2010 22:28:04 -0400 |
| Subject | Perl 5.12.0 is now available |
'Please would you tell me,' said Alice, a little timidly, for she was not quite sure whether it was good manners for her to speak first, 'why your cat grins like that?'
'It's a Cheshire cat,' said the Duchess, 'and that's why. Pig!'
She said the last word with such sudden violence that Alice quite jumped; but she saw in another moment that it was addressed to the baby, and not to her, so she took courage, and went on again:--
'I didn't know that Cheshire cats always grinned; in fact, I didn't know that cats COULD grin.'
'They all can,' said the Duchess; 'and most of 'em do.'
-- Lewis Carroll, /Alice's Adventures in Wonderland/
On behalf of Perl's development team, It gives me great pleasure to announce the release of Perl 5.12.0.
Perl 5.12.0 represents approximately two years of development since version 5.10.0 and contains over 750,000 lines of changes across over 3,000 files from over 200 authors and committers.
SHA-1 signatures for this release:
f533687077e2da113b48a6c5e578f4a206fbf173 perl-5.12.0.tar.bz2
5341e60d099fdda71bc33b2a36e417fc0926518f perl-5.12.0.tar.gz
You can download this release from your nearest CPAN mirror or from:
This release cycle marks a change to a time-based release process. Beginning with version 5.11.0, we make a new development release of Perl available on the 20th of each month. Each spring, we will release a new stable version of Perl. One month later, we will make a minor update to deal with any issues discovered after the initial ".0" release. Future releases in the stable series will follow quarterly. In contrast to releases of Perl, maintenance releases will contain fixes for issues discovered after the .0 release, but will not include new features or behavior.
Notable changes in Perl 5.12 include:
Perl now conforms much more closely to the Unicode standard.
Additionally, this release includes an upgrade to version
5.2 of the standard.New experimental APIs allow developers to extend Perl with "pluggable" keywords and syntax.
Perl now has a better sense of time and will be able to keep accurate time well past the "Y2038" barrier.
New syntax allows developers to specify package version numbers directly in "package" statements
Perl now warns the user about the use of deprecated features by default.
Perl 5.12.0 features numerous new features, optimizations and bugfixes. You can find a complete list of these changes on the web at:
http://search.cpan.org/~jesse/perl-5.12.0/pod/perl5120delta.pod
As specified in the licenses for Perl (see the files named Artistic or Copying in the Perl distribution), THIS PACKAGE IS PROVIDED WITH ABSOLUTELY NO WARRANTY.
Based on extensive testing over the past 3 months, we believe that Perl 5.12.0 is ready for production deployments. However, you should never blindly trust any software vendor. It is imperative that you test new software before deploying it in production.
While we have worked tirelessly to ensure that Perl 5.12.0 will be a solid platform for your software, it's possible that issues will be found after release day. You can find a current list of known issues with Perl 5.12.0 at http://dev.perl.org/perl5/errata.html
Perl continues to flourish into its third decade thanks to a vibrant community of users and developers. The following people are known to have contributed the improvements that became Perl 5.12.0:
Aaron Crane, Abe Timmerman, Abhijit Menon-Sen, Abigail, Adam Russell, Adriano Ferreira, Ævar Arnfjörð Bjarmason, Alan Grover, Alexandr Ciornii, Alex Davies, Alex Vandiver, Andreas Koenig, Andrei Yelistratov, Andrew Rodland, Andy Armstrong, Andy Dougherty, Jose Auguste-Etienne, Benjamin Smith, Ben Morrow, bharanee rathna, Bo Borgerson, Bo Lindbergh, Brad Gilbert, Bram, Brendan O'Dea, brian d foy, Charles Bailey, Chip Salzenberg, Chris 'BinGOs' Williams, Christoph Lamprecht, Chris Williams,
chromatic, Claes Jakobsson, Craig A. Berry, Dan Dascalescu, Daniel Frederick Crisman, Daniel M. Quinlan, Dan Jacobson, Dan Kogai, Dave Rolsky, David Cantrell, David Dick, David Golden, David Mitchell, David M. Syzdek, David Nicol, David Wheeler, Dennis Kaarsemaker, Dintelmann, Peter, Dominic Dunlop, Dr.Ruud, Duke Leto, Enrico Sorcinelli, Eric Brine, Father Chrysostomos, Florian Ragwitz, Frank Wiegand, Gabor Szabo, Gene Sullivan, Geoffrey T. Dairiki, George Greer, Gerard Goossen, Gisle Aas, Goro Fuji, Graham Barr, Green, Paul, Hans Dieter Pearcey, Harmen, H. Merijn Brand, Hugo van der Sanden, Ian Goodacre, Igor Sutton, Ingo Weinhold, James Bence, James Mastros, Jan Dubois, Jari Aalto, Jarkko Hietaniemi, Jay Hannah, Jerry Hedden, Jesse Vincent, Jim Cromie, Jody Belka, John Malmberg, John Peacock, John P. Linderman, John Wright, Joshben Jore, Jos I. Boumans, Karl Williamson, Kenichi Ishigaki, Ken Williams, Kevin Brintnall, Kevin Ryde, Kurt Starsinic, Leon Brocard, Lubomir Rintel, Luke Ross, Marcel Grünauer, Marcus Holland-Moritz, Mark Jason Dominus, Marko Asplund, Martin Hasch, Mashrab Kuvatov, Matt Kraai, Matt S Trout, Max Maischein, Michael Breen, Michael Cartmell, Michael G Schwern, Michael Witten, Mike Giroux, Milosz Tanski, Moritz Lenz, Nicholas Clark, Nick Cleaton, Niko Tyni, Offer Kaye, Osvaldo Villalon, Paul Fenwick, Paul Gaborit, Paul Green, Paul Johnson, Paul Marquess, Philip Hazel, Philippe Bruhat, Rafael Garcia-Suarez, Rainer Tammer, Rajesh Mandalemula, Reini Urban, Renée Bäcker, Ricardo Signes, Richard Foley, Rich Rauenzahn, Rick Delaney, Risto Kankkunen, Robert May, Roberto C. Sanchez, Robin Barker, Tomoyuki Sadahiro, Salvador Ortiz Garcia, Sam Vilain, Scott Lanning, Sébastien Aperghis-Tramoni, Sérgio Durigan Júnior, Shlomi Fish, Simon Schubert, Sisyphus, Slaven Rezic, Smylers, Steffen Müller, Steffen Ullrich, Stepan Kasal, Steve Hay, Steven Schubiger, Steve Peters, Tels, The Doctor, Tim Bunce, Tim Jenness, Todd Rinaldo, Tom Christiansen, Tom Hukins, Tom Wyant, Tony Cook, Torsten Schoenfeld, Tye McQueen, Vadim Konovalov, Vincent Pit, Hio Yamashina, Yasuhiro Matsumoto, Yitzchak Scott-Thoennes, Yuval Kogman, Yves Orton, Zefram and Zsban Ambrus.
This list is woefully incomplete as it's automatically generated from version control history. In particular, it doesn't include the names of the (very much appreciated) contributors who reported issues in previous versions of Perl that helped make Perl 5.12.0 better. For a more complete list of all of Perl's historical contributors, please see the AUTHORS file in the Perl 5.12.0 distribution.
Best,
Jesse Vincent
Thursday, February 04, 2010
First perl module
While the PAUSE login isn't processed yet, I've put it up on the beginings of my home page. The module is MojoX::Auth::Simple and its a very basic authentication implementation for Mojolicious, with ideas drawn from CGI::Auth. More news as I get there =)
And yes please post any feedback...
Sunday, November 22, 2009
Adelaide launches a Perl Mongers
Once we have had a few meetings under our belt, Adelaide Perl Mongers will get an official mail list, currently hosted locally. Perhaps even a pin on the Map!
All the kudos to Justin Hawkins for setting up the web site and the mail list =)
So please join the mail list over at Adelaide Perl Mongers, so we can get a meeting rolling for some time early December.
72,
Kim - VK5FNET
Tuesday, November 17, 2009
Tuesday, September 22, 2009
use Getopt::Long;
I had been messing with passing command line arguments to my server deployment script and had completely failed to get the --verbose flag to work the way I expected.
So I read the perldoc on it and found that I had been going about this the wrong way altogether.
I had this;
my $VERBOSE = 0;
GetOptions( "config=s" => \$config_file,
"verbose=i" => \$VERBOSE,
"modules" => \$INSTALL_MODULES );
print "DEBUG: message" if $VERBOSE;
Then on the command line I had to specify --verbose 1 or --verbose=1, which really wasn't what I had in mind. So this morning the mist on the man page cleared and it all clicked.
If you use "verbose!" => \$VERBOSE, then you can use --noverbose to unset the flag if you have previously set it in your code above. I'm not sure why I moved to using "verbose=i" => \$VERBOSE, but "verbose" => \$VERBOSE was not working as expected.
Anyhow, I was talking to Andy about putting "!" character after the command line flag name and now --verbose sets the variable $VERBOSE and it behaves as I previously expected.