Author 17 Posts
sangarshanan

sangarshanan

EuroPython Blog

Microsoft at EuroPython 2023

We’re thrilled to be a Platinum Sponsor of EuroPython again this year, happening from July 17th-23rd in Prague, Czechia. If you can’t make it in person, you can still attend the conference remotely, as EuroPython is a hybrid event this year!

Our team member: Steve Dower, will be giving talks during the conference:

Make sure you don’t miss them!  We’ll also be at the Microsoft booth talking about the hard work our teams have been doing to continue supporting the Python community, and to improve the experience for Python developers across our products over the past year.

For instance, Visual Studio Code, which has become the most used editor for Python developers in 2021, has a new and improved experience when working with Jupyter notebooks, a revamped test explorer via the Python extension, and now comes with new Python dev tools extensions (such as pylint, black and isort). We have also enabled a smooth and lightweight editing experience on the web with vscode.dev and github.dev, and a feature-rich one in GitHub Codespaces.

We have also improved Data Science workflows inside of Visual Studio Code. Polyglot notebooks now supports Python, allowing you to use multiple programming languages natively all in the same notebook in Visual Studio Code! No more needing wrapper libraries or magic commands to work with your favorite languages in the same notebook! With polyglot notebooks, each language in Polyglot Notebooks gets a first-class editing experience with language server support such as autocompletion, syntax highlighting, and signature help. Variable explorer now allows you to check values and share variables across all the supported languages.

Additionally, we have launched the Data Wrangler extension in Visual Studio Code. With Data Wrangler, you can seamlessly clean and explore your data in VS Code. It offers a variety of features that will help you quickly identify and fix errors, inconsistencies, and missing data. You can perform data profiling and data quality checks, visualize data distributions, and easily transform data into the format you need. Plus, Data Wrangler comes with a library of built-in transformations and visualizations, so you can focus on your data, not the code. As you make changes, the tool generates code using open-source Python libraries for the data transformation operations you perform. This means you can write better data preparation programs faster and with fewer errors. The code also keeps Data Wrangler transparent and helps you verify the correctness of the operation as you go.

In the machine learning and AI realm, Azure Machine Learning Visual Studio Code Web integration is now in public preview. VS Code for the Web provides you with a full-featured development environment for building your machine learning projects, all from the browser and without required installations or dependencies. And by connecting your Azure Machine Learning compute instance, you get the rich and integrated development experience VS Code offers, enhanced by the power of Azure Machine Learning. Furthermore, Prompt Flow for Azure Machine Learning is now in preview! Prompt Flow provides a streamlined experience for prompting, evaluating, tuning, and operationalizing large language models. With prompt flow, you can quickly create prompt workflows that connect to various language models and data sources. This allows for building intelligent applications and assessing the quality of your workflows to choose the best prompt for your case.

These are only some of the many things we look forward to chatting with you at EuroPython. But if you can’t make it there, no problem - you can always connect to us through our Discord channel.

Whether it’s in person or virtually, we all look forward to meeting you!

Kraken Technologies: How we organise our very large Python monolith

By David Seddon from Kraken Technologies.

Hi, I’m David, a Python developer at Kraken Technologies. I work on Kraken: a Python application which has, at last count, 27,637 modules. Yes, you read that right: nearly 28k separate Python files - not including tests. I do this along with 400 other developers worldwide, constantly merging in code. And all anyone needs to make a change - and kick start a deployment of the software that runs 17 different energy and utility companies, with many millions of customers - is one single approval from a colleague on Github.

Now you may be thinking this sounds like a recipe for chaos. Honestly, I would have said the same. But it turns out that large numbers of developers can, at least in the domain we work in, work effectively on a large Python monolith. There are lots of reasons why this is possible, many of them cultural rather than technical, but in this blog post I want to explain about how the organisation of our code helps to make this possible.

Layering our code base

If you’ve worked on a code base for any length of time, you will have felt the drift towards unpleasant complexity. Strands of logic tangle together across your application, and it becomes increasingly difficult to think about parts of it in isolation. This is what started happening to our young code base, and so we decided to adopt what is known as a ‘layered architecture’ where there are constraints about what parts of the code base can know about each other.

Layering is a well-known software architecture pattern in which components are organized, conceptually, into a stack. A component is not allowed to depend on any components higher up the stack.

Layered Architecture where dependencies flow downward

For example, in the above diagram, C would be allowed to depend on B and A, but not D.

The idea of a layered architecture is broad: it may be applied to different kinds of components. For example, you could layer several independently-deployable services; or alternatively your components could just be a set of source code files.

What constitutes a dependency is also broad. In general, if a component has direct knowledge of another component (even if purely at a conceptual level) then it depends on it. Indirect interaction (e.g. via configuration) is not usually seen as a dependency.

Layers in Python

In a Python code base, the layers are best thought of as Python modules, and dependencies as import statements.

Take the following code base:

myproject
    __init__.py
    payments/
        __init__.py
        api.py
        vendor.py
    products.py
    shopping_cart.py

The top-level modules and subpackages are good candidates for layers. Let’s say we decide the layers should be in this order:

shopping_cart
payments
products

Our architecture would thus forbid, for example, any of the modules within payments from importing from shopping_cart. They could, however, import from products.

