FLOSS Dispenser: a free market for Android

February 10th, 2010

I’ve been working on developing a free software application market for Android.1 The obvious place to start was the SlideME Community Edition code, which as far as I know is the only existing free software project that does even part of the job. Unfortunately, SlideME’s Community Edition was abandoned due to “lack of community interest” in April 2008, several months before the first Android phones were even available. So most of the work I’ve done so far was to update the code to work with the current SDK, rework the interface to behave in a more standard way, and rewrite portions that relied on now-unavailable API elements.

FLOSS Dispenser (like SlideME) works in conjunction with a J2EE server application called JVending. JVending’s public repository was also abandoned by SlideME some time ago, so I’m maintaining a fork of JVending along with my fork of FLOSS Dispenser as a part of the Replicant project.

I put up build instructions for FLOSS Dispenser as well as for JVending; using these, you should be able to build both and have them work together. However, neither one is ready, which is why I’m not hosting an application store already. The FLOSS Dispenser code in particular is pretty buggy (most of them aren’t mine, but only because I haven’t written much of it), for one thing. For another, the system doesn’t yet facilitate GPL compliance — you can download and install apk binaries, but they don’t come with source code and license text. Until at least this feature exists, I don’t recommend anyone serve GPL’d apks to the public using JVending.

I wanted to have this and some other issues hammered out before I put the code up, but I was motivated by Jonathan Corbet’s recent LWN article on Android to just put up what I had and try to get some help. I know other people are interested in something like this, and though I’m hardly proud of the little coding I’ve done on this, it’s the best start we have for a free market.

So by all means, take a look and help me kick this thing out the door.

  1. The quick rationale for this is that the Android Market 1) is not itself free software, and 2) doesn’t enable you to search for applications by their license. []

Goolog: everything you do is right here

February 9th, 2010

Managing your life online isn’t easy.  You use email, IM, and other social tools.  You create, manage, and share documents.  You search for things you’re interested in and research things you’re working on.  You track your finances to the penny and buy everything you need.  You store your private medical records and access information about your health.

To do all of this, you maintain countless passwords, chase your friends across an ever-increasing variety of social networks, and constantly move documents and data between your personal computer and various web services.  But often there’s no good way to get data from here to there — the sites you use may not accept the data format you have or communicate with the other sites holding your data.  Sometimes, the sites you use stop offering the features you need, or are bought by larger companies and shut down to quash competition in a key market.

Google Labs is changing all that with Goolog.  Now, when your life is stored in Google’s services, we keep track of it for you. No more separate identities. No more wondering where all of your friends went. No more moving from place to place.

Take a look at some of the things Goolog takes over for you:

Single point of entry

Remember all of those usernames and passwords you used before?  Now, you don’t have to.  There’s only one way into Goolog: the Google Account login and password you already have!  You won’t need to remember how to log in anywhere else, because you won’t need to go anywhere else.  That’s because, as we like to say at Google Labs…

Everything you do is right here

We already kept your email and your documents for you, and showed you how easy it was to communicate and work with other people in Goolog (though of course we didn’t call it Goolog at the time).  You didn’t have to track your communications and personal documents across folders, hard drives, and websites, because we were tracking them all for you.

Now, we can track everything else too.  You can keep your whole life — the books you read, the things you buy, all your creativity, all the news you get, everything you say, see, and hear, everything you know, your time, your work, your wellbeing, and your money — all right here in Goolog.  What this means is that you don’t ever have to worry about getting it back out again, because all of our services integrate with one another.  Your Health and Finance records are Docs, your Docs move through GMail and Groups, and on to your Sites or your Blog(ger).  Your GMail messages generate Calendar entries and when you Talk we listen, and figure out what you’re trying to do.

Starting to see how much less you need to think about when Goolog is in control?  It gets better.

Goolog is social

Not only is everything you do in Goolog, but everyone you know is here too.  (Ok, maybe not everyone just yet.)  So it’s as easy for you to share everything you do with others as it is to move your data between our services.  And it’s easy for us too!  Now, we can tell the people you know what you’re doing even when you don’t ask us to.

Goolog is exactly what it sounds like

But the social features don’t end there.  The best part of communicating in Goolog is that we hear everything you say, whether you’re emailing, IMing, blogging, or even talking on the phone.  And just like our name implies, we log all of it.

