Adobe Open Screen: Will Apple make their own Flash Player for the iPhone?

Adobe recently announced the ‘Open Screen‘ initiative which further opens up the SWF format along with the FLV / F4V video specifications along with . The Open Screen FAQ explains the core deal:

  • Removing restrictions on use of the SWF and FLV/F4V specifications
  • Publishing the device porting layer APIs for Adobe Flash Player
  • Publishing the Adobe Flash® Cast? protocol and the AMF protocol for robust data services
  • Removing licensing fees ? making next major releases of Adobe Flash Player and Adobe AIR for devices free

The FAQ also explains why Adobe is opening up these specifications:

Publication of an unrestricted SWF file format has long been requested by the Adobe Flash developer community. The longstanding publication of the SWF specification has fostered a vibrant ecosystem of companies and developers who create experiences with Adobe Flash technology and by removing the SWF licensing restrictions we are allowing that growing ecosystem to use the file format for any purpose, including the ability to playback SWF content

Additionally, Adobe intends to make Adobe Flash Player and Adobe AIR for devices free, starting with the next major releases for devices, along with publishing the device porting layer APIs. As a result of these moves, OEMs, software developers, and content owners will be able to deliver content and applications built with Adobe Flash and Adobe AIR technologies without concerns about device restrictions. By removing the licensing cost and restrictions, as well as opening up the protocols and porting layer, Adobe is making it easier for developers and partners to deliver more engaging experiences to more of their customers, and ensuring that audiences can engage with content no matter what device or medium they use.

So, with that background detail out of the way I’ll get onto my main question:

Will Apple get involved in the Open Screen project and provide support for Flash, or at least Flash video, on the iPhone / iPod Touch?

Steve Jobs was recently asked about Flash support on the iPhone by saying ?there?s this missing product in the middle?. What he was referring to is that you’ve got the full Flash Player which is very processor intensive and best suited for desktop PCs and laptops and then you’ve got the streamlined Flash Lite intended for mobile devices. Steve Jobs’ opinion is that the full version is too intense for the iPhone whilst Flash Lite lacks a lot of important functionality.

Could Apple provide at least some form of Flash support on the iPhone / iPod Touch by getting involved in Adobe’s Open Screen initiative and implementing only the parts they wish to have for Flash playback but all within the confines of the Quicktime framework itself I can see how this could fit in on regular Mac OSX as well as on the iPhone / iPod Touch too. I think it presents a really interesting possibility.

I have another reservation about Apple’s willingness to support Flash though, perhaps it’s not in Apple’s interest to further the spread of Adobe’s Flash platform? Apple certainly don’t intend to allow companies to develop runtime environments of their own for use on the iPhone / iPod Touch as the terms of the iPhone SDK specifically state:

"No interpreted code may be downloaded and used in an Application except for code that is interpreted and run by Apple?s Published APIs and builtin interpreter(s)…"

So, that certainly seems to close the door for Java, Flash, Silverlight, etc, etc. Despite this possible reason I still think it is possible that Apple could provide native support for Flash video playback, at the very least, on the iPhone / iPod Touch.

~Rick

Intel chips do not a virus-magnet make!

Browsing around the BBC website the other day (enjoying their new updated customisable homepage!) when I came across a Blog post titled: "Mac virus alarm is sounded – again". The author, Derren Waters, begins warily:

I hesitate to write this, mainly because I fear the response, but does anyone who owns a Mac actually use any anti-virus software?

It’s an interesting question and one which a friend asked me at work recently as he had just purchased his first Mac – a nice shiny MacBook. Derren’s blog post received a lot of comments ranging from "Macs are not real technology", "Mac users are so smug", "I use anti-virus just to be safe" and the perennial favourite "Macs don’t get viruses because they have a much smaller market share so virus writers don’t see them as much of a target"!

I don’t think these comments are surprising, no harm in running antivirus software if you want to (although much antivirus software on both Windows and Mac is renowned for causing performance issues, cough, mcafee…).

Amongst the many comments one stood out to me in particular as it suggested that as Macs now use Intel chips they are somehow more vulnerable than when they were running on PPC chips:

Yes, I use Macs and I do use antivirus software. It is only a matter of time before we users get hit with viruses; even more so now with the Intel processors being used in more and more Macs

There’s not really any logic to this suggestion, it’s the operating system and not the chip that presents the vulnerabilities, Windows wouldn’t be any more or less secure whether it was on PPC or Intel. I do appreciate there are perhaps specific functions in processors that could in theory be a gateway for malware of viruses but it would still have to get past a piece of software in the form of an operating system or at least firmware.

