2001 Toyota Camry bumper cover support

Although I am not a gear head I took on the job of replacing my 2001 Toyota Camry’s front bumper myself. This involved navigating a maze of little plastic parts, the most confounding of which was the “bumper cover support”. This part sort of plugs in to the either side of the car, providing a resting place for the top of the bumper.

I knew what this part looked like in real life, but I didn’t know what it was called. I kept researching online, always ending up with this ridiculous cartoon drawing:

camry bumper cover support cartoon

The problem is that the part looks nothing like the drawing. Here is what the actual part looks like:

camry bumper cover support top

camry bumper cover support outer rotate

camry bumper cover support inner

I eventually took a chance and ordered the part because I thought it had to be the one. For anyone else messing around with old Camries, hopefully this helps to decode the images you see for this part. Enjoy your kanmuri!

Dell factory restore when F8 does not work

UPDATE: after all this work, I started up the laptop only to find that the restore had somehow retained data from the previous install. Need more investigation to figure this one out…

Performing a factory reset on a Dell Inspiron 15R N5110 wound being a ridiculously complex task. I found many people online having problems with the factory restore function; fortunately I was able to put together a recipe for success after reading through a mountain of blogs and forums.

Some people recommended ditching the factory restore and installing from scratch. This was not an option for me because 1) Dell did not include the installation media with my purchase, and 2) even if they did I would need to apply the drivers myself; that gets awkward if I’m trying to sell this laptop as a blank slate.

F8 actually does work

Dell’s official instructions are a bit unclear about the timing of the F8 key taps:

Turn on the computer, after the Dell logo press F8 key repeatedly until the Advanced Boot Options menu (Advanced Startup Options).

You need to press F8 after the Dell logo disappears from the screen but before the Windows logo appears. If I hit F8 any time while the Dell logo was up, I would not get the Advanced Startup Options. [Source]

Wherefore art thou, Dell DataSafe Restore?

Continuing to follow Dell’s instructions, you are eventually supposed to select a Dell DataSafe Restore and Emergency Backup option. This option was missing for me.

The major things I had done to this computer were to upgrade to Windows 7 Ultimate and to enable Bitlocker. The Dell recovery disk partition was still present and untouched, but maybe one of those things caused the option to disappear. So I was then left to discover how to apply the recovery partition data myself.

If you want a job done right…

The steps to successfully apply the recovery yourself are mostly described here: Inside the Dell PC Restore Partition. Here is my own recipe:

  1. Install the Windows Automated Installation Kit (AIK). This will give you the imagex.exe utility you’ll need to apply the factory image.
  2. Use F8 to boot into Repair Your Computer mode and open a Command Prompt
  3. I found myself in an X: ramdisk. For convenience, I copied imagex.exe into this ramdisk. Needed help from the internet to realize that I should use the amd64 version despite running an Intel processor and not an AMD. Command: copy "d:\Program Files\Windows AIK\Tools\amd64\imagex.exe" . (dot at the end is intentional)
  4. More help from the internet to aggregate Dell’s factory images into one as part of the restore. Command: imagex.exe /ref c:\dell\image\factory*.wim /apply c:\dell\image\factory.wim 1 d:\
  5. The restore takes about 15 minutes, after you which you can reboot into the factory fresh install.

In the end, this is a nice reminder of why I have ditched Windows PCs. Very rare that I have to burn a Sunday evening mucking around with some obscure software issue on my MBP. Apple certainly has its problems, but only Windows vendors can set the frustration bar this high.

2014: Another round of busts

Not much has changed since 2013. Looks like I’ll finish the 2014 season 5-9 after starting with another weak draft:

Round 1, #7: WR Calvin Johnson. Thought this was a no-brainer, but injuries left me without his services during the meat of the season. He really only had 5 weeks when he produced like a WR1. I guess I can’t predict injuries, but I did think a WR was a safer pick than an RB. No QBs had been picked yet, so going with Aaron Rodgers or Peyton Manning would have been much better in hindsight. Getting really tired of burning my first pick each year.

Round 2, #26: QB Matt Ryan. I reached a bit here because quarterbacks were going fast and Ryan had a lot of buzz as an elite pick this season. He hasn’t been bad, but certainly not elite. Would have been a different season if I had gone {Aaron Rodgers, Julio Jones} with my first two picks.

Round 3, #39: RB Andre Ellington. Despite his injury last week, I still like this pick. Ellington has been on the cusp of a top 10 RB all season, which I think is great value for a 3rd round RB in a 16-team league.

Round 4, #58: WR Victor Cruz. Ugh, not that he was producing much prior to his season-ending injury, but I think there was potential for him to be a top 15 WR. As it was, injury erased my second WR, just like my first.

