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.


Tilt-shift miniaturization in Gimp

January 15th, 2009

In the last week, I’ve seen posts on BoingBoing and my friend Nick Whitaker’s blog about the Tilt-Shift Maker website, which will manipulate photos you upload to make them look like they were taken with a perspective-control lens.  Which got me wondering whether you can do the same thing in Gimp, GNU’s free image manipulation software.  Of course you can, and the basic technique is really easy.  This great post by the Flickr user shygantic in the Tilt-shift Miniature Fakes group explains it all.

My first tilt-shift miniature made in Gimp:

Tilt-shift photo of boats at Le Cabin Scott

The source photo was maybe not the ideal candidate because the field is too deep, but it’s a first try on the first photo I picked, which I think demonstrates how easy Gimp makes this.

Read the rest of this entry »


Timely blog post fail (Halloween)

December 17th, 2008

Most years, Halloween sort of sneaks up on me — I don’t know what I’m going to do till the last minute, and I don’t bother thinking up a costume till the week before. But then I have to come up with something that I think is clever, or I’ll be sorely disappointed with myself, so I spend an entire day sorting out the minutia of whatever costume I pick. For my space drag costume, that was stringing together CDs with dental floss to make a skirt; for scrabble, it was gluing 225 little squares of felt to my t-shirt.

Which brings us to 2008. My girlfriend being a champion knitter and I being a champion nerd, we spied an opportunity to combine forces wonder-twins-like and make costumes involving knitting and computers.  The thing is, that Venn diagram yields little overlap indeed.  Eventually we settled on a Robot Prom theme — Carly would knit us vintage apparel and I would make it blink. And we even got started almost 3 months before Halloween. It just turns out that 3 months isn’t enough for Robot Prom.

Now, Carly pretty much knew what she was getting into.  She chose challenging patterns and was working uphill against a law school schedule, but she’s knit entire dresses (and sculptures) before.  Me, I’ve programmed plenty, but before August I had never built a single circuit, much less two wearables with multiple inputs and outputs communicating wirelessly.  But that’s what I was going to do, I thought — our costumes were supposed to blink/pulse/whatever slowly and dimly when Carly and I were far apart, and then start spazzing out when we were close together.  We realized that were were basically setting out to make costumes about how we’re an obnoxious, shmoopy couple (with LIGHTS!) but seriously, computers and knitting… there’s just not much you can do.

So Carly started knitting and I started reading and building simple circuits with my new Arduino Diecimila, but the going was pretty slow on my end.  I was making all of the rookie mistakes that anyone new to physical computing makes, including burning out two XBee radios by connecting them to 5 volts (they’re spec’d for a maximum of 3.6) and breaking a multimeter by doing I’m-not-sure-what.  Eventually, realizing that signal strength was not a reliable or fluid indicator of distance between radios, I ditched the S.O.-proximity-meter idea and just decided that our costumes would each have buttons and dials for controlling the light display on the other.  Even so, it wasn’t till a week before Halloween that I had barebones prototypes working and communicating with each other, and those were on breadboards with good old reliable copper wires… I had to make them work on cotton fabric using conductive thread.

We didn’t actually start working on combining our work until the day of our first halloween party, the day before halloween.  I took the day off with the intention of sewing like the wind.  But it turns out I can’t even thread a needle, much less sew, much less sew like something fast or atmospheric.  In a great stroke of luck, my wearable-electronics-ninja friend Grace stopped by for lunch that day, just as I was beginning to get a sense of how totally screwed I was.  She provided such life-saving pointers as: how to keep traces of conductive thread from touching; if the thread touches your skin you will short your circuit; omg you’re totally screwed.

For the rest of the day, Carly and I sewed until our fingers shook and our eyes wouldn’t focus, but we only finished most of her circuit and almost none of mine before it was past time to go to the party.  We knew we had to stop there, but we couldn’t even tell if hers worked at all, because it wasn’t designed to do anything without input from mine, so I quickly reprogrammed it to simplify its functionality (just one tri-color LED in her corsage, and no user control) and cut out the radio entirely. And by god, gutted as it was, it worked.  The little light in Carly’s (beautiful, expertly knit) corsage pulsed different colors.  She didn’t look like a robot, and I didn’t look like anything, but something worked.  So we went to the party and looked like this:

Our sad unfinished costumes at the NYU Law Fall Ball (my sign says Ambitious Costume Fail)

