Wednesday, February 24, 2010

Pycon 2010 report I







Pycon was an incredible learning experience and networking opportunity. I met many good friends again and made just as many new ones. In addition, this was the first time I presented and did so on Pinax two times. Furthermore, in the name of diversity, this instance of Pycon saw the premiere of the Financial Assistance Grant for Women. We also had a dedicated talk on Diversity as a Dependency. The benefit this focus on diversity was that...





um...

yeah...

like...

uh...

um...





Diversity Rocks


Did I learn a lot at pycon? Heck yeah. Networking was life changing. And unlike previous conferences, I'm in a position to take advantages of opportunities offered. The next few weeks and months will see a lot of changes and challenges for me.

Note: I've got to keep some things under wraps for now so I'm going to have to aggressively moderate comments. Feel free to comment, just don't take comment rejections personally.

Note II: For reference, this post is mostly about Audrey Roy and some about the job offering I got at PyCon 2010.

Thursday, February 18, 2010

I've got ribbons!

Odds are this will be my last post on blogspot. After this it should be on my personal blog.

Anyway, I'm here at Pycon. I presented a Pinax tutorial and tomorrow I'm presenting a talk on Pinax. I'm also a session chair and plan to help with assembling things for registration. And what do I get out of it?

Ribbons.

RIBBONS!!!

My plan is to have more ribbons than anyone else.

Wednesday, February 10, 2010

Eating my own Dog Food

For several years now I've hosted this blog here on blogspot/blogger. Its been both a good and bad experience. For writing out simple posts it has made things pretty easy. However, if I try to post code examples I've got to deal with the various quirks of the blog engine. How it escapes special characters and that you can't easily do color colorization has been really annoying. Yes, I know you can do some hoop jumping to make this work, but I decided a long time ago that if I had to do that then I would host my own blog.

Speaking of which, a few months back I got called out for not eating my own dog food. Yup, as a Python developer shouldn't I use something Python powered? I currently do Django professionally so those are in my tool chest so this should be trivial. Heck I also do some serious Pinax work so why not that?

Whatever I put it under, it would be a nice move. I would be able to format and control my blog to a much better degree. I could easily supply code examples. I could use the hosting to demonstrate pet projects or launch some of the things I've wanted to try for some time.

So which blog to use? Roll my own?

Heck no.

I've got a full-time job, I teach 10+ hours a week, and my consulting efforts eat up a chunk of my free time. So rather than use my energy to reinvent the wheel, I would rather rely on the hard work and labor of others.

With that in mind, I really, really like Django-Mingus. Out of the box it does everything that I want and is a breeze to get up and running. It has a large, active community and it even uses a project that has my name attached, django-wysiwyg (although Chris Adams did most of the work).

Some might ask the good questions as to why I'm not using Pinax for my new blog. In essence, I wanted to do something in the wild that wasn't Pinax powered and my concept projects all use Pinax. So don't worry, I'll be doing Pinax work for as long as I can foresee.

So I've begun working on it during the Blizzard of 2010. I'll have it up today unless we lose power or Internet.

Thursday, February 4, 2010

How I write my presentations

Tools

I tend to use just a few simple tools. I like to keep things simple because I'm focusing on my message. Complexity means I spend all my time with this or that widget and fundamentally I don't care about tools.

Google for Images

I look for images that have free/open licenses for reuse. Sometimes its hard to find something that is properly licensed, so I have to alter what the image is supposed to be.

Mac OS X Screen Capture

If I want colorized code, prettily formatted text, or simple shell displays, I use command-shift+4.

Google Documents Presentation

You really can't do anything too fancy with Google Documents, which might bother some but I find it perfect for my needs. Also, storing my drafts on Google makes a lot of sense because if Google has problems with storage then I'll be worrying about Zombies more than a presentation. And I also don't have to worry about losing a machine. Google Docs also exports to PDF or Powerpoint which is useful during the presentation or uploading to slideshare.

Also, Google Docs lets me easily share and collaborate.

NeoOffice Presentations

Actually, I don't like this tool but I use it during my long metro rides when I don't have access to the Internet. I can export from Google Docs a PPT file, edit it, and then upload later.

Methodology

How I write things out and present.

Black text on white background

For a while I played with various color schemes. I found that problematic because what displays nicely on my Mac often doesn't display prettily on the big screen. Things can become illegible. Also, keeping away from pretty color schemes means nearly every picture looks good. So why not go with the historical constant thats been used for centuries?

I am moderate in my use of bullets

I don't think bullets are evil. I do think a lot of them on the screen or reading them to the audience is evil. Bullets help trigger my dialogue. In addition, if you reference my presentation later it means my presentation actually has value. A huge set of short statements as slides doesn't do that as well, even if its more fun to do and more enjoyable for the audience.

Pictures are more fun than words

I like to mix bullets and pictures. Or just have pictures. I can speak more easily to a picture than a set of words. The picture helps me remember what I intended to say, which is nice because I hate checking notes when I'm trying to speak.

I keep my points and sentences short

This is really important. Going into recursive detail about your point and preferences bores the audience and they lose focus in what you are saying. After you make your point, move on. Or use an image to reinforce things.

Also, if you keep your points and sentences short, its easier to link things together. Not only will you find it easier to keep things in mind, but so will your audience. Pause between big statements to let things sink it. Remember, negative space is as important in a presentation as it is in art.

This doesn't mean I'm simplistic or I'm assuming that my audience is simplistic. Instead, I'm aiming for an aggregate whole effect, and I also assume that when I'm done people will be excited and racing to look at formal documentation.

