Hacktivity report (Jan-Mar 2013)
Previous reports: 2012 year-end, Apr-Jul 2012, ...
Data::Sah. All through January I mostly worked on Data::Sah. In the second week of February, I completed what I call the first stage: some core set of clauses which I use regularly and a working Perl and JavaScript compiler. I can already compile most of the schemas which I use in my programs. It's been deployed in several productions already, e.g. an API service for a license server and report email processing system. There are obviously many things missing, the usual 10% hard part. But I haven't seen the need for another rewrite so far, which means the current implementation (the second, or third IIRC) is not so hackish after all.
SHARYANTO::SQL::Schema and Postgres. Most of February was spent on coding for $work, related to processing SpamExperts report emails. During this period I became fed up with two of SQLite's main drawbacks: very limited ALTER TABLE functionality and its poor concurrency. I decided to ditch it altogether and migrated to the rich data type world of Postgres. It's a breath of fresh air, even when compared to MySQL, mainly as I can do proper date arithmetics and have true boolean type. SHARYANTO::SQL::Schema got written during this time (while I hope to use something like Sqitch someday, what I needed was something quick and simple, where everything is included in a single script, and no fancy features yet like per-branch/per-feature SQL sets). Postgres' transactional DDL really helps when doing schema upgrades, which can fail in the middle due to typos in SQL commands. Now I can freely and frequently evolve database schema without pain.
CPAN Lists. Right after Data::Sah, the original plan was to continue the design of my form processing framework (which will integrate Sah and its JavaScript validator generating capability). Eventually I got distracted before going very far. This time with CPAN Lists which is inspired by own comment to a Neil Bowers' blog post to create something in the spirit of Amazon's List Mania!: creating personal lists of CPAN modules and letting people commenting on them. I got the API part almost complete (will be described in a separate blog post) but haven't got around to creating the web interface yet. Have I mentioned that I suck at creating web/HTML interfaces? However, I managed to learn some Mojolicious, Bootstrap, and Bitcard API along the way. BTW, I chose Dancer for a very trivial web application last year, but somehow got tipped over to Mojolicious this time.
Text::ANSI::Util. The other thing that distracts me is Text::ANSI::Util which will be required by my upcoming Text::ANSITable (previously Text::PrettyTable) to replace the venerable Text::ASCIITable due to the desire to look prettier on the terminal.
Others. Some other modules that got some love during this period: dux, Perinci::Access::HTTP::Server. Some other new modules that got created during this period: App::ListPrereqs, App::smtpstatus, SyntaxHighlight::Any, Carp::Always::SyntaxHighlightSource, App::cal::id.
Update: Text::ANSITable is now released.
https://blogs.perl.org/users/steven_haryanto/2013/05/introducing-textansitable.html