For about 15 years, Evernote was one of the few apps I genuinely loved. I started with notes, then shifted to using it heavily for tasks and reminders as well.
(more…)Blog
-

Is the SaaSpocalypse real, or is it just a squeeze?
There is a lot of noise right now about the SaaSpocalypse. Depending on who you listen to, AI is either about to destroy the software industry as we know it, or this is just another market panic dressed up as a technology story.
I’ve spent close to 30 years building software, and much of that time has been spent building and managing products used by millions of people. So I’m not particularly interested in looking at this as a stock market story, or making dramatic predictions about every large SaaS company suddenly disappearing. I’m more interested in looking at it from the builder’s side.
(more…) -

What if the next programming language isn’t for us?
We’ve spent decades optimizing programming languages for humans. Nicer syntax, higher-level abstractions, better type systems and better tooling, all in service of human authors. But something is shifting. Increasingly, we describe what we want and AI writes the code.
If that continues, there’s a question I can’t shake:
(more…)If AI becomes the primary author of software, why would the next programming language still be designed for us humans?
-

How to trigger and run Firebase scheduled functions from localhost
Every wonder how to trigger Firebase scheduled (pubsub) functions directly from localhost during development? It’s actually quite easy, but for some reason not very well documented.
Start by installing Firebase CLI:
npm install -g firebase-tools
Setup local Firebase emulators:
firebase init emulators
Make sure that your firebase.json has a pubsub port defined.
"emulators": { ... "pubsub": { "port": "8085" }Start your local emulators:
firebase emulators:start
Shell into the running Firebase emulator instance
firebase functions:shell
You can now trigger any functions.pubsub.schedule directly from this prompt. E.g:
scheduleNotifier();
You’re now able to significantly improve your firebase function development, since you can trigger the scheduled functions interactively.
firebase > scheduleNotifier(); 'Successfully invoked function.' firebase > > No matching documents. > Notifier done: 0 -
How to check a DNS TXT record using OSX Terminal
A lot of services today authenticate DNS via TXT records and i find myself looking for web-services that checks those values for me. However, doing this will only give me the DNS record(s) for the DNS where the service is running, not actually my local DNS response.
Doing this via the Mac/OSX Terminal (command line) is trivially easy:
dig -t txt domain.comWhich will give you the TXT record for the specified domain. You can change the “txt” part to any other DNS parameters.
-

Updating PHP to 7.2 on OSX using Homebrew
PHP 7.2 provides several critical security updates and it’s important for any PHP developer to make sure that they leave the 5.x branch and jump on the 7.x branch as soon as possible.
Updating to PHP 7.2 is a breeze If you’re on OSX and using Homebrew.
Start by making sure that brew is up to date:
brew update && brew upgradeUnlink any previous PHP installation (this may vary, so you might need to replace the
php71accordingly):brew unlink php71Install PHP 7.2:
brew install php72Once done, you can verify that PHP 7.2 was installed by using
php -v
Happy coding! -
Getting the PHP runtime for App Engine to run on Ubuntu
Exciting news out of Google I/O 2013 reveals PHP support on Google AppEngine. As a php and a appengine-nerd, this is great news. And setting up the local development environment on Ubuntu (13.04) was a breeze.The PHP runtime for AppEngine requires the cgi-version of php 5.4 (and above) and python 2.7 (and above). Most Ubuntu-installations have python installed, but i’ll cover those steps as well, feel free to skip those if they are redundant for you.
Installing Python
sudo apt-get install python
Installing php5-cgi
(this should be safe to install even if you currently have a php-version installed since it’s the cgi version)sudo apt-get install php5-cgi
Grabbing the AppEngine for PHP SDK
wget http://commondatastorage.googleapis.com/appengine-php/appengine-php-sdk-1.8.0.zip
unzip appengine-php-sdk-1.8.0.zipStarting a local AppEngine instance using php5-cgi
./dev_appserver.py /path/to/your/app –php_executable_path=/usr/bin/php5-cgi
Your app should now be serving on http://localhost:8080/.
More details can be found in the official documentation:
https://developers.google.com/appengine/docs/php/gettingstarted/ -
How to re-enable workspaces on Ubuntu 13.04 Raring Ringtail
Canonical (the makers of Ubuntu) decided to remove the highly useful workspaces on default Ubuntu installations. But have no fear, this guide re-enables the workspaces within a minute or so.It’s actually a lot easier than i thought, so ignore below and just open Settings -> Appearance and click on Behavior. Now you can re-enable workspaces with the “Enable Workspaces”-checkbox.
I’ve also updated the screenshot to better illustrate this.
———–
First off we need to install unity-tweak-tool, either click on the link or type in the following commands in a Terminal (Ctrl + Alt + T)
sudo apt-get install unity-tweak-tool
Now open unity-tweak-tool using the Terminal:
unity-tweak-tool
In the window, click the “Workspace Settings”-icon (check the picture above) and flip “Workspace Switcher” to “On”.
Workspaces have now been re-enabled on your machine and it’s a persistent settings, so you don’t need to redo this if you reboot your machine.

