- Get an account on IFTTT
- Install the IFTTT app on your phone
- create a new applet, click on "this" and select Google Assistant
- select "say a simple phrase" and enter the details you prefer (e.g. "make a noise on my phone" or "ping my phone". Note the most common "ring my phone" or "where is my phone" are reserved by Google and won't work).
- click on "then" and select VoIP Calls
- enter a message the phone will tell you if you pick up (e.g. "Glad you found me!")
- Save the applet.
26 November 2018
15 August 2018
There are two ways to automatically load data in Django:
- for data you need while running tests, place xml/json/yaml files in
- 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 reproducible builds, docker, and stuff like that.
The solution is to create a migration that actually loads fixtures. So:
- Create your fixtures:
manage.py dumpdata --output yourapp/fixtures/yourmodel.json yourapp.YourModel
- Create an empty Migration:
manage.py makemigrations --empty yourapp
- Edit the resulting migration (the last file created under
yourapp/migrations, making it look like this:
from django.db import migrations def load_fixtures(apps, schema_editor): # This is what will be executed by the migration from django.core.management import call_command # this is the equivalent of running manage.py loaddata yourmodel.json for fixture_name in ['yourmodel']: # add any additional model here call_command("loaddata", fixture_name) # add other calls if you have multiple models def rollback(apps, schema_editor): # This will be executed if you rollback the migration, so you want to clean up for model_name in ["YourModel"]: # add any additional model here model = apps.get_model("yourapp", model_name) model.objects.all().delete() class Migration(migrations.Migration): dependencies = [ # ... don't touch anything here ... ] operations = [ migrations.RunPython(load_fixtures, rollback), ] # -*- coding: utf-8 -*-
Note that this does not remove the option to have data that is available only in certain situation: just don't list the fixtures you don't want in the migration, and vice-versa.
24 May 2018
wipeare 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 it's pointless when all NVMe disks already have built-in tools that can take care of this task quickly and safely.
So what do you do when you want to wipe a NVMe drive?
- Download a recent Linux distribution. I would recommend Debian/Ubuntu or one of their smaller derivatives (like Knoppix). Burn it on a cdrom or USB drive and boot the system from it.
- Make sure your package manager is up-to-date (under Debian/Ubuntu,
sudo apt-get update), then install
sudo apt-get install nvme-cli)
- If your drive is a Samsung, it now has to be put to sleep (you can do that with
sudo systemctl suspend) and then woken up. This is a weird bug that Samsung doesn't seem in any hurry to fix.
- Now you can securely wipe the disk:
sudo nvme format -s1 /dev/nvme0n1
The latest NVMe specification adds other commands, to scrub every nook and cranny (bus caches etc), but as far as I know they have not been implemented yet.
15 May 2018
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, getting dirty with infrastructure and the cloud; and in 13 years working on Hyperion products, I've absorbed a pretty good amount of knowledge related to financial processes (consolidation rules, metadata, cube performance and so on) as well as a deep understanding of the innards of the EPM suite. I can tweak your database, hack your Weblogic, integrate your cloud-based authentication, script your exports and migrations, and so on; and if there is something the tools won't do... I'll build you a new tool! That's where I make the difference: at the intersection of technology and Finance, boosting the productivity of accountants.
If this sounds interesting, ping me on LinkedIn and we can have a chat.
16 April 2018
As it often happens, the situation degenerated quickly. The result is an Excel spreadsheet (also available in Google Docs), listing all attributes of all blends so that you can filter out what you need. Decaffeinated varieties are highlighted, because that's not real coffee 😁