Content tagged with "Work"

Happy new year to one and all. It’s been a while since I posted and life continues onwards at a crazy pace. I meant to publish this post just after Christmas but have only found time to sit down and write now.

If anyone is wondering what’s with the crazy title – a gopher is someone who practices the Go programming language (just as those who write in Python refer to themselves as pythonistas. There’s an interesting list of labels that programmers self-assign here if you’re interested).

Read more...

As the CTO for a London machine learning startup and a PhD student at Warwick Institute for the Science of Cities, to say I’m busy is an understatement.
At any given point in time, my mind is awash with hundreds of ideas around Filament tech strategy, a cool app I’d like to build, ways to measure scientific impact, wondering what the name of that new song I heard on the radio was or some combination thereof.
To be effective at my job (and to stay sane in general), I really have to stay on top of what I know and how I manage my knowledge. My brain just doesn’t have enough room for everything I need to know and I’ll be the first to admit that I’m one of those stereotypical absent minded academic types, like Harry Hill’s portrayal of Professor BraneStawm. That’s why I spend so much time trying trying to perfect the art of building a “second brain”.
There are so many different ways I could be keeping my notes but they all have their flaws. That’s why I keep coming back to Evernote. It is certainly not amazing, it just happens to be the best of a bad lot. Here are some strategies I’ve tried and why they failed.

Approach 1: Keeping paper notebooks

I love stationary. There’s nothing quite like writing your name on the front page of a brand new moleskin notebook. I accumulate notebooks like some kind of eccentric collector. Last count I had something like 28 of them under my desk. The sad thing is that most of them are at about 25% usage if that. I am well aware of how wasteful that sounds because it is wasteful and I am kind of ashamed. Here’s the key problem though. Physical paper notebooks are easy to forget.

Downside 1: Forgetting your notebook

As I said above, I’m a real stereotype absent minded professor type. As my girlfriend often tells me, and my parents many years before her, I’d forget my head if it wasn’t screwed on. Its a miracle I leave the house fully dressed with my wallet and my mobile phone. A miracle or years of conditioning and last minute “pat checks” anyway.
Joking aside, I am pretty well organised most of the time but every time I go through a physical notebook phase I really struggle to get into a routine of remembering to put my notebook in my bag on the way out of the door.

Downside 2: Practicality

If I am able to remember to bring it, it doesn’t take me long to run into obstacle number 2 to notebook adoption: practicality. I spent a great deal of times on busy London commuter trains. Extracting your notebook and pen from your satchel and having enough room to move your arms around when you’re packed like a sardine on the 8.05 to Waterloo is particularly difficult and even on the miraculous occasion when get a seat, there usually isn’t room to swing an amoeba, nevermind a cat.

Downside 3: Organising and Searching

Assuming I remember it and I have room to open it and read it, the next problem with a physical notebook is finding information in it. Given my two jobs and my general curiosity, I am always making notes, having ideas and context switching. If I carry only one physical notebook then organising things by idea or context becomes very difficult. I’ve tried a couple of approaches here: carrying a wedge of coloured sticky notes and sticking a different one to my notebook each time I context switch seems like a great idea until you realise it makes things even less practical and there are only so many colours. I also tried carrying different notebooks for different projects or even just 2: one for Filament and one for my PhD. Again this is not overly practical and if I can’t remember one, remembering 2 is even less likely.

Downside 4: Security and Backup

The last big flaw with paper is that it is easy to lose or steal and once its gone its gone. Say what you will about people snooping and hacking on the internet, at least I can’t leave “the cloud” on a train or in a restaurant. Again, thanks to years of conditioning, I am much less prone to leave big ticket items like mobile phones and laptops lying around in public places but even if I did, my devices are encrypted, password protected and enabled for remote wipe (assuming enough battery life and connectivity). You just can’t remote wipe a slither of tree.

Approach 2: Personal Wiki

While I was at Uni, a friend of mine started keeping a personal wiki which was locked down and only readable to them. I thought that was a great idea. An online notebook, accessible from anywhere. I’ve been keeping a personal wiki for years (off and on) using DokuWiki and I highly rate the software as wikis come. However, there are a couple of reasons I struggle with personal wiki maintenance.

Downside 1: Connectivity

