PyYYC is a monthly meetup where local people interested in the Python programming language get together to share Python tips, tricks, projects, and experiences; and to socialize with fellow python users, learners, and experts.
This website is where we post slides and code from past meetups. You can refresh your memory if you saw something neat. Or, if you’re new here, take a look around to see some of what we do at the meetup.
If you want to attend our next event, that’s all handled over at meetup.com.
This month we have another awesome instalment from the AB Python community!
Join us on Remo starting at 6:50.
SlidesWe'll take a dive into ML topics which affect domains such as credit risk, anomaly detection, and fraud detection.
In this talk, you'll learn why data balancing for machine learning projects is important and why it should be done. You'll see results of various data balancing (Oversampling, Undersampling, and SMOTE) techniques including associated predicted results.
This month, with EdmontonPy, we are meeting virtually via Remo. Once RSVP'd, the link to the event will be available to you. It's optional, but a working webcam & mic is encouraged for Q&A and mingling purposes.
SlidesA demonstration of a small project built with Flask and hosted on Heroku. As a new grad, the speaker will go over what they have learned by working on small projects. If you're a student, new grad, and/or a beginner who's curious about Python, this talk's for you!
Learn about Dask, an open-source library for parallel computing written in Python. It can make it much easier to scale the tools Python users love, e.g., NumPy, pandas, sklearn.
The speaker works in sales for the company that makes Dask, called Coiled.
I'm thrilled to announce that we will team up with PyData AND EdmontonPy this month!
It will be a virtual meetup via Remo starting at 7 PM.
Building a modern web app requires so much: HTML, CSS, JS, Python, SQL, React, Bootstrap, Webpack, Flask... What if we could build a better abstraction?
Our answer is Anvil (https://anvil.works): a full-stack Python environment where everything is a Python object, from your UI components to your database rows.
Anvil: A framework where everything is a Python object, requests to the server are function calls, and Python is a browser-side language. The speaker will talk about running Python in the browser and full-stack autocompletion. There will even be live coding.
This talk will go over the fundamentals of the seq2seq modeling technique, a first-foray into pytorch, and how this technique still holds potential value beyond a language-language translator or simple chat bots.
NOTE that we will start at 7:00 PM (so you can have some dinner first).
Please join a little early.
Online link to be provided before the event.
I'm thrilled to announce that we will team up with EdmontonPy this month!
As usual, it will be a virtual meetup via Zoom starting at 7 PM.
NOTE that we will start at 7:00 PM (so you can have some dinner first).
Please join a little early.
Online link to be provided before the event.
How to speed up Django Admin as your app gets bigger
I hope you all had a great summer and are safe and healthy!
We will be
resuming our regular monthly meetups, but will keep it as online event until
the pandemic gets better.
NOTE that this time we starts at 6 PM (rather than the previous 6:30). Please join a little early.
A special presentation from PyData Calgary!
NOTE that this time we starts at 6 PM (rather than the previous 6:30). Please join a little early.
Due to the current COVID-19 situation, the meetup this month will be virtual with Zoom.
The talk should start at 6:30, and I encourage people to come online at around 6:20 pm.
Due to the current COVID-19 situation, the meetup this month will become virtual with Zoom.
The talk should start around 6:30, and I encourage people to come online at around 6:20 pm.
This is our first virtual meetup and I hope everything will work out. Feel free to let me know if there is anything that can be improved.
How to make a simple pdf merger tool complete with graphical user interface (gui) using tkinter and PyPDF2.
How the company plans to use Python.
WeasyPrint is very popular and powerful tool for generating PDF reports.
Restricting a program to use dunder methods for interfacing.
Python has been super popular in the recent few years and people are willing to learn Python in man possible ways. I'll show you some of the Python best practices to make your code look way more "pro" than ever!
After the first presentation, there will be a free-coding session for
participating the Hacktober Fest. Please remember to bring your laptop if
you'd like to participate in this session.
For those who don't know what
is a hacktoberfest, checkout the link below:
https://hacktoberfest.digitalocean.com/
Date change: This month only, we are meeting on Monday instead of the usual Wednesday
This month, instead of having a technical talk, we’ll be meeting to make plans for the coming year. The PyYYC meetup has more than 900 virtual members, and has been providing a time and place for local python enthusiasts to get to know each other for more than 6 years.
The existing organizers are bowing out and we’re looking for new ones to fill their places. If you’re at interested in helping out the meetup in any way, please come and join the discussion about how to make the coming year a success.
Carson has volunteered to lead the group, and he’d like to have help in the following areas:
Feel free to take any responsibilities or just lend a hand for setting up prior to the meetup and cleaning up after the meetup. Any help is appreciated.
Our goal: to grow our local community and make a bigger impact to the YYC tech world
We’re also starting to organize the meetup in the #python channel on the YYC Design slack.
Thank you to Showpass for sponsoring pizza this month!
Doors will open shortly before 6. There will be mingling, and we’ll also give away a free PyCharm license courtesy of JetBrains. Then the main events should start around 6:30.
There is a City of Calgary parking lot just north of Assembly at 203 - 14 St NW. Parking is $2 if you arrive after 6:00 p.m.
The python feature and library of the month are:Slidesdir()
/help()
/docstrings, and faker.
Geographic Information Systems (GIS) is a powerful tool used to manage, process and analyze spatial data. Combining techniques in remote sensing, statistics, cartography, data science and computer programming, GIS provides the means to deliver insights, discover trends and support decision making. In the field of wildlife conservation, GIS is heavily used to develop habitat models that map areas animals select and avoid. Elevation, distance to streams and human disturbance such as cutblocks, pipelines and roads all play a role in explaining and predicting animal movement patterns. In the field of GIS, python is the best friend and used whenever possible to crunch data, automate tasks and develop tools. This presentation will take a look at how python is used to extend ArcGIS, a well-used mapping software, to solve grizzly bear research questions on Alberta’s landscape.
Doors will open shortly before 6. There will be pizza and mingling, and we’ll also give away a free PyCharm license courtesy of JetBrains. Then the talk should start around 6:30.
Please join us afterwards at a nearby pub for some socializing. Water, juice, and soft drinks will all be available at the pub; there is no requirement to drink alcohol.
There is a City of Calgary parking lot just north of Assembly at 203 - 14 St NW. Parking is $2 if you arrive after 6:00 p.m.
NOTE: Date Change. This meetup has been moved to May 15, one week earlier than usual. Please update your RSVPs accordingly. Future meetups will continue to be on the 4th Wednesday of the month.
Code
- actually installing python on your computer—please try to do this in advance
- verifying the version of python installed
- creating a directory
- creating a python program in an editor and running it
- some more programs: if, loops, and so on
Slides CodeAa talk that explores the installation and usage of Jupyter Notebooks.
Notebooks have become popular recently as an alternative to purely text-based programming applications. This growth has been driven by data scientists looking for a way to integrate code and analysis to tell a comprehensive story. This is commonly referred to as literate programming. This talk will discuss the strengths and weaknesses of using notebooks, why they are so popular in the education and data science fields and how non-data science developers can still benefit from their use.
We’ll see the implementation of a simple data science and machine learning workflow to demonstrate the usage of notebooks. Finally, there will be a discussion of some alternatives to notebooks that offer more robust coding options in plain text format.
CodeThe intent is to make this meetup as interactive as possible. To participate, you do not need an AWS account, but if you do have one, you'll be able to deploy what we build locally and consume it publicly (at your own cost :))
Topics we will cover:
- Discuss what "serverless" is:
- concepts, reason for hype, pros/cons, when to use (and when not)
- Implement a Python RESTful endpoint
- demonstrate local dev environment
- deploy to AWS (Lambda)
- (time permitting) Extend application to be full stack
- build and deploy a frontend app (s3/cloudfront) that consumes our python lambda
- integrate with DynamoDB (locally in offline mode and deploy to production)
- backend/S3 integration (file persistence)
If you would like to get a head start you will need to globally install the following:
- Python 3.6.x
- Node (LTS -- 10.x) (required for serverless framework)
- (Optional) Python/Node dev friendly environment:
- Visual Studio Code with the Python plugin
- PyCharm
Slides CodeIt’s often useful to re-use the accounts and sign-on functionality from other websites, instead of requiring users to create a new account on every site they visit. We’ll have a walk-through of how to add third-party sign-on to a simple Django website.
Please bring a laptop to do some coding on.
Doors will open shortly before 6, there will be pizza, and the talk will start around 6:30. We’ll also have a general question-and-answer session afterwards, so if you have any python questions, please bring them.
While pip and virtualenv do a good job of managing the dependencies of your Python application, they don't handle sub-dependencies very well. As a result, developers are forced to take on the responsibility for managing those packages in order to ensure a deterministic build/execution environment. This month, we look at pipenv, a new tool that automates managing your Python environment.
CodeWe’re getting a preview of a PyCon Canada talk! In this tutorial, you’ll go from nothing to having a working Django REST API server with authentication. Bring a laptop so you can follow along.
PyCon Canada: https://2018.pycon.ca/schedule-day-2/#talk-PC-55495
This month is also Hacktoberfest. Make 5 GitHub pull requests and get a free T-shirt: https://hacktoberfest.digitalocean.com
If you’re working towards this, or want help getting started, bring in a PR to show off what you’ve done, or bring in an idea and get some help on turning it into a PR.
We’ll be on the fourth floor. Doors open at 6ish, and talks should start some time after 6:30.
Slides CodeWe’ll talk a bit about what Docker and Kubernetes are, and go over some Python code that uses the Kubernetes API to create a temporary service for integration testing.
Please bring a laptop with Docker Edge installed: https://store.docker.com/editions/community/docker-ce-desktop-mac
Doors open before 6, and the talk should start by 6:30.
Slides CodeAn intro to scikit-learn for pythonistas: working through classic learning problems, this talk will provide an introduction to some of the machine learning techniques and pipelines available in Python's scikit-learn library. No prior machine learning experience required.
Please be on time for 6pm as pizza is provided and everyone should get a chance to eat before the talk starts. The front door is locked so if nobody is there txt the number that will be posted there.
This month at PyYYC, we have the following talk:
In recent years cyber-criminals have increasingly used cyber attacks on the software supply chain to attack organizations. Attackers use a variety of methods for these software supply chain attacks and one such method is using the Python Package Index (PyPI) to distribute malicious code through fake Python packages. Typically these fake Python packages use name/typo squatting of existing popular Python packages with the hope that a developer may mistype a package name when doing a "pip install".
In this presentation I'll talk about cyber attacks on the Python ecosystem and how I detected malicious Python packages in the PyPI repository using a large hard drive, static code analysis and some data analysis. I'll show some of the interesting things I found in the PyPI repository and I'll explore some of the tools I used to make it all work.
Please bring your laptops, so that after the talk you can play around with some of the tools that Bertus shows us.
It's always nice to know how your tools work -- this month we will delve into Git internals!
A quick overview of git's datamodel and inner workings. What exactly are commits and trees and blobs, and how does a commit hash get computed?Slides Code Video
We'll dive into some code based on the "dulwich" Python library, manipulating low-level Git objects directly.Code
Bring your computer and be ready to write some code!
No prior knowledge of Git or Python required.
Slides CodeThe history of async ("event-based") programming in Python through the lens of Twisted and asyncio. This will give us context for the new "async def" and "await" syntax.
We will also do a short pair-programming assignment to play with these concepts.
Bring your laptop! There will be food as usual.
Slides CodeAn detailed explanation of command-line interface design concepts, including parameter handling, error handling, and advanced topics such as configuration files.
Now that you know some theory of making good command-line user interfaces, why not try it out with the click library, which makes many of those things easy?Code
We will have food as usual.
Please remember to RSVP (and to change it to "no" if you can't make it)!
PY-YYC IS NOW ON THURSDAYS!!1!one!
I hope everyone has had a great summer, but it's time to get back to Python-ing.
Reminder
If it turns out that you can't make it to this meetup then please please please change your RSVP. PyYYC will no longer be able to supply food if attendance doesn't match the RSVP list.
SlidesBecause I'm feeling masochistic I think I'll do a presentation on Python meta classes. :brain exploding gif goes here:
SlidesDealing with time and timezones can be complicated, and Python’s default API makes things more difficult. After a whirlwind tour of the theory of time, timezones, and how to store and compute dates and times, we’ll take a look at where Python’s standard library falls short, and how the pendulum library can reduce frustration.
PY-YYC IS NOW ON THURSDAYS!!1!one!
These talks are interactive so please *BRING A LAPTOP* (or a friend with a laptop that you can use)
What is Docker, and why you would want to use it? This talk will go over that, how to install Docker and use the abundance of available images, but more importantly we will also go over writing our own Dockerfiles so you can dockerize your Python applications!
Following from the databases talks earlier this year, this month we’ll explore two non-relational databases: CouchDB and Neo4j.
CouchDB is a document-oriented database with a pure REST API and no query system! We will use its Python-based API and utilities to read and write documents, and learn about its perspective on the traditional web application stack.
Neo4j is a graph database that is optimized for storing and querying data using two fundamental constructs of graphs: nodes (vertexes) and edges. We will use the Python requests module to marshall data in and out of Neo4j, then learn the basics of writing graph queries using the Cypher query language.
Pizza and drinks will be provided by Arts Management Systems Ltd.
This is the speaker’s first presentation, about Flask and REST. This is a popular topic as this is how the modern web works.Slides Code
There are definitely some industry wide opinions on the "right way" to write python. This talk will be a presentation on the Zen of Python.Slides
As always, there will be food and drinks.
Parking Info: https://www.meetup.com/py-yyc/photos/27801964/
**LAPTOPS RECOMMENDED**
CodeCarrying over from last month, Mike will be starting things off with a lightning talk on txpostgres, the Twisted driver for Postgresql.
CodeHow to build a custom Slack bot written in Python. We’ll get a demo on how to create your own Slack team (free) as well as how to create and register your own Slack bot (also free). The Slack bot will be able to respond to private messages and respond with useful info (such as current weather for a given city). Please bring your laptops as you'll be creating your own bot to tweak yourself.
3point Science has graciously volunteered to sponsor food for this meetup. Thanks for supporting us 3point Science!
In other news, PyYYC now has a Slack account. If you'd like to get a Slack invite, and get access to local Python developers for questions, then please make sure to attend!
A lightning talk on a few database concepts and why PostgreSQL should be your go-to database.Slides
Slides CodeWant to learn how to build a small database-backed application quickly? This will be the talk/dojo for you. This will be an interactive presentation where you partner up and build a small web app using a PostgreSQL database.
Setup:
We'll be starting with a basic Flask boilerplate:
https://github.com/sunscrapers/flask-boilerplate
If possible, try and get PostgreSQL installed from here:
https://www.postgresql.org/download/
If you're using Mac or Windows and you don't know which installer to pick, choose the EnterpriseDB graphical installer. Make sure you don't forget the password you set it up with!
If you already have PostgreSQL setup, but don't have PgAdmin (or don't know how to execute direct SQL commands) then download PgAdmin as well:
https://www.pgadmin.org/download/
We'll do our best to get everyone setup with the database before we get started.
Pizza and drinks will be provided by Arts Management Systems Ltd.
Slides CodePython and Javascript are quite similar in many ways. Looking at Javascript ES6 (the latest Javascript standard) and comparing it with Python you may even think that they are similar enough that it doesn’t really matter which language you choose, and after all JS runs in every browser! The reality is far more complex.
This talk will go through many standard Python constructs and compare them with the equivalent constructs in Javascript, old and new. It will also introduce tools that help bring some familiar Python concepts into the Javascript world, if you ever need them. Even if you have no interest in Javascript, this talk might enhance your knowledge of Python features by contrasting them with a different implementation of the same idea.
Whether you’re a new programmer that is curious about which language you should use for your next project or you’re an experienced programmer that is just curious about what’s going on in the Javascript world, this talk is for you.
Arts Management Systems Ltd. will also be providing pizza and beverages.
As always, please change your RSVP if it turns out you can't make it.
Last meetup for 2016!
We'll be continuing last month’s project and adding new features. Don't worry if you missed last month we'll all be going forward from the same code base.
Radical new direction for PyYYC.
CodeWe're going to be doing a multi-month project, the "winner" of each month gets merged and everybody will use it next month to continue.
We will actively use GitHub to do real time merges and comments. So come prepared, bring a laptop and already have a GitHub account.
Dinner is once again being graciously supplied by 3point Science.
Most methods defined in a Python class are called on instances of the class. However, methods wrapped by @staticmethod and @classmethod do not require instances; they are called on the class itself. I will talk about the differences between staticmethods and classmethods and discuss when to use these special methods.
- what is Redis
- Redis data types
- programming using the redis-py package
- working with a single server
- working with a HA Redis configuration
- very brief intro to configuring a Redis server
Future specifics will likely be done by several people.
Food is being graciously supplied by David via his employer Arts Management Systems.
Properties are a core feature of Python that helps you write more maintainable code. This will give a short introduction.Slides
Slides CodeDjango is the leading Python web framework, but its fundamental purpose of responding to link and button clicks with entire HTML web pages can feel old-fashioned in a world where people expect to make and receive live updates to their web pages. One way to get a modern-style app, using mostly Python and not too much JavaScript, is with React.
This talk will be a mashup of the tutorials from Django, django-rest-framework, and React. You’ll work on a survey app that displays poll updates, including ones from other users, without reloading the page.
Please bring a laptop to follow along. Doors open at 5:45, and we’ll have sandwiches before the talks, which will start around 6:30.
Slides VideoOne PyYYCer’s experience at the 15th annual Scientific Computing with Python conference.
Slides Code VideoThis talk will be based around Properties, an open-source library developed at 3point Science that deals with type checking, validation, and program logic. This library creates a declarative, configurable interface that shifts that focus of your code toward data and away from the underlying logic. In this talk, we will demonstrate exactly what we mean by data and logic, walk through a few of the techniques we use tease these apart, including wrappers, class inheritance, and metaclasses, and explore different benefits that are gained by doing this.
Please bring a laptop to follow along. Doors open at 5:45, and we’ll have sandwiches courtesy of 3point Science before the talks start around 6:30.
VideoA quick and informal talk about what PyCon was like this year, and some of its highlights.
Suggested viewing
Slides Code!!! LAPTOP REQUIRED !!!
Code Dojos are an exercise that help to refine your ability to work under time pressure, to work with a team mate to solve a problem, and to encourage that code be fully tested during development.
The Code Dojo works as follows:
- A problem will be given at the beginning of the session.
- Programmers will work in pairs to solve a problem. One person will type on the computer and the other will assist.
- It is highly recommended that Test Driven Development be used, or at a minimum that all code be unit tested.
- Groups may also wish to commit as they go using a version control system like git. (Red > Green > Refactor > Commit)
- Python preferred, but challenges will be accepted.
- Each team will have 20 minutes to work on the problem.
- After 20 minutes there will be a short discussion where each team reviews the approach they had to the problem.
- Each team will then get an additional 20 minutes to incorporate any feedback from the group discussion.
- After both 20 minute sessions each group will give a short lightning talk (< 5 minutes) about how they solved the problem. (Show boating encouraged! Let that scope creep!)
Suggested Reading:
- Writing Tests: https://docs.python-guide.org/en/latest/writing/tests/
- Hello World w/ Git: https://guides.github.com/activities/hello-world/
Slides CodeAn introduction to logging and why you want it. There will be a tutorial on how to use and setup the slightly complicated python logging mechanism followed by a brief mention of some third party apps.
Slides CodeIn collaboration with YYC.js, this meetup will explore https://crossbar.io, https://autobahn.ws/python and Web Application Messaging Protocol (WAMP) from a Python perspective. If you're curious about JavaScript as well, please come to the corresponding YYCjs meetup the previous week to see the APIs for the browser and Node.js
WAMP is a real-time protocol for Remote Procedure Calls (RPC) and Publish/Subscribe (PubSub) messaging patterns. Because the calls are "routed", interesting features like white/black listing, authorization, authentication and fine-grained access control are all possible.
If there's time, we will discuss how the router itself is written; it uses Twisted and Python to implement the Broker and Dealer roles of the WAMP protocol.
This is a joint meetup with YYC.js. Please RSVP there, then come back here for the Python part the following week.
Code Videocrossbar.io is an open-source broker/dealer for "routed" Remote Procedure Calls (RPC) and Publish/Subscribe messaging, using an IETF-track protocol called Web Application Messaging Protocol (WAMP). WAMP supports "frontend" and "backend" style components in many languages (JavaScript, Python, C++, Java) using local (tcp, unix sockets, pipes) and remote ('plain' sockets, WebSockets) transports and multiple serialization formats (JSON, msgpack and CBOR).
This presentation will give an overview of crossbar.io's ecosystem and features, and dive into example components running in the browser and on Node.js
Note that this is a joint meetup with YYC.js: come to the Python meetup the following week to learn how the very same APIs work in Python (both front-end and back-end, on Twisted and asyncio), as well as touching on how the router itself works (it is written in Python using Twisted). This is a great opportunity to learn about the "other" meetup or language if you're a JavaScripter interested in Python (or vice-versa)!
How can you install a bunch of different versions of a bunch of different libraries for a bunch of different projects, and have them all get along? Virtualenv is the standard way to do that. This tutorial will show you how.Slides Code Blog post
Before virtualenv existed, people used something called easy_install. It still works.Slides
Slides CodeWe will use py.test (https://pytest.org) and Selenium (https://docs.seleniumhq.org/) to show off the power of fixtures (and py.test in general) while developing some simple browser tests with the Python API of Selenium WebDriver.
Doors open at 5:45, talks start shortly after 6:00
Slides CodeBuilding websites? AJAX and timeouts got you waiting around? This might be the talk for you. It's time to get real, ughh... time.
Thanks to the Flask-Socket.io extension by Miguel Grinberg it is now a whole lot easier to turn your static websites into highly dynamic real time applications.
This talk will walk through some of the basics for building a simple Flask app that uses Flask-Socket.io -- and of course follows Flask best practices. We'll build the quintessential (for WebSockets) chat app together and demonstrate how using socket.io gives some nice usability benefits over plain web sockets.
SlidesNormal functions stop when they hit a return, an exception, or the end of the function—but generator functions can return values part way through execution.
This talk will cover the basics, along with an introduction to some more advanced cases like lazy generation of infinite sequences—all Fibonacci numbers, all primes—and stream processing.
An in-depth talk on Python context managers. Context managers let you encapsulate code that has to run before or after some other action. One typical use is to automatically close a file after reading from it, even if an exception gets raised, but context managers have more powerful uses too.Slides Code
Decorators are functions or classes that can transform other functions or classes. This talk goes over exactly what that means and how it works, and shows us examples like @memoize, which can automatically cache function results.Slides Code
Writing Python apps for Google App Engine—an introduction, covering how to deploy your app, local development, testing, logging, and the features and restrictions of the platform. Follow along by registering a trial account at cloud.google.com. After the initial trial period, you can keep running your app for free up to the daily limits.Slides Code
Doors open at 5:45 p.m. See you then!
Happy New Year everyone! Starting in March, we will be meeting regularly on the fourth Tuesday of every month. In the meantime, availability at Assembly for January was limited to sharing a date with another group. With my utmost apologies about the short notice, and sincere thanks to the Ruby meetup for sharing their slot with us, we hope to see you for the following talks this Tuesday.
Blog postSuccessfully breaching a remote system using memory corruption is one of the most satisfying feelings in computer science. Of course, finding such vulnerabilities and writing a successful exploit in commercial software is no easy feat, not to mention the possible legal concerns. However, for budding reverse engineers and security researchers, capture-the-flag competitions provide a gateway to learning how to successfully find vulnerabilities and write exploits. The competitions provide vulnerable applications which contestants must find and exploit during the competition.
This talk will demystify how binary exploitation challenges within capture-the-flag competitions often work. A challenge from a recent competition will be solved live. The solution will demonstrate the use of reverse engineering tools, a debugger, and Python to find the vulnerability, come up with an exploitation plan, and finally create a working exploit. Attendees are not expected to have reverse engineering experience.
Running virtual machines on a mac is useful, but what more could you do with VMs if you could programmatically create and destroy them really really quickly? VMware Fusion has a native API to create and destroy VMs. We can use it for end-to-end testing of multi-machine deployments. This talk covers why you might want to do that, using Cython to make object-oriented Python wrappers for C APIs, and some parallelization tricks. Together this allows you to clone five test VMs, run a command in each, and then destroy them, all in parallel, in only 16 seconds on a MacBook. For comparison, Vagrant takes more than five and a half minutes to do the same.Slides Code
To contrast with the talk on Jenkins from last month, this is an intro to buildbot. It has a nicer website than Jenkins, and is written in Python.
Threading is great for CPU-bound stuff, but for I/O, chances are you want event-based programs. That’s what twisted gives you. The demo chat server lets everyone at the meetup talk to the server, and see everyone else typing, in only a dozen lines of code.Slides
Slides CodeJenkins is one of the most popular continuous integration systems: it can automatically run all of your tests whenever any of your code changes. This talk will give an introduction to Jenkins, describe one way of isolating your test environment to make the results more reproducible, and discuss extending Jenkins itself using Python. I hope this talk will help provide good ideas for things to work on together after the talks.
Suggestions include:
- Beginner: Set up Jenkins and get it testing some code you’ve written, so that if it breaks in the future, you’ll know and can fix it.
- Intermediate: Isolate a Jenkins build so that it’s not accidentally depending on something you’ve manually set up.
- Advanced: Write a Jenkins plugin to add functionality, such as tracking a project-specific metric.
Please bring your laptop and some code you’d like to keep working indefinitely.
This month will be project night again.
We'll have one speaker present Super Extreme Tic-Tac-Toe, made in Python and Pygame.
We could have a talk about Pyethereum and Serpent. https://blog.ethereum.org/2014/04/10/pyethereum-and-serpent-programming-guide/
Where can I learn Serpent, the Python-like language? Specifications: The Serpent Language
Examples: Vitalik's Serpent examples
Tutorials: Pyethereum and Serpent Programming Guide
Videos: Learn Ethereum with Vitalik
Assume it’s just an open project night.
ViewCount is a Facebook application that offers an interface for analyzing views of photos and videos shared on Facebook. An article has been written on his application on TechVibes.
Pitch video, demo video
Review the steps to create a Tryton module (a music library) and a Flask web application that integrates with Tryton.using the "Nereid" module. Time permitting we could discuss some of the more interesting potentials such a setup can offer (nicely integrating e-commerce with accounting back ends, etc).
Come work on Python projects, get programming help, help others, and hang out.
Come work on Python projects, get programming help, help others, and hang out.
There may be a talk about scons, test driven development, or maybe the Tin Can API.
Speaking of talks, you should give a talk! Tell us about something interesting you've built, a neat tool you've used, or a terrible way you've misused Python.
Doors are open from 6-7pm. If you arrive late and it's locked you can try messaging via Meetup, calling reception, or texting the number at the front entrance.
Come work on Python projects, get programming help, help others, and hang out.
Python project nights are unstructured chances for Python developers to work together, mentor each other, connect socially, teach, learn, or do whatever else it is Python developers want to do together.
Our project nights are great ways to build the Python community, by allowing them to meet and interact in whatever way they find most beneficial.
Things to bring: a wireless-enabled laptop and power cord.
Need some project ideas? How about:
Sharing some information on SciPy and visualization tools in the Python ecosystem from PyCon 2014.
Have a project you'd like to work on? Maybe the group can help. Don't have a project, but want to learn some real-world Python? Come pair up with another developer.
CodeWant to use a SQL database but don't know how to get started? Used SQL before, but are looking for a good way to do it in Python? Want to see one of the best database abstraction layers (if not the best) in any language? This talk is for you.
The talk will be an introduction to SQLAlchemy using PostgreSQL as the database. It will walk through the basic concepts for getting connected to a database and pooling your connections, as well as how to start using the Core and ORM layer. Some SQL concepts will also, necessarily, be introduced.
This talk will be a little bit shorter than some of our past talks, as we are hoping to rendezvous at Original Joe's in Kensington for some drinks and casual conversation after the talk.
Prepare your computer
You are welcome to use MySQL or SQLLite or something else, but all demos will be in PostgreSQL. SQLAlchemy works with lots of databases. Please make sure to have PostgreSQL setup prior to the meetup, if possible.
Windows: https://www.postgresql.org/download/windows/
Mac: https://www.postgresql.org/download/macosx/
Others: https://www.postgresql.org/download/
Installing SQLAlchemy is probably a good idea as well:
pip install sqlalchemypip installer if needed (https://www.pip-installer.org/en/latest/installing.html)
Also, an appropriate database driver: PostgreSQL: https://initd.org/psycopg/install/
The session will be about various deployment options for Django apps. The following are some potential presentations—some, but not all of them, actually happened at the meetup.
CodeEveryone who works with Django has worked their way through the Django tutorial, building the
polls
app and running it on their local machine. It’s fun and easy to go from there to building little Django apps for your own use. But there’s a huge jump to go from running Django sites on your local machine to running them on the web. Instead of a simplemanage.py
command, you need to configure apache modules and stuff like that, which requires a publicly-accessible webserver that’s properly configured, secured, and monitored, which can be a lot of work and expense for a toy site.In the old days when people wrote static web sites, deployment was easy: you’d pay a few dollars a month for a shared web host and rsync your files over. The host would monitor and secure the server, and if the site had problems, you’d email support and they’d fix it for you.
It turns out you can still do that with Django: DreamHost is one of the most popular shared web hosts, and you can run as many Django sites as you want on it using their standard hosting plan which costs $5.95–$8.95/month depending on how many months in advance you prepay. For that you get unlimited domains, unlimited databases, and unlimited bandwidth, full SSH access to the server, and support when things break.
This is the basic setup I’ve used for about half a dozen Django projects. It’s allowed me to continuously deploy changes with a minimum of fuss, and with it you can write a new app and get it running on the web in minutes, with push-button update ability.
The folks from the Clinical Research Unit in the Faculty of Medicine at the U of C would like to invite the PyYYC group to attend a meetup at the Health Science Center at the U of C Foothills Campus. We will provide some food, and non alcoholic beverages.
Topics will include (at least): scipy, map-reduce, django-mptt and sentiment analysis. Each topic will include application examples in medical research.
See https://fedorahosted.org/suds/wiki/Documentation
(if time permits)
SlidesHow to quickly and easily host a flask app on the internet using DigitalOcean!
This talk covers how to create a virtual machine with a public IP address that you can SSH into, install apache and flask and configure wsgi to serve a flask app, and then put all that into DNS. Cool!
Note by Gordon on hosting with DigitalOcean
For the "Flask Deployment" talk, I'll be using www.DigitalOcean.com's servers. DigitalOcean were kind to provide us with a $10 promotion code (enough to run a basic server for two months or the 24CPU/96GB-RAM/960GB-Disk server for seven hours...).
- If you sign up to their service with a credit card, enter code PYYYC10 during registration.
- If you signed up with other methods (eg PayPal), open a support ticket and mention the promo code, explain you're going to the Python Meetup on Sep. 4th, and reference my support ticket #55881.
The following are this meetup's presentations (tentative list):
SlidesThis brief talk will introduce threads in Python. The threading interface and thread objects provided by Python are discussed. This presentation provides the necessary background information for a future presentation on the Python Global Interpreter Lock (GIL).
Slides CodeOpenCV lets you do all sorts of neat computer vision things, and simplecv is a set of python bindings that greatly simplify the API.
Run the demo to use your webcam to view an edge-detected version of yourself, and then try to use the face-tracking to add a moustache or hat, all from Python.
This meetup will have a session presented by Jordan on Tkinter.
Slides CodeTkinter is Python's de-facto standard GUI (Graphical User Interface) package. It is a thin object-oriented layer on top of Tcl/Tk. Tkinter makes it easy to get going with GUIs fast, but lacks some of the features that larger toolkits, like Qt or wx, may offer. That being said, tkinter provides all the basics of any GUI toolkit.
For the tkinter hands-on activity, all that is required is a default Python installation (you didn't uncheck the Tcl/Tk box when installing Python did you?).
If you're unsure that tkinter is installed properly, testing it is easy.
In python >= 3, try the following:
import tkinter tkinter._test()In python < 3, do the following:
import Tkinter Tkinter._test()If you have problems, try following the test/setup instructions at the bottom of this page.
If you want to do some reading ahead of time, check out tkdocs and the tkinterbook (my primary references when creating this week's talk).
As always, please bring your laptops and your learning hats!
Note: This meetup is sponsored by TRTech who are responsible for providing the venue and the pizza and Arts Management Systems for providing the drinks.
Note: Parking slots 167-173 are free for your use at the parking lot.
We have food and drinks! Thanks to our gracious sponsor, Arts Management Systems, we will have complimentary pizza and drinks at this meetup.
As part of this meetup Abhin and David would like to take some time to reflect on what PyYYC has been to everyone, and help get a firm idea of what it should be in the future. Please try and come early, get some pizza, and get what you'd like out of PyYYC!
Food and the reflective session will be available at 6:15 PM and the talk will get started around 6:30-6:45 as socializing and reflecting permits.
This month I'll be talking about the various testing tools available in Python, and how to use them for the ever-popular Test Driven Development (TDD). The talk will be followed by getting fingers on keyboards and solving a problem with TDD, so please bring your laptop (preferably with Python 2.7 or 3.3 setup!). If you don't have a laptop, that's ok too. We'll be working with partners, so you can team up with someone who does.
This talk will be very friendly to those new to Python, but not to programming. So if you want to get your hands dirty on some real Python code, and have written code in other languages, this may be a good meetup for you. For those experienced in Python, it's a good opportunity to get some TDD practice without having to worry about shipping or deadlines.
Lots of fast-paced 10-15 minute talks followed by everybody hacking whatever they found interesting.
This meetup will need a lot of volunteering from you guys. Take the floor for 10-15 minutes at a time and demo something cool. The following is the current line-up:
Please let me or David McKeone know whether you are interested in presenting any awesome Python related project/tool/library that you know of and I'll add you to the line-up.
Slides CodeWe will be taking a look at Django. Because of the pre-structured (compared to Flask) nature of Django, the meetup will be in the form of a code-along-demo.
I have barely started working on the demo and any help from experienced Django developers would be very appreciated. The presentation slides are hosted on the github pages of the project at https://github.com/py-yyc/python-dojo-3.
A really great suggestion regarding lightning-talks was made in the last meetup. The idea is to have people prepare really short (10 minutes) presentations on things they are doing, libraries they have found, things they have learnt or anything potentially interesting to the group. These presentations will take place right at the beginning of the meetup while waiting for the late-comers. Please let me know if you'd like to present.
As always, please bring your laptops.
CodeFlask, a Python web framework created by Armin Ronacher, is a popular alternative to Django. It is being used in popular applications like the internal Obama election campaign and Disqus' realtime systems. It uses the simplest fundamentals of HTTP to create an easy to use, but highly customizable, framework for almost any web-based application. This session will be a tutorial of how to create a basic web application with Flask with Test-Driven Development. The tutorial will begin with a simple introduction to Flask and a walk-around to get all participants' computers setup appropriately, followed by a coding dojo session where all participants team up to solve a web-based coding problem. Ideally, all participants should bring a laptop setup with a Python 2.7 coding environment. Those that are not familiar with Python can be assisted to get this environment setup on their own laptops.
Since people will be partnering up, a suggested partnership-list will be posted towards the meetup date so that we have teams consisting of at-least one experienced developer.
Edit: The meetup is on the 7th floor of the building but apparently entry to the 7th floor will be blocked by the time the meetup happens. So we'll have some people waiting at suite-100 taking groups of people upstairs.
The discussions in the last meetup suggested that a lot of people would be interested in learning basic to intermediate level python. It was also suggested that we try a "code-dojo" approach to teaching python.
So rather than having a seminar style meetup, I'm going to try a more hands-on approach:
CodePeople will work in pairs to solve a problem. An effort will be made to pair the beginners with experienced programmers. The problem will be relatively simple (yet to be determined) and if some pairs finish before others, there will be scope for more bells-and-whistles to be added to the solution. It is highly recommended that people use a TDD approach to programming. The simplicity of the problem will allow time for both the tests and the actual solution. And in case the groups don't finish the task the same day, it won't be the end of the world. The objective is to learn and have fun! Obviously, people are encouraged to bring their laptops to the meetup. I have made a github organization account for this meetup group. I will add people to the organization as and when they send me their github handles. I would be very thankful to anyone would like to help me organize the dojo. I've never done this before and hence some mistakes will occur. Recently, I sent out an email discussing the objectives I have in mind for the dojo sessions. For the sake of consolidating information the link to that information is: https://www.meetup.com/py-yyc/messages/boards/thread/30907822#92939192
A simple meet and greet just to get to know the current state of the Calgary python community.