Layering can also be nested, so we could choose to layer within our payments module like so:

api
vendor

There’s no single, correct way of choosing which layers exist, and in which order - that’s an act of design. But layering like this leads to a less tangled code base, making it easier to understand and change.

How we’ve layered Kraken

At the time of writing, 17 different energy and utility companies license Kraken. We call these companies clients, and run a separate instance for each. Now, one of Kraken’s main characteristics is that different instances are ‘the same, but different’. In other words, there is a lot of shared behavior, but also every client has bespoke code that defines their specific needs. This is also true at the territory level: there are commonalities between all the clients that run in Britain (they integrate with the same energy industry) that aren’t shared with, say, Octopus Energy Japan.

As Kraken grew into a multi-client platform, we evolved our layering to help with this. Broadly speaking, it now looks like this at the top level:

kraken/
    __init__.py
    
    clients/
        __init__.py
        oede/
        oegb/
        oejp/
        ...
    
    territories/
    	__init__.py
        deu/
        gbr/
        jpn/
        ...
        
    core/

The clients layer is at the top. Each client gets a subpackage inside that layer (for example, oede corresponds to Octopus Energy Germany). Below that is territories, for all the country-specific behaviour, again with territory-specific subpackages. The bottom layer is core, which contains code that is used by all clients. There is an additional rule, which is that client subpackages must be independent (i.e. not import from other clients), and the same goes for territories.

Layering Kraken like this allows us to make changes with a limited ‘blast radius’. Because the clients layer is at the top, nothing depends on it directly, making it easier to change something that relates to a particular client without accidentally affecting behavior on a different client. Likewise, changes that relate only to one territory won’t affect anything in a different one. This allows us to move quickly and independently across teams, especially when we are making changes that only affect a small number of Kraken instances.

Enforcing layering with Import Linter

When we introduced layering, we quickly found that just talking about the layering was not enough. Developers would often accidentally introduce layering violations. We needed to enforce it somehow, and we do this using Import Linter.

Import Linter is an open source tool for checking that you are following layered architectures. First, in an INI file you define a contract describing your layering - something like this

[importlinter:contract:top-level]

name = Top level layers
type = layers
layers =
    kraken.clients
    kraken.territories
    Kraken.core

We can also enforce the independence of the different clients and territories, using two more contracts (this time `independence` contracts)

[importlinter:contract:client-independence]
name = Client independence
type = independence
layers =
    kraken.clients.oede
    kraken.clients.oegb
    kraken.clients.oejp
    ...

[importlinter:contract:territory-independence]
name = Territory independence
type = independence
layers =
    kraken.territories.deu
    kraken.territories.gbr
    kraken.territories.jpn
    ...

Then you can run lint-imports on the command line and it will tell you whether or not there are any imports that break our contracts. We run this in the automated checks on every pull request, so if someone introduces an illegal import, the checks will fail and they won’t be able to merge it.

These are not the only contracts. Teams can add their own layering deeper in the application: kraken.territories.jpn, for example, is itself layered. We currently have over 40 contracts in place.

Burning down technical debt

When we introduced the layered architecture, we weren’t able to adhere to it from day one. So we used a feature in Import Linter which allows you to ignore certain imports before checking the contract.

[importlinter:contract:my-layers-contract]
name = My contract
type = layers
layers =
    kraken.clients
    kraken.territories
    kraken.core
ignore_imports =
    kraken.core.customers ->
    kraken.territories.gbr.customers.views
    kraken.territories.jpn.payments -> kraken.utils.urls
    (and so on...)

We then used the number of ignored imports as a metric for tracking technical debt. This allowed us to observe whether things were improving, and at what rate.

Ignored imports since 1 May 2022

Here’s our graph of how we’ve been working through ignored imports over the last year or so. Periodically I share this to show people how we’re doing and encourage them to work towards complete adherence. We use this burndown approach for several other technical debt metrics too.

Downsides, there are always downsides

Local complexity

At some point after adopting a layered architecture, you will run into a situation where you want to break the layers. Real life is complex, there are interdependencies everywhere, and you will find yourself wanting to, say, call a function that’s in a higher layer.

Fortunately, there is always a way around this. It’s called inversion of control and it’s easy to do in Python, it just requires a mindset shift. But it does lead to an increase in ‘local’ complexity (i.e. in a little part of your code base). However, it’s a price worth paying for a simpler system overall.

Too much code in higher layers

The higher the layer, the easier the change. We deliberately made it easy to change code for specific clients or territories. Code in the core, which everything depends on, is more costly and risky to make changes to.

As a result, there has been a design pressure, brought about partly by the layering we chose, to write more client and territory-specific rather than introduce deeper, more globally useful code into the core. As a result, there is more code in the higher layers than we might ideally like. We’re still learning about how to tackle this.

We’re still not finished

Remember those ignored imports? Well, years on, we still have some! At last count, 15. Those last few imports are the stubbornest, most tangled ones of all.

It can take serious effort to retrospectively layer a code base. But the sooner you do it, the less tangling you’ll have to address.

In summary