Round 5, #71: RB Bishop Sankey. This guy ended up way below the preseason expectations. Under 500 yards and only 2 touchdowns is not going to cut it for an RB2.

Round 6, #90: RB Lamar Miller. This wound up being a great speculative pick. An injury to Knowshown Moreno opened the door for Miller to hover just outside top 10 RB status. Definitely can’t complain about this one.

Round 7, #103: TE Jordan Reed. We don’t have to start a TE in our league, but as a UF fan I know that Reed can produce in the passing game. Injuries to Reed and miserable performances by RG3 made this a wasted pick.

Round 8, #122: RB Carlos Hyde. This was reasonable speculation, but Frank Gore stayed healthy and no timeshare ever emerged.

Round 9, #135: WR Rueben Randle. This was the wrong Giants WR2. Never stepping up after Cruz went down, and missing out on Odell Beckham Jr, I kept expecting something out of Randle and never got it.

Round 10, #154: WR Brandin Cooks. This was a nice pick late in the draft. Cooks helped cover the injuries to my other receivers… until he himself was injured.

Round 11, #167: WR Jordan Matthews. Matthews would have been a great find, if I had held onto him. At the beginning of the season I had good WR depth and it looked like Matthews wasn’t going to be too involved as a rookie. Now he’s a top 20 WR – something my battered squad could have definitely used.

In terms of free agents, I was able to get some value out of RB Ben Tate and WR Martavis Bryant, but not enough to overcome the lack of studs. I ended up around the middle of the pack in terms of fantasy point production, but second highest in points against, which certainly didn’t help. Injury or not, I think grabbing Calvin Johnson was a mis-pick. Given that situation again, I think a guaranteed stud QB would have been better.

Apple backstabs customers with MacBook Pro 2011 GPU flaw

UPDATE: Apple has finally responded to this problem with a repair program. I was able to work with Apple to refund the $350 I paid to have my MBP fixed.

Apple really does not want to admit that its entire batch of Late 2011 MacBook Pros are lemons. In addition to the change.org petition, there is now a class-action suit which has been making the media rounds:

A massive thread in the Apple forums contains a huge gathering of unhappy customers. Here is one illustrating Apple’s stonewalling:

Called Apple Care today for the first time, and they’ve never heard of this problem. This is not a known issue. I pointed them to this forum and to the recent Time magazine article about the issue, nope, they’ve never heard of it. Even reached the head VIP tech support supervisor dude. Nope, never heard of any problems with the Macbook Pro 2011. So the answer to all your questions is “we’re all dreaming”.

Obviously Apple has done the calculations and decided that their best interests are served by settling a lawsuit (which I assume will be the eventual outcome) rather than admitting that hundreds of thousands (millions?) of their “pro” laptops have a hard expiration date.

There is no simple fix for the problem. What if we’re talking about one million laptops at $2,000 apiece – are they going to refund $2 billion dollars on machines that are out of warranty? No, they will stall, delay, and let the lawsuit play out. So years from now there will be something in the news about Apple settling some lawsuit on machines made way back in 2011, and that negative PR and settlement will be much less impactful than if they were to own up to the problem here in 2014.

Apple is one of those companies that you want to love, that you want to believe is not evil. But when put in a tight spot, the corporation has no qualms about snatching your wallet with one hand, and burying a knife in your back with the other.

Hearthstone Arachnid Debrief (crawling with spoilers!)

This review was originally intended for the IHEARTHU.com website. After making some suggested refinements and being assured that the article would be published, I watched the days tick by until the release of the second Naxxramas wing made this review old news. Disappointed to not see it published, I can at least post it here in my blog for consumption by the Intertron.

Manflesh: It's what's for dinner

Does anything ever live up to the hype? Well, now that I think about it, I suppose the Lord of the Rings trilogy accomplished that feat.

Spoiler alert: Peter Jackson and an army of 10,000 CGI Uruk-hai do not await you in the Arachnid Quarter.

I will start positively by saying that this first wing of Naxxramas, like the rest of Hearthstone, has a gorgeous media presentation. [please pause here and wait 10 seconds before reading the next sentence]. I love the new board, the new sound effects, the voice acting, the card art – all of that lives up to the Blizzard standard. [again, please stop reading and stare into space for 10 seconds before moving to the next sentence]. The new cards look like a lot of fun and I think there is great potential to disrupt the current Ranked meta. [one one-thousand, two one-thousand, three one-thousand…]

Oh, and there was some lag.

Solo Adventures

