Showing 9 out of 9 results


Python Was Crowned Programming Language King of 2020

Python was crowned programming language king of 2020. We asked frequent GOTO speaker and one of Ireland’s most experienced developers Eamonn Boyle why he thought Python was so loved by devs and what might attribute to its growing popularity.

January 20, 2021

The Quick Python Book

Why is it better to start with functions before going into classes when learning Python? Join Naomi Ceder, author of "The Quick Python Book", and Luciano Ramalho, author of "Fluent Python", while they talk about the things they love in Python. They explore the new developments of the language as static functions and concurrency, and chat about the reasons for which the language is so popular. They also touch on a business version for Python.

September 8, 2022

(Deep) Learn a Neural Net For Greater Good!

Neural networks and deep learning are fundamental to modern machine learning, yet often appear scarier than they really are. Many users of machine learning packages can apply ML techniques (perhaps including deep learning) through these tools, but do not always grok fully what happens beneath the surface. Other more engineering-oriented practitioners are put off entirely by the seeming complexity of DL. At the heart of this talk: We walk through a live-coding practicum (in a Jupyter Notebook slideshow) in which we implement a feed-forward, fully-connected neural net in "numpy", initially training it via a for-loop to demonstrate core concepts, and finally codifying the NN as an object-oriented style classifier with which one can fit & predict on one’s own data. This talk caters to those with an intermediate math background (some exposure to calculus -- though perhaps many, many years ago), and some experience with Python. All who are interested in learning more about deep learning welcome!


Robot DJs: Better Spotify Playlists through Music Theory and Discrete Optimization

I am a Spotify addict, former DJ, amateur musician, and professional software engineer. I take special pride in making expertly-curated playlists for myself and friends. It takes a lot of time and energy to set the right mood and tone, and even more time and energy to transition smoothly from one song to another in a way that makes sense and is pleasing to the ear. Through many years of practice, I've observed that making a good playlist is a lot like solving a puzzle; and just like puzzles, there are rules and patterns to follow if you want to produce a cohesive output. In this talk, we'll explore the notion of teaching these rules to a computer, building a planning & optimization algorithm that follows these rules, and letting it loose on a set of tracks to generate delightful playlists on Spotify. We'll also cover the basics of music theory and why certain songs sound better together. There will likely also be fast talking, live keyboard playing, and some unrehearsed demos against a random sample of Spotify playlists submitted by the audience. This talk is from our partner.


It Really is Easier to Ask for Forgiveness (than Permission)

It's a Pythonic maxim that "it's easier to ask for forgiveness than permission" and Pythonic code is written with a strong preference for attempting an operation and raising exceptions as needed. This contrasts with many languages which take a "look before you leap" approach where conditions, types, and values are checked in advance. This tendency to raise exceptions first and ask questions later strikes coders from other languages (and even some Pythonistas) as reckless, strange, and inefficient. Wouldn't it be "better" to do a little checking and avoid exceptions? Exceptions can't be intended to be used so frequently, can they? Surely raising so many exceptions results in slow and inefficient code? This talk will address all of those concerns. We'll show how and why Python's approach is a strength, not a weakness, which makes Python more expressive and flexible. We'll also see that raising exceptions is integral to Python, and underlies many common features of the language. Finally, we'll look at some simple tests that show that the Pythonic use of exceptions usually is faster and more efficient than look before you leap checking in most cases, and we'll also discuss a few situations where "look before you leap" might be preferred. **Who should attend this talk:** People interested in how programming languages work and how they differ; people using Python who want to use it effectively; people who want to critique Python code and mentor effectively. **Academic level:** Introductory **What is the take away in this talk:** That a particular languages idioms and best practices are not what you might expect based on other languages; specifically that exceptions in Python should not be judged based on exceptions in Java, C++, or any other language.


Ray: A System for Distributed Applications

Ray ([]( is a framework for scaling Python applications from single machines to large clusters. It is used in several ML/AI systems and production deployments. Dean will explain common problems in scalable, distributed computing, particularly for high-performance ML/AI applications that motivated that creation of Ray. You’ll see how Ray solves them for Python-based systems (and possibly other languages in the future). In particular, Ray supports rapid distribution, scheduling, and execution of fine-grained “tasks”, a more natural decomposition of work for many problems compared to coarse-grained decomposition. Sequencing of dependent tasks cluster-wide is also transparent and intuitive. Ray also manages distributed state using the popular Actor model, which is essential for the next generation of “serverless” computing, where these services are stateful. Whether or not you are a Python or ML/AI developer, the general lessons discussed are broadly applicable.


Scaling Python for Machine Learning: Beyond Data Parallelism

Data Parallelism can be amazing and it frees us from so many fiddly complicated tasks (like dealing with locks). On the other hand, as training large machine learning models becomes increasingly popular, we're seeing the need to move beyond purely data-parallel techniques. Depending on recompute exclusively for failure is no longer sufficient as our operations are not idempotent. In this talk we will look at Spark, Dask, and Ray in the context of scaling machine learning models and how you can take advantage of other types of distributed parallelism (including the actor model for managing model weights during training).


Reinforcement Learning - ChatGPT, Playing Games, and More

Reinforcement Learning (RL) trains an agent to maximize a cumulative reward in an environment. It rocketed to fame as the tool to achieve expert level performance in Atari games and the game of Go. It is also used for robotics, autonomous vehicles, process automation, and more recently, making ChatGPT more effective. I will begin with why RL is important and how it supports the applications listed above, including "Reinforcement Learning with Human Feedback", an essential tool used to develop ChatGPT. Then I will discuss how RL requires a variety of computational patterns: data management and processing, large-scale simulations and model training, and even model serving. Finally, I will show how Ray RLlib seamlessly and efficiently supports RL, providing an ideal platform for building Python-based, RL applications with an intuitive, flexible API.