0

Python in Atlanta: resources for PyLadies

So, tonight I’m giving a talk at PyLadiesATL about doing Python in Atlanta. My goal is to share information that’s relevant to newcomers and experienced developers about what we currently have going on, so that we might all dream together about what we want.

Since a lot of folks won’t be able to make it, but might benefit from having the info available here, I decided to write up my thoughts. For anyone who has ever asked to pick my brain on doing Python in Atlanta: here ya go. This is what I know. Hope it helps – and: please? Help me out by lending your own suggestions. We’re all in this together, after all!

Our current resources

PyATL – a welcoming Meetup for all

PyATL is Atlanta’s Python Meetup that meets on the second Thursday of every month. It is convened by Doug Hellman, a super awesome guy who works on OpenStack and is a prolific open source contributor. He is well known for his work on virtualenvwrapper, a set of extensions to virtualenv. (Virtualenv is what we use to create isolated Python environments to work on our projects – it’s something you usually encounter very early in your Python-learning journey and end up using all the time). Doug is a great resource for all things Python, so follow him at and say hello at PyATL.

I attended PyATL for the first time in January and had such a great time that I’ve been back every month (except for June, when I was at DjangoCon Europe). I even gave a talk on PyLadies there in May.

Unfortunately, not a lot of women attend the Meetup. The first time I attended, there was only one other woman there, and in subsequent meetups there have never been more than three or four women in a room that sometimes inches towards fifty.

And since people don’t wear “beginner” tags on their shirts, it is easy to assume that everyone there is some kind of Python expert, and is so much further along than you. This can be intimidating if you are a new coder.

This was the case the first time I turned up in January, and I was accordingly nervous. I didn’t really understand the talks. But I did sit at a table with others and forced myself to talk about my interest in and growing experience with Python. Yeah, it was intimidating, and I felt like an imposter, but folks were really nice and I’ve actually become good friends with one of them.

If you’re serious about learning and using Python in Atlanta, you owe it to yourself to give the Meetup a try. Right now, it is our most established regular gathering for Python users in Atlanta. It’s a great way to meet others using the language, hear who’s hiring, and of course, learn from excellent talks.

My favorite thing about PyATL is the high quality of the monthly lectures, and of the speaker-educators who give them. Apart from that very first meeting, there hasn’t been a talk since that I felt went completely over my head, no matter how technical, because the speakers are so good at explaining even complex topics in accessible ways. Newcomers may be pleasantly surprised at just how well they follow along.

Likewise, PyATL is also a welcoming place to get practice speaking. Right now, there is a high demand for women to speak at programming conferences on technical topics. But if you’re not a student, you might not get a lot of opportunities to practice. PyATL can be that opportunity, and wants to be. The organizers are very welcoming to and supportive of new speakers. Some of the folks who are really good speakers are great, Doug told me, in part due to the fact that they’ve been giving talks at PyATL over the years and improving each time.

I used my May lecture at PyATL to prepare for giving two talks at DjangoCon Europe in May and June. It definitely helped me sort out some of my nerves!

If you’d like to get practice soon, opportunities are just around the corner. August is PyLadies month at PyATL, and they’re looking for women who’d like to speak. If you’re interested, please let me know ASAP, as they like to announce the schedule a couple of weeks in advance. You can also ask me about available speaker mentor resources. There are a few local, experienced speakers and Python developers who are available to help you practice and work on your talk.

Similarly, September is “beginners” month at PyATL. The talks will be either by or for beginners, and as always, all are welcome – though it’ll be particularly relevant and helpful for new coders.

PyATL Jam Session – a place to code together

PyATL’s format is lecture: you attend and hear talks by local developers. In contrast, PyATL’s jam session is an informal gathering where PyATL members gather to write Python together. You can choose to bring a hobby project or work with a new friend on something else. If you’ve ever stayed for the “sprints” after a tech conference, the jam session will feel familiar. It’s open to anyone who wants to write Python – all experience levels welcome.

The group is very helpfully convened by JR Rickerson, a local Python and Django expert who writes code every day at his company Red Rivet Studios. JR is a huge supporter of Python in Atlanta and is key to making our Django Girls happen in September as a coach (Django Girls? more on that in a moment).

Information about upcoming Jam sessions can be found at the main PyATL page. The next one is Tuesday, August 4 at 7pm, here at Pindrop. You can learn more and RSVP here.

Conference opportunities: PyTennessee, PyOhio, Curly Braces

Conferences are for new coders and experienced developers alike. You don’t have to have written Python for years to get a lot out of a conference: you can network with other developers, learn about new tools and new ways of approaching old problems, and participate as a volunteer.

It’s been my experience that organizers of Python and Django conferences work very thoughtfully to select a variety of speakers and talk topics that reflect the diversity of its audience and will reach folks no matter where they are with Python. I found this to be the case when I attended PyTennessee back in February. I attended a particularly good talk on security by Ashwini (@ashfall) and Chris (@radix) that was great for beginners. Even the talks that stretched my current understanding of Python didn’t go completely over my head. Again, as with PyATL, this speaks to the quality of developer-educators we have in our community.

If you’re curious what its like to attend and speak at a conference as a learner, I wrote up my experience at PyTennessee here and at DjangoCon Europe here.

Several Atlantans are heading up to Columbus Ohio to attend PyOhio later this week. After PyOhio, the next regional Python conference will be PyTennessee in Nashville in February. You are highly encouraged to keep an eye on the official PyTennessee Twitter for more info as it becomes available, and to mark your calendars for February 6 – 8, 2016.

And though not strictly about Python (or any particular programming language), Curly Braces Conf is coming up at the end of November, here in Atlanta. It is a free, local, welcoming one-day conference about the intersection of computing with arts and sciences. Anyone is welcome to pitch a ten-minute talk about something they’ve found exciting, surprising, or delightful about programming or computing. Learn more here.