While the influx of new cards was sorely needed, my excitement about Hearthstone’s first “solo adventure” stemmed from the new single player mode. Blizzard had stoked my appetite for months with previews and teaser content, leaving me ravenous to dig into the first of the Naxxramas wings. Wings in mind, I carried a plate of them dripping with teriyaki and honey mustard to my desk on the evening of the release. And with my left hand covered in dipping sauce, and my pristine right hand firmly on my trackball, I began to feed.

Normal Mode

In Normal mode you can use any deck to defeat the three enemy heroes offered up in the Arachnid Quarter. This mode shines not because of the gameplay, but because you are transfixed by the sheen of newly minted content. I was so busy clicking around the new board, listening to the enemy emotes, and analyzing the new cards that I blew through Normal mode without much thought to the actual duel. Given how Hearthstone tries to be accessible to everyone, I suppose it makes sense for these enemies to be pushovers. Most Rank 20 decks should plow through the Normal opponents with little difficulty. For the hardcore player, I would recommend turning off your competitive drive and just soaking in the new material.

Class Challenge Mode

The Class Challenge mode was what I had anticipated the most. Here was where I hoped to be solving an innovative series Hearthstone puzzles. Instead I was assigned a hero with a pretty solid pre-built deck, and given the task of dominating a lackluster AI enemy. Clearly these pre-built decks had been designed to give you big combos, but you won’t need them against these sorry opponents.

This was disappointing because a challenge mode has such great potential. For example, the pre-built deck concept could have been made more interesting by giving you incrementally weaker decks. Maybe after the first win, Kel’Thuzad pops up and replaces your Stampeding Kodos with Haunted Creepers. “Can you still win after you’ve been NERFED, mortal?

A checkmate-in-X-moves mode would also have made an interesting challenge. You’re given a starting board scenario, certain cards in your hand, certain draws over the next few turns, and told you have to kill the enemy hero in X turns. But as it was, this mode is rather vanilla and not really much of a “challenge”.

Heroic Mode

Heroic Bosses are extremely difficult

After reading the dire warnings about high degrees of difficulty, I steeled myself for what I assumed would be the Herculean trial of Heroic mode. And here I made a mistake. I analyzed the enemy’s OP hero power, and then quickly matched up the netdeck that would nullify that power. You can summon 4/4’s for 2 mana? Handlock beat Anub’Rekhan on the first try. You can punish me for having cards in my hand? Zoolock rushed the Grand Widow Faerlina down in two tries. You can Sap two minions for free every turn? I ran out of dust when trying to craft the Freeze Mage that would have undoubtedly owned Maexxna. And that was when I realized my mistake:

Netdecking these Heroics just isn’t much fun.

I had a great time customizing a Paladin deck to beat Maexxna, though it only took me two tries. For replay value maybe I’ll go back and make custom decks for the first two enemies as well. If you are a more serious Hearthstone player who wants to enjoy Heroic, I strongly advise shelving the netdecks.

Aside from netdecks being able to crush these Heroics, I was also disappointed in the AI. Maexxna blindly used its hero power every turn, sending my Novice Engineer back to my hand for infinite card draw. Artificial Intelligence is a difficult computing problem, but it speaks to a very weak implementation that can’t figure out that killing the Novice Engineer is better value than returning it to my hand.

Defeating all three Heroics ends unceremoniously with… nothing. You need to do some research to learn that after you defeat all Heroics over the entire course of Naxxramas, then you will receive a card back. That dubious reward plus 150 gold will buy you an Arena run.

Your reward: Jar Jar Binks

Despite my gripes, I enjoyed Heathstone’s new adventure and will certainly have no qualms about spending imaginary gold on the other wings. In terms of meeting the hype, think more along the lines of the Star Wars prequels rather than LOTR. The presentation is great, it’s a fun time, and as an added benefit you don’t have to contend with midi-chlorians or Jar Jar Binks.

How to fill your roster with draft busts

As the 2013 fantasy football season draws to a close, I am struggling to reconcile the amount of pre-draft research I did with how terrible my draft turned out to be. I began the season feeling like I had a great draft, happy with the value I was getting at nearly every position. But now at the close of Week 13, I’m 6-7 and lucky to be there given my draft.

KEEPER: RB Trent Richardson. It was between him and TE Jimmy Graham. As you’ll see I wound up getting Graham anyway, but spending my keeper on Richardson was a huge loss. With a 2012 season that included over 1300 yards and 12 touchdowns, how could I not keep him? All the experts had him in RB1 territory… seemed like a no-brainer. Maybe the lesson I can take from this is to consider an RB’s yards per carry – Richardson was at 3.6 YPC in 2012 which could maybe be a warning flag.

