Anyway, I've been pretty passive on this nuisance, in fear of turning into some kind of NIMBY crazyman. But there is presently a front end loader loading up a dump truck at 11pm. Every time the loader goes back for a new scoop of dirt it's reverse beep goes off. And then there's the big crash when the dirt reaches the dump truck. I immediately called the DPW, presumably getting their answering service, to file a complaint. They took my information and I will be expecting a call back tomorrow. This is unacceptable. It's bad enough my back yard and deck are effectively unusable between 7am and 5pm on most days due to noise and dust, but now the neighborhood has to tolerate being woken up by this noise at 11 at night?
Dealing with the other driver's insurance company, which is Allstate, has been surprisingly painless and pleasant. I received the expected Blue Book value for Hawkeye, and they also reimbursed me for the damage to my computer. I decided, however, that I am not going to have the Macbook Air repaired. The estimate Apple gave me was for damage to the case and trackpad (which are apparently considered one unit on these machines). While everything else is in a reasonable state of working, I fear that the impact could have had caused hidden or yet-to-manifest damage. I don't want to lay out nearly a grand to repair the case to have something else fail in a month or two.
So with repair out of the question, my real decision is what to do next. What I will do in the near term is to bank the money and keep using the damaged Air. As I mentioned above, the computer still seems to work, although it does overheat and throttle itself more often now, which has tripped up my usage on several occasions... There is clearly a fan still working inside the thing, but perhaps this computer has more than one? Or perhaps the slight bend in the case is enough to disrupt the airflow? Who knows... I'm afraid to remove the bottom case: The 'screw dents' in the top case make me worry that taking out the bottom case screws may mean never getting them put back in. That would take a mostly-working computer and turn it into scrap.
So at some point I'll replace the Air. When I do, I think I will probably replace it with a Macbook Pro as opposed to another Air. The Air has been a great machine, but now that it's my only machine the lack of hard disk space has been a bit of a frustration. Honestly it would less of an issue if iTunes could deal with my network-shared 120GB music archive, but the pain of that is non-trivial. Also, while the Air's size and weight are great for the days which I walk to work with my laptop, those days are few and far between. I think that for the money I would spend on another Air, this time I might trade some size for speed/space.
So after the disappointment of the powerline networking experiment, I decided to give MoCA hardware a shot. If it performed as advertised, MoCA made sense in our house: There were already live cable drops in both the rooms in question, and the technology seemed far less jankier than powerline. So I ordered the Netgear MCAB1001 MoCA kit, which included two endpoints. This review will be much shorter than the last one.
I love this hardware. In fact, I really only have two gripes which I could think of:
- The configuration utility is Windows only, and is basically required due to...
- One of the endpoints was configured in "All Pass", which lets MoCA overrun the frequencies used for television. One of the reviewers on Amazon mentioned this as well, so I knew to look out for it. Fortunately I was able to use the configuration utility in a virtual machine I already had lying around, so I wasn't stuck. But if you're a non-Windows user, you'd be screwed as far as I can tell.
milgrim$ time nc -v -v -n pbook 2222 < big-file.bin
Connection to pbook 2222 port [tcp/*] succeeded!
124.98 real 4.20 user 31.90 sys
(1,073,741,824 bytes) / (124.98 seconds) = 65.5464874 MbpsCompared to the 15 Mbps I got from the powerline hardware, this was literally night and day. And this was using the USB Ethernet adapter on my Air, so I doubt it's fully flexing the bandwidth available. Almost as important as the bandwidth (and the reason I sat on this review for awhile) is the reliability. After I wrote the powerline review I learned that I was seeing all kinds of dropouts and failures. But the MoCA hardware has been seemingly rock-solid. I've done many large data transfers over the link and seen no trouble whatsoever. I've been so pleased with this gear, that I've considered getting a third endpoint to put in the basement and move some 'headless' hardware down there (cable modem, Slingbox, time capsule, etc), as it'd be really easy to run a Coax drop down there. Actually, I think the only barrier to that right now is that all the power in the basement is on the common circuit of the house, so I'd have to install an outlet that comes off of our breaker panel. Anyway, I'm rather pleased with this hardware, and if you have similar needs, you might want to give it a spin yourself.
We left Monday morning for Damariscotta, Maine. Corinna's boss has a place up there which she'll be retiring to in a few months. Until then, though, she's only there on the weekends, so she let us use for a few days during the week. The place was gorgeous, and we really enjoyed exploring that area. We had some great food, and it turns out that Maine is rather beautiful. We'll post some pictures from my iPhone and Coco's camera, but please forgive me for cutting this part of the story short. It turns out, it's not where the real action is.
Wednesday morning we packed up the car, Hawkeye, and continued on to Bar Harbor, Maine. Our plan was to explore Acadia National Park, which has always sounded dreamy. The beautiful weather we had enjoyed for the first two days, though, had given out and we drove up Route 1 in light-to-moderate rain. After about an hour of driving, we found ourselves in Rockland, Maine. In fact, we found ourselves at about 130 Camden Street in Rockland, Maine. It was at this point of the trip that another individual, driving a Silverado, in the oncoming lane found THEMSELVES crossing the turning lane and slamming into the front of Hawkeye at a non-trivial rate of speed. Hawkeye was rotated 90 degress clockwise and tossed into the parking lot to our right, and came to a stop. The black Silverado pickup rolled into the parking lot as well, continuing to roll for a few hundred feet before stopping.
Once the car came to rest, and I got my bearings, I checked on Corinna, who seemed to be in pain but intact. She was saying her chest and neck were hurting, but mostly her chest. It sounded like she had the wind knocked out of her, but she said she thought she was OK. I felt pretty banged up, my knees hit something, and my left elbow and thumb got banged up a bit, but while my injuries couldn't be considered trivial, it all seemed to be bumps and bruises, nothing broken or life threatening. I couldn't quite get my door open, but I managed to force it open enough to sidle out of the car. By the time I got around to Corinna's side of the car to try to open her door I noticed she was passing (or perhaps passed) out. Her eyes were rolled back into her head much like the time when I had my appendix out and she fainted while I was being prepped for surgery. I yelled for her to wake up, and she did, but was a little out of it. Afterwards she would tell me that she had a vivid dream while passed out, but I'll let her tell that story. At this time an off-duty EMT pulled up and offered her help, and a seemingly off-duty fireman also showed to do the same. While the EMT cared for Corinna, making sure she didn't move her neck or do anything crazy before the ambulance showed up, the fireman tried to pry the hood open enough to cut the battery cable, reducing the chance of the car blowing up (or something). I was pretty much out of the loop on this one, not really able to help anywhere, so I took the above photo of the damaged car and made my way over to the other car to check on it's driver. It was a woman in her 30s who claimed to have pulled out of a driveway across the street, lost control of her truck while it fishtailed, and plowed into us accidentally. I asked if she was OK, which she said she was, and she apologized while looking completely terrified. Everyone seemed to be skeptical of her story, but whatever, I can't imagine whatever it was she did was intentional, so there's little point in getting caught up on the details.
The fireman couldn't get to the battery cables with the tools he happened to have in the back of his personal car, but quickly the cops, firemen, and ambulance showed and with their equipment the cut the cable. Everyone thought it'd be a good idea if Corinna took a ride to the hospital to get her chest x-rayed and get looked at by a doctor. They got a collar on her and on a backboard (which seemed to take 3 hours, but obviously my perspective was skewed), and I grabbed a few of our belongings (her purse most importantly) and jumped in the front of the ambulance. Pen Bay ER was only a few minutes away, and they took her in while I gave the front desk her information. After I finished with that they brought me around to see her just before they took her for Xrays. Everything checked out fine, and the doc thanked her for wearing her seat belt and told her to take it easy. Her chest was pretty bruised from the seat belt and it would take a while to heal. We both walked away from that crash thanks to our seat belts, so it'd hard to be mad about our bumps and bruises. Her chest still hurts pretty badly, even a few days later, and she's having trouble getting out of bed and has to avoid coughing, laughing, and sneezing, but she seems to be getting better every day. I know I can, at times, be prone to hyperbole, but this was without a doubt the closest I've come to dying in my life. A few things go differently, and it'd be my construct here typing this.
After Corinna was discharged it took awhile to get the rest of the day squared away. We were about 2.5 hours away from Bar Harbor, but we were 3.5-4 hours away from home, so we decided to press on. First, I needed to get ahold of the cop who reported to the scene, as he had my license and registration (as well as all the information about the other driver). The ER staff were very helpful and gave him a call and Officer Daniels came right over. He had already prepared a little form with all the details I needed regarding the other driver, and even had a badass little baseball card-style business card, which gave us a laugh when we needed one. He took some other information from us and was really helpful and comforting. After he left I spent a bit more time on the phone with the other drivers' insurance and Enterprise rental who came over to pick us up in the rental. We stopped by the tow yard to take some pictures and get all our crap out of Hawkeye in the mud and pouring rain, and we'll probably never see him again. He gave his life protecting ours, and while our final moments may have seemed a little unceremonious and ungrateful, I know he wouldn't have wanted any pomp and circumstance; He wasn't a hero, he was just doing his job.
While I was transferring stuff to the rental, the husband of the driver stopped by to see his car.. He seemed very cool, and reassured me that they had full insurance coverage and they had already told the insurance company that the accident was his wife's fault. We chatted briefly and shook hands, I don't think anyone felt good about what happened earlier in the day so there's no need to hold grudges. With Hawkeye cleaned out we grabbed a quick meal and set out, slowly, for Bar Harbor. We arrived around 6pm, approximately 4 hours after we had originally planned to arrive. It boggles my mind that so much happened in those four hours. Upon arriving, I opened my MacBook Air to discover that it took some injuries during the crash. It was in my bookbag behind the drivers' seat, and the trackpad button got smashed and the case has been bent. You can see the tops of the case screws pushing through the handrest in the above photo of Officer Daniels' baseball card! Fortunately, I'm hopeful that their insurance will cover this as well.
We did our best to make the most of the remainder of our vacation, but between our injuries and the rainy weather, there was only so much we could do. On Thursday, after sleeping in pretty late, the weather was decent for a spell and we got up to the top of Cadillac Mountain, but the cloud cover was below the summit, so the only good views were on the way up and down. After that excursion we returned to the B&B and rested before dinner. Friday the weather was pretty miserable, but we still managed to tour the loop road that goes around the park and stopped for a few very small hikes and vistas. The miserable weather and the tides did combine to make Thunder Hole pretty exciting, though. This morning we had breakfast at the B&B and hit the road pretty much right away, watching the bad weather melt away into a beautiful day as we travelled south.
Perhaps I'll come back with more details about the non-accident part of our trip in the future, but for the time being it is really all I can think about. Not to sound melodramatic, but I've seen the replay of that black pickup coming directly for us over and over again, and it hasn't lost any impact yet.
- Location:Watertown, MA
So I'm going to sell the Powerline gear on ebay and give some Netgear MoCA hardware a swing. Review TK.
My current plan is to revisit some of my favorite films after the end of the festival with more in-depth discussions, but we'll see how that plan turns out.
Also, if you're interested in joining me for some of the films I'm seeing, here's an iCal feed of the movies I'm planning on seeing. There are descriptions, links, times, and locations in there.
Well today I got a LinkedIn invitation from Matt, and it turns out he works a few buildings over here in the Arsenal complex. We've likely been working a few hundred yards from each other for the past 2+ years and not known it.
Update: This equipment worked less effectively than I had thought when I originally wrote this review. See this post for an update.
When we first moved into the new house, I initially set up a single WRT54G access point (running dd-wrt) in the office in the back of the house. I quickly learned, however, that this location didn't provide much signal to the rooms in the front of the house, most notably, the living room. Fortunately, I had a second WRT54G lying around as well as a good place to hide it in the dining room, so I set up WDS and used it to extend the network to the front of the house. This has been our basic network configuration for almost two years now. The equipment in the front of the house which requires network, such as the Xbox 360 and the Tivo, all have wireless adapters which are served by this second access point.
This was mostly dandy for your everyday bullshit web browsing and checking email. But as I started to put more demand on the network by pulling HD content off the Tivo, renting HD movies on the 360, as well as things like Netflix streaming, it started to creak. Truth was that not only was the signal between the office and the dining room pretty lousy, but just using WDS halved the bandwidth available to wireless clients. It was time to find a better solution.
The obvious solution is to use wired ethernet to distribute the network around the house. Unfortunately, our condo is the middle floor of a 3 story house, which means no access directly below or above us to easily run Cat5. While it wouldn't be impossible to get some Cat5 snaked through the walls into the basement, it wouldn't be easy or fun. If I took on this project, it would turn into a complete mess. If we hired someone to do it it'd likely be prohibitively expensive. Neither
Unable to come up with a true solution to this problem, I shelved it, accepting the status quo. A few days ago it occurred to me that there had been some companies developing equipment to send data over the electrical wiring of a home. Reviews on this equipment seemed to be pretty mixed, though. Some people raved about how brain-dead simple it was and how well it work. Others complained it didn't work at all. After some hemming and hawing, I decided to just give it a shot and if the equipment sucked I could always just resell it. I ended up ordering the Netgear HDXB111 Powerline HD Plus kit. It advertised a top speed of 200Mbps, but of course, actual data rates may vary...
I received the equipment yesterday and spent part of the evening doing some basic testing. First off, the actual setup of this equipment is just as brain-dead as advertised. I plugged each of the units in on opposite sides of the house and within a few seconds had link. That was it, it just worked right out of the box, no configuration, software, or anything else required. There was one other optional, but important, step, which was to 'randomize' the encryption keys used by the device. Out of the box, the key is set to a default value, but there is a 'pairing' procedure which generates a 'random' key and distributes it among the devices. You hold the "Security" button on the first device, and it goes through some motions and decides it is the primary device and generates a key. Then you hold the button on that device again, a light starts blinking, and you have 30 seconds to hold the button on another device. This distributes the key to the second device and you are, in theory, more secure. It apparently uses 3DES, but that requires trusting Netgear, so as always, it's in your best interests to never rely on it. There is also some Windows-only (ick) management software you can install if you wish to use your own keys. Either way, it's a pretty simple procedure and when you are done, you have link.
Before I started testing the speed of this equipment, though, I figured it was wise to benchmark the existing setup. I created an empty 1GB file to use for testing. 1GB might seem excessive, but I wanted to make sure I had enough time to get past TCP's slow start and get a good idea of the maximum speeds involved. So the first set of benchmark numbers are sending data from my MacBook Air in the Office connected via 802.11g to Corinna's Powerbook G4 in the Living Room connected via 802.11g to the second AP:
milgrim$ time nc -v -v -n pbook 2222 < big-file.bin
Connection to pbook 2222 port [tcp/*] succeeded!
968.65 real 9.04 user 44.13 sys
(1,073,741,824 bytes) / (968.65 seconds) = 8.45713106 Mbps
So the performance of my existing setup using WDS was so much worse than I had imagined. I had never really bothered to test it before, and was truly surprised at how slow it was. Next up, I plugged in the first Powerline adapter in the office and patched it into the WRT54G's switch. I set up the second Powerline adapter in the Living Room and connected the Powerbook directly to it:
milgrim$ time nc -v -v -n pbook 2222 < big-file.bin
Connection to pbook 2222 port [tcp/*] succeeded!
545.85 real 7.88 user 65.73 sys
(1,073,741,824 bytes) / (545.85 seconds) = 15.007786 Mbps
For those keeping score at home, 15Mbps is much slower than 200Mbps. Even though I had never expected to get anywhere close to the advertised bandwidth, I was pretty disappointed. While 15Mbps was almost twice as fast as my existing setup, it was still rather slow. I tried removing some equipment from the equation, connecting the MacBook Air directly to the office powerline adapter (so the two laptops were, in theory, "directly connected"), but I got very similar numbers. I then wired both laptops directly into the same 100Mbps switch and re-ran the test, and got around 60Mbps, so the laptops themselves were not the limiting factor. I also tried placing the two endpoints in the same room, using different power outlets on the same wall, and the speed went up a bit closer to 25Mbps, although I managed to lose the hard numbers.
So where do I stand on this technology? Disappointed, but likely sticking with it for the time being. Even though the throughput is MUCH lower than I had hoped, it is still better than what I had. And until I can figure out a way to get real Cat5 between the two rooms, I don't really see any other solution on the horizon. I'm certain that the slow speed is due to some noise in my wiring, but being that the wiring is new within the past 5 years, I'm guessing it is some device creating the noise. I guess I could try to figure out what it is, but I probably won't. I'll likely keep dicking around with the devices to see if I can get them to run any faster, and until then I'll take what I can get. Someday I'll either get physical wire between the two rooms or find another solution, and then I'll unload the equipment.. But until then I guess it will have to do.
He examined all of those areas with various implements, the craziest being an fiber optic camera he shoved up into my nostrils. He determined that my septum was slightly deviated, but did not require surgery. This slight deviation was responsible for the discomfort I was feeling though... Apparently, the deviation is causing turbulence in my nose (disrupting the laminar flow of air). In the dry months, this is causing my nose to dry out, and much like dry hands, the walls along my septum eventually crack and bleed. This causes scabs to form, mucus attaches to the scabs, and it starts a kind of feedback loop. Blow out the mucus, it takes some of the scabs with it, you bleed, rinse, repeat.
He said that I have nickel-to-quarter sized patches of dryness and scabs in each nostril along the septum. I had been using a Neti Pot to treat the dryness, and he said that provides immediate relief, but the water is absorbed and evaporates so quickly that after a few hours things are back to the same, never giving the damaged patches time to heal. So he told me to apply "gobs" of bacitracin each night before bed for a month. I should feel relief within 3-4 days, but I have to keep at it for a whole month so things heal properly. Then I will cut back to weekly or so maintenance, depending on the time of year and how dry it is. The whole thing sounds pretty gross, but much less so than surgery, so I guess I should be relieved.
I'm not huge fan of Jay Leno, but this is a great summary of some of the cool aspects of 3D scanning and 3D printers. He uses a scan/print setup to reproduce a part for an old steam car which hasn't been made since 1910. But in my mind, he missed the most revolutionary aspect of this production system.
Sure, you can make a 3D model of a part you already possess, but that's just an evolution of 2D scanning techniques. And 3D printers, with their ability to make these 3D models into physical, plastic objects, are simply amazing. But for the most part it is just an evolution of the same techniques used in plotters like the ones I used in drafting class in high school. Both of these technologies are amazing, and I'm not trying to downplay how cool it is to see a functional copy of a physical object made.. When this technology is truly affordable, I'm sure I'll be tempted to dive in and screw around with it. But there is nothing particularly revolutionary about any of this.
In my mind, what is revolutionary is that after you take this physical, tangible, object and scan it into the machine, it becomes content. Content which can be shared just like movies, music, writings, ideas, and source code online. Sure, it's cool as hell that Jay Leno can reproduce a broken steam valve a century after production was ceased and restore his car to working order. But what is even cooler is that once he is confident in his copy, he can share that 3D model online with anyone else interested in this part, who (with access to a CNC), can create their own replacement part.
Once the information is in the computer, it is just as malleable as other digital media. While it's not as cool as the Linux Kernel or The Grey Album, one could envision a hacker in his garage taking that 3D model and trying to improve it. This hacker is able to use a common 3D modeling package to tweak the existing part, printing up their own plastic test piece to test it for fit, and taking it to a CNC to cut one out of metal to actually test it in operation. If it does happen to improve the part, they can then go ahead and share their changes with the world again. They could even take their improved model, 3D print it, then take a mold from it for mass-production, selling the parts to people without all this equipment.
Maybe this is just obvious to me and others with a particularly nerdy perspective.. I still find it amazing though how computers and networking are fundamentally changing the way with think of information. Hell, it's fundamentally changing what we consider information. The 3D scanner takes something physical and turns it into information. And as we've seen time and time again, once something is information it will find a life online which no one had imagined.
If the nanotech vision of The Diamond Age ever comes to fruition, where even the idea of matter itself becomes information we can manipulate, things are going to get rather interesting.
To reinforce my tradition of not placing importance of one film over another in each category, I decided to alphabetize the lists this year.
- Top 10 Films of 2008 (in Alphabetical Order):
- Bottom 4 films of 2008:
- Best Remake/Reworking: Be Kind Rewind
- Most Unnecessary Remake/Reworking: The Day the Earth Stood Still (2008) - I admittedly haven't seen it, but that's just because I consider it to be so unnecessary...
- Best Director: Christopher Nolan in The Dark Knight
- Best Actress: Kate Winslet in The Reader
- Best Actor: Richard Jenkins in The Visitor
- Best Supporting Actress: Amy Adams in Doubt
- Best Supporting Actor: Heath Ledger in The Dark Knight
- Best Ensemble: Doubt
- Best Original Screenplay: In Bruges
- Best Adapted Screenplay: Frost/Nixon
- Best Cinematography: Milk
- Best Soundtrack: Slumdog Millionaire
- Most Alarming Cinematic Trend: Repeating last year, "Remakes going 3 or 4 levels deep..."
- Most Memorable Lines:
- Let the Right One In:
- Oskar: How old are you?
- Eli: Twelve... more or less.
- Eli: What about you?
- Oskar: Twelve years, eight months and nine days. What do you mean, "more or less"?
- Oskar: When's your birthday?
- Eli: I don't know.
- Oskar: How old are you?
- The Dark Knight:
- Salvatore Maroni: From one professional to another, if you're trying to scare somebody, pick a better spot. From this height, the fall wouldn't kill me.
- Batman: I'm counting on it.
- Salvatore Maroni: From one professional to another, if you're trying to scare somebody, pick a better spot. From this height, the fall wouldn't kill me.
- Let the Right One In:
- Best Documentary (tie):
- Least shitty Darren Aronofsky film of all time: The Wrestler
- Best use of Special Effects in a lame movie: Speed Racer
- Best Interviews in a Documentary: Encounters at the End of the World
- Films I feel guilty for missing:
- Films I don't feel guilty for missing:
So let me get this straight, Watertown Town Council President Clyde Younger:
It's a SAFETY issue that you can't offer cups of ice or water to customers, and has nothing to do with you trying to save a buck? Do you use some kind of magical, safe ice and water when I order a soft drink? Of course you don't, you are just not interested in giving out free cups of water to your customers. If that's your decision, fine, but don't try and pass it off as some sort of bogus safety issue!
At this point, Sue, who is in charge of HR at my current company, met me in the lobby; she was apparently working at SRS in this dream. She began to show me around the building, which was odd, because I had worked there for 2.5 years. Of course, the building looked completely different, and we came upon this large room with glass walls which looked more like one of the GCCIS labs at RIT. It was here where I ran into an old friend from High School, Doug Palermo. I haven't seen Doug in ~14 years, and while I did buy his aforelinked book, I haven't read it yet. In the dream, I asked Doug if he was working for SRS, and he replied no, he was just visiting.
Finally, I ran into an former coworker, Ed, who I chatted with for a few minutes before waking up. What amused me most about the dream was, once I first appeared in the SRS lobby, how strongly I rejected the notion of going back to work there. Before I had even talked to the guard I had decided there was no way I was going to come back and work there, but figured I'd play along so I could see some old friends. I wasn't banking on seeing old friends from High School...
The WP importer seems to be expecting XML in the format used by ljArchive. ljdump also stores each entry in a separate file, and comments for each entry in another file still. The WP importer is a web form which allows you to submit an XML file, and doing this once for each entry would be excruciating. Furthermore, there are some differences in the structure of the XML used by ljArchive and ljdump, so some restructuring was necessary.
My script, 'convertdump.py' is still a little rough around the edges, but it seems to work (with some caveats listed below). I'm going to hold off on a 'less geeky' release until I polish it up a bit, but for those of you who want to grab it now and start testing or playing with it, you can clone my repository here:
git://donkey.csh.rit.edu/ljdump.git
A few things to be aware of:
- There are two arguments required on the command-line:
- username of the archive to process
- a number of entries to limit the resultant xml to. WP tends to time out on large files, so for people who can't adjust their PHP timeouts and file upload size parameters, they can create several smaller archives as opposed to one large one
- My script is currently messing up when processing the security information for posts. Therefore it will make public any private or friends only entries. I also think that even if I was processing this information correctly, the WP importer would ignore them anyway and still import them as public entries. I'm going to look further into this, but my plan in the short term is to add a command line argument which omits protected/private entries from the archive file.
- WP doesn't do any of the special LJ tags (such as <lj user=...>), so I think I'll modify the script to convert some of these special tags into normal hrefs. I probably won't try to do anything special with lj-cut, however, because that could turn into a can of worms.. :)
Anyway, if this is useful to you, and you aren't afraid of hacked together, barely tested software, give it a swing. I'm happy to hear about bugs, feature requests, or accept patches. :)
Update:
A few other things to know:
- I'm a git newbie, so I very well may have messed things up
- I'm (mostly) a python newbie, so this might not be the most elegant/neat/efficient python code ever produced
- I'm not planning on abandoning LJ any time soon, I'm just preparing a set of contingencies "just in case". My plan is to be read to replace sean-graham.com with little effort and incident in the case of LJ's early demise.
But where the president, is never black, female or gay, and until that day,
you've got nothing to say to me, to help me believe"
- Morrissey, "America is not the World"

