Timing code within functions in Unity

I had to time some C# code within a function in Unity3D. Without the professional version of Unity, you don't have a profiler. The code I used was the following:

long startTime = DateTime.UtcNow.Ticks;

// some code you want to time

long now = DateTime.UtcNow.Ticks;
long tm1 = now - startTime;
startTime = now;

// more code you want to time

now = DateTime.UtcNow.Ticks;
long tm2 = now - startTime;
startTime = now;

// etc
Debug.Log("tm1 = " + tm1);
Debug.Log("tm2 = " + tm2);

This worked for me and enable me to determine which part of the code was taking the time (not the part that I was expecting!).

There may be better ways to do this, but this worked for me.


I've been using IntelliJ as my Java editor instead of Eclipse - and I absolutely love it! So much so that I bought a license for all of JetBrains' programmer editors! I'm still learning how to use all the functionality of IntelliJ, but I am finding my productivity has dramatically increased a few days after I started using it.

Deep Learning

The more I use Deep Learning, the more I am amazed by it. Some things which would be hard to do programmatically are easy with the right Neural Network. It feels like we are just starting to scratch the possibilities.

Swift Coding

I am programming Swift in earnest now. I am way more familiar with Objective C for building apps for Mac OS/X and iOS, but I have a few apps to write and Apple are pushing us to make the transition to Swift, so it's time to bite the bullet and use it as my primary language for a while.

It's quite nice working in a new language again. I am enjoying learning the design choices the Swift team has made in their language. There is some weird stuff, but on the whole it feels natural and sophisticated. It's great that they've open sourced it as well, so that I can potentially use it on my Linux servers. I'm not sure that it will replace Go or Python for doing any kind of Dev Ops, but it's great to have it as another option.

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”

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.

Productivity for 29th May, 2013

I coded up a script to output a chart of what my productivity looks like for the day. It is based on my Pomodoro software that logs all the time-boxes to my calendar on Mac OS/X. My program extracts all the information and constructs a nice looking chart. The idea is that I track what things are making me more productive. You can find the script over in my GitHub repository Pomodoro Daily Chart 2013-05-29