Welcome to the AppleNet

January 29th, 2010

Your addiction to shiny new consumer electronics will fund Apple in it's mission to erode your freedom to consume the content you want through the channel you want at the price you want.

You will not be allowed to access some content on Apple devices regardless of its merit. Apple will apply this content censorship at a hardware level based on nothing more than the format content is published in. This censorship will include the music, videos, games, books and applications that you consume, use and own now and those you may want to access in the future.

You will pay whatever Apple tells you to pay for Apple sanctioned content, but will only be able to purchase it through an Apple sanctioned mechanism. You will put up with this because Apple says it's going to be better that way, easier, it will just work.

This will all be fine, because the content that is deemed worthy will all be based on 'open' standards and technology.

Welcome to the AppleNet.

Steve.

Mobile Design UK event Announced – 4th June

May 20th, 2009

The details of the next Mobile Design UK event have been posted, the Mobile Design UK event will take place on the 4th of June at the Tavern Room at RSA on John Adam Street in London.

The last Mobile Design UK event was really well presented and provided some great insight into the technical and cultural challenges faced by designers and interaction designers when trying to target mobile platforms.

You can get the full details and registration information of the upcoming Mobile Design UK event from the Mobile Design UK website.

To get a feel for the target of the Mobile Design UK events and there content you can read my post on the previous Mobile Design UK event.

Adobe & Flash Hit Main Stream News with TV Deal

April 20th, 2009

Flash Apps On TVThis morning Adobe announced Flash Player will be making its way onto a number of home entertainment devices. Including TV's, Set Top Boxes and Blue Ray Players. While similar anouncments were made earlier in the year, it is the latest announcement that has seen Flash and Adobe thrust into the main stream news, as the story was featured on the BBC front page and covered in-depth. The article explains this deal could:

create a new generation of connected entertainment services, including streaming video in high definition, and applications that can run in real time alongside video broadcasts, such as interactive news tickers, sport scores, quizzes and the weather.

By embedding the flash player onto chip Adobe and their partners must be solving some of the problems Sean McSharry posted some time ago in regard the challenges on Creating a Flash IPTV System.

On a visit to the IPTV world forum last month at Earls Court both Flash and Adobe were given very little mention. Which I found a little odd. While a large number of vendors were tipping there hat to FLV support, there seemed to be a lack of full Flash based UI's on display.

Instead most GUI implementations appeared broadly to fall into two camps. First were those using a Microsoft OS implementation, the latest one seems to be Mediaroom (Link requires silverlight). The other choice seemed to use an SVG display layer with some form of webkit or browser based implementation. Regardless, as Serge Jespers mention in his post, most of the interfaces and functionality were a long way away from the slick interfaces and wonderful mashable, connected experiences we have been spoilt by on the web and desktop for so long.

In one conversation I had the problem facing developers was made clear. It will be an issue any mobile developer will know all too well. Limited performance from the device. Even the most recent silicon going into set top boxes or internet enabled television sets is far behind the processing power we are use to on our desktop or laptops these days. For example when using SVG as a display layer on an High Definition Television (HDTV) I was told it may only be possible to re-render a small potion of the screen at a reasonable frame rate, maybe only 1/8th of the screen. Its this limitation that keeps the interfaces simple with very limited animations or transitions.

On television this issue of performance is further compounded by the platform itself. This is not a small screened, only seen for a few minutes, operated by your more technically savvy user, problem that mobile user interface or application development might suffer from. Oh No! This is a 46 inch or larger, always on display, sitting in the corner of the living room, being seen 356 days a year for a couple of hours or more, by any user from 5 years to over 90 years, type of problem. To make things even worse, on a TV the comparisons are not made between “other applications” on the device, as a user might do with an applications on other platforms. No. The comparison is most likely to be made with the main service provided by TV. That would be the full screen video content that the user has been accustomed to recieving and running smoothly at 25/50+ frames a second. Not only that it has worked for the user that way that well for as long as they can remember, well over a two decades.

Lets hope that the flash player talked about in Adobe's anouncments can really perform on this platform. If it can, it should mean some great performance improvements for any Flash Platform developer. If it can open the door for me to develop the types of experiences Serge discusses as well, were all our modern communication networks can extend and converge into our living room... Well I cant wait!

Mobile Design UK Meeting

February 24th, 2009

Mobile Revolution Last night I attended the Mobile Design UK event held at the RSA Tavern room, near London's Charring Cross. It was a great evening and the venue was fantastic, a really well equipped space that made the evening feel wonderfully personal. The smaller location really fostered some great discussions following each of the speakers presentations. The mix of content, concepts and ideas presented was really good.

The evening was introduced by Arabella David from Nokia. She outlined the growing importance of user experience in the mobile space and how Forum Nokia is pushing to support Designers and User Experience experts through the Forum Nokia Channel. More information can be found at the Design and Media section of the Forum Nokia Site.

Scott Weiss (@sdweiss) of Human Factors International kicked of the presentations with a dissection and walkthrough of the usability and information architecture considerations when developing mobile applications that use XHTML to reach a broad user audience. It was good to find out that with XHTML as well as many mobile technologies there is often a trade off between features, richness and audience reach.

Antony Ribot (@ribot) from Ribot provided a fantastic presentation on the speed and growth of the mobile information age, and it's subsequent effects on physical trends, culture and behaviors. Also provided some great ideas on how we as producers might need to change the way we approach concepting, brain storming and designing to target these new user expectations.

Gil Kahana of Seren Partners presentation provided an enthusiastic insight into the challenges faced when dealing with the barriers that mobile applications present to users and the ways developers should research, test and experiment to break down those barriers. There was some great discussions that followed Gil's presentation around the fragmentation of some of the technology in the mobile space.

The final presentation by Marek Pawlowski (@marekpawlowski) from PMN - Mobile Industry Intelligence showed some brilliant dissection of the minutia of user value that can be extracted by mobile users and audiences from some of the most innocuous of details, the value of battery life conservation, the range of colours a phone or application is available in or how an application provides user feed back when scrolling.

The Mobile Design UK group offers a refreshing and much needed alternative view of mobile development. At the end if the evening I caught up with Bryan Rieger, one of the event organisers, to find out what types of content they were hoping to present at future meetings,

we don't want to show code

was his first reply. I for one think that's a brilliant mantra to hold true to. In a space dominated by massively varied technologies, huge numbers of acronyms and a huge range of user audiences and platforms I found it a very comfortable evening of knowledge sharing in a format that felt like a well organized brainstorm.

