Older blog entries for louie (starting at number 633)

Sponsoring a GNOME hacker (oops!)

Become a Friend of GNOME

While I was moving, and taking the bar exam, and getting married, and all the other stuff I did last year, it turns out I screwed up. People had sponsored me through GNOME’s adopt a hacker program, and I… well, I botched it- the postcards people had signed up for fell through the cracks.

No longer! My apologies go out to:

  • Owen
  • Eetu
  • Sergio
  • Eduardo
  • Chris
  • Jon
  • Robert
  • Donald
  • Markus

Your postcards are finally, I promise, in the mail; though admittedly my handwriting is illegible at the best of times so you’ll have to take my word for it that the postcards are thoughtful and meaningful :)

For everyone else: now is a great time to force me (or other hackers) to write you! You get the warm, glossy postcard, as well as the warm, glossy feeling of having helped get GNOME folks together to work on your software.

Syndicated 2010-05-12 06:06:31 from Luis Villa's Internet Home » Blog Posts

responding to joindiaspora

The joindiaspora guys, in a generally good response to my questions, conclude by asking:

[W]hat would be un-pragmatic about giving four excited dudes who spent their last semester of school thinking about a problem you are “worried-about-but-can’t-deal-with-now,” twenty bucks so they can take an honest crack at solving it? :)

Lots of people asked some variant on ‘it is just $20′ or whatever. First, I tend to be one of these people who don’t give token amounts to charity- I prefer to give larger amounts to a small number of projects that have very high impact (or very high odds of success if they aren’t having an impact yet.)

But the money is secondary. The important thing is that there are already a fairly good number of projects in this space, with a fairly small amount of users, developers, testers, and attention to spread between them. And to be blunt, I don’t want someone coming in with more web design and marketing sense than actual hacking chops and using up all the oxygen in the room. I think DiSo did this to some extent, frankly. So yes, giving a little bit of money to someone can be quite counterproductive and unpragmatic- and I wanted to reassure myself that I wouldn’t be contributing to that problem again.

Given that it looks like they’re going to be doing this crazy thing ($13K raised of their $10K target) that concern is now irrelevant.


(untitled) by Môsieur J. [version 3.0b], used under CC-BY.

So some thoughts on the rest of the responses, again in hopes that they are supportive and constructive:

We plan to “build less.”

Hooray! Most of these questions don’t have right answers, but this one did. And the followup priorities seem reasonable- those probably are the right minimum bits necessary. That said, where people have already built things, consider building less than less by working with other projects. Status.net comes screamingly to mind for the message passing component, but I’m sure there are others. Don’t just build shared specs- where possible, build shared code.

We see all of this communication happening between two Diaspora servers, rather than strictly between peers.

This seems like the very pragmatic solution to me; all the talk of real peer-to-peer is terrific but that is a very hard slog- both technically (getting it working) and socially (getting users to install it.)

With regards to DiSo, the response had one set of great things, and one part that was very ambiguous to me:

It seems to us that all of the previous attempts at solving the problem are trying to create the perfect solution in the first version.

I think this is right, and I’m heartened to hear the talk about building answers that satisfy rather than perfect. These are all signs
of excellent taste (not just this sentence, but many of the things both in this specific answer and in the entire blog post.)

Ambiguously:

[DiSo] tried to add on to Wordpress, a project which was not designed from the ground up to be a distributed
network.

I’d love to hear more elaboration about ‘designed from the ground up to be a distributed network.’ Wordpress has
proven to be a very flexible platform for a lot of things, and it both publishes and consumes structured data very well to that distributed network we call the internet (particularly that subset of the distributed network that consists of Atom/RSS publishers and consumers- I subscribe successfully to many friend’s wordpress blogs in something that looks very much to me like a distributed network.) In addition, things have improved since DiSo started, since there is now PuSH, possibly webfinger, etc. So which features are you looking for in a ‘designed from the ground up’ distributed network that wordpress doesn’t have? I’m not saying that wordpress is the solution, but I’m curious to hear more about what it specifically lacks.

With regards to Mugshot… I wish the Red Hat folks had posted a good post-mortem on that; to the best of my recollection I never saw one. My own sense is that: (1) it was very difficult for others to set up, so it never got an outside development community, and no one looked to it as a distributed solution to the problem. (2) The community it attracted was heavily tech-y, so the community that built on it looked to outsiders (frankly) like it was a bunch of nerds, which made it hard to expand into a more broad-based audience. (e.g., it was a great source of community for linux distributions, not so much for sports. Identica has the same problem relative to twitter; compare a search for lebron on twitter to a search for lebron on identica some time. Ditto Bieber or Gaga. This is very related to Pick The Right Customers.) Both are problems worth being aware of.

