The monthly get together for the organization that I’m the secretary/treasurer of the regional chapter of. If this sort of thing interests you, c’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 students. It’s open to anyone, so bring a friend — especially those in other local organizations! The format will be casual, but all are encouraged to bring something to discuss — 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 & Technology.

What: Seattle Monthly Information Architecture Meetup
http://ia.meetup.com/57
Where: Elysian Pub, 1221 E. Pike St., Seattle, WA
When: 7-10pm, May 13th (2nd Tuesday of every month)

This and the next several are when the students will come in a big drove most likely, so if you’re looking to hire new grads in the information professions, it’s a good bet.

Tags: , , , , , ,

The last while, I’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 and thus carbon flux.

It’s awesome, check it out.

Tags: , , , , , , ,




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’s Iron Monkeys, is the first permanent art piece installed by a grant from Ignition NW. It’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.

Our efforts at getting involved in our local community are paying off!

Tags: , , , , , , ,

Cory Doctorow will be reading from his recent Little Brother at the ballard branch of SPL on may 19th. I’m planning to be there, the progreff of nature depending.

Tags: , , , , , , ,

So, I’ve been doing a lot of research into logging & dispatching recently for one of the volunteer organizations that I’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 “Captain’s Logs”

A deck log is not a daily diary written by the ship’s captain. The “captain’s log” 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.

People must have been asking. This is strangely hilarious

Tags: , , , , , , , , , ,

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’ve worked on first creating and then serving on the board of for 5-6 years now (and 9 years in some ways.)


What: The Ignition Northwest Spring Town Hall

When: Tonight, 4/17 at 7:00

Where: The CHAC Lower Level (just down the ramp) at 12th and Pine

Come on down TONIGHT for the INW Spring Town Hall. You could learn things to your advantage. On the agenda.

  • Critical Massive Updates
  • Election Information
  • INW Outreach
  • New Festivals
  • Art Art ART!
  • New INW Programs
  • Community Announcements
  • Oh, and did I mention…T-Shirts?

Come on down. See and be seen. Meet your community. Learn what we’ve done and what we’re going to do and how YOU can be a part of it. I hope to see you all there.

Tags: , , , , , ,

Drupal 5 has a few problems in its security layer, as I’ve mentioned other places, and some of them stem from the sort of ‘it-works-for-me’ 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.

The current issue I’m having is that nodes created by the aggregation module get their taxonomy stripped when they’re updated because of how another module uses the security functionality, which is just hilarious in a site that’s largely organized organically by taxonomy. So, after talking with the people I’m working for on the site, I ended up creating a simple PHP script to run through cron that fixes the issues ‘the hard way.’

If you check out this query…

function fix_object($name, $sqlcon)
{
  $query = "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 " . $name . "%'";
 
  // Perform Query
  $result = mysql_query($query);
 // ... and so on...

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…

function insert_taxo_4_node($node_id, $taxo_id, $con)
{
  $query = "INSERT INTO term_node (nid, tid) VALUES (". $node_id . "," . $taxo_id . ")";
 
  $result = mysql_query($query);
  // Check result
  // This shows the actual query sent to MySQL, and the error. Useful for debugging.
  if (!$result) 
    {
      $message  = 'Invalid query: ' . mysql_error() . "\n";
      $message .= 'Whole query: ' . $query;
      die($message);
    }
}

I’m largely posting this up in case people run into the same problem — this is a hilariously simple fix for a difficult to fix problem in drupal, but it’s a generic information architecture issue of what to do when the system that you’re working on is unreliable. I should probably mention that the issues with security in drupal aren’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.

Tags: , , , , , , , , , , , ,

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’s nature as a largely community-driven and volunteer-based organization, their management priorities are a little different than other organizations. It’s very simple, really, and I can sum up the difference in three words:

RESPECT EMERGENT BEHAVIOR

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’s something that I’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.

Tags: , , , , , ,

yuris night 08 I was down in the bay area this weekend, so I went over to Yuri’s Night Bay Area 08, which was a party held in honor of Yuri Gagarin’s mission to earth orbit — the first time a human had left the surface of the planet in that dramatic a fashion. It’s turned into a somewhat generic celebration of humanity’s scientific achievements and hope for the future, at least locally, but it’s still held on an active NASA airfield at a NASA Base (Moffet field at NASA Ames.) I’m very much in favor of the idea of progress and not giving up on the future, so I’m pretty enthusiastic that there’s a party celebrating this sort of thing.

I’d heard about Yuri’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’s hilariously allergic to wheat, I need to remember to bring Lara Bars in infinite numbers to events when there isn’t easy-in, easy-out.

The exhibits were awesome, the theme was awesome, my friends were very much in evidence, and it was altogether a great time. I’m very glad that I was able to go.

Tags: , , , , , , ,

I’ve been working on a website in RoR for the last while, and it’s about to go live in the private beta sort of way that seems to be so popular these days. It’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’s next incarnation is going to be facebook related, so that should overwhelm any sense of moderation (if I’m lucky.)

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’s just assume that the code is some reasonably long unique string (in my code, it’s actually a uuid.) So, set up a migration something like this to manage them:

  def self.up
    create_table :invites do |t|
# deleted stuff
      t.string :guid
      t.integer :used_yet
# deleted stuff
    end
  end

used_yet isn’t a boolean for reasons that are too laborious to go into here, but reflect some functionality in the code that I’m not going to display. Assuming that you’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:

  map.root :controller => "welcome"

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

#let's see if the formatter can handle rails erb without exploding.
< % form_tag('welcome/checkinvite', :method=>:get) do -%>
  < %= text_field_tag 'invite' %>
  < %= submit_tag 'begin' %>
< % end -%>

This lets the user enter their invite in more or less the normal method. Now in your ‘welcome’ controller, you’ll need a ‘checkinvite’ method that looks something like the following:

 def checkinvite
    @inviteguid = params[:invite]
    @invite = Invite.find_by_guid(@inviteguid)
    if(@invite == nil)
      flash[:notice] = "Your invite was invalid"
      redirect_to root_url
      return
    end
    if(@invite.used_yet == 1)
      flash[:notice] = "Your invite had already been used"
      redirect_to root_url
      return
    end
  end

After this, you’ll need to have some code in your HTML page that links you to the account/signup functionality of acts_as_authenticated. I’m not going to include that because I’m too lazy to fish it out of my app functionality, but you can do that pretty much with a link_to using :invite=%gt;@invite_guid as an extra parameter.

You need to put the same invite detection code in account/signup, and then when you’ve created the account, set invite.used_yet = 1. 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.

Tags: , , , , , , , , , , , , ,