Learn online with fellow PyLadies at PyLadiesRemote

Deepen your involvement with the global PyLadies movement by attending a PyLadiesRemote event or helping out as a TA. PyLadiesRemote is the Remote chapter of PyLadies. While it was founded to reach the needs of those who doesn’t have access to a local PyLadies chapter, the workshops are free and open to anyone. Follow on Twitter to learn what’s next.

If you have more experience with Python, you can help out as a TA. I had a great time TAing Katie Cunningham‘s Intro to Python class. Since then they’ve had intro to JS and Intro to Django with Emma Delescolle – the latter, just this past weekend.

PyLadiesRemote is organized by the amazing Anna who also writes the Django Girls “Your Django Story” series on the official blog. More on that below! She has always been a huge help and inspiration to me and I can’t recommend her work with PyLadiesRemote more highly.

Further your study with PyLady Lynn Root’s Newcoder.io

It’s great to get started learning Python with tutorials at Codeacademy, Learn Python the Hard Way, and Coursera. But once you’ve finished these, you may find yourself looking for more of a challenge. Fellow PyLady Lynn Root’s newcoder.io might be just the ticket. Designed to help you go beyond tutorials into building projects, you’ll really get a change to flex your growing Python skills. Tutorials on data visualization, APIs, web scraping, networks, and GUI can be worked sequentially and grow in difficulty. Bonus: your confidence as a Python developer is certain to grow as you earnestly work through these.

Need a job in Atlanta? – Companies that use Python – that might want to hire you!

MailChimp is one of our Meetup sponsors and provided the food and drink we’re enjoying tonight. MailChimp helps folks send better email by providing efficient and innovative ways to manage contacts, send messages, and track results.

They’re currently seeking moderate to advanced Python uses in a variety of positions. You can see what they have available here.

Pindrop Security provided the space for us to meet tonight, and is already well-known in the Atlanta Python community for fostering goodwill by providing a place for the PyATL jam session to meet. They have extended the opportunity to PyLadiesATL to meet here long-term.

Pindrop provides solutions to protect enterprise call centers and phone users by combining authentication with anti-fraud detection technology to verify legitimate callers while detecting malicious callers. They’re hiring in a variety of Python positions. Go here to see what’s currently available.

I have friends who work at MailChimp and Pindrop and they seem pretty happy with it!

Kabbage is the #1 online provider of loans to small businesses. Its concept is revolutionary: it allows users to draw against their lines of credit, as frequently as once per day, for anything they need to grow their businesses. Unlike traditional lenders, who rely heavily on credit scores for decision-making, Kabbage approves small business loans by looking at real-life data.

Kabbage seems like a pretty wonderful place to work, and they were featured in “Best Places to Work” by the Atlanta Business Chronicle. Check out careers here.

The Weather Channel is a household name, and they’re hiring. Employees of the Weather Channel regularly attend PyATL as active participants and nearly every month they mention that they are hiring. Check current positions here.

Local recruiters for Python jobs: A representative from Choice Technology Group, Sandy, recently attended PyATL and is interested in speaking with folks who are looking for Python jobs. CTG is located on Auburn Avenue and has a referral program. For more info, check their website.

Some thoughts: can I get a job as a developer without a CS degree?

So you’re teaching yourself to code because you’re interested in it, you wake up thinking about what you want to build, you crave collaboration on open-source projects. And maybe you’re perfectly content to build pet projects to make your personal life easier, or build a blog using Django to highlight a non-technical interest, and so on. But there may come a time in your life where you’re interested in getting a full-time job as a developer.

I have personally heard many success stories of people transitioning from non-technical careers or educational backgrounds into coding full-time. It is a lot of work, but if you are passionate, you can make it happen. While these women aren’t necessarily from Atlanta, it’s worth it to check out the “Your Django Story” blog run by my friend Anna of Django Girls. She regularly highlights women from a variety of backgrounds, often non-technical. These are women who taught themselves languages, tools, frameworks, and ended up building careers for themselves doing what they love. There’s a good chance you’ll find it very inspiring!

And there are plenty of women in Atlanta who have taught themselves to code and found great success. One very inspiring story come from the Ruby community: Kylie of RailsGirlsATL is now giving her “Amelia Bedelia Learns to Code” talk all over the US! And while my friend Melissa does have a degree in CS, her commitment to learning Clojure is hugely inspiring (and I not-so-secretly hope we work together to bring ClojureBridge to Atlanta!).

If you’re a woman who taught herself to code and has found success in the industry, please do speak up at our Meetups. We want to hear your story and learn from it. Just as there were probably loads of folks who helped you on your way, we hope you can do something similar for Atlanta’s PyLadies. Remember, we all rise together!

Stay in touch with Atlanta’s tech community on Slack

Have you heard of Slack? Slack is basically a bunch of chat rooms organized by topic. Private groups and direct messaging is also available.

TECH404 is a group of chat channels for Atlanta area developers, designers, marketers, business people, and other professionals involved in technology. It’s a common space where folks talk about technologies they’re using, successes and failures, job opportunities, and use lots of emojis.

You can find me in the #all-the-nerdy-ladies channel created by Pamela Vickers (@pwnela) of RailsGirlsATL. I’ve also heard and the #jobs and #gigs channels can be helpful for those looking.

Other social/networking opportunities across languages and tools

A simple search on Meetup will reveal lots of different types of tech meetups in Atlanta, from Clojure to Women Who Code. I compiled a list of a few of them and when they meet in this post “Geeky in Atlanta.”

So know you know what’s out there… what do you want from PyLadiesATL?

Seriously – in this talk/post, I wanted to give you ideas of existing resources here in Atlanta for starting or continuing your Python journey. I’ve covered our other Meetups, job opportunities, remote learning resources, and some personal advice.

But I also want to hear your dreams for Atlanta’s Python community. What’s missing? How can we make it better? Do you want our Meetup to focus mostly on talks from local developers? Do you want us to run a concurrent track of tutorials or workshop series? Please, let me know!

