khalido.org

every blog needs subheader text

PyCon Australia 2018

Table of contents.

My notes for the PyConAU 2018 talks I went to.

How Python saved a rescue dog - a foster fail story

This talk will tell the story of a foster fail, how Python helped to save the life of a rescue dog and how the initial medication feeder grew from a single IoT device into a full Internet of Dog (IoD) madness. I will show the design and implementation of the initial Python-based medication feeder, what we have learned from running it over the summer and how it has continued to grow into a multi IoT device, Python-powered, full dog carer solution. There will be microservice architecture drawings, Python code, and, of course, pictures of the dog! #

{{< youtube EqQj5os3Mfw >}}

Q&A

takeaway: genius AND way overkill. but infrastructure is hard. consider using orchestration tools.

Lighting Macro Photographs with CircuitPython

LED lighting rigs are expensive. Worse, they have little to no controls aside from on/off. Most are not dimmable and changing colors requires the use of gels. In this talk I will discuss how CircuitPython was used in conjunction with LEDs and microcontrollers to make a custom LED photo lighting rig. #

{{< youtube JAgCZ70Q3sg >}}

Q&A:

takeaway: building a real tangible project is fun. Curcuit Python looks super easy to use.

Writing fast and efficient MicroPython

MicroPython is a reimplementation of Python which is specifically designed to run on computing devices that have very few resources, such as CPU power, RAM and storage. Often when you write scripts in MicroPython you want to make the most of your available resources, and have code run as fast as possible (faster code usually saves power, which is important when running from a battery!) and there are certain ways of writing MicroPython code that are more efficient than others. In this talk I will go over the tricks and techniques for writing fast and efficient Python code in MicroPython. As part of this I will delve into some technical details of how MicroPython works, in order to better understand what it’s doing behind the scenes and how to make the most of it. I will discuss general techniques for making things run faster (some of which would be applicable to normal Python), as well as ways to completely avoid memory allocation, which is important for both efficiency and making code execution deterministic. The talk will include some hardware demos to show off the techniques, including five different ways to blink an LED fast. #

{{< youtube hHec4qL00x0 >}}

takeaway: micropython can be fast. don't use globals, but everyone knows that already, so instead apply some of the tricks from above, like caching methods, and for micropython don't have too many funcs.

Asyncio in MicroPython

Asyncio provides a way to achieve concurrency in a relatively simplistic fashion. However, first-time users still struggle with the concepts so let’s sort them out! Then we’ll see why it’s especially useful in an embedded environment.#

{{< youtube tIgu7q38bUw >}}

Q&A

takeaway: get micropython hardware and start coding. Understand async better, it seems pretty straightforward, and on slow hardware a godsend - i.e async sending logs + async doing other stuff makes for easy real time monitering even if the machine is stuck on something..

Demystifying LoRaWAN with PyCom

Connecting IoT devices using low power over wide area wireless (LoRaWAN) makes sense. But how LoRaWAN works, duty cycles, frequency plans, receive windows, etc. doesn’t. #

This talk will demystify how LoRaWAN works using PyCom devices.

{{< youtube L-fh7PSpPMc >}}

takeaway: look at LoRo/PyCom if using wireless IOT away from wifi.

Workplace Environment Sensing with Python

Have you often wondered where the quietest spot in the office is right now? In this talk, we explain how we built a real-time system that does just that using CircuitPython. #

{{< youtube u4rSKNX_spA >}}

takeaway: pervasive monitoring is creepy but its going to happen. Circuit Python is amazingly easy. Make something with it.

Automating Your Home with Python, Raspberry Pi and Homekit

Home Automation is a fun new field for the modern Pythonista. In this talk I will be walking through how a developer can leverage a python library to use the HomeKit service and automate the devices in their home. I will be covering topics like hardware selection for local and remote access, HomeKit service registration and management and potential security concerns around IoT. #

{{< youtube SiLtPgeTZLA >}}

q & a

takeaway: No Apple, hence no homekit for me.

