Switching to a standing Desk; thoughts

by jesse in ,

IMG 2155

For a 5 month update, check out: "The Standing Desk Experiment 5 Months in"

For about the past year or two, I've been working on improving my "state of being" for lack of a better term - focusing on more productivity, health, etc - I think everyone goes though this at one point or another. Various events of the past year - an incoming second kid, badly dislocating/injuring my knee and rehabilitating that, realizing that being an overweight, unhealthy geek probably wasn't in my, or my families' long term interest and seeing my little girl grow up faster than anything I've ever seen (see this excellent post by Merlin Mann - "Cranking") has triggered me to make a series of changes, the most recent of which is directly interesting to a lot of you - I've switched over to a standing desk setup at work.

I've spent a lot of time since last november going to a local Bikram Yoga studio - that, combined with a drastic change in diet has allowed me to lose a fair amount of weight, and my knee which had been bothering me got dramatically better. However - recently despite losing almost an entire teenager in weight, being more active, getting better shoes, etc, etc my knee and back started acting up again. I had been seeing article and friends talking about standing desk setups and how they helped them - but I mean, I'm a hacker, and I have an amazing chair - it's my job to sit 12+ hours a day right?

No. My job is to get things done, something I can't do if I'm miserable because of a stupid knee injury and back pain despite all of the other work (yoga, losing weight, exercise) I've been doing. So, I started doing a lot of research. Interesting (or fortuitously enough) around this same time an article in the New York Time "Stand Up While you Read This" came out that really made me ask myself if maybe there was a better way. I also found out that sitting with my knees bent/in a chair was contributing to how inflamed and painful my injured knee was. Time for a change.

Throughout the years I've seen people in various jobs have standing rigs - I always sort of laughed and wandered back to the comfort of my comfy chair - but now, as of last week - I've joined the league of "odd people" standing there at hacked together standing desk. I'm always one to experiment so I absconded with a table from a nearby lunchroom and a monitor stand it really hack the basics together.

The important thing was ergonomics: The monitor should be right at eye height (or just below) and the keyboard should allow my elbows to be at a 90 degree angle, or right thereabouts. Luckily, I have comfy shoes thanks to Superfeet insoles I have to wear because I unreasonably obey everything my Dr. says. All told it took me about 10 minutes to set everything up and start rocking the new setup.

I'm pleased to say that after starting the experiment Monday morning at 9am, I pushed through the entire week, only sitting about 1.5 hours in total during the workday, and without any ill effects. In actuality, I found that certain things immediately improved. For the first few days my feet and my knees and my back were bothering me, which is to be expected. You don't go from rocking a chair 8+ hours a day to standing and typing without some pain. The surprising bit of pain came from my shoulders/arms/neck - apparently I had grown more accustomed to resting my elbows on my armrests and desks then I had realized. Out of all the other minor aches and pains - these were the worst by far.

On the positive side - I noticed (as did my lovely wife) that my posture immediately got better. I feel like I gained two inches in height this week alone! Also, my energy levels increased almost immediately - I felt less lethargic, I didn't suffer from the post lunch "nap attack", all in all I felt a lot more active and energized. I also felt that I was more engaged in the tasks I was working on - I was less distracted, more zero'ed in on each chunk of work I was banging on, That said - for the first few days, there were times all I could think about were my feet (discomfort) and the fact I was standing.

In order to resolve the mild discomfort, I've acquired a padded "anti-fatigue" mat designed for people who work (standing) in kitchens all day, which I'll throw into the mix next week to see if it helps me adapt into this. I'm taking the "kill the habit with fire" approach - most people I know or know of who use standing setups tend to swap between standing and sitting for various periods throughout the day however I'm working on breaking myself in to just standing for prolonged periods first before I "spoil" myself by sitting.