Personally I don’t run antivirus on my Macs as I don’t see it as necessary. Running a Firewall is a good idea and going online via a router with a firewall is also a great way to remove your computer from port scanning script kiddies too. Obviously it’s important not to be naive (or smug!) but OSX’s UNIX heritage provides a very secure base to the operating system, the biggest risk a Mac user faces is themselves as the closest thing out there to any kind of malware or trojan for OSX involves the user being duped into running something because they didn’t expect.

If you’re a Mac user and you’re concerned about security then I’d suggest the following simple steps:

  • Disable the ‘Open "safe" files after downloading’ preference in Safari – this stops images, movies, sounds, text from opening and disk images from mounting automatically after downloading. This alone is a simple way to stay in control of files being opened.
  • Make sure your firewall is enabled
  • Enable software update to automatically download updates, and make it check at least weekly if not daily for any available updates. Apple release software updates fairly frequently including a fairly regular Security update.

I tried to post a comment on the aforementioned blog post but the blog tool behind seems to be faulty, so I thought I’d just write a post instead :) As I write, this comic on XKCD.com comes to mind:

~Rick

Mac OS 10.5 Leopard – Part 3: My weird Mail.app dialog box pondering

I’ve previously posted pictures in my Flickr account of the dialog boxes that appear when erasing Junk mail and erasing deleted messages in Tiger’s Mail.app. Interestingly in Leopard they’ve been updated to make the text clearer but there’s still an inconsistency in the naming of these dialog boxes and also the type of dialog boxes used for each.

Erasing junk messages uses a modal dialog box with buttons with the words ‘Cancel’ and ‘Erase’ on them, Tiger’s Mail.app used buttons with the words ‘No’ and ‘Yes’ on them instead. I still don’t see why these dialog boxes aren’t the same type and why they don’t use the same buttons and wording.

Erase Junk messages:

Picture of Leopard erase junk mail dialogue box

Erase Deleted Messages dialog box

Picture of Leopard erase deleted messages dialogue box

Mac OS 10.5 Leopard – Part 4: Software update

Here’s another thing I noticed about Leopard since running it for a couple of weeks.

Software update – Postpone reboot

It’s nice that Leopard’s Software Update gives you the chance to postpone rebooting after installations that require it. On Tiger and previous versions you would always have the windows hanging around until you made it reboot. I’ve also noticed that when you do reboot that the computer gives you more feedback on the installation as it proceeds which is cool too. It’s nice to be kept informed!

Picture of Leopard Software update reboot dialogue box

Deleting Dreamweavers _notes folders

If you’re like me and you decide not to use the ‘Design Notes’ or the synchronisation features of Dreamweaver at all (or at least not very often) and/or you use other FTP clients to transfer files and/or pass site files over to other designers to work on then you have probably been bugged to have to manually remove all of the ‘_notes’ folders that Dreamweaver makes inside every folder of your site.

I’d gotten tired of doing this manually so I thought I’d make a quick and dirty solution to it, after a little it of work using Mac OSX’s Automator application I created a script which looks for all instance of folders named ‘_notes’ and then puts them in the trash. So all I have to do now is run this application every so often and then they all get dumped in the trash leaving my folders clear and ready to pass on to someone else or upload using another FTP client.

Presenting ‘Delete _notes’

Icon for 'Delete _notes' applicationThe application was pretty simple to make using Automator and was saved as a proper ‘.app’ package application. I then went and made little icon for the file instead of the generic icon, again this is fairly quick and dirty (admittedly it looks like it’s for deleting Dreamweaver itself!!!) but it looks ok.

I then packaged the app into an installer using the PackageMaker application that is part of Apple’s developer tools to make it easy to install. Although the application can run from anywhere on your machine the installer will put it in the ‘Applications’ folder, but you can change this to any location you want.


Download ‘Delete _notes’

I’ve made the app available here to download in case it’s of any use to anyone, it wasn’t terribly complicated to build but maybe it could be useful? Please remember that you use this at your own risk, no warranty or guarantee is given or implied. You should always make sure you have backed up all files before running potentially risky software that intends to delete files like this one! That said it runs fine on my machine running Leopard and does what it was intended to do.

If that hasn’t put you off then go ahead and download it! I’ve zipped it up so it’s only about 120Kb in size

» Delete_notes.mpkg.zip

Addendum: It is possible to stop ‘_notes’ folders being made in the first place

