At times, it is desirable to access any file on your box. Forgot to put it on dropbox? Then what do you do? Enter FileBeagle. It is your own personal cloud and written in Perl and Mojolicious. The install is copying one file onto your box and running the executable. The only other file that is permanent is the database that is created.
There is currently a Lite edition with a Pro version coming soon. The Lite version is free.
Do you get tired of reading a man page, or even perldoc, for cryin' out loud, and having to deal with the
POSIX regex engine instead of something more powerful and Perl-like? I
know I do. Every time I type /^[[:space:]]+something,
instead of /^\s+something, it just makes me sick. Something
ought to be done about this nonsense.
Well, after saying something like this to myself for the umpty-jillionth
time, I decided to look into it.
I did an internship for Moose as part of GNOME's Outreach Program for Women. I was supposed to convert all stringy exceptions in Moose to structured exceptions or exception objects. This is my first major contribution to a FOSS project :).
Code This is my merged pull request (a bit late, but better late than never).
Diff stats
If you're interested, then you can check out diff stats here. Caution : You may get lost in that big stats, so better not to click on that URL ;).
In short :
368 changed files with 23,830 additions and 1,479 deletions.
I've been contemplating to do something like this for a while, but have only gotten around to it today. Here it is: SHARYANTO-Shortcuts-0.01.tar.gz. So far it's only hosted on github: http://github.com/sharyanto/releases-perl-steven (BTW, I also archive my CPAN releases there: http://github.com/sharyanto/releases-perl-cpan). The release is just a distribution that contains shortcut modules like DD (shortcut for Data::Dump), DDC (Data::Dump::Color), etc. The dist is not put on CPAN for obvious reason: the modules will terribly pollute the top-level namespaces.
With the current toolchain we have in Perl today, deploying non-CPAN modules should be easy enough.
My point for this post is that I think there exists a niche market for a platform that hosts non-CPAN releases but reuse the CPAN tools/architecture. Either private/commercial modules (the so-called DarkPAN), personal forks (e.g. I can have my own JSON::XS, there can be multiple modules with the same name from different author like on github), or things like what I published today (modules that do not comply with CPAN naming rules/convention).
When adding a new entry to the new Perl TV site, I copy some of the data from YouTue itself. To make it easier I wrote a small script that fetches the data from YouTube using the WebService::GData module.
Unfortunately, staring from perl 5.18 the module started to emit lots of warnings. The original author did not have interest furher maintaining the module, but he was kind enough to give me co-maintainer bit. A new version (0.06) is on its way to CPAN.
If you are using this module, I'd be happy to get your help in testing and further improving it.
Er, an earlier version of this said the software bug was 20 years old. It's 30! Thanks, Sidhekin
Today, in reading some data, I processed 36,916 potential dates. Two of those 36,916 failed to validate. I wasn't terribly concerned as these dates come from client-supplied data and this data is often, um, surprising. However, when I inspected the raw data, it turns out that those dates were January 1st, 2011 and January 1st, 2007. I had a bug in software I wrote about a month ago, but it turns out that this bug is actually 30 years old.
For anyone who doesn't really understand the software ecosystem, this may sound mystifying, but it makes sense. Because of a decision taken a long time ago to make another company money, my $client lost money in paying me to fix a bug that one company accidentally introduced and another company deliberately introduced. But to explain it I need to talk about a third company that introduced a feature that eventually became a bug, and a few other historical tidbits that nonetheless contributed to the obscure bug I fixed today.
I slid into the world of eBooks when a half-price Nook sale collided with O'Reilly's Day against DRM half-price sale. It was the Perfect Storm that this tight-fisted Luddite needed to take the plunge. I set myself a budget and just as I'd picked out all the books that I allowed myself, O'Reilly decided I'd bought enough to merit a 60% discount, so more books had to be bought. One must stick to the budget!
PubMed is experimenting with ePub formats and they are much easier to read than the customary PDF's, but waiting for everything to be converted (or just trying to find one) would try the patience of even Vladimir.
I have a suggestion for someone with more Impatience than me. (I started this post 5 months ago). Have a look at LaTeXML and then think that with many of the papers submitted in LaTeX and a tool that converts to XML, you're halfway to reading all your latest science down the coffee shop.
I've recommended Disastercast here before, and I know that some of you have since subscribed. However, for those that haven't, episode 13 is worth listening to. It is about safety issues arising from software, in particular looking at the Therac-25, a medical device which which, because of race conditions, killed people.
(Hopefully this post will become outdated soon...)
Google Code can use SVN (among others) for version control, even generating a password for you. Which is all well and good but currently you cannot see where to find that password from the home page:
I had a recent discussion with a Data::Dump::Color user about formatting ints/floats/stringy numbers differently. So here's a short summary of how core module function Scalar::Util's looks_like_number() can be used to detect the different data types:
UAV::Pilot version 0.6 is now on CPAN. Lots of little changes this time. The big thing is an API change, where Control::ARDrone and Driver::ARDrone were instead named ARDrone::Control and ARDrone::Driver, respectively. This keeps everything related to a single type of UAV under one namespace directory, which I think will be nicer going forward as I implement other UAV systems.
I find it sad that all the energy Barbie put in preparing and giving the talk at YAPC, where maybe 50-100 people heard it, and all the work the organizers of YAPC put in recording the video and publishing it, and in the end less than 20 people watch it.
So I decided I go forward with my long-time plan and launched the Perl TV.
The idea is to collect interesting Perl-related videos, make them easy to find (e.g. cross linking based on their content, the CPAN modules they cover, etc.), provide a textual description and notes of the video, and promote them.
My situation: work on PC at the office, on laptop elsewhere. All of data already in git repositories--well almost, photos and videos are currently out, due to their size. I use SSD on both computers, and my partitions are encrypted.
Some of the data are public, like open source Perl projects. Some work-related, where we have our company git repos. And some private, like personal notes, addressbook, agendas/todos, ledger files, etc.
Since I've read that SSDs usually die without any warning, I am quite paranoid and install post-commit hook to backup data after each commit (however, when the lag due to backup is becoming annoying, I disable it momentarily).
For public repos, I've got it covered. There are services like github, bitbucket, or whatever which you can just push your work to.
I have recently returned to working on Arriba, the PSGI-compliant web server with support for the SPDY protocol, modeled on Starman.
I sort of released it (on GitHub only, not on CPAN) back in January, at that time the code was passing the tests in Plack::Test::Suite when running as a regular HTTP/HTTPS server. My next goal, before considering the module ready to be released on CPAN, was to make it pass those tests in SPDY mode. This meant I needed to add support for SPDY to good old LWP::UserAgent, which was used as the HTTP client in Plack tests.
Over the weeks/months that followed, I made a few attemps at tackling this problem, but had a hard time wrapping my head around the architecture of LWP::UserAgent and figuring out a reasonable way to add SPDY into the mix. Having very little time to devote to this project, I didn't get anywhere with it.
A couple days ago I uploaded a Perl-Critic policy to find and complain about things like foreach ( <FOO> ) {...}. The problem (or at least potential problem) with this is that it sucks the entire file into memory before performing the first iteration. Which may be what you wanted, but may not be too.
I plan to leave it at a development release for a couple weeks to allow time for comments and so on. You can find it at its CPAN Search page.
Today is a relatively minor holiday in the US, but I had work off all the same. I found myself experimenting (when I probably should have been working on my YAPC::Brazil talk :-/). Thanks to today’s PerlWeekly (you are a subscriber right??), I found out about an interesting post by Johnny Moreno which creates a tiny json service backend using Perl. Of course it uses CGI.pm to do so, which made me curious what a Mojolcious port would look like.