Layering Kraken has kept our very large code base healthy and relatively easy to work with, especially considering its size. Without imposing constraints on the relationships between the tens of thousands of modules, our code base would probably have tangled into an enormous plate of spaghetti. But the large scale structure we chose - and evolved along with the business - has helped us work in large numbers on a single Python code base. It shouldn’t be possible, but it is!

If you’re working on a large Python codebase - or even a relatively small one - give layering a try. The sooner you do, the easier it will be.

Kraken Technologies LTD's is sponsor of EuroPython 2023, check them out on https://kraken.tech/

EuroPython June 2023 Newsletter

Hey there 👋

We have a few updates to share! TL;DR version: Our programme has been finalised, remote tickets are up for sale and we have a whole bunch of fun events and workshops planned throughout the course of the conference.


📣 Programme

Our list of sessions with the selected talk, tutorials and posters are out now on https://ep2023.europython.eu/sessions.

Kudos to our programme team for curating the sessions and congratulations to all the speakers! We hope to see you soon in 🇨🇿 Prague.

Women In AI Workshop

We will have Women in AI run a half-day workshop for introducing the intuition behind machine learning along with a series of hands-on sessions to implement machine learning models using Pandas and Scikit-Learn Python libraries

They are looking for 2 extra mentors, Do help out if you can by filling this form: https://forms.gle/b2QysCaCsVW1j6fr5

More info on the event and registration is up on our website https://ep2023.europython.eu/wai

Humble Data Workshop

We are so happy to announce that Humble Data Workshop will be back on 17th July 2023 at EuroPython! We will teach beginners how to start with Python and Data Science by teaching them the basics of programming in Python, useful libraries and tools, such as Jupyter Notebook that help with data analysis.

Register now on https://ep2023.europython.eu/humble-data

Keynote

We have one more amazing keynoter to announce 🎉 !

Joanna Bryson

Joanna J. Bryson is a transdisciplinary researcher on the structure and dynamics of human- and animal-like intelligence. Her research ranges from systems engineering of Artificial Intelligence (AI), through autonomy, cognition, robot ethics, human cooperation on to technology policy and has appeared in venues ranging from a reddit to Science. She holds degrees in Psychology from Chicago and Edinburgh, and AI from Edinburgh and MIT. She has additional professional research experience from Princeton, Oxford, Harvard, and LEGO, and technical experience both in Chicago's financial industry and international management consultancy. Bryson is presently Professor of Ethics and Technology at Hertie School of Governance.

Joanna Bryson

🎙 First-Time Speaker’s Workshop

On 1st of June, our Mentorship Programme hosted its First-Time Speaker’s Workshop and a total of 35 people participated.

We had a very interesting discussion with experienced speakers from our community. We discussed a variety of topics starting from how to handle stress during a talk, tips for better preparation and benefits from speaking at conferences/meetups.

The recording of the event is here


Speaker Placement Programme

Our Speaker Placement Programme continues to grow! The first matchings were made and the Mentorship Programme is now focusing on connecting more of our mentees to local meetups and python events in order to gain more speaking experience.

If you are an organiser looking for more speakers take a look here: https://ep2023.europython.eu/mentorship#3-speaker-placement-programme

ℹ️ Call for Volunteers

We are happy to announce the call for on-site volunteers at this year's EuroPython in Prague.

EuroPython is in large part, organised and run by volunteers from the Python community and volunteers are responsible for making sure everything runs smoothly! We have a lot of different roles each with their own set of responsibilities and commitment. For a more detailed overview, please check out our volunteers page: https://ep2023.europython.eu/volunteers

If you are interested in joining us please fill out the form here: https://forms.gle/tmNgWU3rgLbPAVLC9.

🎫 Remote Tickets

EuroPython has had a very successful Remote edition for the past three years! We wish to continue this tradition and have an option for remote participation this year for those in the community who cannot make it in person.

With remote tickets, you can watch the live talks, keynotes & panels in all 6 tracks, engage in live text-based Q&A, and interact with speakers and other in-person attendees in chat channels and as always we provide open and free access to the livestreams of our conference talks

Remote tickets are up for sale on https://tickets.europython.eu/

More information on remote participation can be found on our website https://ep2023.europython.eu/remote

💶 Financial Aid

Our Financial Aid Programme received record-high applications this year and we are very proud to be supporting so many Pythonistas to attend the conference.

Financial Aid for Remote Tickets is open now! If you need support to attend the conference remotely, make sure to apply by 9 July 2023 on our financial aid pagehttps://ep2023.europython.eu/finaid

💸 Sponsorship

Sponsoring a conference like EuroPython would mean supporting the broader European Python community as our grants team has been helping out quite a few local organisations run their own Python events 🐍

We thank all the sponsors that have signed up so far this year 🤗. We still have 2 Diamond slots available so if you think you or your organisation might be interested, reach out to us!

More information on the available packages can be found on our website: https://ep2023.europython.eu/sponsor

🐍 PyLadies Social Event

We will have a PyLadies social event at EuroPython 2023 on 21st July 2023. The event is a fantastic opportunity to engage with other women in tech, expand your network, and share your experiences.

More information about the venue and registration is on https://ep2023.europython.eu/pyladies-social-event

🇨🇿 Pycon CZ