Education Seminar Student Showcase

Friday August 24 2018, Education Track, C3.4 & C3.5, 16:00 AEST

Eight short (10 min) talks from high school students across Australia. They’ll be talking about projects they’ve built with Python using machine learning, robotics, natural language processing, and more #

{{< youtube QNAgPjbn0Ws >}}

MENACE - building a learning matchbox machine in Python

takeaway: awesome.

Optimising Memory Retention via a Machine Learning based Flashcard System built in Python

This project aims to leverage Python’s machine learning capabilities, combined with psychological theories of learning and forgetting, to construct predictive models of human memory in order to improve upon traditional flashcard systems.

In this talk, I will share my experience of: (1) utilising Python’s sci-kit-learn package, alongside the Latent Skill Embedding package, to train, evaluate and visualise the performance of various models; (2) implementing the model into a web-based flashcard application built in Flask - a popular Python micro framework; and (3) testing the effectiveness of the system through a classroom experiment on 36 Japanese language students.

takeaway: build my own flash cards to learn stuff with spaced repetition.

Text Summariser

The Text Summariser is a program I built for when one is unable or unwilling to summarise information from a large block of text themselves. In my talk, I will discuss how it works, what inspired the project, and how I overcame the (many) challenges of building my program. I will also talk about computational linguistics and Natural Language Processing (NLP), two big components of how the text summariser works. After listening to this talk, you will have learnt some basic Natural Language Processing, and how you can apply it in Python Programs.

takeaway: too much cleverness going on to summarize.

NOR: creating generated worlds on iPad

NOR is a 2d puzzle exploration game for iPad that I made over the course of year 10. It features procedurally generated landscapes that collide with and can be edited by the player. The landscapes are host to procedurally generated bushes, trees and puzzles. My talk will discuss how I reached the point where I could set off on a large scale python coding project, how I built up the game and made the systems work, and how anyone can pick up an iPad and start developing.

takeaway: procedural generation is awesome.

Rule-Based Machine Translation

The Text Summariser is a program I built for when one is unable or unwilling to summarise information from a large block of text themselves. In my talk, I will discuss how it works, what inspired the project, and how I overcame the (many) challenges of building my program. I will also talk about computational linguistics and Natural Language Processing (NLP), two big components of how the text summariser works. After listening to this talk, you will have learnt some basic Natural Language Processing, and how you can apply it in Python Programs.

takeaway: NLP for the win.

SVG Graph Calculator

The name of my project is somewhat self-explanatory, it is an SVG Graph calculator. I know right? My talk is going to be about how I decided to do this project, and my struggles and innovations in making this project happen.

takeaway: good basis for building a equation solver.

Emojifer in @ school

Emojifer is an implementation of a sequence model in Machine Learning. It will analyse the meaning of a sentence and give it the appropriate emoji. Emojifier plays an important role in @ school which is a cloud-based learning management system written in React with Flask served as the server. Come along to this talk, if you want to know what’s under the hood of Emojfier and how I make it happen. Additionally, I’ll talk about some of the problems I’ve encountered so far and how I overcame it. This talk will give you an idea of how to get started in Machine Learning as well as full-stack web development if you’re new to the area.

takeaway: everyone needs a emojifier.

PyVlov’s Dog

PyVlov’s Dog is a simulation software created to dynamically train neural networks for the control of basic robots. When we started this project we had a limited understanding of neural networks, so we simplified the problem by visualising it as training a dog.

We developed this project as a way to streamline the concept of neural networks through this metaphor of training a dog, so as to facilitate its use as an education tool. In this talk we will talk about how we made the software, the difficulties we faced in creating it and the way in which it works. We will also discuss the development of the robot’s hardware and the way in which it is represented within the simulation. Finally, we will cover the way in which we developed the principles of ease of use, and visual clarity within the program, to allow for use by people of all skill sets.

takeaway: interesting project to follow. The future is training your own robot to do something.

educational talks wrap up


Saturday talks

Keynote: Annie Parker on Techfugees

