Monday, January 28, 2013

I'm Geeky, She's Geeky, We're All Geeky

I spent this weekend at the She's Geeky conference at the Computer History Museum in Mountain View. The event was recommended to me by Anca Mosoiu, the owner of Tech Limnal.

The She's Geeky conference is an 'unconference', as such, you never really know what you're going to find until you've found it. Each morning volunteers from the participants wrote topics they'd be willing to teach, discussions they'd be willing to facilitate, or questions they wanted answers for on sheets of paper, and then used a large wall space to schedule them into the available time slots and session locations.

I originally thought the (un)conference principals posted on the wall were common to all unconferences, but I have been unable to find the list on either unconference.net, shesgeeky.org, or the wikipedia entry on unconferences (and the linked entries on different methods of facilitating them). So I'm going to try to drag them out of my memory and hope someone will come along and give me corrections and/or a reference. In any case, these principals made the event one of the least stressful events I've ever attended.

  • Whomever shows up are just the right people.
  • The session starts when it starts and ends when it ends.
  • If you aren't either learning or contributing to the conversation, it is your responsibility to go somewhere where you will.
  • Butterflies and Bumblebees are encouraged to flit from session to session contributing to each and cross pollenating between them.
  • Others...


Over the course of the weekend, I attended the following workshops (names may be abbreviated / combined):
  • Behavioral Interviewing (Lab126 flavored)
  • Personal Data Ecosystems
  • Wordpress
  • Open Organizations
  • Data Visualization
  • Quantified Self
  • Technical Interviewing (Google flavored)
  • Django, APIs
  • Online Learning
  • Recruiter Wisdom (Groupon flavored)
  • Mentoring
  • Uncomfortable Personalities at Work
  • Impostor Syndrome
My big take-aways from the conference are the following:

A framework for practicing for interviews that doesn't involve me trying to be something I'm not.

A hardware-y project (that I don't feel comfortable making public yet).

A project that is a cross between things I know I need to do for self care, quantified self, data visualization, and programming, that may lead to a commercial product.

A plan to learn math at Khan Academy, from wherever I'm currently at up through at least statistics, so that I can stop being limited in my educational choices by lack of prerequisites.

and

5 questions to ask people who ask me to be their mentor

  • Where do you want to go?
  • Where are you now?
  • What challenges / obstacles are in the way?
  • What have you tried so far?
  • How much time commitment are you looking for?
I plan to encourage other women in my network to attend She's Geeky next year. I was not the only one who arrived overwhelmed and anxious and left inspired, enthusiastic, and refreshed. If you're in Seattle, you're female (I suspect those who identify as female would be welcome as well), and you are any kind of geek, there's a She's Geeky scheduled there in late April, don't miss it!

Sunday, January 27, 2013

Setting up Python on Windows

I don't develop on a Windows machine myself, but while volunteering at Mozilla, a number of prospective contributors have asked me for help setting up Python under Windows. If anyone has differing instructions for Windows versions not mentioned here, I would be happy to include them.

Install Python

Please find out what version of Python is used by the project you plan to work on. If you're starting a brand-new project, you probably want to install 2.7.3, unless you already know you need 3.x. (Many Mozilla projects are still using 2.6.) The version number in the following instructions will be referred to as "XX".
  1. Download a Windows installer from http://python.org/download/
  2. Run Install (take note of the install location. the default location is C:\PythonXX)

Update your Path

If you are installing multiple versions of Python, be aware that the one that appears first on the Path is the one that will be used when calling "python.exe". If you need a specific version of python for your project, either re-arrange the path or call it with "python27.exe".

Windows XP

  1. Start Menu > Settings > Control Panel > System
  2. Advanced (tab) > Environment Variables (button near bottom)
  3. In the System variables list, find the entry for Path and click Edit

Windows 7

  1. Start Menu > Control Panel > System
  2. Advanced Settings (left pane)
  3. Environment Variables (button near bottom)

Both / All Versions

  1. Find 'Path' in the system variables and click Edit.
  2. Scroll to the end of the value, add a semicolon as a separator, and add "C:\PythonXX" (or the other place you installed python to), another semicolon, and "C:\PythonXX\Scripts".

Open a DOS / cmd window for entering command line instructions

On all Windows versions, this can be done from Start Menu->Run "cmd.exe". The default prompt in a command window is "C:\WINDOWS>". This will be used in instructions to specify that the command should be run in this window.

Install setuptools

The easy_install script is a part of setuptools, and it is used to install other packages from online sources.
  1. Download ez_setup.py from http://peak.telecommunity.com/dist/ez_setup.py by visiting the address in your browser and doing 'Save As' on the file. The Desktop is a reasonable place to save it to, you won't need it long.
  2. C:\WINDOWS>python.exe c:\Users\<username>\Desktop\ez_setup.py (replace the path if you saved it in a different location).

Install pip

pip is a 'second generation' wrapper for easy_install which is more flexible and has more options. It will automatically put files in the C:\PythonXX path hierarchy so that python.exe will be able to find them.

  C:\WINDOWS>easy_install.exe pip

Source Control

If you're working on an existing project, find out what kind of source / version control system it's using. Some common source control systems (with their Windows applications) include git / GitHub, subversion / tortiseSVN, and mercurial / tortiseHG. Find out if you should 'fork' (make a personal copy of) the repository before you download / check out / clone it.

Install virtualenv

If there is any chance you are going to be developing multiple Python applications on this machine, you should install virtualenv. It allows you to install differing versions of the same library for different projects.

  C:\WINDOWS>pip.exe install virtualenv

Possible Next Steps

If you installed virtualenv in the previous step, then you want to create and activate a virtual (python) environment. It is not generally accepted to check virtual environments into source control, so be sure to set it up in a location outside of your repository. I recommend putting them in a folder called 'environments' in your home directory (c:\User\<username>).

  C:\WINDOWS>mkdir c:\User\<username>\environments
  C:\WINDOWS>virtualenv.exe c:\User\<username>\environments\<project name>
  C:\WINDOWS>source c:\User\<username>\environments\<project name>\bin\activate

From here what you do is going to depend on your project. If it is an existing project and there is a "setup.py" file in the main directory, then you probably want to:

    C:\WINDOWS>python.exe setup.py develop

If there is no setup.py file but there is a requirements.txt file, then:

    C:\WINDOWS>pip.exe install -Ur requirements.txt

If neither of these apply to your project, consult with its documentation to find out how to install the project's pre-reqs.