We are thrilled to announce that PyCon CZ 23 is just around the corner! It will be held between 15th and 17th of September in Prague in the beautiful ex-monastery Gabriel Loci.

As we gear up for this incredible event, we're looking for interesting proposals to make it even more amazing. We invite you to submit your proposals for talks, workshops or sprints and other sessions. Whether you're a seasoned Pythonista or just getting started, we want to hear from you! Share your unique experiences, innovative ideas and insights into the world of Python. This is your chance to showcase your skills and inspire fellow Python enthusiasts.

Register now at: https://cz.pycon.org/2023/cfp/.

🌞 Community Highlight

This time in our community highlight, We just wanted to take a moment to mention DjangoCon Europe 2023 that happened in Edinburgh, they were a part of EuroPython Society’s (EPS) Grants programme and had a very successful conference.

Also a shout out to Mia who is an active organiser of Pycon CZ for giving a wonderful lightning talk at DjangoCon:

She is also helping us in organising the conference, including the Pyladies Social event happening at EuroPython  2023.

Many thanks for all your help and efforts Mia 💖!

🐍 Upcoming Events

💥 Project Feature - Sympy

SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible.

Check it out: https://github.com/sympy/sympy

🥸 PyJok.es

$ pip install pyjokes
Collecting pyjokes
  Downloading pyjokes-0.6.0-py2.py3-none-any.whl (26 kB)
Installing collected packages: pyjokes
Successfully installed pyjokes-0.6.0
$ pyjoke
A good programmer is someone who always looks both ways before crossing a one-way street..

Add your own jokes to PyJokes (a project invented at a EuroPython sprint) via this issue: https://github.com/pyjokes/pyjokes/issues/10









EuroPython April 2023 Newsletter

Hey there 👋

With less than 70 days left until we gather together in Prague for EuroPython, here’s what’s been going on.

📣 Programme

Thank you to everyone who contributed to our community voting and a special thanks to our team of 35 reviewers, who provided over 1000 reviews on the proposals! Without their help, it would not be possible to create the EuroPython programme and there wouldn’t be a conference to attend.

Our wonderful programme team has been hard at work and sent most of our acceptance letters to our speakers! Please get your acceptance tweets and emails ready! We hope to publish the list of accepted talks within the next few days!

🏃 Sprints

We are delighted to announce  our sprint weekend will be held at VŠE (Prague University of Economics and Business) on 22-23 July. Sprints are free to attend and open to the public (registration to be announced later for those who do not have a conference ticket). The sprints are a great way to learn from each other, share knowledge and ideas, and solve problems together through the medium of Python.

Find out more details and how to propose a sprint here: https://ep2023.europython.eu/sprints

🌟 Keynote

We have a couple more awesome keynoters lined up!!

Ines Montani

Ines Montani is a developer specialising in tools for AI and natural language processing (NLP) technology.

She’s the co-founder and CEO of Explosion, a core developer of spaCy, a popular open-source library for Natural Language Processing in Python, and Prodigy, a modern annotation tool for creating training data for machine learning models.

Ines, who had already keynoted EuroPython five years ago, will share with us the developments, progress and lessons learned in the field of natural language processing. It'll be an opportunity for us to collectively retrospect on half a decade of work in the Python community within a field that is gaining in popularity and momentum.

(Ines owning the stage in her keynote at EuroPython 2018)

Petr Viktorin

Petr works at Red Hat, integrating Python into Linux distros.

He started contributing to Python in 2015, answering Nick Coghlan's call for a volunteer to improve extension module loading. After about six PEPs and eight years of work, that project expanded to better support for subinterpreters and maintaining the stable ABI, and helping Eric Snow's effort to break up the GIL.

Last year, after a nomination for Steering Council forced him to look at parts of the project that needed help, Petr revived the Documentation community, and spent time removing roadblocks from contributing to Python's documentation.

To give back to the community, he started teaching free courses to local beginners. But that is a story for his talk at EuroPython.

🎫 Ticket Sales

Our tickets are up for sale now and we’re seeing a strong and steady trend in ticket purchases. Please book your ticket now, to avoid disappointment later when they all (inevitably) sell out.

Tickets can be purchased on our website: https://ep2023.europython.eu/tickets

💶 Financial Aid

Submissions for the first round of our financial aid programme have closed. With over 125 applications from over 40 countries, we're calling this a huge success. The financial aid team is currently reviewing the applications and will send out grant approval notifications by 8 May 2023 at the latest.

You can still apply for the second round of the financial aid programme. The deadline for submitting your application is 21 May 2023. If you’ve applied for a grant in round one but did not receive one, you don’t have to submit another application. Your application will automatically be considered in round two.

Visit https://europython.eu/finaid for information on how to apply for a financial aid grant.

💸  Sponsorship

We're thrilled to announce that our Platinum sponsorship packages for EuroPython 2023 have all been sold out! We're incredibly grateful for the support of our sponsors and are looking forward to an amazing event.

Thank you to all our sponsors for supporting EuroPython 2023!

We still have other exciting sponsorship opportunities available which come with a range of benefits.

Check out our website for more information on the available packages at https://ep2023.europython.eu/sponsor

🗣️ Speaker Placement Programme

Our speaker placement programme supports those in our community who would like advice, guidance and friendly support while preparing for their contribution to EuroPython.