Solid answers on specs and services, including a couple projects I hadn’t been aware of- usually a good sign (even if one of them appears to be completely insane :)

We will be constantly sharing our ideas, and 100% of our code at the end of the summer.

I’m still not clear on why no code until the end of the summer. Care to elaborate? I’m not an absolutist on this- mostly for reasons related to bikeshedding and design- but it does seem like an odd default choice.

We think in the future (after the summer), we will work on an easy installation…

Only clearly wrong answer of the whole thing. Easy installation should be baked-in from day one- adding it afterwards is hard. As a bonus, it helps you write automated tests (since automated deployment is easy) and easy installation helps you choose the right customers by helping you attract users who are interesting in talking to other people rather than playing with software.

What are your three favorite books on software development? three favorite essays? what about on design?

Is this one of the questions where if I don’t say “Kernighan and Ritchie,” “Getting Real”, “Mythical Man-Month,” “Don’t Make Me Think!” or something like that, you will disapprove? :)

Yeah, sort of. But ‘Getting Real’ was the right answer. ;) (I sort of wish I had the time to write a mashup of Getting Real and Producing OSS, maybe with a dash of The Poignant Guide.) I also highly recommend Rework and Designing From Both Sides of the Screen. Blog-wise, you might find this list interesting, though not necessarily pertinent to this discussion.

Finally:

We bought him some arepas. They were delicious.

I’m sort of bitter that you live near that particular deliciousness. Also that you called me an old dude. But mostly because I miss those arepas. And the yo-yos. Enjoy one or two for me during your hacking breaks. :)

Syndicated 2010-05-08 20:09:31 from Luis Villa's Internet Home » Blog Posts

Cambridge lazyweb request

Hello Cambridge-based lazyweb! I am looking at network Acceptable Use Policies (AUP) for guest wifi networks, and I have been told that MIT’s AUP for their guest wifi network is particularly terrific- short, simple, etc. Can someone in Cambridge who happens to stumble by MIT check into the network and copy/paste the text and email me? I’d owe you a beer next time I’m in the Commonwealth. Thanks!

Syndicated 2010-05-05 19:19:07 from Luis Villa's Internet Home » Blog Posts

Questions for the Diaspora

So lots of friends were tweeting this morning about Diaspora, a project to raise funds to get a summer’s worth of hacking done on a distributed, Libre social network. A distributed, Libre social network would be a terrific thing to have; I’d love to support it. And I love the eager energy I’m seeing around Diaspora.


Questioned Proposal, by Eleaf, used under CC-BY

But I’m also keenly aware that distributed social networks are hard. They’re hard:

  • as a design question: how do you make a social network whose UI doesn’t suck?
  • as a technical question: the code involved is complex, particularly if you want to interoperate robustly with other platforms, and doubly so if you want to do that with proprietary platforms.
  • as a social question: getting users to migrate is not easy.

So here are some questions for Diaspora, or really for anyone working in this space. Most don’t necessarily have right answers, but if you can show that you’ve given them some thought you’ll go a long way towards convincing people that you’re serious about attacking the problem. If you haven’t given them thought yet, I could think of worse places to start. :)

  • What do you think are the most important features a social network should have? How would you prioritize them? Do you plan to Build Less or go big? If building less, what is the minimal set of features you can get away with?
  • DiSo is now two-plus years old. Any ideas why it didn’t get off the ground? Bonus points: same question for Mugshot.
  • What standards, if any, do you plan to work with/build on? (just to throw out a couple, all of which have strengths and flaws to consider: webfinger, oauth, xauth, the buzz APIs.)
  • What other services, if any, do you want to interoperate with? why? how will you prioritize?
  • Any other Libre code bases in the same space you’d like to work with? GNU Social? StatusNet? What ones are you aware of, and why will you/won’t you build on/work with those?
  • Would a smarter client (like Mozilla Contacts) be useful to you? If so, how?
  • What is the strategy to get to a critical mass of users (or avoid having to get a critical mass?)
  • What are your three favorite books on software development? three favorite essays? what about on design?

