New help page: Playwright

We’ve had an increasing number of people asking us how to use Playwright on PythonAnywhere. Playwright is a browser automation framework that was developed by Microsoft; like the more-established Selenium it’s really useful for testing and web-scraping, and it’s getting a reputation for being a robust and fast library for that kind of work.

Getting it set up to run on PythonAnywhere is pretty easy, but you need to do the installation slightly differently to the way it’s documented on Playwright’s own site; user hcaptcha on our forums worked out what the trick was to making it work, so now we have a new help page documenting how to do it.

CPU resetting issues report: 3 - 5 May 2024

tl;dr

We have a number of background processes that execute periodically on our systems; one of these is the one that resets the amount of CPU used, so that you get a fresh allowance every day. Early in the morning of 2024-05-03, on our US-hosted system, that service failed silently.

Unfortunately, we only realized it was not working on the morning of 2024-05-04. Putting a fix in place required another day.

At the same time, our load balancing system was experiencing a DDoS attack by malicious bots, which led to an overall decline of performance.

For some of our users, who noticed the CPU issue, these two separate events correlated, leading to confusion.

These issues appeared only on our US-based system – users on our EU system were not affected.

Read more…

Five steps to create your own PythonAnywhere AI guru, on PythonAnywhere

AI is the coolest thing in tech right now, but getting an AI-powered website up and running can seem pretty daunting. Luckily, there are a bunch of useful tools to make it easier.

A while back we started seeing if we could use large language models to provide a helpful assistant for PythonAnywhere; we found that the capabilities (and perhaps more importantly, our own AI skills) aren’t quite there yet, but it was a lot of fun, and it felt like it would be a good basis for a new tutorial :-)

So, would you like to create your own personal PythonAnywhere guru – albeit one that occasionally gets things wrong or makes things up? This tutorial shows you how to set up a website that uses OpenAI’s libraries, but can answer questions about our site with more in-depth knowledge than ChatGPT has on its own. We’ll also touch on how to run much simpler AI models on PythonAnywhere itself, without needing to use external APIs. It’s meant as a jumping-off point – you’ll build something and understand it well enough that you can start customizing it to do something you want to do.

Read more…

Outage report 9 October 2023

tl;dr

On 2023-10-09 we had an unplanned outage. While we were preparing our systems for a scheduled system update the following morning, we faced some issues. These in themselves would not have caused problems, but responding to them resulted in the accidental termination of the old, running cluster’s machines at 15:22 UTC. To avoid additional downtime, we decided to do the planned update to recover the service. It took longer than expected, but we were able to get all hosted websites up and running by 17:30 UTC; unfortunately always-on tasks took longer and were only fully working by 21:42 UTC.

Read more…

We're hiring!

Now that we’re part of Anaconda, we’re growing the team so that we can do more, faster :-)

Right now we’re looking for a senior engineer with lots of experience in backend stuff, but an interest in working across the full stack from obscure kernel wrangling, custom Linux container-based virtualization, Django and Flask on the mid-tier, up to TypeScript and React on the front end. There’s even a (tiny) bit of Lua thrown in there.

We’re an Extreme Programming team so you’ll be pairing with other team members from day one. All work is remote (bar occasional team meetups), and we can currently hire people based in the UK or in Germany.

There’s more detailed information about the role on the official Anaconda jobs board, and you can also apply there – or you can also drop us a line at jobs@pythonanywhere.com.

Slightly late announcement of latest updates

Updated on 25 August 2022 (US) and 9 August 2022 (EU)!

Here is a slightly delayed (and short) run-down of the new stuff that we deployed recently.

The main addition for this update is a new system image. It’s name is “haggis” and it has Python 3.10! There are also a number of new Python packages installed. See our batteries included page for a full list. There are also many new system libraries installed. You can learn about system images and how to change yours here.

We have also:

  • Updated Jupyter notebooks - updated notebooks are only available when you are running the new “haggis” system image
  • Fixed a number of security issues
  • Fixed various bugs

Our Commitment to Providing Free Accounts

Managing fraud and abuse of free products is a challenge that nearly every SaaS company contends with, but too often the perceived solution is to simply end free accounts. We’ve seen this happen time and again across the open-source ecosystem, most recently from Heroku, and we fear this comes at the detriment of the community.

We believe we’ve found a better way to solve this problem and are therefore committed to maintaining free PythonAnywhere accounts for the foreseeable future. Yes, this does cost us money and we do need to handle fraud and abuse, but over the 10 years we’ve been running we’ve found that the benefits to the community and to the service itself outweigh the costs.

Read more…

We are hiring!

As you probably already know, PythonAnywhere is now part of the Anaconda family! As we expected Anaconda’s investment in PythonAnywhere will allow us to expand and improve to better serve our users. So we’re starting to grow our team, and first time since 2014 we’re officially hiring! If you are an experienced frontend developer who wants to get their feet wet with the backend stuff, we might be looking for you.

Read more…

Anaconda Acquisition FAQs

In June 2022, Anaconda announced its acquisition of PythonAnywhere. This acquisition expands Python team collaboration in the cloud and adds capabilities designed to unite teams and create access to more robust cloud resources. We’ve compiled the following list of frequently asked questions to aid users in navigating the transition. – Will this affect my PythonAnywhere account? For now, it won’t! There are no plans to change PythonAnywhere user accounts, and you can continue to use yours as usual without interruption.

Read more…

File storage security update

Last Wednesday, a security researcher working under our bug bounty program found a way that they could access one account’s file storage from another by using the “Dirty Pipe” Linux kernel vulnerability. We put a mitigation system in place to stop that from happening, and then on Thursday we were able to patch the underlying issue. On Friday, another researcher found a similar issue, which the mitigation system we’d put in place originally made relatively harmless – we were able to patch that one within minutes.

Read more…