Jun 10 2008

The 4th Leg.

Tag: Apple, AppleTV, Tech, iPhone, iPod/iTunesjs @ 12:48 am

What happened to the 4th leg?

So today Apple unveiled iPhone 2.0. The whole Internets is abuzz about how much it sucks or how much it rules or how we wish technology could improve faster or how we hate it when it does. For some reason, my mind wasn’t really on iPhone 2.0 today. It was on something that went completely unmentioned on the Internets, but was subtly referenced to in the keynote today. I normally don’t write this kinda stuff on this blog, but it’s late, I’m tipsy, and I wanted to put my thoughts down on the record so that I could come back 10 years later and see how right or how wrong I was. I’ll laugh either way. So what is this mysterious item I’ve been thinking about all day?

The 4th leg.

The Jobs likes to talk about Apple’s 4 legs. He’s mentioned it a couple of times in prior keynotes - how Apple desires to have 4 legs. The Mac platform was 1 leg. You know, the hardware. Computers. Oh and the software that runs them - OSX. The 2nd leg is iTunes and the mighty iPod - generally speaking, Music. The 3rd leg is iPhone - headliner at WWDC today. In the past, The Steve called AppleTV the 4th leg. The coveted living room. Wars for control of your living room have been waged since the beginning of living rooms themselves. AppleTV was to be Apple’s front-line assault on your living room, but so far has been kept back as a “hobby,” in Jobs’ own words. Disrespectfully, today Jobs all but disowned the 4th leg - instead showing in his slideshow a 3-legged stool sans AppleTV.

So where did the 4th leg go? It hasn’t really gone anywhere. It’s been incubating as a “hobby” while the 3rd leg finishes getting sanded and polished, prior to its final coat of lacquer. I own an AppleTV and have a love/hate relationship with it. Its potential is the most frustrating thing. It has so much potential and would revolutionize entertainment if Apple would put as much into it as they have the iPod and iPhone.

My theory is that Apple is, in fact working on AppleTV, but in a roundabout way. All evidence points to an easy installation for the 4th leg when it is ready. Why? Because the majority of the work is being done by the prior 3 legs.

  1. Leg 1 - Mac Platform - Guess what all 4 legs of the chair run? OSX. Guess what’s coming in Snow Leopard (also announced today) sometime next year? A smaller OS. How did they do this? Apple engineers learned a lot from leg #3 (iPhone) by trying to cram OSX onto a computer that fits in your pocket. Who else benefits from these improvements to the OS? AppleTV.
  2. Leg 2 - iTunes/iPod - iTunes and its vast distribution network was built to support leg #2 (iPod). It is still being refined and improved, and guess who is in line to reap the benefits of a sleek, optimized, well performing distribution network? AppleTV.
  3. Leg 3 - iPhone - Not only did iPhone bring optimizations and improvements to Leg 1, it has also given cloud computing the shot that it needs to become a reality. Mobile life spawns too many headaches revolving around syncing data, losing devices containing all of your contacts, and incompatabilities between formats. In comes MobileMe (me.com) to save the day! But wait, there’s more! You know how annoying it is to type in a movie title with the little AppleTV clicker thing? Apple TV needs a keyboard, but nobody wants to tarnish the elegant design of the Little White Box. Why not use you iPhone’s touchpad typing abilities to control your AppleTV? While you’re at it, use your iPhone to set up your AppleTV to download the latest episode of Planet Mars from your desk at the office. So what do the past 2 years of development for the iPhone and neglecting of the AppleTV directly benefit? AppleTV.

AppleTV will neatly slide in as the 4th leg. All 4 legs will work seamlessly together, thanks to the newly launched MobileMe service. All of our data, and essentially our lives, will someday live in “the cloud,” the ever-present virtual storage space in the sky. The MP3 you purchase from iTunes will be saved into the cloud where it is automatically pushed out to your other devices - your work laptop, your home laptop, your home desktop, your phone, and yes, your AppleTV. All of your emails, your contacts, your calendars, photos, bookmarks, maps, and movies, will always be present on all of your devices at all times. No longer will your laptop/desktop/phone be storage devices for your data, they will merely be interfaces to it. And your iPhone will be the interface to the interfaces!

Nobody seems to be noticing the forest because they’re too focused on the trees. Nobody is noticing the chair because they’re too focused on the legs.

The worlds of separate computers, phones, music players, televisions, living rooms… hell, even life itself, will be merged into one, and Apple (and it’s soon-to-be-polished AppleTV) will be at the forefront of this revolution.

Buckle up.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Mar 09 2008

jQuery: using jquery.autocomplete.js plugin in noConflict mode

Tag: JavaScript, Programming, Tech, jQueryjs @ 4:48 pm

When attempting to implement Dylan Verheul’s excellent auto-complete jQuery plugin on a project, I ran into problems due to the fact that we are using noConflict mode for jQuery by calling noConflict(); A few quick minutes poking around jquery.autocomplete.js and I had updated it to work in both noConflict and standard modes. For those of you looking to use jquery.autocomplete.js in noConflict mode, I’ve made it available for download here: jquery.autocomplete.js

UPDATE: Dylan has updated jquery.autocomplete.js to be compatible with noConflict mode. It also contains additional bug-fixes and improvements. You can download it at: http://code.google.com/p/jquery-autocomplete/source/browse/trunk/jquery.autocomplete.js

—————-
Now playing: AFX - SteppingFilter 101
via FoxyTunes

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Feb 18 2008

PHP & ionCube Loader: ‘The Loader must appear as the first entry in the php.ini file in Unknown on line 0′