Happy news! Our first two mentees have been matched with an organiser of their choice. Now they will have the opportunity to be connected with a local community, present their talks and get more involved in new activities.

For more information about the Speaker Placement Programme please check here: https://ep2023.europython.eu/mentorship#3-speaker-placement-programme

🎤 First-Time Speaker’s Workshop

In this event, we'll have experienced speakers from the EuroPython community to share their know-how on delivering an effective talk. We hope this will help our participants learn something meaningful about public speaking before their presentation at EuroPython 2023 or in general.

The workshop will take place on 1st of June 2023 at 18.00 CET via Zoom (details will be communicated in the coming weeks). A recording of the session will be made available after the event.

⚖️ The new Cyber Resilience Act proposal

While we welcome the intention of strengthening software and digital products’ cyber security by the European Union’s proposed Cyber Resilience Act (CRA) and Product Liability Act , we echo the concerns the PSF have in its potentially unintended consequences of putting the health of open-source software at risk, including Python and PyPI.

Please check out this blog post for details. If you too are concerned that the broad language of the proposed acts could make open source organisations and developers held liable for security flaws of commercial products that incorporate open source codes, then consider writing to your MEP voicing concerns and asking for clarifications about the proposed CRA law.

💥 Project Feature - Ruff

Ruff is an extremely fast Python linter, written in Rust.

In the landscape of python tooling there often comes a tool that creates a paradigm shift,  Ruff is such a tool! there are tons of linters in Python like flake8, pylint, pycodestyle, yapf etc but ruff just beats it out of the park by being 10-100x faster than existing linters and having integrations with dozens of existing Flake8 plugins. Its speed and versatility has driven adoption in major OSS projects like Apache Airflow, FastAPI, Pandas and Scipy.

Check out Ruff on: https://github.com/charliermarsh/ruff

🍿 EuroPython Classics

EuroPython’s history is full of amazing talks, entertaining presentations and thought provoking interactions… many of which can be found on our YouTube channel. These historic and important artefacts of our European Python community are a source of much wisdom, learning and community bonding. So we want you to suggest your “EuroPython Classic” from our archives.

Our inaugural suggestion comes from Shekhar: “Simple data validation and setting management with Pydantic” by Teddy Crepineau.

Shekhar explains, “Pydantic is a must-have for every Python project, and when combined with Ruff, the result is simply awesome!”

We would love to hear your suggestions for EuroPython classics., so share those bookmarked talks by tagging us on our socials @europython or email comms@europython.eu. We’d love to know why you think your suggested talk is a classic.

Let’s celebrate, recognise and learn again from those hidden gems in our archive.

🥸 PyJok.es

$ pip install pyjokes
Collecting pyjokes
  Downloading pyjokes-0.6.0-py2.py3-none-any.whl (26 kB)
Installing collected packages: pyjokes
Successfully installed pyjokes-0.6.0
$ pyjoke
What do you call eight hobbits? A hobbyte.

Add your own jokes to PyJokes (a project invented at a EuroPython sprint) via this issue: https://github.com/pyjokes/pyjokes/issues/10

EuroPython March 2023 Newsletter

Hey there!

Springtime is upon as, with ~100 days to the conference we have a lot of updates to share this month regarding our ticket sales, CFP, a new keynoter, and sponsorship as we get closer to the conference.

🇨🇿 Picture a Pythonic Prague

To be a part of EuroPython is to be a part of something greater than the sum of its parts. Our community is fortunate to include a wealth of talent and a diversity of skills, and nowhere is this more obvious than in the design and production of the website.

We’re hugely thankful for the work of Patrick and Raquel in coordinating the brand new design, look and feel for this year’s iteration of our presence on the web.

EuroPython’s peripatetic conference journey through the cultural capitals of Europe is an opportunity for us to celebrate our diverse heritage, history and cultures. This year’s design reflects our Bohemian location in the Czech Republic and we hope you enjoy finding subtle (and not so subtle) aspects of the website that acknowledge and respect our wonderful host city of Prague.

Go check it out! https://ep2023.europython.eu/

📣 Programme

Our CFP finished on  Sunday, 26 March 2023 and we received a record breaking 556 proposals beating 2022 by a large margin. 🎉

Community Voting is currently underway. We invite all eligible voters to cast your votes  by Friday 14 April AoE and show us what YOU would like to see at EuroPython 2023! Your vote brings a plurality and diversity of voices to the decision making process; and your feedback is an important ingredient in this refinement and curation process. In 2022, we had a total of 24,000 votes and hope to reach 40,000 votes this year. Cast your votes here: https://ep2023.europython.eu/voting

We have also begun the panel review of the proposals. We received almost 100 reviewer applications and are grateful and overjoyed with the community’s enthusiasm and support for sharing their insights and expertise!

🗣️ Keynote announcement - Sophie Wilson

We are delighted and honoured to announce Sophie Wilson has agreed to keynote at this year's EuroPython. It is not an understatement to say that every one of us, whether we realise it or not, has benefitted from Sophie's contributions to the field of computing.

Since her teenage years, Sophie has designed and built microprocessor based systems. Early projects included a system for counting translucent drops of liquid and detecting spun fibre machinery breakdowns; while in her first university vacation she developed an automated cow-feeder.

