Keyboard Shortcut to Reopen Closed Tabs in Firefox

Tue 11 Mar

2008

I accidentally discovered a useful keyboard shortcut in Firefox today. I was trying to open a new tab by pressing Ctrl-T, but instead I hit Ctrl-Shift-T. Instead of opening a new blank tab, Ctrl-Shift-T (Command-Shift-T for Mac users) opens your last closed tab. If you keep pressing this key combination, it will step backwards through your closed tab history and reopen your tabs one-by-one.

Of course, you could always use the 'Recently Closed Tabs' menu item by going to History->Recently Closed Tabs, but if you're like me, you'd rather use a shortcut than click through the menus.

Filed Under: Web, Firefox | Leave a Comment 

My TiVo is Dead. Why Isn’t Apple TV a DVR?

Sat 08 Mar

2008

Well, I just got done doing the last bit of troubleshooting I can do on my ancient 40-hour TiVo. It's been a reliable unit for the past 3 years or so, but I came home the other night to find it stuck on the "Powering On..." screen.

I checked various online forums and came up with a few things to try, so I cracked open the case and started going through the steps one-by-one: First, I checked that all the connections were solid... nothing was loose. Next, I replaced the IDE cable... no luck. Then, I took the hard-drive out and connected it to my laptop via an external USB drive bay.... powered up and reported all its partitions fine.

The problem could be that all the partitions are intact but the operating system is corrupt, I suppose. The OS X Disk Utility told me that it couldn't read from the drive. I'm not sure if it's because the data is corrupt or it has a different file system. I'm guessing the latter, but I don't know of any way to tell for sure. The only other possible cuprits are parts that I don't have access to replace myself, like the power supply and motherboard.

At this point, I see myself having a few options:

  1. Replace the hard-drive and hope for the best. I found a few places online that sell drives you can pop right in and you're good to go (assuming that the hard drive is the point of failure, which I'm still not sure of). But, the preloaded drives are almost as expensive as replacing the whole unit, so I don't really see that as much of an option.
  2. Buy a new TiVo. I could replace my current unit with one of the same model for a little over $100, but I've been wanting to increase the capacity for a while, so I'd be back in that boat all over again. I could also spring for one of the new upgraded units, but these cost more than I want to spend for a fancy VCR.
  3. Try to convince Apple to make the Apple TV do what it should have been able to do from the start - act as a DVR! I know this isn't really an option, but I've always wondered (now more than ever) why Apple ignored this feature set in a product that seems so well positioned to provide it. There are some technical issues with the current encarnation of Apple TV that would need to be addressed, such as adding a coaxial input and a way to encode/decode the video, but these don't seem like insurmountable tasks. What Apple would end up with would be a unit that provides a lot more value to the consumer, not just another way buy stuff from the iTunes store. I would never buy an Apple TV in its current form, but I probably would if it was a DVR as well! And you know it would have a beautiful interface and be a breeze to use because it's an Apple product!

So, here's to hoping that Apple realizes what Apple TV could be. I'm sure I'll break down and do something before Apple does, but until then, it's back to watching live TV and sitting through commercials for me.

Filed Under: Technology, Apple | 1 Comment 

IE8 Will “break” Poorly Coded Websites… It’s About Time!

Tue 04 Mar

2008

Up until this point, whenever I heard someone from Microsoft start talking about standards, I couldn't help but laugh while thinking of how badly IE has butchered them in the past. Standards compliance was somewhat improved with IE7, but it sounds like Microsoft has finally agreed to step up to the plate and make IE8's standards mode actually standards-compliant.

MS has fought standards-compliance as the rest of the world knows it for several iterations of IE, knowing that it would break a lot of old sites that were specifically targeted towards IE's faults. With IE8 they will admitedly break sites that do not specifically request a special http header/meta tag to trigger IE7 standards mode. It will be quite interesting to see how many sites this affects. I'm guessing a VERY large number.

Since some (but certainly not all) of the rendering differences between IE and standards-compliant browsers have been due to a certain degree of ambiguity in the W3C documentation, Microsoft's definition of "the most standards compliant way possible" may be far different than that of Firefox or Safari. It would be nice if they just used Firefox and Safari's interpretation of the W3C standards, but I'm sure that Microsoft will come up with their own creative way of interpreting them.

So kids, this is why you code to standards and make IE the exception, not the rule. For those who ignored the standards evangelists, let the fun begin...

“View Source” for Your iPhone

Mon 03 Mar

2008

After expressing my aggravation with not being able to view the source for an iPhone project I've been working on, a co-worker quickly found a cool little bookmarklet that allows you to "View Source" on the iPhone itself.

Of course, you can also get the User Agent Switcher for Firefox and enter the appropriate parameters to fake an iPhone, but in my case, for some reason I thought it was something specific to Safari. Turns out it was not, but nevertheless, the bookmarklet is still very cool for tracking down potential Safari-specific issues!

