I’m pleased to announce Firebase, a client wrapper around Firebase.com. This is a joint effort with Kiran Kumar.
Firebase is a real-time message queue and data store. It’s ideal for building real-time applications or adding some real-time functionality to your existing applications.
It’s available on CPAN now, so fire up cpanm and check it out.
If not, in a nutshell, p5-mop is an attempt to implement a subset of
Moose into the core of Perl. Moose provides a
Meta Object Protocol (MOP) to Perl. So does p5-mop, however p5-mop is
implemented in a way that it can be properly included in the Perl core.
Keep in mind that p5-mop goal is to implement a subset of Moose. As
Stevan Little says:
We are not putting "Moose into the core" because Moose is too opinionated,
instead we want to put a minimal and less opinionated MOP in the core that is
capable of hosting something like Moose
Helios 2.61 has been released. This is a bugfix release; if you are using Helios and experiencing problems due to one of the (previously) outstanding bugs in the Helios RT, you should upgrade to this version.
The format statement was required in the grammar for completeness. The 'format' command is not supported at the emitter side - it compiles, but it doesn't run yet.
Some other features are still marked as TODO and are simple to implement:
- dot-decimal strings (without the 'v'),
- "'" meaning "::",
- using 'CORE::' in odd places - 'CORE::if' in place of 'if' and 'CORE::and' in place of 'and'.
With these in place, the grammar will be "100% complete" - the tests will eventually tell if we got there or not.
You can master Perl array and hash, and complex data structures, such as array of arrays, array of hashes, hash of arrays, hash of hashes. You master to loop the complex data structures.
If you can manipulate complex data structure, you can do many things in programming. Let's master array and hash.
As you may know, Perl 5.14 (and up) will allow you to use references for container functions (by which they mean functions such as push or keys that operate directly on arrays or hashes). I’d never thought much about this feature, except to think that it was, in general, a nice way to save three keystrokes on constructs such as (to steal an example from perldelta):
keys %{$hoh->{genres}{artists}}
Now, saving three keystrokes doesn’t mean much if it makes your code harder to read. But, in this case
keys $hoh->{genres}{artists}
is actually
easier
to read, so I call that a win-win.
I’ve released SimpleDB::Client 1.0600 to CPAN. SimpleDB::Client is used to connect to Amazon SimpleDB. The only new thing in this release is a command line app called “simpledb” contributed by Andrew Solomon.
A few weeks ago, to the encouragement of Jeffrey Thalhammer,
I contacted the Chief editor of The ChangeLog and offered to write Perl-related articles. He agreed, and since then I managed to post 3 articles. They were about GitPrep, Questhub, and Sqitch.
For now my main focus is to show applications written in Perl that can be used by anyone, even if they are not programmers. Tools that solve problems even non-Perl programmers can have.
Another quick update. We're in the middle of communicating to our (possible) sponsors. Lots of paperwork to do :)
As I already wrote on Hannover.pm gathering v21 (German) we're planing to announce the approximate ticket price within the next weeks. The final ticket price will be available in January 2014 at the latest.
This week I spent some time to fix the remaining p2 parser problems. I set my first goal to parse 50% of perl5 syntax by summer 2013.
I want to show some real code and benchmarks at the upcoming YAPC::Asia in Tokyo.
After the YAPC::EU in Kiev I first spent some time fixing B::C for 5.16, 5.18 and blead (PADLIST, COW and bytecode compiler regressions).
In the meantime my partner in crime goccy in Tokyo made progress with his parser, compiler and the new llvm backend.
His parser is hand-written and I'm still fighting with greg, but my code is still much smaller and more elegant.
Thanks to some pointers by MidLifeXis and Ether it turns out I didn’t need to bump the requirements of Ouch to 5.12 to use overload and parent. Thanks! So this release just goes back to letting you use 5.8 (but you really should upgrade!)
Last night, I gave a presentation for the Madison Perl Mongers group on UAV::Pilot. The video is now up:
This is also the announcement for the WumpusUAV Indiegogo project, which aims to create a new, cheap, hackable UAV platform. More information is on WumpusUAV.com.
In the previous post, we talked about some of the optimizations
that perl performs when conducting string and array operations. This time, we'll be diving into
how perl implements hashes. But first, a brief clarification…
We have released a new version of Brainturk.com . We have changed the look of the application and now have 35 games and most of the games have different levels.
Let's post information about your production and your work to blog. It is important to inform your production and work even if it is not complete. Other people can know your idea, your technique, and your concern.
Even if it is good production, if no one know it, no one use. To spread good production from person to person, we need good communication. blog is good place to inform your production, your module, your work, your application.
Blog is public, rapid, understandable communication compare with face book, twitter, IRC, mailing list.
I think Perl culture is close to IRC and mailing list, compared with Ruby, Python, PHP. I think Perl need more web, more public information.
Continuing my series on underappreciated Perl modules, I introduce Tree::Trie. A Like Hashes, a Trie is a type of dictionary lookup. Unlike Hashes, Tries naturally support sorted return of keys and prefix matching, all while still being fast, even with a million entries.
Maxim Yemelyanov pointed me to this post comparing programming languages based on the number of new GitHub repositories in the first 8 months of 2012 and 2013.
(excluding forks!)
Interestingly the numbers dropped significantly for every language (except JavaScript).
Perl dropped a lot more (in percentage) than other languages (from 48,620 to 15,412).
Some Perl repositories might be miscategorized by GitHub which might add to the low number, but then either it got worse in the last year, or regardless of that Perl has dropped a lot.
Still, there is something strange.
According to the
stats on CPANTESTERS
there were 1,524 new distributins uploaded to CPAN in the first 8 months of 2013.
That's only 10% of the number of GitHub repositories written in Perl.
What are all the other Perl-based projects?
The buzz around XML has passed and we are left with a lot of Perl modules to process XML in different ways. I was surprised to still find a gap for another XML processing module.
Common schema-less approaches to XML processing in Perl seem to use XML-LibXML, to get a full XML DOM or a stream of parsing events, or XML::Simple (better used as XML::LibXML::Simple. XML::Simple transforms between XML and Perl data structures but it was designed for "data-oriented" XML where element order does not matter a lot. With XML::Struct I created something like XML::Simple for "document-oriented" XML.