Blog posts

28 Posts

PyPi web API

One of those things that comes up from time to time is that you want to be able to find out some information about a package on PyPi. It…

Published on May 12th, 2020 by Janis Lesinskis.

Updating your setup.py files to the newer format

One of the not so nice things about legacy installable python packages is the executable nature of setup.py files. This means amongst other things that you can't reliably determine the contents of some setup.py files without arbitrary code execution. This is what led to PEP 518 which specified a declarative metadata format that can be stored in easy to parse file. Updating is a pain though, but thankfully there's some tooling that makes this easier as I found out recently.

Published on May 11th, 2020 by Janis Lesinskis.

Stringly typed functions

Over my career I've done a lot of work with distressed systems, these are the sorts of projects that have such substantial issues with the…

Published on March 28th, 2020 by Janis Lesinskis.

One percent a day

Making a 1 percent improvement each and every day will make an enormous impact at the end of a year. The way in which this works is not…

Published on March 24th, 2020 by Janis Lesinskis.

How coronavirus is impacting our business

One of the questions we have been asked amidst the recent coronavirus pandemic is how our business will be impacted. Because we are a…

Published on March 16th, 2020.

Happy leap day!

Happy Leap day! Today we celebrate keeping the astronomical year in line with the calendar year by inserting an extra day into our calendars…

Published on February 29th, 2020 by Janis Lesinskis.

How to get the most from consultants when data is involved

We do a lot of work on Machine learning and optimization for various organizations. A very common situation is that a client comes to us…

Published on February 18th, 2020 by Janis Lesinskis.

We now have tag summaries

You may have noticed on the posts in our blog that we have tags that represent the type of content in each post. Recently we added the…

Published on January 6th, 2020 by Janis Lesinskis.

Is your business a tech company?

Whether we're hailing a ride, ordering dinner to our door or shopping online, we buy from businesses that call themselves tech companies almost every day. But what really makes a tech company, and how do you know if you are one? Today, we'll explore what it means to be a tech company in 2019 and beyond.

Published on December 26th, 2019 by Allison Smith and Janis Lesinskis.

Running pip as a Python module

Since Python 3.4 you have been able to run pip as though it were a Python module, this actually prevents a variety of annoying issues from occurring.

Published on November 3rd, 2019 by Janis Lesinskis.

Miswanting: What it is and how to avoid it

We humans like to believe that we know what we want, and will continue to want those things in the future. But sometimes, that isn't the case and we make an inaccurate prediction about how and what we'll feel when we finally get that thing - we miswant something. So, what exactly is miswanting? How do we avoid it, and the subsequent impacts of a poor prediction or bad decision? We'll cover that in this post.

Published on September 4th, 2019 by Allison Smith and Janis Lesinskis.

5 problems process automation can solve

If you've ever spent an entire day at the office slogging through a mountain of paperwork or felt your eyes glaze over while staring at another simple customer inquiry on your screen, you know the feeling of wishing you could be doing almost anything else. Lucky for you, you can be. You can likely solve some of your most annoying problems with process automation. In our last post, we delved into some truths and myths about process automation. In this one, we'll explain how automating your processes can help you get to inbox zero, respond to customer feedback, deploy software and more.

Published on August 21st, 2019 by Allison Smith.

6 truths and myths about process automation

There's a lot of information (and some hype) out there about what process automation can do for your business. How do you separate fact from fiction? In this post, we'll review some of the most common truths, myths and misconceptions business owners have when they start to consider automating their own processes.

Published on August 14th, 2019 by Allison Smith and Janis Lesinskis.

Why you shouldn't use 100 percent of your time

Do you ever look at your calendar and wonder where the week (or month) went? Thinking back, you may be startled that you've become one of…

Published on August 7th, 2019 by Allison Smith and Janis Lesinskis.

A day in the life of a package maintainer

I was bumping some versions for the Persephone project today to try remove some security issues from the project dependencies. Package…

Published on June 28th, 2019 by Janis Lesinskis.

CPython internals talk at Melbourne Python Users Group

On Thursday I presented a talk about how CPython manages memory at the Melbourne Python Users Group. After introducing the notion of a…

Published on November 17th, 2018 by Janis Lesinskis.

We now have an RSS feed

We now have an RSS feed for this website!

Published on July 29th, 2018.

Developer Hegemony: The Future of Labor

A review of Erik Dietrich's book titled Developer Hegemony: The Future of Labor.

Published on July 22nd, 2018 by Aapeli Vuorinen.

A couple of questions about mypy

Last night Robbie Clarken presented a great talk about Mocking and how it fits in with testing in general. There were a few questions he had over email about how mypy could be used in addition to Mocking to get better coverage of issues with parameters in function calls being tested. Seeing as this is helping him with a real process we agreed that there's value in blogging this so a wider audience can get exposure to these techniques.

Published on July 20th, 2018 by Janis Lesinskis.

Python's __hash__ function is not a cryptographic hash

You may have noticed that Python has an internal hash method, here’s why it is not suitable as a cryptographic hash and some suggestions for alternatives if you do need a cryptographic hash.

Published on July 14th, 2018 by Janis Lesinskis.

This site is now open source

Like what you see here? Wonder how this site loads so fast? Now you can check out the source code yourself!

Published on July 10th, 2018.

Demystifying the blockchain

Introduction In this post we'll discuss the main building blocks of blockchain technology. We'll introduce concepts such as transactions…

Published on July 3rd, 2018 by Aapeli Vuorinen.

Tensorflow serving now officially supports python3

Recently we have been using a lot of Tensorflow in projects. As far as libraries go it's really quite nice, however it's not a native Python…

Published on June 26th, 2018 by Janis Lesinskis.

GDPR regulations are now in force

The General Data Protection Regulation (GDPR) came in to force on May 25th, if you do business in the European Union (EU) this likely impacts you.

Published on May 26th, 2018.

Get HTTPS on your site for free!

Now that Letsencrypt is offering free certificates in an easy to use way there's really no excuse for not having HTTPS on your site.

Published on May 20th, 2018 by Janis Lesinskis.

Associative mappings in language design

We have been working on projects in JavaScript and Python a fair bit lately. In the past we ported a few legacy PHP apps over to newer…

Published on April 23rd, 2018 by Janis Lesinskis.

Site relaunch

We have re-launched the site with a new technology, Gatsby.js. We did this for a few reasons, most notably that we were actively searching…

Published on April 21st, 2018.

Improving the Persephone library

Recently we have been collaborating with Oliver Adams. He is a computer science researcher who has done some very interesting work in the…

Published on February 21st, 2018.