Categories
Hardware Tech (General)

CES And Reality

CES is always a mixed bag for me. As someone who loves gadgets, CES coverage is addictive (my coworkers at CNET do a great job covering it every year feeding my addiction, however the opinions expressed in this post are solely my own). A select few things fascinate me, a few more interest me. The rest really leaves me wanting more. From my perspective it breaks down like this:

  • 25% – Things that will never come to market – These are ideas that are either just totally impractical for technical or commercial reasons, or just products that are so poor the company comes to their senses early. I don’t mind when products are impractical to bring to market, at least at the current time. CES is a gadget geek’s auto show. Concept cars are awesome. So are concept gadgets. I like love seeing prototypes. Things that just are so poorly received they never materialize… well obviously boring.
  • 50% – Mundane – “OOh, you made a TV 0.5 mm thinner. Clearly the CEO of this company is the next Steve Jobs. A visionary that will change the world. Lets all throw out our TV’s and buy this.” I always wonder what Steve Jobs thought when he read about what was announced and demoed at CES. Lots of what gets fanfare is of the level that Apple releases silently releases with nothing more than taking the Apple Store down for maintenance and a small press release. It’s not just TV’s, phones do the same thing. Being a smartphone in 2012 is just status quo.
  • 10% – Things I’d like to try – I’d be unlikely to justify the purchase, but I wouldn’t mind playing with things in this elite category. They include the MakerBot Replicator, I’mwatch, Fujifilm X-Pro 1, Netgear Range Extender. I’d never be able to justify a MakerBot, but I’d like to play with one. I suspect I may hate the I’mwatch, but it seems like it would at least be fun to try. Teathering is a major turnoff however. The X-Pro 1 seems quite expensive for what it is, but I love this high end non-SLR level we’re seeing now. I don’t have a real (read: $90) need for it, but Netgear’s range extender sounds like a good product for those areas where WiFi signals are a little degraded.
  • 14% – Me too’s – This year’s “me too” category is the ultra portable laptop. The MacBook Air clones. Unfashionably late, and offering little imagination. Next.
  • 1% – Could eventually change the world – I love this elite category. Ion Proton Sequencer is one of these. This particular model may go nowhere, but it’s a great example of where this stuff is headed. It will eventually change and save lives. Read up on it if you haven’t. Amazing. The other device is the Raspberry Pi (they have no booth). I’ve been following it since they announced it. I’ll order a few as soon as I’m able. Being able to make a full computer that small and affordable will change the world. For $25, I can put a computer I can write real software for in a situation where it may not survive or was previously not practical. It’s a giant step forward for computers everywhere. One way or another this will change things. This could change Linux usage.

So that’s my breakdown and what interests me personally so far. I’d be curious what others think of CES announcements this year.

Categories
Apple

5 Years Of iPhone

iPhone Announcement

Yesterday was 5 years ago Steve Jobs took to the stage to launch the iPhone. It’s amazing to think it’s been 5 years since the iPhone was announced. Watching this again, it’s amazing. In many ways it’s still almost futuristic, yet there’s so much vintage about it from the empty feeling home screen in the UI, to the name “Cingular” to the rather healthy looking Steve Jobs telling the world “…to unlock the phone I just take my finger and slide it across [applause]”.

This presentation is undoubtedly up there with the January 24, 1984 Macintosh Launch. Steve at his best, 5 years ago.

Part 2 can be found here.

Categories
Audio/Video Funny

Girl With A Funny Talent

Girl With A Funny Talent

One of the more recent internet sensations I just haven’t found the time to post. A follow-up video here. Even a Facebook page to request songs (according to the follow-up video). Credit where it’s due, she’s taken a silly talent to a viral sensation and managed to package it up into a YouTube account and successful Facebook page. Not bad for a kid.

Editors Note: This was surprisingly hard to screen grab in any way that demonstrated her “talent” and didn’t look so bad that even I wouldn’t feel right publishing it.

Categories
Software

Restart Nostalgia

Restart Mac OS 7

For all of us who spent so much time restarting computers to diagnose them over the years, this page will bring back some of the “glory days”. Relive the restarts of all the popular OS’s and versions.

Categories
Web Development

Profiling CSS

Some interesting research regarding CSS and performance that any web developer should read. Nothing really groundbreaking but it’s good to see the reason behind many of the rules we often hear. It’s also good to see multiple browsers releasing tools to test performance of selectors.

Categories
Funny Programming

Great Programming Book Review

I’m pretty sure this is just a joke…

Best Programming Book Review

Via: @LeeCash

Categories
Web Development

Mobile Experience On A Budget

This blog is largely read by people on traditional desktops and laptops. It’s mobile usage is a bit on the low side, though that’s changing. I decided I wanted to start making the mobile experience suck less, but I didn’t want to go as far as serving a whole new experience for mobile. Responsive web design is interesting, but I didn’t want to invest so much time in it just yet.

This is still an ongoing project, and partially an experiment but here is my game plan:

Make The Standard Design Light/Flexible

