The "sky" command-line application and other Recent hacktivity
If you have a good web hosting, you may have run into a pattern, where you are uploading files to it for other people to download and need to find the URL where they were uploaded to. Thing is - recalling the exact Rsync (= a file uploader) command and then going to the web browser to access the URL is time-consuming, and repetitive. sky, written in Perl using Moo and available on CPAN, aims to fix all that.
Here is a sample invocation from the web-site:
shlomif@telaviv1:~$ sky up /home/music/Music/mp3s/Thierry\ de\ Massia/Elements\ essentiels/01\ -\ Le\ vent.ogg X11 forwarding request failed on channel 0 sending incremental file list 01 - Le vent.ogg 5271287 100% 147.24kB/s 0:00:34 (xfer#1, to-check=0/1) sent 5272011 bytes received 31 bytes 87141.19 bytes/sec total size is 5271287 speedup is 1.00 Got URL: http://www.shlomifish.org/Files/files/music/mp3-ogg/01%20-%20Le%20vent.ogg shlomif@telaviv1:~$
As you can see, we just specified the file, and it divined the rsync command and gave us the resultant URL. Convenient.
sky requires a configuration file in ~/.config/Perl/App-Sky/app_sky_conf.yml
such as this one:
--- default_site: homepage sites: homepage: base_upload_cmd: - 'rsync' - '-a' - '-v' - '--progress' - '--inplace' dest_upload_prefix: 'hostgator:public_html/' dest_upload_url_prefix: 'http://www.shlomifish.org/' sections: code: basename_re: '\.(?:pl|pm|c|py)\z' target_dir: 'Files/files/code/' music: basename_re: '\.(?:mp3|ogg|wav|aac|m4a)\z' target_dir: 'Files/files/music/mp3-ogg/' video: basename_re: '\.(?:webm|flv|avi|mpeg|mpg|mp4|ogv)\z' target_dir: 'Files/files/video/'
And it uses the basename_re
to figure out where to upload it
later. The next features I would like to see added are an ability to specify
the target directory or alternatively override the target section, and naturally
- better documentation. But I'm happy with what I have so far.
CPAN Cleanups
I have been going over many of my
CPAN distributions
and doing various cleanups such as removing trailing whitespace (with tests
based on
Test-TrailingSpace),
or converting the Changes
file to be compliant with
CPAN-Changes. It was
kinda fun, though time consuming.
New Version of Freecell Solver
There's a new stable version of Freecell Solver, 3.18.0 released with some improvements including a port to JavaScript.
Black Hole Solitaire Solver
I have done a lot of work on Black Hole Solitaire Solver, and it can now also solve All-in-a-Row-Solitaire, and has some other improvements.
Binary Puzzle Solver
The Binary Puzzle Solver (written in Ruby) is now at version 0.0.3, with some bug fixes, several new moves and a convenient command line application.
I don't know if you've seen it, but there's a site that shows you which of your distributions pass the CPAN changes spec.
I went through the process of getting mine up to 100% a few months ago. Occasional mass updates like that seem to be a useful way to ensure old modules get a bit of love.
My current quest is to remove all usage of smartmatch from my distributions. I've published match::smart and match::simple to CPAN because I actually rather like the smartmatch operator, but want a version of it that I know will be stable across newer versions of Perl.
Toby: blogs.perl.org ate my previous comment, so I'm writing it again. Regarding that site, I cannot fully use it because I inherited some "Changes" from other projects, which use a different format, but I'll try.
You are right that doing such mass updates is a useful way to ensure you update your code. I've done similar things for my home site's sources too.
And I don't use the smart match operator. ☺