After university she joined Acorn Computers Ltd, where she designed the Acorn System 1, coding the operating system in binary before designing and implementing Acorn Assembler, Acorn MOS and BASIC. She, and her Acorn colleague Steve Furber, took less than a week to design and implement the prototype of the BBC Microcomputer, winning Acorn the contract for the BBC's Computer Literacy Project. Sophie designed the operating system and designed and implemented BBC BASIC for a succession of processors. Anyone alive in Europe in the 1980s will have encountered her work, such was the ubiquity of the BBC Microcomputer, and BBC BASIC is rightly celebrated as an example of a powerful programming language that is also easy for beginner coders to learn (not unlike another programming language with which we're all familiar).

She and Furber went on to co-design the ARM processor, powering Acorn's computers during the 1990s and virtually every mobile phone and tablet in the world today – 200 billion sales of ARM powered chips (as of July 2022). Acorn's CEO at the time, Hermann Hauser, recalls that "while IBM spent months simulating their instruction sets on large mainframes, Sophie did it all in her brain." MicroPython, CircuitPython and Snek all target ARM processors, and most modern Apple Macs run on chips based upon the ARM design. There's a good chance you're reading this announcement on a machine running an ARM processor based on Sophie’s design.

As if that were not enough, as a founder at Element 14, Sophie went on to develop the Firepath processor, widely used in the telecommunications industry. Broadcom acquired Element 14 in 2000.

Sophie is a Broadcom Fellow and Distinguished Engineer, a Fellow of the Royal Society, a Fellow of the Royal Academy of Engineering, a Distinguished Fellow of the British Computer Society, a Fellow of the Women’s Engineering Society, an honorary Fellow of Selwyn College, Cambridge, an honorary Fellow of the Institution of Engineering and Technology (IET) and an honorary Fellow of the Institution of Engineering Designers (HonFIED). She has an honorary doctorate of science from Cambridge University and is a Commander of the British Empire (CBE).

👩‍🏫 Speaker Mentorship

We ran a One-to-One Speaker Mentorship Programme to support our first time speakers and anyone else wanting support and representation at EuroPython. We successfully  matched all 37 mentees with a mentor. Thank you, every mentor who is giving back to the community!

We also ran an Ask Me Anything workshop about the CFP as part of the Mentorship Programme. In case you missed it, you can catch up here: EuroPython 2023 Mentorship Programme - Ask me Anything about the CFP:

Speaker Placement Programme

For most new speakers, speaking at a conference for the first time can be a bit intimidating. We also understand that not all of our mentees make it to EuroPython. Part of the support we would like to provide to our mentees is to help them find opportunities to speak at a local event or meetup.

If you are an event/ meetup organiser looking for speakers, please fill in the form and we would be happy to introduce our mentees to you if we believe there’s a match.

🕸️ WASM Summit

WebAssembly (abbreviated to WASM) is an important new open technology: a binary instruction format for a virtual machine. Think of it as a new, secure and performant portable compilation target that runs both in browsers and elsewhere the virtual machine runs.

Python (thanks to Pyodide) and MicroPython can both be compiled to WASM, and with the advent of projects like PyScript, Zython and others, Python is making important and innovative inroads into the world of WebAssembly.

In a first for EuroPython, we’re working with members of the community to run a summit that aims to bring together maintainers and users of Python with WebAssembly. The summit is a place to discuss the state of this ecosystem, existing challenges and ongoing work. If you are attending EuroPython and would like to join the summit, check out the agenda and registration details here: https://ep2023.europython.eu/wasm.

🎫 Registration Launched

🎗️
Our tickets are up for sale on https://ep2023.europython.eu/tickets 

We have different ticket types and tiers to choose from. We worked really hard this year to lower the ticket price and make them more affordable. In addition, we are also offering Financial Aid  for folks who need extra help to cover tickets, travel and visa costs.

We are again providing free childcare to those who need it! In addition, the sprint weekend will take place in a different venue and is completely open to the public! Stay tuned for more information!

🚨
Do you need a visa to attend EuroPython 2023 in Prague? Just head to https://ep2023.europython.eu/visa to request the support letter for your visa application!

💶 Financial Aid

Our Financial Aid program is in full swing! We’ve already received over 60 applications from over 30 different countries. If you need financial assistance to visit EuroPython, the deadline for the first round of applications is 23 April 2023.

For more information about our Financial Aid Program and our selection criteria, please visit https://europython.eu/finaid.

💸 Call for Sponsors

Big shoutout to our first three confirmed sponsors Numberly, energy & meteo systems and Kraken Technologies LTD! Special shoutout to Numberly, celebrating their 10th anniversary of being a EuroPython sponsor! Thank you for your continuous support, your dedication to the community and the kindness fun (and snakes!) you have brought to our conferences! We cannot wait to see you at your booth!

🤗
Special appreciation for our supporter pretix! Thank you for powering our ticketing system with your open source software and thank you for making community events so much easier and better!

We are privileged to have many other fantastic companies who have expressed interest in sponsoring EuroPython this year. Apart from the standard sponsor packages, there are many other ways you can support the conference: be a childcare or Financial Aid sponsor, help us with our endeavour to open our spirit days to the public!