This enables us to make our services more useful to you, because when we keep track of everything you do, we can relate what you’re doing now to what you did months ago, and better understand what you’re trying to do.  It also enables us to make useful data about what people do online available to the public (we anonymize all of the data first, of course).  And finally, it enables us to better serve our partners, by providing them with access to better information about their target markets.

No need to sign up

The best part is that you don’t need to hound your friends for an invite to Goolog. You don’t have to opt in. If you have a Google Account, you’re already in Goolog. So relax… everything you do is right here.


ABA Journal joins National Review in Asianizing Sotomayor

October 6th, 2009

What is it about a Latina Supreme Court justice that just screams “Asian” to journalists?  Whatever it is, the ABA Journal places itself in the dubious company of the National Review this month by highlighting Sonia Sotomayor’s ineffable Eastern-ness:

ABA Journal cover: No More Kabuki Confirmations National Review cover: The Wise Latina
This Month’s ABA Journal The controversial National Review cover

The National Review, by Asian-ing up Sotomayor’s physical appearance, obviously posts a clear win in terms of sheer cultural insensitivity. But surely someone at the ABA Journal’s editorial staff thought, before rehashing an apparently irresistable cliché to characterize Sotomayor’s frictionless confirmation process, “hey, maybe surrounding her with a bunch of Japanese-looking stuff will raise uncomfortable associations?”  No?


White House still confused about Flickr photo licensing

October 2nd, 2009

When the White House first began posting photographs taken by its official photographer on Flickr, it caused a minor kerfuffle about licensing: the photos were posted under a Creative Commons Attribution (CC-BY) license, even though works of the U.S. government are in the public domain.  It turned out that the White House chose CC-BY because “public domain” wasn’t an option Flickr’s interface offered, and CC-BY is the least-restrictive CC license.  In short order, Flickr added a “United States Government Work” option for the White House and the whole thing was fixed.

Sort of.

A friend just posted about a White House photo on Flickr, which is appropriately designated as a United States Government Work.  However, beneath the photo is the following text:

This official White House photograph is being made available only for publication by news organizations and/or for personal use printing by the subject(s) of the photograph. The photograph may not be manipulated in any way and may not be used in commercial or political materials, advertisements, emails, products, or promotions that in any way suggests approval or endorsement of the President, the First Family, or the White House.

Several things about the section in bold are problematic.  The first is that it contradicts the law, and the government’s own statement of the law (linked to from the Flickr page), by prohibiting derivative works as well as, it would seem, many other permissible uses.  The limitation to publication by news organizations contradicts the public’s right to distribute copies of the photos, and to display them.  The release by “the subject(s) of the photograph” may be intended to remind users that some states recognize individuals’ rights to the use of their likeness in certain limited contexts (recall another Flickr-related licensing dispute), but those laws do not justify a broad proscription on use by anyone other than news organizations.

Maybe after one more time around, the White House will figure out what “public domain” really means.


Matt Asay is wrong about rights

May 7th, 2009

Matt Asay does not believe in a fundamental right to Internet access. His most recent barely considered core dump of generalities begins with this bit of popular conservo-libertarian retcon: “While the framers of the U.S. Constitution talked about the rights of assembly, speech, and religion, our modern world has crowned new rights.”  He goes on to lament the “entitlement culture” which has produced one or two European Politicians who believe Internet access is a fundamental right, and to pioneer the notion that people should have fewer rights and more (unenforceable) responsibilities.

Matt is wrong1 about history.  Nevermind that his thesis, about the framers’ niggardly disposition of rights, enumerates only those granted in the First Amendment (that’s out of 10).  By simplifying to absurdity the history of the Bill of Rights, and omitting completely the development of rights over the course of U.S. and world history, Matt leaves not even a single fun-sized marshmallow of credible context to support his rhetorical toothpick-house.

His conception of the constitutional framers as a unitary band of Democratic-Republicans is shallow, ignoring that the Constitution is and has always been a product of compromise, and that the Bill of Rights is by its own terms2 an irreducible minimum statement of rights, not an exhaustive list.  To give Matt some credit, he correctly points out that “US constitutional rights tend to keep govt *out* of citizens’ lives,” and he believes that a right to access does the opposite (roundaboutly, via increased taxation). But Matt’s questionable comprehension of constitutional history is not entirely (or even mostly) why he’s so wrong.