If you are interested in designing & producing content targeting any mobile platform I would look out for up coming Mobile Design UK events. Thanks to organisers for putting together a great line up os speakers and also a big thank you to Forum Nokia for the sponsorship of the evening.

Catalogue Of 30+ Flash Lite Development Tips

February 24th, 2009

Rien Verbrugghe has done a great job of cataloging a huge number of Flash Lite development, testing and packaging tips from a number of conference sessions and also the various Flash Lite development blogs. If you want a handy quick reference of Flash Lite development tricks and common gotchas this is worth book marking or printing out.

blog.rive.be

Memory Management in Flash Lite and ActionScript 2 using ASUnit

December 22nd, 2008

In my new position the team I have joined and me are carying out some in depth testing of an Action Script 2 code base for Flash Lite 3 using, among other things, ASUnit based unit and acceptance tests. The early stage of development means it is too soon to leverage the new automated testing features of Adobe Device Central CS4. One of the most important aspects of our testing has been to check memory use over the lifetime of the applications we are developing. We are interested in tracking any memory leaks in our code and also any memory space fragmentation as the Flash Lite player creates or destroys objects and classes.

This memory information is viewable from Adobe Device Central in the Memory Panel, where device central provides a graph showing memory usage over time, separating Static Heap and Dynamic Heap consumption of the player as your Flash Lite application runs.

MemoryPanel.png

Testing for memory use, loss and leaks is currently not present as standard in ASUnit for ActionScript 2. In order to include this form of testing at a basic level we have employed a trick I picked up at Max San Francisco this year (If you are the person that explained the trick, please leave a comment so I can credit you). The technique makes use of the FlashLite SharedObject as a way of measuring the file size of objects and classes before and after you think you have destroyed them in your code.

The premiss is a simple one. In your test as part of the test setup create a local SharedObject create an empty data property and save the SharedObject to disk, then call the SharedObject.getSize() method and store the size of your empty SharedObject. The code should look something like this.

// size variation threshold for the SharedObject
private static var SIZEVARIANCE:Number = 5;
private var iS:SharedObject;
private var iSSize:Number;
// standard ASUnit test setup
private function setUp():Void
{
instance = new TestableClassObject();
iS = SharedObject.getLocal("iS");
iS.clear();
iS.data.iS = undefined;
iS.flush();
iSSize = iS.getSize();
}

Some things to keep in mind are the following. The length of the SharedObject name and the length of the data property name will have an impact on the result of SharedObject.getSize(). In the above example I have limited both these values to 2 characters ('iS'). All that remains is to link the value obtained from this setup function into a standard ASUnit test which looks something like this:

public function testDestroy():Void
{
instance.destroy();
iS.data.iS = instance;
assertTrue("testDestroy : test that the TestableClassObject 'instance' is destroyed successfully by checking size variation (" + SIZEVARIANCE + ") in SharedObject", ((iS.getSize() - iSSize) < SIZEVARIANCE));
}

In this test I am simply calling the target class instance's destroy method, which should manage the removal of any stored references, arrays and object present in the class. I then save the locally stored instance back to the existing shared object, re-call SharedObject.getSize() and compare the size difference to the value of our initial empty SharedObject (iSSize) from the test setup method.

If the file size of the SharedObject is greater than the SIZEVARIANCE threshold then the test will fail. If that is the case then you have the ability to inspect the shared object using a SharedObject viewer (I use the free Solve by Darron Schall). In the viewer you will be able to see what items are not being properly removed from your class instance oronject. A common issue I have seen is the failure to destroy arrays that are prpperties of my classes for example. Some time over the holiday break I will put together a full example for download.

Forum Nokia launches Flash Lite Developer’s Library

December 10th, 2008

I missed this yesterday. Nokia have released the Flash Lite Flash Lite Developer’s Library 1.1 . One of the important aspects of this launch is the inclusion of documentation for using the new Nokia S60 Platform Services.

The Platform Services enable flash application to access Device Capabilities and services that were previously only possible through third party solutions Such as Kuneri lite.

Here is a list taken from the Using Platform Services section of the new Flash Lite Developers Library.

The S60 platform allows Flash Lite applications installed on S60 mobile devices to:

  • Access and launch applications on a device using the AppManager Service API
  • Access and manage calendar information using the Calendar Service API
  • Access and manage information about contacts using the Contacts Service API
  • Access and manage information about landmarks using the Landmarks Service API
  • Access device logging events using the Logging Service API
  • Access device location information and perform location-based calculations using the Location Service API
  • Access information about media files stored on a device using the Media Management Service API
  • Send, retrieve, and manage messages such as SMS and MMS using the Messaging Service API
  • Access data from the physical sensors of a device using the Sensor Service API
  • Access and modify system information on a device using the SystemInfo Service API

These new API's are supported through FlashLite 3.x on Series 60 5th edition devices. Flash Lite applications use the S60 Platform Services through Service APIs. The Service APIs are supported through a Nokia-proprietary ActionScript 2.0 library. Before you can create Flash Lite applications that use platform services, you must install the library for use in your Flash Lite applications.

Here is a run down of updates from the Change History section of the Flash Lite Developers Library.

Change history Flash Lite Developer's Library 1.1

  • Added information on the S60 Platform Services, the corresponding ActionScript Service APIs, and the ActionScript Service object required to access the APIs.
  • Added section "Flash Lite API reference". This section describes the ActionScript APIs provided by the S60 platform for use with Flash Lite applications.
  • Added section "Flash Lite authoring and optimization tips". This section provides tips and guidelines for authoring Flash Lite applications and optimizing their performance.
  • Added section "Flash Lite with S60 touch". This section briefly introduces the touch UI and Flash Lite touch keypad of S60 5th Edition devices and provides instructions for disabling the touch keypad.
  • Added section "Flash Lite example applications". This section contains links to example Flash Lite applications that you can download to your computer and then to a mobile device or emulator.

Check out the Flash Lite Developer’s Library Here.

Using MTASC to compile Flash Lite (FSCommand2) on OSX

November 17th, 2008