The site right now is actually pretty simple in design and structure. It’s a grid layout, everything is modular and ID/classed up. I’m a slight performance junkie and graphically impaired, so image use is pretty minimal and I’ve sprited what I could to make the design as light weight as possible. The core site itself is actually just a few requests. Everything that can benefit from being so is minimized/gziped to lessen the payload down the wire. JS is only included on pages where it’s needed. Light payloads and minimal requests are the name of the game.

This benefits all platforms. Even with 45 thumbnails from Project 365 images on one page, I still can load it all about 2.5 seconds on my laptop. That’s not terrible. Some say “think mobile first”. I say “think performance everywhere”. There’s no reason why performance should be limited to mobile.

Rejigger For Mobile

Step two is to adjust the site for mobile. In my case that means hiding some less useful things, and some size and layout related changes to fit on a smaller screen. Like I said, I’m not serving up a separate mobile site. My pages are already rather light and saving 1 KB doesn’t seem worth it to me just yet. I just want my existing site to not feel like a desktop site. This is more about usability. Performance wise I optimized with mobile in the back of my head while working on the desktop experience.

I didn’t want to include a separate mobile stylesheet since my changes are intended to be subtle and minimal. Besides, that’s a separate request for mobile users. Instead I appended to my existing stylesheet with something like this:

@media only screen and (max-device-width: 480px) {
    body  {
        min-width: 0;
        width: auto;
    }
    #page {
        min-width: 0;
        width: 100%;
    }
    /* and so on… */
}
@media screen and (max-device-width: 480px) and (orientation:landscape) {
    /* landscape specific css */
}

Like I said, I intended for my changes to be pretty subtle. This works pretty well. The one thing it can’t really handle is images. I tend to be pretty light on image use, so it’s not a deal killer for me. However I may eventually look at better solutions in the responsive image world. For now I’ll just make the editorial decision to keep image use tame.

In general my philosophy has been:

  • Does this have value in a mobile context? (no: hide it, yes: continue)
  • Can I adjust the layout/design to make this not suck on mobile? (no: hide it, yes: continue)
  • Is this more work than it’s worth? (no: do it, yes: hide it)

Final Thoughts

I’ve still got some more polish to do, I know <pre/> blocks don’t look/feel right and the comments area is still not quite there. The image gallery experience is not even started. But overall it’s still better than the desktop experience I was serving just hours ago.

Perhaps one day the paradigm will shift on this blog, but I don’t see that happening just yet. Most of what benefits mobile also benefits the desktop experience. This approach gives me an improved mobile experience with minimal hassle. I also benefit from not needing two do work twice as I would if I had a separate mobile experience. That means more time to be productive.

Categories
Apple Security

Smartphone Guest Mode

A very good idea by Greg Kumparak on TechCrunch:

Here’s the dream: one lock-screen, two PINs. One for me, one for anyone else who might use my phone but doesn’t necessarily need to see everything.

Not only is it a good idea for there to be a guest mode, the implementation is quite nice and simple. Maps, Phone, Clock, Calculator, Safari. Perhaps the ability to granularity add/remove from that default set. Everything is stateless and rest when guest mode ends.

This could potentially even lower the divorce rate in the US.

Categories
Web Development

IE6 Is Dead

Via the Exploring IE (listen to this in the background to set the mood):

Time to pop open the champagne because, based on the latest data from Net Applications, IE6 usage in the US has now officially dropped below 1%!

I’ve officially updated my last IE6 install to IE7. This is great news for the Internet. Everyone on the web benefits by this old browser going away. Developers can iterate faster and do more.

IE7… I’m looking at you now.

Categories
Web Development

jQuery And Checkbox Values

I rarely use checkboxes and radio buttons. Perhaps because of that I forgot this little rookie error.

For the intents and purposes below assume the following HTML:

<p>
<label for="checkbox1">Checkbox 1</label>
<input type="checkbox" id="checkbox1" checked="checked"/>
</p>
 
<p>
<label for="checkbox2">Checkbox 2</label>
<input type="checkbox" id="checkbox2"/>
</p>

You wouldn’t really expect it, but both of these return “on” when you get the val():

$(‘#checkbox1’).val(); // returns "on"
$(‘#checkbox2’).val(); // returns "on"

Now say you flipped them by unchecking checkbox1 and checking checkbox2. Same thing:

$(‘#checkbox1’).val(); // returns "on"
$(‘#checkbox2’).val(); // returns "on"

Now reload the page, so one is checked and two is not checked. Try again this time using .attr('checked');. That also doesn’t work, but that makes sense. jQuery 1.6’s release notes even explain it:

Before jQuery 1.6, .attr(“checked”) returned the Boolean property value (true) but as of jQuery 1.6 it returns the actual value of the attribute (an empty string), which doesn’t change when the user clicks the checkbox to change its state

The best way I’ve found to get a checkbox value is to use the is() method:

$(‘#checkbox1’).is(‘:checked’) // returns true

As to why val() doesn’t check the type of node and do this for me automatically? I’m not entirely sure. I’m assuming backwards compatibility. I suspect I’m not the only one who keeps forgetting this little caveat.