The problem with all of these bothersome rights, Matt says, is that they create a slippery slope.  If you give someone a right, then they might think the right is attended by specific guarantees.  Deftly unwinding the logical integrity of a single tweet, Matt points out that if people are given a right to use a channel of communication simply because that is how one interacts with government, then there is no literally no possible way to distinguish that channel from any other.  If the right to participate in government means that the government must enable that right, then they have to in every conceivable, to the full extent imaginable.  End result?  The government has to buy me the New York Times AND the Wall Street Journal so I can make an informed voting decision.

Matt went to law school, scout’s honor.  At Stanford.  Presumably he took Constitutional Law and learned that over this country’s 230-odd years, Congress and the courts have managed to define, adapt to technological changes, and where necessary narrow a great number of rights, all without giving me a free newspaper.  They’ve addressed some of the issues Matt touched on — for instance by requiring balanced treatment of controversial issues by broadcasters — but the unlimited expansion of rights with which Matt is concerned has been repeatedly thwarted by reasonable people.

But again, one need not engage Matt on the battlefield of grand constitutional theory to see why he is wrong.  One need merely do what Matt seems never to ever do before reaching — and blogging — his opinion: read past the headline.  Because the “fundamental right” Matt is up in arms about isn’t the one he thinks it is.  The European Commission did not consider “codifying Internet access as a basic human right.”  Rather, it merely considered an amendment prohibiting ISPs from limiting subscribers’ access without a court ruling:

[T]he Parliament’s lower house… passed an amendment to the telecommunications package making it illegal for any E.U. country to sever Internet service unless a citizen is found guilty in court…

As the New York Times notes, “the amendment was intended as a rebuff to a proposal before the French National Assembly that would allow a government agency to sever Internet service based on industry complaints.”3 It does not create a right to access for those who haven’t paid for it or impose any other great taxpayer burdens.

So Matt is wrong even about the topic of the debate — the “fundamental right to Internet access” is a strawman he’s set up.  I don’t think he intended to mislead anyone, he just didn’t do his homework.  He read a couple of headlines and one politician’s puffery and took it from there (this is a common M.O. for Matt, which is a major contributing factor to his always being wrong).  But even that immanently defeatable strawman (I don’t know anyone, myself included, who would argue for creating a fundamental right to Internet access, and certainly not absent a detailed plan for implementation and some strong limits on scope) is more than a match for Matt, who relies on popular historical revisionism and an unrealistic parade of horribles to refute the argument that no one is making.

  1. Matt Asay is Wrong will be a recurring feature of the copiesofcopies webl. []
  2. See the Ninth Amendment. []
  3. French Anti-Piracy Proposal Undermines E.U. Telecommunications Overhaul, May 7, 2009.  Matt claims that Parliament voted against the amendment, which is incorrect.  The parliament instead temporarily defeated a deal permitting three-strikes style laws, by introducing the amendment.  This can all be found in the first two paragraphs of the article Matt cites. []

My Corrupt Landlord, or A Helpless Empowered Tenant

May 5th, 2009

Last September, I found a great apartment, via Craigslist, at 350 Lincoln Place in Prospect Heights — it had unheard-of-in-NYC amenities like a dishwasher & central air, a roommate I liked and had things in common with, and a rent I could afford.  Unfortunately, when we met with the super (Bajram Lukovic, aka “Baki”) so I could sign the lease, he told me I had to pay him a $900 fee to move in to the apartment.  He explained that other tenants have said that that’s illegal, and he assured them it wasn’t but if they preferred they could go pay a fee instead to the broker the building had a deal with (it would cost more, though).  Also, the fee had to be paid in cash or cashier’s check, and the tenant would not be given a receipt.  “I tell them, ‘The lease is your receipt,’” he said, but he would not include a mention of the fee in the lease agreement.

This fee is illegal “key money.”  No agent of a landlord in NYC can charge tenants for anything other than rent, a security deposit, and the (actual) cost of a background check (usually no more than $100).  Demanding more than $250 in key money is a class A misdemeanor under N.Y. Penal Law § 180.56.  “Systematically” demanding key money from three or more tenants is a class E felony under N.Y Penal Law § 180.57.