Annie is a co-founder of Techfugees Australia - a global movement connecting the technology ecosystem together with newly arrived refugees here in Australia to help them integrate into their new communities. In this talk, Annie will be sharing her experience of how Techfugees works and some of the success stories they’ve had along the way #

{{< youtube GlMVcZfFFGI >}}

my takeaway: this is awesome, go to their hackathon in Nov. Don't need ninja skills, a lot is just about knowing what is out there in the tech space which can help.

Describing Descriptors

Descriptors are a little known feature of Python. They provide a way for a programmer to customize the storage and retrieval of different instance variables. In this talk, you will learn about the descriptor protocol, what it can be used for, and how to implement a descriptor. #

{{< youtube lmcgtUw5djw >}}

q & a:

my takeaway: descriptors are useful, can apply across classes, so makes for better code

What is the most common street name in Australia?

Finding the most common street name in Australia may sound like a simple thing to do - but it quickly devolves into a scenic tour of all the things that go wrong when doing data analytics. I’ll be giving advice on how to avoid these speed bumps along with how to work with OpenStreetMaps in Python. #

{{< youtube eGgBU2Pl6iA >}}

my takeaway: a suprisingly simple question can lead to a whole lot of learning. Answer a few simple q's myself using python.

Why you should care about types: How Python typing helped my team scale

By now you have probably all heard about Python static typing. But why should you care? Are types in Python even Pythonic? Is Python turning into Java? Type annotations are Pythonic, trust Guido’s word for it, and Python is definitely not turning into Java.

The greatest benefit of types in large Python codebases is the fact that the input and output structures of a function are obvious from just looking at the signature. In the untyped world the definition for the class you are looking for may be N jumps away, hidden somewhere deep in the codebase, and you don’t have a direct reference to it. In the best possible case grepping for it will yield just a few results and you will be able to spot what you are looking for. In the worst case though, you will have hundreds of hits and you will have to start your application and inspect the type at runtime to figure out what is going on, which make the development cycle slow and tedious.

Come to this talk if you want to know more about the typing system in Python, how to gradually add it to your codebase and what benefits will your team get in the long run! I will also cover some advanced tools like the runtime type collection system, MonkeyType, and the just open sourced type checker, Pyre#

{{< youtube h1cD3a7ys8Q >}}

my takeaway: types are pythonic, more readable, safer. use gradual typing and go all in!

Running Python web applications in Docker

An introduction on running Python web applications in Docker, covering how to structure your project, running the project in both development and production, testing the project, and compiling static assets for your frontend. #

{{< youtube 9L6x2j-7eVQ >}}

q & a:

my takeaway: Docker is convuluted. I wish the world would just rather clean up linux so we can go back to running things directly instead of having to faff around with docker containers.

Context Managers: You Can Write Your Own!

Did you know context managers go beyond with open('myfile.txt', 'r') as f? In fact, you can even write your own! Context managers are an amazing tool for managing resources safely. They make your code look great, and they’re now easier to write than ever thanks to contextlib! Come get contextual! #

{{< youtube -tpn94V9vK4 >}}

from contextlib import suppress

def kill_process(pid):
with suppress(ProcessLookupError):
  os.kill(pid, signal.SIGKILL)

my takeaway: use more decorators and context managers

Snakes in your Games

When thinking about where to start with python and games, the first thing that might come to mind is pygame. However, python has been used in many well known commercial games titles and can be used in many different ways throughout the game development process. This talk will examine a range of game titles, genres and platforms, from AAA to Indie, to show how python is being used in each; discussing the strength and weaknesses of using python, how it has been done, and how it might be in the future.

{{< youtube WbnZqeLL1a8 >}}

my takeaway: there is a lot of python out there.

Keynote: Tom Eastman on getting better

how we learn to get better at our craft, and also how we – all too easily – do the opposite. #

{{< youtube 9E3qhqWFJ2c >}}

my takeaway: think you can do it, and learn by doing. don't get comfy and don't feel bad about sucking at something.