I don’t mean to ask these questions to piss on anyone’s parade; I deeply want to believe. Heck, what I want to do is fly to New York, sit down in a room, and help you brainstorm and plan. But unfortunately I’m a pragmatist with a day job. I can’t directly help out. So instead I offer these questions. Answer these1 and you’ll begin convincing people that you are also pragmatists: that you’ve thought hard about the questions at hand and you are worth investing in. And I’ll be first in line to do that.

(I should note that unlike some I don’t need code; I think code that is created without much thinking is all too common and frequently damaging. But if you don’t have code, I suggest doing planning- and talking about it- before doing a PR week. :)

  1. or questions like these- you’ll note I skipped some hard ones like ‘business model?’

Syndicated 2010-04-27 05:54:26 from Luis Villa's Internet Home » Blog Posts

three features I’d love in leechblock

I love leechblock. It really helps keep my life sane. I was working some with it this morning to tweak my settings, and it seemed like a good time to write about three features I’d kill for, even to the point of putting up money for them if there were a way to sponsor features (or sponsor third-party hacking- bounties, if you will):

  1. ‘block all sites except this one for ____ minutes’- a button that blocks the browser from going to any other domain for ____ minutes. Sort of like Freedom but with an out for one specific website (and obviously only for your browser.) Goal would be to allow you to focus on one site for 45-50 minutes, so it should probably close or block access to other tabs as well.
  2. ‘no, I really need this’- give an option (probably a popup of some sort?) that allows you to break through leechblock in the off case you really need something. For example, I like to block nytimes.com all the time, but (when I was editing a journal) I often needed to access a times article to confirm a claim in an article. This would obviously require some sort of time-consuming task in order to prevent you from ‘just’ clicking through all the time- probably something like a series of captchas, or just typing in a specific series of random characters that can’t be copied/pasted.
  3. ‘this page has an RSS feed: subscribe to it and add it to leechblock? [yes/no/don't ask again for this domain]‘- one of the strategies that has helped save me over the past few years is aggressively subscribing to feeds, blocking the actual domains, and then only visiting them when I’m in feedreading mode. Making that semi-automatic, and easy to do, would be terrific.

It may well be time to port leechblock to jetpack and rethink the UI as well, but those are bigger projects that I can’t randomly beg (or bribe) people to do.

Syndicated 2010-04-23 01:41:04 from Luis Villa's Internet Home » Blog Posts

a quick vent about the structure of online agreements

I completely understand why many startups have terms of service with terrible content- providing terms of service whose content is fair to the user is incredibly risky and/or expensive (though it isn’t unheard of).

But there is just no excuse for terms of service with terrible organization, especially when you’re trying to sell services to real companies who might (gasp) actually have someone read the damn things. Having a well written document doesn’t cost you anything. If it should be two separate documents, make it two separate documents, and not one (which is what set me off on this rant). If it should be five documents… wait, it should never be five documents.

So please, think of the lawyers. Write your terms of service in a comprehensible, sane structure today.

This has been a public service announcement; we now return you to your regularly scheduled kvetching.

Syndicated 2010-04-14 00:44:20 from Luis Villa's Internet Home » Blog Posts

building software to let me read more and less at the same time?

There are lots of sources of links these days- delicious, twitter, and blogs. Many of these are interesting, but not so interesting that I want to read them all the time. Currently I have to decide either to read or not read these people.

I’d like to add a third option: to have a ‘middle’ pool of sources who I don’t read directly, but who are monitored and serve as pointers to other, interesting things. I think having such a third option would let me read less (because I’d stop skimming these intermediate sources), but still also give me fairly good confidence that I’m not missing important things that I should read.

The outline of the software in my head goes something like this:

Step 1: User provides a list of RSS feeds (a mix of blogs, twitter/identica, and delicious feeds).

Step 2: A harvester collects the contents of said RSS feeds.1

Step 3: Parse the content of those feeds for URLs and dump them in a db.2

Step 4: Unshorten the URLs if necessary. 3

Step 5: When a particular url has been mentioned X times in the past Y days4, fetch the URL5, find the content within it6, and jam it in an RSS feed for consumption along with the rest of my top-level RSS feeds.

Bonus step: mash up snippets from the posts/twitters/delicious feeds to provide context for the URL’s content, similar to what Google Reader does when friends comment on a feed item.

I feel like someone must have done this already. If not, the pieces are available (see the footnotes for details on many of the pieces); I sure wish I had the time/skill to put them together myself. :/ This project is one of the things I wish we had more reliable bounty infrastructure for- I’d actually put money up for it if I thought there were a reliable way to get some matching funds and find good developers for it.

Ideas, either about the rough feature sketch, existing software that fits this need, or about methods to make it happen, are all welcome.

  1. Planet is an example of infrastructure that does this.
  2. Planet’s meme plugin can do this.
  3. There are scripts and web services available for this; the basics aren’t that complicated.
  4. again, meme plugin has this concept already implemented
  5. not in memeplugin- it only provides links
  6. not trivial, but source is available that does this via readability

Syndicated 2010-04-05 04:44:01 from Luis Villa's Internet Home » Blog Posts

over at opensource.com…

I’ve written a brief piece on the open source law community over at opensource.com. May be of interest for those hackers who wonder if they have any lawyer/guardian angels, and if so, do they ever talk to each other?

Syndicated 2010-03-29 18:43:19 from Luis Villa's Internet Home » Blog Posts

two great quotes from this weekend

“We are working well when we use ourselves as the fellow creatures of the plants, animals, materials, and other people we are working with. Such work is unifying, healing. It brings us home from pride and from despair, and places us responsibly within the human estate. It defines us as we are: not too good to work with our bodies, but too good to work poorly or joylessly or selfishly or alone.” –Wendell Berry, The Unsettling of America

“The strongest “copyleft” … is having a vibrant and active community” –Shaver, of shaverfacts fame, in mozilla.governance

Syndicated 2010-03-29 02:23:50 from Luis Villa's Internet Home » Blog Posts

More Patent 101, and some Patent Licensing 201 (advanced class ;)

More patent lessons- first on submarine patents (basics!) and then on how patent pools are licensed. I don’t really want to continue this series, but the past few days have been a good reminder that there is a lot of misinformation out there around patents.

To start with, OSNews wants to claim that there are no such thing as submarine patents anymore, relying on a very specialized, nuanced definition of submarine patents. Their definition is… well, it is internally consistent, but I’ve never heard the term ’submarine patents’ used that way before, and if you define it that way you run the risk of thinking that submarine patents are no longer a problem. This is sadly not the case.

Most people define submarine patents not as patents which are unknowable (because of the PTO’s process), but as patents which are unknowable or effectively unknown and therefore can’t be dealt with effectively.

The problem here – with software patents in particular- is that they are so numerous, so broadly worded, and so inconsistently worded, that searching for them is like searching for a submarine in the ocean. It is incredibly difficult, incredibly expensive, and very frequently ineffective to look for the ones that could torpedo your software product. And so most of the industry doesn’t bother- they just cross their fingers and hope.1

Patent pools like MPEG-LA’s are an attempt to avoid this problem, not by searching the ocean, but by bribing the submarines to surface and getting them to agree not to use their torpedoes. So they do reduce the risk of submarine patents, but they definitely don’t eliminate them- each company will still have to do their own risk analysis when they sign into a patent pool, to make sure they are comfortable with the risk from patents outside the pool.

It is worth noting here that patent rights are like copyrights, and not like trademarks: you can let them sit as long as you want without enforcing them (generally speaking.) This is another part of what makes submarine patents messy- merely using the technology in a very public way (like many companies do with MPEG) does not necessarily guarantee that there are no risks; it only means that if there are risks, they haven’t surfaced yet.

So, bottom line: if the OSNews article made you more comfortable about submarine patents, get nervous again. Using their technical definition, the risks are zero, but using the more common (and more reasonable) definition the risks are usually low but they definitely aren’t zero.

On the other point: Gruber said yesterday that Google, as an MPEG-LA licensee, would be protected if Ogg violates an MPEG-LA patent. This is possibly  correct, but highly unlikely. Companies who give their patents to patent pools don’t actually give them up completely- they typically only promise not to use them against very specifically described technologies. If you’re not that specifically described technology, the patent owner is completely within their rights to track you down on their own.

In the case of MPEG-LA, the patent license is almost certainly for implementations of MPEG codecs, not for implementations of any random video codec you want (like ogg.) So Google probably has some other reason they feel safe about ogg- it may be that they’ve done thorough research on the codec, or it may be that they have other cross-licensing agreements outside of MPEG-LA, or they may just be unusually tolerant of risk. Unfortunately, we can’t know, and they’d be crazy to tell us.

Again, like yesterday, I haven’t seen the MPEG-LA licensing terms; it is possible that they do in fact cover implementations of any random codec. But that would be very unusual.

  1. One of the many, many ways in which software patents are broooooooken.

Syndicated 2010-03-26 16:49:28 from Luis Villa's Internet Home » Blog Posts

624 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!