Pete Rai's Blog

Welcome to my blog

On this site, you will find demos of various things I have released on GitHub. I’ll try and dump as much stuff here as I can, but life’s a busy thing you know. Also, to be fair, most of the code I produce these days belongs to my employer - so can’t share any of that (see my LinkedIn profile for information about my professional projects). Nevertheless, over time you will see a pretty eclectic mix of random projects parked here.

Enjoy!

All Feedback Welcome

Egham Live

A comprehensive, live information service for the people of Egham. Including a level crossing predictor, train movements, weather, news, tweets, road information and more.

Live Website

Can Machines Think Like People?

Is ChatGPT thinking? If it is, then is it thinking like us? Perhaps the question itself is not correctly formed. Given the things we are seeing AIs do and their potential going forward, what then does it even mean to be human.

In this presentation I consider the question “Can Machines Think Like People?”. That is, can they become capable of creativity, intuition, emotion and original thought.

This question, which for so long was an abstract thought experiment, will soon become one of the most pressing issues of our time.

In the session, I cover the history of thought and analysis on this topic. From historical perspectives from the likes of Aristotle and Descartes, to modern thinkers like Turing and Penrose. I cover the major arguments, both for and against.

I don’t have the answer - but hopefully I can equip you with the background and context needed to make sense of the developments which inevitably will arise in the coming months.

Video Presentation

Android Automate

This node package lets you automate tasks on any Android device using simple, flexible function chains. You can use it to perform actions on your device in place of a human user.

It is extensively documented and contains lots of small samples to help get you started. For example, there are fun samples to swipe through and screenshot TikTok videos and another to read and send WhatsApp messages.

One large demonstration project is also included. A script which automatically and wirelessly plays the fun puzzle game FlowFree.

GitHub Project NPM Registry Listing Demo Video Demo Project

Machine Learning for Girls

The gender balance within IT is a disaster. However, the shift in focus to machine learning creates an opportunity, since the balance in Maths is better than in Computer Science.

At this event, we hosted girls aged 17 and 18 who are taking A-Level maths to brief them on ML and AI and explain why this might be a great career choice for them. Also, to explain why these new approaches mean that our industry needs to urgently rebalance those who contribute.

Introductory Presentation

Towards Computable Epistemology

How can we tackle the most pressing problem in knowledge management today - misinformation, disinformation and fake news? In this video, I outline why the search for absolute "truths" is a fools-errand and why the whole process of "fact-checking" is not the best approach.

Instead, I outline four key areas for epistemological data processing that would more readily allow a computer to understand and surface signals; such that readers can make more nuanced determinations about the validity of information presented to them.

Don't get put off by the title, I step through the area slowly. Along the way, I provide a good overview of areas such as computational semantics and ontological data processing. Also, I cover the tricky topics of trust and consensus.

Video Presentation

Codepen Demos

Here are some UX components I built to help provide a bit of pizzazz to a website. Coverflow, card flipping, image wheels, text rollers, etc. Have a play and feel free to use in your own web developments.

My Codepens

Words of our Culture

This project is a linguistic analysis of the utterances within all the great English language movies, from the birth of sound cinema to the present day.

The main output of this project is a visual model of the words which most characterise a given movie and, correspondingly, the movies which most align with a given word.

GitHub Project Visualisation Index Page Documentation

MyTrain Live

A work in progress live train information service. Users can enter any direct train route in the United Kingdom and see live information about train departures and delays.

Once they have entered their regular routes, they can then just bookmark the page to get instant and up-to-date information anytime in the future.

Live Website

Mornington Crescent Game Archive

Over ten years in the making! A detailed record of every single game of Mornington Crescent that has ever been played, since its inception in late August 1978 to the start of 2020.

This is the Wisden of Mornington Crescent.

GitHub Project The Game Explorer

Node SkyGnome

This is a node module which connects, reads and interprets the Sky Gnome protocol.

You can use it to connect to any standard, retail Sky set-top-box and get lots of dynamic, contextual, JSON about the current channel, programme and the box state.

GitHub Project NPM Registry Listing

iPhone Controller

I've written some software which can remotely (and wirelessly) connect to an iPhone and analyse its screen in real time. Lots of cool stuff in there like AirPlay, Tesseract, XPath, Regex, Lexical Analyser, Amazon Polly, etc.

By way of an example, I've created something which can play along to the popular mobile trivia game QuizUp. You can see a demonstration in the video linked below.

I will check-in all the source code in GitHub in the coming weeks. It's a bit nascent right now and needs some organisation and tidy up first.

A QuizUp Play-A-Long Demonstration

A Bubbles Visualisation in p5.js

A bubbles visualization for p5js. A fun way to represent quantitative data as a set of bubbles which grow, move and collide on the screen. The underlying mechanism is in a seperate script which is easily reusable by others working in p5js. You will find details of how to use it in the GitHub readme. Also there, I have written up an explanation of some of the maths and physics that underlies the visualization.

GitHub Project A Movies Demo A Populations Demo The Maths Explained

Random Technology Generator

Have you got an important technical meeting coming up where you really need to shine? Are you running short on ideas for your next project? Do you need to bolster your resume? Have you always wanted to submit a patent, but are in need of a novel idea? Do you want to shut up that tech-bully in the office? Fear not, just click the link below to get your own personal random technology.

Generate Some Random Tech

jQuery SlideIn

A slide-in panel for jQueryUI that works from all four sides. The panel overlays your main page and can be slid in on a mouse-click or mouse-hover. There are lots of other options for customisation such as a grab handle, slide speed, opacity, peeking-in etc. The plugin is excellent for housing user options which are only for occasional use, especially overlaid onto whole screen UIs that demand the entire screen real estate.

GitHub Project A Basic Demo A Fuller Demo

LocateTV

LocateTV was a great website which helped people find their favourite movies and shows on TV, online and on DVD. I lead the development team for the site and we took it from idea to launch in nine months.

It ran for many years and eventually was clocking-up more than four million unique visitors a month. We had every English language movie and TV show ever made - with great data quality. We also had indexed every TV station in the USA and UK, as well as all the major online video portals.

Unfortunately, the site was closed down as it was deemed non-strategic. You can still see videos of how it worked at the YouTube link below. Pay special attention to the video which shows how we were out-gunning all the major networks for SEO on their own shows!

A white-labelled version of the site is still up and running as the main listings service for Time Warner Cable.

Videos of LocateTV White-Labelled running at TWCC Easter Egg

Amazon Echo : Boiler Plate Skill

A simple to use, boilerplate template for a new Alexa skill for the Amazon Echo. It’s not really useful in its literal form, as it’s real purpose is to show people how easy creating a custom skill can be. It basically allows your Echo to respond to utterances like “How does a duck go?” and Echo responds “Quack, Quack”. It does this for a range of animals. It also responds to “Roll a Dice”.

GitHub Project

Amazon Echo : Sky Plus Skill

A connection between Amazon Echo and Sky Plus in the UK. Using this project you can create a new Alexa skill which can respond to a range of requests to control you SkyPlus box. It does this by posting key sequences directly to the box from the AWS cloud.

Here are the types of utterances this code can recognise and respond to. In each case, the response comes after the channel change. Many more combinations than this are possible using this code.

  • "Show me wildlife programs" » This is Tiger Trail on the Discovery Channel. It started 12 minutes ago.
  • "Put on a game show" » You’re watching Family Fortunes on Challenge. It’s been on for 22 minutes.
  • "Switch over to BBC 1" » Now tuned to EastEnders on BBC 1. It kicked off 14 minutes ago.
GitHub Project A Video Demonstration