Monthly Report: December 2017

What I've done this month... My Software Projects GASdotto: management application for ethical purchasing groups many fixes on the repository postegg: endpoint to POST data from web forms some fix on the repository tiret: a simple S3 frontend some fix on the repository…

Keep reading

Mails into the Web

Requirement: "Given this Mailchimp newsletter, embed the latest issue in that Jekyll static website". Mailchimp offers many APIs, but this approach requires too many complications. Instead my solution relies on RSS: given the RSS feed of your newsletter (you can obtain it with the "RSS" link on the top-right corner while visualizing an issue on the Mailchimp website) you can retrieve the full HTML of the latest campaigns and embed it directly. First problem: Mailchimp doesn't have CORS headers. So you have to use a proxy. Second problem: the HTML…

Keep reading

Falling in a Dot

After many hours debugging a Laravel application, I've found the issue. The Request object handles input arrays using a so called "dot notation", to permit you to directly access structured informations in the form of $name = $request->input('products.0.name'); That's really cool. Until you don't give a fuck to arrays direct access, but indeed you need variables containing a dot in the name in your POSTed data. Those will be silently replaced with underscores, and you will spend a whole evening trying to give a sense to…

Keep reading

Monthly Report: November 2017

What I've done this month... My Software Projects GASdotto: management application for ethical purchasing groups many fixes on the repository fixed 16, 22, 23 postegg: endpoint to POST data from web forms initial release on the repository public instance, freely accessible apress: a simple Twitter scheduler fixed 2, 3, 4 laravel-log2rss: Laravel logs published in RSS initial release on the repository Composer package…

Keep reading

Get Informed by Troubles

Today I opened the logs of a Laravel application of mine, publicly available. And found lots of exceptions. Quickly, I realized those were generated by a new user trying to do stuffs no one ever tried (and no one ever noticed as failing). Once the issues were fixed, I decided that the problem had to be resolved: how to stay informed about errors of my applications, avoiding the boring routine of counsulting logs every day? Reading logs is sysadmin's job, I'm a developer, my job is to be lazy... So,…

Keep reading

More Work Surface

I usually work on a laptop with an external monitor, but given the abundance of monitors at home I've looked around for some way to use a RaspberryPI as "wireless video interface" and further extend my display real estate. I've not been able to find any method, but I've found I'm not the only one with the same idea. Many suggest to adopt Synergy to switch seemlessy across the desktops, but... Oops, Synergy no longer works with Wayland. Investigating a little been more, I've found a little gem called x2vnc.…

Keep reading

Multilaravel

I have a Laravel application with a few dependencies, but it is enough to require almost 200MB on disk. I suppose this is the price for convenient dependencies installation and upgrade... This application has to be hosted in multiple instances, but it seems not a viable solution to duplicate everything for all of them. So, I've managed to convince a single instance to act in different ways accordly to the web domain from it is reached. In bootstrap/app.php, just below $app initialization, I've added if (true) { // this is…

Keep reading

Monthly Report: October 2017

What I've done this month... My Software Projects GASdotto: management application for ethical purchasing groups many fixes on the repository Free Software Promotion Linux Day: main Italian event about promotion of Linux and freesoftware coordination of national event coordination of local event in Turin…

Keep reading

Hash to Hash

Everyone had to deal at least once with Varnish, knows this: cookies handling may be your nemesis. But I've just found a useful trick, to publish here as future reference. sub vcl_hash { # Common hashing stuffs set req.http.hash = req.url; if (req.http.host) { set req.http.hash = req.http.hash + "#" + req.http.host; } else { set req.http.hash = req.http.hash + "#" + server.ip; } # Stuffing the hash! if (req.http.Cookie ~ "set_or_not_set_cookie_name") { hash_data("set_or_not_set_cookie_name"); } } This is reccomended…

Keep reading

Monthly Report: September 2017

What I've done this month... My Software Projects GASdotto: management application for ethical purchasing groups many fixes on the repository Pioola: accounting tool for feasts and village festivals public release on the repository…

Keep reading