We have a few ideas to run by you:

Demystifying Computers: they’re Not Magic

“Computers Aren’t Magic” is a series of workshops by local developer Shawn Boyette of Curly Braces Conf. These day-long workshops cover computer hardware, the internet, Linux, and programming. This series will be held as a collaboration with PyLadiesATL, so keep an eye on our Meetup page for more details as they emerge. The first one on hardware was held on March 21, and will be reprised.

Using git and Github

Do you have a Github account? Do you use it? Are you familiar with these words?

Github is a powerful tool for sharing your own open source projects so that others can work on them. It also gives you access to the open source work of others. You use git on the command line in order to make changes and do loads of other things.

I’ve used Git and Github to manage my own projects and to contribute to others’. They’re critical tools for open source contributors, and lots of companies use Github to track their work.

At DjangoCon Europe I attended a workshop by Daniele Prociada called “Don’t Be Afraid to Commit”. It’s a workshop and tutorial for Python/Django developers who want to contribute to projects, but need grounding in the tools required to do so. It takes participants through the complete cycle of 1) identify an issue in a project; 2) writing a patch with documentation; and 3) submitting it, using git on the command line and Github.

If this sounds like something you’d be interested in learning, please let me know! I would use Daniele’s curriculum for this workshop, and it would last about a day (food provided).

Django Girls in Atlanta!

Django Girls is a 501c3 non-profit that empowers women all over the world to host workshops that teach women to fall in love with programming. The curriculum is entirely free and open source and available online. Check the tutorial out here. I am organizing Atlanta’s first instance of Django Girls to be held – fingers crossed & we secure our location! – Friday, September 25 and Saturday, September 26.

If you identify as a woman, know English, and have a laptop, you can apply for the workshop. You don’t need any prior technical knowledge. This class is for absolute beginners.

As a workshop attendee you will:

  • participate in a one-day Django workshop (with installfest the night before) during which you will create your first website
  • meet people from the industry and learn more about programming
  • be fed by us – all meals provided during the workshop

The workshop is free to apply and attend, but we only have space for thirty people, so please follow us on Twitter at @djangogirlsATL for the latest news. The official Atlanta Django Girls website will be up on August 1, and applications will open soon after that.

Do you use Django or Python for work or fun? If so, please be a Django Girls coach! You do NOT have to be a Django expert in order to help out as a coach. You must simply be willing to work through the tutorial with 2 – 3 attendees. If you’re interested in helping coach, please let us know at atlanta (at) djangogirls (dot) org.

We are also looking for sponsors. Sponsors are prominently displayed on the Django Girls Atlanta website. If your company agrees that the IT industry can greatly benefit from bringing more women into technology, and you want to be an active part of helping more women learn to program, please contact us at atlanta (at) djangogirls (dot) org.

What else?

I’m sure you have other ideas – let’s hear ’em! And let’s work together to make Atlanta a Python community worthy of women.

2

Happy memories from DjangoCon Europe

Friends, three weeks ago I stood onstage at Cardiff City Hall and gave a talk about Coding with Knives to DjangoCon Europe. One week ago I returned to the US. I figure it’s about time for an update, right?

daniele1

I was honored to attend my first Django conference as a speaker and grant recipient. I experienced endless kindnesses, met so many great people, heard inspiring talks, ate nice meals, and made indelible memories of the generosity and welcome of the Django community. Special thanks to the grants committee for making my attendance possible and to Daniele, chair of the organizing committee (and pictured above), for encouraging me to apply to speak. There are simply not words to express how thankful I am to know him as an advocate, champion, and friend.

Open Day: Sunday

IMG_20150604_053528

Open day was held at Cardiff University, a place that’s no stranger to Django. In 2014, it hosted Django Weekend, the first Django Conference in the UK. The university generously supported DjangoCon Europe 2015 by providing the following:

  • hosted Open Day (Sunday) and two days of code clinics, sprints, and tutorials (Thursday & Friday)
  • Cardiff University staff and students volunteered, gave talks, and provided leadership on the organizing committee
  • the Vice Chancellor’s office funded five scholarships to the conference for students
  • the Schools of Mathematics, Engineering, Chemistry, and CS funded additional places for their students
  • the University’s Counselling, Health and Wellbeing Service provided free counselling at the event
  • Cardiff University Catering Services provided our meals

That’s an awful lot!! We were very lucky to be there. Here’s the official thank you.

yamila

On open day, we invited a wide audience to attend inspiring, introductory talks and tutorials about Python and Django… for free! Above, Yamila summarizes her talk on lessons learned in two years of making decisions in a large Django project. Her talk was very clear and accessible, full of great lessons learned “the hard way” that will hopefully save her listeners some time and trouble.

IMG_20150531_101836

Here’s Žan on how to improve the user experience of applications. I really appreciated his deep respect for the folks who use the products we make: “If a user struggles with your app, it is your app’s fault, not your user’s.” He cautioned developers not to regard users with contempt or disdain, but to remember that they are why we do what we do. If you didn’t get to see his talk, I highly recommend his blog post on the same topic.

IMG_20150531_113129

I just love this shot of Chris during his talk “Arduino sensors, mobile apps, and virtual reality”. Such cyberpunk. Much devices. WOW.

IMG_20150531_121622

Here’s Jamie giving a comprehensive talk on how to make our spaces more inclusive. I appreciated his wide definition of the word “spaces”, which included conferences, local Meetups, and open source contribution processes. He knows his subject well; his well-researched resource list on Github is reflective of the careful consideration and thoughtfulness he’s given to improving diversity and inclusiveness. Here are the slides.

katherine

