COHPy Meeting – October 2010

Here are some links from last night’s meeting of the Central Ohio Python Users Group.

Austin Godber talked about virtualenv. Materials from Austin’s presentation are on GitHub.

Eric Floehr, of Intellovations, presented Building a Small Business/Personal Website With Django. He discussed some Pythonic choices for building web sites such as Blogofile for generating sites that are static content, and Plone for enterprise-scale content management. Django falls somewhere in the middle as a good choice for small business or personal blogging sites.

Other links from Eric’s talk:

Also (FWIW), here’s a bit of .bash_history from my following along with part of Eric’s presentation on a VM running Ubuntu 10.10:

sudo apt-get install python-virtualenv python-pip
mkdir dev
cd dev
mkdir oct
cd oct
virtualenv --no-site-packages pyenv
source pyenv/bin/activate
sudo apt-get install mercurial
pip install -e hg+http://bitbucket.org/stephenmcd/mezzanine#egg=mezzanine
mezzanine-project sample
cd sample
python manage.py syncdb
python manage.py runserver
pip install django-debug-toolbar
python manage.py runserver
pip install django-extensions
python manage.py graph_models blog>blog.dot
sudo apt-get install graphviz
dotty blog.dot

I’m not presenting this as a how-to or a tutorial, just some notes. If you don’t know what the above commands will do then I’d recommend not running them.

COHPy Meeting – September 2010

Here are some links from the September 2010 meeting of the Central Ohio Python Users Group:

Scott Scites gave a talk on Pyjamas, a "Python Javascript Compiler, Desktop Widget Set and RIA Web Framework."

The following are among items discussed during Scott’s talk:

PureMVC

JSON-RPC

Flask (A Python Microframework)

Raphaël JavaScript Library

gRaphaël Charting JavaScript Library

Minesweeper written in Python with Pyjamas

357 Guts – One of the guys at the meeting built this online card game using Pyjamas (and if someone tells me his name I’ll update this post, unless he wishes to remain anonymous).

Eric also mentioned GeoDjango.

I thought this was a good meeting and I certainly came away with a list of some pretty cool Pythonic stuff to check out.

Columbus Ruby Brigade – June 2010

The Columbus Ruby Brigade met at Quick Solutions on 21 June, 2010.

Mike Doel who works at VacationView gave a talk on Capybara (a giant rodent that occasionally eats its own poop) and Capybara ("Son of Webrat"). One virtue of Capybara is that it facilitates testing the JavaScript bits on your site which Webrat cannot do.

Alex Moore presented IronRuby. Some IronRuby performance and RubySpec stats are at ironruby.info.

Alex recommended the book IronRuby Unleashed by Shay Friedman and mentioned the not yet released IronRuby in Action by Ivan Porto Carrero and Adam Burmister.

After the meeting we stopped at the nearby Busty Rucket for a pint. I tried Lake Erie Monster from Great Lakes Brewing Co. and I have to say it was indeed a monster. Starts with a malty sweetness and finishes by biting your head off with some powerful hops. Not exactly my cup of tea, which is not surprising since it was a beer.

Columbus Ruby Brigade

Here is my linkdump from the May 2010 meeting of the Columbus Ruby Brigade:

The erubycon conference will be held Oct 1-3, 2010.

Ben Wagaman presented Core of the CoreReflection.

Greg Malcolm showed us ruby-debug (cheat sheet).

Kevin Munc presented Method of the Month (methods actually) empty?, nil?, blank?, and present?

Matt Forsythe gave a nice walkthrough on using regular expressions.

Rubular.com was also mentioned.

Elizabeth Naramore gave an enthusiastic presentation on Technical Writing featuring Giant Inflatable Poop.

Joe O’Brien recommended a book by Jerry Weinberg – Weinberg on Writing: The Fieldstone Method

COhPy Meeting – December 2009

Here is my link dump from last night’s meeting of the Central Ohio Python Users Group:

The scheduled presenter, Brian Costlow, didn’t make it. Something about work being more important than a Python meeting. Priorities?

To fill the void, Eric Floehr showed a weather-related web application he has been working on that is built with Django. The app uses HTMLCalendar (Django, calendar – Stack Overflow).

Mark Erbaugh showed the web application he built using web.py. He also uses ReportLab.org to generate PDF files.

I had not run across this before: 29.2. zipimport – Import modules from Zip archives.

