<p>Hello folks,</p><p>Last night was my first time at Noisebridge and I&#39;m glad I picked a meeting night. I had already done my homework and read the wiki. Having experienced the prepared rhetoric, and the direct, in person culture, I can say that I intend to come often from this point forward. </p>
<p>That said, I would like to volunteer to assist with the implementation of a key system similar to the one proposed by (I think?)Kelly. </p><p>The background as I see it:</p>

<p>In order to maintain the open access that seems to me to be a core part of the Noisebridge culture, there needs to be a way to allow free admittance to all, while enabling the banning of the few bad apples. Paraphrasing Neal Stephenson perhaps, As hire As and Bs, and Bs hire Cs... If we map this to the Noisebridge culture: Excellent people bring both Excellent people, and Good people. Good people bring both Good people and possibly not so good people, the not so good people are likely to inundate the space with people who are, with out a doubt, absolutely not what Noisebridge is about. </p>
<p>It makes sense to optimize access control as a filtering system to distill the As and Bs, while keeping the Cs engaged, but not in charge, as the Cs do provide benefit by feeding the system via association to previously undiscovered or unaffiliated Bs and As. Of primary importance, is to float the As and Bs to the top, while keeping the Ds and friends out in the Mission. </p>
<p>The proposal (or Mapping swingers hot tub access to hackerspace):</p><p>An application that can generate, validate and revoke access keys, has an appropriate web api and can open the gate, given an un-revoked key.</p><p>
&quot;Can generate, validate and revoke access keys&quot; is pretty much covered by a (probably trivial) integration of one or more of many implementations of open source public key systems. &quot;Can open the gate&quot; is something I would certainly like to learn and I&#39;m certain multiple people in the space can implement while I ask stupid questions. &quot;Has an appropriate web api&quot; is something I can help with on multiple levels.</p>
<p>The basic process as I think would be cool, is that members would be able to use the api to generate keys. Those keys could be given out and virally passed along to potentially like minded people to allow access to the space. In a nutshell an un-revoked key == access to the space.</p>
<p>Members would have the privilege of revoking any public keys that were used in a particular time period, perhaps within a given hour. As a member, if your only key were revoked in this way, you would merely fire up your handy dandy key generation app, and make you a new one. Any non-member who was existing in the space only on keys that happened to be revoked, would have to contact members to get new keys. This could be done by pressing the button and mooning the camera, email, telephony, telepathy, whatever. </p>
<p>This system will allow As and Bs to hand keys out, with reasonable assurance that if a D or worse does get a key, it can be revoked, the name and picture posted, and the relevant A or B who made the original key notified that their key ended up in the hands of the C or D in question that turned out to be a &quot;bad apple&quot;. Perhaps some timing can be implemented so that stale keys can&#39;t be written in chalk in Thieves Cant on the sidewalk and remain active for long. Social engineering can help with this, as a member who consistently has keys revoked can be spoken to, ostracized or whatever is necessary to solve the problem.  </p>
<p>The painless, &quot;happy path&quot; transition to this system will probably require some period where keys are being made and revoked daily or even more often. I believe that this would settle down quickly into a more steady, flat pattern.</p>
<p>Obviously, this is not a completely specced out idea, but I think it has potential.</p><p>I propose the api be implemented in erlang, as this will allow me to learn the language, assuming I&#39;m involved in the making. It could be built quite quickly in ruby, but I think erlang would be more fun.</p>
<p>Is anyone interested in discussing this further?</p><p>--Christopher</p>