Katherine‘s talk on “Data wrangling with Python” was light-hearted, fast-paced, and packed with helpful information. Katherine doesn’t emphasize this – and maybe I shouldn’t either! – but PyLadies (as A Thing) originated with her and a small group of friends years ago. It was deeply meaningful to me when I reflexively said “Thank you so much for all you’ve done” and she stopped me, in response: “Don’t thank me. We’re all in this together.” I really enjoyed getting to hear more of her stories later that night at dinner at The Clink.

adrienneopenday

Oh, and I gave a talk, too! It went well. Thanks to everyone who tweeted me and took the time to stop by and let me know your thoughts. So many folks said it seemed like I wasn’t nervous at all, but I totally was, and your kind words were very soothing!

I also heard great talks by Russell, Rhiannon, Mark, Tom, Cory, Amit, Raphaël, Árni, Alasdair, and Rivo. Follow them! You can read about what they talked about by visiting the conference website. I was especially impressed by Rhiannon because not only did she deliver her technical talk flawlessly, but it was – if I remember correctly? – her very first time speaking on the topic!

lunch

Side note: here’s where we had lunch. Beautiful, right? Apparently it’s a dormitory when its not hosting hundreds of developers for lunch.

theclink

Sunday night the conference treated Open Day and other speakers to dinner at Cardiff’s most acclaimed restaurant, the Clink. The Clink is special because it is a high-end restaurant at Cardiff Prison. It trains and employs serving prisoners, providing them with skills, qualifications, and prospects, and helps them find secure full-time employment in the hospitality sector upon their release. The food was delightful and beautifully presented.

theclink1

theclink2

Above, my main course and dessert.

Conference talks days: Monday – Wednesday

cardiffcityhall

Everyone took their own shots of the magnificent Cardiff City Hall, and all were better than mine.

IMG_20150604_144322

It’s beautiful inside.

ola

I really enjoyed Ola Sitarska’s thorough keynote, “Pushing the pony’s boundaries”. Ola is a co-founder of Django Girls (along with Ola Sendecka, who also keynoted!) and a Django core developer who has worked on the project for over five years. You can imagine all that she has learned in that time! It felt like receiving a Django master class, and while there were definitely parts that were beyond my current skill level, I felt grateful to hear her talk. It was inspiring and gave me a lot to look forward to!

typesetting

Likewise, I enjoyed Dafydd Evans’ talk on CAMEL, the Cardiff Maths e-learning project.

xavier

Xavier Dutreilh is one of the few speakers to make me tear up with his heartfelt message and powerful, urgent delivery of the talk “Web accessibility is not an option.” …”And neither are we”, he concluded, referring to anyone who lives with a disability and finds that web applications are not built with accessibility in mind. He challenged us to see his position and offered lots of ways we can revise our work. Here are his slides.

yulia

Yulia Zozulya gave a technical talk on using Python the load-test web apps. There were a lot of cute slides throughout the conference, but this one was one of my favorites. Yet the cuteness belies Yulia’s powerful, nuanced evaluation of different Python tools for load performance testing. We talked before her presentation when she saw me checking out the stage. “You seem so confident!” I laughed and said she seemed the same – perfectly poised, ready for anything – and we both commiserated about how terrified we were. It’s okay to be nervous!

zemogle1mushroom

And yes, I gave another talk as well. My open day talk was aimed at anyone new to Python and Django. I shared three lessons that I hoped would help anyone just getting started.

On Wednesday, however, I turned my attention away from those totally new to the subject and instead addressed experienced developers. Since many of the conference attendees were rather removed from the experience of first learning to code, I shared stories that I hoped would remind them what it was like, to give them a sense of the challenges and opportunities confronting a new coder. My hope was that in hearing those stories, my audience would hear something of their own journey, and would be inspired to offer their help and expertise in ways that felt authentic and meaningful to them.

Thanks to Edward and Russell for sharing the above images, and the kind words! I had a lot of fun.

thatwasfun

Special thanks to Geraint for introducing me in Welsh. That got a big laugh, even from our brilliant speech-to-text transcriptors.

Obviously I wasn’t able to address each of the conference’s inspiring speakers in this post. For more on that, keep an eye on the official twitter as the transcripts and video of the talks become available. (Transcripts are here and are being cleaned up.) In the meanwhile, I also highly recommend Reinout’s exhaustive conference notes hosted at his website. He’s got talks, lightning talks, workshops, and more.

Lightning talks

I loved the lightning talks! Among others, Edward gave an exciting talk on astronomy, Ana told us about systers.org, Craig gave a talk on Djangular(Django+AngularJs), and Russell helped de-stigmatize depression in the developer community by sharing his story (and schooled us on sprinting in a second).

One of the things I focussed on in my Wednesday talk was how important it is to break down the lionization we tend to do of senior developers, or anyone we perceived to be better or more experienced than us. My remarks were inspired by those of Jacob Kaplan-Moss in his PyCon keynote, or Shanley’s writing in Model View Media, where both attempt to dismantle the myth of the so-called 10X engineer. My concern is that in upholding that as standard, we marginalize our efforts, refuse to put ourselves out there, and don’t ask for help when we need it for fear of bothering others, or because we might lose someone’s esteem if we ask a “dumb” question.

At the Monday night dinner at the museum, and throughout the conference, I spoke with several extremely talented developers who expressed their own reluctance to give lightning talks for worry of what their “Django heroes” at the conference might think of them if they stumbled or sounded ineloquent. After much conversation, deliberation, and yes, intentional persuasion on my part, I was thrilled to hear some of them give lightning talks! And you know what? They were perfect.

geraint

Geraint is awesome! Not only was he a member of the organizing committee, but he was a key member of Python Namibia *and* he’s working on his PhD in math at Cardiff Uni! Here he is giving lightning talk called “I wrote my first line of code 1 1/4 years ago”. I really liked how he said that for him, the best way to learn was to teach others. I agree, as that’s what I’m doing with PyLadiesATL.

mystory