ROUND 2, #30: RB Steven Ridley. Here I thought I was building my team around two strong running backs. In terms of RBs, I passed over Eddie Lacy, Chris Johnson, and DeMarco Murray – all of whom turned out substantially better than Ridley. He now rides the bench due to fumbling issues, meaning that the 23rd-ranked RB’s value will fall even farther. I did have a doubt in the back of my mind about choosing a Patriots’ running back, but I deferred to expert consensus. He had 4 fumbles last year which is on the high side I guess – perhaps that is a stat I should consider going forward.

ROUND 3, #35: TE Jimmy Graham. My only high draft pick that turned out the way he was supposed to. Was really happy grabbing him in the third round of a 16-team draft.

ROUND 4, #62: WR Dwayne Bowe. That’s right, my WR1 turned out to be the league’s 43rd best receiver. Guys I passed over like Anquan Boldin, Antonio Brown, Jordy Nelson, and DeSean Jackson all have marked improvements on their 2012 stats, but Bowe will be lucky to match his modest production from last year. Maybe there was the expectation that Andy Reid would open up the Chiefs’ offense, allowing Bowe to time warp to 2010 when he went for over 1000 yards and 15 touchdowns. The better play here would have been to lock up QB Russell Wilson, realizing that I’d already lost my chance to get a pre-season WR1.

ROUND 5, #67: QB Eli Manning. Quarterbacks get snapped up quickly in this league, so I tend to punt a bit and go after reliable options with top 10 upside – like Manning should have been. What I got was the league’s 21st-ranked QB who is on pace to have his worst TD:INT ratio since his rookie season. So my punting strategy turned out to be a double-fail: I didn’t get value in the early rounds, and “reliable-with-upside” QB turned out to be “bye-week-fill-in-at-best”.

ROUND 6, #94: RB Ben Tate. Tate would have been a decent pick if he continues his current production and if I’d had the roster space to retain him.

ROUND 7, #99: WR Chris Givens. Worthless option, despite having had some pre-season promotion. Pickings were slim here, but guys like Alshon Jeffery and Michael Floyd were still available. I just didn’t hit the late round WR lotto.

Despite these disasters, I have a shot to finish .500 this year. I did grab WR Josh Gordon in Round 8 (who I traded away a few weeks ago for Russell Wilson), and RB Pierre Thomas in Round 10 who has outperformed my top two RB selections. Free agent WR Keenan Allen has helped out, as has RB Andre Brown who I grabbed prior to his return from injury.

Obviously I’d like to avoid a draft like this in the future, but I don’t think I made any significant blunders given the information that was available at the time. In the end I guess it’s just hard to strategize against bad luck.

Cedar Point Halloweekends vs Universal Studios Halloween Horror Nights

These days my corporeal form exists closer to Sandusky, Ohio than to Orlando, Florida – meaning that Cedar Point’s Halloweekends is a more drivable distance than Universal Studio’s Halloween Horror Nights. Being a loyal HHN fan I was skeptical of Halloweekends, but this post gave me cause to give it a try.

I will bottom-line this as a Halloween connoisseur: Halloweekends at Cedar Point is a C+ compared to Halloween Horror Nights’ A+.

If you want the socks blasted off your feet by the ultimate Halloween experience, then HHN is where you must go. But if you’d rather have some decent Halloween flavor to complement an array of premium roller coasters, then Cedar Point should be your destination. Let me try to summarize in digestible Internet morsels:

Scare Zones: Cedar Point clearly put effort into their scare zones, but lacked the artistry you see at HHN. In Orlando a scare zone has a distinct, mesmerizing atmospheric presence, whereas Halloweekends feels more like a collection of fog machines, people in masks shouting at you, and green lights in your eyes. I will say that I liked Cedar Point’s concept of “extended” outdoor scare zones: lengthy paths that followed the theme of the zone.

Haunted Houses: you know when a local community group – a high school organization, a church, etc – puts together a surprisingly good haunted house? That’s about the level of a Cedar Point haunted house. Meanwhile an HHN haunted house is, well, a masterpiece. Design, props, effects, dialog, costumes, and “scare factor” are all at the highest level in Universal Studios.

Beer: this is a minor point, but HHN is not shy about selling you a beer. Vendors are everywhere, even in haunted house lines, to grant you a little buzz to accompany your experience. Cedar Point, being more family/youth-friendly, keeps alcohol consumption mostly out of sight.

Crowds: Cedar Point wins here, though peak times at both parks will see you standing in long lines. With HHN you really want to go on an off-night to make sure you have time to get to everything, whereas with Cedar Point you could probably go through all the Halloween content even on a Saturday night.

