Recent Hacktivity Log
This is another "recent hacktivity log" of some of the open source work I've been up to lately.
New Command-Line App: App-Du-Analyze
App-Du-Analyze
(with its command-line script of "analyze-du") is now available on CPAN. What
it does is allow you to analyse the output of the UNIX
"du" command,
get results based on a prefix and a depth, and sort them. It is my preference
for a disk usage analyser, with the benefit of being able to run several
queries on the same data, by keeping the same du.txt
file - a
feature which I found is often lacking in GUI disk usage analysers.
Here's an example of using it:
$ export ANALYZE_DU_INPUT_FN="$(pwd)/t/data/fc-solve-git-du-output.txt" $ analyze-du -p "fc-solve" -d 1 16 fc-solve/tests 120 fc-solve/docs 172 fc-solve/scripts 232 fc-solve/arch_doc 276 fc-solve/rejects 392 fc-solve/benchmarks 2920 fc-solve/site 4192 fc-solve/source 44208 fc-solve/presets
You can find a report about using an earlier incarnation of the same program to find the hotspots in a Windows XP disk.
New Versions of Maniac Downloader
I uploaded new versions of Maniac Downloader, which is a CPAN module that implements a download accelerator. What they do is convert the file open to sysopen (per Steven Haryanto's tip (thanks Steven!), and attempt to refresh stale connections after a timeout, which is a problem that bit me several times.
Working on my CPANTS Kwalitee Score
I worked on my CPANTS (= a CPAN Testing Service) Kwalitee score. My CPANTS page currently says I have an Average Kwalitee of 134.88, a CPANTS Game Kwalitee of 99.79 and a Rank of 68 in the league of "5 or more".
I was looking for something to do and decided to revamp my CPAN distributions' Kwalitee as much as I could. This involved quite a lot of actions:
-
Converting distributions from "Makefile.PL" to "Build.PL" or to Dist-Zilla.
-
Adding various test scripts for POD coverage, POD validity, CPAN changes validity, and trailing whitespace (the latter are not required by CPANTS but they are something I like to have for good measure).
-
Resurrecting or tracing the version control history of various modules, either using App-cpangitify, using the old repositories over at bitbucket.org, or the even older ones on my Subversion repository on
svn.berlios.de
. -
Adding "use strict;" and "use warnings;".
-
Having a $VERSION in all the modules (".pm" files).
Anyway, it was a good excuse to do a lot of clean ups, and doing all this work
made me appreciate the utility of Dist-Zilla even more, but it kinda sucks
that sometimes existing dist.ini
checkouts break after an upgrade
(like this
App-CPAN2pkg
pull request indicates).
Anyway, CPANTS still complains about some stuff in my modules, but a lot of them are false positives.
Khronos Group Kickoff Meetup
I went to the kickoff meetup of the Tel Aviv chapter of the Khronos Group. In case you do not know, the Khronos group is an industry consortium for maintaining some standards for hardware-assisted computing like OpenGL and OpenCL (whose specifications are open, but do not always have open source implementations). I got some free food and drinks there, and it was easy to travel to, and I caught a ride back home. The talks - one about OpenVX and the other about OpenCL 2.0 were enjoyable, but I think I would have liked more code and focus on "hands-on" development.
The Khronos Group's local chapters aim to reach out to the community of developers who use their APIs.
Anyway, I met there a few people from some companies like Intel and AMD. I talked with the AMD representative and he was a bit shocked that I was using the open source drivers for Linux on my ATI Mobility HD laptop, saying that the proprietary drivers were more performant and featureful, and that the open source drivers were primarily provided for servers. I remember trying the proprietary drivers, but recall having had some problems with them, and I also hesitate to use proprietary software, especially as kernel drivers.
On my way back, someone gave me a ride, and I talked with him about OpenCL and he gave me some ideas for a possible methods to still accelerate Freecell Solver using it. I'm not sure if they are practical, but they were still good food for thought.
Anyway, I'd like to attend more of their meetups.
perl-begin.org Update and Revamp
I dedicated some time to go over the contents of the Perl Beginners' Site (perl-begin.org) and update it to reflect the new knowledge and best practices. Now the site is in much better shape than it was before. I still want to write an item for it in its news page.
Regarding Makefile.PL vs Build.PL, I have been going the other direction, moving back to Makefile.PL, ever since it's announced[1] that Module::Build is being deprecated. Of course, the Makefile.PL is generated by Dist::Zilla, and I'm converting as I release. There are a bunch of my dists still using Build.PL because I haven't done a new release for them yet.
[1] http://www.dagolden.com/index.php/2140/paying-respect-to-modulebuild/
Hi Steven,
thanks for the comment, but from my reading of the blog post (and some of the comments there) it seems that Module::Build is only going to be deprecated and removed from the core, and will still be maintained on CPAN. It will be available for use by CPAN maintainers using the "configure_requires" mechanism. So I believe using it is still OK.