Likewise, I loved Ben Sharif‘s talk on how he got started with Python and Django. It was important to hear him express how he seemed a bit nervous pursuing the subject, since his field is medicine. I believe he shared how he was challenged at one point – why are you devoting your time to this? (It reminded me of something similar that Lucie said in her terrific talk on Django and the social sciences.) I can’t imagine anyone ever saying “why are you doing this? how is it relevant?” but the fact is, that attitude is out there and we may have to confront it at some point. Both Ben and Lucie gave powerful reasons why they do what they do, and invited us to help them out.

Closing Day

Wednesday was the last day of talks, and it was full of appreciation for each other and the special time we shared together. I want to highlight a few memorable moments:

daniele

When Daniele was recognized for his hard work by the rest of the organizing committee, and given joke gifts of One Direction merchandise in addition to more, shall we say, *useful* gifts.

volunteers

When the volunteers were recognized! Truly, a conference cannot happen without an organizing committee steering its efforts. I know from my years of experience as a founding board member of Atlanta Veg Fest that preparing for a yearly conference is a year-round pursuit. HUGE thanks to the DjangoCon Europe 2015 committee: Vince, Baptiste, David, Geraint, Daniele (Chair), Ola, Stefanie, and Jason Young.

transcriptors

And of course, the thunderous applause and standing ovation for our phenomenal speech-to-text transcription team.

Thursday and Friday

dontbeafraidtocommit

But that’s not all: no, that’s not all! On Thursday Daniele found the energy to teach a day-long “Don’t Be Afraid to Commit” workshop, where he walked us through git and Github so we’d all be on our way to contributing to open source projects. Many first commits (ever!) were made in this workshop!

Thursday and Friday were given to workshops, sprinting, and code clinics. We gathered informally to work together, enjoy snacks and meals, and yes, snap selfies:

IMG_20150604_193751

With Žan!

IMG_20150606_184244

Sprinting with Mark on his Overflow project!

Mark gave a great Open Day talk called “a web framework for the creative mind” where he shared his experience with Django as a content creator. While he works as a web developer during the day, he devotes his free time to blogging and podcasting. I had the great pleasure to learn a bit more about just how much work goes into that last part when we had coffee together on the final day.

He also made an amazing podcast for us about DjangoCon Europe, just released. Listen to “A Tech Conference with Soul”.

IMG_20150606_181512

With Russell and his travelling banana in pajamas at the close of sprints. He opened Open Day with a peerless talk entitled “What on earth are Python & Django?” It was the perfect start to a day that welcomed guests, visitors, students, and other interested folks who might not be familiar with Django and Python. He explained things clearly with excellent examples and analogies to his own work and interest. During lightning talks he shared about personal struggle with a major depressive episode in a way that was inspiring, touching, and heartening to many. AND he invited us to join him in sprints by explaining, animatedly and with the best emojis, what it’s all about. Finally, he kept us on our toes by asking thoughtful, engaging questions after many of the talks.

IMG_20150604_194535

Ian was one of my most enthusiastic and sincere supporters throughout the week. It seemed he always had a kind word of encouragement at just the right time. A whisky toast to good new friends!

geraintselfie

With Geraint!

sylvain

Sylvain was my buddy for several of the meals. We loved the food and I shamelessly obtained seconds for us on multiple occasions. It was great to talk cookbook recommendations and the weird ways we’ve veganized things. He was the only person at the conference to have ever already used “aquafaba” in a recipe! (I think it was a chocolate mousse?) He also knew about Fran Costigan, which got instant points.

IMG_20150607_084714

My final DjangoCon-related activities were purchasing a print of pelicans from the Cardiff Print Workshop and posing with the larger version used in our branding. Yes, I look super tired here, but it’s a happy tired: a feeling of contentment, accomplishment, connectedness, and joy.

My only regrets from the conference was that I didn’t get to see all of the talks! I caught a seriously nasty cold nearly as soon as I landed, which meant I had a hard time getting out of bed in the mornings, and missed some of the keynotes… including Ola‘s lavishly-illustrated keynote on “rabbit holes” and Baptiste‘s emoji-driven personal account. Thankfully they were recorded and will be posted soon!

I named a lot of great folks in this post, but the fact is, I simply can’t capture and recognize everyone I talked to, ate with, and learned from. Chalk it up to the incredibly warm and welcoming spirit of the conference, where it seemed like no matter who you met or what you talked about, you were greeted with kindness, curiosity, and meaningful connection.

What’s next?

So, what’s next, now that I’ve finally published this overly-long, yet somehow incomplete, account of this incredible experience? Here are a few of the things on my to-do list for the general open source & self-study world:

  • ***Submit a pull request to improve the text of my talks provided by the amazing transcription team.***
  • Bring PyLadiesATL back out of hiatus with monthly meetings and tutorials starting next month. As you may have heard, I took on co-organizing the group very recently, and have big plans with my co-organizer for infusing life and energy into the group.
  • Put serious work into planning Atlanta’s first instance of Django Girls, TBA.
  • Prepare to head to Columbus, Ohio for PyOhio in August and Austin, Texas for DjangoCon in September. Possibly give open day talk at PyOhio. No talks at DjangoCon – just learning and reuniting with my friends Anna and Corryn, who are both are giving talks!
  • Submit a talk for Curly Braces Conf in November, dreamed up/hosted by my smart pal Shawn.
  • On that note, meet up with Shawn and Melissa to discuss the next form of Shawn’s “Computers Aren’t Magic” series for PyLadiesATL.
  • Reconnect with my Clojure-writing colleagues to consider the viability of bringing ClojureBridge to Atlanta in 2015.
  • Continue learning Python and Django, and never stop!

As well as a few other secret plans in the works, TBD/TBA.

Thanks for taking the time to read this post! I feel so lucky to be a part of this community that explicitly affirms that all are welcome.

2

Coding with Knives at DjangoCon Europe!

I have some very big news to share:

