This blog has been quiet for some time. That's largely because I've done quite a bit of writing (and experimenting!) for my employer, OneStream . If you're interested in that sort of thing, here's a brief list of my posts on the company blog: Building BiBlend table names, or: a classic tale of XFBR escapology The Dutiful Dead, or: A Tale Of Mixed DataSets Cultured Numbers, or: How To Avoid…
The Problem I recently gave in to family tradition: I'm originally from Bologna, home of Ducati and heart of the Italian "Motor Valley" , so sooner or later I had to buy a motorbike (or two, but nevermind). As the main workhorse I went for a 2018 Triumph Street Twin , because it's practical but still fun, fairly cheap, and simply beautiful. I love it to bits, but one thing I really missed: a…
If you follow me on LinkedIn , you might have noticed that, about two years ago, I joined OneStream . I've since refrained from writing about it, for a number of reasons: the product is massive, so it took a while to get to grasp with it; my new role kinda constrained what I could talk about; and I thought I wasn't particularly well-qualified yet to speak about the subject. I recently attended the…
I recently bought a bunch of Pimoroni Badger2040 boards, and they are a lot of fun. The Badger is basically a small microcontroller (the Raspberry Pico ) with an eInk display, in the size of a typical office badge. It has a few buttons you can interact with, when powered, but because of eInk it doesn't actually need to be powered all the time - you can just set it to the desired screen, turn off…
EDIT 2020-06-21: I tweaked the layout a bit, and updated screenshot and scripts. When you're trying to improve your typing skills, there are quite a few things you can do: learning to touchtype , getting an ergonomic / split keyboard , or moving to a better layout than QWERTY . However, if you're like me (small hands, short pinkie), chances are that none of these will be of much help when you have…
A lot of the tutorials out there make it look like it's trivial to set up a development environment with Django, Postgres and Docker. That never quite matched my experience; you always end up knowing too much about docker, and there are a few gotchas that most people typically fail to mention. The following are a few specifically related to Postgres and Django, which I'm writing here because I…
UPDATE: This service has been discontinued; this post is left as historical reference. If you need this sort of thing, contact me on LinkedIn . With the recent release of EPM 11.2, I thought it would be a good time to make public a tool I've built and used "behind the scenes" for quite some time, the AutoEPM Patch Tracker . It's a patch tracker focused on EPM products, automatically aggregating…
Last month, Oracle finally released the long-awaited on-premises release of EPM 11.2, rumoured to be the last hurrah for the venerable suite. After a couple of test installations, I have a few thoughts from an infrastructure perspective. First, the bad news: This is very much a .0 release, in many ways the first since 11.1.2.0 (the last time so much of the infrastructure had substantially…
macOS handles some security items in a custom database, which may or may not be SQLite. The official way to interact with such database, outside of Objective-C, is the /usr/bin/security utility, with the parameter authorizationdb and specifying the required operation on the class of rights, e.g. security authorizationdb read system.login.console Unfortunately, there is no way (that I could find)…
Procedure If you want to remove all toolbars from Firefox in fullscreen mode on Mac, this is the procedure: Type about:config: in the location bar to open advanced settings. (If it is the first time you do it, you might have to click "confirm" or something like that in the scary screen that comes up first.) search for full-screen-api.allow-trusted-requests-only and double-click the line that is…
EDIT: I uploaded a full working example, ready to be customized, on github . If you just want a working solution, go there. Otherwise, keep reading for the explanation. When it comes to Java microframeworks for API development, I've been using Spark for some time in a couple of different projects. For most casual needs, it works out of the box; however, there are circumstances where the "easy"…
If you have an iPhone, Google Assistant and Google Home won't be able to call or ring your phone out of the box, since it's an Android-only feature. If you are not in the US, you cannot even use the workaround of calling your number. So what can you do, if you tend to misplace your phone around the house ? (ahem) Get an account on IFTTT Install the IFTTT app on your phone create a new applet,…
There are two ways to automatically load data in Django: for data you need while running tests, place xml/json/yaml files in yourapp/fixtures . for data you need while setting up the database from scratch, or at specific points in time, you must create a Migration This is a bit annoying, because chances are these locations will get out of sync sooner or later, and it duplicates effort if you do…
NVMe drives are great: they are fast and they are huge. That huge size, however, can be a pain when it comes to securely erasing data. Old-school commands like wipe are simply not up to the task; and even if they were, they work on assumptions that do not map properly to a solid-state world. Writing random data over and over is going to dramatically reduce the lifespan of a solid-state drive, and…
So, after 7 intense years at Infratects (now Inlumi), it's time for me to move on. I have a few ideas about what to do next, but nothing set in stone yet. My LinkedIn profile could do with more details, but it's a decent primer for what I do for a living - Hyperion/EPM, Python, Java, Weblogic and thereabout. I was a web developer in a previous life, so I enjoy hacking and automating everything,…
As a faithful Nespresso user, I was a bit shocked last month when I discovered one of my favourite blends contained Robusta. I had always assumed all blends were 100% Arabica and alas, that was not the case. So I started looking up what is what, but I was quickly overwhelmed - I wasn't going to browse through 24 pages of slow-loading images to read all blurbs. Enter Python. As it often happens,…
Since launch, the MS BotFramework has been changing very rapidly. So rapidly, in fact, that I recently gave up trying to keep up with my handrolled Python, and embraced (sigh) their NodeJS SDK. At least now I won't have to worry when they break stuff, right ? One of the most recent BF changes is the deprecation and eventual removal of the default persistence API. You are now supposed to either use…
I've been looking for a while for a Windows-native Twitter client that could sync with my other non-Windows devices ( aka "supporting TweetMarker"). I've found one that claims to do that, Tweet It! , but there is a problem: it costs £3.5 upfront. That's a relatively high amount of money to throw down a well hoping that my wish will come true. However, because this feature is so rare, if it worked…
I've started describing the EU to geek-friends as a set of services built over decades. You need to coordinate energy supplies across the company departments (nations)? We built a service ( ECSC ) that does that. Worked great, no more fighting over the last bit of coal! Need atomic development? EURATOM service. Worked great, again. And so on and so forth... At some point somebody said hey, we need…
After 5 long years, I was gently forced back to Windows for everyday work. The experience has been less terrible than I thought, but was pretty frustrating at the beginning. To help anyone in the same predicament, I put together a small list of tips to make the move a bit more tolerable. Windows does not have hot corners. Hello, 1995! Anyway, the solution here is using a small app called,…
I've finally got fed up enough with the old Nexus 7 (2012) that we originally bought to let the kids play - it's never really worked properly, getting laggy every 5 minutes and running out of battery after an hour. The kids moved on to an iPad, so I "installed" this crappy tablet to the kitchen wall, hoping to use it for calendaring and podcasts, but it was still horrendously laggy. I've decided…
Mozilla recently announced that some of their German users downloading Firefox will receive a version that tracks some of their web activity, reporting it to Cliqz.com. In the wake of this development, which is pretty awful from a privacy perspective, I went spelunking into my version of FF to see if anything had been enabled already in my build. To my horror, cliqz.com is already mentioned in a…
UPDATE 23/10/2017: recent changes seem to be incompatible with clang. I have updated the steps below to check out the last commit that is known as working. Waifu2x is a popular image converter backed by neural-network models, typically used to upscale images from anime . The various web versions are easy to use but typically don't allow for batch-processing, because it's a relatively intensive…
Note to self: these are the default desktop background colours for old Windows versions. 008080 (RGB 000-128-128) - Windows 95/98 3A6EA5 (RGB 058-110-165) - Windows 2000 (I know you love them, even if setting a wallpaper was the first thing you did after logging on a new PC. It's called nostalgia.)
It looks like recent versions of the official Microsoft Remote Desktop client are a bit shy when it comes to sending CTRL to the remote Windows session. I discovered this because I use Ctrl-Arrow very often to move from word to word, and it just stopped working in RDP. The solution is to make sure you don't have any overlapping OSX shortcut - typically, CTRL is used for Mission Control actions.…