Ian Howson

Ian Howson


I'm a software developer with expertise in cyber security, IoT/embedded devices and data science.

Ian Howson Home Hire me!

Contact

[email protected]
@ianphowson
ian.howson

Blog

Why the MacBook Pro 15" has a discrete GPU 19 Jan 2017

The new MacBook Pro 15"'s discrete GPU is not for acceleration; it's to run multiple 5K displays.

GRAPE: the Generic Risk Assessment Process Explained 10 Jan 2017

Risk assessment doesn't have to be boring. Or DOES IT?

CPU clock rates are meaningless now 15 Nov 2016

Cooling capacity and turbo clock rate are better indicators of CPU performance.

How to enable the oplog on Ubuntu MongoDB for Meteor 15 Aug 2016

Etymotic ER4XR review 5 Jul 2016

A little more bass wouldn't hurt, but these are amazing IEMs.

More MPI performance optimisation 4 May 2016

Running identical tasks across MPI nodes might be a bad idea on cloud hosting.

Turbo Boost and MPI 4 May 2016

Turbo Boost violates assumptions made by MPI developers.

How I build Meteor apps 28 Mar 2016

Connecting Meteor to Sentry 11 Mar 2016

Kadira is going away and Sentry is better, anyway.

How to deploy a Meteor project on your VPS using Docker 19 Jan 2016

One-step deploys, your choice of hosting.

How to fix your Skull Shaver Bald Eagle if it turns itself off 18 Jan 2016

It's probably full of hair.

Why Apple would make a phone with no headphone jack 18 Jan 2016

Persistent computer hardware myths 17 Jan 2016

Dell P2715Q review 5 Jan 2015

BitTorrent Sync 1 Oct 2014

Implementing XKCD-style passwords on a real website: lessons learned 9 Jul 2014

The XKCD webcomic recommends using passwords made of a collection of random words. Here's what I learned when I enforced this policy on a public website.

How to set up a private IPython parallel cluster 3 Jun 2013

Attacks on Proximity Card Systems 28 May 2013

Commonly deployed proximity cards are trivial to sniff and clone.

A quick guide to using MySQL in Python 3 Jul 2011

A few notes on the Lenovo X220 13 Jun 2011

I bought a Lenovo X220 to run Ubuntu. Here's how I got it running nicely.

File synchronisation algorithms 18 Jun 2008

While developing a file synchroniser (along the lines of Dropbox) I documented the details of file conflict resolution.

Getting Started with the BlueSMiRF Silver V2 Bluetooth Module 9 May 2008

Kinesis Advantage keyboard and learning Dvorak 27 Jan 2008

My primary keyboard is a Kinesis Advantage. Here's how I transitioned to it and (almost) switched to Dvorak at the same time.

Migrating your data between todo list programs 27 Jan 2008

There are lots of great options for todo list tracking. Unfortunately, most don't make it easy to export or import your data.

bulkem: an R package that quickly fits mixture models using the EM algorithm on CUDA hardware

Start here 18 Jun 2015

Introduction 18 Jun 2015

Background 18 Jun 2015

Design 18 Jun 2015

Results 18 Jun 2015

Discussion and conclusion 18 Jun 2015

A Cost/Performance Study Of Modern FPGAs in Cryptanalysis

Start here 20 Oct 2003

Introduction 20 Oct 2003

Background 20 Oct 2003

Design 20 Oct 2003

Analysis 20 Oct 2003

Conclusion 20 Oct 2003

Key search engine 1 interface 20 Oct 2003

Key search machine 2 interface 20 Oct 2003

CPU benchmark results 20 Oct 2003

FPGA price/performance tables 20 Oct 2003

CPU price/performance tables 20 Oct 2003

Designing Secure IoT and Embedded Devices

Introduction 15 Dec 2016

What's the least I can know? 29 Nov 2016

Attacks on embedded systems 6 Jan 2017

Is responsible disclosure appropriate for IoT devices? 3 Jan 2017

IoT devices usually can't be updated, so carefully consider what information is released in a public vulnerability disclosure.

How to extract firmware from a device 20 Dec 2016

Why extract firmware? 20 Dec 2016

Miscellaneous 19 Dec 2016

Thoughts that don't really fit anywhere else

Pressures on highly regulated industries 19 Dec 2016

Change is super expensive, so security is usually skipped.

Software developers shouldn't build threat models 19 Dec 2016

Why is IoT security different? 19 Dec 2016

How do we fix IoT security? 13 Dec 2016

Negative reporting and security research 13 Dec 2016

Reports of effective security are more useful than reports of broken security right now.

Design assuming your security controls will fail 10 Dec 2016

Everything breaks, given enough time.

Frequently asked questions 8 Dec 2016

Commentary on the Sony IPELA IP Camera backdoor 7 Dec 2016

How does firmware get onto the device? 7 Dec 2016

The same keys on every device 7 Dec 2016

After manufacturing, every device is identical. This causes security problems.

What is IoT? 26 Nov 2016

Embedded systems have been here for decades. You just didn't notice.

Blockchains on IoT devices 25 Nov 2016

Hardware classes of embedded/IoT devices 23 Nov 2016

Most IoT devices do not have the hardware required to support strong technical security controls.

Open edX Operations Notes

The Unofficial Open edX Operations Manual 25 Sep 2014

Common Production Tasks 10 Nov 2014

Configuration 10 Nov 2014

Common Errors 25 Sep 2014

Custom Theme 25 Sep 2014

Deployment Checklist 25 Sep 2014

Getting Started 25 Sep 2014

Hosting Options 25 Sep 2014

Monitoring 25 Sep 2014

Reducing Memory Consumption 25 Sep 2014

Setting Up Devstack 25 Sep 2014

Using LXC Containers 25 Sep 2014

ZFS File Server Design

Do you really need ECC RAM with ZFS? 27 Feb 2014

ZFS' all-or-nothing attitude means that small bitflips can turn into big problems.