Just in case you weren’t aware that you can stop the ‘_notes’ folders being made in the first place then I should link to an Adobe Technote explaining it. I’ve been confused by this in the past so it’s probably worth linking to here so that if you don’t want the _notes files created at all then you can do so, rather than running the ‘Delete _notes’ application all the time!

Read the Technote : "An _notes folder and dwsync.xml file are created even when the preference is turned off in the site definition"

~Rick

Configuring Apache 2 with Virtual Hosts on Mac OSX Leopard

I recently installed Leopard on my development machine by doing a completely fresh install in order to have a clean system. One thing I found that I couldn’t get running correctly was recreating my preferred Apache web server setup including Virtual Host configuration. Leopard runs Apache 2 by default but I had been running this on Tiger anyway rather than the default Apache 1.3.

Problem #1: Access denied using custom DocumentRoot

My first problem was that I like to use a different location for the DocumentRoot configuration, I keep my site files in ‘Users/rickcurran/Documents/Client_Data’ located in my Documents folder in my user account rather than in the default ‘Library/Webserver/Documents’ location. The problem I encountered was that if I changed the DocumentRoot to point to my preferred location I got a ‘Forbidden – You don’t have permission to access / on this server’ message. I tried to get it working and just gave up for a while and used the standalone MAMP application in the mean time to get working because this had no problem pointing to my custom DocumentRoot location.

Solution to #1: Change the user that Apache webserver runs as

I eventually figured out that in Leopard Apache’s default user (www) doesn’t have permissions to access my Documents folder. I simply went and changed the User and Group settings in the httpd.conf file to use my user and group and then it worked fine. I’m sure you could probably add the default Apache user to a group or some other Users / Groups / Permissions setting but for a development machine this solution works fine!

Problem #2: An alternative to name-based virtual hosts avoiding netinfo / hosts files

I like to have all my sites both current and past projects running locally so that I can fix any bugs etc without having to work on live sites. Apache’s Virtual Host configuration is perfect for the job. At first under leopard I just couldn’t get them to work but I realised that I’d simply missed something out in the configuration, so it was more a human error really. However whilst Googling trying to figure out what I’d done wrong it reminded me that most tutorials on configuring Virtual Hosts under Apache do so by using name-based hosts which require you to edit the ‘/etc/hosts’ file (or via Netinfo Manager on Tiger).

The drawback to this technique is that the sites are only viewable on your development machine, if other users on your network want to view the development sites they need to configure their own hosts file. This is a problem when you’ve got several machines that need to access the sites.

Solution to #2: Port based virtual hosts

To get around the hassle of Netinfo / hosts configuration I use an alternative virtual hosts setting which uses a different port for each site and can be accessed on any machine on the network.

To set up port based virtual hosts you need to first uncomment a line in the main httpd.conf to enable virtual hosts in the first place. Next edit the ‘httpd-vhosts.conf’ file found in ‘/etc/apache2/extra/httpd-vhosts.conf’, comment out the example virtual hosts that are there by default and then add your virtual hosts in the following way:

<VirtualHost *:80
DocumentRoot "/Users/rickcurran/Documents/Client_Data/intranet"
</VirtualHost>

Listen 8081
<VirtualHost *:8081>
DocumentRoot "/Users/rickcurran/Documents/Client_Data/myexamplesite_co_uk"
ServerName 192.168.0.2:8081
</VirtualHost>

The first sets a default virtual host on port 80, the second sets up a site on port 8081. The examples above are very basic configurations, you could add support for error logs etc but this gets them up and running.

Restart Apache by unchecking and rechecking the Web Sharing tickbox in the Sharing System Preference you should then be able to access the ‘myexamplesite_co_uk’ site by using the URL ‘http://localhost:8081’. Also anybody else on the network can access the site too without messing around with the ‘etc/hosts’ file!

Scared to edit httpd.conf etc? Try HeadDress VirtualHostX

Update: It seems as if HeadDress is no more, the website has been down for ages so I’ve updated this section to refer to another app called VirtualHostX. If you don’t like editing config files via the Terminal then there’s a nice application called HeadDress VirtualHostX that gives a nice user interface for the whole process of setting up Virtual Hosts. VirtualHostX allows you to create sites running on their own local domain name by editing your /etc/hosts/ file, you can also specify a specific port for the site too.

I still prefer using my own method #2 above as it allows multiple users on your local network to view your sites as well, whereas with VirtualHostX you’d need everyone to edit their /etc/hosts/ file. For single machine web development it’s a great application and costs only $9.00 for a licence.

Mac OS 10.5 Leopard – Part 2: Saving PDF documents

