I mostly write about programming in Python (and sometimes, Julia) for Data Visualization and Data Science but occasionally I stray into other areas of science, technology and even a bit of philosophy.

For example:

Upcycle Your Old PC With Free Raspberry Pi Software

If you’d like to know when I publish new articles, please click the link below, or on my profile page, or subscribe to my free, occasional, newsletter here.

Data Visualization and Data Science


Using SQLite to store your Pandas dataframes gives you a persistent store and a way of easily selecting and filtering your data

Photo by Markus Winkler on Unsplash

The SQLite database is a built-in feature of Python and a very useful one, at that. It is not a complete implementation of SQL but it has all the features that you need for a personal database or even a backend for a data-driven web site.

Using it with Pandas is simple and really useful. You can permanently store your dataframes in a table and read them directly into a new dataframe as you need them.

But it isn’t just the storage aspect that is so useful. …


Citizen Science

There may be an asteroid heading our way — you could help find it. There may be potential treatments for Aids, Covid-19 or cancer — you could help identify them.

NASA’s OSIRIS-REx spacecraft studies asteroids — image courtesy of NASA

When Buzz Aldrin guided himself, and Neil Armstrong, to the surface of the moon on July, 20th, 1969, he was aided by a computer that was the first such device built with integrated circuits and, unsurprisingly, was the state of the art at the time.

That was over 50 years ago, so of course, you would expect computers to have got better. But how much? Ten times more powerful, 100 times, a 1000 times, perhaps. Maybe you’d be surprised to know that the smartphone in your pocket is 100,000 times more powerful than Aldrin’s computer.

Having a phone that is…


The AI that famously created an image of AOC in a bikini was behaving inappropriately but rationally

If you believe the AI that created male and female images from pictures of their heads, men typically wear suits, while women prefer low-cut tops and bikinis.

It’s been reported in the press that this is evidence that the future of AI is sexist. The argument being that because the internet is awash with pictures of scantily-clad females, AI will assume that this is normal.

A fair point? Not necessarily — the whole point of this research was to demonstrate the danger of inheriting biases from data that has been collected from human activity.

The experiment used the ImageNet library…


Customize your Pandas plots with off-the shelf style sheets - or design your own

mathplotlib styles — image by author

Web sites, publications and news sources all have their own styles. Take a look at the financial data published by, say, the BBC or The NewYork Times. Or polling data on Nate Silver’s FiveThirtyEight web site. They each have a clear and consistent look.

We are going to look at how we can achieve something similar with our Pandas charts and plots. First, by using the built-in styles that are available to us and then by looking at how we can create our own customizations.

The default style renders a line graph like the image, below. It’s a clean looking…


Don’t throw away that computer that’s too old to run Windows

The Raspberry Pi desktop — image by author

I hate throwing things away — especially if they still work. There are ways to dispose of old technology in an environmentally friendly way, but giving it a new lease on life is more fun.

Chances are that you have at least one old laptop or PC lying around, unused, in a cupboard or drawer. Maybe they used to run Windows Vista or even XP, and they don’t have the oomph for a modern operating system like Windows 10 or Unbuntu. They probably even struggle with running the original software they came packaged with.

So why don’t we fix them…


Data Visualization

Google Charts lets you create pleasing interactive plots but cannot read a Pandas dataframe directly. Here we create a simple Python Web App to combine the two technologies.

Image by author

Google Charts have been around for more years than I care to remember, so I think we can safely assume that it is a mature and stable technology.

It can also be used to create attractive charts and graphs.


How to analyse the sentiment of tweets using the VADER Python library

Photo by Chris Liverani on Unsplash

Sentiment Analysis, or Opinion Mining, is often used by marketing departments to monitor customer satisfaction with a service, product or brand when a large volume of feedback is obtained through social media.

Gone are the days of reading individual letters sent by post. Today’s customers produce vast numbers of comments on Twitter or other social media.

Such a large amount of data cannot be reasonably analysed individually, so what is produced electronically has to be analysed electronically.

There are two fundamental Sentiment Analysis solutions: first, there are rule based systems that use a lexicon of words and rules to classify…


The official Twitter statistics are great to see how well you are engaging with your audience but you can use Python to see how are others doing, too

If you use Twitter cards or adverts, you can get a very good idea of how people are engaging with your tweets from the official Twitter statistics. But what about your friends, your colleagues… your competitors? Just a little bit of Python code can help.

Imagine that you are a global news giant and are wondering just how well you are regarded by your audience compared with, say, CNN, or the BBC. One thing you might do is compare the level of engagement of their tweets and compare them to your own. You can’t see the same engagement statistics as…


Beautiful Soup is a great tool for extracting data from web pages but it works with the source code of the page. Dynamic sites need to be rendered as the web page that would be displayed in the browser — that’s where Selenium comes in.

Image by Author

Beautiful Soup is an excellent library for scraping data from the web but it doesn’t deal with dynamically created content. That’s not in any way a criticism — Beautiful Soup does precisely the job it is supposed to do and that does not include rendering the webpage as a browser would.

In order to get that dynamic content the web page must be interpreted by a browser so the Javascript that creates the dynamic content can do its work. But how do we get at the HTML code that is rendered by the browser? One answer is by using a…

Alan Jones

Technology, science and programming. Subscribe to my newsletter here: https://technofile.substack.com/ . Web page: https://alanjones.pythonanywhere.com/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store