Just took some time to setup Airflow and convert some old cronjob into a DAG.
This is way overkill for my needs (it was mostly to play a bit with Airflow), but I find it pretty interesting on how the whole tool/paradigm kind of guides you into having a easily debuggable job:
- Since everything is a DAG, it feels a bit off to have just a single task, so you break your work in small tasks.
- But now you need to pass data between tasks, and the simplest way to do that is by having intermediate snapshots.
- And since you need to pick a name for the snapshots, it's quite intuitive to just add a timestamp, so you go for the nicely provided
ds
variable, which is the logical run date of the job (reproducible when you rerun the jobs, this is no "datetime.now()").
So now my old hacky shell script to notify me of free Steam games is now a fully reproducible pipeline with monitoring, logging and data snapshots.
Maybe now I'll find out why the script stopped working a while ago
Today I was playing around with sprite stacks, which is something I wanted to do for a while.
It's so cool how easy it is to get something that looks "kind of 3D". Just make a quick model in MagicaVoxel, export to a sprite sheet and draw the sprites in order with some displacement depending on the camera position.
Even putting shadows on the ground is not that hard. It's kind of the same thing, but with a displacement based on height (instead of camera position).
Not sure if I'll do anything else with it, but it was fun.
After 6 months working on it, I finally released Minart 0.5.0-RC1, now with sound support.
This new version also drops #Scala 2.11 support, which was a pain to maintain.
I've been testing it with my previous #LudumDare entries and it seems to work pretty well. Once I've ported everything and am sure there are no obvious bugs I'll release the final version (and maybe write a blog post about it).
In the meantime, and unrelated to audio, this new version also comes with a bunch of performance improvements, so I can finally release Twotm8-native, an example GUI application in Scala Native. Check it out!
Proposals to drop Scala 2.11 support (on main branch, at least) from scala-xml and scala-parser-combinators: https://github.com/scala/scala-xml/issues/646, https://github.com/scala/scala-parser-combinators/pull/504
So many cool news in Scala recently:
Scala 3.2.2 was just released and this time I'm in the contributor list . I wonder if a CSS change to scaladoc is enough for me to add "Compiler Engineer" to my CV .
Scala Native 0.4.10 and Scala JS 1.13.0 were also released recently, finally dropping 2.11 support.
Having both projects doing this at the same time is awesome! No weird cross-building problems for those who want to update (I was a bit scared that some libraries would rather drop Scala Native instead of 2.11) and it's a nice incentive for libraries to finally remove 2.11 support for good!
A timeline for reference:
- 2.11.0 was released on Apr 17, 2014.
- 2.12.0 was released on Nov 3, 2016 (6 years ago!).
- 2.11.12 (the last 2.11 version) was released on Nov 9, 2017 (5 years ago).
- Spark added 2.12 support on 2.4.0, which was released in Oct 29, 2018.
- Scala native added 2.12 support in 0.4.0, released in Jan 19, 2021.
So it seems more than enough time for most applications to upgrade.
After 6 years I finally messed up this server in a way that I don't seem to be able to recover - partly my fault, but also partly due the booting logic that Scaleway used on this (now deprecated) instance type.
I was already constantly running out of memory anyway, so this might be a good time to upgrade. Still, just a heads up that federation with this instance might be a bit bumpy during the next week.
Techy people!
If you're comfortable installing your own server software, you might like to know about microblog.pub. It's a free open source single-user Fediverse server which is very lightweight and has a minimalist interface.
You can find out more info on its documentation site at:
There's also an official account you can follow for updates:
➡️ @dev
As it's part of the Fediverse, microblog.pub accounts can be followed from Mastodon etc.
As instituições públicas devem assegurar a soberania e autonomia das suas comunicações e relações com os cidadãos não se deixando sujeitas a interesses e caprichos de terceiros.
#SoberaniaDigital #SoftwareLivre #Fediverso #Mastodon #AdministraçãoPública