For some time I have used Eclipse, FDT and MTASC as my preferred weapon of choice when doing AS2 development, I switch to Flex Builder for AS3 , Flex or AIR. One spanner in these works when using Mac OSX had been when producing mobile content for FlashLite 2+. Flash Lite 2 and FLash Lite 3 can both use ActionScript 2 and so as MTASC should be able to compile FLash Lite content. However on OS X MTASC still appears to have an issue compiling the FSCommand2() function, this was fixed in teh 1.13 version of the win32 version of the compiler but It seems the OS X version does not include the same fix for FSCommand2(). The FSCommand2() function used in Flash Lite development to control things like the SoftKeys or forcing an application to display at full screen on mobiles or devices.

Last week I took the time to find a way to work around this issue in order to get back to my development tool chain when developing Flash Lite content. For those users that are more experienced with this form of development the only answer seems to be to create a symbol in the library of your fla associate any classes that make use of the FSCommand2 to the new symbol. Make sure the Clip is exported in some fashion, either by physically placing it on the stage, or setting it to export for ActionScript. Next export a stub SWF from the fla. In eclipse, or when using MTASC you will need to use the '-keep' switch on the command line when you run MTASC to compile your Flash Lite content, this will also make sure the Flash Lite swf header will remain in tact as well. This forces MTASC to keep any assets that are already in the target output swf.

It is also worth mentioning that in your application code you will not be able to refer to the class that contains functionality using the FSCommand2. So applications like FDT will think there is an error as you will be unable to define the 'type' of your class. A second note is that MTASC will flag that there is a movie clip associated with a class, but that is has not been compiled.


Warning : The MovieClip KeyController needs the class { Class path containing FSCommand2() function } which was not compiled :
Please force compilation of this class by adding it to the commandline.

I have not been able to completely remove the FLA or the Flash IDE completely from my tool chain, but in all honesty I think there are alot of use cases in Flash Lite development that still require a level of timeline usage, so I happy with this compromise.

I have created an example package of files that you can download from here or in the download area.

Fantastic Networking and Learning opportunities at Adobe Max

October 31st, 2008

adobe max08 thumbnail

With Adobe Max San Francisco now only 2 weeks away its important to make sure you have organized your schedule, if you haven't already. This year Adobe hosting 2 events which aim to bring developers together with some of the industry leaders in the mobile market place. So if you are a developer interested in mobile or you already have content or existing applications that you think might work as a mobile application or service, Adobe Max should offer some great opportunities to get information from the experts.

Mobile Summit
November 16, 2008 at the Marriott from 1pm-6pm

Join Adobe and our partners — Nokia, Qualcomm®, Verizon, Sony Ericsson, GetJar, Thumbplay®, and Zed — to learn about new opportunities for mobile developers this year. Get a sneak peak at what you will see and hear at MAX before anyone else does! Hear from Adobe partners and key industry players as they present the newest mobile solutions, technologies, and distribution opportunities for mobile developers. To learn more and RSVP for this event go to: http://www.eventsadobe.com/mobilesummitmax08/invite.html

Mobile Fast Pitch Networking Party
November 19, 2008 at the Thirsty Bear from 6:16pm-9:30pm

Adobe is hosting a special Mobile Networking Party to allow developers to showcase their mobile applications using our Adobe® Flash® mobile technologies. If you already have a web-based application and are thinking of going mobile, you can also present your idea and get feedback from our industry leaders. Join us to support fellow developers or to present your ideas. For more RSVP and presentation information for this event go to: http://www.eventsadobe.com/mobilenetworkingparty/invite.html

In addition to these 2 events there are also a number of great sessions on at the conference tailored to Mobile:

  • Open Screen Project: Delivering Rich Internet Experiences Across Devices
  • Creating Mobile Applications: A Real-World Example
  • Mobile Workflows with Creative Suite® 4 and Adobe Device Central CS4
  • Flash Lite 3: Learn How to Package and Distribute Mobile Content
  • Spotlight on Finetune and Teknision™: Building a Multiscreen Application
  • Create Unique Browsing Experiences on Nokia Phones
  • How to Build a Mobile Business
  • Developing the Ultimate Flash Cast™ Channels
  • Project Capuchin – Bridging Adobe Flash Lite and Java ME™

Remember the most popular MAX sessions fill very early, so be sure to register today to secure seats in your preferred sessions. You’ll be surprised by what real live Adobe Flash Lite applications exist today.

Remember to register for UK MaD Meeting – October 21st 2008

October 20th, 2008

A quick reminder to any developers focusing on Mobile Development. If you were planning to attend the UK MaD Meeting tomorrow remember to register for the event by sending an email to UGadmin@flashmobilegroup-uk.org with the subject “I want to attend the UKMaD Meeting oct 2008" include your name, contact email & contact number . If you dont you will not be entered into the software prize draw to win Adobe CS4.

Full details of the event have already been posted bt Mark Doherty at flashmobileblog.com.

FOTB 08 and a question of Art.

October 17th, 2008

Flash on the beach this year for me was fantastic. John thanks to you and every one involved in putting the event together. This year I found the practical sessions were very informative, and the presenters did a fantastic job of convincing me to look at some areas of Flash I have been shying away from. Thanks particularly to Koen De Weggheleire, Seb Lee-Delisle, Chris Orwig and Dr. Woohoo! (Drew Trujillo) whose sessions I found to be full to over flowing with information and inspiration. There were 3 sessions that stick out in my mind. The reason for this was not only for the content that was displayed, but also for the discussions the presentations generated afterwards. In no particular order, Erik Natzke, Jonathan Harris and Robert Hodgin.

This was my first time seeing Robert Hodgin's work and the first time seeing Robert present. I had heard the glowing reports from the previous year, but believe it of not FOTB08 was the first time I saw his work. In hind sight I am so glad I got to experience his work first time on ‘the big screen’. It was a fantastic show.

I saw Erik Natzke's work and presentation at last years FOTB, and was really looking forward to seeing his session this year. Last year his presentation felt like a teaser, a peak in side the early stages of his work. This year I felt the presentation showed where that journey had taken Erik's work over the last year.

The final session of the conference was given by Jonathan Harris. I had not previously heard Jonathan speak before nor had I seen Jonathan's work. I found some of the projects Jonathan presented very interesting but his work did not affect me to the same degree as Erik’s or Robert’s did. But then after the main body of his presentation, Jonathan kept talking. What he said really interested me, it made me think. I think it was this last 15 minutes that ‘made people gasp’ and generated the most discussion.

To provide some context to the rest of this post, the core of all the discussions I have heard, read or been involved in largly related to one, some or all four of these slides to some degree or other.

Language - Flickr Link
Questions - Flickr Link
Masterpieces - Flickr Link
Insights - Flickr Link

