Jason Robinson




Jason Robinson

Could lab-grown fish and meat feed the world – without killing a single animal?

#environment #science


Jason Robinson

Käärmeenpoikaseksi Andersille! | aTalent Recruiting – Nuorten ammattilaisten rekrytointi

#python #suomi #turku #helsinki


Jason Robinson

Back to #work! Almost 3 months away from work on holiday + parental leave. This will get some time adjusting to again.

Jason Robinson



Jason Robinson



Jason Robinson

Why is #Python Growing So Quickly?

tl/dr, data science is pushing the numbers but growth is throughout the field.


Jason Robinson

Testing #Socialhome #Python client shcli #snap package. Hello, world! This time in strict confinement :P

Jason Robinson

Testing #Socialhome #Python client shcli #snap package. Hello, world!

Jason Robinson

5 year old boy at daycare pointed at my shirt and said to his dad "Look, a Poké Ball!". And his dad said nothing.

What kind of parents do we have these days? Sad!

My reply was of course: "That's no Poké Ball!". Possibly a bit too defensively 😁

#starwars #pokemon #parenting

Jason Robinson


#linux #matrix

Jason Robinson


#Ubuntu <3 #Gnome

Jason Robinson

Backport of f-strings from #Python 3.6

Tempting... But kinda hacky:

 Include the following encoding cookie at the top of your file
 (this replaces the utf-8 cookie if you already have it):

 # -*- coding: future_fstrings -*-

And the author themselves has tagged it as such :D

Jason Robinson

#vcs #comics

Jason Robinson

#comics #harvey #irma

Jason Robinson

Any recommendations for web based translation tools for #opensource projects? Need to start thinking of translations for #Socialhome.

Jason Robinson

#Mastodon launches their #ActivityPub support, and a new CR! -- ActivityPub Rocks!



Jason Robinson

The #Brexit vote simulator. Flipping a coin was a good way to decide what happens to a generation!


Jason Robinson

#atheism #christianity

Jason Robinson


#Learn by doing, when learning about #Python or any other #programming language! Tutorials, books and courses are really only good for small talk material or to bring on an appetite.

This is where #opensource is a good weapon. #Contribute and learn real world skills.

Jason Robinson

Kalasatamassa juhlittiin omaa uutta puistoa

#kalasatama #helsinki


Jason Robinson



Jason Robinson

Still don't know what caused the weird network incoming peak and then climbing of RAM usage on my server. The process seems to of died off before the OOM killer got to it. Can't find any good pointers in logs to what app could have caused it.

At least I finally had a reason to enhance my monitoring. Previously I've already had CPU, memory, disk, network etc basic graphs coming out, but nothing application specific. Now I've added a second collection of graphs to my Facette monitoring system with application specific graphs. Now I get CPU, memory and process counts for each application, database or interpreter (like Python, Node, etc) separately, and also #PostgreSQL database size for each application I have. These are all collected by collectd (processes and postgresql plugins).

These should give better weapons to start narrowing down what exactly misbehaved in a similar situation in the future.

#sysadmin #linux #monitoring

Woah, funky server happenings. *goes investigate* ...

Jason Robinson

Woah, funky server happenings. goes investigate


Jason Robinson

Making #Socialhome pre-cache streams content id's in #Redis for each user. Going to have super fast stream loading 😍 Basically something like this:

  • On save -> push to a Redis ordered set for each user for each stream the content ID
  • On stream load, pull out X items from the ordered set in reverse order
  • If we have enough items -> fetch objects from DB and render
  • If we need more items, collect enough using normal queryset filters (slow, current method) -> fetch objects from DB and render

I tried using a Redis List at first, but I couldn't figure out how to make "load more" work with that. If the client says "I want all after item X" then I have to pull out X items from the Redis list after that item. But ordered sets are perfect since they have unique members and items can be neatly pulled out in order from either direction.

Actually the Socialhome streams are not even slow at the moment. But doing this pre-caching allows for any kind of complex calculations to be made for custom streams. A custom stream could for example be "all by content + content with tags #foo or #bar + content in French language + content with images". All the calculation happens on write time, keeping reads super fast.


Jason Robinson

I have a method called get_stream_key.

I've typoed it twice already as get_steam_key :(

Jason Robinson