Saturday Lightening talks

{{< youtube BmWLhVMWC9I >}}

Digital Earth Australia

FuPy

flip flop operators in Ruby

python in the classroom

DRF Model Pusher

Watching water from space

Captcha Cracker

Rocketry

cyrpto money

Peter Lovett

Giving thanks


Tracy Osborn: Clueless

Tracy Osborn is the author, designer, and self-publisher of three books and the solo founder of a venture-backed startup. Each of these achievements has something in common — being completely clueless about the work and problems involved in each. In this keynote, Tracy will tell stories about how she launched her projects and what she learned (after already being neck-deep.) #

{{< youtube fOzJ-OIZRZw >}}

my takeaway: pick a simple project and just do it.

Guide to your own artificial intelligence application in 3 easy steps

What do you think of when you hear “artificial intelligence”? Perhaps self-driving cars, autonomous robots and Siri, Alexa or Google Home? But it doesn’t have to be that complex. You can build a powerful image classification model within a topic that inspires and interests you - with 3 easy steps. #

{{< youtube ymRr0AkMb5E >}}

takeaway: this was suprisingly easy for something which sounds so complex. build my own mini app using keras and flask

Hello to the World in 8 Web Frameworks

We’ll start with the current crop of microframeworks, showing how to achieve the same task in each, before progressing to “Batteries included” and then the more specialised async frameworks. For developers who perhaps have only used a single framework or even none at all, this talk gives them an opportunity to get out and explore the world (of web frameworks) and broaden their horizons, with plenty of Jules Verne inspired fun along the way. #

{{< youtube z9Ek6fefMYk >}}

my takeaway: use any, ignore differences in syntax - whats important is documentation, bug/issue tracker activity, release management, community, and of course the scope of the project and the number of "batteries" you need. Don't end up rebuilding a bastardized undocumented django on top of a microframework, just use django if thats where you're headed.

Functional Programming demystified

Have you ever eavesdropped on FP developers talking about programming and wondered which planet you landed on? I attended LambdaJam 2018 and felt your pain! Let’s demystify Either, Semigroups, Monoids, Functors, Monads, Traversable, Natural transformations etc. by implementing them in Python. #

{{< youtube p9_r36fIrqc >}}

my takeaway: functional programming is interesting but deeply unpythonic. don't use unless there is a clear need to.

You Don't Need That!

Not every design pattern makes sense in Python. This talk builds up design patterns commonly used in enterprise languages, and shows the features in Python that make these approaches unnecessary. #

{{< youtube imW-trt0i9I >}}

takeaway: a lot of design patterns exist becuase they were needed in some language or other. (java, shudder). Use python's pythonic features, don't reach for older patterns unless its truly a good idea.

There is no "now" and sensor data's the worst

Audience members will be asked to go to a webpage on their phone that reads accelerometer data and transmits it to the presentation. This data will then be used to highlight the issues of collecting a processing data from distributed sensors - what happens when all the data is not received at once and not perfectly in time? what happens if there is an outage? How do you turn all this noise into something tha t can be managed? #

{{< youtube uv-KQzjA08c >}}

takeaway: think orchestration. how many devices, what when how do they log/send data and how to deal with loss/latency.

Watch out for Safety Bandits!

The presentation itself will go into the details of example security vulnerabilities, explain why it’s important to fix them, and show how integrating these two tools into your process will better protect you and your software. Beginners will get an appreciation for the kinds of security problems that can occur, and an introduction to continuous integration workflows. #

{{< youtube Wa2pgDihWaw >}}

takeaway: integrate Safety Bandits into CI.

Sunday Lightening talks

{{< youtube rNkbmu4e3MA >}}

chunks() the story of a generator

PyCon Anthology

Tracking trucks in Africa

Software release reports with Python Sphinx & Jira

why text encoding

phy py physics

Python Bugs

Bad code

Goto

Flip Flip Face Offerator

Micropython.. Jupyter.. Live

Nick - core CPython dev

posted , updated
tagged: python View on: github