Programming

My First 3 Garmin Watch Faces

About a year ago I bought a Garmin Forerunner 245 to take my run-tracking to the next level. In almost every respect it’s left my previous Fitbit in the dust (cough… sleep tracking). And means I can run a race without needing to carry a phone. Lovely stuff. One of the things I found most intriguing about a Garmin device was the prospect of being able to build my own… Read More »My First 3 Garmin Watch Faces

CSS equivalent of the center tag

Update Jan 2020: Thankfully the landscape has changed a lot since this post, and flexbox is now almost certainly the answer. Because I understand the temptation to sometimes just wrap a div in a damn <center> tag instead of messing around with auto margins, translatex(-50%), or any other such nonsense — and also partly as a future reference for myself — here is what I’ve found to be the CSS… Read More »CSS equivalent of the center tag

Of Ants and Rhinos

I recently opened a Pandora’s box when investigating incorporating LESS into a web project I’ve been working on. Long story short, I found myself having to compile Rhino into a jar I could execute. Having installed Ant to perform the task, I ran the command and got the following exception: C:\rhino1_7R5\xmlimplsrc\build.xml:129: src ‘C:\rhino1_7R5\build\tmp-xbean\xbean.zip’ doesn’t exist. Which is exactly what I want to be dealing with when investigating a CSS precompiler. In… Read More »Of Ants and Rhinos

Gradle from behind a proxy, part deux

In July I wrote a post documenting how to build a project in Android Studio from behind a proxy. Essentially you need to tell Gradle Studio your proxy settings. As of updating to Android Studio 1.0, the issue has come back! After a combination of swearing and research I’ve found the missing necessary steps. So the new definitive steps for getting Gradle working from behind a proxy Navigate to the… Read More »Gradle from behind a proxy, part deux

Exposing a VM on hosted WiFi hotspot for Google Glass

Background Google Glass is famously frustrating to connect to a WiFi network. It doesn’t handle captive portals, or WiFi using Enterprise WPA2. I’ve also had consistent issues using MyGlass and QR codes to connect to Wifi. I found myself in a situation where I had to connect Glass to a WiFi network on which a virtual machine was visible. My work’s corporate network was out of the question – it uses… Read More »Exposing a VM on hosted WiFi hotspot for Google Glass

How to invoke a SAS macro stored in a catalog

Having not done the Advanced Base SAS certification, this was a nightmare to work out. I’m documenting it here for my own future use, and to help anyone else who found themselves in the same situation as me. What situation was that? SAS Social Network Analysis can create networks from input data, and to do so it makes use of a pre-compiled “link macro” which is bundled with SNA. This… Read More »How to invoke a SAS macro stored in a catalog

Removing duplicate rows in base SAS

If you ever need to remove duplicate rows from a SAS dataset, here’s an approach I use quite often. Get your data. Let’s assume it’s in the following format: – ID Name 123 John 456 Bob 123 John Sort your data. – /* Step 1 – Sort data */ proc sort data=my_lib.my_dataset; /* Sort by a field which you want to be unique, and which will be the same for duplicate… Read More »Removing duplicate rows in base SAS

SAS Dashboard – Fixing the “too many dials” issue

There’s an interesting feature of SAS BI Dashboard that caught me out when trying to put together some KPI gauges. We wanted a set of dials that would show us the counts for several types of public security offences. Naturally we configured indicators using count as the measure, but found that the dashboard was showing an indicator per record in our system:   With a bit of faffing around, I… Read More »SAS Dashboard – Fixing the “too many dials” issue

SAS – How to Export/Import packages

My team and I have been developing a solution which involves a degree of SAS reports and related metadata. I set up a scheduled, automated backup of our information maps, reports, etc for posterity, and out of general paranoia. For this I used SAS’s command line export and import capabiltiies, which probably weren’t designed to be used that way, but which turned out to be really useful. It took a… Read More »SAS – How to Export/Import packages

Converting custom date formats in SAS Information Map Studio

Background Let’s assume you have some dates in a custom format:   date20131007 month102013 SAS Reports need to be able to a) present dates in a human readable format and b) understand dates to allow filtering and other funky stuff. For that reason we need a way of translating these custom dates into SAS dates. Step 1 – Get an Information Map with a date field Use an existing one,… Read More »Converting custom date formats in SAS Information Map Studio