<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<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/"
	>

<channel>
	<title>corprewland</title>
	<link>http://www.corprew.org</link>
	<description>(dis)information organization</description>
	<pubDate>Wed, 09 Jul 2008 00:37:14 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>Monthly IA / Info Professions Meetup from ASIST PNW</title>
		<link>http://www.corprew.org/blog/2008/05/07/monthly-ia-info-professions-meetup-from-asist-pnw/</link>
		<comments>http://www.corprew.org/blog/2008/05/07/monthly-ia-info-professions-meetup-from-asist-pnw/#comments</comments>
		<pubDate>Wed, 07 May 2008 07:52:25 +0000</pubDate>
		<dc:creator>corprew</dc:creator>
		
		<category><![CDATA[communities]]></category>

		<category><![CDATA[infosci]]></category>

		<category><![CDATA[asist]]></category>

		<category><![CDATA[asistpnw]]></category>

		<category><![CDATA[elysian]]></category>

		<category><![CDATA[ia]]></category>

		<category><![CDATA[info]]></category>

		<category><![CDATA[information architecture]]></category>

		<category><![CDATA[social]]></category>

		<guid isPermaLink="false">http://www.corprew.org/blog/2008/05/07/monthly-ia-info-professions-meetup-from-asist-pnw/</guid>
		<description><![CDATA[The monthly get together for the organization that I&#8217;m the secretary/treasurer of the regional chapter of.  If this sort of thing interests you, c&#8217;mon by.
Once a month, we get together to have drinks, chat, network, and geek out with fellow information architects, librarians, usability experts, user experience designers, and other like-minded user-centered professionals and [...]]]></description>
			<content:encoded><![CDATA[<p>The monthly get together for the organization that I&#8217;m the secretary/treasurer of the regional chapter of.  If this sort of thing interests you, c&#8217;mon by.</p>
<blockquote><p>Once a month, we get together to have drinks, chat, network, and geek out with fellow information architects, librarians, usability experts, user experience designers, and other like-minded user-centered professionals and students. It&#8217;s open to anyone, so bring a friend &#8212; especially those in other local organizations! The format will be casual, but all are encouraged to bring something to discuss &#8212; recent work, an interesting topic, or even your resume. This event is organized by the Pacific Northwest chapter of the American Society for Information Science &amp; Technology.</p>
<p>What:   Seattle Monthly Information Architecture Meetup<br />
           http://ia.meetup.com/57<br />
Where:  Elysian Pub, 1221 E. Pike St., Seattle, WA<br />
When:   7-10pm, May 13th (2nd Tuesday of every month)</p></blockquote>
<p>This and the next several are when the students will come in a big drove most likely, so if you&#8217;re looking to hire new grads in the information professions, it&#8217;s a good bet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.corprew.org/blog/2008/05/07/monthly-ia-info-professions-meetup-from-asist-pnw/feed/</wfw:commentRss>
		</item>
		<item>
		<title>North Atlantic Bloom Collaboratory</title>
		<link>http://www.corprew.org/blog/2008/05/07/north-atlantic-bloom-collaboratory/</link>
		<comments>http://www.corprew.org/blog/2008/05/07/north-atlantic-bloom-collaboratory/#comments</comments>
		<pubDate>Wed, 07 May 2008 07:28:59 +0000</pubDate>
		<dc:creator>corprew</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[apl]]></category>

		<category><![CDATA[nab]]></category>

		<category><![CDATA[nab08]]></category>

		<category><![CDATA[phytoplankton]]></category>

		<category><![CDATA[plankton]]></category>

		<category><![CDATA[projects]]></category>

		<category><![CDATA[uw apl]]></category>

		<category><![CDATA[uw ischool]]></category>

		<guid isPermaLink="false">http://www.corprew.org/blog/2008/05/07/north-atlantic-bloom-collaboratory/</guid>
		<description><![CDATA[The last while, I&#8217;ve been working on the North Atlantic Bloom 08 Collaboratory Website at UW(ashington) APL.  I finished that today (mostly, I imagine requests will continue to come in over time), and the science team is out in the North Atlantic doing science and working with their autonomous instruments as they measure phytoplankton [...]]]></description>
			<content:encoded><![CDATA[<p>The last while, I&#8217;ve been working on the <a href="http://bloom.apl.washington.edu/">North Atlantic Bloom 08 Collaboratory Website</a> at UW(ashington) APL.  I finished that today (mostly, I imagine requests will continue to come in over time), and the science team is out in the North Atlantic doing science and working with their autonomous instruments as they measure phytoplankton and thus carbon flux.</p>
<p>It&#8217;s awesome, check it out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.corprew.org/blog/2008/05/07/north-atlantic-bloom-collaboratory/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Rainier Vista INW Art Installation</title>
		<link>http://www.corprew.org/blog/2008/05/07/rainier-vista-inw-art-installation/</link>
		<comments>http://www.corprew.org/blog/2008/05/07/rainier-vista-inw-art-installation/#comments</comments>
		<pubDate>Wed, 07 May 2008 07:22:47 +0000</pubDate>
		<dc:creator>corprew</dc:creator>
		
		<category><![CDATA[communities]]></category>

		<category><![CDATA[general]]></category>

		<category><![CDATA[art installations]]></category>

		<category><![CDATA[civic art]]></category>

		<category><![CDATA[ignition northwest]]></category>

		<category><![CDATA[ignition nw]]></category>

		<category><![CDATA[iron monkeys]]></category>

		<category><![CDATA[rainier vista]]></category>

		<category><![CDATA[seattle housing]]></category>

		<category><![CDATA[sha]]></category>

		<guid isPermaLink="false">http://www.corprew.org/blog/2008/05/07/rainier-vista-inw-art-installation/</guid>
		<description><![CDATA[
 
 
 
  IMG_4018
  
  Originally uploaded by javith
 

Last week, we went to rainier vista and had a reception with the Seattle Housing Authority, Ignition NW board members, and a lot of residents of rainier vista and members of other Seattle Communities.
This tree, designed by Seattle&#8217;s Iron Monkeys, is the [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px; margin-bottom: 10px;">
 <a href="http://www.flickr.com/photos/javith/2456633497/" title="photo sharing"><img src="http://farm3.static.flickr.com/2246/2456633497_c2b87c509a_m.jpg" alt="" style="border: solid 2px #000000;" /></a><br />
 <br />
 <span style="font-size: 0.9em; margin-top: 0px;"><br />
  <a href="http://www.flickr.com/photos/javith/2456633497/">IMG_4018</a><br />
  <br />
  Originally uploaded by <a href="http://www.flickr.com/people/javith/">javith</a><br />
 </span>
</div>
<p>Last week, we went to rainier vista and had a reception with the Seattle Housing Authority, Ignition NW board members, and a lot of residents of rainier vista and members of other Seattle Communities.</p>
<p>This tree, designed by Seattle&#8217;s Iron Monkeys, is the first permanent art piece installed by a grant from Ignition NW.  It&#8217;s going into Rainier Vista, a mixed income housing project in Seattle that is pretty much ideal as far as neighborhoods go, and right next to public transit.</p>
<p>Our efforts at getting involved in our local community are paying off!<br />
<br clear="all" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.corprew.org/blog/2008/05/07/rainier-vista-inw-art-installation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cory Doctorow reading @ Ballard SPL Branch</title>
		<link>http://www.corprew.org/blog/2008/05/01/cory-doctorow-reading-ballard-spl-branch/</link>
		<comments>http://www.corprew.org/blog/2008/05/01/cory-doctorow-reading-ballard-spl-branch/#comments</comments>
		<pubDate>Fri, 02 May 2008 06:44:13 +0000</pubDate>
		<dc:creator>corprew</dc:creator>
		
		<category><![CDATA[books]]></category>

		<category><![CDATA[happenstance]]></category>

		<category><![CDATA[science fiction]]></category>

		<category><![CDATA[ballard]]></category>

		<category><![CDATA[cal:20080518]]></category>

		<category><![CDATA[cory doctorow]]></category>

		<category><![CDATA[little brother]]></category>

		<category><![CDATA[may18]]></category>

		<category><![CDATA[seattle]]></category>

		<category><![CDATA[spl]]></category>

		<category><![CDATA[todo]]></category>

		<guid isPermaLink="false">http://www.corprew.org/blog/2008/05/01/cory-doctorow-reading-ballard-spl-branch/</guid>
		<description><![CDATA[Cory Doctorow will be reading from his recent Little Brother at the ballard branch of SPL on may 19th.  I&#8217;m planning to be there, the progreff of nature depending.

]]></description>
			<content:encoded><![CDATA[<p>Cory Doctorow will be reading from his recent <cite>Little Brother at the <a href="http://www.spl.org/default.asp?pageID=branch_open_events&#038;branchID=3&#038;trumbaEmbed=view%3Devent%26eventid%3D76767197">ballard branch of SPL</a> on may 19th.  I&#8217;m planning to be there, the progreff of nature depending.</p>
<p></cite></p>
]]></content:encoded>
			<wfw:commentRss>http://www.corprew.org/blog/2008/05/01/cory-doctorow-reading-ballard-spl-branch/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Logging Funny</title>
		<link>http://www.corprew.org/blog/2008/05/01/logging-funny/</link>
		<comments>http://www.corprew.org/blog/2008/05/01/logging-funny/#comments</comments>
		<pubDate>Fri, 02 May 2008 06:21:55 +0000</pubDate>
		<dc:creator>corprew</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[pop culture]]></category>

		<category><![CDATA[captain's log]]></category>

		<category><![CDATA[dispatching]]></category>

		<category><![CDATA[itsworsethanthathesdeadjim]]></category>

		<category><![CDATA[logging]]></category>

		<category><![CDATA[logs]]></category>

		<category><![CDATA[ranger]]></category>

		<category><![CDATA[ranger shift leads]]></category>

		<category><![CDATA[shift lead cadre]]></category>

		<category><![CDATA[star trek]]></category>

		<category><![CDATA[us navy]]></category>

		<category><![CDATA[usn]]></category>

		<guid isPermaLink="false">http://www.corprew.org/blog/2008/05/01/logging-funny/</guid>
		<description><![CDATA[So, I&#8217;ve been doing a lot of research into logging &#38; dispatching recently for one of the volunteer organizations that I&#8217;m a lead in.  In the course of this, I came across this on http://www.history.navy.mil/faqs/faq73-1.htm
Deck logs are not &#8220;Captain&#8217;s Logs&#8221;
A deck log is not a daily diary written by the ship&#8217;s captain. The &#8220;captain&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;ve been doing a lot of research into logging &amp; dispatching recently for one of the volunteer organizations that I&#8217;m a lead in.  In the course of this, I came across this on <a href="http://www.history.navy.mil/faqs/faq73-1.htm">http://www.history.navy.mil/faqs/faq73-1.htm</a></p>
<blockquote><p>Deck logs are not &#8220;Captain&#8217;s Logs&#8221;</p>
<p>A deck log is not a daily diary written by the ship&#8217;s captain. The &#8220;captain&#8217;s log&#8221; was a dramatic device used by the creators of the televison series Star Trek to introduce each episode, and does not exist in the U.S. Navy.</p></blockquote>
<p>People must have been asking.  This is strangely hilarious</p>
]]></content:encoded>
			<wfw:commentRss>http://www.corprew.org/blog/2008/05/01/logging-funny/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ignition NW Spring Town Hall:  Tonight @ CHAC</title>
		<link>http://www.corprew.org/blog/2008/04/17/ignition-nw-spring-town-hall-tonight-chac/</link>
		<comments>http://www.corprew.org/blog/2008/04/17/ignition-nw-spring-town-hall-tonight-chac/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 18:12:16 +0000</pubDate>
		<dc:creator>corprew</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[burners]]></category>

		<category><![CDATA[community]]></category>

		<category><![CDATA[ignition northwest]]></category>

		<category><![CDATA[ignitionnw]]></category>

		<category><![CDATA[inw]]></category>

		<category><![CDATA[participatory culture]]></category>

		<category><![CDATA[seattle]]></category>

		<guid isPermaLink="false">http://www.corprew.org/blog/2008/04/17/ignition-nw-spring-town-hall-tonight-chac/</guid>
		<description><![CDATA[This will be my last town hall of this term on the INW board.  I am probably going to take a year off before seeking another term.  It should be an interesting time, if a bit tear-jerked. Well, actually not tear-jerked, but it will be strangely bittersweet to leave the board of an [...]]]></description>
			<content:encoded><![CDATA[<p>This will be my last town hall of this term on the INW board.  I am probably going to take a year off before seeking another term.  It should be an interesting time, if a bit tear-jerked. Well, actually not tear-jerked, but it will be strangely bittersweet to leave the board of an organization that I&#8217;ve worked on first creating and then serving on the board of for 5-6 years now (and 9 years in some ways.)<br />
<hr /></p>
<p>What: The Ignition Northwest Spring Town Hall</p>
<p>When: Tonight, 4/17 at 7:00</p>
<p>Where: The CHAC Lower Level (just down the ramp) at 12th and Pine</p>
<p>Come on down TONIGHT for the INW Spring Town Hall. You could learn things to your advantage. On the agenda.</p>
<ul>
<li>Critical Massive Updates</li>
<li>Election Information</li>
<li>INW Outreach</li>
<li>New Festivals</li>
<li>Art Art ART!</li>
<li>New INW Programs</li>
<li>Community Announcements</li>
<li>Oh, and did I mention&#8230;T-Shirts?</li>
</ul>
<p>Come on down. See and be seen. Meet your community. Learn what we&#8217;ve done and what we&#8217;re going to do and how YOU can be a part of it. I hope to see you all there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.corprew.org/blog/2008/04/17/ignition-nw-spring-town-hall-tonight-chac/feed/</wfw:commentRss>
		</item>
		<item>
		<title>drupal and taxonomy</title>
		<link>http://www.corprew.org/blog/2008/04/17/drupal-and-taxonomy/</link>
		<comments>http://www.corprew.org/blog/2008/04/17/drupal-and-taxonomy/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 07:38:39 +0000</pubDate>
		<dc:creator>corprew</dc:creator>
		
		<category><![CDATA[computer programming]]></category>

		<category><![CDATA[acls]]></category>

		<category><![CDATA[bees]]></category>

		<category><![CDATA[cmses]]></category>

		<category><![CDATA[database hacking]]></category>

		<category><![CDATA[drupal]]></category>

		<category><![CDATA[drupal5]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[node-based-cms]]></category>

		<category><![CDATA[open source]]></category>

		<category><![CDATA[organic systems]]></category>

		<category><![CDATA[simple solutions to complex problems]]></category>

		<category><![CDATA[taxonomy]]></category>

		<category><![CDATA[taxos]]></category>

		<guid isPermaLink="false">http://www.corprew.org/blog/2008/04/17/drupal-and-taxonomy/</guid>
		<description><![CDATA[Drupal 5 has a few problems in its security layer, as I&#8217;ve mentioned other places, and some of them stem from the sort of &#8216;it-works-for-me&#8217; philosophy of open source.   This is particularly a problem in a complex system like Drupal, which in most installations is made up of a few dozen modules in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.drupal.org/">Drupal 5</a> has a few problems in its security layer, as I&#8217;ve mentioned other places, and some of them stem from the sort of &#8216;it-works-for-me&#8217; philosophy of open source.   This is particularly a problem in a complex system like Drupal, which in most installations is made up of a few dozen modules in addition to the core.</p>
<p>The current issue I&#8217;m having is that nodes created by the aggregation module get their taxonomy stripped when they&#8217;re updated because of how another module uses the security functionality, which is just <em>hilarious</em> in a site that&#8217;s largely organized organically by taxonomy. So, after talking with the people I&#8217;m working for on the site, I ended up creating a simple PHP script to run through cron that fixes the issues &#8216;the hard way.&#8217;</p>
<p>If you check out this query&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="php"><span style="color: #000000; font-weight: bold;">function</span> fix_object<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$name</span>, <span style="color: #0000ff;">$sqlcon</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
  <span style="color: #0000ff;">$query</span> = <span style="color: #ff0000;">&quot;SELECT term_data.name name, term_data.tid termid, node.nid nodeid, node.title title FROM node LEFT JOIN term_node  ON ( term_node.nid = node.nid ) LEFT JOIN term_data ON ( term_data.tid = term_node.tid ) WHERE node.type = 'aggregation_item ' AND node.title LIKE 'Xxxxx &quot;</span> . <span style="color: #0000ff;">$name</span> . <span style="color: #ff0000;">&quot;%'&quot;</span>;
&nbsp;
  <span style="color: #808080; font-style: italic;">// Perform Query</span>
  <span style="color: #0000ff;">$result</span> = <span style="color: #000066;">mysql_query</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$query</span><span style="color: #66cc66;">&#41;</span>;
 <span style="color: #808080; font-style: italic;">// ... and so on...</span></pre></div></div>

<p>You can see that this is a fairly normal sql query that looks for all the nodes of type aggregation_item and titled a particular pattern.  Because of the way the joins are structured, that means that any nodes that have lost their taxonomies will have NULL for termname and termid.  Those nodeids with NULL termids can then have the proper taxonomy entries stuffed back into them&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="php"><span style="color: #000000; font-weight: bold;">function</span> insert_taxo_4_node<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$node_id</span>, <span style="color: #0000ff;">$taxo_id</span>, <span style="color: #0000ff;">$con</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
  <span style="color: #0000ff;">$query</span> = <span style="color: #ff0000;">&quot;INSERT INTO term_node (nid, tid) VALUES (&quot;</span>. <span style="color: #0000ff;">$node_id</span> . <span style="color: #ff0000;">&quot;,&quot;</span> . <span style="color: #0000ff;">$taxo_id</span> . <span style="color: #ff0000;">&quot;)&quot;</span>;
&nbsp;
  <span style="color: #0000ff;">$result</span> = <span style="color: #000066;">mysql_query</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$query</span><span style="color: #66cc66;">&#41;</span>;
  <span style="color: #808080; font-style: italic;">// Check result</span>
  <span style="color: #808080; font-style: italic;">// This shows the actual query sent to MySQL, and the error. Useful for debugging.</span>
  <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>!<span style="color: #0000ff;">$result</span><span style="color: #66cc66;">&#41;</span> 
    <span style="color: #66cc66;">&#123;</span>
      <span style="color: #0000ff;">$message</span>  = <span style="color: #ff0000;">'Invalid query: '</span> . <span style="color: #000066;">mysql_error</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> . <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>;
      <span style="color: #0000ff;">$message</span> .= <span style="color: #ff0000;">'Whole query: '</span> . <span style="color: #0000ff;">$query</span>;
      <span style="color: #000066;">die</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$message</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>I&#8217;m largely posting this up in case people run into the same problem &#8212; this is a hilariously simple fix for a difficult to fix problem in drupal, but it&#8217;s a generic information architecture issue of what to do when the system that you&#8217;re working on is unreliable.  I should probably mention that the issues with security in drupal aren&#8217;t related to authentication, but instead are related to item ACLs denying access to things for strange reasons, and are not crucial security bugs in the OMG MUST PATCH NOW sense.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.corprew.org/blog/2008/04/17/drupal-and-taxonomy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Management, BM style</title>
		<link>http://www.corprew.org/blog/2008/04/17/management-bm-style/</link>
		<comments>http://www.corprew.org/blog/2008/04/17/management-bm-style/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 07:06:49 +0000</pubDate>
		<dc:creator>corprew</dc:creator>
		
		<category><![CDATA[communities]]></category>

		<category><![CDATA[bees]]></category>

		<category><![CDATA[burning man]]></category>

		<category><![CDATA[chaos]]></category>

		<category><![CDATA[emergent behavior]]></category>

		<category><![CDATA[management]]></category>

		<category><![CDATA[management philosophy]]></category>

		<category><![CDATA[rangering]]></category>

		<guid isPermaLink="false">http://www.corprew.org/blog/2008/04/17/management-bm-style/</guid>
		<description><![CDATA[Although, as the trainers noted, it sounds like the set up to a joke, Burning Man takes providing management training to its senior volunteers and staff members very seriously.  As part of my Quinfecta of Frenetic Activity down in SFO, I went to the 2008 version of said training.
Because of BM&#8217;s nature as a [...]]]></description>
			<content:encoded><![CDATA[<p>Although, as the trainers noted, it sounds like the set up to a joke, Burning Man takes providing management training to its senior volunteers and staff members very seriously.  As part of my Quinfecta of Frenetic Activity down in SFO, I went to the 2008 version of said training.</p>
<p>Because of BM&#8217;s nature as a largely community-driven and volunteer-based organization, their management priorities are a little different than other organizations.  It&#8217;s very simple, really, and I can sum up the difference in three words:</p>
<p><strong>RESPECT EMERGENT BEHAVIOR</strong></p>
<p>This shows up in a number of ways, in respecting the ideas that volunteers come up with, in coping with what emerges from chaos every year, and in generally planning from middle-up or bottom-up instead of top-down when possible.  The respect emergent behavior is a spin of mine on it, but it&#8217;s something that I&#8217;ve had as a part of my core management philosophy for a while, so I was suprised and pleased to hear burning man talking about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.corprew.org/blog/2008/04/17/management-bm-style/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Yuri&#8217;s Night Bay Area 2008</title>
		<link>http://www.corprew.org/blog/2008/04/16/yuris-night-bay-area-2008/</link>
		<comments>http://www.corprew.org/blog/2008/04/16/yuris-night-bay-area-2008/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 06:50:54 +0000</pubDate>
		<dc:creator>corprew</dc:creator>
		
		<category><![CDATA[communities]]></category>

		<category><![CDATA[general]]></category>

		<category><![CDATA[humanity is good]]></category>

		<category><![CDATA[rangering]]></category>

		<category><![CDATA[science]]></category>

		<category><![CDATA[the real world]]></category>

		<category><![CDATA[yurisnight]]></category>

		<category><![CDATA[yurisnight08]]></category>

		<category><![CDATA[yurisnightbayarea]]></category>

		<category><![CDATA[yurisnightbayarea08]]></category>

		<guid isPermaLink="false">http://www.corprew.org/blog/2008/04/16/yuris-night-bay-area-2008/</guid>
		<description><![CDATA[ I was down in the bay area this weekend, so I went over to Yuri&#8217;s Night Bay Area 08, which was a party held in honor of Yuri Gagarin&#8217;s mission to earth orbit &#8212; the first time a human had left the surface of the planet in that dramatic a fashion.  It&#8217;s turned [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.corprew.org/images/yuris08.jpg" class="imageleft" alt="yuris night 08" align="left" /> I was down in the bay area this weekend, so I went over to <a href="http://bayarea.yurisnight.net/2008/index.php">Yuri&#8217;s Night Bay Area 08</a>, which was a party held in honor of Yuri Gagarin&#8217;s mission to earth orbit &#8212; the first time a human had left the surface of the planet in that dramatic a fashion.  It&#8217;s turned into a somewhat generic celebration of humanity&#8217;s scientific achievements and hope for the future, at least locally, but it&#8217;s still held on an active NASA airfield at a NASA Base (Moffet field at NASA Ames.)  I&#8217;m very much in favor of the idea of progress and not giving up on the future, so I&#8217;m pretty enthusiastic that there&#8217;s a party celebrating this sort of thing.</p>
<p>I&#8217;d heard about Yuri&#8217;s Night in previous years, and there was one in Seattle this year, but I very much wanted to go to the Bay Area one, so I was happy when my plans fell along with it.  I was fortunate enough to be able to volunteer as security staff for the event, and got to hang out with a number of other friends of mine who were also volunteering.  It was, all in all, an awesome time; although as someone who&#8217;s hilariously allergic to wheat, I need to remember to bring Lara Bars in infinite numbers to events when there isn&#8217;t easy-in, easy-out.</p>
<p>The exhibits were awesome, the theme was awesome, my friends were very much in evidence, and it was altogether a great time.  I&#8217;m very glad that I was able to go.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.corprew.org/blog/2008/04/16/yuris-night-bay-area-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ruby/rails and the invited beta</title>
		<link>http://www.corprew.org/blog/2008/04/16/rubyrails-and-the-invited-beta/</link>
		<comments>http://www.corprew.org/blog/2008/04/16/rubyrails-and-the-invited-beta/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 06:31:59 +0000</pubDate>
		<dc:creator>corprew</dc:creator>
		
		<category><![CDATA[computer programming]]></category>

		<category><![CDATA[account]]></category>

		<category><![CDATA[acts_as_authenticated]]></category>

		<category><![CDATA[facebook]]></category>

		<category><![CDATA[guid]]></category>

		<category><![CDATA[invite]]></category>

		<category><![CDATA[invite functionality]]></category>

		<category><![CDATA[private beta]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[ror]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[slicehost]]></category>

		<category><![CDATA[tristero]]></category>

		<category><![CDATA[welcome screen]]></category>

		<guid isPermaLink="false">http://www.corprew.org/blog/2008/04/16/rubyrails-and-the-invited-beta/</guid>
		<description><![CDATA[I&#8217;ve been working on a website in RoR for the last while, and it&#8217;s about to go live in the private beta sort of way that seems to be so popular these days.  It&#8217;s handy that way, because that way I can set up the site at slicehost or similar and not have to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on a website in RoR for the last while, and it&#8217;s about to go live in the private beta sort of way that seems to be so popular these days.  It&#8217;s handy that way, because that way I can set up the site at slicehost or similar and not have to worry (too much) about my server slowing from getting overloaded.  This same site&#8217;s next incarnation is going to be facebook related, so that should overwhelm any sense of moderation (if I&#8217;m lucky.)</p>
<p>So, the key method of invitation to a private beta is that you mail someone a code allowing them access to the system, for these purposes, let&#8217;s just assume that the code is some reasonably long unique string (in my code, it&#8217;s actually a <code>uuid</code>.)  So, set up a migration something like this to manage them:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby">  <span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">up</span>
    create_table <span style="color:#ff3333; font-weight:bold;">:invites</span> <span style="color:#9966CC; font-weight:bold;">do</span> |t|
<span style="color:#008000; font-style:italic;"># deleted stuff</span>
      t.<span style="color:#CC0066; font-weight:bold;">string</span> <span style="color:#ff3333; font-weight:bold;">:guid</span>
      t.<span style="color:#CC0066; font-weight:bold;">integer</span> <span style="color:#ff3333; font-weight:bold;">:used_yet</span>
<span style="color:#008000; font-style:italic;"># deleted stuff</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p><code>used_yet</code> isn&#8217;t a boolean for reasons that are too laborious to go into here, but reflect some functionality in the code that I&#8217;m not going to display.  Assuming that you&#8217;re using acts_as_authentication and are redirecting anyone who tries to access your app to the default welcome page according to the usual methods, set up something like this in your routes.rb:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby">  map.<span style="color:#9900CC;">root</span> <span style="color:#ff3333; font-weight:bold;">:controller</span> =&gt; <span style="color:#996600;">&quot;welcome&quot;</span></pre></div></div>

<p>This is probably the case in like half the rails apps out there.  Have the <code>index</code> method of the welcome controller put up a form with a field like:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span style="color:#008000; font-style:italic;">#let's see if the formatter can handle rails erb without exploding.</span>
&lt; % form_tag<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'welcome/checkinvite'</span>, <span style="color:#ff3333; font-weight:bold;">:method</span>=&gt;:get<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span> -%&gt;
  &lt; %= text_field_tag <span style="color:#996600;">'invite'</span> %&gt;
  &lt; %= submit_tag <span style="color:#996600;">'begin'</span> %&gt;
&lt; % <span style="color:#9966CC; font-weight:bold;">end</span> -%&gt;</pre></div></div>

<p>This lets the user enter their invite in more or less the normal method.  Now in your &#8216;welcome&#8217; controller, you&#8217;ll need a &#8216;checkinvite&#8217; method that looks something like the following:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"> <span style="color:#9966CC; font-weight:bold;">def</span> checkinvite
    <span style="color:#0066ff; font-weight:bold;">@inviteguid</span> = params<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:invite</span><span style="color:#006600; font-weight:bold;">&#93;</span>
    <span style="color:#0066ff; font-weight:bold;">@invite</span> = Invite.<span style="color:#9900CC;">find_by_guid</span><span style="color:#006600; font-weight:bold;">&#40;</span>@inviteguid<span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#9966CC; font-weight:bold;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span>@invite == <span style="color:#0000FF; font-weight:bold;">nil</span><span style="color:#006600; font-weight:bold;">&#41;</span>
      flash<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:notice</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#996600;">&quot;Your invite was invalid&quot;</span>
      redirect_to root_url
      <span style="color:#0000FF; font-weight:bold;">return</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#9966CC; font-weight:bold;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span>@invite.<span style="color:#9900CC;">used_yet</span> == <span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>
      flash<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:notice</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#996600;">&quot;Your invite had already been used&quot;</span>
      redirect_to root_url
      <span style="color:#0000FF; font-weight:bold;">return</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>After this, you&#8217;ll need to have some code in your HTML page that links you to the account/signup functionality of acts_as_authenticated.  I&#8217;m not going to include that because I&#8217;m too lazy to fish it out of my app functionality, but you can do that pretty much with a link_to using <code>:invite=%gt;@invite_guid</code> as an extra parameter.</p>
<p>You need to put the same invite detection code in account/signup, and then when you&#8217;ve created the account, set <code>invite.used_yet = 1</code>.  This is about as simple as a method that I can think of for doing the private beta functionality that seems to be so much in vogue these days.  Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.corprew.org/blog/2008/04/16/rubyrails-and-the-invited-beta/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.197 seconds -->
<!-- Cached page served by WP-Cache -->
