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.

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!