||[Jul. 12th, 2012|10:58 am]
I finally ended up rooting my phone when I had to get a replacement phone and I discovered that the built-in backup/restore functionality doesn't do much. It'll keep your contacts or something, nothing else, and in fact I can't even get that much to work anymore because it claims my PIN is wrong. I suppose it's possible that I wrote it down wrong, but whatever.|
Anyway, the official word is that to get back everything else (like apps and wallpaper), I'd need to go to the Google Play store and select each and every app to be reinstalled.
This did not sound like fun.
So I trawled the underbelly of the web, and found out that the preferred way seems to be to (1) root your phone and then (2) use Titanium Backup, which actually backs stuff up. (What an idea!)
Everything was fine until my phone got an update, I foolishly accepted it, and it undid my root. $#@$!!!!
I wouldn't have cared, but my phone had been running out of space, and I wanted to make a backup before starting to pitch stuff overboard. Only I couldn't. And I couldn't restore my previous backup, because that requires root access too.
So after more web searching, I found that the trick was to revert back to the previous version, re-root, install "Voodoo OTA Rootkeeper", upgrade, and run the rootkeeper thing. But I'd lose all my data in the process.
I avoided this for a while, because although I had my old backup lying around still, I was a little nervous about whether it would actually work or not. (And I couldn't test it, because I had no root.)
At least my photos and videos were safe. I don't keep anything else truly important on the phone.
Anyway, I did it. (With a long delay before doing the upgrade again, because I didn't trust this magic rootkeeping stuff.) It worked, and didn't even nuke any data. Yay!
Except the rootkeeping part didn't. It said I had a saved root available, and gave a big friendly "Restore Root" button, and pressing it produced a friendly popup saying everything worked.
Only it didn't. No root.
I hooked up to the phone over adb and then looked online to try to figure out where it stashes the root backup. (I already knew it kept a copy of the setuid su binary somewhere that the upgrade wouldn't touch.) Nobody seemed to talk about it, though.
Fortunately, with a little wandering around the filesystem (cd /system; find . -name 'su*'), I found it. I think it was in /system/usr/we-need-root/su-backup. Running that gave me root access. I tried copying it back to /system/xbin/su (which is where I found a dead symlink pointing), but /system is mounted read-only. That turned out to not be a problem, since it was fine with me remounting it read/write (mount -w -o remount /device/path /system).
Anyway, final steps on my Droid X2 were:
1. discover that the last update killed root access. Curse.
2. Downgrade to the previous version with a known flaw allowing root access. I forget how this went; I found it online. You're basically doing a factory restore.
3. Root your phone. Instructions available online.
4. Install OTA Rootkeeper. Run it. Back up your root access.
5. Accept the next upgrade.
6. Online instructions say reinstall OTA Rootkeeper, but like I said, all my apps were still present so I didn't need to do this. Maybe this is why it failed, too?
7. Run OTA Rootkeeper. Push the big friendly "Restore Root" button. If this works for you, then you're done. Yay.
8. Settings/Applications/Developer/enable USB debugging
9. sudo adb start-server
10. adb shell
11. cd /system; find . -name 'su*'
13. mount # to see device of /system
14. mount -w -o remount (device) /system
15. cp usr/we-need-root/su-backup xbin/su
16. mount -r -o remount (device) /system
Now unplug and try running something that needs root access again, like Titanium Backup.
I think I'll make another copy of su somewhere, in case Motorola or somebody goes after OTA Rootkeeper's current location. It kind of sticks out, being setuid, but hopefully blowing away any setuid binary would break other things so they won't do it.
|The evil lurking in our private places
||[Jun. 30th, 2011|01:43 pm]
Does anyone else find those automatic air fresheners in bathrooms creepy? For the longest time, I couldn't figure out what they were. They looked like some sinister monitoring device, and I remember speculating whether it had a camera in it. Then one day it made its R2D2-turned-to-the-dark-side click and puff, and I realized what it was. Which didn't really help the spook factor; now instead of snooping on my private hygiene ritual (ie, pissing), it was trying to poison me? What toxic nerve gas was it producing, anyway? Will the next terrorist attack be anthrax spores sprayed by these fiendish devices in our corporate bathroom stalls?|
Or maybe it's an airborne chemical that induces paranoia...
|Evolution of a solution
||[Jun. 18th, 2011|06:15 pm]
Problem: we just built a flower bed in the front of our house. Unfortunately, the dryer vent goes straight into it, and the plant immediately in front of it says "keep away from drafts and hot air." Hmmm....|
Attempt 1: We crammed another piece of dryer exhaust tubing into the vent to redirect the airflow to the driveway. It worked great, unless we used the dryer. Then it immediately blew off. The vent isn't really big enough for the tubing, so there's really no way to cram it in.
Attempt 2: I put some blue painter's tape on the vent, then duct-taped the dryer hose to the top of the vent. There wasn't really anything to attach the bottom to, and I didn't want to get duct tape gunk on the wall. (That's the reason for the painter's tape, too -- no gunk on the vent.) Result: it took a few minutes before the dryer managed to blow it off. The duct tape stayed nicely stuck to the vent, but it came off of the tube where it didn't really have any smooth surface to hang onto.
Attempt 3: Same thing, but I wrapped an additional layer of duct tape all the way around the tube. It still didn't have much to grab onto, but it was tight so it squeezed it together. Result: it worked great for a few days. Then we had a really hot day, the duct tape got all warm and gummy, and it fell off again.
Attempt 4: Just today, I stapled the f#$@#$ing duct tape to the blue painter's tape. The dryer is going now, so we'll see.
Hopefully, I won't have to make it to the planned
Attempt 5: Sneak out every night and piss on the d#@n plant, hopefully causing it to wither away for "mysterious reasons." (Thank you to my parents for this idea, though I'm not sure they intended it for this purpose.) The plant has survived some pretty extreme abuse in the past, though...
||[Jun. 8th, 2011|11:32 pm]
I've decided to start posting a series of original puzzles on this blog. As in, ones I've made up. The expected length of this "series" is 1, unless I miraculously remember the other puzzle I was thinking of when I came up with this idea. But I won't, because my brain ceased functioning a decade ago.
If you have a grandfather from India, a grandmother from Ireland and a grandfather on the other side also from Ireland, and finally a grandmother from China, you're 1/4 Indian, 1/2 Irish, 1/4 Chinese, and 100% confused.
For the purposes of this question, assume that if you go far enough back you'll end up with all of your ancestors 100% something or other -- there's no such thing as saying that when the great country of Zombihahoo split up, that everyone was suddenly considered 2/3 Zombish, 1/6 Haheesh, and 1/6 nothing at all. Or saying that a woman who isn't sure whether the father is Guido the Italian, Bonzo the Lithuanian, or Hiro the Japanese can declare her child to be 1/6 each.
A child is always 1/2 what the mother was and 1/2 what the father was.
Part 1: Is there any way to be *exactly* 1/3 German?
Part 2: Can you explain why or why not, without using any mathematical symbols or terminology that an 8th grader would be unfamiliar with?
Part 3 (this is the real question): Now say you allow time travel. As in, your son can go back in time and screw your great grandmother, so that your son *is* your great grandfather. Does this change the answer to part 1? Why or why not?
I'll screen all comments and remove the spoilers, but I'll also say whether you got it right. Or at least, if you agreed with my answer. So don't worry about giving anything away.
Update: My apologies, but it seems Livejournal only allows me to accept or reject whole comments; I cannot edit them to remove spoilers as I intended. So I think I'll hold everything in moderation until Wednesday, then display all comments unmodified (and stop moderating comments, in case you want to discuss). For the record, there are currently 9 responses, with 9 wildly varying explanations in part 2. I especially like the one that begins with "That should be easy. I just finished 8th grade and I'm on my summer vacation." For part 3, there's some debate about what time travel can or cannot do, so people are kind of falling on both sides of it depending on their opinions about time travel. My favorite there would have to be "But I don't think time travel works this way."
Update 2: bz pointed out to me that Livejournal forces you to watch an ad before posting a comment. Argh! So, I am now also soliciting suggestions for a new blog hosting service. I could just use github, but I'm not sure how it deals with comments.
||[May. 11th, 2011|11:50 am]
Someone from a previous job just sent me his daughter's resume to forward on to our HR people. I didn't even know he had a daughter, but I always send on some sort of recommendation when I do referrals, so I wrote this:
L... S... is over six feet tall and regularly plays tennis with balls made from spent uranium. On a cold day, she can walk on water, and even after the ice melts she only sinks in a few inches. Although she didn't quite finish her third PhD by the time she left high school, it's really not fair to hold that against her because she skipped three grades. She has successfully used biofeedback training to reduce the amount of carbon dioxide she exhales, and in fact now produces a net decrease in atmospheric CO2 with every breath. And she even took the time to write you a nice cover letter!
Lest you think I'm completely crazy, I followed that up with:
Ok. Truthfully, I've never met her. She's the daughter of someone I worked with at a former company, and he found me on LinkedIn and asked me to forward on her resume. I'd happily vouch for his competence, but I know nothing of hers. I'm pasting in the cover letter and attaching the resume. But I get 587 millikarmas if she gets hired, so just go ahead and do it, ok? No need for any of that time-consuming interviewing and stuff.
|Chitty Chitty Bang Bang 8
||[Apr. 15th, 2011|09:50 am]
Kestrel and Cedrus both love the movie Chitty Chitty Bang Bang, for some reason. And ever since Kestrel saw it for the first time, he refers to the actual movie as "Chitty Chitty Bang Bang 1", and he has been gradually telling me Chitty Chitty Bang Bang 2 through Chitty Chitty Bang Bang 8 (so far). Oh, and a brief Chitty Chitty Bang Bang 0. I think that was about how the original car was built or something.
Or as Kestrel puts it, when he gets in his car and goes to work, he watches the other CCBB movies and then comes home and tells me what he saw. His car drives itself, you see. It still has a steering wheel, but it's inside the car under the hood where you can't reach it.
Anyway, this morning's installment of CCBB #8 was... interesting. I'll give the brief sketch, starting with what came before in CCBB #8 (as best I can remember):
The kids heard a garbage truck outside, so they snuck out while their dad was still asleep and climbed into the garbage truck to see where it goes. There was something about them getting trapped and almost crushed by the garbage compactor, but Chitty Chitty Bang Bang showed up and saved them as usual and they continued on to the garbage dump.
[now starting this morning's installment]
At the dump, the garbage was getting burned up in a huge fire, so the kids took off all their clothes and jumped into the fire. (?!!!!) But Chitty Chitty Bang Bang kept them from getting hot. When the kids started to get hot, they would jump up and down so CCBB would know, and she threw plastic over their heads and sprayed a shower on their bellies and put plastic on their feet. Then they didn't get hot.
After a while, they got out and jumped into another garbage truck that drove to the same fire, and they did the same thing.
Eventually all the garbage was burned up, and they put out the wood that was making the fire. Then they went home in the evening and their dad finally woke up [recurring theme -- I wonder why?] and asked them what they were doing. They told him they were running and jumping through fire with plastic on their heads and he said that sounded like fun and they should do it some more.
Then they went back and made a new fire with the wood and a dragon flew down and spat fire out and made a really big fire. Their dad went back to sleep. They filled a swimming pool up with water and pushed it over to the fire -- or they tried to, but it was too heavy for the kids and Chitty Chitty Bang Bang because she's just a baby. So the dragon pushed it for them and they dumped the water into the fire and the kids danced in the fire and water and put the swimming pool on their heads like a hat.
||[Mar. 22nd, 2011|05:56 pm]
Ever since watching My Neighbor Totoro, Kestrel has been fixated on the idea of making his own movie. When discussing "how do we make colors for the movie?", first he wanted to know if the map in my car would tell how long it would take to add the colors. It took me a while to figure out what our car's nav system had to do with coloring in wireframes, but I had him walk me through what he'd do to make the colors, and in an "isn't it obvious" voice he described looking for a shop with a sign saying it did colors, then look at the map to see where the shop was, and...
I told him we wouldn't go to a shop, we'd do it ourselves with markers or crayons or a computer.
Kestrel: "Computers are the best ones to make colors for the movie. Yeah, because they can do all the work and we can just press buttons."
||[Sep. 4th, 2010|11:10 am]
Just saving for posterity. Made with word magnets at my previous house:|
eat my delirious apparatus of death
moan chant drool
worship my sausage as I cook the girl meat
pound heave pant
crush her sweet petal and light up the finger of true love
ache sweat lick
together my shadow and you are one
|Virtualizing Windows 7
||[Aug. 20th, 2010|04:22 pm]
I'm a little weird. I vastly prefer to run Linux as a desktop. But at work, I'm always needing to do things under Windows (apparently it's important to check things out on the platform that >90% of your users are on, for some reason.) So I'm constantly trying to figure out how to stuff Windows in a teeny little box that I can ignore until I need it. And it never seems to really want to go...
So, here's my fallible from-memory guide to virtualizing a physical Windows 7 machine using VirtualBox:
First, the specific configuration I started with is a dual-boot Windows 7 and (Linux) Fedora 13. This probably caused me some grief, since I was using GRUB as the boot loader. The destination machine is a separate PC running Linux, though if you have enough free disk space it probably wouldn't be hard to make this work within the original machine. (I'll probably take a stab at that next.)
- Delete everything you can, to try to make the virtual image smaller.
- Install the SysInternals Suite. If you're doing this in the first place, then you're probably enough like me that you really ought to install the whole thing instead of picking and choosing pieces; there's a ton of good stuff in there.
- Install the samba server on your destination machine. (Not strictly necessary if you have enough disk space on the source machine, because you could just copy the VM over as a separate step.)
- Configure Samba. Curse. Try again. Remember the firewall. Remember SELinux.
- Run disk2vhd. Tell it to drop the resulting file onto your Samba share.
- Install VirtualBox on your source machine. If you haven't used any VMs before, create ~/.VirtualBox/HardDisks yourself.
- Move the VHD image created by disk2vhd into ~/.VirtualBox/HardDisks
- Within the vbox UI, create a Windows 7 VM (in my case, make sure it's 64-bit). Use the VHD from above for the disk. I gave mine 2 processors, and surprisingly it seems ok with that. Enable PAE/NX extensions on the processor. (This makes no sense under 64-bit, but someone on the web said it fixes some problems with not being able to boot, and I haven't gone back and turned it off to see if it matters now that I have everything working.)
- Try to boot it up. If you're not me, it works perfectly and you're all done. (Windows 7 deals amazingly well with having all of its hardware swapped out from underneath it. XP was a nightmare.)
- If you're me, you'll be faced with a black screen with a blinking cursor in the upper left.
- Download the Windows 7 Restore Disk that Microsoft doesn't really want you to have because you have an OEM-installed Windows 7.
- Attach the restore disk ISO to your VM's CD drive. Reboot.
- When the recovery disk boots up, choose the command line option. (You can try letting it automatically recover, but that just gave up in my case.)
bootrec /FixMbr to unmangle your boot sector. Or remangle it to a Windows 7-happy version. I guess it was GRUB that was pissed off and giving me that black screen with a blinking cursor? Stupid maggot.
- Reboot, detaching the ISO first.
That worked for me. I also downloaded the free VMWare Converter tool and made a VMDK with it, but I got the disk2vhd version working just before I tried to boot into the VMDK. It may do everything automagically, for all I know; it certainly appears to be much more clever about how it does things. (It automagically updates the VM image to adjust for the change in hardware, for one.)
Now, before booting your VM, be sure to shut down your original Windows 7 installation. Otherwise, I think you'll probably be violating your licensing terms. (Not that I've actually read through it to know what the exact rules are.) Assuming, that is, that you care. I'm not going to admit in a public forum that I don't, but I should be good anyway -- the instant I got this working, I happily rebooted my laptop into Linux. Now I have Linux on my laptop, Linux on my desktop, and Windows 7 ineffectively screaming its lungs out inside a claustrophobic little Virtual Box that Innotek made for me.
It boots a lot slower, though. I'm going to have to time some compiles to see just how bad it is.
|Silly little questions
||[May. 30th, 2010|12:33 am]
E=mc^2, right? So mass is energy. But these days, they seem to be saying that mass is very quantized -- like, you can't buy half a quark at the supermarket without getting arrested for shoplifting or sampling the merchandise or whatever.
But mass is not just energy, it's lots and lots and lots of energy. But if I take the energy that I use to just barely twitch my left ring finger and convert it into mass, it's really really not much mass at all. But just intuitively thinking about it, should mass and energy quanta line up somehow?
I suppose I ought to do some math to check out whether they already line up or something.