What Happened to the “My Account” Link on my iGoogle Page?

Mon 11 Feb

2008

A few days ago, I noticed the the "My Account" link was missing from the top of my iGoogle page. This is how I (and I'm guessing most other people) get to all my Google services. Why would they take it away?!?

I mentioned this to a co-worker and he figured out that it shows up when you go to the Classic view, but why are they punishing iGoogle users? Hopefully they'll put it back soon. I'm getting tired of switching back and forth between my iGoogle page and Classic view. :(

Filed Under: Web, Google | 4 Comments 

Working Around IUI Click Interception to Allow for Native iPhone Functionality

Sat 09 Feb

2008

For those of you who haven't checked it out yet, the IUI is a great library created by Joe Hewitt (the same guy who brought us Firebug) for creating iPhone-like web applications. Overall, I love how easy it is to create screens, transition between screens, submit forms via AJAX and much more. However, while working on my first iPhone-targeted web project, I came across an issue.

There a few special hrefs that can be used to launch iPhone functionality such as the Google Maps application (using an href that begins with "http://maps.google.com") or prompting the user with a dialog box that allows them to dial the linked phone number (using an href that begins with "tel:"). Since the IUI intercepts the click event on links and prevents their default behavior, it ends up overriding this functionality.

While I was searching the web for a workaround, I found a few sites that said that the IUI code had to be modified in order to make these special hrefs work, but they didn't say exactly how. So, here's my solution:

For all links that launch iPhone functionality that you don't want the IUI to override, assign them a type of "iphone" like this:

<a href="tel:9043430030" type="iphone">Click to dial the number</a>

Then modify iui.js. I'm showing the whole block of code, so you can see the changes in context, but the only changes necessary are to lines 174 and 175. I'm using version 0.13 in the example below, so your line numbers may be different depending on the IUI version.

  1. addEventListener("click", function(event)
  2. {
  3. var link = findParent(event.target, "a");
  4. if (link)
  5. {
  6. function unselect() { link.removeAttribute("selected"); }
  7.  
  8. if (link.href && link.hash && link.hash != "#")
  9. {
  10. link.setAttribute("selected", "true");
  11. iui.showPage($(link.hash.substr(1)));
  12. setTimeout(unselect, 500);
  13. }
  14. else if (link == $("backButton"))
  15. history.back();
  16. else if (link.getAttribute("type") == "submit")
  17. submitForm(findParent(link, "form"));
  18. else if (link.getAttribute("type") == "cancel")
  19. cancelDialog(findParent(link, "form"));
  20. else if (link.getAttribute("type") == "iphone")
  21. return;
  22. else if (link.target == "_replace")
  23. {
  24. link.setAttribute("selected", "progress");
  25. iui.showPageByHref(link.href, null, null, link, unselect);
  26. }
  27. else if (!link.target)
  28. {
  29. link.setAttribute("selected", "progress");
  30. iui.showPageByHref(link.href, null, null, null, unselect);
  31. }
  32. else
  33. return;
  34.  
  35. event.preventDefault();
  36. }
  37. }, true);

New Theme!

Tue 05 Feb

2008

Well, if you're a frequent (or even infrequent) visitor to my blog, you'll notice that I've changed up the theme quite a bit. I was never really completely happy with the old one, and did quite a bit of searching to find one I liked better, but could never find one that really jumped out at me. So, after much procrastination, I finally decided to buckle down and create a theme of my own. I'm much more happy with this one - it's cleaner, more readable, and not as cluttered as the old one.

Hopefully, I'll have the time (and motivation) to work on it more over the next few weeks. There are still a few things that I want to do with it before I call it done. I'm planning on adding an "About" page, fine tuning the code to ensure W3C standards compliance, and possibly making the panoramic image above into a slideshow.

I've tested the new theme in FF 2/Mac, Safari 3/Mac, and IE6/Win, and there were no glaring issues. I'll be testing in IE7 tomorrow, but I don't anticipate any major issues. If you happen so see anything crazy going on, please let me know by leaving a comment on this post.

Thanks!

7 Simple Steps to Conserve iPhone Battery Power

Fri 25 Jan

2008

I learned the hard way that the iPhone's battery won't last long if you are careless with your settings. Use these steps to maximize the time between charges.

  1. Setup a Gmail account as a proxy for your other mail accounts so your phone will only have to check one place for all your mail.
  2. Set the Mail application to check for mail less often. Do you really need to check your email every 15 minutes?
  3. Turn off "Ask to join networks" in your WiFi settings.
  4. Set the brightness to a lower level or turn on Auto-Brightness.
  5. Turn off Bluetooth when not in use.
  6. Set a short auto-lock time.
  7. Turn off keyboard sounds.
  8. Bonus step - Stop watching so much YouTube! :)