A. Sinan Unur will give a talk at YAPC::NA 2012 described as:
Personal response systems (PRS) are small, dedicated pieces of hardware with a bunch of buttons on them. They transmit key presses to a dedicated receiver.
PRS are used in large classrooms to track and measure student attendance and participation, and to record responses to questions interspersed in a lecture. The software that comes with these systems is usually closed source, not-extensible, and generally lame.
Twilio provides a service that will contact a web application at a designated URL in response to text messages. Cell phones with messaging are almost ubiquitous on college campuses these days. Using mobile phones students already have along with open source software would alleviate a lot of the headaches teachers go through when implementing proprietary solutions.
I am putting together such a system using the Perl web application framework Dancer. The system will include a web interface for the lecturer to manage questions, visualize responses etc, and I hope it will demonstrate the superiority of such a system to a combination of clunky proprietary hardware and software.
I was thinking about writing a blog post on TDD, but then I discovered that chromatic had beaten me to it. Damn that chromatic for saying everything I wanted to say before I had a chance to say it! But, seriously: go read that if you haven’t already. Anything I might add to it would be mostly redundant. Although I do have a post on the other blog where I discuss TDD in the context of techno-dogma and our fear of it. You might find it interesting.
Also, big thanks to Gabor for including last week’s blog post in the Perl Weekly this past week. If you haven’t yet signed up for PW, you should do so now! It’s invaluable.
Gabor Szabo will be giving a talk at YAPC::NA 2012 described as:
Code refactoring is “disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior”. It is needed to ensure your code remains readable while growing in size and scope.
It is needed if you have some old code base that needs improvement and after every period of intense development when you “did not have the time to properly design your code”.
There are several patterns in refactoring, some of them you might already practice without knowing the name.
The most obvious is when you use a variable $x and suddenly you realize it could have a more descriptive name.
If you change all the occurances of $x to this better name, without changing anything else in the code, that’s already refactoring.
We will see several patterns for refactoring Perl code. We see examples doing them manually and we’ll try to automate them as well.
London Perl Mongers organises technical meetings every two months. The technical meetings are a chance to find out what has been going on in the Perl community, what techniques people are using and how Perl integrates with other software.
The next technical meeting will be on the 26th January 2012 from 7pm to 9pm (you may arrive earlier, please sign in at the reception). You have to sign up to attend, see below.
It will be hosted by NET-A-PORTER.COM and held at their offices in Westfield London Shopping Centre. Many thanks to Kristian Flint, NET-A-PORTER.COM and everyone involved for allowing us to use this wonderful venue.
Talks
Gianni Ceccarelli - "Dispatch tables" inside regexes and nasty tricks in the name of speed
Paul Makepeace - Ruby cuteness applied to testing & webserving
Zefram - Customising ops for semantic fun and performance profit
Tomas Doran - Using ZeroMQ and Elasticsearch for log aggregation
Today I just want to thank you to all CPAN Testers. I do not know if there are such initiatives for other programming languages, but you are awesome. So many architectures, so many operating systems, so many Perl versions.
I hope to help someday. I just need to find some time for it.
Contrary to popular belief you can install almost all CPAN packages under 5.6.2.
First Step:
Set the urllist in your ./cpan/CPAN/MyConfig.pm to http://cp5.6.2an.barnyard.co.uk/
and rm ./cpan/Metadata and the 3 outdated
sources/authors/01mailrc.txt.gz sources/modules/02packages.details.txt.gz sources/modules/03modlist.data.gz
Then start installing.
There are a couple of authors who agressively used to boycott 5.6 in their dependencies (schwern, dagolden, kenwilliams, rsignes), but it is quite easy to fix this. So after a couple of refused installations do this:
cd .cpan/build
grep 'use ExtUtils::MakeMaker' */Makefile.PL
sed -i 's/use ExtUtils::MakeMaker 6.3[0-9];/use ExtUtils::MakeMaker;/' \
*/Makefile.PL
Module::Build can also be installed (0.34), DBI (1.604), Moose (0.40), DateTime (0.66) and many more.
Mark A. Stratman will give a talk at YAPC::NA 2012 described as:
This talk will help get you in the mindset necessary to write effective documentation.
We will briefly touch on POD (Plain Old Documentation) syntax, but due to its elegant simplicity we can quickly move on to examine the bigger picture, and explore the decisions we face when writing documentation.
Some key points will include:
- Conventions and expectations
- APIs, Tutorials, Manuals, and Cookbooks… and how and when to use them.
- Writing POD to take full advantage of formatters (e.g. Pod::LaTeX, Pod::HTML)
Marpa::XS
is a general context-free parser.
What does that mean?
For a grammar writer, it means that he doesn't
need to worry that the next rule he adds to the grammar
is the one that makes it hit the invisible wall that
most other parser generators set up.
If you can write it in BNF, Marpa will parse it.
Which makes
Marpa::XS
good at incremental development.
As you develop your Marpa grammar,
you can track the tradeoffs you are making
between features and efficiency.
Chances are,
if your grammar is unambiguous or lightly ambiguous,
there are no tradeoffs --
you're getting everything you want in linear time.
Marpa is linear for every class of grammar currently in
practical use.
Marpa is also linear with many ambiguous grammars
and, in the worst case,
Marpa's time complexity
is what is accepted as optimal in practice.
Whatever the time complexity that you're seeing with Marpa,
it's probably as good or better than you're going to get
from another parser generator.
Some time ago I've bought a windows desktop with ASUS EPU6 because I wanted my desktop to be extra quiet. It is quiet indeed, but it's done by a special GUI utility, where one should compromise first between noise and CPU speed. That utility runs on startup, remembers its last setting, and hides itself, so theoretically there's nothing wrong with it. Except that often the setting are not remembered/recovered, and the desktop begins to makes noise until I run and setup that utility manually.
Here's the culprit, ASUS EPU-6 utility. By the looks of it I guessed that there'll be no commandline access to the motherboard setup, and indeed googling for API didn't help, and I'm not going to write to ASUS about it. Instead, I hacked a little script using Win32::GuiTest that simulates mouse clicks to the selected buttons.
Normally, I wouldn't even bother to publish such small piece of code, but if someone is (or will be) like me, royally annoyed by this gui dumbness crafted by ASUS, hopefully it helps.
Gerda Shank will give a talk at YAPC::NA 2012 described as:
Using FormHandler forms from basic to complex. Organizing your form library. Different rendering options; rendering themes; rendering for Twitter Boostrap and similar frameworks. Automatic database integration; handling your own database updates. Customizing form behavior. Testing forms.
Hi all
i installed the strawberry Perl but when i am installing Cpan module it gives the error
Fetching with LWP: http://cpan.strawberryperl.com/authors/01mailrc.txt.gz LWP failed with code[500] message[Can't connect to cpan.strawberryperl.com:80 (t imeout)] Warning: no success downloading 'C:\Strawberry\cpan\sources\authors\01mailrc.txt .gz.tmp1460'. Giving up on it. Fetching with LWP: http://www.cpan.org/authors/01mailrc.txt.gz LWP failed with code[500] message[Can't connect to www.cpan.org:80 (timeout)] Warning: no success downloading 'C:\Strawberry\cpan\sources\authors\01mailrc.txt .gz.tmp1460'. Giving up on it. Warning: no success downloading 'C:\Strawberry\cpan\sources\authors\01mailrc.txt .gz.tmp1460'. Giving up on it.
So I've been doing this and that with ZeroMQ.pm, the Perl binding to http://zero.mq, and a little while ago there was a request from the zmq community to align all the language binding names as "*zmq".
Well, since libzmq 3.1.x has many API incompatibilities, I thought it's a good timing for a rename. So there: topic/libzmq3 branch is now libzmq 3.1.x compatible, and the module namespace is now ZMQ instead of ZeroMQ.
I must say I haven't tested this code much, so if you're interested, please take it for a test, and file issues and/or send me pullreqs on github!
Today on StackOverflow, an old thread popped up that prompted me to answer. That answer became a slightly longer compendium of recent developments in Perl and Perl-for-web.
I will copy the text here, but I am asking you to vote it up so that it will show for future viewers. So that I will not be getting undue points, I have made it community wiki (also means you can amend if you want).
This is an old question, but I thought I should update the readers. I am happy to report that in my opinion Perl is more viable for web development than ever! Along with old friends Catalyst and (recently revamped) Mason, there are some great new entries Mojolicious (or visit mojolicio.us) and Dancer. I’m sure there are others too.
Perhaps the biggest improvement is PSGI/Plack (or visit http://plackperl.org/).
very often, when I see a logo drawn by somebody else, I highly appreciate his or her work. Many logos are simple but very easy to remember and recognize. Graphics is not my business. Maybe I just made more than 1000 graphical mistakes. However, my father-in-law when he was some 80 years old always used to say 'I am young and still can learn'. Here is my first graphical try (click to enlarge):
Improved version:
I hope it is not too bad. Otherwise I will have to wait until I reach a reasonable age :-)
When I entered our rooms in Paris after a day on the boulevards, I found C. Auguste Dupin at his desk contemplating a scrap of paper. "A problem?" I asked.
"A death. And a rather gruesome one, n'est-ce pas?" he replied, handing me the paper. On it I saw:
$ perl -e '%h = map { "-$_" => 1 } qw{ foo bar };'
Not enough arguments for map at -e line 1, near "} qw{ foo bar }"
syntax error at -e line 1, near "} qw{ foo bar }"
Execution of -e aborted due to compilation errors.
Well, a map takes either a block or an expression followed by a comma, and either must be followed by a list. The block was there, and so was the list. Clearly a neophite had been playing with bleadperl, and paid the price. With a rueful shake of my head, I silently passed the paper back to the detective.
"No, this was a production release of Perl, mon ami."
Some time ago I complained that some modules that had a version ended doing it. The problem? I use a lot the 'r' command in the CPAN client to check for outdated modules. Now, I get a lot of failures that are not really failures: