COVID-19 update: PythonAnywhere is now all-remote
Scary times. We hope everyone reading this is well and keeping safe!
We thought it would be a good idea to tell you how we’re managing the current
crisis at PythonAnywhere. We switched over to remote working last Thursday, 12 March;
there are obviously private and public health reasons why that was a good idea,
but there’s a reason specific to us, which we thought would be worth sharing.
How to use shared in-browser consoles to cooperate while working remotely.
One of the challenges of remote work is when you need to work together on one thing.
Our in-browser consoles are one of the core features of our service. Almost since the beginning, PythonAnywhere
has been able to share consoles – you entered the name of another user or an email
address, and they got an email telling them how to log in and view your Python
(or Bash, or IPython) console. If you use an email, the person you invite doesn’t have to be PythonAnywhere registered user.
System updates on 3 and 5 March
On 3 March we upgraded our EU-based system at
eu.pythonanywhere.com to the latest version of our code, and this morning (5 March) we upgraded our US-based system at
www.pythonanywhere.com to the same version.
Everything went very smoothly, and all systems are working well. There were a bunch of infrastructure-related changes in this update:
- We’ve made some improvements to the beta of our new virtualisation system, which is currently in public beta. More about that next week, we hope!
- We’ve updated almost all of our machines to the most recent AWS Intel server types; the remainder will be upgraded over the coming two weeks. CPU geeks will be glad to hear that we’re going to start experimenting with AMD. We might also consider ARM for our own internal systems, though right now it feels like sticking with x86-64 for the servers where our users run their code is the best option (let us know if in the comments if you disagree!)
- A certain amount of code that was (somewhat embarrassingly) still Python 2 was upgraded to Python 3. blush
As usual, there were also a number of minor tweaks and minor bugfixes.
Onwards and upwards!
The PythonAnywhere newsletter, January 2020
So, we have managed to break another record for our longest period ever between two monthly newsletters. It has been sixteen busy months between September 2018 and now, so we have made 2019 an official Year Without a Newsletter.
Happy New Year, and a warm welcome to the January 2020 PythonAnywhere newsletter. Hooray!
Here is what has happened since our last one.
Python 3.8 now available!
If you signed up since 26 November, you’ll have Python 3.8 available on your account – you can use it just like any other Python version.
If you signed up before then, it’s a little more complicated, because adding Python 3.8 to your account requires changing your system image.
System update on 21 November 2019
This morning’s system update went smoothly; some websites did take a bit longer than we expected to start up afterwards, but all is well now.
There are two big new features that we have introduced which are going through some final post-deploy tests before they go live – a new system image (called
fishnchips) to support Python 3.8 and to add on a number of extra OS packages that people have been asking us for, and an update to our virtualization system that will fix a number of problems with specific programs. We’ll be posting more about those when they’re ready to go live. [Update: we’ve posted about the fishnchips system image here.]
But there were a number of other things we added:
- We’ve added the ability to restart an always-on task without stopping it, waiting for it to stop, and then starting it again – there’s a new “restart” button on the far right of the tasks table.
- You can now temporarily disable a website without deleting it – the button is near the bottom of the “Web” page.
- And, of course, the normal set of minor tweaks, bugfixes, and the like.
EU migrations are now live!
In brief: if you have an account on
www.pythonanywhere.com you can have it
eu.pythonanywhere.com – just let us know via email to firstname.lastname@example.org.
If you’d like to know more about what that means, read on…
Our new CPU API
We received many requests from PythonAnywhere users to make it possible to programmatically monitor
usage of CPU credit, so we decided to add a new endpoint to our
Using our file API
Our API supports lots of common
PythonAnywhere operations, like creating and managing consoles, scheduled and
always-on tasks, and websites. We recently added support for reading/writing
files; this blog post gives a brief overview of how you can use it to do that.
System update on 26 June
Our system update on 26 June went pretty smoothly :-) There were a number of useful changes:
- Our API now supports uploading, downloading and listing files in your private file storage. There is another blog post about this.
- We now have an official system in place to migrate your MySQL data between database servers, which means that if you’re on an older version, we can move you over to 5.7. Let us know if you’re interested!
- Our system for migrating user accounts from our US-based system at
www.pythonanywhere.com to our EU-based one at
eu.pythonanywhere.com is almost finished – just a few final bugs to work out. We’ll post about this again when it’s ready to go live. Update: it’s now live.
We also pushed a number of bugfixes:
- A number of issues which meant that always-on tasks could lose access to the network have been fixed.
- Previously, if you tried to change the command for an always-on task that was disabled, you’d get an error – this has been addressed.
- Some HTTP libraries (which seem particularly common on IoT devices) put the port number in the host header on requests (eg. they send
www.somedomain.com:80 rather than
www.somedomain.com). This is perfectly valid HTTP, albeit uncommon, but our system failed to parse them correctly and would respond with a 404 error. We’ve fixed that.
There were also a whole bunch of minor UI tweaks and the like.
Right now we’re working on making sure that our billing system supports the Strong Customer Authentication (SCA) regulations that will come into force for all payments from European credit/debit cards this September; hopefully we can make this as seamless as possible for you.