One of the biggest problems with the personal wiki approach is offline access. The trains I typically catch don’t have great wifi and even when I can get online, it is often very slow or patchy and unreliable. I have tried my hand at hosting dokuwiki on my laptop and using the XML-RPC sync plugin to mirror everything to my personal web server but the plugin (while amazingly and lovingly maintained by volunteers whose time I am incredibly grateful for) is not particularly reliable and I have sometimes lost notes using this process. I also can’t run a full LAMP stack on my phone which brings me to my next point…

Downside 2: Mobile Usability

When I’m crammed into a sardine tin or just want to make a quick 30 second note, the last thing I want to be doing is booting up my laptop to edit my personal wiki. Yes, I know I can edit my wiki from Chrome for Android and I have done on numerous occasions. However, I just don’t find the experience to be particularly pleasant or even practical. What dokuwiki et al are missing is a really good mobile app for making quick adjustments to content and ideally syncing sections of the wiki offline for reference on the go.

Downside 3: Dashboard or “making wikis sticky”

When I’m trying to build a new habit, what I really need is for whatever the tool I am trying to get used to to be in my face as much as possible. That’s one of the reasons dokuwiki on its own just isn’t sticky. Evernote is in your face on your desktop and phone and offers notifications. Physical notebooks are in your phase because they are physical books (if you remember to take them with you). Remembering to log into dokuwiki and read your todos is a bit like remembering to take your notebook in your bag. If its not muscle memory, it just doesn’t stick.

Approach 3: Markdown Notes

Similarly to dokuwiki, I’ve been evangelised by techie friends who use markdown notes and dropbox or owncloud a few times. Its a great idea in principle – using open source markdown <-> html <-> pdf programs like pandoc to make my notes readable. Unfortunately markdown notes share a number of shortcomings with physical notebooks and personal wikis.
You’ll see from my below notes that my main gripe with this workflow is that it requires me to configure lots of different moving parts and write bespoke tools where existing open (or even paid) ones don’t do what I need.

Downside 1: Usability

Ok so I’m a geek and arguably I should just feel happy writing and maintaining my notes from the command line. The problem for me is that its not tremendously usable or “in your face” as I touched on above. I mean sure I love command lines as much as the next Linux power user, I do most of my development in vim and most of my source code management using git cli (as opposed to the GUIs that you can get for Eclipse and Atom etc). Personal knowledge management is one of the few places where I’d much rather just have an all in one tool that does everything I need and well than have to faff about with loads of moving parts and utilities. A few of cases where this is particularly poignant:
  1. Searching for notes in evernote or dokuwiki is as easy as typing into a search box and hitting enter. Searching for notes in markdown requires me to read the grep man pages for the umpteenth time because I’ve forgotten which flag to set to turn on or off regex in the particular flavour I need.
  2. Inserting images into markdown notes is a pain because I need to download the image, place it in a folder relatively near to my content and add an image markup section to my code. My assets tend to get very fragmented in this case too because I might use the same image in multiple notes and end up storing multiple copies of it in different “assets” folders. There is a really good atom plugin for this that allows you to “paste” images in your clipboard buffer into your notes and will automatically save it to disk and generate a link. That one plugin, as good as it is, doesn’t solve all my other gripes though.
  3. Rendering my markdown is a pain – the Atom plugins for this are not perfect and due to different flavours of markdown and rendering engines, I can render the notes in one tool and find that they render completely different in another. The best combo I’ve found so far has been Atom + Pandoc Markdown Plugin + Pandoc.

Downside 2: Mobile Usability

Exactly the same problem as with personal wikis. There are no good apps for a holistic markdown-notes-based workflow for Android. Sure there are a few good markdown editors and the best one I’ve found is Epsilon notes. However, I need something that has a widget for my home screen and notifications and lights and bells and whistles to keep my absent minded academic brain on track. Epsilon is great if you remember to open it and check it (anyone else see a theme here?) but suffers from some of the same usability issues that desktop markdown editors do (inserting images etc).It is still great though, if you’re looking for a markdown editor for android and don’t have crazy demands like me, check them out!

Major Common Downside: Web Clipper (or lack thereof)

