Video summary
The first segment of the event focuses on community engagement within the Chicago Python Users Group, known as "Chippy." Organized by Elise FG, this initiative aims to foster a vibrant tech-focused environment through various special interest groups covering niches like data science, DevOps, and finance. To enhance member interaction beyond standard meetings, Chippy has launched open-source sprints with specific tracks for collaborative programming and individual project work, alongside a renowned mentorship program that culminates in lightning talks at their main gatherings. Recognizing the need for better tools to track community activity on platforms like GitHub and Twitter, the group developed "Busy Beaver," a custom Slack integration designed specifically for their workspace. This bot automatically summarizes daily public contributions from registered members' GitHub accounts into dedicated channels and reshapes tweets within Slack, thereby increasing visibility of member projects and encouraging broader participation in open-source efforts under an MIT license.
Following this, Veronica addresses the challenge of documenting code effectively by advocating for visual aids over traditional comments or man pages. Drawing on her background as a geologist who relies heavily on rock orientations for documentation, she emphasizes that developers should build tools tailored to their specific workflows rather than relying solely on standard commands like Git's time-travel features which can be confusing when dealing with small visual changes. Her solution involves creating dashboards and utilizing screenshots to track project evolution over time, a practice often overlooked by the industry but crucial for self-taught or second-career developers navigating new languages. She highlights that effective documentation should solve immediate problems encountered during development, suggesting that creators build custom solutions when existing methods fall short of their needs.
The subsequent talks cover diverse topics including education outreach and technical deep dives. Mason discusses "Teals," a national program pairing industry professionals with high school teachers to improve computer science education, noting the significant gap between parental desire for CS courses and current availability in schools like those in Texas. He outlines various volunteer roles ranging from co-teaching full classes to remote lab assistance, emphasizing that even limited time commitments can make a difference. Later, Karl demonstrates how simple Python scripts using Circuit Playground Express boards can instantly engage beginners by turning physical lights on and off via code, bypassing complex setup processes like virtual environments or project management tools. James shares his journey from learning Python through online resources to building personal websites, illustrating that high-quality tutorials exist for free while encouraging learners to document their own glossaries in OneNote for offline reference.
The final portion of the summary addresses testing strategies and community infrastructure. A speaker compares `unittest` and `pytest`, recommending `pytest` for its functional style, powerful fixtures, extensive plugin ecosystem, and cleaner syntax compared to class-based structures found in standard library tests. Another presentation details common pitfalls with Python's Unicode handling, explaining how ASCII defaults can cause crashes even in Python 3 if terminal encoding variables like `LC_ALL` are misconfigured, urging developers to rely on built-in Unicode objects and let the interpreter manage conversions unless manual intervention is necessary. The event concludes with an update from PyTexas organizers about their transition to a nonprofit foundation structure supported by the Python Software Foundation, inviting community members to join committees or attend meetings to help sustain regional conferences. Finally, a speaker showcases running Emacs and developing Morse code applications directly on Android devices using Termux, proving that robust development environments are accessible anywhere without needing dedicated hardware.
Read the full video transcript
okay all right first landing talk is a
lease ng he's gonna talk about busy
beaver the Chicago Python community
engagement slack let's give her a round
of applause hi everybody my name is
Elise FG I'm one of the organizers of
the Chicago Python users group and I'm
here to talk to you about this community
engagement initiative I've been working
on for the past few months called busy
beaver so we're really fortunate to have
a fantastic community of Python East as
in the Windy City and at the heart of
this community is the Chicago Python
users group or chippy with over 4,600
members chief he's one of the largest
tech focus communities inside the United
States we've been around for 15 years
and in that time we've had around 150
plus monthly meetings in addition to our
general meeting that happens once a
month we have a lot of special interest
groups for more niche interests so we
have one for data web development slash
DevOps
finance we recently started one on
algorithms and coding interviews to help
people whiteboard oh we have one for a
lunch well some people that can't make
our evening meetups can attend that one
and we recently started doing some open
source spreads so last month we sported
on chicken org we also have a monthly
project now and this project mat has two
tracks there's a challenge project night
track and here there's a group of four
people they mod program on an assignment
together and we also have a BYO bring
your own project on track where people
just work on projects and they get help
if they need it we also have a
world-famous Metro fit program this is a
13 week one-on-one project-based
mentorship there's two cohorts a year
there's around 20 to 30 people every
single 20 to 30 pairs every single
cohort and at the end the top 10 mentees
present their lightning talks at a
chippy main meeting the next one could
be on may May 9th in Chicago so if
you're around please come on by it's
gonna be a lot lot of fun so like most
organizations slack is our primary means
of communication and its really become
ingrained within our community so we
have a lot of channels focused on
different conversations some of my
favorites include book club there's one
for advent of code and code review is
always a lot of fun too slack has a lot
of plugins
and we use these plugins quite
extensively but they don't really solve
the specific problem that we have we're
trying to build a tech focused community
and we have a different set of problems
so try to foster conversations around
technology to keep people coming back so
our slack is only as good as our
integrations only as good as a community
so nothing really spit off in our
specific use case so we got a team
together and we all let them loose on
the problem after a little bit design
and a lot of hard work the end result
was busy beaver and it's a slack thought
built specifically for the chicago
python workspace so the bots mission is
to increase engagement within the
chicago Python community that's a pretty
broad scope so what does it really mean
what are some ways we can engage the
community
giddup seems like a good place to start
it's a social coding platform a lot of
developers use github but as an
organization we didn't really have a lot
of insight into what our community was
working on what projects they were doing
what open source contributions they were
making what things were they starring so
working with github seemed like a good
place to start so the first feature we
created was uh was a github summary bot
and so what this did was if you register
love with a spot every day at 2:00
o'clock it goes out to get up collects
all your public activity in the last day
and it posts it within a channel it got
a lot of great publicity mostly for me
so we decided to add another feature
over the past few months that Chicago
Python at Chicago Python Twitter channel
it's becoming a little bit more popular
we're sharing more content so we decided
to integrate this within our within our
slacker space so the second feature we
built was since not everybody on Twitter
on slack follows us on Twitter
we just reshare our tweets inside of
that one channel so if we were released
in January so far we only have Q
features but we are an open source
project released under the MIT license
we have a lot of documentation showing
how to get started contributing we also
have a project board with a lot of
issues I've been tagging them with a
good first issue how hard they are how
much effort they're gonna take there's
also a CIC teapot a pipeline built in so
if you get a feature out there write
some tests we can get it shipped into
production really
so if you want to start getting
contributing look at her read me join
the chippy slack I'm gonna be sprinting
on this project Monday if anybody's
around
I have stickers so if anyone wants to
get stickers so it could be something
out there find me if you make a PR I
will give you a button so there's a sign
up there also thanks for your time but
before I go I just want to acknowledge
all my chippy organizers couldn't be up
here without all their hard work and
also to everybody on the busier teams
thank you everybody
okay
why was it going
oops computers are really hard yeah we
knew about computers
okay that's a preview of slide number
five you all alright alright yeah thank
all right Veronica is going to give us a
talk about get hooked on images and up
your documentation let's give her a
round of applause hold on to your hats
all right
so how many of you use get and get hug
for your programming files almost all of
you that's fabulous okay so how many of
you have explored different ways of
documenting your projects could be
creative use of comments man pages
images anything maybe some hands so we
talked a little bit about this earlier
today
remember our cat we gotta label our cat
so you could have ASCII to explain where
you are in a particular piece of code
you could create a home and pages
describing sections of your code but
it's possible that some of these obvious
comments aren't so obvious to you so the
best Doc's are the ones that help you
you need to learn to solve the problems
that you have and your problem solving
is going to be with you throughout your
careers certainly longer than you know
any particular flavor of JavaScript and
I'm a self-taught second career
developer and manage try on a lot of
different hats so today I'm going to
talk about a problem that I encountered
as I started to shift from scripting to
front-end roles how I developed a
solution and you know how we can learn
to build the tools that we wish we had
so this talk well it's about tools is
really about opening yourself up to
making the software you need to make
your get workflow work for you so not
everyone uses get the same way
so before I talk about my get venture I
should tell you where I was when I got
started so when I learned get I you
learned it the way many people do a kind
and loving friend told me there are
these five commands okay don't ask me
again it's been 72 times that you've
asked just write down the five commands
okay okay so maybe I got a little bit
into that person's hair um I never did a
get intensive and everything that I've
learned since then I've learned as I've
needed to do it so as you can guess when
I started to work on my own projects I
was a little uncomfortable with the
whole get time travel thing um so I
tried to keep things linear it's like a
push-pull checkout but anything fancier
than that didn't feel like it you know
it kind of felt out of the question um
however there's a lot of things you can
do with good and I made a partial list
right here
so at the time I was relying as I
started to move to more visual work I
was continuing to rely on commit
messages to guide this time travel and I
researched how to write good commit
messages but because I was making these
small visual changes sometimes just
color changes do I add in hex values my
commits and I was making small changes
experimenting and so I had a lot of
trouble finding the right commit to make
I started to wonder if there was a
better way so I'm a super visual person
I've always been a super visual person I
this is my second career I used to be a
geologist we look at rocks rocks have
orientations and we take
years of them and we use these a
documentation so as I was shifting I
started to look for ways that that
visual documentation would show up one
of my first open-source projects was I
was applying to outreach E and I was
trying to create a dashboard and I found
myself really wishing as I was looking
at these requests to know where the
dashboard had been in the past because I
was not only trying to learn a new
language yes I tried to apply to
outreaching using the language I hadn't
worked in before so I was trying to
learn that new language but I was also
trying to kind of see where the
dashboard had been and so I talked to
the Vella pers and said do we have
screenshots of this I'd really love to
see it they said well no one does that
and I said oh wow you know like there's
a whole industry that doesn't think like
me how amusing does that feel so you
know I could have felt kind of bad about
that but I realized that I wanted to
make something in his a five minutes
already it really is
yeah
the full version of that talk is online
so you can also very good opposite next
up Mason okay we do have raffle prizes
we are plenty of Python scripts a rap on
top it's not the irony there is not lost
on anybody anyone hear me talk right
close to the mic
alright so Mason's going to talk about
Gil's program computer science in every
high school I love it
let's give them a round of applause
okay so in my talk earlier today I
mentioned that I am a volunteer for
Till's and I'm gonna take this quick
time to do a five minutes feel on what
Till's is so Till's is a nationwide
program that aims to pair industry
professionals with teachers who do not
have the experience that they need to be
teaching computer science in high
schools but are being forced into these
situations because of the demand for
computer science educators a lot of
these statistics that I'm going to views
and put out here are gonna be mostly
strictly based on Texas because I gave
this talk at home away with my regional
manager literally yesterday and I have
all of those staffs that I guarantee you
these apply across the nation from what
we've actually heard Texas is actually
doing a little bit better on the
computer science education than most so
I think a couple years ago there was a
poll that came out that 85% of parents
want their children to be learning
computer science in high school or in
some form of primary education currently
today in Texas as it stands 60% of
schools do not offer a single computer
science course through their entire
primary school curricula all the way
through secondary school and all that so
no CS whatsoever you get a typing course
and how to use word but you don't get
any sort of programming and what ends up
happening and I give this I give a
similar talk at Texas State University
my alma mater where I usually pull who's
a math major and I tell them graduations
you're now a computer science educator
because you're gonna take this class in
college and you're going to know
computer science and you're gonna be
asked to teach this they basically pick
a random teacher who has had some sort
of programming experience in their in
their collegiate career and they go oh
you know how to teach AP Computer
Science a which is the advanced Java
course that basically covers all the way
through data structures in
object-oriented programming and oh you
only get one year to teach it it's
extremely difficult I'm currently doing
that right now at a school about 20
miles that way an idea Montopolis and I
will tell you right now I came out of a
program from a high school that did this
and we're talking getting from
HelloWorld in Java to abstract classes
and interfaces and being able to
implement them in a timed test by the
end of the school year it's insanely
difficult so what we need is we need
educators are we are what we need is we
need professionals to pair with these
educators who have the professional
experience that can teach and help us
teach not only the students but the
main goal is to help educate the
teachers so that way after a couple of
years the teachers would be able to
teach this class on their own without
our help anymore
I guess the example that we use is
imagine that you had a single ap French
class or you had a single French class
in college and then you are told you are
gonna you're gonna be given ten weeks
over the summer to learn French and now
you're gonna be teaching French ap next
semester oh and I hope all your students
pass that test that's the reality of
what's happening but what if we also
said well also what we're gonna do at
the same time we're going to put four
native French speakers in your classroom
and they're going to help you not only
teach the course but they're also going
to the course makes it a little bit
easier right so that's what teals aims
to be so there are varying levels of
volunteers ship that you can do I myself
went in you know deepen with the I teach
three times a week a from eight to nine
o'clock before I go to work every day
you can be a teaching assistant and
that's kind of at the same level that's
at the co-teach model if you don't have
that kind of time to develop to dedicate
that's awesome you know I understand we
all have busy lives you could also do
what's known as the lab assistant which
is where you know maybe the teacher has
a little bit of experience in the
classroom teaching this but doesn't need
like a full-on co-teach environment to
learn how to teach those courses so what
we end up doing is you'll just be it to
a lab assistant two times a week you
come in the teacher teaches the course
and you're there to answer questions
during lab maybe help with some of the
other stuff if that's still too much and
you don't have like you have very little
time they offer things a classroom and
retreat program which basically turns
into a guest lecture program where you
go in every other week maybe once a
semester and enrich the class with your
experience any level of time you can get
they will find a place to put you and
this is not also only in person they
have a amazingly built remote classroom
system that they demoed for me yesterday
at my talk at home away and it's like
unbelievable this is where education is
going to go in the future with remote
educators and they're gonna be leading
the way with this tech cuz it's really
cool so if you don't have a school in
your local area and you still want to
dedicate and you have this time to
dedicate that's fine if you can get a
webcam and a microphone they can set you
up and you were in your home and you can
you know teach remotely so the main
thing that we need here is we need
people to sign up if you are interested
I would say go to Till's 12k org slash
volunteers or just check out the website
teal swell k it has been worth
everything is really been worth it for
me to get back in the classroom I came
out of an extremely strong high school
computer science program three years in
high school computer science high school
got all the way through computer science
four and three years and did multiple
competitive programming things I have
more medals that say I know Java than I
care to admit
also this curriculum is not all all Java
there are multiple classes Java is kind
of like the end course it's the top
level ap there's a computer science
principles ap course which teaches more
about what the Internet is and stuff and
there's an intro course that they're
piloting that they're starting just in
Python and they need Python developers
to help with it and I'm out of time I
believe in for him
already since they are there you're
gonna be the prop in the next talk okay
so our next talk is Karl Karl is our
videographer so let's get Karl around
the poster
my answer to Papa complaint I used to
hate that question now I love it because
not enough hands whip one of these out
with one of those out of my backpack I
hand it to the person they say wow how'd
it do that no it did it well it blades
yeah we did not rehearse this at all I
helped them plug it in it's a USB thumb
drive oh by the way it's I had a fruit
product three three three three circuit
playground Express and then their file
manager comes up it's a thumb drive they
open code dot pie with an editor that's
it so if you can right click and pick
open with editor yeah well you didn't
over there
oh well that that makes sense yeah
if we would just got done rehearsal this
would have worked we're rehearsing huh
and there you've got some Python code
and you can show them if you touch the
things lights turn on and if they say
how do you make it turn off you can talk
to them about Python code and within
five minutes they're engaged in
programming no virtual environments no
downloading no project management none
of that boring stuff like you know hello
world as boring compared to hey how did
that do that so there you go I'm done
[Music]
there you go alright so next up is Oh
and what's your talking talk about
custom argument types with our car so
we're gonna fix your mic first a little
closer to you now custom R that's pipes
without question okay customers getting
around the block
so the last time I gave a lightning talk
I went for 45 minutes
so I wrote a wrote a script I hope I can
get it done in five this time so I
learned to use our parse last few months
at my job and we needed to do some
custom types who uses our parse in here
right CLI scripts with command line
arguments great so you can see I have
some sample code here showing a simple
as a simple parser I'm just going to run
that and there's actually several
arguments that are defined both let's
just look at a few of them so the first
one is name and if I put in a name Alice
we can see that
unrecognized arguments Alice oh because
I didn't do - -
I know why this is be honoree okay so we
see I put in Alice it's a default
argument it comes out as a string no big
deal pretty basic if I want to say the
type of go be an integer then I can add
and now if I see the party is not in
quotes it's actually the tuberculin and
I can use it as an int I can also define
other custom arguments argument types if
I write a method that takes a string and
will return we'll check the contents so
here's a case where I want to have a
percent type so in my case I want to a
percent type and it's going to be
so sometimes we want to give 110% or our
managers do sorry
110 must be in the range of 0 to 100 so
that's the first taste test we have
let's make it 50% and so now percent has
been validated to be 0 100 and also
converted to a float so that I can now
just do direct multiplication within my
function but the the big interesting one
is that we have a lot of enums in our
test environment large small medium
brief and testing for these arguments we
test for the name and then we have the
test for the string of the enum and so
forth and then I thought that was very
clunky I like testing using is for
testing enum values so I wrote a mixin
to go with our enum class that allows me
to use it directly or almost directly as
a argument type and in this type we
define a methods going to take our
string it's a class methods gonna take a
string and sort of try to actually use
the index access on an emu to give me
back the enum that matches if not I got
a key error in this case I'll return not
valid I also have the stream because
what I want leave you notice here that
if there's no color provided we're
actually getting the list of the valid
colors so I can say and say color is
some bad color when I say sorry that's
not a valid color if I can say red then
what I got was actually not the string
red I actually got the enum color dot
red and then if I want to when I use
that in my code I can treat it as an
enum so here I've got parse the
arguments and now I'm gonna say if the
Cairo
color is color got gold I wanna print
pretty
oh I'm still gonna hard 10% that's not
so good colors gold and we're pretty
that's and so that little mixin is
sufficient to take any EMU and it as a
mix in for art typing and then I can
treat it as an argument saying type is
colored of art type and the choices are
color and that's all I need to do to
make that genome work as a valid
archetype for art person and this is a
gist on github just github.com /p tfcg
so you can pull it down from there thank
you forty minutes
titles not there so i need to look up
over here okay so James gonna give us to
talk building and deploying a site for
beginners let's give them a round of
applause
okay so my journey with the coding has
really started in 2012 Elizabeth this
2014 with this only programming class
called team treehouse so who here is
encoding with Python for about a year or
less okay we made someone that they want
to tell pathan that hey this is a good
programming language you can learn about
for a complete newbie
we got I've got some people right so how
would you two do set to them there's
some blue cancer can take in different
areas in different cities but what if
you're really remote somewhere so my
dreams started like with here
it isn't it end here actually but what I
love about the system it's with
tree house they have so many different
languages
I was actually on effectively program of
theirs this is a subscription-based
model this one $4 a month first I was
actually trying to be a full stack with
JavaScript but I like how python is
typed and how I was reading it actually
switched over to there and I was
actually learning how to build my own
website so I'll show it to you right now
and it was it was it started with this
program but I turned to Sue's YouTube
videos which helps you in just a moment
but this is what I built this is just I
built this as blast I'm running this on
sequel Lite server deployed on the note
so then I also use bootstrap to design
the interface it's very simple but I
have an account
reset my email if I don't remember it I
can change my code any time so for
someone who you who you want to show if
I thought to and say hey you can build
your own website so who here has their
own website
who here has designed it and built it on
their own good yeah so that's the power
of Python and if this if you know
someone who wants to demonstrate their
work this could be the place for it so
what ended up happening was I didn't
teach Houston treehouse actually there's
this guy I think he's the best as far as
step-by-step tutorials on YouTube it's
free okay he does he starts actually
with a lot of basic Python language
concepts and in his videos it's kind of
a private home like for example what is
a closure before that he talks about
what is a first-class function and
before they talks about what is the
decorator there's something like that in
that word so he has this amazing class
tutorial series and there's also a
Django tutorial series that it's about
maybe five six hours total but I mean I
love to dive into things deep when I'm
looking at them so it ended up being
maybe 10 hours from total but this will
get you from zero to knowing how to
access Linux well that's a sage encrypt
and make your site secure because that's
kind of a complicated process this
should not be so but it was well that's
okay I also have so so with that what I
learned along the way just for someone
like me who's learning you know Python
really on my own I am been using OneNote
to pull the glossary I know there's a
glossary and there's documentation
online or read
or these different packages but what
I've done is sometimes I just see things
my own words so for example you see here
I was trying to learn about plastic
welcoming before that I actually was
reading just about see quality in itself
so this is why we use that's rock prints
because instead of having talks as the
website can do this offline and like I
said it's in my own words also putting
on procedures there so that was a lot of
color next this is I don't fit nobody
uses this but at least for Windows this
is a great command-line interface called
commander you could have multiple tabs
open this is in Paris shell we can just
also add another one let's say it's
command commander so that could be there
as well can all these tabs open and
available and I've been using github for
my code and apart from that I just have
to say I did a lot of this on my own in
my house in coffee shops so if you're if
you know someone wants to learn this
language they can learn it online and
actually do it pretty much for free at
the start but eventually you want to get
to know people and that's what I did so
that's why I'm here I just don't know
about this convention two days ago so
that is all for me
[Applause]
hello again everybody this would be a
quick talk I get this question a lot of
times being a test guy and I gave the
whole talk about egad how to wear a go
test so which one is better unit tests
or PI tests
what should we pick for writing our
tests before I give my personal opinion
of answer I want to just compare the two
and just kind of shake out things so has
everyone seen the Python developer
survey from 2018 Yes No maybe yeah yeah
if you haven't just google it it gives a
whole bunch of cool statistics on the
Python developer community that was done
in collaboration with the Python
Software Foundation as well as JetBrains
if you look at that survey it's
interesting of the people who are using
test frameworks of Python 46% use PI
test whereas only 32% use unit test unit
test is pretty nice though the best
thing about unit test is that it comes
with the standard library you don't need
to install anything extra it's there
from the get-go there is nothing wrong
or particularly bad about unit tests
however when you look at PI test PI test
is a little bit more powerful and a
little bit cleaner when you write your
tests and PI tests you can write them as
functions whereas in unit tests they
shoehorn tune to a class structure
personally I prefer the functional style
of writing test functions some other
things with PI tests you get those
fixtures that are more reusable you also
can scope fixtures to it individual test
level versus module level it's really
nice and PI test also has plugins galore
if there's a plugin for something you
want if PI test probably has it if you
want parallel execution PI test Exodus
if you want code coverage PI test code
if you want integrations with Django or
flask it's there and also just want to
shout out in case you missed it knows
it's dead I strongly recommend not using
the newest framework
so now my opinions overall I think
Python is one of the best languages for
test automation period it's because it's
pythonic it's easy to pick up for
beginners it powerful for power users I
also personally think pi test is one of
the best frameworks in ending language
particularly because it has test
functions because of its plugins and
also because of its fixtures it's a very
very nifty way of handling things
personally I also like my test BDD to
buy BDD behavior driven development if
you don't know what that is I recommend
you look it up it's a really cool way to
write tests and so with all that to say
personally I prefer PI test over unit
tests thank you because strong and
beautiful I also worked for the Python
Software Foundation if you're not aware
with what the Python Software Foundation
is we're gonna do that really quickly
first off it is a legal entity that
takes Co the copyright trademark an
intellectual property for the Python
programming language we also support the
Python community of the infrastructure
both technical and fiscal for technical
perspective it's things like python.org
and i.org from a fiscal
perspective we can support any project
that aligns with our mission by letting
them sort of hang out on at the umbrella
of our 501c3 status we also provide
grants worldwide over $300,000 in
Counting and sort of going up with time
and 75% of those grants are distributed
outside of the u.s. those grants go to
things like the Django girls tilings
workshops meetups and regional Python
conferences like like there's one in
Texas what's it called yeah Ojai Texas
right uh-huh additionally the PSF puts
on pike on every year if you're not
aware of what pike on is pike on is a
conference that happens in that I think
it's Cleveland Texas so it's only it's
only three hours from here
I'm sorry it's actually in Cleveland
Arkansas so it's eight nine hours from
here
Oh Tennessee Cleveland Tennessee which
is 14 hours from here sixteen oh here we
go okay so Cleveland Ohio so it's a it's
a 20 hour drive and it's not too late to
come and as a matter of fact if you want
you could just like caravan with me I'm
heading back that way in my car after
pie Texas so you can just get in your
car and come along with me but sincerely
there are some tickets left for PyCon if
you haven't made arrangements yet and in
prepare in preparation for this
lightning talk I realized that next time
I do a road trip there are a lot of
Cleveland's I could my title not my
talks title I was going to another I
thought you'd want to know what the talk
was about - so I went back to edited and
there was no other field so anyway
that's who I alright so the talk is
actually it's not how good no it isn't
it's Python Unicode attention system
applause
so spoiler alert this talk is recycled
and also you're getting the five-minute
version of a 30-minute talk but anyway
this is about Unicode and the problems
that I've had with it and just the
simple fact first of all not doing live
coding demo here these are kinds of
problems that you run into trying to
deal with Unicode versus ASCII in Python
the long and short of it is that back in
the day we all used ASCII and Python was
built back in the day and it still wants
to use asking most of the time the
hilarious thing about this particular
error is that the program crashes while
trying to print a unicode character and
then successfully prints the unicode
character in the stack trace now you may
have noticed you may have noticed that
the problem here is that I'm using
Python 2 now if you're like me and you
have to maintain some legacy code it's a
fact of life you have to live with it
and at least not break things that we're
already working but assuming that you
switch over to Python 3 that should fix
all of your problems right because
python 3 uses Unicode by default instead
of ASCII so it's a lot simpler we just
print and we get the same crash and now
in Python 3 it fails to print the stack
trace correctly so I'm not sure that I
have time to get through all of the
reasons why this is a problem and
continues to be a problem in 2019 so let
me see if I can give you the short
version ASCII was nice because it
skipped a lot of steps we had a direct
mapping of characters to numbers and
those numbers were all one byte with
Unicode though things get a little more
complicated we have direct mappings of
characters to numbers but those numbers
are not mapped directly to bytes there
are actually a lot of different types of
encoding that you can get for you
some of them represent all characters
well not all characters some of them
represent more characters and others and
the one that you're going to be using
most of the time is going to be utf-8
which will what's going on here and some
probably got some unique ideas you know
what explain it so anyway when you're
working in Python specifically Unicode
is a type it's a type of variable
although if you're on Python 3 skipping
over a bunch of stuff here this is a
nice little disambiguation table that
you should use basically in Python 3
strings by default are representations
of Unicode code points so they don't map
directly to bytes until they have to in
other words until you're outputting them
to something outside of the Python
language like a file or your terminal or
the network and at the point where you
have to convert a Python Unicode object
into some bytes you have to go through
your encoding and you have to basically
settle on what how that character should
be represented in bytes
according to the official Python how-to
on how to use Unicode in your code
basically don't care about encoding as
much as possible just use the built-in
Unicode objects that the language gives
you internally and let the interpreter
handle the encoding when it needs to
talk to something else but as I saw
earlier that actually doesn't work a lot
of times you can handle the encoding
yourself manually by using encode or
decode on your string objects
to make a long story short Python does
its best to detect the preferred
encoding of the file it's writing to so
when you're running a script in a
terminal it's going to actually ask for
the terminal hey terminal what kind of
encoding do you want and so the reason
that the reason we can still get this
crash even on Python 3 is that it's
possible to miss configure your terminal
if any of you have worked inside a you
know like docker containers for example
if you just build like the default
Debian docker container and you go in
there and you try to use Unicode you may
get a crash because out of the box it
doesn't have a lot of environment
variables set up and there's one in
particular here we go LCC type is an
environment variable that is going to
signal to not only Python but to a lot
of programs what type of encoding they
should use when they're talking to the
system and so if you explicitly tell it
that it should use ASCII then it's gonna
try to use ASCII and it's gonna fail to
print this multi byte number in one bite
so yeah that's that's kind of long and
short of my talk I guess the shorter my
talk by minute version anyway and there
are further problems if you try to do
this in SSH okay all right cool so you
some of you may have been coming to my
textures for a while we might be the
oldest regional Python conference in the
u.s. at least apparently the question is
whether hi Ohio happened earlier or
later in the year in 2007 that's like
the the question about who is actually
that the first regional anyway so we
started out as high camp Texans
and then two years later adopted the
name PI Texas and then for a few years
we carried along and then in until 2012
the important thing to note is there was
one person running this group running
the whole thing okay which is okay
because it was actually only a couple
dozen people that would come to each
year each one I think I started coming
in 2010 and there were like 30 or 40 of
us in Waco and then as we grew it became
more and more difficult for people to
for what this one person to do it was
Sheila Allen if you if you know her so
in 2013
Sheila kind of backed away and we had a
group I organized it for the first time
ever and that group also decided to
start charging because we would have
people say yeah sure I'm coming and then
they wouldn't come and that by the way
it's the primary reason why people pay
to go to the conference and so I that
led to a problem right if we're gonna
take money I including sponsor dollars
how do we do that all right well as
earnest just mentioned the PSF jumped in
and helped us out with funding we could
send our funds to the PSF and then they
would reimburse us for charges and that
worked out really well except it took a
while and everybody had to put dollars
like you know like we you know we would
get reimbursed know that so and also the
logistics have improved greatly in the
last five years in the last two years
but it just took it was kind of a
problematic process for us so we thought
it would be easy and we decided to just
do it ourselves so in 2014 we founded
the PI Texas Foundation which is a
registered nonprofit corporation here in
Texas and the next year we got the
Department of the Treasury to agree that
we're a 501 C 3 because if we ever go
under any profits that we make will
actually go to another nonprofit I guess
which one it would go to and then we
even got come on that's actually I don't
know why that would be challenging
cool uh well you can see it here I don't
know why you can't see it up there but
we got a logo it's blue and it's yellow
and it's in the shape of Texas and we
actually talked to the Python the PSF
logo committee because they have very
good reasons to protect their trademarks
i and they actually said they like this
one so that's nice so anyway here's
here's the world since then we were in
College Station again in 2014 to get our
501 C 3 and we're in 2019 now so what's
the governance of the the pipe Texas
foundation there's a Board of Directors
currently there are three of us I there
are four officer ships that are sort of
mandated by our bylaws interestingly if
you think that if you note that there
are three three directors and four
officers that means that one person is
doing to people's jobs and the good news
is we can grow our board so we have some
committees for example for the
conference semi annual meetings that's
all so we're interested in building
support for the foundation it is not you
know that much work it's mostly coming
to meetings and making sure that you
sign things I so if you're at all
interested in the foundation and I'm
talking to some of you who've been
around in the community for a while and
also some of you who are brand new we
could bring new ideas to the to it we're
really interested in hearing from you I
can't promise a board seat but I can
promise that we will find a way to to
let you contribute to the community and
so let us know show up at meetings
throwing Google Hangouts it's not hard
and really that's it and then one last
thing that I think is important but
Google doesn't is I mean it really
doesn't like so the the foundation is
not the conference every year kind of a
new group of people could work on the
conference there's there's a standing
committee that that has worked on it but
but they're not on all the same so I
think Dustin tomorrow is going to be
talking about how to contribute to the
conference which is a much more
immediate need every year and but that's
the foundation the conference are not
saying I'm really glad you took the
picture of the broken slide okay
all right and that's it that's it for me
[Music]
try it we're gonna get this done this is
gonna be really awkward but it's gonna
work no it'll be on those things to be
afraid the supreme cast did work like
the moment I sat down all right this is
gonna be hard
you're gonna see something everyone turn
your heads this is good it's gonna get
all right there we go
okay so when I showed up today I wasn't
exactly planning on getting a lightning
talk but over lunch
I was talking to alloy and I was showing
this really cool terminal any oil in her
program and he was like oh you should
you should present on this there are a
lot of guys that like hacking with
Python and I go oh that's that's fair
and I know when you're not surrounded by
other people who are enthusiastic about
Python or actually developing on your
own computers that you might kind of get
the itch to develop a Python well but
this can kind of scratch that here we
have our handy-dandy rebel boom there we
are we are at home on your Android
device using term ox on our phone I mean
we can do simple things you want to do
some minor subtraction there it is
here I go that's pretty cool Sorenson
but what if I want to develop on my
phone like I really want to develop mice
and I I hear you okay
so here we are we're running a team up
session so I can just simply transfer
over to another window then I go okay I
want to write something so I'm gonna
pull up my faithful Emacs client and I'm
gonna open my little Python development
project and this I cobbled together over
lunch it's a small script that takes in
a user input oh is this mirrored oh God
well it takes in a user input and
translates it to Morse code and then
vibrates the phone and does a little
system os call in Morse code
just because home and so I'm like I'm
not gonna do any of this live so we'll
switch over to another team bucks window
and go and call our little more senator
through Python well that's that's pretty
cool there we go now it's running and
it's asking for our input well let's see
what I can spell sideways let's see if
there's a PI Texas and PI works whatever
and then we run it and you can't feel it
but I can my phone's vibrating and it's
punching out the Morse code there so if
you're ever just needing developing
public there you go
[Music]
okay so I'm gonna I'm gonna wrap off to
the speakers I'm gonna give to one of
the speakers a lot so one of the
speakers I'm gonna give this lovely
water bottle that is our speakers gift
by the way so if if next year you become
a speaker gonna talk except at the
conference submit a CFP you might win
maybe not this exact water bottle but
something quite nice like it as our
appreciation for all speakers they've
done really excellent job giving a talk
today we don't have enough for all the
Lightning talk speakers we have one for
one of them so we're just gonna watch
twice we're just gonna random that
choice this right now and see who it is
[Applause]
okay so thank you to all the Lightning
talks of yours nice Rolla talks today we
[Music]