Catherine Devlin presented reStructuredText, S5, and Sphinx.

A few related links:
reStructuredText on Wikipedia
Quick reStructuredText
Easy Slide Shows With reST & S5
reStructuredText Primer — Sphinx v0.6.3 documentation

Catherine also mentioned:
PyCon 2010 Atlanta – A Conference for the Python Community
Python Package Index : PyPI, AKA the Cheese Shop

Also discussed was the construction of the COhPy web site:
Code at cohpy — bitbucket.org.
Using Google App Engine.

Finally, I haven’t used decorators in Python (nor in my house) but I’d like to read up on that:
PEP 318 — Decorators for Functions and Methods
Dr. Dobb's – Python 2.4 Decorators

CbusPASS – November 2009

Last night I attended the CbusPASS (that’s the Columbus chapter of the Professional Association for SQL Server, aka the Columbus SQL Server Users Group) meeting. I’m not using SQL Server much these days so the take home value isn’t immediate for me. I’m interested in databases in general, I have used SQL Server in the past, and I expect I will use it even more in the future so I do enjoy these meetings. The remote presentation almost failed due to audio problems but fortunately a member of the group had a notebook PC that worked for both audio and video. Tim Ford presented on SQL Server Dynamic Management Views and Dynamic Management Functions. What follows is basically a link dump from my notes:

Group leader: Jeremiah Peschka, SQL Server Developer
Jeremiah Peschka (peschkaj) on Twitter

Tim Ford’s web site SQLAgentMan
Tim Ford (sqlagentman) on Twitter

Tim writes for MSSQLTips.com, among other things.

Tim said he will post the slides and examples from the presentation at SpeakerRate.

MSDN: Dynamic Management Views and Functions

SQLTeam: Dynamic Management Views

SQLTeam: SQL Server – Find missing and unused indexes

MSDN: Reorganizing and Rebuilding Indexes

Backup your Resource Database.

There was discussion after the meeting about PowerPivot, previously code named Project Gemini, and the PowerPivotPro site.

CONDG Meeting – August 2009

I enjoyed the presentation by Bill Sempf at this month’s Central Ohio .NET Developers Group even if it was a little disorganized. I think Mr. Sempf and I share a certain scatterbrain quality though his achievements point to an ability to focus deeply when needed. He’s like smarter more extroverted version of the Bill writing this post. And we share a similar hairline.

Bill discussed some of the changes coming in C# 4.0 and how some of the smaller changes that started in C# 3.0 are part of a larger strategy to make things like LINQ possible, and make COM interop work more smoothly. He also pointed out some additions to Visual Studio that may be helpful when doing Test Driven Development. Visual Studio has been rewritten in WPF for version 2010 so go get more RAM.

A lot of the changes to C# are to help it compete with dynamic languages like Ruby and Python, and to make it not suck for automating Microsoft Office. Oh no. It’s VB with braces. At least it doesn’t have DIMs and SUBs.

Pizza was provided by Information Control Corporation (ICC), a company based in Columbus that (if I heard right) Bill Sempf works with as a consultant. ICC has released an open source framework called MVC4WPF. Thanks for the framework, and the pizza.

CONDG Meeting – July 2009

Wow! I have been remiss as a blogger. No posts since April. I logged in and see there are five drafts I haven’t finished. I don’t know if this has anything to do with the fact that I started using Twitter in the meantime. Twitter: It’s like a sputtering of creative sparks, 140 character sparks at most (and mine not all that creative), that burn through the fuel of creative energy but never really get the fire going. There is something addictive about Twitter when you’re a geek. Maybe I shouldn’t blame my lack of writing on Twitter. There have been a lot of other things going on the last few months. On the bright side, I doubt many read this blog (if I checked metrics I’d know) so it’s not a big deal. But even if this is only a journal for my own future reference I should keep it up, right? Well, on to the meeting.

At this month’s meeting of the Central Ohio .NET Developers Group, Jeremiah Peschka (already following Jeremiah on Twitter) talked about SQL Server and Object-Relational Mapping. Jeremiah talked specifically about the NHibernate ORM tool. I’ve read a lot about NHibernate but so far have not worked on a project that used it. Prior to showing NHibernate, the support for hierarchical data in SQL Server was discussed. It seems that this hierarchical data could be useful in ORM scenarios. I really enjoyed the presentation and look forward to working with some of the tools and techniques that were discussed.

