Every line should have test coverage, but when projects get sophisticated tests can grow out of control, difficult to write, harder to understand, and damn near impossible to maintain. Learn tricks to achieve high coverage rates with simple, elegant tests that are easy to write, review, and evolve.
The talk will present some of the pitfalls of unit testing, from bloated shared fixtures to monkey patching, characterisation testing, and brittle/broken coverage for error handling.
If you suffer from these problems, unit-testing becomes a grind, certain code seems un-testable, and covered code becomes painful to evolve. You may even find that your tests aren’t even covering what you think they are.
With examples from Shopify’s data platform, Erik will show strategies to mitigate these problems and write tests that are crystal clear, robust, and sustainable.
Erik Wright is a lead Software developer for Shopify’s data modelling platforms. Prior to joining Shopify he was a member of the Chrome team at Google. He's honed his unit testing chops over 19 years since an enlightened lead early in his career introduced him to the world of Extreme Programming.
*** PLEASE NOTE NEW LOCATION ***
We're meeting at OneEleven this month, just a couple blocks away from our usual location.
Open Mic Night: Come tell us what you're working on and get connected with the Python community in Ottawa
66 Slater Street (Near Elgin) Suite 300 Suggested parking is either at City Hall or the NAC · Ottawa, on
John Gill will present:
"A tour of round objects of all kinds in karma pi land.
Modelling nested spheres.
Balls of all kinds, the World Cup of soccer too.
Using git to show how I develop code.
How ideas change and evolve over time.
Open data too and some ideas about decentralised systems."
This month, we'll have a thought-provoking and entertaining presentation from Paul Craig, a developer with the Canadian Digital Service.
Software development is a relatively new discipline but an increasingly important one in today's networked society. In the paper-based past, early programming often meant hobbyists tinkering on their own time, whereas today many organisations employ teams of developers to introduce runtime errors into their critical digital infrastructure. As the culture of programming has evolved, so has the idea of what it means to be a successful programmer -- when the narrative changes so does its hero. This talk focuses on the much-blogged-about "rockstar programmer" (ie, 10x programmer): what is a rockstar programmer? are they popular at office parties? do they even exist outside of a popular Nickleback song?
Come along and find out! Expect a thought-provoking talk, free pizza, and great theme music.
Dan Cornilescu will present some fundamental principles and the advantages of the CI methodology, some common misconceptions, the typical challenges seen when using CI in large projects and how using pre-commit based verifications (AKA gated commits) can be used to address them, with comparative examples from the Gerrit-based approach (used by OpenStack) and from ApartCI (his product).
CI/CD for the Masses - Steve Astels, Canadian Digital Service
Starting from scratch we will build a simple Python Flask web app, put it in GitHub and deploy it on Heroku, then configure it to use continuous integration and continuous deployment via CircleCI.
**Date Change! Now March 29th**
Tanya Janca will peresent Cross Site Scripting (XSS) Deep Dive
What IS Cross Site Scripting? Also know as ‘XSS’, cross site scripting is a web application vulnerability that allows an attacker to inject their own script into your application, manipulating your application into trusting it, as if their script was part of the application. The attack is then executed against users of your application in the browser. XSS is common, dangerous, and easy to find with automated tools, which is why it is #A6 on the OWASP Top Ten. This Application Security Lesson will teach you what XXS, how to differentiate the 3 types of XSS, explain how to find it, but most importantly, how to prevent it. This talk also includes a live demonstration of the vulnerability, with audience participation.
Tanya Janca is a senior cloud advocate for Microsoft, specializing in application security; evangelizing about software security through public speaking, her open source project OWASP DevSlop, and various forms of teaching via workshops, blogs and community events. As an ethical hacker, OWASP Project and Chapter Leader, software developer, effective altruist and professional computer geek of 20+ years, she is a person who is truly fascinated by the ‘science’ of computer science.
At this meeting Steven Seguin will present "Be an Expert With Time-Series Telemetry":
How can you know that your system is performing the way you expect? With telemetry! Time-series telemetry allows you to aggregate data from disparate systems and get insights into the dynamics of your applications. This presentation will cover the what, why, and how of time-series storage.
Through live-coding a simple metrics system we'll explore the design trade-offs involved and what they mean for you as a user of these tools. Our system will emulate the design of popular time-series tools and let us walk through the key decisions made about data reporting, persistence, indexing, and querying.
Matt Mcgraw will be presenting this month:
Python: Jack of ETL Trades
Using the Python standard library to replace the functionality of SSIS within a SQL Server data warehouse
The background for this presentation is rooted in my experience from working at a company where we primarily used SSIS as our ETL tool. After we ran into recurring issues with several projects, we slowly swapped out the SSIS packages for Python services. We didn't have endless budget and were relatively restricted with what we could do with our infrastructure, but Python gave us a lot of creative options to make dramatic improvements to our system, notably:
- quicker schema evolution and validation
- moving to source control and adding testing
- allowing for better multiprocessing and distributed environments
- introducing a "pipelines by contract" philosophy
- improving ability to rebuild from source and file system management
The talk would spend time on the philosophy and principles of ETL, expressing these ideas in the Python standard library, instead of focusing on specific toolkits such as ORMs, pandas, or PySpark