Tag: Apache, Linux, PHP, Techjs @ 3:00 pm

I received the following in my Apache error_log when attempting to load the ionCube loader in my php.ini file:

PHP Fatal error: [ionCube Loader] The Loader must appear as the first entry in the php.ini file in Unknown on line 0

This is because ionCube must be loaded before any of the Zend extensions are. So if you have the Zend extension/optimizer loaded, your php.ini should look like this to get ionCube to work:

[Zend]
zend_extension=/usr/local/ioncube/ioncube_loader_lin_5.1.so
zen_extension_ts=/usr/local/ioncube/ioncube_loader_lin_5.1_ts.so
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.0
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.0
zend_optimizer.version=3.3.0a
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

—————-
Now playing: Tommy McCook & The Aggrovators - A Loving Melody
via FoxyTunes

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Dec 21 2007

HOWTO: Install a networked printer without all that crappy software.

Tag: Hardware, Techjs @ 2:55 pm

Here’s a step-by-step guide to installing a network printer in Windows XP without having to install all the additional crappy software that vendors force onto your system. Often times installing all this additional software will compromise the stability of your system, slow it down, or both. These steps will bypass the vendor’s install disk and install only the drivers.

  1. Click: Start > Printers & Faxes
  2. Click: Add Printer
  3. The Wizard will start, click Next
  4. Select “Local printer attached to this computer” and uncheck “Automatically detect and install my Plug and Play printer” then click Next
  5. Select “Create a new port:” and choose “Standard TCP/IP Port”
  6. This will start another Wizard, click Next
  7. Type in your printer’s IP address, eg: 192.168.1.104
  8. Check “Always print to this device, even if its IP address changes” then click Next
  9. A summary of your settings will show, click Finish
  10. You’ll be back at the “Select a Printer Port” window. Select your newly created port from the “Use the following port” dropdown, then click Next
  11. Now you need to select your printer Manufacturer and Printer Model. If your model does not show, put your printer driver disk in your CD-ROM and click the “Have Disk” button. Browse to your CD drive and select your printer’s model. Once your Manufacturer and Model are selected, click Next
  12. Now name your printer, it’s probably best to accept the default. Choose whether or not you want to use the printer as the default.
  13. Chose whether or not to share you printer. Since this is a network printer, don’t share it. You’ll want to set it up to print directly from each of your machines.
  14. Print a test page and you should be good to go!

—————-
Now playing: My Bloody Valentine - What You Want
via FoxyTunes

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Dec 06 2007

mod_rewrite & PHP: How to match urlencoded plus sign (+ = %2B)

Tag: Apache, PHP, Programmingjs @ 9:37 pm

I ran into trouble when trying to pass a urlencode()‘ed plus sign into a web address being processed by mod_rewrite.

$url = ‘http://www.server.com/browsealpha/name+has+plus+in+it/’;
$url = urlencode($url); // http://www.server.com/browsealpha/name%2Bhas%2Bplus%2Bin%2Bit/

This $url variable gets echo()’d as a link in a page, so once it’s clicked and loaded in the browser, I then needed mod_rewrite to translate that to the actual URL, which is:

http://www.server.com/browsealpha.php?name=name%2Bhas%2Bplus%2Bin%2Bit

Here is the RewriteRule I was using to match:

# match any name containing any combination of letters, numbers, and the % sign (to match urlencoded URLs)
RewriteRule ^browsealpha/([%\w]*)/?$ /browsealpha.php?name=$1 [QSA,L]

This rule should match http://www.server.com/browsealpha/name%2Bhas%2Bplus%2Bin%2Bit/ but for some reason it wouldn’t work. After hours of frustration, I found a few threads mentioning the need to urlencode the string twice, like so:

urlencode(urlencode($variable));

IT WORKS!!! Apparently this is because mod_rewrite automatically decodes the urlencoded URL, so if you pass in %2B, PHP sees it as %2B0. If you double encode, mod_rewrite decodes the first one, and PHP receives the second one (which is now %2B, which is what we want).

—————-
Now playing: Autechre - 444
via FoxyTunes

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Dec 04 2007

jQuery: How to set one <select> element to the value of another (using onchange equivalent)

Tag: JavaScript, Programming, jQueryjs @ 5:33 pm

Say you have an HTML <select> form element and you want to set another <select> element equal to the first one when it changes. Here’s an easy way to do so with jQuery:

$(’#id_of_select1′).change(function() {
    var select1_value = $(this).val();
    $(’#id_of_select2′).val(select1_value);
});

—————-
Now playing: Drexciya - Astronomical Guidepost
via FoxyTunes

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Dec 04 2007

jQuery: How to get the ID of your current object.

Tag: JavaScript, Programming, jQueryjs @ 4:14 pm

Say you want to know the ID of your current jQuery object. You can achieve this easily using jQuery’s attr() method:

var current_id = $(this).attr(’id’);

This will only work provided that you have a valid jQuery object $(this) that you are working with, eg:

$(document).ready(function() {
  $(’input.text’).focus(function() {
    $(’input.text’).removeClass(’onFocus’); /* remove focus state from all input elements */
    $(this).addClass(’onFocus’); /* add focus state to currently clicked element */
    var current_id = $(this).attr(’id’);
  });
};

Using the code above, you will now know the ID of the currently focused input element. This can come in handy later on if you want to perform further actions on the element.

—————-
Now playing: Amon Tobin - Precursor (feat. Quadraceptor)
via FoxyTunes

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Next Page »