About Ryan McGreal, Quandy Factory and the various pages contained herein.
By Ryan McGreal
Posted September 10, 2009 in Site (Last Updated March 05, 2021)
1 Introduction ↑
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.
1.1 Raise the Hammer ↑
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.
1.2 Hamilton Light Rail ↑
I am also a proud founding member of Hamilton Light Rail, a community group dedicated to bringing light rail transit to Hamilton.
1.3 Published Essays ↑
I have written several essays on urban issues that have been published in the Hamilton Spectator and elsewhere over the past five years.
1.4 Contact ↑
You can reach me via email at email@example.com or on twitter @RyanMcGreal.
2 This Site ↑
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.
3 Eye Quandy ↑
3.1 Quandy Logo ↑
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.
3.2 Footer Image ↑
The awesome cityscape panorama in the footer was taken by the talented photographer and amateur urbanist Aaron Segaert, and is used with permission.
4 Interests ↑
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.
4.1 Conceptual Overlap ↑
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.
4.2 Jack of All Trades ↑
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.
4.3 Benefit from Shared Expertise ↑
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.
5 Programming ↑
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).
5.1 Great Time for OK Coders ↑
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.
5.2 Productive Modern Languages ↑
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.
5.3 Shared Open Source Software ↑
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.
6 Technical Notes ↑
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 ̶W̶e̶b̶f̶a̶c̶t̶i̶o̶n̶ Opalstack.
It is written in the Python programming language and uses the lightweight web.py application development framework.
Web.py talks to Apache via the uwsgi server module, which replaces the older standard Web Services Gateway Interface (WSGI) specification for Python applications to communicate with web servers.
The site stores its documents in a MariaDB database, which is a free-and-open source fork of MySQL, and the database connection is made using 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!