Code review for the new PyLadies in your life

This goes out to all the geeky spouses, partners and friends of brand new programmers:

Code review is a cultural practice.

When you sit down to read the work of another, you bring with you all the experience you’ve had up to that point, the code reviews you’ve received, the mistakes you see yourself making and the bits of hard-won knowledge embedded in your coding personality.

Basically, you bring your coding baggage into your review.

When a brand new programmer shares their code with you, they are fundamentally vulnerable. They’re sharing something creative, and like any new creative endeavor, the product is a newborn taking it’s first few, shaky steps.

They are asking for your help and very likely, they’re asking for an indication that they’ve accomplished something. That all the time they just invested in learning something new — paid off.

And, in the case of PyLadies, women are all stepping out on a limb. Some are taking a Coursera class or maybe a workshop, but mostly working alone. We have each other to learn with and we’re all learning something new. Many people are spending 2 nights a week with a group, and another 15-20 hours a week struggling through the very first programs they’ve ever written.

Here’s the very best thing you can say when a PyLady shares her code with you:

“Thanks for sharing this!”

And then, after you’ve had a look:

“I’ve had a look and you’re doing a great job. Tell me about what you’ve written.”

Seriously. That’s about it.

If the PyLady asks specific questions, give your answers. Keep it short and sweet, and encouraging.

I’m laying this out because lots of the women who are trying this stuff out for the first time have loving, geeky spouses and friends who are very excited that the women in their lives are learning to speak their languages. And some of that enthusiasm comes in the form of detailed critique of style, formatting and design.

I’m here to let you off the hook. Just be encouraging, and ask a few open ended questions. That is all you need to do.

Because the reality is: the PyLady is her own worst critic. And, when she comes to a meetup, she can get the detailed help she needs from the other women who are struggling right along with her.

The people in the group have earned the right to share and receive feedback by strugging together. That’s the value of a cohort and one reason why PyLadies, and groups like them, are so important.

If you’re lucky, you’ll get your chance to share some code back, and maybe even write something together. But you build that coding relationship one encouraging step at a time.

If you’re interested in joining PyLadies-PDX, we’re meeting weekly through December, and then starting Monthly meetings on January.

And, if you want to read more about code review in general, here are some additional blog posts I found useful:

A rosetta stone for Mac OS X installers for PostgreSQL

I’m no longer using Mac OS X for my primary desktop, but many of my coworkers and friends do. Particularly developers writing applications that use PostgreSQL (aka Postgres) for their data storage.

I’ve spent a lot time over the last few years troubleshooting people’s Postgres installs in the following, very common, situations:

  • A developer installed Postgres on their Mac laptop >1 year ago
  • Now they need to upgrade their Postgres to help me, or support a new application that needs new features
  • They have an old database they’d like to migrate to the new version
  • They have no idea which particular Mac OS X installer they used last time

For this exact situation, I have documented some features of the Mac OS X Installers for Postgres.

And, I felt so good to see this right after I posted the wiki page earlier today:

@zacduncan: “@selenamarie This is helpful to me at this very moment. Thank you. ”

\o/

A mostly working Lenovo x230 running Ubuntu and Gnome3: Two weeks later

I’ve been planning to switch to a Linux laptop for a while, either for work or as my own laptop aged out. So, joining Mozilla was the perfect opportunity to switch over. And, I’m happy to report that I’m fully converted, enduring a few bugs that need some help, and seriously considering Gentoo to handle all the weird driver issues I’ve got.

Overall, I’m liking the new setup. It’s easier to install all the developer stuff I need like new versions of Python or PostgreSQL. Having real package management instead of adhoc messy MESS of installers is an incredible relief.

I’m using Firefox for my primary browser instead of Chrome, which has made me realize how broken lots of websites I look at regularly are for most people. Also, I am exploring more plugins as a result.

My favorite feature in the Gnome window manager (and lots of window managers support this) is the ability to automatically snap windows to 1/2 or full size with the ‘window’ and arrow keys. It saves an incredible amount of time vs using a mouse to resize.