Mac OSX supports PDF natively and has always handled them quite well, one very useful feature is being able to save a PDF version of a document. This is done by simply selecting Print and then clicking on the little ‘PDF’ button in the lower left of the resulting dialog box, you then get a pop up menu with several options, the one at the top being "Save as PDF…". Give it a file name, hit save and there you go, a PDF copy of your document!

Leopard improves this PDF workflow by giving the ability to add meta data such as Title, Author, Subject and Keywords in the document more prominence by putting the fields right there in front of you as part of the Save process.

Save as PDF dialog box

A further improvement is the addtion of a ‘Security Options’ button that then allows you to restrict access to the PDF by requiring a password. You can restrict the opening of the document as well as copying and pasting text or printing the document.

PDF security options

A lot of the improvements in Leopard are the many smaller details that have been improved, these extra PDF functions make it even less essential to have any third-party PDF applications.

One feature that’s still missing is the ability to save PDF form data and re-open it – a feature that’s missing from the free Acrobat Reader too. Why this type of saving is not available in Acrobat Reader is a mystery to me, and one that is a great hinderance to the use of PDF in some of my client’s workflow.

Mac OS 10.5 Leopard – Part 1: Safari form field warnings

This is the first of a few posts about things I’ve noticed since I started using the new version of Mac OS 10.5. There’s a lot of changes in the OS, as you’d expect given that it is a major new release and 2½ years in the making, I’ve been picking up on some of the visual changes / user interface changes since the previous version.

Safari’s form field warnings

The new version of the Safari web browser in 10.5 boasts quite a lot of changes, one that I noticed was that it gives warnings if you try to close, reload or quit when you have started entering text into any text fields on the page. These are very simple changes but they are very useful.

Quitting Safari warning:

Leopard - Quit Safari - text input warning

Reload page warning:

Leopard Safari - Reload page - text warning

Close browser window warning:

Close Window - text input warning

Mac OS 10.5 Leopard in the wild

Picture of Mac OSX Leopard BoxWell it’s almost been a week since the newest version of Apple’s Mac OSX operating system was released. 10.5, or Leopard as it’s commonly known is the sixth version of Mac OSX to be released in a six year time frame, which is a pretty amazing feat really.

I’ve only been using it for a few days but I was instantly very impressed with it, I’ve been capturing screen shots of various things as I go along which I will blog about over the next few days. In the mean time here’s a couple of links to check out, especially if you’ve never used OSX before or don’t know anything about the new version:

~Rick

Apple publishes ‘Optimizing Web Applications and Content for iPhone’

Apple published Guidelines for developing web content for the iPhone over at http://developer.apple.com/iphone/. It’s good to see a focus on standards based development being encouraged there, it makes sense given that the Safari browser on the iPhone has great support for XHTML and CSS, particularly CSS 3 properties – of which the iPhone makes particular use of, more of that in a moment.

Quick overview of the Guidelines…

The guidelines are split into several sections:

  • Understand User-iPhone Interaction
  • Use Standards and Tried-and-True Design Practices
  • Integrate with Phone, Mail, and Maps
  • Optimize for Page Readability
  • Ensure a Great Audio and Video Experience
  • Know What Safari Supports on iPhone
  • Connect With Web Developers

Understand User-iPhone Interaction

This section introduces you to the whole concept of interacting with the iPhone, mainly that the input device is not a mouse but your hand so it’s not as precise as a mouse so web interfaces for the iPhone need larger click targets to interact with. As has been pointed out on various blogs there is no copy and paste, but there is also no drag and drop or text selection either so this is another factor to keep in mind.

Safari on iPhone doesn’t have windows that can be moved around or have scroll bars like a conventional browser, content is resized intelligently to fit the viewing area, it is recommended to avoid wide blocks of text. Double-tapping is used to zoom in to content.

Use Standards and Tried-and-True Design Practices

This section really reinforces the use of web standards for designing pages for the iPhone. Makes the point that Safari on iPhone uses a ‘real’ browser in that it doesn’t use stylesheets targeted towards handheld devices, it’s intended to give a rich browsing experience by supporting HTML 4.01, XHTML 1.0, CSS 2.1, partial CSS 3.xx, JavaScript 1.4, DOM support, AJAX, XMLHTTPRequest.

It encourages the use of separate HTML, CSS and Javascript as well as using valid HTML, and also optimised images and script content to keep sites running smoothly.

Apple published Guidelines for developing web content for the iPhone over at http://developer.apple.com/iphone/. It’s good to see a focus on standards based development being encouraged there, it makes sense given that the Safari browser on the iPhone has great support for XHTML and CSS, particularly CSS 3 properties – of which the iPhone makes particular use of, more of that in a moment.

