Dancing with WebSockets
Dancer + WebSocket + AnyEvent + Twiggy
This in *not* a talk about doing a hello world in Dancer, as there are plenty of it. This is a real-life example of using Dancer to address a problem in an elegant and powerful way
At $job, we have cpan mirrors. We want them to stay a bit behind the real CPAN for stability, but we have a tool to update modules from the real CPAN to our mirrors. Cool.
I wanted to have a web interface to trigger it, and monitor the injection. This problem is not a typical one (blog, wiki, CRUD, etc). Here we have a long running operation that shall happen only one at a time, that generates logs to be displayed, with states that need keeping. In this regard, it's interesting to see how Dancer is versatile enough to address these situations with ease.
This talk details how I did that, the technology I used, and the full source code (which is quite short). I used Dancer + WebSocket + AnyEvent + Twiggy + some other stuff.
This talk doesn't require any particular knowledge beyond basic Perl, and very basic web server understanding.
Attended by: Martin Becker (martin), Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯 (daxim), Serge Hoffmann (atcom), Tobias Kremer (soulchild), Norbert Csongrádi (Bert), Yanick Champoux (Yanick), Eric Johnson (kablamo), Erik Colson (ecocode), Alberto Simões (ambs), Gabor Szabo (szabgab), Gunnar Koppel (wk), Snorri Briem, Dominic Humphries (djh), Sawyer X, Thomas Klausner (domm), Steven Manschot (sman), Carlos Juan Diaz (cjuan), Nicolas Rochelemagne (atoomic), Abe Timmerman (abeltje), Søren Lund (slu), Ben Tisdall (bentis), Farhad Fouladi, Marcel Grünauer (Marcel), Michele Beltrame (arthas), Wolfgang Pecho, Oskari Ojala (Okko), Henk van Oers (hvoers), Paul van Eldijk (pavel), Michael Jemmeson (michael), Dmitry Karasik (McFist), Anders Melchiorsen, Francisco Lourenço (fml), Manfred Stock, Lukáš Rampa, Damien Krotkine (dams), Alex Timoshenko, Andreas Vögele, Roman Baumer (rba), Tudor Crisan, Caio Romão, Tomasz Czepiel (tjmc), Gerhard Raffius, Dave Sherohman (dsheroh), Jean, Tomas Doran (t0m), Bogdan Lucaciu (zamolxes), Asbjørn Thegler (ath), Vincent Bachelier (geistteufel), Lars Thegler (tagg), Arjen Laarhoven, Darko Obradovic, Alex Monney, Stefan O'Rear (sorear), Peter Makholm (brother), Stéphane Payrard (cognominal), Luís Miguel Braga (microft), Leo Lapworth (Ranguard), André Santos (andrefs), Nicolas Mendoza (nicomen), Hans-Jürgen Schloz, Francoise Dehinbo (franky), Paolo Sinigaglia (psini), Nuno Carvalho (smash), Sebastian Stellingwerff (webmind), Alexander Hartmaier (abraxxa), Jesper Dalberg, Laurent Boivin (Elbeho), Jean Forget, Steffen Winkler (STEFFENW), Steffen Schwigon (renormalist),