If you are interested in sponsoring EuroPython 2023, head to https://ep2023.europython.eu/sponsor and dig into the details. If you still have questions, write to us at sponsoring@europython.eu

🐍 Upcoming Events


PyCon DE & PyData Berlin https://2023.pycon.de/ 🇩🇪
17. April - 19. April 2023

PyCon US https://us.pycon.org
19 - 27 April 2023

PyCon LT https://pycon.lt/2023 🇱🇹
17 - 20 May 2023

PyCon Italia https://pycon.it/en 🇮🇹
25 - 28 MAY 2023

PyCon PL https://pl.pycon.org 🇵🇱
29 June - 02 July 2023

PyCon Taiwan https://tw.pycon.org/2023/en-us 🇹🇼
Sep. 2 - 3 2023

PyCon Estonia https://pycon.ee/ 🇪🇪
Sep. 7 - 8 2023
Call for papers deadline: 21st April, 2023

💥 Open Source Project Feature

MyHDL: From Python to Silicon! https://www.myhdl.org/
MyHDL is a powerful tool that can help you design hardware with Python, It gives you the ability to convert your designs automatically to both Verilog and VHDL and provides hardware engineers with the power of the Python ecosystem

There is a nice talk from PyCon Taiwan 2013 by Jan Decaluwe about using MyHDL to design digital hardware with Python.

🤭 PyJok.es

$ pip install pyjokes
Collecting pyjokes
Downloading pyjokes-0.6.0-py2.py3-none-any.whl (26 kB)
Installing collected packages: pyjokes
Successfully installed pyjokes-0.6.0
$ pyjoke

.NET was named .NET so that it wouldn't show up in a Unix directory listing.

🥰
Thanks for reading along, we'll have a regular (monthly) appearance in your inbox from now on. We're happy to tailor our future editions to accommodate what you'd like to see here, drop us a line here: communications@europython.eu











EuroPython February 2023 Newsletter

Dobrý den!

It’s March already, the days are flying by and EuroPython in Prague will soon be here! So, what’s been going on?

🐍 EuroPython 2023 Conference Update

🇨🇿 Prague

Since our last newsletter, where we announced our venue will be in Prague, we’ve put together a page containing links and details about the city, its infrastructure and the sorts of things you could explore outside the conference. You can find it here: https://ep2023.europython.eu/where (and we welcome suggestions for additions to this guide).

🧨 Call for Proposals (CFP)

EuroPython 2023 Call for Proposals (CFP) will be open between Monday, 6 March 2023 and Sunday, 19 March 2023

https://ep2023.europython.eu/cfp. More details will be published soon when we open our CFP.

EuroPython reflects the colourful and diverse backgrounds, cultures and interests of our community, so you (yes, you!) should go for it: propose something and represent!

No matter your level of Python or public speaking experience, EuroPython's job is to help you bring yourself to our community so we all flourish and benefit from each other's experience and contribution.

If you’re thinking, “but they don’t mean me”, then we especially mean YOU.

  1. If you’re from a background that isn't usually well-represented in most Python groups, get involved - we want to help you make a difference.
  2. If you’re from a background that is well-represented in most Python groups, get involved - we want your help making a difference.
  3. If you’re worried about not being technical enough, get involved - your fresh perspective will be invaluable.
  4. If you think you’re an imposter, join us - many of the EuroPython organisers feel this way.
  5. This is a volunteer led community, so join us - you will be welcomed with friendship, support and compassion.

You are welcome to share your questions and ideas with our programme team at programme@europython.eu

👩‍🏫 Speaker Mentorship

As a diverse and inclusive community EuroPython offers support for potential speakers who want help preparing for their contribution. To achieve this end we have set up the speaker mentorship programme.

We are looking for both mentors and mentees to be a part of the programme.

To become a Mentor you need to fill in the application form here and If you are a mentee in need of help contributing to EuroPython, especially if you are from an underrepresented or a marginalised group in the tech industry, please fill in the form here. We will get in touch with you to update you on working with a mentor and how to participate in the workshops.

Along with this we will also run an Ask Me Anything for the CFP and a workshop for first time speakers

More details on https://ep2023.europython.eu/mentorship

🎙️ Keynotes

We are thrilled to announce our first keynote speaker for 2023, the New York Times bestselling author Andrew Smith.

Andrew has recently finished a book, due out later this year, about what it feels like to learn how to code. His language of choice was Python and, as part of his research, he became (and continues to be) involved in several different aspects of the Python and wider FLOSS community.

Andrew often appears before live audiences and on radio and TV, and has written and presented a number of films and radio series, including the 60-minute BBC TV documentaries Being Neil Armstrong and To Kill a Mockingbird at 50, and the three-part BBC Radio 4 history of the lives of submariners, People of the Abyss. The last decade has seen his focus shift more squarely to the digital revolution and its social implications, with high profile magazine and comment pieces appearing in The Economist’s 1843 magazine, The Financial Times and the US and UK editions of The Guardian. Smith also features in Stanford University's History of the Internet podcast series.

Find out more about Andrew via his website: https://www.andrewsmithauthor.com/
Andrew interviewing Buzz Aldrin