Ultimately - the result of the week 1 experiment is:

  • Knee pain: Greatly reduced. In fact, my injured knee feels great, except when I sit with it bent for an extended period of time, such as at home.
  • Greater focus: I feel more deeply engaged in the tasks that I'm working on.
  • More active: I joked about this on twitter, but the fact is, is that I'm not standing still - I'm constantly moving/fidgeting/etc. I feel more active overall, and it shows. I also find myself dancing a little bit when working and listening to good music. Much to the amusement of my wife and coworkers.
  • More social: My officemates may hate this part, but given I'm "already up" - rather then send an email, or IM, it's much easier for me to just go over and talk to them, which means I'm moving even more.
  • Improved posture: My posture improved nearly overnight. Shoulders back, standing up straight. It feels great.
  • Improved Yoga: I'm able to hold / go into certain stances that I could not before, I think this is due to posture/back improvements as well as better balance. There a stance I haven't been able to pull off (I couldn't balance/finalize the pose) for some time which I was able to this week - toe stand, I'm pretty jazzed.
  • RSI: Most of the time (when I'm not on a laptop) I use a split ergonomic keyboard and a trackball due to RSI - even with those, long periods in front of the machine can cause some discomfort. Standing seems to have improved my posture/ergonomics enough that it stopped bothering me.

The next step is to consider/request an actual standing desk setup that isn't a hack - right now my stolen kitchen table is a bit small and wobbly, which means that when I really get typing the monitor starts dancing along with me. The main adjustable desk options I've found are:

Of these, I think the Geekdesk is the most straightforward, and the one I've heard the most positive reviews about. I have to say - as someone using a Mac Pro, the attachments that the Anthro series offers (tower cradles, etc) are very, very attractive. As it is, with the Geekdesk I think I would need some longer DVI/USB cables and to set the tower on the floor (I know - first world problems, eh?).

Overall - the experiment seems to be going well. I'm looking forward to seeing how week two pans out - I'm going to keep myself in the "break in/don't relent" phase until standing is the defacto method my body wants to use to work. After that I think it'll be "safe" to chill in a chair every so often. I'm interested in hearing about your experiences and recommendations as well, so drop me a comment or email and let me know if you've tried this out/do it and have any recommendations.

For additional reading, see:

And here is the hacker news link for this post.

And finally, here's the obligatory picture of me rocking the setup:

Rocking the setup


For a 5 month update, check out: "The Standing Desk Experiment 5 Months in"

Explaining the Python Software Foundation (PSF) Part 1

by jesse in


It's been over a year since I was elected by the PSF membership to be a member of the board of directors of the Python Software Foundation - this past week, I was lucky to be reelected. In that year, and even in the years prior to my election, I've long wanted to write down my thoughts and feelings about the foundation. This includes what it is, what it does and what it should do. You'd be stunned how many people - PSF members included - who don't know the answer to these three things. Worse still, you'd probably be even more surprised to find out many people who don't think the PSF should exist - or even that it exists at all.

Before we start, I want to clarify a few things:

  • What follows is my opinion; and may be shared by some - or none - of the current 13 PSF board members.
  • What follows is not the opinion of my employer (not that I need to say that...).
  • What follows has no relation or bearing on my role as co-chair and program committee chair of PyCon.
  • What follows may be incomplete, I reserve the right to amend or make clarifying statements.
  • None of this is meant as a criticism of any past directors, members, etc.

With that pile of disclaimers done, I will state this: what follows is my official opinion of the PSF and it's duties and role in the Python Community as a director of the PSF - this means that if you are a PSF member, and disagree with what follows, consider voting against me when the election comes up this year. I will state that it is my goal to not only express what I think the PSF is, does and should do but also to provide something that:

  • Helps explain the fundamentals of the PSF.
  • Helps explain what the Board of Directors is.
  • Helps make the argument why companies should become sponsors.
  • Helps make the argument as to why you should donate to the PSF.

Much of what I will be writing may be a simplified or updated version of the information that is also on the main Python Software Foundation page. I'd like to note that this post has spanned several months of on-and-off writing - and PyCon 2011 right in the middle of it, so there is some information shear as time passed.

Part one: What is the PSF

The first question to answer is the one I get the most often - "what is the PSF". The answer is actually pretty simple - the PSF (Python Software Foundation) is a legally recognized non profit organization (501(c)(3)) in the United States. It has a list of members, a board of directors, bank accounts and lawyers. PSF members are nominated and elected by existing PSF members, meaning that an existing PSF member says "I think this person should be a member" and then a vote is held and that person is (usually) voted in as a member.

It has a board of directors: this is a group of currently 13 people - not all of whom have to be PSF members - who are voted into office by existing PSF members. This election happens yearly, normally around the time of PyCon US (March, this year). Due to the PSF being a legal entity, we are required that all records be publicly accessible, including the list of directors/officers and membership. You can see the list of current directors/officers and members here. We are legally bound that all financial records be published. We have monthly board meetings - the minutes of past meetings are accessible from the PSF section of python.org.

The PSF legal entity accepts donations on behalf of the Python community from public sources, as well as "sponsor members" - these are companies whom pay an annual donation to support Python, and the PSF. The PSF holds the trademarks (logo, name, etc) for Python (the language) and dictates how those trademarks should be used via the trademarks committee. The PSF also maintains the "intellectual property" aspects of Python the language. Namely, it obtains (through licensing - see the contributor agreement) the necessary legal rights to redistribute the code, and if needed defend the open source state of Python the language in court.

To quote the somewhat dated executive summary:

The important thing to note here is that the PSF can demonstrate that Python contains only code licensed to it by organizations and individuals that had the necessary rights to the code in order to make that license legally valid. Python's case is further strengthened by the existence of an intact revision control record that dates back to its very beginning, and extensive email and other records that help to establish when and by whom the code was developed. This body of evidence makes any legal claim against Python's open source status difficult and very unlikely to succeed.

Now, there's some debate about the above statement - Python's history (see here) means that there are some potential snarls (see the FAQ as well) representing unanswered questions. It is more accurate to state that it is relatively unlikely that Python's status under copyright or its open source license would be challenged, and that the chance of success by a challenger would be relatively low.

While the PSF is a primarily US based organization, we have directors and members from all over the world, and our mission (more on that later) is a global mission - not a US only mission.

Now, you might ask yourself, 'why do we need this?' That's a valid question, and can be answered in part by looking around the open source world at similar organizations such as the Apache Software Foundation, Free Software Foundation, FreeBSD foundation, and finally the Software Freedom Conservancy. All of these organizations are well established and are very well known, and there are many more out in the wild.

Note: The SFC is special in that it acts as the proxy for smaller projects to accept donations and provide legal advice, hold trademarks or copyrights, etc. Twisted and PyPy, for example, are both SFC members.

Simply put: these organizations all operate on the same general core as the PSF - they are the legal/administrative branch of one or more open source projects. The hold the money, trademarks, and other things that are secondary to the actual writing of code, yet are still vastly important to large projects.

Besides the entire legal aspect (which while scary in some sense, is actually quite small) - the PSF "keeps the lights on". We pay for servers, bandwidth and other infrastructure pieces that keep the Python website, PyPI, source servers, etc. online. Again - this is part of the legal/administrative aspect: the PSF, in theory takes care of all of this "other" stuff so that the development and evolution of Python the language can continue.

Additionally, as a 501(c)(3) entity, we have a set of bylaws that dictate what, and how, we can do things. This applies especially PSF directors and board activities. See here.

So in summary: the PSF is a legal non-profit, with several hundred members from all over the world, elected by other members, with a board of directors also elected by the membership, who hold the intellectual property, money and legal counsel for Python, the programming language.

Part two: What is a PSF member?

Technically (per the bylaws), there are three types of PSF members, these are:

  • Nominated Members
    • Nominated members are the members I am going to focus on describing below. When I refer to "PSF members" these are what I am referring to in this document. Nominated members have voting rights within the PSF.
  • Sponsor Members
    • Sponsor members are like normal PSF members, but pay a yearly fee to the PSF. I typically refer to these as sponsors, rather then members, but "Sponsor member" is a recognized title. Sponsor members apply to the PSF, and are voted in.
  • Emeritus Members
    • These are inactive, non voting members. A member may chose to be moved to emeritus status due to, say, no longer being a Python user.

So what is a PSF member (Nominated Member officially):

I'm going to attempt to answer this question without heavily going into the mission of the PSF. New PSF members are selected from the Python community based on their contributions. Existing PSF members nominate and vote on new members, select the board of directors, and handle other legal or administrative business related to running the foundation."

PSF members do not necessarily need to be software developers or contributors to Python's source code. So pick a person - this person is an excellent writer, and has written thousands of words on Python the language, explaining a myriad of topics to people in numerous ways (books, articles, etc). By doing so, she/he has enriched the Python community - not through code perhaps - but through his works. An existing member feels that the writer's contributions warrant that they nominate that person for PSF membership, as they feels that he is both a thought leader and they would be an excellent steward and resource to manage the PSF and further it's mission.

After being elected, the new member gets access to the PSF wiki, and they are signed up for the psf-members mailing list, where discussions about the PSF occurs. This is a private list, and open to only PSF members. They are then free to propose PSF funded or guided activities (but then again - so is everyone, even non members) and participates in discussions and voting about normal everyday PSF business.

Voting happens infrequently, and for the most part, the PSF members list is quiet, except when hot topics (such as the diversity statement) come up.

The goal in having a general, and diverse membership is to help provide a diverse guiding hand to the foundation's activities. If we had only 10 members, we would hardly be representative of the Python community as a whole, and our perspectives and views would be harshly limited. Since the PSF's mission is broad, and global, it's important that we have many members from a variety of backgrounds as diverse as the community itself. This means we need people who do Python marketing, python programmers, framework authors, business people, etc.

The PSF members decide the fate of the entire foundation by selecting the board of directors. They are also a "resource pool". Frequently when an initiative (such as the sprints project, grants committee (under discussion) or the new PSF/Python Brochure being designed) comes up, they will be tapped, and asked to help lead and participate in the project.

Summary: PSF members vote on board members, sponsor members, and discuss initiatives in and for the community, such as grants programs, the sprints project, infrastructure changes, etc. They are frequently tapped to help seed a new project or initiative.

Part three: What is the PSF Board of Directors?

The PSF board is an elected (by the membership) group of 13 number of directors (the number 13 came via a PSF membership vote in 2010) people who are meant to be a diverse selection of people who do much of the heavy lifting of the foundation duties - including:

  • Voting on and working out the budget of the foundation.
  • Approving trademark usage (via the trademark committee).
  • Dealing with legal issues (such as contributor agreements).
  • Creation of new committees (such as the sprints committee, or grants committee).
  • Direct oversight of PyCon US (they are the conference chair's boss, and approve the PyCon budget).
  • Approving expenditures - such as developer grants, conference grants, website development, etc.
  • Approve and instigate new infrastructure improvements (via the infrastructure committee).
  • Approve awards (such as the Frank Willison and community awards)

You can see this activity in the minutes, and the resolutions. The directors listen to the membership, and act as leaders - we are the hands on the purse strings, keep the books, maintain sponsor relationships, and so on. Maintaining a board of directors is a requirement of the legal nonprofit status held by the PSF. The PSF board of directors are legal representatives of the foundation - what we say, when acting in official capacity is legally binding. Our votes are binding. What we say and do is public record (although much discussion happens on a private mailing list).

The board are the overview and oversight arm of the foundation. Between them, and the officers (more on those next) the "work" of the foundation is done. Committees (such as the sprints one) always have one board member acting on the committee, as oversight, and the rest of the committee is usually comprised of other PSF members or other people in the community. More than one board member can be on a committee

In practice: We debate. A lot. We vote - a lot. We have to make hard decisions, and should almost never completely agree with one another. If we are in constant agreement, we are not representative of the community and can easily do more harm then good. Then again, there are many things that are no brainers, such as providing grants for conferences, handing out awards, and things of that nature.

Most of the day-to-day work (mostly accounting and administrative) of the PSF is performed by the Officers of the foundation. In a normal company or organization, the board is less proactive and more oversight-oriented. The officers and membership (employees) perform most of the work, while the board acts as the oversight committee. The current PSF board lives in a state halfway between oversight, and officers/employees/workers. More on that in the mission section.

When I nominated, or rather, asked if I would stand, for the board of directors, I was honored to do so. I am honored to serve, and honored to have been elected. I've been very lucky to be able to enact some change, and act as one of the guiding members of the foundation. I have been able to vote on funding conferences, committees, etc. I have taken a very vocal role in the activities of the foundation, and have had the luxury of helping change a few things over the past year of being a director.

Part four: What are the PSF officers?

PSF officers are elected by the board to act as additional legal representatives of the PSF and board. They typically do not hold voting positions - meaning officers can be elected by the board, but do not vote on policy or resolutions (except for the chairman, who has voting rights). Each officer performs specific duties based on their role. For example the Secretary - keeping our meeting minutes, doing administrative work for the board and foundation, etc  and the Treasurer - who keeps the financial records, pays the bills, and keeps us honest. These officers are legal representatives of the foundation. Some officers are paid - for example, the Secretary and Treasurer are paid due to the sheer amount of work required by their roles.

The bylaws define the basic officers we have to have:

Section 6.1. Officers. The officers of the corporation shall consist of a President, a Secretary and a Treasurer, each of whom shall be elected by the Board of Directors. A Chairman of the Board, one or more Vice Chairmen, one or more Vice Presidents, and such other officers and assistant officers and agents as may be deemed necessary may be elected or appointed by the Board of Directors from time to time. Any two (2) or more offices may be held by the same person, except the offices of President and Secretary.

Here is a current list of officers:

  • Guido van Rossum, President
  • Steve Holden, Chairman
  • Pat Campbell, Secretary
  • Kurt Kaiser, Treasurer
  • Doug Hellmann, Communications
  • Van Lindberg, PyCon Chair

Officers can sign contracts in the name of the PSF, spend money, etc., just as board members can.

We really don't have that many. Guido is the president of the foundation, which is largely a formality/figurehead. He does not take an active role in the board's activities, votes, etc. We have "additional slots" per the bylaws, but no real need at this time.

Part five: What is the mission of the PSF?

I've intentionally avoided talking about the philosophy and mission of the PSF until now. I wanted to explain the mechanics of it before I went into my more subjective observations. Recently, a thread on the PSF-Members mailing list came up where this question was asked, and a fair amount of debate and discussion occurred. In that thread, I made a pretty passionate statement, some of which became part of the on-boarding materials for new PSF members - the welcome page you can see here.

I intend to expand on that just a little.

So, let's quote the PSF's mission statement:

The mission of the Python Software Foundation is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers.

What this says... well - it's pretty broad, and vague - to an extent it has to be this way, but it doesn't give you much of an idea as to what the PSF does or should be doing. It's intentionally unbounded, and can therefore cause some confusion when people come looking for answers. After all, with something that open ended - what should the foundation be doing, what could it be doing - what are PSF Members supposed to be doing, if anything?

Well, let's back up a second. The PSF has the following assets:

  • Money
  • Lawyers
  • Members (including the board)

Seems pretty finite to me. We have some money, which we can spend, and we have some lawyers, which we can use to sue, or defend, or provide legal counsel, and we have members, who "do stuff". Really, it boils down to this (from a board perspective): We can spend money, and use a lawyer. But does spending money, or using lawyers really fulfill the spirit of that mission statement? How does the money get spent? Do we really need a lawyer?

Let's make this simpler:

The mission of the Python Software Foundation is to move the entire Python ecosystem forward.

Each and every Python programmer, author, and individual talking about Python right now is performing the mission of the PSF. Every bit of work (from writing code and documentation, to answering a question) moves Python's ecosystem forward. Every person reading this post or commenting about Python moves it forward. Essentially - if the ecosystem is a codebase - all of you have the commit bit.

PSF members have been nominated to be part of the focused, organized mission of the PSF (what I'm trying to define). Instead of "just" checking in code, bug fixes, making libraries or documentation - things they do every day - someone has said "not only is this person supporting the mission, but they do it so well that they should have a say in the leadership of the PSF". PSF members are the management/administration/activist component of the ecosystem (The PSF).

The ecosystem is made up of python-core (development, IP, hosting), PyCon and all of the other conferences through the world. It is user groups and every package on PyPi, github or bitbucket and sourceforge. The ecosystem is every single current user or potential user of Python in the world. You can paint the ecosystem quite broadly, which means the mission of course, that if you look at the assets the PSF has (money, lawyers and members) - the mission of the PSF is to:

... Spend money and provide leadership, outreach and protection where needed within the entire Python ecosystem.

Our mission - as a foundation "under this banner" is to make sure, beyond any doubt, that Python has a bright future - our mission is to keep the servers running, deal with legal things every so often and to reach out to every single programmer and non programmer on the face of this planet to teach them about Python. We are here to support projects, people and ideas within the community.

The PSF completes its mission by distributing funding, but more importantly through the leadership of its members. The PSF is the nonprogramming arm of the entire Python community, not just for the core development team. Our job is to provide resources to the entire Python ecosystem.


In the next post; I will cover Part 6: Accomplishing the Mission - my definition of how we accomplish what we have to do, how lawyers do, and do not play into it and additional opinions I have about the current state of the PSF and moving forward. I will also go into what the PSF has done over the past year or so which has directly benefited the community as a whole - some of which you might not know about.

For additional information you can see the Convore thread that helped me along in my thoughts and what questions needed answering.

Python Mentors site is up, hooray!

by jesse in ,

I posted the Python Mentors - Python Core Mentorship site last night. It's pretty bare/minimalist (intentionally) right now - if there's information you think is missing, or something you would like to see, drop me a comment or an email. Feel like hacking on the source? Check out the bitbucket repo - it's a simple blogofile site right now, and I don't think we need much more for the forseeable future.

Many thanks goes to OSUOSL for the free hosting.


Python Core Mentorship, up and running.

by jesse in ,

So, after my initial proposal to Python-Dev about the core mentorship program I received a pretty impressive outpouring of support and inquiries from people - both mentors and "students" looking to join into the program. Frankly, I'm floored at how positive the response has been.

I got the mailing list up in short order (go here), and anyone who expressed interest to me, or on the python-dev list was directed to it - we have a total of 57 members right now, and many of the mentors have sent introductions to the list. We've also to hashed out the initial code of conduct, as well as productively answered questions.

Things seem on track - modulo my inability to carve off time to deploy the small static about site to pythonmentors.com - on my task list for today. Just to share for your own edification, below is our python-inspired (meaning: simple, succinct) code of conduct for the mailing list:

The following code of conduct is not meant as a means for punishment, action or censorship for the mailing list or project. Instead, it is meant to set the tone and expectations and comfort level for mentors and those wishing to be mentored on the list.

  • We ask everyone to be welcoming, friendly, and patient.
  • Flame wars and insults are unacceptable in any fashion, by any party.
  • Anything can be asked, and "RTFM" is not an acceptable answer.
  • Neither is "it's in the archives, go read them".
  • List archives are available only to subscribers, but subscription is open to everyone.
  • Since the archives are "closed" - cross posting to public mailing lists is discouraged.
  • Statements made by core developers can be quoted outside of the list.
  • Statements made by others can not be quoted outside the list without explicit permission. [1]
  • We endorse the PSF's Diversity statement.
  • The list administrators reserve the right to revoke the subscription of members (including mentors) that persistently fail to abide by this Code of Conduct. [2]

[1] Anonymised paraphrased statements "someone asked about..." are ok - direct quotes with or without names are not appropriate.
[2] All mentors are signed up as administrators.


The next steps are to get the basic site up (nothing fancy) and to get a blog post up on the newly minted python insider blog. Otherwise: I encourage those looking to learn and contribute to join in, the water is fine.