All of the approaches I’ve listed above are great in different ways and each has its own drawbacks but one thing that they are all missing is a good Web Clipper. A web clipper is typically a browser plugin or bookmarklet that allows you to save a web page’s content offline for reading later. Think of it like bookmarking on steroids. I suppose the real world simile would be instead of putting a bookmark in Game of Thrones when you put it down to go and have a cup of tea, you photocopy the whole chapter in case someone steals your copy of the book. This is super useful for me as I travel on the train a lot with no wifi but offers other amazing advantages too. For example, I can annotate/highlight and comment on content in the page directly and if the author of the original page takes their content down or forgets to pay their hosting bill, I can still read it.
Evernote are by no means the only people on the market with one of these babies. There are a few standalone tools that do this too and Microsoft’s impressive-but-lets-be-honest-less-usable-and-more-clunky Evernote competitor, OneNote has a web clipper too. The web clipper is an absolutely crucial part of my workflow and I’ve never found a replacement for Evernote’s implementation that is quite as good. Honestly, I could probably live without and overlook some of the other things I moaned about earlier in this post but web clipper really is the be-all-and-end-all feature that I am looking for in a knowledge management suite.

Downsides of Evernote

As I said at the beginning, I am not an evernote ‘fan boy’ and this is supposed to be a fair and representative posting. Therefore let’s talk about Evernote’s warts.

Downside 1: Pricing Model

Look, I’m a professional, I know how much time and effort people put into software development and I am happy to pay for high quality products if they offer a genuine advantage to me. That’s why I think that for £30 a year for the ‘Plus’ option, Evernote is a steal. What I don’t like is the idea of artificially turning off some of the features just so that I drop another £20 for their ‘Premium’ tier. 1GB of storage per month? Fine! I only need that. 99% of the time I don’t need to scan business cards and to be perfectly honest, I can live without indexing text in pdfs too. However, those are all “nice to have” things that I’m not going to drop £20 for. I actually prefer Microsoft’s OneNote pricing model over Evernote’s. They don’t charge for the tooling, they charge for the disk space you’re using.

Downside 2: No Math Markup

As a machine learning specialist, I spend a lot of time reading and writing mathematical formulae. Therefore it kind of sucks that Evernote still doesn’t have any support for math. I can write math in my paper notebooks (or anything else for that matter) and I can use MathJax in dokuwiki and LaTeX math syntax in markdown. I mean jeez, even OneNote has math formulae. If Evernote had maths markup I think it’d be pretty difficult to get me to leave their platform.

Downside 3: The Cloud is just someone else’s computer

Perhaps one of the biggest drawbacks of Evernote (and OneNote) is that they both require you to trust that they are not doing naughty things with your data and I don’t. Call me what you will: conspiracy theorist, foil hat wearer – I can take it, I was chubby, spotty and wore thick glasses at high school, I can take it. However, the point still stands that if you are putting data in someone else’s “black box” then you either have to take their promises at face value or just assume that they can see everything you are sending. Evernote make all the right noises about securing your data against attackers and hackers and that’s good news but as a “tin foil hat wearing conspiracy theorist” I would rather just keep all my private data in my own private network. I would much rather pay a monthly license cost to run Evernote’s server stack software on my own hardware (yes I know running software compiled by someone else is scary but its still less scary than trusting them blindly with my data and I could always wireshark the machine its running on and see if its sending any mysterious packets back to the mothership).

So why *do* I keep going back?

Despite all its flaws and warts, in terms of pricing, features and security, Evernote keeps enticing me back because:
  1. The user experience is great. The desktop app is clear and well designed, it works well and it does notifications and “in your face-ness” really well.
  2. It doesn’t let me forget it – kind of the same point as 1. but specifically Evernote stays front of mind and in a mind like mine, that’s a real feat.
  3. Mobile integration is really good and the Evernote android app is fantastic.
  4. The web clipper is so great on both desktop and mobile. I can glance at websites and “download” them for later then I can read them when I’m not busy – signal or not.
  5. While the pricing tiers are obnoxious, the Plus plan isn’t unreasonable given how much I spend on coffee.

What would entice me away?

If the open source community rallied around dokuwiki or markdown to create a high quality web scraper and a decent mobile app I would SO be there. Or if ownCloud/NextCloud notes was a bit more mature and had these features.

Concluding thoughts