Coding with Knives is going to DjangoCon Europe in Cardiff, Wales!

I will be giving two talks: the first will be on open day, to a wide, diverse audience that includes conference visitors, students, local developers, and folks just getting started with coding. The second will be during talks days, to conference attendees, and will be given in this glorious building:

city_hall_exterior_daytime-hi_res.jpg__627x418_q95_cropCardiff’s magnificent city hall!

You can check out all open day activities here and read about the talks here.

In my talks, I’ll describe how two seemingly disparate subjects – cooking and coding – can inform, illuminate, and challenge one another in compelling ways. My hope is that by comparing something unfamiliar and perhaps intimidating (the experience of learning a programming language) to something universal and everyday (cooking), I’ll make learning to code seem more accessible. My goal, like that of PyLadies and Django Girls, is to inspire women to become contributors and leaders in the Python open source community.

My participation is made possible by the generous grant I received from the Grants Committee on behalf of the Django Software Foundation. Without their significant support, I would not be able to attend. I’m so, so thankful.

Thanks to Ian C. for the picture!

My grandmother is also making a significant contribution to my travel. If you heard my PyTennessee talk you already know a little about this amazing woman I call Nanny. Blue ribbons hanging above her kitchen stove, and Linux on her cozy living room desktop, she is my advocate, my inspiration, my comfort, and my strength.

I feel incredibly humbled by this extraordinary opportunity and thankful to everyone who is making it possible. The next six weeks will be very busy ones, as I work on my talks and prepare to travel internationally, solo, for the first time! I aim to make the folks who funded me feel made a good call, and I want to bring the lessons learned back to Atlanta for the benefit of our community, especially as I work on organizing events (including Django Girls!) for PyLadiesATL.

This is huge for me and I already feel the weight of everything I need to do to prepare. But with your support, I know I can do it! Thanks for believing in me.

0

Learning Python: charmed by Coursera

There are two exciting Python Coursera classes coming up and I have signed up for both of them! What, you say? It’s a bad idea to do two so close together, especially when there’s some overlap? Perhaps… but I hope you’ll read on and let me know what you think. There’s a delicious soup recipe hiding at the bottom of this post, if that’s any incentive!

University of Michigan’s “Programming for Everybody (Python)” is a beginner-oriented course that starts on Monday, February 2 and lasts 11 weeks, with an expected 2-4 hours of work per week. We’ll be starting with variables and expressions and finishing with tuples and regular expressions. I don’t even know what tuples are! But I’m excited to learn.

The cool thing about this class is that all of the material is freely available here. Check it out if you’re curious to see what we’ll be covering!

I signed up for this course because it came highly recommended by Anna and because I resonate with the professor’s big goal of making programming truly for everybody. Since I’m interested in bringing other women into the fold as part of my learning journey, I hope to pick up some pedagogical skills and open-source resources in addition to a better understanding of Python.

Yet, because the course seems so low-impact, I decided I needed to pick up another Coursera:

Rice’s “An Introduction to Interactive Programming in Python (Part 1)” is all about learning Python while making games. Though they champion it, I’m a little dubious about the browser-based programming environment that they use. They said it makes developing interactive applications in Python simple, but I’m nervous because I’ve never used anything other than a text editor and a terminal to write and run code. We’ll see how it goes!

This course is much shorter: just five weeks. The weekly workload is considerably more, however: 7 – 10 hours. That translates, on the upper end, to two hours a day, five days a week! Add in another half an hour or so per day for the other class, and I’m in for a busy few weeks. It may not work at all, but why not try? What’s the worst that could happen – I have to un-enroll from one and take it later? That’s a risk worth taking.

I’ve got a lot of other stuff going on right now, but I hope to use Coursera to help me stay focused. Strangely, sometimes when I have the most stuff going on, it helps to throw more onto the pile so I can clarify my desires. The “Survey of Music Technology” class I took in the fall brought order and accomplishment to some of my busiest months of 2014 (October & November). It gave me something to look forward to, concrete goals to meet, and interesting projects to make and have evaluated by my peers. Plus, I learned how to use a Digital Audio Workstation (DAW*) and got some experience with the EarSketch Python API!

My hope with each of these is that I will make more of an effort to involve myself in the Coursera learning community that builds up around these classes by participating in the message boards. I was kind of a lone wolf in my music tech class and perhaps didn’t get as much out of it as I could have in that regard.

Looking forward to getting started soon!

For today’s cooking lesson, I’d like to share a very simple soup recipe that I wrote last week when it was cold for a couple of days. Since a lot of my friends are snowed in, perhaps with some root vegetables hanging around on their shelves, I thought a creamy, warming soup would be just the ticket! This soup takes about a half an hour, making it a great way to get dinner on the table fast.

Coconut Curried Butternut Squash and Sweet Potato Soup with Caramelized Shallots**

Haha, just kidding. I write recipes as I cook, they’re always incomplete, and would never expect you to decipher my hasty handwriting!

Ingredients

  • 1 – 2 tablespoons coconut oil
  • 2 cups shallots, finely chopped
  • Several cloves garlic, minced, or about 1 generous tablespoon
  • Large knob of ginger, minced, or about 1 generous tablespoon
  • 1 generous tablespoon fragrant, good-quality curry powder
  • 6 cups of prepared stock, vegetarian chicken-style if you can get it, or just vegetable
  • 1 medium butternut squash, peeled and chopped. About four cups.
  • 5 – 6 medium-sized carrots, peeled and chopped. About 1 1/2 cups.
  • 1 giant sweet potato or two medium-sized, peeled and chopped. About 3 – 3 1/2 cups.
  • One 15 oz can of coconut milk
  • Juice of half a lemon
  • Optional: if you like it spicy, finely mince one small chipotle (from canned/packed in adobo)

Special tools

Immersion blender or regular blender

Directions

Saute shallots in coconut oil until soft and caramelized, over medium heat, minimum six minutes.