All things considered, Cedar Point’s Halloweekends is a solid, enjoyable experience. They had lots of Halloween content for children that would be ideal for families – something that HHN doesn’t really offer. My point is that you simply cannot put Halloweekends in the same category as Halloween Horror Nights. HHN is its own category – an elite tier that I suspect it shares with no one else.

And no, I’m not being paid by Universal Studios for writing this blog post, but I would not refuse an all-expenses paid trip to Orlando hint hint.

MacAuthority customer service fail

One month ago I purchased a new 15″ MacBook Pro from MacAuthority. I then promptly dropped about $300 at crucial.com to bump my RAM to 8GB, and (more importantly) upgrade to an SSD. And yesterday I find out that the new MacBook Pro with Retina display is released.

If I had waited one month, then I could have spent the same amount of money to have a MacBook Pro with a better CPU, 512MB more VRAM, and the Retina display.

So I talk to the MacAuthority guys who tell me that Apple is my best bet for recourse. Apple tells me that maybe they would have made an exception for me, but since I didn’t purchase the MacBook through Apple, they won’t consider the possibility. I go back to MacAuthority and relay this information, my main argument being: if Apple is willing to work with me in situations like this while you are not, why would I ever purchase from you again?

I managed to go up the MacAuthority management chain a little bit and they made me the following offer: Nothing.

I understand from a business perspective of course. If MacAuthority accommodates me in some way, then they are left potentially needing to accommodate everyone they sold a Mac to in the past X months. The trick with getting your way in customer service is to explain that you are an exception and should be treated differently. MacAuthority decided not to treat me as an exception, which is certainly reasonable. The only downside for them is that I know a lot of programmers/techies who are Apple fans. I will do what I can to make sure that they never shop at MacAuthority.

If you are considering a purchase from MacAuthority, do NOT buy from them – this is coming from a person with many years of education and experience in IT. Never purchase anything from MacAuthority. Ever.

How to check RAID status on an Intel board

I don’t want to dwell on how many hours I just wasted trying to get the status of an embedded RAID controller on an Intel S3420GP board running openSUSE 11.3. The solution is to avoid the dizzying array of software that Intel offers on their website, and instead use dmraid.

My understanding of this is a little shaky, but first you need to know where the controller is mapped. After some poking around the system, I came across this:

# ls -1 /dev/mapper

I know my array has three partitions so it seemed intuitive that the device was named ddf1_MegaSR___R1__0. I was then able to get the status with:

# dmraid -s ddf1_MegaSR___R1__0
*** Group superset .ddf1_disks
--> Active Subset
name   : ddf1_MegaSR___R1__0
size   : 623046656
stride : 128
type   : mirror
status : ok
subsets: 0
devs   : 2
spares : 0

Unbelievably simple after I had waded through failed attempts at using Intel’s RAID Web Console 2, Intel’s Extensible Firmware Interface (EFI), Intel’s Damn? Platform Control Command Line Interface (DPCCLI), Intel’s Active System Console (IASC), and who knows what else.

Linux had the answer the entire time in a scriptable format. I’d feel bad for all that time I spent, except I’m too excited about finally being able to add this controller to the cronjob that tells me how my RAID arrays are doing every morning.

How to combine/concatenate mp4 videos

In a project similar to the Blender Defender, I am using a Linksys WVC54GCA webcam to monitor my devious cats. The camera has built-in motion detection, and can automatically FTP video files of detected motion to a location of your choice. Unfortunately, the area I’m monitoring has a good deal of exposure to outside lighting, meaning that each day I get hundreds of little videos as light plays across the room.

While messing with the motion sensitivity settings is next on my list, my immediate reaction was to figure out a way to combine the videos. The WVC54GCA lets you use a few different formats, but I chose mp4 since that seemed like the most open format. Some Google searching told me that I needed to use ffmpeg to convert the mp4s to mpg format which is supposedly “concatenatable”.

So first I converted all my mp4s to mpgs (assuming they are stored in a directory called movie_dir):

find movie_dir -name "*.mp4" -exec ffmpeg -i {} -sameq {}.mpg \;

Many posts I found then said that all one needed to do was just cat the mpg files together and you’d end up with one long mpg. That sounded great, but in practice it produced an mpg that caused both QuickTime and VLC to either choke, skip past chunks of video, or otherwise be weird. Going back to the Internet, I found that the solution was to use ffmpeg again to produce a single video:

cat movie_dir/*.mpg | ffmpeg -f mpeg -i - -vcodec copy -acodec copy big_movie.mpg

And this I can enjoy 30 boring minutes of watching the light level change, waiting for that one moment when the cats try to sneak up on the couch. Now I know how a security guard feels.