No practice

Some people like to practice several times in advance and time things out. Not me. I like my presentations to have spontaneity. I watch the audience and from their visual and verbal cues alter my presentation to match. Sometimes that means I end up skipping slides or when I get to a slide its moot (so I use it to 'reinforce' my point). This works for me. I'm a spontaneous person who responds well under the conditions of speaking in public.

Post my stuff on slideshare.com

When I'm done I post my stuff publicly. People sometimes want to copy/use my material or reference it for their own sake. As long as I get the proper and legal credit I'm delighted to share. I also love feedback, positive and negative.

Which reminds me, I've got some more stuff to upload...

Thursday, January 28, 2010

What I don't like about Pycon

1. Too many awesome events to attend them all

Thirty incredible tutorials, over a hundred sessions, and only Guido knows how many sprints. Everything runs concurrently even with the GIL.

However, thanks to Doug Napoleone's great Django work, its trivial to pick and publish which sessions you want to attend. Doug's work on the scheduler is just plain awesome. While just plain intuitive to use, the scheduler also has a wonderful help page.

2. I won't be doing enough session staff work.

Yeah, I'll be working a few sessions but I do want to at times to focus on things critical to me. So that means other people like you, dear reader, ought to pick up my slack.

3. Only once a year per continent

One of these years I'm going to try and hit US Pycon, EuroPycon, IndiaPycon, and all the others. This would make for an awesome year. It would be like living the life of James Tauber, Jacob Kaplan-Moss, or other geek traveller.

The negativity of this post is a joke. Please don't take it seriously. I am giddy for pycon.

Thursday, January 21, 2010

My pre-history with Plone

In the late 1990s I was working at a job doing a mix of Foxpro development, windows system administration, and help desk. I enjoyed the Foxpro development (laugh if you will) and despised the other stuff. So I was always looking for work in other places where I could be doing pure development. However, lacking much work experience at that time, or knowledge of other programming languages, or a college degree, that made switching positions really hard.

Well, one day, probably in 1999, I stumbled across a job opportunity down in Fredericksburg. I I got an email inviting me down for an interview for Zope Corporation, or maybe its predecessor. The job meant working with an obscure language called Python and a web based development system called Zope. Python seemed pretty interesting, and doing development through the browser seemed fascinating. I even looked up some articles on Yahoo (this was before Google and Wikipedia).

Alas, I did not take the job. Python seemed too different and obscure and I was already stuck in the closet with Foxpro. Fredericksburg would have involved a move from the Washington, DC area and my ex-wife and I were even then scraping the bottom of the barrel for money. We lived on the metro, lacking a vehicle between us, so just getting down to Fredericksburg was nigh impossible. So I stayed with Foxpro, eventually finding work in a few other languages before finding my current home in Python in 2005.

What might have been

In an alternative history had I interviewed and been hired for the Python/Zope job I might have worked with Guido van Rossum during his tenure at Zope Corp! I might still be deeply entrenched with Zope and subsequently Plone. My linux skills would be much better. Fredericksburg would be my home, not Arlington so I probably would not be working for NASA right now. I would have never founded NOVA-Django. Finally, the armies of Iceland would have conquered the world.

A very different universe indeed.

Next: My history with Plone

Thursday, January 14, 2010

Learn something new every year

As developers, we all make that pledge, don't we? Some of us learn new languages, new frameworks, new APIs, new methodologies. Rarely do we learn a new operating system.

30 years ago I was using whatever they called the operating system on the Apple ][ series of computers. 20 years ago I learned to use MS-DOS. 17 years ago I added Windows 3.1 to that mix. 15 years ago I ran into Windows 95 and the subsequent set of 98, 2000, Me, and XP. 10 years ago I started to play with Linux and Unix, mostly learning the simple shell commands needed to shuffle files around. 3 years ago I commenced working on Mac OS X.

During my Windows 98 days I was forced in doing help desk and system administration work. I hated it. The pop-up menus were not intuitive. Documenting what you did was hence agony. I begged my job to make me a pure developer but they forced me to continue down the path of Windows administration. Eventually I left that job and became a pure developer.

Over the years I got better at Unix and Linux. I even set up two servers for production use, one running Apache 1.3.x around 2001 and and the other a whole bunch of JBOSS stuff in 2003. Finding documentation was a pain, but the sense of logic compared to the chaos of windows pop-ups was a relief. After that when I would touch Unix or Linux it was basic file management stuff and nothing sophisticated, and my beginner skills never got a chance to grow further.

Flash forward to 2007 and beyond where I did serious Python development for Plone and then Django applications. Development was on Mac OS X and production was Linux. My neophyte level skills no longer where quite enough. Our system administrator and other co-workers helped out or did the work but it limited and frustrated me. Nevertheless, the time to really bone up on Linux never happened.

Well, this past week has been a crash course in ramping up my Linux skills. The next version of SMD Spacebook will be put into production as an RPM. Its been assigned my task to do it. This would involve a lot more in the way of Linux that what I was used to, since I needed to create an environment to run the RPM build commands, and that couldn't be our testing or production environments. That meant a chunk of setup and configuration of a lot of packages, and various proprietary bits and pieces in order to meet government and corporate requirements.

I tried not to bug my co-workers too much except for when their documentation didn't quite explain everything, and then I added to their documentation. I'm still a beginner but I feel like I've finally gotten a chance to spread my wings in this arena a little bit and learn a lot.

This will make it easier for me when I finally get around to getting this blog off blogger and into what will probably be Django-Mingus.