Content tagged with "Open Source"

Over the last 15+ years I’ve worked with a bunch of different web servers from Apache to Lighttpd to nginx. I like a hassle free life so while I’m typically an early adopter, I don’t tend to move on a whim unless I’m seeing a lot of positive feedback. A lot of my peers have been recommending Caddy for a while and I recently tried using it at work which finally convinced me to make the switch.

Read more...

This week I spotted a social media post about wakapi which is an open source implementation of the WakaTime time tracking server software (which up until that point I hadn’t heard of). The thing that interests me about these solutios that they’re kind of developer focussed and tell you things like which project you had open, what programming language(s) you spent most time reading/writing and so on. Wakatime also have nice easy install-and-forget plugins for a BUNCH of IDEs including VSCode (where I spend most of my professional working day), NeoVIM, PyCharm and others. All of the plugins have open source (generally seems to be BSD 3-clause) licensing.

Read more...

A person overwhelmed by boxes by Cottonbro

A person overwhelmed by boxes by Cottonbro

Note: If you don’t want to read the blah-blah context and history stuff then you can jump to the recommendations

The Problem

The need for virtual python environments becomes fairly obvious early in most Python developers’ careers when they switch between two projects and realise that they have incompatible dependences (e.g. project1 needs scikit-learn-0.21 and project2 needs scikit-learn-0.24). Unlike other mainstream languages like Javascript(Node.js) and Java (with Maven) where dependencies are stored locally to the project, Python dependencies are installed at system or environment level and affect all projects that are using the same environment.

Read more...

A beige analog compass by Ylanite Koppens

A beige analog compass by Ylanite Koppens

Introduction

Open machine learning research is undergoing something of a reproducibiltiy crisis. In fairness it’s not usually the authors’ fault - or at least not entirely. We’re a fickle industry and the tools and frameworks were ‘in vogue’ and state of the art a couple of years ago are now obsolete. Furthermore, academics and open source contributors are under no obligation to keep their code up to date. It is often left up to the reproducer to figure out how to breathe life back into older work.

Read more...

A jar of pickles by Ksenia Charnaya

A jar of pickles by Ksenia Charnaya

I recently came across an infuriating problem where an MLFlow python model I had trained on one system using Python 3.6 would not load on another system with an identical version of Python.

The exact problem was that when I ran mlflow models serve -m <url/to/model/in/bucket> the service would crash saying that the model could not be unserialized because ValueError: unsupported pickle protocol: 5.

Read more...

MLFlow is a powerful open source MLOps platform with built in framework for serving your trained ML models as REST APIs. The REST framework will load data provided in a JSON or CSV format compatible with pandas and pass this directly into your model. This can be handy when your model is expecting a tabular list of numerical and categorical features. However it is less clear how to serve with models and pipelines that are expecting unstructured text data as their primary input. In this post we will explore how to train and then serve an NLP model using MLFlow, scikit-learn and spacy.

Read more...

I spent several hours trying to get to the bottom of why tmux was crashing as soon as I ran it on Fedora. It turns out there’s a simple fix. When tmux starts it uses /dev/ptmx to create a new TTY (virtual terminal) that the user can interact with. If your user does not have permission to access this device then tmux will silently die. A good way to verify this is to try running screen too.

Read more...