Carly’s corsage went nyeer-nyeer-nyeer (video)

But that’s about it.  The next day (Halloween), Carly spent all day sewing again, and I joined in as soon as I could, but by the time we had to leave, we were still missing pieces from the costumes, and the radios weren’t working (at one point I thought I actually destroyed my whole costume by connecting my Lilypad to 9v, but I got lucky).  So again we had to cut back on functionality, but at least this time we both had blinky lights and buttons and knobs to control them.  Also, we bought some silver face paint so that when people asked us what we were, we could say “Robot Prom!” without having to put “well, we were supposed to be…” in front of it.  All told, it still didn’t make any damn sense but at least it looked like a Halloween costume:

Our much-improved costumes of Halloween proper

We lost a lot of sleep, I broke some electronics, we had to explain our costumes to everyone, and by the end of the process we weren’t having any fun at all.  But on the other hand I got this sweet vest out of the deal and we didn’t break up.  And isn’t that what really matters?

Some more pictures:

The table covered in all our crap Furious sewing Testing Carly\'s corsage

The table covered in all our crap

Furious sewing

Testing Carly’s corsage


Android on Openmoko Freerunner (Ubuntu 8.04 Hardy Heron)

December 8th, 2008

Note: these instructions may be out of date.  Consider trying whatever instructions are posted on the Android-on-Freerunner page at openmoko.org.

I got Android working (as far as it goes) on my Freerunner using Sean McNeil’s kernel and filesystem images.1  These instructions are intended for the average Ubuntu users who wants to see the magic of Android on his/her phone with as little futzing about as possible.

Step 1: Partition your MicroSD card