On a side note: Maybe it’s just me, but there’s something about Jeremiah’s mannerisms that reminds me of Clark Howard (just followed Clark Howard on Twitter). Of course Jeremiah is a much cooler guy than Clark, maybe not as rich. Of course I say that without really knowing either of them. And maybe I should be tweeting this instead.

COLARC Meeting – April 2009

Software Archeology was the topic of the presentation given by Michael Rozlog of Embarcadero Technologies at this month’s meeting of the Columbus Architecture Group. As a software developer, you sometimes inherit code that you had nothing to do with creating. This can happen for a variety of reasons but the end result is you have a big lump of code that you know little to nothing about. As Michael described it, that code is effectively locked until you take steps to discover how it works. Michael described following aspects of “unlocking” an unfamiliar codebase using software tools and showed some examples using JBuilder:

  • Visualization using a modeling tool that can map existing code.
  • Using a metrics tool to find design violations.
  • Using an auditing tool to find style violations.
  • Reviewing business logic (unit tests, acceptance tests – if you’re lucky enough to have inherited those too).
  • Using a profiling tool to find areas in the code with performance problems.
  • Creating documentation so future maintainers will not have to start from scratch.

From my experience, sometimes you don’t have modeling, auditing, or metrics tools available for a particular system. You just have to grab a shovel and start digging up bones. Make a copy of the code and do some throw-away refactoring (that code will never be checked back into source control). Try to break parts of the system and see if it breaks in the way you expect. Try to come up with some big picture tests that can be automated. Later, when you know more about the system and are ready to start fixing bugs and adding features, you can add unit tests around just the parts you are going to change. Though some environments just don’t support unit tests, but I digress (as usual).

I have a small company background and at this point I’ve never worked with a system approaching a million lines of code. I’m sure there are systems too large to explore manually that can only be discovered using a tool suite that’s up to the task. Nonetheless, I am reminded by Michael’s examples at this meeting, if you have the tools available you should use them, even for a small system, even for your own code that you think you know well. You’re bound to learn something, and make your code better in the process.

Also in my notes from the meeting:

Kivat graphs

Shotgun Surgery

Stupid iPhone apps can make a lot of money if they go viral.

…and from Microsoft, who provided the meeting space:

Are you certifiable?

IT Management Community Hub

CONDG Meeting – March 2009

I knew this month’s meeting of the Central Ohio .NET Developers Group was going to be a break from the norm when I heard Alan Stevens jamming on his guitar as I approached the meeting room. He was belting out the words to REM’s End of the World as we Know It (and I feel fine) which is an impressive feat of memory and diction in itself.

Alan titled the talk “Coding in Public” and challenged those in attendance to code with others more often. We should not be afraid our code sucks but rather acknowledge that it sucks (at least some of it, sometimes) and, since it sucks anyway, we might as well let it “suck with gusto.” We can then learn together how to make it suck less.

Alan began by discussing the Dreyfus model of skill acquisition in general and as it relates to software development. This was not a new concept for me, but only because I have been reading Pragmatic Thinking and Learning by Andy Hunt. Andy talks a lot about the Dreyfus model. He also mentions something called “second-order incompetence” that worries me a little. Hope that shoe doesn’t fit.

grin

Alan also talked about the book Mastery by George Leonard. When I got home I pulled my copy off the shelf and plan to read it again. It is a good book and the ideas are worth refreshing.

Mastery by George Leonard

Among other books Alan mentioned are Working Effectively with Legacy Code by Michael Feathers, Good to Great by Jim Collins, and Talent Is Overrated by Geoff Colvin.

This talk got me thinking about the relative isolation I’ve been working in lately and that I need to get out more and look for opportunities to collaborate with others. In the meantime, I’ve been wanting to put some code out there for a couple small personal projects I’ve worked on recently and I hope to do that soon. It can’t suck with gusto if it’s stuck in my private Subversion repository. I just have to decide where to host it and which license to use.

Also noted at the meeting:

Code Kata

LiveMesh

Central Ohio Day Of DotNET 2009-04-18

Stir Trek 2009-05-08

CodeStock

The Making of an Expert – This link is not to the whole article, you have to subscribe or buy it (and there’s nothing wrong with wanting to get paid, but then I assume you know how to use a search engine – seek and ye shall find – the choice is yours).