🎫 Ticket Sales

As usual, there will be several ticket options, so you can choose the one most suitable for you. Ticket sales are expected to start on 21 March. We are aiming to keep the ticket prices at an affordable level for all tiers, despite cost increases and inflation. Check out our ticket page to find more information: https://ep2023.europython.eu/tickets

💶 Financial Aid

As part of our commitment to the Python community, we offer special grants for people in need of financial aid to attend EuroPython. These grants include a free ticket grant, a travel and accommodation grant of up to € 400, and a visa application free grant of up to € 80.

We will review grant applications and award grants in two rounds this year. The submission deadline for the first round will be on 23 April 2023 and the deadline for the second round will be on 21 May 2023. If you submit your application in the first round, you will automatically be considered in the second round as well. So, apply early to increase your chances.

The Financial Aid Programme is now open for application. For more information and a link to the application form, check out https://europython.eu/finaid.

🥇 Speakers Placement Programme

We provide for mentees to provide speaking opportunities at a local event or meetup before or after EuroPython to help boost their confidence. If you are an event/ meetup organiser who is looking for speakers, please kindly fill in this form and we would be happy to introduce our mentee to you if there’s a match.

📞 Call for Trans*Code Volunteers

EuroPython Society champions diversity & inclusion. Following the success and fun we had at our Trans*Code event in Dublin, we are hosting, a Trans*Code event again at EuroPython 2023 in Prague - an informal hackday & workshop event which aims to help draw attention to transgender issues and opportunities.

The event is open to trans and non-binary folk, allies, coders, designers and visionaries of all sorts. Check the interviews with our 2022 Trans*Code participants to get an idea and enjoy the warmth.

This year, we are again privileged to have Noami Ceder on board to help and advise us with the organisation. We want to make EuroPython 2023 an exceptionally welcoming place for trans people and folks from under-represented groups in tech. We need more volunteers to achieve our goal! If you identify as trans or non-binary and would like to volunteer your experience and time to help us organise the event, please write to trans_code@europython.eu; or to Naomi Ceder at naomi@europython.eu (if you need to discuss something more private). If you are an ally, help us spread the word and lend us your support.

🎉 EPS New Fellows

We are overjoyed to announce the EuroPython Society Fellows in the first quarter of 2023: Naomi Ceder, Cheuk Ting Ho, Francesco Pierfederici and Jakub Musko. We are grateful for the significant contribution every one of them has made to our EuroPython community. You can read about their achievement here: www.europython-society.org/europython-fellow/

🐍 Upcoming Events in Europe

🦊 Project Feature - FoxDot

This amazing project helps with livecode music using Python and converts your favourite programming language into a musical instrument

https://github.com/Qirky/FoxDot

Foxdot does this by providing a programming environment that provides a fast and user-friendly abstraction to SuperCollider. It also comes with its own IDE, which means it can be used straight out of the box; all you need is Python and SuperCollider and you're ready to go!

We had a very nice lightning talk about this project at EuroPython 2019 https://www.youtube.com/watch?v=N7q4lB49IGM and a full length one at Pycon US 2019 https://www.youtube.com/watch?v=YUIPcXduR8E

🎗️ Clacks of Remembrance

In the Terry Pratchett novel "Going Postal", a telegraph-style system known as "Clacks" was used to pass the name of a deceased character endlessly back and forth, keeping their memory alive. But where the book had "GNU John Dearheart" -- the prefix being a basic code to instruct clacksmen to pass on, not file, and return the message -- we add meta headers to our base template in a silent but appropriately geeky tribute and act of remembrance to those in our EuroPython family we have lost.

We invite you to take a moment to “View page source” and remember our departed friends.

🤭 PyJok.es

$ pip install pyjokes
Collecting pyjokes
Downloading pyjokes-0.6.0-py2.py3-none-any.whl (26 kB)
Installing collected packages: pyjokes
Successfully installed pyjokes-0.6.0
$ pyjoke

Why do sin and tan work? Just cos.

Add your own jokes to PyJokes (a project invented at a EuroPython sprint) via this issue: https://github.com/pyjokes/pyjokes/issues/10

EuroPython 2022: Videos & Thanks!

Lights! Camera! 📸 Action! 🎬

We are super delighted to release the final video instalments from EuroPython 2022. Like all season finales, we're leaving you on a knife edge, guessing where we'll be hosting the conference next year. 🤔

Rest assured, producing top-quality live streams to enable seamless remote access and subsequent edits of all our talks will be a given, no matter where we'll be in real life. 🤗

Grab that popcorn🍿, head to YouTube and come check out all the insightful & binge-worthy talks!

It’s been a minute since EuroPython 2022. What was your favourite part of the conference?

2022 in our 21st year! 🎉 Last year, we celebrated our 20th anniversary. If you are curious about how EuroPython evolved in the first 20 years and want to watch all the videos from 2011-2021, come take a walk down memory lane - 20 Years of EuroPython.

Do you have any suggestions/ ideas on how the next decade for EuroPython should look? Want to be a part of the EuroPython organising team 2023?
Drop us a line and start the conversation: plaza@europython.eu

Catch you on the flip side,
Sangarshanan on behalf of the EuroPython 2022 team