1. Why Apple Needs to Reinvent the TV

    Personally I can’t wait for Apple to come in and reinvent the television. I envisage they’ll raise the bar like they did with the iPhone and make the market several times more competitive.

    Televisions were invented in the late 1920s and colour came in 1940s. Since then we’ve been subject to a business model pioneered by the television networks. They serve us content, they serve us advertising and we have the ability to pay for premium subscription services (such as Foxtel or Cable) and connect peripheral devices.

    At the moment the price point for TV’s is amazing. You can purchase a 40-inch Full-HD LED LCD for around $600 (AUD). Compare that to 4 years ago when I paid over $5000 (AUD) for 43-inch Semi-HD Plasma screen. Both the industrial design and the hardware is great, but this is not the issue. The issue with TVs is the experience.

    The experience with TV’s is appalling. Every user interface varies between brand and model. There is no consistency in terms of design and frankly it’s pathetic. Let’s talk about a common task such as changing the channel. You pick up a remote and try to hit the impossible bulls-eye. Occasionally you do and then the television takes it’s merry time trying to fulfill your request.

    With the UI aside have you forgotten about the plethora of boxes sitting within your cabinet? Let’s go back to 1993 when TV’s only supported one external device; now we have boxes for just about everything - cable networks, gaming consoles, network media devices, premium subscription services, convertors, boxes to connect more boxes and DVD & Blu-Ray players. It’s ridiculous!

    The Apple TV was important for Apple, because it was their entry into the market. Steve Jobs always claimed it was a ‘hobby’ and they ‘weren’t very serious about it’, but it was a lot more than that. The Apple TV was a market tester. Are consumer’s prepared to pay for content? Do people actually listen to music on their TV’s? Or how about viewing photos? Finally how long do people spend watching TV? The latter question is very relevant. I think we all know the answer and the potential market size.

    Now for the big unknowns. Has Apple thought extremely big? Does what their trying to do require commitment from networks all around the world? It’s quite possible. For example a feature such as trying to replay a TV program straight after it’s broadcast would require permission from the copyright holder.

    Will the Apple Television disrupt the model where content is restricted by markets? At the moment networks purchase programs from content providers after they’ve had widespread success in their local markets. But lets not forget the internet exists today and consumers aren’t prepared to wait 12 months to see what the trending topics on Twitter are all about. They want it now and technologies such as BitTorrent enable this. Could we see a global change to this model across the spectrum? One day they might even go as far as allowing you to determine your own programming. Talk about a total change. All of a sudden you will be dictating your own programming instead of the networks. Going out for dinner later tonight? Then watch the news now instead of at 7:00pm. Video on demand already exists, but not in this capacity.

    Last but not least I’m sure there is another billion dollar App market just waiting to be untapped in the living room. The problem Apple has here though is people aren’t going to get off the couch to touch their TV screens, they’ll have to use an iPad or a new category of device (remote on steroids). TheVerge (http://www.theverge.com/2011/12/18/2645399/apple-working-on-tv-new-interfaces-content-partnerships-wsj) claims people will use their voice which makes sense given the successful launch of Siri. I would love to check the weather, watch those videos I’d saved for later, play a few games or catchup on the news. There is definitely room for an App market here.

    For Apple, reinventing the television makes sense. It extends their walled garden into your living room. They already control your phone, tablet and computer and now they want the 10-foot experience. I hope they have solved all of the problems including creating a universal product that works around the world. I look forward to a product debut in 2012.

     
  2. 10:03 15th Jul 2010

    notes: 19

    comments: 0

    tags: petscatsfunnyvideo

    A determined cat trying to break through an impenetrable cake force field.

     
  3. 20:53 1st Jul 2010

    notes: 12

    comments: 0

    reblogged from: clubsetc

    clubsetc:

    The Intelligence of Crows

     
  4. 10:59 30th Mar 2010

    notes: 49

    comments: 0

    reblogged from: camh

    tags: ipadappletwitterapp store

    image: download

    camh:

I … I just don’t know anymore.

    camh:

    I … I just don’t know anymore.

     
  5. 12:02 23rd Feb 2010

    notes: 17

    comments: 0

    tags: video

    ‘Embrace Life’ - always wear your seat belt. An original approach to road safety advertising from the Sussex Safer Roads Partnership.

     
  6. Howto Log Directly to Your OS X Terminal using Zend Framework and NodeJS

    Are you interested in being able to log directly to your OS X terminal from within your Zend Framework based app? If yes, then this tutorial may be for you!

    What is Zend Framework and NodeJS

    First of all you may be wondering about Zend Framework and NodeJS? Zend Framework is a PHP 5 based development framework. It is commonly used to build web applications. NodeJS is a tool designed to provide an easy way to build scalable network programs. By using the I/O capabilities of NodeJS, I have built a simple TCP server that writes log messages to the OS X terminal (via STDOUT).

    Getting Started

    First of all you will need to have NodeJS installed. You can follow the instructions on their website: http://nodejs.org/#build. You should also have a basic understanding of how to use Git and GitHub.

    Running the Node_Log Server

    Start by cloning my GitHub repository (http://github.com/robmorgan/node_log) to a working directory on your system and start the server:

    $ git clone git://github.com/robmorgan/node_log.git
    $ cd node_log
    $ /usr/local/bin/node node_log.js
    

    The server will fire up and start listening on the default host and port (tcp://localhost:8003):

    Next we can begin logging events to the Node_Log server.

    Logging Events from your Zend Framework App

    I have written a Zend Framework compatible log writer specifically for Node_Log. It is available here: http://github.com/robmorgan/zfnode_log_writer. You can clone my git repository by executing:

    $ git clone git://github.com/robmorgan/zfnode_log_writer.git
    

    Next you should copy the contents of the library/ directory to the library/ directory within your Zend Framework based app. Now we are ready to log our first event to Node_Log. Simply include Zend_Log and the log writer (ignore the includes if you use the Autoloader) and make a standard logging call. I have provided an example below:

    And here’s what the terminal output looks like:

    Conclusion

    Now you have the ability to log to your OS X terminal direct from your ZF-based app! In the future I plan to add a web interface, color highlighting based on severity and persistence of log messages to disk. Feel free to clone my GitHub repository if you’d like to contribute. Have any questions? Please leave a comment below or follow me on Twitter and @reply me.

     
  7. Software I Use

    Somebody asked me the other day about the software I use. So I decided to make a list and share it around. This list covers desktop, phone and web software and I’ll add to it as I go.

    • Text Editor / Simple Coding Tool: TextMate ($56) is the best by far. I use it to write my blog articles, ruby code and simple text files. I highly recommend buying a license.
    • Web Browser: I use Firefox (Free) with the Firebug (Free) development extension.
    • Email: Gmail (Free) is web-based and also works on my iPhone.
    • IDE: Eclipse (Free) with the Flex Builder ($249) and PDT for PHP (Free) plugins.
    • Image Editing: I’m a developer, but I use Pixelmator ($59) to quickly measure designs, chop images up and convert files between formats. It’s lightning fast compared with Photoshop and Fireworks on my MacBook Pro. Well worth the small price-tag.
    • FTP / SFTP / Amazon S3: Transmit by Panic ($29.95) has proved itself over the years.
    • Blogging: Tumblr (Free) is good and it can host your custom domain name as well for nothing.
    • Web Stats: I’ve always used Google Analytics (Free), but I heard there are a few new good contenders albeit with Twitter, Bit.ly integration etc.
    • Twitter: I use Tweetie on my Macs and iPhone. I’ve found it to be alot faster than TweetDeck as it’s written in Cocoa.
    • Short URL Service: Bit.ly (Free) is ridiculously simple and also provides statistics including referrer and timestamps for tracking your links.
    • Web Proxy: Charles ($50) is an indispensable tool. I use it everyday and it’s saved me so much time. The main features I love about it are the throttling for testing slow connections, decoding of binary AMF data, JSON data, XML support and also the ability to repeat and modify HTTP requests.
    • Music: iTunes (Free).
    • Music Downloads: The iTunes Store and Beatport are my favourites.
    • Music Production / Sharing: I have a premium account on SoundCloud ($14/month). I use this to share my DJ sets, tracks and host my podcast.
     
  8. My Thoughts on the iPad

    Yesterday, Apple revealed their much-anticipated tablet device. As most of you probably know the announcement itself was quite controversial. It is still an impressive device, but it is virtually a larger form-factor iPhone. Mind you I would still love to get my hands on one.

    Lets start with the hardware. From the demo videos and the keynote we can see the device is really responsive and the 9.7-inch multitouch display looks gorgeous. According to Steve, the iPad has 10 hours of battery life and will be available from $US499. The device lacks a USB-port (although apparently there is an accessory), slots for removable media (Why no SD Support??) and a camera. The latter in my opinion is a big disappointment. This device could of been perfect for users at home talking to their friends all the way through to business users using the iPad for realtime video conferencing. However the real problem with this device lies with Apple’s trend towards creating a closed and restrictive computing platform.

    Why is it a problem that Apple has complete control over the platform? Because Apple already has a history of preventing competitive applications from being distributed on the iPhone/iPod Touch. A great example of this is Adobe Flash. Mind you as Apple further develops or improves the functionality of existing applications, there is nothing stopping them from restricting or blocking third party applications.

    Whilst Apple has not officially specified whether or not the iPad supports flash, a popular image has been travelling around internet taken by an Engadget blogger.

    Missing Plugin

    Was this website viewed intentionally by Steve in the keynote? The answer is yes, but was this website used to demonstrate that the iPad will not support flash? I am unsure even though the missing plugin icon makes us certain. Without Adobe Flash support on the device, users will not be able to access the full range of content available on the web. Adobe Flash accounts for over 70% of games available on the web and 75% of online video. However Apple has ignorantly restricted their platform (through the App Store approval process and the absence of core software APIs) to make Flash on the iPad impossible.

    Apple has always argued that a fantastic user experience of both their hardware and software is paramount. I can definitely see how its in their best interests to create this type of platform. They get to sell the hardware, develop the guidelines and the core software, restrict competitors and benefit from the 70/30 revenue split with developers. The end result is complete control of their platform. Maybe they can argue there is no room for Flash because it affects the stability and battery life of the device? I’m certain that this is not the case and that their motives are quite different. I believe its about suppressing the competition.

    I’ve been an Apple user now since mid-2007 after jumping ship when Vista arrived. I believe as the web is moving more and more towards open technologies, Apple is severely damaging itself by creating this restrictive ecosystem. It affects developers, users and ultimately the progression of the web itself.

     
  9. 00:50 26th Jan 2010

    notes: 21

    comments: 0

    tags: designcd covers

    Interactive CD Cover

     
  10. Howto Publish a Pear Package on Pearhub

    Here’s a quick tutorial I put together to help you get started on Pearhub.

    The Differences Between Pear, the Pear Package System and the Pear Repository

    First of all you may be wondering what is Pear? From the Pear Documentation - “PEAR is short for “PHP Extension and Application Repository” and is pronounced just like the fruit”. It is an umbrella-term that encompasses a package management system, an official package repository, a coding standard and a command-line tool. For more information please read the Wikipedia page: http://en.wikipedia.org/wiki/PEAR.

    What is Pearhub?

    Now that we have learnt about Pear, you might be wondering what is Pearhub? From Pearhub.org - “Pearhub is a pear channel and a pear package publishing platform. As a user, you can install packages. As a developer, you can publish packages”. You can read Troels Knak-Nielsen’s introductory blog post here: http://www.sitepoint.com/blogs/2010/01/08/introducing-pearhub/.

    See my Sample Project

    For the purposes of this tutorial I have created a sample repository on my Github account. You can have a look before we get started or even fork it to your own account. The project has been published on Pearhub here: http://pearhub.org/projects/pearhub_tutorial.

    Getting Started

    First of all you will need a couple of things - an OpenID account, an account on GitHub and a working copy of Git installed. Pearhub also supports Subversion, but we’ll be using Git for this tutorial. You can get a free OpenID account at myopenid.com. Also this tutorial was written for Mac OS X, so you’ll need to adapt it for other platforms. Finally, you should have a basic understanding of pear, php and git.

    Developing a Project Locally

    Start by creating a new directory. I have labelled mine ‘pearhub-tutorial’. This is going to be the root of the Git repository and contain your new project. Open up your favorite text editor or IDE (I happen to use TextMate) and insert the following code:

    Now save the file (I named my file ‘pearhubtutorial.php’).

    Note: You can skip this step and use the code from any pre-existing project you may have. Next we will need to create a new repository on GitHub to push this project to.

    Creating a Repository on GitHub

    Sign into GitHub and create a new repository. This is where we’ll develop your project before publishing it on Pearhub.

    Next fire up the OS X Terminal and switch to your working directory. We are going to initialize a local Git repository and push it up to GitHub. This can be achieved by issuing the following commands:

    $ git init
    $ git add pearhubtutorial.php
    $ git commit -m 'initial commit'
    $ git remote add origin git@github.com:yourusername/yourrepository.git
    $ git push origin master
    

    Note: Be sure to substitute ‘yourusername’ and ‘yourrepository’ with your respective details. The terminal output should look similar to this:

    If you were successfully able to push your project up to GitHub, then the repository browser should show your source-code:

    We are now ready to publish your project on Pearhub.

    Publishing Your Project on Pearhub

    Navigate to Pearhub.org and log in using your OpenID. Click the ‘Register your project on pearhub’ link and fill out the form. In the files section I have chosen to set the path to my repository root (/). You could also set this to something like ‘/lib’ if you wanted to include sample code in your repository. See the following screenshot for more information:

    Note: At the time of writing you must specify a value in the license field. Enter the value ‘None’ in the ‘title’ field and your Github repository URL in the ‘href’ field. Also make sure you enter an email address in the lead maintainer section as Pear requires this. Leave the release policy as ‘Automatic’ and hit ‘Create project’.

    Pearhub will create your project and show you its summary page. Next click ‘Show releases’. You will notice Pearhub has added your project to it’s build queue. It will now begin polling your specified repository for tags. When it detects a new tag it will connect to your GitHub repository and package up your release. In the next step we will tag your first release.

    Tagging the Initial Release

    Now that your project has been published on Pearhub we are ready to tag a release. Pearhub requires you to tag your releases so it can keep track of them. In order for Pearhub to recognize a tagged release, you will need to follow a naming convention called Semantic Versioning. Switch back to your terminal window and execute the following commands to tag a release and push it up to GitHub:

    $ git tag -a v0.0.1 -m 'Tagged Release 0.0.1'
    $ git push origin : v0.0.1
    

    The version you pushed up to GitHub should now be visible under the ‘Tags’ drop down in the repository browser. In the next few minutes Pearhub will detect the new version and begin building a release. It is now a good time to head back over to your project’s Pearhub release page and wait for the first version to start building. When the status of your release changes from ‘building’ to ‘completed’ we are ready to move to the next step.

    Installing Your Package

    To install your newly published package, we need to add the Pearhub channel to your local Pear installation. This step is quite simple:

    $ sudo pear channel-discover pearhub.org
    

    Next execute the following command to install the latest version of your Pear package (Be sure to replace ‘yourpackagename’ with the name of your package):

    $ sudo pear install pearhub/yourpackagename
    

    Pear will connect to Pearhub and install your newly published package. In my case I can find the file here on my filesystem: ‘/usr/lib/php/pearhubtutorial.php’. You can now use your package like you would with any other standard Pear release.

    Using Your Package

    If you published the tutorial package it’s usage is quite simple. Simply include the script and call the ‘getString()’ method. This method returns ‘Hello World’.

    Conclusion

    Hopefully this tutorial has given you a basic understanding of using Pearhub. You should be able to adapt these instructions to suit your own code/projects. If you still have any questions you can read the Pearhub FAQ or follow me on Twitter and send me a Direct Message.