Add garlic and ginger and cook til fragrant, about one minute. Add curry powder and stir to coat shallots, garlic, and ginger, about thirty seconds.

Pour in prepared broth and scrape the bottom of the pan to incorporate all that good toasted curry powder and caramelized shallots. Add butternut squash, carrots, sweet potatoes. Bring heat to high in order to bring to a boil, then reduce and allow vegetables to simmer, partially covered, about twenty minutes or until tender.

Once vegetables are tender, carefully use an immersion blender to puree. If using a regular blender, allow soup to cool til you’re able to handle it safely, then pour it into blender and puree in batches if necessary.

Once soup is fully pureed, add can of coconut milk and stir to incorporate. You may also choose to use a small can of pure coconut cream if you don’t want to add as much liquid. Allow to cook about two minutes over medium-low heat.

Add lemon and taste for salt. If you didn’t use a salty broth, you may need to add it. If using optional minced chipotle, add now. Allow to sit about ten minutes before serving so that the flavors can meld somewhat. Tastes even better the next day, and keeps a week in the fridge!

Some images from the process:

The inspiration: a butternut squash, some giant sweet potatoes, and shallots. The potatoes and celery got used for another soup.

The inspiration: a butternut squash, some giant sweet potatoes, and shallots. The potatoes and celery got used for another soup.

Mise en place

Mise en place

Adding the vegetables

Adding the vegetables

Puttin' it up!

Puttin’ it up!

*The class uses Reaper, but since DAWs are pretty similar, I was able to apply what I learned to my DAW-of-choice LMMS!

**long title! feel free to call it something else!

1

LPTHW: Exercises 11 & 12 and a kale recipe

In exercises eleven and twelve, we move on from simple (and boring?) things like printing to getting data into our little programs.

Exercise 11: Asking questions

ex11
Zed explains that software is mostly 1) taking input from a person; 2) changing it; and 3) printing something to show how it changed. So far I’d just been printing strings, not getting any input from the user. In this exercise, I use raw_input to ask questions (…of myself) about basic facts.

Exercise 12: Prompting people

ex11aa
Exercise 12 demonstrates a new way to write the material covered in eleven, as shown above.

I also used the pydoc command to learn about raw_input, open, file, os, and sys, as directed. It’s certainly faster than Googling!

Finally, I wrote another little “form” to ask questions using the new style:

12bpyFunny that the day I move on from simplest concepts, I’m sharing one of my easiest recipes! In fact, I’m not even sure you can call it a recipe, but rather a series of guidelines for success with kale. Yesterday I demonstrated how to prep it, so be sure to check that out if you haven’t already.

Today’s recipe is for kale with “four flavors”: hot, sweet, sour, and salty.

IMG_20150104_202112

Pictured above: organic vegan cane sugar, apple cider vinegar, red pepper flakes, fresh garlic, and soy sauce.

Kale with four flavors (serves two or one very hungry person)

  • one bunch kale, prepped as directed
  • as much chopped or minced garlic as you desire. I used four giant cloves.
  • tablespoon of oil
  • red pepper flakes, to taste
  • apple cider or rice vinegar, to taste
  • soy sauce, to taste
  • sugar, to taste

Warm oil in pan. Add garlic. Quickly cook til fragrant, about 30 seconds – 1 minute. Partway through, toss in some red pepper flakes. If garlic is cooking too quickly, remove from heat. Do not overcook and do not allow garlic to burn.

IMG_20150104_202138

Add cleaned kale and toss thoroughly to coat with garlic and red pepper flakes. Some of this garlic got a little browner than I would have liked because the pan was hotter than I realized, but I decided to share the image (and story) anyway to show you that even folks who have been cooking for a long time occasionally slip up. When this happens, just put a descriptive adjective in front of the noun when serving it: voila, it’s kale with crispy garlic!

IMG_20150104_202208

Sprinkle kale with apple cider vinegar, soy sauce, and sugar to taste:

IMG_20150104_202234

If you’re completely uncertain about this, start with a tablespoon of vinegar, two teaspoons of soy sauce, and a teaspoon of sugar. Mix well over medium, medium-high heat; kale should be wilting and releasing juices, cooking down significantly:

IMG_20150104_202309

Continue to toss thoroughly so that flavors combine. Taste for seasoning and add more of what you think is missing. This is your chance to experiment with strong flavors and discover what works for you!

IMG_20150104_201137

And there you have it: a lovely little bowl of kale that you seasoned to your own taste. Well done!

Bonus lesson: you can treat swiss chard and collards the same way, just vary the cook times. If kale takes about ten minutes to cook down, swiss chard will finish in 6 – 8 (it’s tender!). Collards will need around 30 (tougher!), and you might have to splash in a few tablespoons of vegetable broth. Make it happen!

3

LPTHW: Exercises 7, 8, 9, 10… and kale!

Hi folks! Welcome to 2015!!

I’ve got a lot of ground to cover with Learn Python the Hard Way before I give a talk on Coding with Knives at PyTennessee on February 8, so let’s get started!*

Today I’m covering exercises 7, 8, 9, and 10 in one post because the concepts/practice are pretty similar. Namely, getting practice typing in code and making it run!

Exercise 7: Mary had a little… Cheese Burger

ex7py

Two points of interest in exercise seven: 1) use single-quotes for short strings, e.g., ‘a’, or ‘snow’; and 2) a line longer than eighty characters is considered bad style in Python. Good to know!

Exercise 8: a little song/poem

ex8pyExercise eight covers slightly more complicated formatting of a string. Zed explains how %r is the “raw” format for getting debugging info about code. It will return exactly what you type, unless it needs to shorten something to be more efficient (he gives the example of changing ” to ‘.)

Exercise 9: eight days a week

ex9py

Exercise nine introduces two ways to make a string go across multiple lines: 1) the “\n” newline escape sequence; and 2) three double-quotes.

