Mechanical Keyboard Shenanigans

I am currently experimenting with coding using a Vortex Pok3r Mechanical Keyboard. I’m not sure whether it was a good buy or not. My rationale was that has a programmer, my keyboard is my primary tool, and it makes sense to have the best that I can get. I quite like the action of the keyboard, but it is too early yet to tell whether it is making me more productive or not.

 

Air Pods

I finally took the plunge and bought a pair of Air Pods. So far I quite like them (although it’s only been a few hours). I quite like the way that you can pause the track you are listening to simply by taking one headphone out of your ear. Playback resumes when you put it back in your ear. They are quite expensive though, and I’m fairly sure that I will lose them unless I develop a routine way of storing them.

Big Iron

Back in the late 80’s/early 90’s, I used to argue that programmers should do their coding on an 8086 machine, an IBM XT for example, rather than something more powerful like a 286. My argument was that by using a slow machine, you had the same user experience as your average user, and you could optimize the program appropriately.

Continue reading “Big Iron”

Starting Deep Learning Course

I met up with some of my old team from BNP Paribas last week. I found it striking that everyone who was there is now working directly with Machine Learning. It was quite inspiring!

For the last few years I’ve been building Trading Execution Algorithms for Westpac. Time to do something different!

I decided to enroll in Coursera’s Deep Learning Specialization. I’ve just finished the first week, and I am really enjoying it. Andrew Ng is a fantastic teacher. I did his previous course on Machine Learning and loved it.

iPad Pro versus MS Surface Usability

I have both an iPad Pro and a Microsoft Surface Pro 3 tablet running Linux. Depending on what I am planning on doing on a day-to-day basis affects which device I carry around. Mostly I carry my Surface, as I have Linux installed, and it allows me to easily do development, remotely administer machines, or do general computing tasks. The keyboard on it isn’t great however – it’s kind of flimsy and doesn’t work well if it’s not on a firm surface. I can’t easily use it on a train for example. It was perfect when we were in Australia for a month, and allowed me to both work and do University assignments. I can use it as a tablet for reading, but it isn’t great for that.

Continue reading “iPad Pro versus MS Surface Usability”

Linux on Surface Pro 3

I just bought myself a second-hand Surface Pro 3 and installed Linux on it. It runs Ubuntu extremely well, with almost everything working out of the box. It’s lovely having an light-weight machine that I can use as a tablet, but also do development on.

Installing PostgreSQL from source on my Mac

In order to build PostgreSQL from source on my MacBook Pro running El Capitan, I first downloaded the git repo:

git clone git://git.postgresql.org/git/postgresql.git

I then built it:


cd postgresql
./configure
gmake
sudo make install

This will install the binaries to the default location of “/usr/local/pgsql”.

I already had a user called “_postgres” in my /etc/passwd file, so I configured to run PostgreSQL as this user:
Continue reading “Installing PostgreSQL from source on my Mac”

Facebook and the Algorithmic Curation of Content

Facebook has recently got into trouble over an accusation that they are suppressing conservative news stories in the trending news categories. Facebook have an algorithmic system that promotes trending topics to a human curation team, who make the final decision about what gets promoted. Obviously human beings have bias. One of the interesting things that has happened in finance is that banks are using algos more and more to ensure that humans aren’t involved in situations where there can be a conflict of interest. One example is the 4pm FX fix which are now required to be handled algorithmically. There’s a trend here – algorithms are being used to ensure fairness. Will media companies be forced to have algorithmic editors to remove bias from reporting?

Python OAuth2 failing with X509 error

I’ve just spent about 20 minutes trying to authenticate with Twitter using the Python OAuth2 module. I kept on getting an X509 error, specifically:

ssl.SSLError: [Errno 185090050] _ssl.c:343: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib

The solution to this is that the cacerts.txt file in the Python installation is only readable to the root user / wheel group. In order to fix that up, first find the cacerts.txt file:

find /Library/Python/ -name cacerts.txt

Then modify the permissions on the file:

sudo chmod 644 /Library/Python//2.7/site-packages/httplib2-0.7.7-py2.7.egg/httplib2/cacerts.txt

Note that the URL endpoints for twitter on the python-oauth2 Github page are currently wrong. To use the “Twitter Three-legged OAuth Example” change http://twitter.com/oauth/request_token to https://api.twitter.com/oauth/request_token, etc.