I should not have taken the apartment.  But I liked the place, I didn’t want to leave my roommate in the lurch (it had been about two weeks since I’d agreed to move in, and he’s stopped looking for other takers) and I would have had to pay a broker’s fee for most other places anyway, so I decided to suck it up and pay the key charge.  I collected what documentation I could of the payment: I called the landlord (Leah from Eckstein Properties, dba 350 Lincoln Place Owners’ Association) and confirmed that she was aware of and stood behind the super’s fee;  I sent her a letter (unregistered, unfortunately) describing the fee, and I kept a copy; I gave the super a similar letter along with the check, cc’d the landlord, and kept a copy for myself; and I kept the check’s stub.

But even though I know my rights and did about as much as could be expected to document the transaction, I suspect there’s nothing I can do to retrieve my money.  The NYC Rent Guidelines Board informs me that the Attorney General will probably take no action without “solid evidence” or a corroborating witness.  My roommate doesn’t want to rock the boat, and he was the only one there besides me.  The cashier’s check, though made out to Lukovic, could have been cashed by anyone.  The letters are from me, and anyway I sent them unregistered so they are readily deniable.  For all of these reasons, an action in small claims court could also easily fail.

One option would be to hold a meeting of the building’s tenants — which I can do in the building without interference or retaliation by the landlord under N.Y. Real Property Law § Sec. 230 — and find others who were charged key money to corroborate my story or put pressure on the landlord.  But if no one shows up (for example because they’re afraid of retaliation, notwithstanding their rights) then I could upset my roommate’s relationship with the landlord against his express wishes for nothing.  And after all, I moved into his apartment.

I’m posting this for a couple of reasons: first, if anyone thinks of anything I haven’t that could help me, please let me know; second, I just want people to be able to google “350 Lincoln Place” and find out that the owners are responsible for rent gouging; third, to make the point that even in NYC, which has some of the strongest tenant protections in the country, it can be difficult or impossible to exercise your rights, because it’s not just your rights at issue.

FML


The irony of Conservatives for Patients’ Rights

March 11th, 2009

I was on the treadmill when this segment on CNN about conservatives’ opposition to Obama’s health care policies made me wheeze uncomfortably with laughter.  A swiftboat organization called Conservatives for Patients’ Rights–led by disgraced, corrupt healthcare CEO Richard Scott–has paid $20 million for a piece of the media spotlight on the issue.  The campaign demonstrates everything that is wrong with 21st-century conservative politics, the casting of corporate-interest lobbying as grassroots campaigning being first among the problems.

But what got me laughing was Scott’s pithy demonstration of another problem: conservatives’ refusal to acknowledge the complexity of political issues or the merits of opposing arguments.  No doubt on the advice of his swiftboat-PR consultants, Scott blithely dropped this line during his CNN spot:

Are the decisions that I make with my doctor for my care going to be dictated by some federal bureaucracy? That’s very scary.

I won’t bother connecting the dots.  Suffice it to say that I think it’s disingenuous for conservatives to rally under this particular banner.


New IdentiFox that plays nice with TwitterFox

February 26th, 2009

IdentiFox is a Firefox addon to get Identi.ca updates.  It’s based on TwitterFox, and up till now you couldn’t use the two together, because they still shared certain unique identifiers in their code.  I spent some time reworking IdentiFox to solve this problem and generally clean up the Twitter references in the code. I created a whole new IdentiFox based on the latest TwitterFox Beta.  It now supports all of the following features:

  • Tab for private messages
  • #hashtags and !groups link back to their homes on http://identi.ca
  • Right-click menu enables copying, redenting, and viewing notice on http://identi.ca
  • New color scheme to match Identi.ca’s current design

I’m working on getting the Addon onto Mozilla’s site, but till then I’ll post the XPI here.  Please comment here or email me with any problems you run into!

  • Here is the source on bitbucket

Why should I use Identi.ca instead of Twitter?

February 26th, 2009

I’ve evangelized Identi.ca to a few friends who use Twitter and are only somewhat familiar with free software.  A lot of these friends sign onto Identi.ca and immediately post, “I don’t understand why I would use this instead of Twitter.”