Unfortunately, I lost the epic rundown of all the problems I encountered on installation, as I encountered them. I can sum up with: the experience of desktop linux has significantly degraded in the seven or so years since I last tried to have a linux laptop as my primary workstation. Talking with friends about this has caused several to remark that Apple got it right with tightly controlling vendors and having full control over the hardware used with it’s operating system. Without a real commitment from a vendor toward supporting drivers, the situation seems unlikely to improve. I think the strongest hope for this is ZaReason, but they weren’t an option for my corporate laptop.

Here’s a few tidbits that might be helpful to a future x230 owner, wanting to run Ubuntu:

I’m running 12.04, Precise Pangolin.

Installed from an Ubuntu netinstall image created with: http://unetbootin.sourceforge.net/.

Here are a bunch of ppas I used, from my /etc/apt/sources.d directory:

deb http://ppa.launchpad.net/andreas-diesner/lightdm-fix-temporary/ubuntu precise main
deb-src http://ppa.launchpad.net/andreas-diesner/lightdm-fix-temporary/ubuntu precise main
deb http://ppa.launchpad.net/andreas-diesner/lightdm-fix-temporary/ubuntu precise main
deb-src http://ppa.launchpad.net/andreas-diesner/lightdm-fix-temporary/ubuntu precise main
deb http://linux.dropbox.com/ubuntu precise main
deb http://linux.dropbox.com/ubuntu precise main
deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu precise main
deb-src http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu precise main
deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu precise main
deb-src http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu precise main
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb http://dl.google.com/linux/musicmanager/deb/ stable main
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb http://dl.google.com/linux/musicmanager/deb/ stable main
deb http://ppa.launchpad.net/hannes-janetzek/enlightenment-svn/ubuntu precise main
deb-src http://ppa.launchpad.net/hannes-janetzek/enlightenment-svn/ubuntu precise main
deb http://ppa.launchpad.net/hannes-janetzek/enlightenment-svn/ubuntu precise main
deb-src http://ppa.launchpad.net/hannes-janetzek/enlightenment-svn/ubuntu precise main
deb http://ppa.launchpad.net/pitti/postgresql/ubuntu precise main
deb-src http://ppa.launchpad.net/pitti/postgresql/ubuntu precise main
deb http://ppa.launchpad.net/pitti/postgresql/ubuntu precise main
deb-src http://ppa.launchpad.net/pitti/postgresql/ubuntu precise main
deb http://ppa.launchpad.net/upubuntu-com/chat/ubuntu precise main
deb-src http://ppa.launchpad.net/upubuntu-com/chat/ubuntu precise main
deb http://ppa.launchpad.net/upubuntu-com/chat/ubuntu precise main
deb-src http://ppa.launchpad.net/upubuntu-com/chat/ubuntu precise main

There’s a painful lightdm problem fixed by a package the first source in the above list.

I also compiled a new kernel for myself to try to fix a bad video flickering problem I’m having with my external monitor. Jury’s out on that – the flickering hasn’t entirely gone away, and it doesn’t happen to my coworker who’s got a x220 and is running Gentoo, but a different kernel.

Also, my video camera doesn’t work, and I actually need it. Skype seems to work ok for voice, but not video. Vidyo, however, doesn’t work at all.

Wish list for the future:

  • Camera working
  • A Skitch replacement
  • Vidyo working
  • A package for my .bash_profile, .ssh and .gpg directories that I can install in any new system
  • A better driver for the touchpad that doesn’t let my mouse jump around while I’m typing (Yes, I have already enabled the feature, and it doesn’t work so great. Friends suggested it might be a hardware limitation.)
  • Change configuration to have the mouse behave like the latest OS X (reverse scrolling)

Here’s a few other sites that helped me out:

And, I don’t recommend trying out Enlightenment as your only window manager on your first try. You’ll need something else anyway to get your wireless configured, and if you do something stupid like trying to install ‘econnman’ and you blindly say ‘yes’ to uninstalling some packages you don’t know anything about, you’ll end up accidentally removing your wireless devices. So, start with Gnome, read up and switch to E later.