You need to put a FAT (DOS) partition and an ext2 (or ext3) partition on your MicroSD card in order for Android to boot properly.  If it’s possible to do this by plugging your Freerunner into USB, I don’t know how.  So you will need some other way of reading your MicroSD card with your PC, for example a MicroSD to SD adapter (if your PC has an SD card reader built in) or a MicroSD to USB adapter.  Once you have one of these…

  1. Insert your MicroSD card into your card reader, and your card reader into your PC.
  2. If there is a filesystem on your MicroSD card already, it may auto-mount.  You must unmount the drive(s) on the card before proceeding.  You can do this either through Nautilus (right-click the drive and click “Unmount”) or from the command prompt:sudo umount /path/to/disk/2

    Partitions (old or new) may remount themselves after you add or remove them using fdisk (below). If so, you will have to unmount those as well.

  3. Run fdisk: sudo fdisk /dev/[device number]
  • Enter “p” to display existing partitions and their sizes.
  • For each existing partition, enter “d” and then the partition number to delete it.
  • Enter “p” again to make sure there are no partitions left on the card, and note the total number of cylinders on the card.
  • Create the first partition: enter “n” (new partition), then “p” (for a primary partition), then “1″ (for the first partition), then “1″ (start at the first cylinder), then enter half of the total number of cylinders (to make the first partition half the size of the card).
  • Create the second partition:3 enter “n” (new partition), then “p” (for a primary partition), then “2″ (for the second partition), then accept the defaults for the start and end cylinders.
  • Enter “p” to make sure that both of your partitions have been created.  If they have not, make sure you have unmounted all of the existing partitions and add any missing partition according to #7 and/or 8 above.
  • Enter “w” to write the partition table, then “q” to quit.
  1. Create filesystems on the new partitions:
  • sudo mkfs.vfat /dev/[first partition device number]
  • sudo mkfs.ext3 /dev/[second parition device number]
  1. If any of the new partitions are mounted, unmount them (see #2 above).
  2. Put the MicroSD card and battery back into your Freerunner and close it up.

Step 2: Download the firmware image files

Android requires three image files: the kernel, the root filesystem, and the bootloader.4  For now, the best kernel and rootfs images to use are those packaged by a developer named Sean McNeil.  The latest files can be found here.  I provide links to the existing images below, but the filenames may change.  The Qi bootloader image is packaged by a user named Andy and is available here (for Android, use the file that begins “qi-s3c2442-”).  Again, the names and locations of these files may change as development progresses, so if these links break, just seek out the most recent files.

  1. Download the kernel
  2. Download the root filesystem
  3. Download the Qi bootloader

Step 3: Download and set up the “neotool” flash utility and dfu-util

NeoTool is a handy, lightweight graphical tool for flashing images to your Freerunner’s memory.  It uses a command-line utility called dfu-util to do this, so you’ll need that too.

  1. Download the NeoTool script (this is just a text file, so you may want to right-click and “Save Link As…”)
  2. Download dfu-util
  3. Make both files executable—from the command line, navigate to the directory where you downloaded them and enter: chmod +x neotool dfu-util
  4. Run NeoTool—in the same directory, enter: sudo ./neotool
  5. In the NeoTool menu, select “Setup NeoTool”, then “Locate dfu-util”.  Find dfu-util on your drive and click “OK”.  Click “OK” again to return to the main NeoTool menu.

Step 4: Flash the images to your Freerunner with NeoTool

Now we will load the images into your Freerunner’s memory.

  1. Make sure your Freerunner has a decent charge in its battery, is turned off, and is disconnected from your PC.
  2. Boot the Freerunner into its NOR boot menu: while holding down the AUX (side) button on your Freerunner, press and hold the power button until a menu appears.5
  3. Attach the Freerunner to your PC via USB.
  4. From the NeoTool menu, select “Flash your Neo”.
  5. Select “Root-Filesystem”, “Kernel”, and “Bootloader” from the list.
  6. NeoTool will ask you to locate the image file for the Root FS first.  Locate the file (androidfs.jffs2) on your drive, select it, and click “OK”.
  7. Next, do the same for the kernel (uImage-android).
  8. Next, do the same for the Bootloader (NeoTool will ask you for UBOOT even though we are using Qi).
  9. Click “OK” through the scary message.
  10. Wait for NeoTool to finish flashing the firmware (you can follow the progress in the terminal from which you started NeoTool).
  11. When NeoTool has finished doing its thing, press the AUX button on your Freerunner until “Power off” is highlighted.  Press the power button to select it and power down your Freerunner.
  12. Unplug your Freerunner from USB power.

Step 5: Boot into Android

  1. Hold down the Freerunner’s power button until the screen’s backlight turns on (the screen will still be black) and then for a few seconds more.
  2. Release the power button and wait for Android to load.
  3. Android loads!  Hurrah!  This is way better than Om2008!  It found my network!  Calling works!
  4. Oh look, it’s going into suspend.  Wait, why does it look like nuclear winter?  Why is the screen white?  Why doesn’t the power button do anything?  I guess I’ll take out the battery.  (NB: suspend doesn’t work yet.)

I hope this helps someone.  Feel free to send/post feedback.

  1. Despite the Freerunner’s agonizing early history, there is still a very active community developing and testing the platform, and though none of the many distributions available for the platform are ready for primetime, that community has actually accomplished a lot.  Unfortunately, relatively little effort is dedicated to “bringing up the rear,” i.e. explaining clearly to less sophisticated users how to do all of the fun stuff the hardcore developers are doing.  Sean McNeil’s kernel and filesystem images go a long way toward making Android accessible to the average user, but his instructions for installing them do not work for me, and I couldn’t find any that did.  I pieced together these from 3 or 4 different sources, none of which contained the whole answer.  I hope they’ll be useful to someone. []
  2. When I mounted the MicroSD card using an SD adapter, it mounted as /dev/mmcblk0 and I unmounted the drives using: sudo umount /dev/mmcblk0p*. When I used a USB adapter, it mounted as /dev/sdb and I unmounted the drives using sudo umount /dev/sdb*. Yours may mount differently. Be careful that you have correctly identified the SD card and not some other more important drive on your computer. []
  3. Again, you may need to unmount the first partition before you can do this. []
  4. Supposedly you can use the default bootloader, u-boot, to load Android if you modify its environment to allow for larger kernels.  I tried this several times and was unsuccessful.  I have had no issues using Qi and it is reportedly faster. []
  5. This menu will only be displayed for 30 seconds, and then the phone will turn off again.  If this happens before you begin flashing the firmware, just repeat this step. []

The Amish: all high-tech turbines and Photoshop

November 14th, 2008

I found this ad for 100% authentic Amish heat-turbine powered mantles in today’s NY Metro.  Notice the loving way the Amish man takes his plane to an already-finished fireplace while a fire burns inside.  Notice the natural drop-shadow which was definitely not photoshopped in because the Amish do not use computers.

An Amish gentleman considers his next cut into a finished, burning fireplace

I know high-tech heat turbines don’t seem like the Amish way either, but they actually operate entirely on the wrath of the Almighty rather than AC.

The technology of the Amish mantle