Quick overview of the Guidelines…

The guidelines are split into several sections:

  • Understand User-iPhone Interaction
  • Use Standards and Tried-and-True Design Practices
  • Integrate with Phone, Mail, and Maps
  • Optimize for Page Readability
  • Ensure a Great Audio and Video Experience
  • Know What Safari Supports on iPhone
  • Connect With Web Developers

Understand User-iPhone Interaction

This section introduces you to the whole concept of interacting with the iPhone, mainly that the input device is not a mouse but your hand so it’s not as precise as a mouse so web interfaces for the iPhone need larger click targets to interact with. As has been pointed out on various blogs there is no copy and paste, but there is also no drag and drop or text selection either so this is another factor to keep in mind.

Safari on iPhone doesn’t have windows that can be moved around or have scroll bars like a conventional browser, content is resized intelligently to fit the viewing area, it is recommended to avoid wide blocks of text. Double-tapping is used to zoom in to content.

Use Standards and Tried-and-True Design Practices

This section really reinforces the use of web standards for designing pages for the iPhone. Makes the point that Safari on iPhone uses a ‘real’ browser in that it doesn’t use stylesheets targeted towards handheld devices, it’s intended to give a rich browsing experience by supporting HTML 4.01, XHTML 1.0, CSS 2.1, partial CSS 3.xx, JavaScript 1.4, DOM support, AJAX, XMLHTTPRequest.

It encourages the use of separate HTML, CSS and Javascript as well as using valid HTML, and also optimised images and script content to keep sites running smoothly.

Integrate with Phone, Mail, and Maps

This section starts to get to more of the iPhone specific code examples that hook into the dedicated apps on the iPhone. You can click on Telephone numbers in Safari and the number will be automatically dialled, Safari will automatically convert numbers that look like phone numbers into telephone links. However you can format a telephone link on purpose:

<a href="tel:1-408-555-5555">1-408-555-5555</a>

Email links are in the standard format and open up Mail in order to send an email., links to Google maps take the standard link format also but these are opened up into the dedicated Google Maps application on the phone. I believe that links to YouTube movies do something similar but there is no mention of this in this section.

Optimize for Page Readability

This section gets more interesting and links back to my initial mention of CSS 3 properties. If you want to provide a particular window size for a page to be viewed on the iPhone you can set an iPhone specific stylesheet by using a CSS 3 media query like so:

<link media="only screen and (max-device-width: 480px)"
href="iPhone.css" type="text/css" rel="stylesheet" />

There are more guidelines for laying content out for the iPhone viewport such as a recommended width of 320px so that the layout doesn’t change between portrait and landscape modes. It also details some webkit specific CSS properties to help control text sizing. Image formats supported are JPG, PNG, GIF and TIFF.

Ensure a Great Audio and Video Experience

Formats and bitrate advice is provided here to help optimise video for WIFI and EDGE network capacities. Maximum video dimensions of 480 x 360px are recommended. Formats supported are H.264, MPEG-4, AAC-LC, .mov, .mp4, .m4v, .3gp file format, video or audio that can play on an iPod.

There is advice for the server side of providing audio and video for use on the iPhone too, interestingly the RTSP protocol is not supported but apparently only video via HTTP streaming.

Know What Safari Supports on iPhone

This set of guidelines covers the resource capacity of Safari on the iPhone. Downloaded resources such as CSS, HTML, Javascript, images or other non-streamed media must be less than 10Mb. Javascript execution is limited to 5 seconds before it times out, this will really mean people having to review their use of the various javascript libraries available and make sure that only the bare essentials are present. Interesting to see how Adobe’s Spry library stands up on the iPhone.

Other information covers support for files including the various mime types, PDF is supported but not (as has been widely covered on various blogs!) Flash or Java. I think various browser testing scripts for detecting Flash will need to be updated to factor in the iPhone’s lack of flash support. I wonder how long it will be before we see Flash on the iPhone? It surely must be coming, seems like a missing piece of a puzzle to me? It also covers the Security support of Safari such as SSL and RSA.

Connect With Web Developers

It ends with some useful web development links including W3C, WHAT-WG and Web Kit project site.

There’s a real push throughout about the fact that web standards and associated best practices are an integral part of creating successful sites that work well on the iPhone safari browser.

When I’ve got a moment I’ll try out a the iPhone specific code, especially now that my friend Alyn seems to have successfully gotten his iPhone activated, more about that on his blog I’m sure.

~Rick