Python Script as a Reliable Service

I was asked to help out a friend who had an installation in an art gallery that stopped booting properly, and was reminded that I keep forgetting to actually write this post. Running a python script as a reliable, retryable service on a Raspberry Pi that waits for an ‘up’ network connection, because I’m an idiot who keeps changing his mind how to do it. Fail gracefully and with informative error messages: try: ... except:... is your friend ...

November 21, 2019 · Andrew Bolster

Data Art: Creative Collisions and Getting out of your comfort zone

Approximate Script from my #NIDevConf19 talk a few weeks ago Introduction The technology community is known for being strongly inward looking to the point of being miopic at times; we focus on techniques, products, languages, frameworks, and best practices and we consider success and failure based on concrete facts and evidence. ...

June 17, 2019 · Andrew Bolster

And Now I Am 31

Another year gone, thought it was time for some reflection. As @Sigma helpfully pointed out to me, 31 is officially the boundary of “30’s” not 30, so I’m gonna take this year as being my “friendly match” with my 30’s and hopefully take this year a bit more wisely. What follows is a vaguely structured stream of consciousness, more for my benefit than anyone else’s. If you want a wee window to see what’s behind the beard, read on. If you’re expecting anything revolutionary, disruptive or surprising, you’re gonna be disappointed… ...

May 17, 2019 · Andrew Bolster

Unfeeling Fire

This is an approximate transcript from my July 2018 talk at Digital DNA’s AI NI Community Panel on wether the use of AI in defence and surveillence was inherently evil Yes, It’s been sitting in my drafts folder for months because I completly forgot about it, sorrynotsorry Hello folks, I’m Andrew Bolster, most everyone calls me Bolster. And nobody calls me Doctor. I’m a Data Scientist at Alert Logic, a cyber security firm based Texas but with a research office in Weavers Court where we monitor, analyse and identify malicious and suspicious internet activity, protecting thousands of companies with advanced sequence and pattern matching sensors deployed across the world. ...

October 23, 2018 · Andrew Bolster

Daily Dated Untitled Jupyter Notebooks

I am a heavy user of Jupyter Notebook, both personally for wrapping my head around Open Data, professionally for analysis and reporting, and for education/presentations. So am very comfortable with just spinning up new notebooks all over the show. However, this ends up looking like this… Less than informative and impossible to work out WTF I was doing. Helpfully, there’s a way to change it. In your jupyter_notebook_config.py file (Normally in ~/.jupyter), add the following somewhere sensible ...

October 22, 2018 · Andrew Bolster

Hackaday Unconf Dublin Talk: Socially Accessible Computing

Intro As part of the fantastic Hackaday Dublin Unconference in the Project Arts Centre over this past weekend, I got to speak about a project I’ve been gently pushing for several weeks now; boxes of laptops for people and community groups to use rather than cap-ex-ing any more pointless under-scoped under-utilised computer labs for everywhere. Comments/Collaboration/Assistance more than welcome Money even more welcome. Video Presentation Links Presentation Proposal Doc Hackaday.io Project Transcript This is the first time I’ve used a Mac for longer than 30 seconds in… ever so; plugging dongles and things in and the screen not exploding and creating loads of extended desktops all over the place is very very strange. ...

April 9, 2018 · Andrew Bolster

My Basic (Python) Data Science Setup

After last weeks return to posting, I thought it was time to do something vaguely useful (and actually talk about it) so I’m tidying up a few meetup sessions I’ve presented at into a series of Basic Data Science (with Python) posts. This is the first one and covers my Python environment, the Jupyter notebook environments I use for analysis, and some on the Plot.ly graphs and RISE / Reveal.js methods I use to turn those notebooks into presentations. ...

October 24, 2017 · Andrew Bolster

Legal Considerations for Trusted Defence Autonomy

This is another short extract from the Thesis that I thought was particularly relevant given recent news coverage of the dangers of autonomy and AI, particularly in the field of “killer robots”. Legal Considerations in Design Trust If there is one key feature of the application of robotics and autonomy to the defence field that separates it from applications in commercial and civil fields, it is the potential direct impact on life and safety. ...

September 28, 2017 · Andrew Bolster

Human Factors related to Trusted Operation of Autonomous Systems

Preface It’s nearly a year to the day since I passed my Ph.D Viva (And since I last updated the blog…), so I thought it’d be fun to very-gently tidy up one of my appendices that’s a bit relevant to current stories about the end of the world and machines taking over and such. It’s a piece of work that I enjoyed researching and had originally had as a significant part of the main thesis, but it just didn’t fit in anywhere sensible, so it got stripped to it’s bare minimum and kicked to the end. ...

September 21, 2017 · Andrew Bolster

Git Split Repository With Commit History

Thesis submitted, Viva cleared (with minor corrections) but this post isn’t about all that… Simple one; how do you go from one monolithic project repository to multiple respositories without losing all that tasty tasty commit history? #! /bin/zsh # # git_split.sh Current_Repo username new_repo {list of files/folders you want to keep} # Copyright (C) 2016 bolster <[email protected]> # # Distributed under terms of the MIT license. # BASEDIR=$1 INITDIR=`pwd` NEWREPO="[email protected]:$2/$3.git" shift 3 FILTER_ARGS=$@ TMPDIR=`mktemp -d -t ${BASEDIR}_XXXXXXXXX` echo $BASEDIR $TMPDIR $FILTER_ARGS cp -ra $BASEDIR/. $TMPDIR cd $TMPDIR git filter-branch --index-filter "git rm --cached -qr --ignore-unmatch -- . && git reset -q \$GIT_COMMIT -- $FILTER_ARGS" --prune-empty -- --all && git repack -a -d -f --depth=250 --window=250 && git remote set-url origin $NEWREPO && git gc && git push -u origin master ls -latrh cd $INITDIR rm -rf $TMPDIR YMMV, IANAGG, No refunds, Safety not guaranteed ...

October 17, 2016 · Andrew Bolster