The capsule answer is that Identi.ca is free software, meaning that anyone is free to download the code, share it, or change it to make it better.  As a result, Identi.ca is developed through individual contributions from its user community, rather than according to the desires or needs of a single company.  Some people (like me) believe this freedom and cooperative effort have inherent value even when they don’t work or produce measurably better results, which is the same thing I believe about democracy.  And when a program’s users are not beholden to a single company for new features and bug fixes, many people (like me) also believe better software will often result.

But to get specific about the Identi.ca v. Twitter issue, here are some advantages of Identi.ca over Twitter which are more or less the result of its community development model and ethic:

  • Identi.ca is not a monolithic service. This is the big one: Identi.ca’s underlying software, Laconica, can be installed on other websites (you could even install it on yours), and users on one site can subscribe to users on another.  Identi.ca calls this “federation” — the upshot is that if the people running Identi.ca get lazy and stop fixing bugs or creating new features, or if they adopt insane Terms of Use, you can take your data and set up camp at another site.  Federation also means less downtime; Identi.ca initially sprang into being while Twitter was experiencing frequent failures due to a combination of popularity and poorly scaling software design.  Because Laconica users can be distributed across multiple sites, those sites can share the load and decrease the likelihood of any one server being overwhelmed.
  • Groups. In addition to tagging posts with #tag, Identi.ca allows users to form groups and tag posts with !group.  That way, your feed will show any post directed to your group, even if you’re not subscribed to the user who posted it.

This is not to say that Identi.ca outshines Twitter in all areas — it’s younger, still building a user base, and there aren’t as many applications out there yet.  But Identi.ca is built like web applications should be, because it keeps the power in the hands of the users.  Among other things, this is insurance against the constant privacy invasions that plague Facebook and other social networking sites.  It’s something users should demand, and the best way to assert your rights is by using Identi.ca and other free/open services when possible.


A simple DIY light-up greeting card

February 25th, 2009

Some friends let Carly and I crash their (super-sweet) apartment in Providence a couple of weekends ago, and I decided to say thanks with LEDs.  Specifically, with a greeting card that lights up when you open it.

This is a pretty simple circuit, obviously — a battery, LEDs, and a switch could cover it.  In fact, it’s more or less a solved problem, since what I wanted to do was just a simpler version of the card in this instructable.  But I decided to look around for a more elegant switch, since moving parts are prone to failure and the one in the instructable just looks janky (plus I didn’t really have any materials to make it from).  My first and stupidest idea was to use a photoresistor to detect when the card was open.  This is stupid because a photoresistor is only going to work really well when there’s lots of light, but when there’s lots of light you can’t see the LEDs (uh-durr).  To give myself some credit, I wasn’t planning to tie the LEDs’ output directly to the photoresistor’s input — I was going to use a transistor to amplify the input from the photoresistor — but it was still a dumb idea.

But at least the failed photoresistor experiment led me to this evilmadscientist.com how-to, which turns on an LED only when it’s dark.  I realized that if I was going to avoid using the sliding switch (which closes the circuit when the card is open), I was going to have to put a contact on the other side of the card, and turn the LEDs on only when the circuit was broken.  Being pretty much a n00b (I’d never used a transistor before), I didn’t really know how to do this, but by playing around with the dark-detecting LED design, I was able to substitute a simple switch composed of a magnet and two modified paperclips for the photoresistor and basically use the same circuit.

Here’s the front of the card (the card’s admittedly corny theme is Ryan and Heather’s black cat Pirate Jenny, nicknamed “Chupacabra,” which means “goat sucker”):

The front of the card

And here’s the inside.  Here you can see the entirety of the switch — the magnet glued to the left side of the card closes the connection between the two curled paperclips on the other side.  As you’ll see on the back of the card, this diverts current from the transistor’s base, turning it off and stopping the flow of current to the LEDs.  That is, when the card is closed the lights go off.

Inside the card

And finally the back of the card and the circuit itself:

The back of the card & the circuit

You’ll notice that this looks pretty janky too.  All I can say in my defense is that I kept the lion’s share of jankiness on the back of the card.  I only had so much to work with here.

While in my opinion my switch design is an improvement, it has one noteable disadvantage to the sliding switch, which is that the circuit is always closed and drawing some power from the battery.  It should be relatively little power, though, and I think the battery should be good for at least a month.