Evernote is by no means perfect and I have deep concerns about my personal data when I use it. However, it seems to be the best option for keeping me organised on a practical day-to-day level and that’s why I keep going back. Here’s hoping that we get some good open source alternatives in this space sooner rather than later. If anyone has any suggestions for alternatives I could try, I’d love to hear about them in the comments section.

Thomas Hobbes, perhaps most famous for his thinking on western politics, was also thinking about how the human mind “computes things” 500 years ago.

A recent opinion piece I read on Wired called for us to stop labelling our current specific machine learning models AI because they are not intelligent. I respectfully disagree.

Read more...

I own a Pebble Steel which I got for Christmas a couple of years ago. I’ve been very happy with it so far. I can control my music player from my wrist, get notifications and a summary of my calender. Recently, however I’ve stopped wearing it. The reason is that constant streams of notifications stress me out, interrupt my workflow and not wearing it makes me feel more calm and in control and allows me to be more productive.

Read more...

A testament to marketers around the world is the myth that their AI platform X, Y or Z can solve all your problems with no effort. Perhaps it is this, combined with developers and data scientists often being hidden out of sight and out of mind that leads people to think this way.

Unfortunately, the truth of the matter is that ML and AI involve blood sweat and tears – especially if you are building things from scratch rather than using APIs. If you are using third party APIs there are still challenges. The biggest players in the API space also have large pools of money. Pools of money that can be spent on marketing literature to convince you that their product will solve all your problems with no effort required. I think this is dishonest and is one of the reasons I have so many conversations like the one below.

Read more...

I was very excited to be invited along with some other IBMers to the Blackgang Pi event run by Dr Lucy Rogers on a semi regular basis at the Blackgang Chine theme park on the Isle of Wight.

Blackgang Chine is a theme park on the southern tip of the Isle of Wight and holds the title of oldest theme park in the United Kingdom. We were lucky enough to be invited along to help them modernise some of their animatronic exhibits, replacing some of the aging bespoke PCBs and controllers with Raspberry Pis running Node-RED and communicating using MQTT/Watson IOT.

Read more...

EDIT: Hello readers, these articles are now 4 years old and many of the Watson services and APIs have moved or been changed. The concepts discussed in these articles are still relevant but I am working on 2nd editions of them.

Last time we discussed some good practices for collecting data and then splitting it into test and train in order to create a ground truth for your machine learning system. We then talked about calculating accuracy using test and blind data sets.

Read more...

Last week, my colleague Olly and I gave a talk at a data science meetup on how IBM Watson can be used for data science applications.

We had an amazing time and got some really great feedback from the event. We will definitely be doing more talks at events like these in the near future so keep an eye out for us!

I will also be writing a little bit more about the experiment I did around Core Scientific Concepts and Watson Natural Language Classifier in a future blog post.

Read more...

EDIT: Hello readers, these articles are now 4 years old and many of the Watson services and APIs have moved or been changed. The concepts discussed in these articles are still relevant but I am working on 2nd editions of them.


This article has a slant towards the IBM Watson Developer Cloud Services but the principles and rules of thumb expressed here are applicable to most cognitive/machine learning problems.

Introduction

imagebot-com-2012042714194724316-800pxQuality assurance is arguably one of the most important parts of the software development lifecycle. In order to release a product that is production ready, it must be put under, and pass, a number of tests – these include unit testing, boundary testing, stress testing and other practices that many software testers are no doubt familiar with. The ways in which traditional software are relatively clear.In a normal system, developers write deterministic functions, that is – if you put an input parameter in, unless there is a bug, you will always get the same output back. This principal makes it.. well not easy… but less difficult to write good test scripts and know that there is a bug or regression in your system if these scripts get a different answer back than usual.

Read more...

I’ve recently been playing with trying to build a Watson powered home automation system using my Raspberry Pi and some other electronic bits that I have on hand.

There are already a lot of people doing work in this space. One of the most successful projects being JASPER which uses speech to text and an always on background listening microphone to talk to you and carry out actions when you ask it things in natural language like “What’s the weather going to be like tomorrow?” and “What is the meaning of life?” Jasper works using a library called Sphinx developed by Carnegie Mellon University to do speech recognition. However the models aren’t great – especially if you have a british accent.

Read more...