About Ryan McGreal, Quandy Factory and the various pages contained herein.

By Ryan McGreal

Posted September 10, 2009 in Site (Last Updated June 22, 2010)


1.1 Raise the Hammer
1.2 Hamilton Light Rail
1.3 Published Essays
1.4 Contact
2This Site
3Eye Quandy
3.1 Quandy Logo
3.2 Footer Image
4.1 Conceptual Overlap
4.2 Jack of All Trades
4.3 Benefit from Shared Expertise
5.1 Great Time for OK Coders
5.2 Productive Modern Languages
5.3 Shared Open Source Software
6Website Development
6.1 Outsourced Graphic Design
7Technical Notes

<a href="#toc_1" title="Link directly to section 1">1</a><a name="toc_1"></a> <span title="Section 1: Introduction">Introduction</span> <a href="#" title="Back to top"> ↑ </a>

My name is Ryan McGreal, and I live in Hamilton, Ontario, Canada with my family. I work as a web programmer, consultant, writer, editor and troublemaker, though it's mostly the programming that pays the bills.

<a href="#toc_1.1" title="Link directly to section 1.1">1.1</a><a name="toc_1.1"></a> <span title="Section 1.1: Raise the Hammer">Raise the Hammer</span> <a href="#" title="Back to top"> ↑ </a>

My principal activity that doesn't pay the bills is my role as editor of Raise the Hammer, an online magazine dedicated to sustainable urban revitalization in Hamilton.

<a href="#toc_1.2" title="Link directly to section 1.2">1.2</a><a name="toc_1.2"></a> <span title="Section 1.2: Hamilton Light Rail">Hamilton Light Rail</span> <a href="#" title="Back to top"> ↑ </a>

I am also a proud founding member of Hamilton Light Rail, a community group dedicated to bringing light rail transit to Hamilton.

<a href="#toc_1.3" title="Link directly to section 1.3">1.3</a><a name="toc_1.3"></a> <span title="Section 1.3: Published Essays">Published Essays</span> <a href="#" title="Back to top"> ↑ </a>

I have written several essays on urban issues that have been published in the Hamilton Spectator and elsewhere over the past five years.

<a href="#toc_1.4" title="Link directly to section 1.4">1.4</a><a name="toc_1.4"></a> <span title="Section 1.4: Contact">Contact</span> <a href="#" title="Back to top"> ↑ </a>

You can reach me via email at ryan@quandyfactory.com.

<a href="#toc_2" title="Link directly to section 2">2</a><a name="toc_2"></a> <span title="Section 2: This Site">This Site</span> <a href="#" title="Back to top"> ↑ </a>

This is my personal website, repository of essays and projects, and playground for new ideas.

Quandy is a portmanteau of "Quick and Dirty", which can be a useful method of approaching problems. "Quick and dirty" has the benefit of being, well, quick, as well as flexible for those cases when initial requirements end up changing (i.e. just about every nontrivial project).

It suggests an iterative approach, on the reasoning that it's easier to build something simple and then make it better than it is to try and spring a fully-formed application from your forehead.

As John Gall famously stated:

A complex system that works is invariably found to have evolved from a simple system that worked. The inverse proposition also appears to be true: A complex system designed from scratch never works and cannot be made to work.

<a href="#toc_3" title="Link directly to section 3">3</a><a name="toc_3"></a> <span title="Section 3: Eye Quandy">Eye Quandy</span> <a href="#" title="Back to top"> ↑ </a>

<a href="#toc_3.1" title="Link directly to section 3.1">3.1</a><a name="toc_3.1"></a> <span title="Section 3.1: Quandy Logo">Quandy Logo</span> <a href="#" title="Back to top"> ↑ </a>

The red Quandy logo in the top left corner is courtesy of Trevor Shaw, a great local graphics designer and the creative director of Juice Creative.

<a href="#toc_3.2" title="Link directly to section 3.2">3.2</a><a name="toc_3.2"></a> <span title="Section 3.2: Footer Image">Footer Image</span> <a href="#" title="Back to top"> ↑ </a>

The awesome cityscape panorama in the footer was taken by the talented photographer and amateur urbanist Aaron Segaert, and is used with permission.

<a href="#toc_4" title="Link directly to section 4">4</a><a name="toc_4"></a> <span title="Section 4: Interests">Interests</span> <a href="#" title="Back to top"> ↑ </a>

In recent years I have been particularly interested in: the nature of city economies and urban development; the role of public participation and community engagement in creating and sustaining a healthy society; and ways to increase the openness, transparency and responsiveness of organizational governance and policy making.

<a href="#toc_4.1" title="Link directly to section 4.1">4.1</a><a name="toc_4.1"></a> <span title="Section 4.1: Conceptual Overlap">Conceptual Overlap</span> <a href="#" title="Back to top"> ↑ </a>

I admit that my ideas about openness in government and policy making reflect my experience using and developing software: an open, information-sharing approach with peer review results in better results than a closed, proprietary approach based on blind trust.

