The Perl 5 tutorial for freiesMagazin (the first and hardest part) is complete and I'm very happy about it (read it in the next month issue). It was a great teamwork and all who read it so far, like it very much. The result will reside in the wiki of perlcommunity.de (link later when arrived there), so it can be further expanded/improved/updated and can help a lot people more. Because its the most visited Perl forum in German and thanks to tinita++ we have there banners that link to different important pages in the wiki which gets 20 times more visited than the others.
You maybe say OMG no no no please send me to detroit but not another Perl tutorial. So take you lists of tuts you know and scrap all that are not German, all that are not up to date with Perl 5.14, all you have to pay for and all that don't take full advantage of HTML and I wonder if there is anything left.
After a long, long time maintaining the perlfaq, I'm moving on from that part of my work in Perl. That leaves a spot for someone else to step in. The latest stuff I had in my briandfoy/branch was merged with blead earlier this week, but any changes I had queued up on my local machine are going to drop through the cracks. I can send that to-do list to anyone who'd like to take on the job.
As such, I'm also stopping the autoposter to comp.lang.perl.misc. This was driving all of the updates as the people in that newsgroup noticed even the most trivial of errors. Although it sometimes took me awhile, I responded to most of them, and the perlfaq was much better for all of the work that other people did and I merely committed.
My most recent hacktivity includes preparing Org::Export::Pod and Org::Export::Text (both not yet ready) following Org::Export::HTML. I am planning to document source code (currently just for functions) using Org as the master format instead of POD. From Org, I'll be exporting to various target formats, including POD itself, inserted to modules' source code in the build process using a simple Dist::Zilla plugin.
Now why Org? First and foremost, obviously because I use Emacs, and the last few months I've migrated practically all of my notes/todolists/addressbooks to this format. Also, it's visually nicer to look at than POD when it comes to things like headings and lists. Org also supports tables (I understand that there's an extension to POD that supports tables too, but I imagine it will not be as easy to write?). BTW, among other lightweight markup languages, Markdown Extra also supports tables with an equally nice syntax.
I would be very happy if somebody could prepare a talk about Perl 6 influence and give it at YAPC::Europe 2011. The language ideas appeared more than 10 years ago and during that time lots of brilliant things landed in its specification.
I wonder which features, trends and directions initially proposed for Perl 6 appeared in other programming languages. Classical example is a 'say' operator which came from Perl 6 to Perl 5. But what about PHP, Python and Ruby. Or JavaScript 6, for example?
Or something more hidden, like .NET and JVM inspired by Parrot VM :-)
If you feel you can do such talk, please let us know: mail@yapceurope.lv. All the speakers attend the conference free of charge and become famous and recognizable people.
Alternatively, could you also comment with post with random pieces of such influence if you know about it. Thank you!
Unlike C/C++, Ocaml does not allow you to have “forward declarations” of types. In other words, if you have a record type A that has an entry that of type B and type B has an entry of type A, you cannot forward declare B so that it is in scope for record type A. In code:
type A = { foo : B }
type B = Bar of A
To get around this limitation, Ocaml has “mutually recursive types” with the keyword “and”. Now, “and” is overloaded to work with mutually recursive functions as well. So, if you want to do this you can use “and” thusly:
type A = { foo : B }
and
B = Bar of A
There is one thing to notice here: B does not have a “type” keyword in front of it. This isn’t necessary because the idea of “type” crosses the “and” boundary. Sometimes, you get long chains of this which can look slightly odd but isn’t too much of a problem most times.
Smartmatching is complicated. Anyone suggesting otherwise simply hasn't used it much. Something that appears to be as simple as when @array can have 5 rather different meanings depending on the value of $_, the two most important being «each element in @$_ matches the corresponding element in @array» and «$_ matches any of @array». This is madness. I believe there's a lot of value in being able to explicitly differentiate when list(@array) and when any(@array).
Hence Smart::Match. It's a module that does exactly that and more. Not only does it allow you to disambiguate smartmatches, it also allows you to use powerful new matches by using higher order matchers. For example it doesn't just allow you to match against string_length(4), but also string_length(even) or string_length(range(13,42)). This makes smartmatching a lot easier and saner than doing it raw.
Phenona is acquired by Active state . I have not seen anyone mention this in their blog or in any other feeds that I have so mentioning it here in case you have not heard about it . It's built by a 15 year old and IMHO is a very good marketing material for an application built with perl.
Does anyone know of a module that can do Perl refactoring, perhaps a PPI based module? I've heard Padre can do Perl code refactoring, but looked through the distro and didn't see any interesting modules.
The goal here is to hand a module to a function, and have it come back refactored according to a Perl::Critic policy.
Here we have several combinations to define the package and the method name, either compile-time (static as constant string), or dynamic as GV (for the method name) or PADSV (package name).
method_named holds the method name as sv if known at compile time.
If not gv (of the name) and method is used.
The package name is at the top of the stack.
A call stack is added with pushmark.
After some excellent feedback from the Moose list, I thought I could share with you an issue that I know others have been concerned about. What follows are my thoughts on the matter, but I'd very much like to hear advice from others.
Consider the following:
package Foo;
use Moose;
has 'some_value' => (
is => 'ro',
isa => 'Int',
);
When somebody does this:
# value contains the string "No charge"
my $foo = Foo->new({ some_value => $value });
It's taken a little while, but the CPAN Testers Statistics site is now back online. Due to an unfortunate corruption of the cached data file, the file has taken some considerable time to rebuild.
With over 12 million reports to get through, the memory consumption to try and record everything all at once is quite demanding, hence why it's been building a chunk at a time. At some point very soon, I will be revisiting the way the data is collated and stored in memory and how the statistics are calculated and processed to make it all more efficient. I also plan to make it much more easy to process the sections to enable continuation if any part fails in a single run.
One of the fun things about MetaCPAN is that we've split the project into two main parts: an API and a front end. What this means is that if you want to start pushing your code into http://beta.metacpan.org, you don't need to run a local copy of the API. You can just git clone the front end, install your dependencies and be on your way.
Install cpanminus if you don't already have it. Then:
Some of you may have heard of Bitcoin before. This would be true if you have been following the lulsec hack of the NHS. Lulsec accept bitcoin as a donation method. There have also been some concern from the US Senate about bitcoin.
So, please read the wikipedia article above for a quick intro to bitcoin before you read any further.
I am interested in bitcoin because I like the anonymous and p2p nature of the service. While I would describe myself as a “socialist”, I still believe that there are some things that are not the government’s business and sometimes I just want to be left alone to do what I want without interference in the form of government. Another incentive for me is the cryptographic nerd in me loves the idea that you can have a completely anonymous currency using computers to do it.
The Astro-satpass distribution contains classes to compute satellite position and visibility. If you are using it, please read on.
Recently Jaap Meijers wrote to me about some inconsistencies between the satellite visibility predictions provided by the Astro-satpass package and the predictions of the Heavens Above web site (http://www.heavens-above.com/). This led to the correction of a number of bugs relating to the reporting (or not) of marginal passes by the Astro::Coord::ECI::TLE pass() method. These changes are currently available as release 0.039_04 of the Astro-satpass package.
I've tried now up to 4 different Emacs on my german MacBook Air, and finally it looks like I can manage. Aquamacs is the best so far.
xemacs
my first choice as I use it everywhere else. looks awful, intolerable
emacs-23.3 from ports +x11
in various flavors. Tried for 3 months. Together with TextMate, Padre,
and even Eclipse. Eclipse was best and fastest, but I want an emacs
as everywhere else.
emacs-23.3 +cocoa patch
Tried for one month.
Emacs.App from ports
Native cocoa patch, but german keys do not work. At all.
/Applications/MacPorts/Emacs.app/Contents/MacOS/Emacs
Aquamacs
This is it! Like my XEmacs on Windows and emacs on unices.
See also http://www.emacswiki.org/emacs/AquamacsFAQ#toc5
And with the following key settings I can finally type my programs.