Or the conversations centered around how Jonathan delivered the last section of his presentation (PlayPen has the audio and also as a download.

It would also be worth reading the post Jonathan has made as a more detailed explanation of his presentation.

The discussions that have taken place since Jonathan's presentations reminded me of my days in College or University. They are the conversations of people with fire in their bellies, opinions to be voiced and ideas that they needed to be heard. The discussions have often been heated, fiery even.

At university after any of the students presented work to ‘the group’ there would always follow a period of discussion and dissection of the work and also the ideas behind the work. Unfortunately Jonathan left no time at the end of his presentation for questions or discussion. As a result I feel slightly cheated that Jonathan left no time for the crowd to talk to him and provide him feed back on his work, ideas, and the assumptions he may or may not to have made. So here are some of the things I would have liked to discuss with him.

Personally for me one of the failings of the last 15 minutes of Jonathan’s presentation was the feeling of an underlying message that Art should have a message, a story or something to say to the viewer. That for our work as practitioners of ‘new media’ to be considered Art it must move beyond the tools that are used and say something of value about the world we live in today.

I don’t believe this is true. Yes i agree that throughout art history there have been artist and art movements that concerned themselves with providing a commentary or message on the society of the day, but there have also been great artists and works of Art that are nothing more than the realization of the ideas, concepts, emotions or any aspect of the human condition. We call it Conceptual Art, Art that investigates a concept or an idea rather than presenting a message, story or subject that the viewer must interpret and understand. Additionally and slightly more cynically there are HUGE quantaties of Art works that may only exist because someone was willing to pay for them to be produced, they were commissioned to the artist that went on to produced them. It is no coincidence that Art is referred to as ‘Works of Art’ or ‘Art Work’, Artist coming from the original Artisan.

One trained to manual dexterity in some mechanic art or trade; and handicraftsman; a mechanic

( Webster's Revised Unabridged Dictionary. MICRA, Inc. 16 Oct. 2008)

Art was generally a paid profession. I defy you to name an artist that has not received some form of payment for their work, and not been considered a failed artist.

On talking about the adoption and application of new mediums into the artistic relm Jonathan had this to say (Time Stamp 1:05:59 from the MP3).

Artists grope with the new medium to say something that needs to be said about the world, to process reality in some way.

I feel this is a sweeping statment that is only I belive is only partly true. I feel it misses the concept of the artist as artisan. Historically new tools, mediums and techniques are embraced by artists artisans or crafts people as ways to better complet their work, expressing their ideas, and bringing their concepts to life, or to a state they are able to call ‘complete’ . For example its been shown that early photographic methods were employed as a tools by painters so they could more closely depict the reality of a scene by way of ‘tracing’ a projection, thus speeding up production. Technology, tools and mediums are not always about the message, they can simply be the means to an end product. The most direct or natural way for the artist to reach a creative destination.

On talking about Language Jonathan said this (Time Stamp 1:08:47 from the MP3)

We speak a new and powerful language, capable of saying things no other language can say.

Once again I have to disagree with Jonathan at a very basic level. I feel that we, as modern society, do not speak a new language. We do have new tools, techniques and technology with which we are able to conceptualise, express, externalise, present, publish and disseminate our ideas, concepts, emotions and yes our messages. But the language is still the same. We use the language of human creativity, a very raw and base form of communicating. It allows us to express ourselves externally to any number of others humans that happen upon us, or that in some cases will explicitly ask us to externalise some aspect of ourselves. This expression is regardless of form these aspect of ‘us’, ideas, concepts or opinions, feelings, emotions might manifest themselves. For example through speech, dance, mark making, or any other activity or action that we as humans embed on the reality unfolding around us. Its a big subject, far bigger than I am able to express. Maybe I could draw it.
;)

I will cut this post short(er). I very much look forward to a future opportunity to talk in person with Jonathan, I feel there some fantastic conversations to have with him, great ideas and opinions to chew over, I only regret I missed the chance in Brigton. As way of closing. Jonathan posed these questions, among others.

Can it make someone gasp or cry

Will it be relevant in 25 years

and

Does it compare to the masterpieces of other mediums

On the first question, I believe it is incomplete. I would prefer.

Can it make someone, gasp, cry, laugh, shout, spit, scream, kick or even kill. For me in order that the products of Artisans to be considered Art, the viewer, user or audience should be unable to contain there own emotions and will find any way they can to express a reaction to that ‘other’ idea which they are experiencing.

On the last two questions, if any of people that we consider masters today had asked those questions would they have bothered to produce the work that we, today, now consider master pieces. Would Picaso have produced Les Demoiselles d'Avigno having compared it to La Grande Odalisque by Jean Auguste Dominique Ingres, would Jeff Koons have had his Michael Jackson produced having compared it to Michelangelo's David. Could Leonardo really have know that the Mona Lisa would be such an iconic image today. Would Duchamp EVER, after any of Jonathan’s questions, have conceived his Fountain?

These pieces are considered Masterpieces now, but what evidence is there that they have always been Masterpieces to every age though history. When does a Natzke, a Harris or a Hodgin turn from a piece of modern virtuosity in the medium of 'New Media' into a Masterpiece of our modern time? Who has the right to declare they haven't already? The term Masterpiece is as subjective as the term Art.

I very much enjoyed the presentation Jonathan gave, I may not have agreed with everything that he said, but I love the fact that it brought back some of that fire, there is nothing like a conceptual conflict to get the mind racing.

Today, I feel like an Artist.

I am an iPhone owner. This is my confession.

October 14th, 2008

I have become a member of an insignificantly small (at the moment), yet very vocal and very visible sub-group of mobile device users. That's right, I have an iPhone, and you know what, I'm not too disappointed using it. Some (well, ok, most) of the time. Frankly there are some things that quite frankly rock so much on the iPhone it's silly. Especially if you get it on a decent data tariff.

Firstly is the fact that I am able to have written all this more than comfortably as I queue at the post office, while simultaneously enjoying my mp3 tunes, all from the one device. Class.

The second thing that I really hadn't realisd was how good (no. Fantastic) the web browsing is on the iPhone. I did use my n95 for browsing, but the using direct touch input does change the experience entirely. My mobile web usage has certainly increased with the iPhone.

Just about at the counter now.....

Thirdly since owning my iPhone my personal data has never been more 'in sync'. The docking of the device and syncing of information to my MacBook Pro just works so, so so well. I am by no means an well organised person, but thanks to this device and the way it syncs so painlessly with iTunes, iCal, Address book and Mail is great.

These three thngs are absolutely fabulous. I love them. Thank you Apple.

However. Something I noticed soon after I took ownership of an iPhone was the number of other iPhone owners who would great me thus "So you got an iPhone then, what do you think?". It was as though they had doubts about there own purchase, like they wondered if they were alone in feeling disapointed with it at times.

Don't get me wrong, the iPhone really is a 'pretty thing' and some of what the iPhone does, make no mistake, it does far better than anything else out there. Then on the other hand, Apple have really screwed the iPhone up. They have missed off some things that any fool could see are now standard issue on even the most basic devices on the market. The conspiratorial side of me would even say that, maybe, the iPhones short comings are missing by design.

Here for me are the things that are unforgivable for their absence from the iPhone.

1. No replaceable battery, in this day an age there are so many reasons this is wrong. There is no more blatant example of planned obsolescence than seen in the iPods and iPhones from Apple. At some point in the future, you are going to have to replace this device, or pay Apple a lot of money to change a battery. Ridiculous. There is part of me that is really disapointed at my self for supporting a company that is so morrally irrisponsible to encourage such a thow-away mentality.

2. No copy and paste functionality really sucks, there appears to be no reason for this not being present. Its a useful feature that has been present and available to even the most basic computing devices for as long as I can remember. Heck even the earliest of calculators had the equivalent of copy and paste in the form of "memory recall" its shocking to think that apple are so sloppy to have over looked such a fundamental feature. Remember form follows function.

3. No forwarding of Contact details. Again something that has been possible on every phone I have owned for the last 8 or 9 years. No sending of business cards, no vCard forwarding support. It bites.

4. No tethering. Apple I hate you for this.

5. The camera is shockingly low spec for a device of this price range. low quality, no video. Once again the only real reason seems to be to form a culture of upgrading the device.

I know none of this is new. The fact is, I knew all about these things, I knew they would suck. I knew I would still rely on my N95. A 2 year old device that I still think is more capable as a modern mobile device than the iPhone 3G, but you know what, I already feel better for having got it off my chest. It may even help me enjoy my iPhone more now that I have 'put it out there'. My Name is Dave. I am an iPhone owner. Its been 3 minutes since the last time i bitched about my new device...

Adobe Release Device Central Device Update 7

September 24th, 2008

Mark Doherty over at Flash Mobile Blog has just posted the news that Adobe have release the seventh update to device profiles for Adobe Device Central CS3.

Headline Numbers for this update:

261 profiles included
57 new devices
updates to 204 existing profiles
In total that makes 525 device profiles for you to create content with

Download Adobe Device Central Update 7 from here.

Apple’s App Store heads towards Orwellian Nightmare for iPhone Users

September 15th, 2008

Following my recent post musing as to The Real Reason Flash Isn’t on Apple’s iPhone?, more news of how Apple is tightening its grip over the iPhone, its developers and its users began to filter through. I don't think there could be any confusion as to the intentions of Apple and the control they have over App Store and the Applications that they sell on or through it. Apple are willing, ready and able, to block any trouble makers that might upset Apple's new ivory tower.

First came news of Apple's 'Kill List' that could allow Apple to remove 'unwanted' apps from the iPhone. While it is said to be for the removal of malicouse applications, there is no real reason it would not be used for any iPhone application. This could presumably be regardless of wether users may have paid money for them or actually want the applications them on their iPhone.

Second came the news that Apple had removed Nullriver's NetShare application from the app store, and that it was unlikely to return in North America. The application provided a way for iPhone users to 'tether' there iPhones to a laptop, while iPhone user may have found this functionality useful. Unfortunately Apple felt it was best not to allow its iPhone users that choice.

Finnaly came news of the removal of the "Podcaster" application from App Store. This time the reason would seem to be it competes with Apple on its own platform! There are som many comments and comparisons that could be made here with another software company that took a step to far in flexing its anti competitive muscles thats its not even funny. Cough "M$" cough "anti-trust" cough.

If iPhone users want to spend $999 on a red ruby application. I say let them!

In the real world if you can't find the product you really want in one shop, you walk next door, or up the road, or go online until you find it. But what if there is only one shop? you don't have a choice! Apple's App Store is that one shop as far as iPhone applications go. Unless you jail break your iPhone and invalidate you warranty.

All the control Apple are now beginning to wield over its iPhone, iPod Touch and App Store developers and users is, of course, in the best interest of the consumer and their user experience. It is certainly NOT a terribly slippery slope that is already eroding consumer choice. Where does it end?.

Flash Lite 3 Training est Bonne!

August 8th, 2008

This week I took 3 days to attend a Flash Lite 3 training course being provided by Adobe software that was presented by Dale Rankine from Moket . It was a fantastic training course, very well presented and chock full of useful information. Thanks to Dale, Suzanne and Adobe for arranging, organizing and presenting the training course.

The training course was held in Paris which meant a broad mix of different european mobile developers were attended. Its the first training course I have attended and I was surprised at the breadth of experience of the other attendees. A range of backgrounds from designers, lectures, flash developers, service operators and also mobile Java developers.

The wide range of knowledge and experience made for great discussions regarding development practices, the future of mobile, and also the part that Flash, Flash Lite or Flash Platform might play in the emerging mobile data and services market place. I imagine it also made for a real challenge to present to us at times!

These are exciting times to be involved in Flash Lite and mobile development in general. Battle lines still seem to be being drawn between a number of companies, technologies, services and a whole mix of different mobile phones and other devices. Training courses and conferences and gatherings like this and LFPUG which bring together such mixed skill sets offer a great chance to get under the marketing hype and speak to the people actually involved.

Very enjoyable and informative, thanks everyone involved.

The Real Reason Flash Isn’t on Apple’s iPhone?

August 8th, 2008

Recently Wired posted an interview with The Mozilla CEO John Lilly. Towards the end of the interview Wired asks the question.

Wired: Are you going to develop a version of Firefox for the iPhone?

and the response?

Lilly: No. Apple makes it too hard. They say it's because of technical issues — they don't want outsiders to disrupt the user experience. That's a business argument masquerading as a technological argument.

After dwelling on this I thought, this response could be applied to any number of technologies and applications. Not just Fire Fox. Everyone is now familiar with Apple's response to the Flash Player going on the Apple iPhone. What if that response was also nothing but "a business argument masquerading as a technological argument"?

On the flip side if Apple were to make it easy for any such 'outsiders', as Lilly puts it, to get on its beloved new device then it could be the thin end of the wedge. For arguments sake if Apple were to allow Fire Fox with its XULRunner offline runtime engine on to the iPhone, then surely there is room for Adobe (Flash Player), Sun (Java Runtime) and even Microsoft (Silverlight) to all call foul play?

I dont know the technical capabilities or requirements to each of these runtime technologies. But making it diffiicult, or saying it technically cant be done does make for an easy way to keep a platform closed. I am not sure the advantage to Apple to shut these other technologies out? Is Apple acting in the best interest of its iPhone users and the user experience they receive? Or is something more sinister going on? Is it an attempt to lay claim to the mobile web, blocking out the competition while pulling those lovely user experiences and interfaces over our eyes?

What ever the reason, currently the message seems clear, with Apple and their iPhone, regardless who you are. Its do it Apple's way or not at all. Maybe iPhone doesn't need flash, but as a flash platform developer and an Apple user, it seems a shame that its missing to me.

Upcoming Events for London Based Creatives & Coders

July 23rd, 2008

Next week London based creatives and coders have 2 events going on that they might want to sign up to attend. First up is the Poker Coder poker tournament. Previous Poker Coder tournaments have offered a great networking opertunity and are also great fun as well. Bonus. Full information and sign up instructions can be found at pokercoder.com, while you are visiting, take a little extra time to check the prizes. Tasty! Those of you that have signed up to previous Poker Coder tournaments should have received a priority email with the sign up instructions already. However if you email is client is any thing like mine then its quite possible it this email has been filtered into the junk folder, so you might want to have a quick look.

Poker Coder Bet Fair Poker Tournament
Web: pokercoder.com
Date: 29th July 2008 (29/07/2008)
Time: 19:00 sharp
Venue: Grosvenor Casino London Victoria, 150-162 Edgware Road, W2 2DT

Also next week is the London Flash Platform User Group. Held at its now familiar location of the Cosmo Bar in Clerkenwell. Full details of this months meetng can be found and sign up instructions are at lfpug.com . Here is a breif summary of this months presentations.

Source control for Flash (19:00 - 20:00) - Juan Delgado
Source control is probably the very base of software development. This is going to be a very practical session to get you started on SVN where we will go through the basics: creating a repository, check out, commit, revert, diff, etc.

Developing Flash Content For Mobile (19:00 - 20:00) - Dave Williamson
With the increased interest in the mobile internet I will to provide practical tips and information on how you can leverage Flash Lite Player on Mobiles and how that content can cross to other devices

The more observant of you will notice that I will be presenting some of my Mobile Flash Development Knowledge.

London Flash Platform User Group
Web: lfpug.com
Date: 31st July 2008 (31/07/2008)
Time: 19:00 - 23:00 (doors open at 18:30)
Venue: CosmoBar, 50-54 Clerkenwell Road, EC1M 5PS

Free Flash Lite Components Bonanza!

July 21st, 2008

I you are a Flash developer producing mobile content for Flash Lite then this week end you really hit pay dirt. First Nokia announced a set of Components for Flash Lite 2. Next Adobe also release a set of Components, for use with Flash Lite 1 and also Flash Lite 2, courtesy of Mark Doherty. Finally Scott Janousek resurrected the google code links for Shuriken, a set of open source Flash Lite2 components from last year.

So with all these 'new' flash lite components available what can you expect from each component set?

Nokia Flash Lite 2 Components
Nokia have provided their Flash Lite 2 Component set as an MXP file for simple installation into Flash CS3, the components are easily accessible from the components panel once the MXP has been installed. Included in the zip file you download is a full readme.txt explaining how to install the MXP file through Adobe Extension Manager. The components also include full usage instructions in the form of flash help files and usage examples. Flash Lite Components that are included in the distribution are:

  • Signal Level display, including network generation.
  • Battery level display.
  • Dynamic List Component.

The Signal and Battery indicator components react to softkey placement/screen orientation. All three of the components have easily accessible skin components in the library, and also allow limited visual control from the properties panel. Mark Doherty noted that the components appear to be quite memory hungry. The Signal and Battery Indicators seem to use in the region of 600k according to Adobe Device Central, the Dynamic List Example reports around 800k although the actual memory usage of the list without a demo data set is closer to 700k.

Download the Nokia Flash Lite 2 Components

Adobe Flash Lite 1 & 2 Components and UI Examples
Over at flashmobileblog Mark Doherty has released some UI components as well. These are provided for both Flash Lite 1 and Flash Lite 2 projects. There is limited documentations for the examples, the Flash Lite 2 examples look like they should be easy to integrate as long as you intend to use them 'as is' in this case they would simply require the addition of key listeners to control them. If you needed the components to be used in a more dynamic fashion, there would probably be some work to do. Included in the Flash Lite 2 component examples are:

  • List, this offers similar functionality to the Dynamic list in the Nokia Component set.
  • Slider, This offers a horizontally scrolling icon menu.
  • Gapper, This is a vertical variation of the slider.
  • TileGrid, Shows a gridded icon menu with scrolling screen control.
  • NavModel, this demonstrates a full application screen control system, also included are working Signal and Battery indicators and a list components.

The examples in this file are certainly easy on the memory, all of them use less than 500k, this is particularly impressive of the Nav Model example given the amount of interactivity and feedback that is demonstrated.

As with any Flash Lite 1 work, making use of the earlier versions will be a little more fiddly than the Flash Lite 2 counter parts. But the code in each of the examples is clearly identified and if you know your way around ActionScript 1 you should find incorporating the 'components' easy enough. Included in the examples are the following Flash Lite 1.1 components.

  • Carousel, A full screen horizontal slider.
  • Displays, demonstrates the various device stats you can access from Flash Lite 1, also included are battery and signal indicators.
  • IconMenu, offers a FlashLite 1 version of the Slider component in the Flash Lite 2 set, this is similar to the functionality produced in the tutorial here.
  • Menu, actually seems to be a Flash Lite 2 example, an alternative dynamic list example.
  • Story, This is an example of scrolling text in flash Lite 1, similar to the scrolling text component I have released.

Agin the Flash Lite 11 components are very efficient when it comes to memory usage. None used more than 400k when published, and most were below 300k. The trade of with both these example sets from Adobe seem to be the slight increase in the amount of work you would need to do to integrate them. The other thing to note, is that these examples do offer examples of far more compelling UI methods than simple lists.

Download the Adobe Flash Lite 1 & 2 Components and UI Examples

Shuriken Open Source Flash Lite 2 Components
The last set of Flash Lite components are those that

  • Scott mentioned, the Shuriken Components. I stumbled upon these components some time ago, I am not sure if the project is still live or has fallen dormant. The project offers a fairly comprehensive attempt at providing a full component framework to Flash Lite 2 developers. Included in the distribution zip are source class files, and example .fla's for each component in the library.

    • Button
    • Calendar
    • CheckBox
    • ComboBox
    • DateEditor
    • LinkButton
    • List
    • Loader
    • NumericStepper
    • RadioButton
    • RadioButtonGroup
    • ScrollableList
    • SimpleButton
    • TextArea

    While the examples are good they do seem to be quite heavy in terms of memory usage, and they are not without issues. The scrolling list example for instance takes around 700k to display, but more concerning is that this memory usage raises during operation, implying the component has a memory leak somewhere. The complexity of this initiative while making development easier, may be its problem. Complex class structures in Flash Lite tend to give rise to cross references and memory leaks quite quickly.

    Download the Shuriken Open Source Flash Lite 2 Components

    So there we have it 3 sets of components, all certainly have there advantages and disadvantages. The Nokia Flash Lite components are great for Plug and Play development, I would say the Adobe UI examples are great for producing engaging canned demos as they stand, but with a bit of work could be converted for very memory efficient project use, and the shuriken component frame work may be a little heavy at the moment, but keep a watch on them, they could certainly offer a great, familiar framework for Flash Lite development, when they can solve the memory issues.

    Also worth a note is that Mark Doherty has put a shout out at the end of his post regarding a shelved component framework that he could release from Adobe if interest is great enough. Mark has asked the FlashLite comunity to provide some support if it were released, to document and update the project, but this could offer a great opertunity to unify the current state of disperate component solutions emerging.

    Credit where its due:

  • Does Apple’s new 3g iPhone Still Suck?

    July 18th, 2008

    Back in November I posted a post titled "9 reasons the iPhone Sucks!". It was a quick link to some comments a friend made regarding the iPhone being 'a little disapointing' when he first took delivery of Apple's shiney new device. At the time I only had 3 gripes with Apple's original mobile device.

    Since Apple has released the 3g iPhone I have read a number of online posts & articles as well as hard copy newspapers & magazines all detailing the new device. To be fair you couldn't read much else than stories about the iPhone for a while.

    Also, since November I have ben using my trusty Nokia N95 more and more, despite its age. As a result I feel I know more about my personal mobile usage requirements and am more knowledgeable about my expectations of a mobile device now as well.

    Following a new comment posted on my original "9 reasons the iPhone Sucks!" post I thought I would revisit the subject, referencing the 3g iPhone this time.

    In my original post the three issues I had with the iPhone were as follows.

    1. 2 mega pixel camera with no video. Nokia N95 has a 5 mega pixel camera and full screen video recording and tv out playback. Result.
    2. No 3g internet connection. Nokia N95 once again comes up trumps in this department with 3G and HSDP access. Result.
    3. No decent Data package, 18 month contract. N95 on T-mobile with web & walk max. 10 gb data voip and 3g. Result

    Ok so the lack of 3g connection is now null and void, well done Apple. Or is it. Over the last 9 months only a small percentage of my 3g connection usage has been 'On Device', most of my mobile 3g usage has been by hooking the N95 up to my Mac Book Pro as a 3g Modem, either over BlueTooth or USB. Despite the iPhone being from the same company as my laptop, apparently there is no easy way to make it work as a 3g modem? DOH!

    You could argue I may be able to complete some of the tasks I use my laptop for on the iPhone, for example email and web browsing. I remain unconvinced they will be as easy to complete though, I fudge the on screen keyboard alot for one thing, I know I have tried many times in store.

    There are however tasks I know full well I will not be able to accomplish, Flex development linked to a live data source while traveling on the train down to Devon for example. For those tasks I will still need a 3g modem connected to my Mac Book Pro.

    The next thing is the 2 mega pixel camera on the Apple iPhone versus the 5 Mega pixel camera on the Nokia N95. Well Apple havent done much there the camera is still 2 mega pixels, despite reports that say the chipset should support 5 mega pixels. Over the last 8 months I have been using the camera on my Nokia N95 more and more. As with anything, you can never go backwards to an inferior product. In addition I quite like sending photos of the surf down in Devon to people I know are still in London :D . Sorry Sean. I understand this isnt so easy on the new 3g iPhone either?

    Finnaly the data package. I will be honest, I am not sure if I even need the 10gig of data transfer I currently have availible on my current mobile tariff, I havent looked too much at the new mobile data tariffs from O2 to compare them to t-mobile either.

    So there is no way I will be getting the new phone either, right? Weeeeeell there is one issue. As Tink mentioned in the comments on the original post. The coverage of t-mobile is sketchy, particularly in Devon. It might be that the fact I need to be able to do a simple thing like call people on my mobile phone, regardless of which device it is, means I swap to O2, wich has great coverage 'down south'. If I was doing that anyway, it would be rude not to upgrade :D

    NEC Demos Adobe Flash Lite Intellectual Property

    May 16th, 2008

    Following the announcement from Adobe of the open screen project, news comes from the Embedded Systems Expo that NEC is showing what sounds like it might be an alternative to Adobe's Flash Lite Player.

    Its a little hard to make complete sense of the post from EETimes.com. But some interesting quotes from the short, slightly cryptic article:

    By using our new IP, one can design a portable device capable of processing Adobe Flash Lite several times faster, when compared with using a processor.

    Also in the announcement is a hint of better video quality as well.

    After reducing the number of gates required for an IC and further tuning the video quality output by Adobe Flash Lite, NEC will start offering its IP in August this year.

    One thing that does seem to be missing is an explanation of which Flash Lite version they are supporting, although the mention of video implies this is based around the FlashLite 3 player.

    You can read the full (breif) announcement of NEC's new Flash Lite IP over at EETimes.com.

    One further interesting thing is that I could find no mention of NEC being involved with the Open Screen Project from its press release.

    Credit where its due: EETimes.com

    Flash Player 10 available from Adobe Labs – codenamed “Astro”

    May 16th, 2008

    I have just popped onto the Adobe Labs website and noticed that Adobe have made version 10 of the Flash Player available for download. The player has the code name "Astro" and looks like it was posted yesterday 15.05.2008.

    Key New Features

    3D Effects - Easily transform and animate any display object through 3D space while retaining full interactivity. Fast, lightweight, and native 3D effects make motion that was previously reserved for expert users available to everyone. Complex effects are simple with APIs that extend what you already know.

    Custom Filters and Effects - Create your own portable filters, blend modes, and fills using Adobe® Pixel Bender™, the same technology used for many After Effects CS3 filters. Shaders in Flash Player are about 1KB and can be scripted and animated at runtime.

    Advanced Text Layout - A new, highly flexible text layout engine, co-existing with TextField, enables innovation in creating new text controls by providing low-level access to text offering right-to-left and vertical text layout, plus support for typographic elements like ligatures.

    Enhanced Drawing API
    - Runtime drawing is easier and more powerful with re-styleable properties, 3D APIs, and a new way of drawing sophisticated shapes without having to code them line by line.

    Visual Performance Improvements – Applications and videos will run smoother and faster with expanded use of hardware acceleration. By moving several visual processing tasks to the video card, the CPU is free to do more.

    An further note of interest is that the player is released on multiple platforms straight off the bat. Over on the Flash Player 10 Download Page you will find Mac, Windows and Linux verions of the flash player 10.

    Full information is available from the Flash Player 10 Labs Page

    Moving Application Windows in OS X via Apple Script

    May 8th, 2008

    Those of you lucky enough to have multiple monitors hooked up to you MacBook or MacBook Pro when you work may have come across this issue. When you remove that extra monitor some applications don't get re-positioned back on to your laptop display. I had this with one particular application that I use frequently, KeePassX. Well somewhere along the way I dug up this use full terminal/apple script that solves the issue.

    1.  
    2. property processesToIgnore : {}
    3. tell application "Finder"
    4. set _b to bounds of window of desktop
    5. set screen_width to item 3 of _b
    6. set screen_height to item 4 of _b
    7. end tell
    8. tell application "System Events"
    9. set allProcesses to application processes
    10. set _results to ""
    11. repeat with i from 1 to count allProcesses
    12. set doIt to 1
    13. repeat with z from 1 to count processesToIgnore
    14. if process i = process (item z of processesToIgnore) then
    15. set doIt to 0
    16. end if
    17. end repeat
    18. if doIt = 1 then
    19. tell process i
    20. repeat with x from 1 to (count windows)
    21. set winPos to position of window x
    22. set _x to item 1 of winPos
    23. set _y to item 2 of winPos
    24. if (_x < 0 or _y < 0 or _x > screen_width or _y > screen_height) then
    25. set position of window x to {0, 22}
    26. end if
    27. end repeat
    28. end tell
    29. end if
    30. end repeat
    31. end tell
    32.  

    I don't recall where I may have dug this up, but if you think you know, please let me know in the comments so I can give credit.

    RIA + OSP = RAA || REA && And how to detect an Open Screen Device

    May 6th, 2008

    Keeping with the algebraic/code functions as titles from my Last post I thought I would put some thoughts down regarding the news from Adobe earlier this week of their Open Screen Project (OSP). Anyone working in the Web/Internet industry at the moment will be well aware of the Rich Internet/Interactive Application (RIA) moniker. What Adobe is committing to is much larger though this is about true cross platform convergence. Its about Rich Anywhere Applications (RAA) or Rich Everywhere Applications (REA) if you will. You see what I did there ;) .

    Interestingly this is a concept I began to scratched the surface of with my presentation at Flash On the Beach Last Year, and over the last few months has been a subject I have continued to keep close to hand both in my day job and my personal development projects. At the moment the Flash Player Fragmentation offers a considerable challenge to any developer wanting to design and or develop for multiple devices and multiple screens.

    Articles like the one posted over at ADC on adaptive screen layouts offer a great foot up. But before we get to visual display we need to know what player version we are targeting. And to do that, we have to hit the time machine button and roll back all the way to Flash 4.....

    Read the rest of this entry »

    DVI != DVI

    May 1st, 2008

    A few weeks ago as I was preparing to present at the OnAir event I had a rather untimely hardware failure on my Apple MacBook Pro. As a result I had to rather hastily prep my wife's MacBook Black to present from. One of the preparations was to make sure I would be able to connect the machine to a projector, as any apple laptop owner will know its important to carry a DVI to VGA connector at all times.

    However the MackBook black uses the mini DVI connector, as a result I thought it would be a snap to just pick up a Mini DVI to CVI connector, and then from there I could use the DVI to VGA connector I already own. Not so. Despite the packaging suggesting otherwise, the DVI result from the apple mini DVI connector is not a standard DVI out. There are 4 pins "missing". The pictures Below explain better.

    AppleScript Fix for Error 51: Unable to communicate with the VPN subsystem on Cisco 3000 VPN Client

    April 10th, 2008

    Over at Ian Talks Tech my friend Macca recently posted a fix for the "Error 51 : Unable to communicate with the VPN subsystem" error from a cisco vpn client. I had also encountered the same problem some time ago and it brought my own memories rushing back. I had initially discovered a fix for the error 51 problem over at a different site, Anders.com . Since finding the one line terminal command answer to the issue that my cisco 3000 client had thrown up I thought no more of it. Ian's post jogged my memory about my own search and I immediately put my copy and paste skills to good use to come up with an apple script that you can run to fix this cisco vpn client error.

    All you need to do is open the apple script editor.

    "/Applications/AppleScript/Script Editor.app"

    Then paste a similar line of code to the commands that Macca and Anders mentioned:

    1. do shell script "ifconfig fw0 down" with administrator privileges
    2. do shell script "ifconfig fw0 up" with administrator privileges and password
    3. do shell script "/System/Library/StartupItems/CiscoVPN/CiscoVPN restart" with administrator privileges and password

    Feel free to run the apple script to test it, just note you will be asked for an administrator password for the script to run.

    Once you are happy you should compile and save the script to keep it safe, or "save as" and choose application. Alternatively, you could just download the AppleScript Fix for the "Error 51: Unable to communicate with the VPN subsystem" problem, that I have pre compiled as an application.

    Credit where its due.
    Ian Talks Tech for jogging the grey matter.
    Anders.com for solving my problems when I had them.
    Apple for showing me how to do shell scripts in Apple Script.