<a href="#toc_4.2" title="Link directly to section 4.2">4.2</a><a name="toc_4.2"></a> <span title="Section 4.2: Jack of All Trades">Jack of All Trades</span> <a href="#" title="Back to top"> ↑ </a>

My interests take me all over the place, figuratively, from land use patterns and transportation modes to the global energy situation, geopolitics, social policy, economics and political economy, democratic structures and traditions, broad-based community organizing, local politics and current affairs, architecture, city life, ecology, sustainability, cognitive psychology, and more.

I don't claim expertise in any of these areas, but I am committed to studying the experts and following empirical best practices in these domains.

<a href="#toc_4.3" title="Link directly to section 4.3">4.3</a><a name="toc_4.3"></a> <span title="Section 4.3: Benefit from Shared Expertise">Benefit from Shared Expertise</span> <a href="#" title="Back to top"> ↑ </a>

The great thing about living in an open, knowledge-based culture is that you can benefit from the expertise of others. Once you establish the credibility of expertise, you can use it as a kind of knowledge API that allows you to take advantage of the expertise without necessarily knowing everything about the internals.

If not for this ability for non-experts to access expertise, there would be no way for the benefits of that expertise to disseminate into the broader society and inform our policy decisions.

<a href="#toc_5" title="Link directly to section 5">5</a><a name="toc_5"></a> <span title="Section 5: Programming">Programming</span> <a href="#" title="Back to top"> ↑ </a>

I enjoy programming and have benefited immensely from the vast, rich ecosystem of free and open source software available to programmers today (see "Technical Notes", below).

<a href="#toc_5.1" title="Link directly to section 5.1">5.1</a><a name="toc_5.1"></a> <span title="Section 5.1: Great Time for OK Coders">Great Time for OK Coders</span> <a href="#" title="Back to top"> ↑ </a>

I know enough about great programmers and their remarkable contributions to understand that I am not a great programmer. Nevertheless, the rich ecosystem of programming languages, libraries, frameworks and tools means even a duffer like me can be creative and productive - and that's a Good Thing.

<a href="#toc_5.2" title="Link directly to section 5.2">5.2</a><a name="toc_5.2"></a> <span title="Section 5.2: Productive Modern Languages">Productive Modern Languages</span> <a href="#" title="Back to top"> ↑ </a>

One of the great things about modern programming languages is how highly expressive they are. You can create working code very efficiently, with a minimum of boilerplate.

That means it's easy to develop simple tools that do exactly what you want them to do and no more - and to do them quickly.

<a href="#toc_5.3" title="Link directly to section 5.3">5.3</a><a name="toc_5.3"></a> <span title="Section 5.3: Shared Open Source Software">Shared Open Source Software</span> <a href="#" title="Back to top"> ↑ </a>

Recently I have begun releasing a few such handy tools under a free software / open source licence. You can find my shared resources hosted on GitHub.

The code isn't beautiful, but I'm no genius.

<a href="#toc_6" title="Link directly to section 6">6</a><a name="toc_6"></a> <span title="Section 6: Website Development">Website Development</span> <a href="#" title="Back to top"> ↑ </a>

I do a bit of freelance web application development. Feel free to contact me via email at ryan@quandyfactory.com to inquire about services and rates.

<a href="#toc_6.1" title="Link directly to section 6.1">6.1</a><a name="toc_6.1"></a> <span title="Section 6.1: Outsourced Graphic Design">Outsourced Graphic Design</span> <a href="#" title="Back to top"> ↑ </a>

I am not a graphic designer, and my own website design tends to the very minimal. However, I do have a good working relationship with a talented graphic designer who can design the layout and colour scheme to reflect your organization.

I am also happy to work with a design that you provide.

<a href="#toc_7" title="Link directly to section 7">7</a><a name="toc_7"></a> <span title="Section 7: Technical Notes">Technical Notes</span> <a href="#" title="Back to top"> ↑ </a>

There's no particularly good reason why I didn't simply use WordPress or Drupal or some other off-the-shelf blogging software for this site; except that I enjoy building things (also, PHP makes the baby Jesus cry).

Anyway, it's not like I built the site from scratch.

  • It runs on nginx and Apache on a CentOS Linux machine hosted by the awesome admins at WebFaction.

  • It is written in the Python programming language and uses the lightweight web.py application development framework.

  • Web.py talks to Apache via the mod_wsgi server module, which implements the standard Web Services Gateway Interface (WSGI) specification for Python applications to communicate with web servers.

  • The site stores its documents in a MySQL database, to which it connects via the ingenious SQLAlchemy database toolkit and object-relational mapper (ORM).

  • Documents are saved in Markdown syntax and converted to HTML for display using the python-markdown2 library (which is itself a re-implementation of the original python-markdown library).

  • It also uses Quandy, a library of handy classes and functions that I use frequently in writing web code.

In other words, I'm sitting here on the shoulders of giants - and the view is grand!