App::chronos - automatically record your computer activities

Often you want to know how much time you spend on a random computer activity during your work/home day. There are lots of apps that allow you to record the time, unfortunately you have to manualy turn them on and off. It can be really frustraiting when you forget to do so. So I have written an app that does that automatically.

SQL::Composer - mapping SQL from Perl and back

SQL::Composer is yet another SQL mapper. But unlike others it does something very useful. It allows you to not only build an SQL from a Perl structure, but when getting the data from database to map it back to the usable Perl structure.

Go infrastructure for Perl developers

So I have decided to look into the Go language a bit closer. Last time I ended doing just a simple tutorial. This time I decided to rewrite this blog engine (http://github.com/vti/Twist) in Go. The result can be found on GitHub (http://github.com/vti/twigo). There is no really a need to describe the language learning issues in this blog post, but I wanted to share a comfortable infrastructure that I researched while trying to learn Go.

Contracts in mop

While trying out mop I decided to implement contracts, or basically a simple type checking system.

Attribute::Contract now uses Type::Tiny

I became very interested in Type::Tiny as soon as I saw Toby's first post (yes I like modules that do one thing and do not depend on half of the CPAN). And then I thought why not to actually use it. And this is why Attribute::Contract now uses Type::Tiny!

YAPC::Europe 2013 video

A short video about the venue and slides requirements.

Yet another try/catch module

Try::Tiny is nice. But it's just an eval wrapper. Most of the time I have to catch exceptions by specifying their isas. And I want to receive an object in every catch callback, without overriding the global $SIG{__DIE__}. I like Error::Simple, but it's not supported and not recommended. That's why I decided to reimplement it.

YAPC::Europe 2013. Week minus 27. Current progress

Time definitely flies. We're almost the half way towards our journey's destination -- YAPC::Europe 2013 in Kiev. Here is a quick wrap-up of the current progress and the future plans.

Design by contract in Perl

Design by Contract is a programming approach when method calls are checked againts specific requirements by embedded in the language or implemented as a library functions. Usually incoming and outgoing values are checked, sometimes it is possible to check the throwable exceptions. Below are various modules that allow contracts in Perl.

Scraping pages full of JavaScript

When scraping internet websites I use Web::Scraper. It's simple, readable and very handy. I can use XPath and CSS3 selectors or can get raw HTML and parse it with regexps when in despair. But sometimes the pages are full of JavaScript that is required to be run in order to modify the DOM, do some adjustments and so on. Good thing Web::Scraper does not only accepts URLs but the raw content also. So let's use WebKit to render the HTML!