<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>the reality tunnel</title>
	<atom:link href="http://blogs.terrorware.com/geoff/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.terrorware.com/geoff</link>
	<description>questionable social commentary, poorly coded hacks, media illiteracy</description>
	<lastBuildDate>Fri, 26 Feb 2010 03:34:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>#imfromlakeview?</title>
		<link>http://blogs.terrorware.com/geoff/2010/02/25/imfromlakeview/</link>
		<comments>http://blogs.terrorware.com/geoff/2010/02/25/imfromlakeview/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 03:26:39 +0000</pubDate>
		<dc:creator>Geoffrey Hing</dc:creator>
				<category><![CDATA[chicago]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[lakeview]]></category>
		<category><![CDATA[neighborhood]]></category>
		<category><![CDATA[race]]></category>

		<guid isPermaLink="false">http://blogs.terrorware.com/geoff/?p=1808</guid>
		<description><![CDATA[I live in the Lakeview neighborhood of Chicago.  When I tell people where I live, I&#8217;m often  asked &#8220;why Lakeview?&#8221; or given a glum, &#8220;oh.  That&#8217;s cool.&#8221;  My friends in Chicago don&#8217;t live in the neighborhood.  People think of it for the college town style bars in Wrigleyville, or going to The Alley when they [...]]]></description>
			<content:encoded><![CDATA[<p>I live in the Lakeview neighborhood of Chicago.  When I tell people where I live, I&#8217;m often  asked &#8220;why Lakeview?&#8221; or given a glum, &#8220;oh.  That&#8217;s cool.&#8221;  My friends in Chicago don&#8217;t live in the neighborhood.  People think of it for the college town style bars in Wrigleyville, or going to The Alley when they were teenagers to get punk gear. I find that I&#8217;ve started to preempt the &#8220;Why Lakeview?&#8221; question with a quick explanation that I moved to that neighborhood because it had good neighborhood public schools and I moved to Chicago with 2 school-aged roommates.  This explanation seems to satisfy most people, but it doesn&#8217;t resonate.  Before this move, public schools aren&#8217;t something I would have factored into my neighborhood choice either.</p>
<p>When I talk to long-time Chicagoans who live in other neighborhoods, it makes me anxious.  In a city so defined by racial and economic segregation, I worry that people will think of me only in terms of perceptions of my neighborhood.  I will become only the privilege or ability or ability derived from privilege that gives me the means to pay the neighborhood&#8217;s above average rents.  And that is true, it is a part of my reality and who I am, but it&#8217;s not everything, just as the mostly white, mostly young, mostly professional folks living in condos are a part of the reality of lakeview, but not everything.</p>
<p>In terms of income, Lakeview looks like the table:</p>
<table class="data" border="0" cellspacing="0" cellpadding="0" width="500">
<tbody>
<tr bgcolor="#cad3ef">
<td class="odd" colspan="9" align="center"><strong><span style="color: #27428a">Income Diversity (by Families) in </span> <span class="cname">LAKE VIEW</span> </strong></td>
</tr>
<tr>
<td class="odd" rowspan="2" width="100"></td>
<td class="odd" colspan="2" align="center"><strong>1970</strong></td>
<td class="odd" colspan="2" align="center"><strong>1980</strong></td>
<td class="odd" colspan="2" align="center"><strong>1990</strong></td>
<td class="odd" colspan="2" align="center"><strong>2000</strong></td>
</tr>
<tr>
<td class="odd" align="center"><strong>#</strong></td>
<td class="even" align="center"><strong>%</strong></td>
<td class="odd" align="center"><strong>#</strong></td>
<td class="even" align="center"><strong>%</strong></td>
<td class="odd" align="center"><strong>#</strong></td>
<td class="even" align="center"><strong>%</strong></td>
<td class="odd" align="center"><strong>#</strong></td>
<td class="even" align="center"><strong>%</strong></td>
</tr>
<tr bgcolor="#f7e1b5">
<td class="odd" align="right">Low Income</td>
<td class="odd" align="center">9192</td>
<td class="even" align="center">33%</td>
<td class="odd" align="center">7843</td>
<td class="even" align="center">39%</td>
<td class="odd" align="center">3987</td>
<td class="even" align="center">26%</td>
<td class="odd" align="center">2520</td>
<td class="even" align="center">18%</td>
</tr>
<tr bgcolor="#aeb8ce">
<td class="odd" align="right">Moderate Income</td>
<td class="odd" align="center">11553</td>
<td class="even" align="center">42%</td>
<td class="odd" align="center">7480</td>
<td class="even" align="center">37%</td>
<td class="odd" align="center">4962</td>
<td class="even" align="center">32%</td>
<td class="odd" align="center">3305</td>
<td class="even" align="center">23%</td>
</tr>
<tr bgcolor="#aad097">
<td class="odd" align="right">High Income</td>
<td class="odd" align="center">6748</td>
<td class="even" align="center">25%</td>
<td class="odd" align="center">4807</td>
<td class="even" align="center">24%</td>
<td class="odd" align="center">6325</td>
<td class="even" align="center">41%</td>
<td class="odd" align="center">8393</td>
<td class="even" align="center">59 %</td>
</tr>
<tr bgcolor="#c5c5c5">
<td class="odd" style="border-color: black" align="right">Total</td>
<td class="odd" style="border-color: black" align="center">27492</td>
<td class="even" style="border-color: black black black white" align="center">100%</td>
<td class="odd" style="border-color: black" align="center">20131</td>
<td class="even" style="border-color: black black black white" align="center">100%</td>
<td class="odd" style="border-color: black" align="center">15274</td>
<td class="even" style="border-color: black black black white" align="center">100%</td>
<td class="odd" style="border-color: black" align="center">14219</td>
<td class="even" style="border-color: black black black white" align="center">100%</td>
</tr>
<tr>
<td colspan="9" align="right"><a href="go('incomediversity05.asp?cid=06&amp;cname=LAKE VIEW', 1)">View 2005 Income Diversity Data</a></p>
<p><a href="//info.mcfol.org/www/datainfo/mapreports/handlereport_data.asp?garea=a&amp;gcode=06',2)">View 2005 Estimates and 2010 Projections</a></td>
</tr>
</tbody>
</table>
<p>Note: Low income =  families with annual income &lt; $38,622, moderate income = families with annual income $38,622 &#8211; $78,825, families with annual income &gt; $78,825.</p>
<p><a href="http://info.mcfol.org/web/Datainfo/incomediversity/incomediversity.asp?cid=06">Read full data and analysis</a>.</p>
<p>In terms of race, the neighborhood looks like this:</p>
<p><a href="https://www.swivel.com/charts/13072-Lakeview-Racial-Demographics-2010-Projections"><img src="https://i.swivel.com/i?url=http%3A%2F%2Fwww.swivel.com%2Fcharts%2F13072-Lakeview-Racial-Demographics-2010-Projections.thumb%3Fsecret%3DSCE8bQqwz%252BiY4HZXCyzQCQ%253D%253D%26size%3D420x350%26title%3Dtrue&amp;crop=420x350" alt="" width="420" height="350" /></a></p>
<p>Note that there&#8217;s no Latino group because the way that the 2000 census (and, I guess, subsequent EASI surveys) treat Spanish-speaking people is that they&#8217;re counted in the other racial groups.  I&#8217;m told that most report themselves as white or other.  The only breakdown of Latino or Spanish speaking people is relative to white folks who don&#8217;t identify as Latino or Hispanic.  For Lakeview, this looks like this:</p>
<p><a href="https://www.swivel.com/charts/13073-Lakeview-Hispanics-Latinos"><img src="https://i.swivel.com/i?url=http%3A%2F%2Fwww.swivel.com%2Fcharts%2F13073-Lakeview-Hispanics-Latinos.thumb%3Fsecret%3DkabFE3afQQAB%252BT%252B3olf3DQ%253D%253D%26size%3D420x350%26title%3Dtrue&amp;crop=420x350" alt="" width="420" height="350" /></a></p>
<p>I&#8217;ve decided that it is reductive to, by my discomfort in owning up to where I live, define the place where I live only by the 59 percent of families that have high incomes or the nearly 79 percent that are white.  This ignores the 18 percent of low income families who found some way to work themselves into the neighborhood, perhaps in order to send their kids to a <a href="http://www.nettelhorst.org/">functional, vibrant public school</a>.  It ignores the<a href="http://www.chicagotribune.com/news/columnists/chi-trice-30nov30,0,6401978.column"> queer youth of color who come to the neighborhood so they can be out</a>; and institutions like the <a href="http://www.linkshall.org/">Links Hall</a> dance and performance space; the <a href="http://www.chicagowomenshealthcenter.org/">Chicago Womens Health Center</a>, the LGBTQ community center, <a href="http://www.centeronhalsted.org">Center on Halsted</a>; and  the <a href="http://www.lakeviewaction.org/">Lakeview Action Coalition</a>.</p>
<p>I can&#8217;t really say what all these parts mean, whether they&#8217;re bad or good, just that they&#8217;re part of the neighborhood.  When we think of place only by its biggest or loudest components we think of the way that they change in frightening terms, as one thing consuming or threatening another, instead of transformation or evolution.  I want to see the places in my life for everything that they are and might be.</p>
<p>Note: All the data from this post is from the fabulous <a href="http://info.mcfol.org/web/index.aspx">Metro Chicago Information Center</a>.  The photo is from Google Maps.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.terrorware.com/geoff/2010/02/25/imfromlakeview/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>political correctness</title>
		<link>http://blogs.terrorware.com/geoff/2010/02/25/political-correctness/</link>
		<comments>http://blogs.terrorware.com/geoff/2010/02/25/political-correctness/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 01:47:32 +0000</pubDate>
		<dc:creator>Geoffrey Hing</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.terrorware.com/geoff/?p=1868</guid>
		<description><![CDATA[I loved David Wilcox&#8217;s Chicago Reader article Human Care Bears about the cultural framing of people with mental disabilities.  I am always profoundly frustrated by the way that critiques of critiques of language dismiss people feeling offended or having other deeply personal reactions to certain words.  Wilcox&#8217;s writing about the word &#8220;retarded&#8221; is much more [...]]]></description>
			<content:encoded><![CDATA[<p>I loved David Wilcox&#8217;s Chicago Reader article <a href="http://www.chicagoreader.com/chicago/rahm-emanuel-sarah-palin-family-guy-retard-disabilities/Content?oid=1467084">Human Care Bears</a> about the cultural framing of people with mental disabilities.  I am always profoundly frustrated by the way that critiques of critiques of language dismiss people feeling offended or having other deeply personal reactions to certain words.  Wilcox&#8217;s writing about the word &#8220;retarded&#8221; is much more nuanced in its exploration of language and the way it describes or fails to describe people&#8217;s experiences.  Wilcox explains how, having a sister with mental disabilities, his relationship with the word &#8220;retarded&#8221; is complicated and evolving he can find it degrading, employ it at times, and find himself apathetic about its casual use.</p>
<p>Wilcox writes:</p>
<blockquote><p>Through most of my teens and into my early 20s, I never hesitated to correct someone if I heard them use the R word inappropriately.</p>
<p>And then I eased up. Not altogether—I still consider retard, when directed at someone with an actual disability, a degrading term, and I&#8217;m not afraid to say so. But when I hear an acquaintance or a stranger toss off phrases like &#8220;that&#8217;s so retarded,&#8221; it hardly seems worth it. If it&#8217;s someone I care about, who I know will actually listen, then absolutely, I&#8217;ll take the time to explain why it bothers me. Otherwise, in my experience, pointing it out has just made people defensive, made me look self-righteous, and ultimately never changed a thing.</p></blockquote>
<p>In his article he manages to offer, in part, the &#8220;sustained, thoughtful discussion&#8221; that he finds so missing in our society when it comes to talking about the word &#8220;retarded&#8221; (and really the way that language offends and mediates our society).</p>
<p>I really like the way he explains that both &#8220;retarded&#8221; and seemingly positive representations of mental disability fail to represent his sister&#8217;s reality.</p>
<p><a href="http://www.chicagoreader.com/gyrobase/rahm-emanuel-sarah-palin-family-guy-retard-disabilities/Content?oid=1467084">Read &#8220;Human Care Bears.&#8221;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.terrorware.com/geoff/2010/02/25/political-correctness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why j-school?</title>
		<link>http://blogs.terrorware.com/geoff/2010/02/21/why-j-school/</link>
		<comments>http://blogs.terrorware.com/geoff/2010/02/21/why-j-school/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 03:07:06 +0000</pubDate>
		<dc:creator>Geoffrey Hing</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.terrorware.com/geoff/?p=1863</guid>
		<description><![CDATA[My last post explained what I was doing, but not neccessarily why I was doing it.  I had to answer some questions for the Medill website about the Knight Scholarship and I thought I&#8217;d share my responses here.
What was your undergrad major / graduation year? Did you work in your field of study after graduation?
I [...]]]></description>
			<content:encoded><![CDATA[<p>My last post explained what I was doing, but not neccessarily why I was doing it.  I had to answer some questions for the Medill website about the Knight Scholarship and I thought I&#8217;d share my responses here.</p>
<p><strong>What was your undergrad major / graduation year? Did you work in your field of study after graduation?</strong></p>
<p>I graduated from the Ohio State University in 2003 with a degree in computer science and engineering.  Shortly after that, I moved to Bloomington, Indiana where spent the next few years working a number computer-related jobs, mostly in the area of web-based software development, but spent much more time playing music and coordinating the Midwest Pages to Prisoners Project.</p>
<p><strong>What interested you about attending Medill? (aka, why journalism and why now?)</strong></p>
<p>Through my work with non-profits and grassroots community activist organizations, I was always engaged around the news and information in my community.  I felt like many of the roadblocks towards solving community problems that became framed as ideological conflicts were, at their roots, a result of an information gap within the community.  People didn&#8217;t understand what was happening, how government or institutions functioned, and the stories of different people with different orientations around community issues.  Journalism seemed like one of the fields best positioned to help meet the information needs of communities, and efforts such as the Knight Commission indicated that there was traction for framing the work of journalists beyond traditional news media.</p>
<p>I was also becoming frustrated with my role as a technology maker. I loved coding, but it was often an experience that was isolating from other people and from important things happening in the world.  Through networks such as the Allied Media Conference, I saw that there were exciting possibilities for using technology and technologically-mediated information to engage in the world, but I needed support to move in this direction.</p>
<p>Truthfully,my interest in Medill was the possibility of the Knight scholarship.  In any discipline it is tragically difficult to have the space of a year to switch gears, learn, and experiment while still being able to support oneself.  The possibility of the scholarship made my personal exploration seem possible.</p>
<p>Rich Gordon&#8217;s efforts to lower the barriers for hacker-journalists to develop formal journalism skills made me feel that there was a place for my interests at Medill and I thought that it was a pretty clever use of News Challenge funds in developing a framework for new journalism pedagogy rather than a technological framework.</p>
<p>Finally, as someone making music, I was already in the practice of telling stories and mediating information.  I felt wary of the information that could fit in a two or three minute song.  I wanted to have other storytelling abilities to complement making and sharing music.  Projects like Detroit-based MCs Finale and Invincible&#8217;s Locusts video (http://emergencetravel.net/node/7)  showed that there could be a complete integration between music and storytelling about news, community, and history.  For me, I felt like the structure of school could help me learn to research and tell stories that had a similar impact.</p>
<p><strong>What role do you see in the future for programmers/developers/electrical/engineers in journalism?</strong></p>
<p>I think there are probably many new roles, especially regarding building and maintaining new platforms, but I am most excited about the emergence of hacker-journalists.  Just as a photojournalist tells news stories through photos, the hacker-journalist tells stories through data and applications.</p>
<p><strong>Can you postulate a bit about what technical folk bring to the journalism table? How will journalism benefit from your POV? (Aside from solving the billing crisis, of course.)<br />
</strong><br />
More than anything, technical folk bring a different perspective, different practice, and experience solving different but potentially analogous problems.  There are many, many outside perspectives that could benefit formal journalism and while I&#8217;m grateful that I received a scholarship to help fuse my technological practice with formal journalism training, it is extremely unfortunate that there aren&#8217;t similarly specific opportunities for people like untrained community journalists reporting from communities under-served by and underrepresented in the media.</p>
<p>Journalism will benefit most from my point of view not so much as a developer, but as a free/libre/open source software (FLOSS) user/developer.  I think that the best of FLOSS practice can bring three things to journalism.  First, FLOSS projects often try to make information free, useful, and don&#8217;t presume how users will find their tools or the information that it mediates useful.  Second, successful FLOSS projects build on a base of collaboration and community.  Finally, many FLOSS projects have a goal of sustainability that is more nuanced than the simple profitability of the software products that are produced.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.terrorware.com/geoff/2010/02/21/why-j-school/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Back to school</title>
		<link>http://blogs.terrorware.com/geoff/2010/02/14/back-to-school/</link>
		<comments>http://blogs.terrorware.com/geoff/2010/02/14/back-to-school/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 07:39:17 +0000</pubDate>
		<dc:creator>Geoffrey Hing</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.terrorware.com/geoff/?p=1844</guid>
		<description><![CDATA[
I haven&#8217;t written here in a while and that&#8217;s largely because of going back to school.  At the beginning of January, I started a one-year MSJ program at the Medill School of Journalism at Northwestern University thanks to a scholarship from the Knight Foundation (read an article in Time about the scholarship).
Even with the funding, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.terrorware.com/geoff/files/2010/02/17565_424611995384_892890384_10519258_3797212_n.jpg"><img class="size-full wp-image-1843 alignleft" title="Medill MSJs" src="http://blogs.terrorware.com/geoff/files/2010/02/17565_424611995384_892890384_10519258_3797212_n.jpg" alt="" width="423" height="280" /></a></p>
<p>I haven&#8217;t written here in a while and that&#8217;s largely because of going back to school.  At the beginning of January, I started a one-year MSJ program at the <a href="http://www.medill.northwestern.edu/">Medill School of Journalism</a> at Northwestern University thanks to a scholarship from the <a href="http://www.medill.northwestern.edu/admissions/page.aspx?id=58645">Knight Foundation</a> (<a href="http://www.time.com/time/business/article/0,8599,1902202,00.html">read an article in Time about the scholarship</a>).</p>
<p>Even with the funding, it was a hard decision to go back to school.  I&#8217;ve been surrounded by people <a href="http://tmle.terrorware.com">doing</a> <a href="http://www.myspace.com/pinkhousesbloomington">awesome</a> <a href="http://www.alliedmediaconference.org">things</a>, often in non-formal ways, <a href="http://www.dothisallday.org">without the support or constraint of school</a>, and part of me felt like going back to school was a form of procrastination.</p>
<p>At the same time, the structure of school is really helpful to me in the way it balances my perfectionist tendencies.  It gives me a starting point.  All the possibilities for making things &#8211; the new programming languages I could learn, the songs I could write, the things happening in the world that I want to explore are so vast that I can easily just spin my wheels.  Having deadlines, project constraints, and even grades helps me to just do it and accept that there are things that I don&#8217;t do very well and have to get better at.</p>
<p>I also really love the way school makes me think about lots of different topics from the latest current events to how a municipality raises money, dissecting the way a news story works or doesn&#8217;t work effectively, debating the ethics of airing an unauthorized conversation with an accident victim trapped in her car.  On face, I don&#8217;t know how interested I am in any of these things, but I love the process of inquiry and trying to link these ideas with things that seem more relevant to me or with some broader context.</p>
<p>All my classmates are really smart, and I think that it&#8217;s a good challenge for me to have to realize that people can come to a smart, critical perspective without all of the experiences that I always assumed make people smart and critical.  This is a ridiculous thing to realize, I know.  A classmate told me I was inquisitive and it&#8217;s hard to tell whether or not that was a euphemism.  Somewhere along the way, whether it was because of grades, parental or teacher validation, the apathy of other students, I got the notion lodged in the back of my head that I was smarter than everyone else in the class.  Going back to school when I&#8217;m more mature, and being around people who are smart and engaged has forced me to sit back and listen to others&#8217; questions realizing that the time and space I take up is time and space I could be taking from someone else who has something smarter or more interesting to say or ask.  It forces me to self-check whether my questions are really questions that I have or a performance of my identity as the kid who asks questions or brings a certain adversarial critique to the discussion.</p>
<p>Still, I feel like many of my classmates and I are looking to get different things out of school.  I&#8217;m glad that I got funding to go to school because I think that paying a ton of money to go to school, any school, can make you pretty risk averse or anxious about whether or not you get your money&#8217;s worth.  The program at Medill is only a year, which is good because it doesn&#8217;t eat up years of your life, but hard too, because it doesn&#8217;t give you much room for experimentation.  With the short time and high costs, there&#8217;s a lot of pressure to have a clear idea about what you want to do, get the skills you need to do it, and get out.</p>
<p>I think that both engineering, my undergraduate discipline, and journalism have very practical educational traditions.  This is great because I&#8217;ve been spending a significant part of my past weeks walking around Chicago neighborhoods, taking photos, recording audio, and talking to people.  On the other hand, there&#8217;s not as much space for trying out new ways to do things.  While there are &#8220;innovation projects&#8221; that many students can take, the goal of the program seems to produce graduates who have skills that will serve them well as working journalists, and I think that this is what a lot of students, at great expense, come to school for.  I see school less as a place to personally retool and more as a place where you can try out things that just aren&#8217;t possible or are too risky at a commercial media outlet, or where there aren&#8217;t the resources at an independent media organization.</p>
<p>Learning the basics of traditional newswriting has made me appreciate old-school journalism in a way I never did before.  There&#8217;s a craft that becomes apparent when one of my professors, a seasoned reporter, recasts a sentence you wrote and, like magic, it&#8217;s just better.  It has also made me understand media bias in a new way.  Within the constraints of time or space dictated by most of my stories for classes (meant to simulate those you would find writing for a newspaper), and writing for a broad audience, it was really scary to see how tame my stories turned out.  In everything I&#8217;ve written, even the things that are really bland, there have felt like a million editing decisions as part of the process.  I think that conveying information in a way that feels true, but is also compelling takes an incredible amount of time and practice.</p>
<p>In general, studying journalism is making me a better listener. Starting to talk to people with an angle in mind for a story is frustrating because, when I start talking to people. I can quickly realize that this really isn&#8217;t the story or that it will take much longer than my deadline to flush it out. But, even if I don&#8217;t get what I&#8217;m looking for, I still get the chance to have to listen, really listen to what someone else is saying about their experience, and I think that this can be a rare opportunity in today&#8217;s world. I&#8217;m am struck by how the competitive nature of mainstream journalism subverts listening. I don&#8217;t see how one can really explore the nuance of complex issues if you&#8217;re constrained to a certain number of paragraphs or have to file a story in a few hours. There is a craft in people who try to successfully navigate these constraints, but I&#8217;m convinced that there is also a need for media that isn&#8217;t mediated by these things.</p>
<p>Doing beat reporting has made me listen to the city in a different way also.  With each story, I see a different overlay of the city.  It might be graffiti one week, grocery stores the week before, foreclosed homes the next.  Jumping between these different areas of focus exposes both how vast the city is and also how much of it I can miss.</p>
<p>In j-school, I see such a struggle to shift from old media paradigms to new ones.  I&#8217;ve heard professors refer to citizen journalists at hobbyist or as competition for professional journalists, but there&#8217;s very little discussion of how bloggers and other <a href="http://www.inthesetimes.com/article/5538/building_better_media/">community media makers are mediating and transmitting information that the mainstream media has no interest in dealing with</a>.  It&#8217;s easy to talk about information in terms of the medium &#8211; print, broadcast, interactive &#8211; instead of the ways people use the information, or want to use information, or want to discover information.  There&#8217;s also a strict dichotomy between journalist and audience rather than seeing both as participants or part of a community.</p>
<p>The language of many of our lectures, even the future facing ones talks about the business of media or journalism.  I see media as an ecosystem where business is part of the system, and maybe even an essential part, but where there are many components that are needed to maintain a healthy, sustainable flow of information.  There&#8217;s a lot of messaging that seems intent on building confidence that graduates can find work in the remnants or next iteration of mainstream media.  I wish there was some space for people who might be interested in participating in the rest of the ecosystem or putting the kinds of stories that people want to tell or the information they want to mediate first rather than the spaces where they can be told.</p>
<p>There must be spaces where the success or failure of an idea isn&#8217;t dictated by its market viability or practicality.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.terrorware.com/geoff/2010/02/14/back-to-school/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cuts</title>
		<link>http://blogs.terrorware.com/geoff/2010/02/11/cuts/</link>
		<comments>http://blogs.terrorware.com/geoff/2010/02/11/cuts/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 16:46:22 +0000</pubDate>
		<dc:creator>Geoffrey Hing</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[chicago]]></category>
		<category><![CDATA[cta]]></category>

		<guid isPermaLink="false">http://blogs.terrorware.com/geoff/?p=1851</guid>
		<description><![CDATA[A few days into the recent CTA cuts and it really doesn&#8217;t seem that bad.  The Tribune even seemed to struggle with its coverage when some people were saying their transit experience after the cuts sucked and other said it was fine, which is pretty much how the discourse over the quality of CTA [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1850" class="wp-caption alignnone" style="width: 410px"><a href="http://blogs.terrorware.com/geoff/files/2010/02/IMG_0509.jpg"><img class="size-full wp-image-1850" title="CTA Train" src="http://blogs.terrorware.com/geoff/files/2010/02/IMG_0509.jpg" alt="" width="400" height="299" /></a><p class="wp-caption-text">A CTA Red Line train arriving at the Loyola stop</p></div>
<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } -->A few days into the recent CTA cuts and it really doesn&#8217;t seem that bad.  The Tribune even seemed to struggle with its coverage when some people were saying their transit experience after the cuts sucked and other said it was fine, which is pretty much how the discourse over the quality of CTA service always goes.  What is kind of terrifying is how different people&#8217;s experiences can be in the same city, riding the same transit system.  It seems like a metaphor for the hopelessness of looking outside of one&#8217;s own experience.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.terrorware.com/geoff/2010/02/11/cuts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Social media and neighborhood voice on the web</title>
		<link>http://blogs.terrorware.com/geoff/2009/12/14/social-media-and-neighborhood-voice-on-the-web/</link>
		<comments>http://blogs.terrorware.com/geoff/2009/12/14/social-media-and-neighborhood-voice-on-the-web/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 22:33:55 +0000</pubDate>
		<dc:creator>Geoffrey Hing</dc:creator>
				<category><![CDATA[ideas]]></category>
		<category><![CDATA[chicago]]></category>
		<category><![CDATA[geography]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[neighborhood]]></category>

		<guid isPermaLink="false">http://blogs.terrorware.com/geoff/?p=1840</guid>
		<description><![CDATA[While those looking to discover neighborhoods across racial blind spots would certainly benefit from a broader set of geographically discoverable neighborhood social media, it is ultimately up to individual neighborhoods to decide if they benefit from voicing neighborhood identity and experience on the web.  ]]></description>
			<content:encoded><![CDATA[<p>I had a pretty great (and very, very educational) time at <a href="http://www.drupalcampchicago.org">Drupal Camp Chicago</a> this past weekend.Â  I was particularly interested to attend <a title="bec@circuitous" href="http://circuitous.org/">Bec White&#8217;s BoF</a> on using Drupal&#8217;s Geo data capabilities to implement the <a href="http://movesmart.org/">MoveSmart website</a>.Â Â Â  MoveSmart provides a neighborhood finder that attempts to help people discover neighborhoods that would otherwise be part of &#8220;<a title="Study Finds Chicago Segregation Perpetuated by Lack of Knowledge" href="http://www.chicagopublicradio.org/Content.aspx?audioID=38675">racial blind spots</a>&#8220;.Â  It&#8217;s pretty remarkable that they were able to import, geocode, and weigh<a href="http://movesmart.org/about-data"> more than six different data sets</a> about Chicago neighborhoods to help people discover neighborhoods in Chicago.</p>
<p>One future idea for the site that was mentioned is to include social information showing neighborhood assets as part of the finder results.Â  Bec noted that this is problematic because social content on the web is so segregated.Â  She said (I&#8217;m paraphrasing), &#8220;I live in Humbolt Park and on <a title="EveryBlock" href="http://www.everyblock.com/">Everyblock</a> there is a clear line where the restaurant reviews stop and the crime reports start&#8221;.</p>
<p>There is a huge disparity between how (or if) different neighborhood residents use their neighborhood voice on the web.Â  For those who live in well resourced neighborhoods, we take a positive representation of our neighborhood for granted.Â  Even if interacting on sites like Yelp or posting and geotagging photos of our &#8216;hood in Flickr seems like a waste of time, we can be sure that someone is creating this content.Â  For less resourced neighborhoods, creating social media about the neighborhood might also seem like a low priority, but it means that there are far fewer positive or first-person representations of the neighborhood.Â  Not only does this seem to increase the likelyhood of negative outside perception of the neighborhood, but it also makes discovery of the neighborhood and its assets harder.</p>
<p>Do neighborhood assets (schools, churches, community groups, family) have content that they could put on the web through social media sites?Â  I&#8217;m guessing that they do.Â  I&#8217;m going to assume that taking snapshots is a fairly universal practice.Â  If this assumption is correct, what barriers exist to these things being shared through social media?Â  Is it because of lack of time, technological familiarity, computer, broadband, or mobile access?Â  Or, is it that they are shared, but not through social network platforms that offers easy (or broadly implemented) programatic retrieval of geographically associated data (e.g. MySpace)?</p>
<p>View <a href="http://maps.google.com/maps/ms?hl=en&amp;ie=UTF8&amp;t=h&amp;msa=0&amp;msid=103647195530581788559.00044b66339217a3e2538&amp;source=embed&amp;ll=41.83913,-87.718105&amp;spn=0.022381,0.036478">OurMap of Environmental Justice</a> in a larger map</p>
<p>One possible model for creating more geographically associated neighborhood social media would be to work with community groups to build maps such as Little Village Environmental Justice Organization&#8217;s<a href="http://www.elcilantro.org/?page_id=6"> Our Map of Environmental Justice</a>.Â  While this map, developed by youth in Chicago&#8217;s Little Village neighborhood largely shows environmental and social hazards (coal burning power plants, gang territory divisions), it also shows some community assets (schools, parks).Â Â Â  Using a platform like Google MyMaps seems like an easy and fun way for people to represent their neighborhood on the web.Â  Linking to an image in a map seems like it is more conceptually intuitive than geotagging an image uploaded to Flickr.Â  It looks like you can get GeoRSS out of Google MyMaps and this could be parsed into a database and made available to others through an API.</p>
<p>I think that youth in a neighborhood are probably quicker to adopt using social media than older adults.  However, I think that youth media efforts often try to get youth to participate under a centralized project.  It&#8217;s possible that, posting media on accessible platforms, a free-form, decentralized approach could offer a greater benefit.  The project could focus on aggregating the social media rather than trying to guide youth to post certain media, in a certain place, in a certain way.  </p>
<p>While those looking to discover neighborhoods across racial blind spots would certainly benefit from a broader set of geographically discoverable neighborhood social media, it is ultimately up to individual neighborhoods to decide if they benefit from voicing neighborhood identity and experience on the web.  </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.terrorware.com/geoff/2009/12/14/social-media-and-neighborhood-voice-on-the-web/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Finding duplicate records in a books to prisoners database application</title>
		<link>http://blogs.terrorware.com/geoff/2009/12/09/finding-duplicate-records-in-a-books-to-prisoners-database-application/</link>
		<comments>http://blogs.terrorware.com/geoff/2009/12/09/finding-duplicate-records-in-a-books-to-prisoners-database-application/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 21:28:43 +0000</pubDate>
		<dc:creator>Geoffrey Hing</dc:creator>
				<category><![CDATA[Pages to Prisoners]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[note to self]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[idea]]></category>
		<category><![CDATA[pages]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[record]]></category>
		<category><![CDATA[testament]]></category>
		<category><![CDATA[tweetit]]></category>

		<guid isPermaLink="false">http://blogs.terrorware.com/geoff/?p=1834</guid>
		<description><![CDATA[High on my list of neglected tech. projects is the Testament books to prisoners database web application.Â  This is the database program that projects like the Midwest Pages to Prisoners Project use to track packages sent and returned and books requested in the hopes avoiding delays in delivering books to incarcerated people and to provide [...]]]></description>
			<content:encoded><![CDATA[<p>High on my list of neglected tech. projects is the <a href="http://blogs.terrorware.com/testament/">Testament</a> books to prisoners database web application.Â  This is the database program that projects like the <a href="http://www.pagestoprisoners.org">Midwest Pages to Prisoners Project</a> use to track packages sent and returned and books requested in the hopes avoiding delays in delivering books to incarcerated people and to provide metrics that grant providers like.</p>
<p>One of the design challenges has to do with duplicate records.Â  Recipients of books are identified by their state/federal department of correction (DOC) number (if they&#8217;re in a state or federal prison &#8211; most jails don&#8217;t use ID numbers), their state of incarceration and their name.Â  I assume that the database was designed originally to minimize barriers for the book project volunteers so both the name and DOC# are free text fields.Â  Javascript is used to match existing records based on the DOC#, but there is still a large possibility for duplicate records.</p>
<p>The reason for duplicate records is that both the person writing to request books and the volunteer may list their name and/or DOC# inconsistently.Â  For instance, the state may store the DOC# in their database as A-123456 but the incarcerated person may write it as A123456 A-123-456 or just 123456.Â  Volunteers who don&#8217;t know about this and aren&#8217;t careful may not check beforehand for an existing record.</p>
<p>This is probably preventable through more sophisticated validation, but we still need a way to find duplicates in the existing records.Â  As this application is written in the Django framework, I want to try to use the Django API to find matches.</p>
<p>At first thought, it seems like I will have to iterate through each inmate record and check if there is a duplicate record.Â  This seems pretty slow, but I can&#8217;t think of a better way to do this.Â  At this point, there aren&#8217;t so many records that this approach will fail, but it would be nice to do something slicker.</p>
<p>The other problem is how to match a duplicate.Â  One approach might be to build a regexp for the DOC# (for instance, match either the first character or omit it, allow dashes or spaces between all characters, &#8230;) and then use the <a href="http://docs.djangoproject.com/en/dev/ref/models/querysets/#iregex">iregexp</a> field lookup to try to find matches. One challenge with this is that the current Testament codebase is using Django 0.97 (I think) and iregexp is only available starting in 1.0.Â  Maybe it&#8217;s time we updated our code anyway.</p>
<p>There is also the Python <a href="http://docs.python.org/library/difflib.html">difflib</a> module that can compute deltas between strings.Â  However, it seems like this would slow things down even further because you would have to load each inmate object and then use difflib to compare the DOC#s.Â  I assume that the previous approach would be faster because the regexp matching happens at the database level.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.terrorware.com/geoff/2009/12/09/finding-duplicate-records-in-a-books-to-prisoners-database-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Top 5 Non-Obvious Drupal Modules</title>
		<link>http://blogs.terrorware.com/geoff/2009/12/08/the-top-5-non-obvious-drupal-modules/</link>
		<comments>http://blogs.terrorware.com/geoff/2009/12/08/the-top-5-non-obvious-drupal-modules/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 15:46:39 +0000</pubDate>
		<dc:creator>Geoffrey Hing</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[chicago]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[slides]]></category>
		<category><![CDATA[talk]]></category>

		<guid isPermaLink="false">http://blogs.terrorware.com/geoff/?p=1828</guid>
		<description><![CDATA[Today, my coworker Russ and I gave a talk at the Chicagoland Library Drupal Group titled Top 5 Non-Obvious Drupal Modules.Â  This talk detailed modules that were useful to us in building the updated Center for Research Libraries website.
Download the presentation slides (Microsoft Powerpoint format) or View the slides on Slidesharet
]]></description>
			<content:encoded><![CDATA[<p>Today, my coworker Russ and I gave a talk at the Chicagoland Library Drupal Group titled <em>Top 5 Non-Obvious Drupal Modules</em>.Â  This talk detailed modules that were useful to us in building the updated <a href="http://www.crl.edu">Center for Research Libraries</a> website.</p>
<p><a href="http://blogs.terrorware.com/geoff/files/2009/12/top-5-drupal-presentation.ppt">Download the presentation slides</a> (Microsoft Powerpoint format) or <a href="http://www.slideshare.net/ghing/top-5-nonobvious-drupal-modules">View the slides on Slideshare</a>t</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.terrorware.com/geoff/2009/12/08/the-top-5-non-obvious-drupal-modules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>String mangling in Excel/VBA</title>
		<link>http://blogs.terrorware.com/geoff/2009/12/07/string-mangling-in-excelvba/</link>
		<comments>http://blogs.terrorware.com/geoff/2009/12/07/string-mangling-in-excelvba/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 22:28:23 +0000</pubDate>
		<dc:creator>Geoffrey Hing</dc:creator>
				<category><![CDATA[hacks]]></category>
		<category><![CDATA[note to self]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[office]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[replace]]></category>
		<category><![CDATA[string]]></category>
		<category><![CDATA[vba]]></category>

		<guid isPermaLink="false">http://blogs.terrorware.com/geoff/?p=1826</guid>
		<description><![CDATA[Often, I find myself needing to do string mangling in spreadsheets. For instance, in an Excel dump of an MS Access database, the names of institutions were sometimes written as &#8220;Foo, University of&#8221; or &#8220;Foo U&#8221;. I wanted these to be formatted as &#8220;University of Foo&#8221; and &#8220;Foo University&#8221; respectively. I may be misinformed but [...]]]></description>
			<content:encoded><![CDATA[<p>Often, I find myself needing to do string mangling in spreadsheets. For instance, in an Excel dump of an MS Access database, the names of institutions were sometimes written as &#8220;Foo, University of&#8221; or &#8220;Foo U&#8221;. I wanted these to be formatted as &#8220;University of Foo&#8221; and &#8220;Foo University&#8221; respectively. I may be misinformed but there doesn&#8217;t seem to be regexp style substitution in VBA. I could do this directly in the spreadsheet, but conditional use of functions gets to be hard to understand and difficult to edit. So, I wrote the following custom function in VBA.</p>
<div style="border-width: 1px">
<div>
<pre>Function FormatInstitutionName(institutionName As Variant) As <span>String</span>
'Formats an institution name <span>for</span> <span>import</span> into CiviCRM:
'<span>"Foo, University of"</span> =&gt; <span>"University of Foo"</span>
'<span>"Foo U"</span> =&gt; <span>"Foo University"</span>
    Dim newInstitutionName As <span>String</span>

    newInstitutionName = institutionName

    If InStr(newInstitutionName, <span>", University of"</span>) Then
        newInstitutionName = <span>"University of "</span> &amp; Replace(newInstitutionName, <span>", University of"</span>, "")
    End If

    If InStr(Len(newInstitutionName) - 1, newInstitutionName, <span>"U"</span>) Then
        newInstitutionName = Left(newInstitutionName, Len(newInstitutionName) - 2) &amp; <span>" University"</span>
    End If

    FormatInstitutionName = newInstitutionName
End Function</pre>
</div>
</div>
<p>Add this to your workbook by following the instructions at <a rel="nofollow" href="http://www.vertex42.com/ExcelArticles/user-defined-functions.html">http://www.vertex42.com/ExcelArticles/user-defined-functions.html</a></p>
<p>Then call it in your spreadsheet cells like like:</p>
<div style="border-width: 1px">
<div>
<pre>=FormatInstitutionName(C2)</pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blogs.terrorware.com/geoff/2009/12/07/string-mangling-in-excelvba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Importing relationships into CiviCRM</title>
		<link>http://blogs.terrorware.com/geoff/2009/12/01/importing-relationships-into-civicrm/</link>
		<comments>http://blogs.terrorware.com/geoff/2009/12/01/importing-relationships-into-civicrm/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 21:43:13 +0000</pubDate>
		<dc:creator>Geoffrey Hing</dc:creator>
				<category><![CDATA[Recipes]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[civicrm]]></category>
		<category><![CDATA[contact]]></category>
		<category><![CDATA[crl]]></category>
		<category><![CDATA[crm]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[tweetit]]></category>

		<guid isPermaLink="false">http://blogs.terrorware.com/geoff/?p=1821</guid>
		<description><![CDATA[As part of my work at the Center for Research Libraries, I am investigating different Constituent Resource Management (CRM) systems.Â  One of the options is CiviCRM, a popular FLOSS CRM.Â  As CRL is, in large part, a membership organization, I wanted to see if it was possible to represent the basic information that we keep [...]]]></description>
			<content:encoded><![CDATA[<p>As part of my work at the <a href="http://www.crl.edu">Center for Research Libraries</a>, I am investigating different Constituent Resource Management (CRM) systems.Â  One of the options is <a href="http://www.civicrm.org">CiviCRM</a>, a popular FLOSS CRM.Â  As CRL is, in large part, a membership organization, I wanted to see if it was possible to represent the basic information that we keep about our member organizations in the CRM.Â  I found that data entry through the web interface was pretty slow, so I wanted to experiment with CiviCRM&#8217;s contact import capabilities.</p>
<p>CiviCRM lets you define multiple, arbitrary relationships between contacts. This is how we can connect individual contacts with their institution (for instance the Librarian Councilor or Purchase Proposal Representative) or organizational sub-units (a particular library branch) with the parent organization.</p>
<p>Here is an example of part of our paper member information form that shows that sort of information that we collect about a member institution:</p>
<p><a href="../files/2009/12/crl_member_info_form_screenshot.jpg"><img title="Screenshot of CRL's member information form" src="../files/2009/12/crl_member_info_form_screenshot.jpg" alt="Screenshot of CRL's member information form" width="854" height="629" /></a></p>
<p>CiviCRM also lets you import contact information and relationship information through comma separated value (CSV) files. However, there are a number of things that need to be configured in order to get this working properly.</p>
<h3>Need to have contact types configured correctly for the relationship</h3>
<p>This is configured at <em>Administer &gt; Options List &gt; Relationship Types</em></p>
<p>When you create a new relationship, it sets <em>Contact Type A/Contact Type A</em> to <em>any contact type</em>. This works fine if you are defining relationships within CiviCRM&#8217;s web interface, but doesn&#8217;t work well when importing contacts. This is because CiviCRM will not be able to correctly match the related contact if the contact type is not explicitly set.</p>
<p>In the case of our &#8220;Librarian Councillor of&#8221; relationship, Contact A is an Individual (the member organization librarian) and Contact B is an Organization (the member organization):</p>
<p><a href="http://blogs.terrorware.com/geoff/files/2009/12/civicrm_edit_relationship_type_screenshot.jpg"><img class="alignnone size-full wp-image-1818" title="Configuring a relationship in CiviCRM" src="http://blogs.terrorware.com/geoff/files/2009/12/civicrm_edit_relationship_type_screenshot.jpg" alt="Configuring a relationship in CiviCRM" width="761" height="368" /></a></p>
<h3><a name="ContactDatabase-Needtoupdatestrictmatchingrulesforindividuals"></a>Need to update strict matching rules for individuals</h3>
<p>CiviCRM has configurable matching criteria for identifying and merging existing duplicate contacts and for updated existing contacts based on import data. This feature is documented in the CiviCRM documentation page <a rel="nofollow" href="http://wiki.civicrm.org/confluence/display/CRMDOC/Find+and+Merge+Duplicate+Contacts">Find and Merge Duplicate Contacts</a>.</p>
<p>The matching criteria can be configured at <em>Administer &gt; Manage &gt; Find and Merge Duplicate Contacts</em>. By default CiviCRM defines Strict and Fuzzy rules for each contact type. CiviCRM uses the strict rule when importing contact data. However, the default rules might not fit the data that you have. For instance, by default, the strict rule for matching individuals puts all the weight on e-mail address. For many of the contacts, however, there is not an e-mail address. So, I had to update the Strict rule for Individual contacts to also match on First Name, Last Name, and Phone Number. Note that I set the weight so that all three values must match for CiviCRM to consider the contact a duplicate:</p>
<p><a href="http://blogs.terrorware.com/geoff/files/2009/12/civicrm_matching_rules_for_individual_contacts_screenshot.jpg"><img class="alignnone size-full wp-image-1817" title="Configuring the duplicate matching rules in CiviCRM" src="http://blogs.terrorware.com/geoff/files/2009/12/civicrm_matching_rules_for_individual_contacts_screenshot.jpg" alt="Configuring the duplicate matching rules in CiviCRM" width="764" height="396" /></a></p>
<p>If you don&#8217;t configure these rules correctly, you will get duplicate entries when you try to import your contact relationships.</p>
<h3><a name="ContactDatabase-NeedtoonlyhaveonerelationshipperCSVimportfile"></a>Need to only have one relationship per CSV import file</h3>
<p>This is one of the most confusing aspects of the relationship import process. Initially, I tried to put all the relationships in the same CSV file that I used to import the individual contact:</p>
<div style="border-width: 1px">
<div>
<pre>First Name,Middle Name,Last Name,Job Title,Individual Prefix,Individual Suffix,Street Address,Supplemental Address 1,Supplemental Address 2,City,Postal Code Suffix,Postal Code,Address Name,County,State,Country,Phone,Email,Note(s),Employee Of, Librarian Councillor of
Jane,,Doe,Head Librarian,,,123 Fake St.,,,Springfield,,12345,,,Illinois,,123-456-7890,jane.doe@sample.edu,,Sample University, Sample University</pre>
</div>
</div>
<p>That is, in the last 2 columns, I specify that the individual contact (Jane Doe) is an <em>Employee of</em> and the <em>Librarian Councillor of</em> <em>Sample University</em>.</p>
<p>This doesn&#8217;t work! I can only specify a single Individual -&gt; Organization relationship in each CSV file. So, I need to break out the <em>Librarian Councillor of</em> relationship into a separate CSV file:</p>
<p>individual_import.csv:</p>
<div style="border-width: 1px">
<div>
<pre>First Name,Middle Name,Last Name,Job Title,Individual Prefix,Individual Suffix,Street Address,Supplemental Address 1,Supplemental Address 2,City,Postal Code Suffix,Postal Code,Address Name,County,State,Country,Phone,Email,Note(s),Employee Of
Jane,,Doe,Head Librarian,,,123 Fake St.,,,Springfield,,12345,,,Illinois,,123-456-7890,jane.doe@sample.edu,,Sample University</pre>
</div>
</div>
<p>librarian_councillor_import.csv:</p>
<div style="border-width: 1px">
<div>
<pre>First Name,Middle Name,Last Name,E-mail,Phone,Librarian Councillor <span>for</span>
Jane,,Doe,jane.doe@sample.edu,,Sample University</pre>
</div>
</div>
<p>I will first import the contact CSV (individual_import.csv), then the relationship CSV (librarian_councillor_import.csv).</p>
<h3>Need to include fields in CSV so that matching rules will work</h3>
<p>Note that in the above example, I have to be sure to include enough information for our matching rules that I defined before to match Jane Doe to her existing database entry. So, I need to have either an e-mail address or First Name, Last Name, and Phone number.</p>
<h3><a name="ContactDatabase-Needtotellimportprocesshowtohandleduplicatecontacts"></a>Need to tell import process how to handle duplicate contacts</h3>
<p>When importing the relationships, we will already have imported the individual contact information. So, we just want to update the existing individual contact record to reflect their relationship with their organization. So, we need to set the <em>For Duplicate Contacts</em> option of the import settings to <em>Update</em>.</p>
<p><a href="http://blogs.terrorware.com/geoff/files/2009/12/civicrm_import_settings_screenshot.jpg"><img class="alignnone size-full wp-image-1820" title="Configuring CiviCRM import settings" src="http://blogs.terrorware.com/geoff/files/2009/12/civicrm_import_settings_screenshot.jpg" alt="Configuring CiviCRM import settings" width="764" height="598" /></a></p>
<h3><a name="ContactDatabase-Needtosetuprelationshipimportfieldmappingscorrectly"></a>Need to set up relationship import field mappings correctly</h3>
<p>The field import mapping setting that I needed for the relationship import file (in this example librarian_councillor_import.csv) wasn&#8217;t immediately obvious to me. Here is a screenshot of the configuration that worked:</p>
<p><a href="http://blogs.terrorware.com/geoff/files/2009/12/civicrm_import_field_mapping_screenshot.jpg"><img class="alignnone size-full wp-image-1819" title="Configuring import field mappings in CiviCRM" src="http://blogs.terrorware.com/geoff/files/2009/12/civicrm_import_field_mapping_screenshot.jpg" alt="Configuring import field mappings in CiviCRM" width="764" height="410" /></a></p>
<p>Note that the <em>Librarian Councillor for</em> field in the CSV if mapped to the <em>Library Councillor of</em> relationship (that I defined at Administer &gt; Options List &gt; Relationship Types) and that the option of this mapping is set to <em>Organization Name</em> so that it will try to relate the imported contact to the existing organization contact record with the name specified in the CSV file.</p>
<h3><a name="ContactDatabase-Summary"></a>Summary</h3>
<p>So, it is possible to import both individual and organizational contacts into CiviCRM as well as the relationships between them. However, this could be tedious because each relationship type must be imported in a separate file. One possible solution would be to have a master spreadsheet that is used to input contact and relationship data. Then the spreadsheet programs filters/macros could be used to export appropriate CSV files for importing the contacts and relationships into CiviCRM. The import process is still somewhat complicated, so it seems best to do have systems staff assist with an initial mass import and then have future contacts input manually through the web interface.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.terrorware.com/geoff/2009/12/01/importing-relationships-into-civicrm/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