Exercise 10: purr purr purr

ex10py

Exercise 10 shows us \t to tab, \n to split a line, and a tabbed list.

ex10apy

It also has, as a bonus example, this silliness. My comment gives you a pretty good idea of how I reacted when the code ran.

Now that we’ve breezed through these exercises, let’s move on to something else quick and simple: kale! But wait, you didn’t expect me to say kale, did you? Kale is this giant, leafy, floppy, dirty, messy vegetable that perhaps you’ve found a bit unapproachable in the market:

IMG_20150104_201658

Kale is big.

IMG_20150104_201721

Kale is dirty. Sandy, muddy, gritty, grimy. Especially if you get the good (organic) stuff.

IMG_20150104_201900

But don’t let the combination of giant + dirty scare you off. Prepping kale is easy and fast.

Take one leaf at a time and grab it by the base.

IMG_20150104_201930

Start at the bottom and pull upwards, stripping the leaf from the stem. Be firm and sincere!

IMG_20150104_201949

Pull all the way to the top, so that you’re left with only the greens in your hand.

Tear into pieces and drop into a bowl to be washed.

IMG_20150104_202012

See? easy! That took about two minutes.

IMG_20150104_202035

Rinse thoroughly: at least three changes of water. The first two rinses will be extremely cloudy. Subsequent rinses should run clear (or slightly greenish from the chlorophyll, I guess). Be sure to swish vigorously with your hands to loosen and dirt, sand, or grit.

I used lacinato (sometimes called dinosaur) kale here, but you can use this same method with curly kale. Just strip the leaves from the stem, tear into pieces, rinse, and spin in a salad spinner to remove extra moisture, if desired. Easy, and unlike collards, no knife is required.

Kale is also super fast and easy to cook, but you’ll have to wait til tomorrow’s post to get my recipe for garlicky kale with four flavors (hot, sour, salty, & sweet). See you then!

*I failed to mention? Shame on me! That’s right, I’m totally thrilled and honored to be giving at talk at PyTennessee on my experience learning Python with Coding with Knives. The talk will be in the afternoon on Sunday, February 8 at the Nashville School of Law in Nashville, Tennessee. Learn more about the conference and register to attend here!

6

Exercise zero: the setup. Mise en place.

“All you need is an editor, a Terminal, and Python.”

So goes LPTHW’s exercise zero. Zed walks his reader through identifying a basic text editor, locating the terminal, and installing Python. He also explains the importance of being willing to Google for answers.

getting_started

According to Mr. Shaw, I must have a thing for control since I’m a Linux advocate. (Where’s my huge beard tho??) Kidding aside, Linux — and Free and open source software (FOSS) more generally — just makes sense to me, and I’ve been using it since I started grad school in 2007. Astonishingly, our computer labs all ran Ubuntu!

It took a few days to get the hang of the slightly different look, but I was hooked from the start. I resonated deeply with what I understood to be the guiding principles of FOSS. Why not use software developed by people who are excited to build it, who are daily dreaming up and making improvements, and who are guided by a communitarian ethos? And once you’ve made something, why not share it with others for mutual benefit?

But that’s an aside for another post — and something I care about so much is certain to get its own post! Back to exercise zero.

Text editor, terminal, Python. Pretty straightforward, eh? NOT SO FAST. When I picked up LPTHW two years ago, he didn’t have the nifty “Command Line Crash Course” as Appendix A. Instead, you just noodled your way through basic bash in the course of the lessons. I’m going to spend today and tomorrow working my way through it before proceeding to the next lesson. I have a feeling that much of it will be familiar.

How about in the kitchen? What do you need to get started there?

miseenplace

The most important concept I can share today is that of mise en place. Pronounced “MEEZ ahn plahs”, it’s a French term that means “put in place”, and it’s about all the preparation you do before food is put to the flame.

Ever wonder how high-end kitchens can turn out complex, artful dishes in a reasonable amount of time? It’s because they can spend anywhere from four to six hours before dinner service prepping ingredients and their workstations before a skillet ever hits the gas.

Mise en place is a philosophy so dear to some that they get tattooed with the phrase. It’s a way of life, a dictum that means get all your stuff out so you can get your food out. It’s slowing down so you can speed up.

Home cooks are well served by putting mise en place into practice. Next time you’re hungry, try to follow these guidelines:

    • Start with a clean kitchen. Remove distractions.
    • Read the recipe thoroughly.
    • As you’re reading, make mental note of technique, kitchen tools, and ingredients used.
    • Check your pantry for ingredients.
    • Check in with yourself to make sure you know how to do what the recipe is asking. If you don’t know what “blanching” means, follow Zed’s advice above and google it. If you don’t have a chinois and it seems essential, google alternatives or consider picking another recipe. No shame in that!
    • Check your pantry and fridge for all ingredients.
    • Prep all ingredients: chop, dice, mince, measure, etc.
    • Read the recipe one more time.
    • Take a deep breath. You got this. It’s time to cook!

Vocab re-cap

  • bash: the command line interface that I’m learning the basics of with the help of Appendix A
  • FOSS: free and open-source software: users have the freedom to run, copy, distribute, study, change and improve the software (from What Is Free Software?). I use Ubuntu, a popular Linux distribution. I don’t really like the Unity desktop environment so I usually use xfce. Once upon a time I also used Kubuntu and KDE.
  • mise en place: French: “put in place”. Loosely, an instruction to gather and prepare the ingredients and tools needing for cooking.
  • Python: the programming language I’m learning and writing
  • terminal: where I run the code
  • text editor: where I write the code

Now I’m curious: what’s the coding equivalent of getting a mise en place tattoo? What command do you live by?

And for the cooks: can you remember a time you didn’t employ mise en place, and what were the consequences? Most recently I started making lemony cornmeal-blueberry muffins and realised I was out of plain cornmeal. In a pinch I tried tamale flour. Surprisingly, it worked!