original post can be found on my blog.
Recently I started a new project at $work in which I'm using a lot of cool projects (DBIx::Class, KiokuDB, Search::GIN, POE and Dancer to name a few) and it involved a lot of layers so I wanted to do this one just right.
I finally started using KiokuDB and it went relatively easy, though Search::GIN is still lacking (and 0.4 still hasn't been released to CPAN, so I'm relying on the code on Github). It's amazing how easily I can write tests with KiokuDB and plug my stuff in and out. Sometimes, I have a hard time realizing it's that simple.
I finally started using DBIx::Class correctly. Up until now, I just used it to hook up to SQLite/MySQL database tables I've previously created. Now I actually use deploy(). I've also created a full schema detail, which is something I hardly ever do. When I just started using DBIx::Class, I had a hard time going over the docs. I asked for help more than once. However, this time the documentation was a breeze, fun to read, easy to understand and I only spent a few minutes doing everything I needed. Either the docs are much better, or I'm smarter. Either way, WIN!
Last two days, however, I spent on a bug in POE::Component::Generic. Apparently, when wrapping Net::OpenSSH, some methods lead to an infinite hang. Net::OpenSSH does a lot of stream magic with stdin/stdout/stderr, and might be causing this, but I'm not sure. It could also be a reference leak. Using the async mode directly with POE::Kernel works, but gives a "connection closed" message. I've opened ticket #54744.
Yesterday I've had Nicholas Perez and Rocco Caputo help me with debugging this. I'd like extend my gratitude, this isn't the first (or even second) occasion they've helped me with POE-related problems and they put time and effort into explaining things or helping with stuff, which I really appreciate. Thanks guys, you rock.