DISQUS

DISQUS Hello!  The comments on this profile are unclaimed and thus are unverified.

Do they belong to you? Claim these comments.

Jonathan Rochkind's picture

Unregistered

Feeds

aliases

  • Jonathan Rochkind
  • Jonathan Rochkind

Jonathan Rochkind

1 week ago

in Structurelessness, feminism and open: what open advocates can learn from second wave feminists on eaves.ca
I am a fan of Jo Freeman's article -- but only if you keep in mind that the point of view of the essay is wanting the groups to be MORE egalitarian and non-hieararchical -- if we use those terms, does it seem more like something we'd want open source development and community source projects to be? (It is something _I_ want them to be; and i have referenced Freeman's essay in self-reflective discussions in online communities before).

In the political realm where this essay originates, I have sees some people using it to somehow argue that a group, to be effective, then, should NOT try to be egalitarian or non-hieararchical. Which isn't what I get from Freeman's essay at all, what I get from it is that if you want to be egalitarian and non-hieararchical, merely having no formal structures is NOT sufficient to accomplish that goal. I don't think it's _neccesarily_ incompatible with accomplishing that goal either, but one thing's for sure, it's not sufficient.

On the other hand, the argument I often perceiv from Shirky's writing is: It's _impossible_ for a group to be both egalitarian/non-hieararchical and effective, so don't bother trying, you get one or the other.

I don't buy that either! Because I have participated in groups, large and small, that were both effective and egalitarian/non-hiearchical, and such groups have in fact been (both!) some of the most effective and most personally rewarding projects I've participated in.

So I'd rather have Freeman's and Shirky's arguments seen as identification of certain (real!) pitfalls in trying to create egalitarian/non-hieararchial groups, pitfalls that one must overcome to succeed, pitfalls that definitely are (in my experience) relevant to online groups of various kinds, but pitfalls that are not impossible to overcome. The other side of the coin would be identifying 'design patterns' for creating succesful effective egalitarian and non-hieararchical groups -- which is definitely something possible to do. (and from my perspective usually involves creating some kind of formal structures, but formal structures carefully calibrated to achieve the ends you want. For an example of 'human social behavior design patterns', I think that's what much of Karl Fogel's Developing Open Source book is really doing, a nice book.)

(I swear I once saw a response to Freeman's essay called 'The Tyranny of Tyranny', but I've never been able to find it again. In my memory, the point was, yeah, sometimes you can wind up with tyranny despite your efforts to avoid it through structureless, but come on, that's not an argument for just going with tyranny from the start!)

2 months ago

in Resolving LSIDs with URL resolvers and CouchDB on fak3r.com
I don't know the context or history of LSID, but the naive question is, why not use one of the existing identifier schemes? If not DOI itself, why not purl.org? What are your requirements that these things won't do for you?
2 replies
fak3r Jonathan
The post is here in the mailing list: http://lists.tdwg.org/pipermail/tdwg-tag/2009-A... and it was provoked after this thread from Nicky: http://lists.tdwg.org/pipermail/tdwg-tag/2009-A... showing the convoluted way things have been working. To me it doesn't sound sustainable, at least not something I'd want to try and sustain.
Rod Page's picture
Rod Page There's some (perhaps too much) history here, but I guess the arguments have been that DOIs cost money (and we have potentially 100's of millions of things to assign identifiers to ), and PURLs are a bit too close to URLs (i.e., we're used to URLs breaking, even though this is bad). LSIDs also dragged our field kicking and screaming away from XML schema (gack) and towards RDF. The reality is we will need to handle DOIs, LSIDs, and URLs.

2 months ago

in Dan Manges's Blog - Rails Optimistic Locking isn't a Silver Bullet on Dan Manges's Blog
WebObjects does optimistic locking by putting the values of ALL attributes (or rather, all attributes you've marked 'use for optimistic locking') in the model.

Instead of generating SQL like

update... where lock_column = N

It would generate SQL like

update... where where manager = 0 and salary = 3

Ensuring that if ANY of the data had changed beyond what was expected, the optimistic lock would fail.

On the other hand, WebObjects also keeps (or did back when I worked with it) all values in session. I'm not sure this lock-on-many-columns solution would provide any advantage in Ruby, because without keeping something in session like you are, you don't know what the 'lock' value of manager or salary was supposed to be either. Unless you can somehow embed that in the form.

Aha, that's the trick. You can stick with lock_version column, but you the expected value of the lock_version should be embedded in the form. So when the form is submitted, and you do your update, you know to check for the lock_version that matches when you presented the form -- not the one that you happen to refetch on submit! Not sure what you'd have to do to Rails to make it work this way, but it seems like the solution to me. No need to store the entire model, and no need to store _anything_ in the session -- you just need to make sure your lock_version is sent out to the form, so it can be sent back with form submit, so the optimistic lock can use the same lock_version as when you fetched the record to display to the first user.

4 months ago

in Basic Block Data Decomposition in Perl on Reallywow
How does thread handling work in Perl? Does Perl provide any facilities for it, or are you stuck using the OS system primitives?
1 reply
lbjay I know nothing of the internals. Superficially I know perl has its own threading mechanism called "ithreads". They're like POSIX threads in a lot of ways, but the key difference is that variables aren't shared between threads unless explicitly requested. Each thread gets a copy of all the current process data.instead.

For example...

use threads;
my $foo = 1;
my $thr = threads->create(\&increment)
$thr->join();
print $foo, "\n";
sub increment {
$foo++;
print $foo, "\n";
}

This is going to print "2" and then "1". If you're used to POSIX threads you'd think the increment() subroutine is ++-ing a $foo shared with the main scope, but it doesn't; the thread increments its own copy. If you want $foo to be shared you have to enabled shared data and also declare $foo differently...

use threads;
use threads::shared;
my $foo :shared = 1;
...

8 months ago

in Dynamic OpenURL lookup with document delivery on Family Man Librarian
Interesting. Can you provide more information about what you've done to make the SFX link work more of the time? Because, yeah, anyone that works with SFX knows the links don't work as often as we'd like. So what did you do to improve things?
1 reply
FamManLib's picture
FamManLib Jonathan,

It's not rocket science or whiz bang stuff unfortunately. We're making two
calls, one to the Journal Subscription API and another to the SFX API. In
addition we are requiring that the user inputs sufficiently complete
metadata. In other words we evaluate the data on-the-fly and will not even
bother with the API lookup if we don't have sufficient metadata to work
with. For instance, if the user neglects to input pages or even just a
start page, then the lookup process won't even proceed.

Steve

11 months ago

in Walking Directions from Google on What I Learned Today...
Awesome! Thanks for pointing this out.

Now they just need a 'by bike'. Although walking might serve as a decent substitute (presumably they won't send you on a freeway walking; unless it's a freeway with a sidewalk).

1 year ago

in CIL2008: Open Source Landscape on What I Learned Today...
I have also written on open source risk here:

http://bibwild.wordpress.com/2008/03/28/analyzi...

Obviously, a risk due to "relying on commercial companies" is one shared by proprietary software as well!

1 year ago

in Code4Lib 2008: Code4Lib Journal on What I Learned Today...
thanks for the write-up. To me, the reason to have a journal (rather than just a blog or what have you) is less about the "appearances" (some people don't respect blogs), and more about saving the time of the reader and information overload---you don't have time to read every library blog, we provide a single source of articles that editors have decided are useful and timely, and that editors and authors have spent time on polishing to make them as useful as possible.

1 year ago

in Public Google Calendars on What I Learned Today...
So now how about the idea of using Google Calendars to track library events or hours or other things you want to show the public that are date-oriented?

We are in fact planning on running on techie-oriented how-to article on this topic (and specifically on integrating a cal you manage through Google Cal into your website) in the next issue of the Code4Lib Journal, coming out in mid-March.

1 year ago

in Moving On… on What I Learned Today...
Congratulations!

The only troubling thing with so many brilliant people being snapped up by vendors (open source and otherwise; and LibLime is one of my favorites) is that I'm worried about a brain drain from actual libraries!

1 year ago

in It’s officially official on What I Learned Today...
Congrats. You know, your post jsut made me realize... I never received a paper diploma from the library institution I graduated from a year and a half ago! Hmm, I guess I should look into that.
Returning? Login