On Message with Ben Gross

How Standard Is FaceTime on the iPhone? Packet Capture Verification

Apple CEO Steve Jobs announced FaceTime video conferencing for the iPhone 4 during his keynote at the Apple World Wide Developer Conference (WWDC) in June. FaceTime takes advantage of new frameworks that are part of iOS 4 in addition to the new hardware capabilities of the iPhone 4 including the front facing camera, the high-resolution Retina display, and the increased speed of the A4 processor. Jobs stated that FaceTime based on existing standards and that FaceTime itself would be published as an open standard. Packet captures of FaceTime sessions give a clearer picture of which standards Apple employs and how Apple implements these standards.

Jobs’ demonstration showed a seamless video conferencing experience that could be initiated directly as a video chat or by upgrading a traditional voice call to video. FaceTime currently only operates over a WiFi connection on an iPhone 4 and not on earlier devices. Jobs said that Apple was working on carrier agreements to allow FaceTime to work over a 3G connection. You can read a transcript of the 2010 WWDC Keynote at Macworld, view a gallery WWDC 2010 keynote images at The Mac Observer or watch the official video of the Apple WWDC 2010 Keynote Address.

Jobs stated that FaceTime was based on H.264, AAC, SIP, STUN, TURN, ICE, RTP, and SRTP standards. Stephen Strowes has a nice description of the standards and how they interact in his post iPhone4, Facetime, and open standards. Even though Jobs explicitly listed the standards on a slide during the presentation, I could find no official mention of the standards on the Apple web site or a record of a submission of FaceTime to a standards body. Apple will certainly publish all the details in time, however I wanted to see what I could verify at the present time.

I assumed that observing a FaceTime session with a packet sniffer would provide all the information needed. Unfortunately my iPhone 3GS is not capable of running FaceTime, so I looked for others who had analyzed packet captures of FaceTime sessions with an iPhone 4.

Arjun Roychowdhury and FryGuy both posted quick analyses on June 25th. Both primarily looked at the voice portion of the call setup. In Facetime on Iphone 4: Vanilla unencrypted STUN and SIP, Roychowdhury used Wireshark to find that Apple implemented the voice setup portion using standard SIP mechanisms. He posted further clarifications in the comments. FryGuy published similar findings in iPhone 4 and FaceTime Packet Capture using a Cisco ASA capture filter.

Joshua Wright’s ongoing series in the Packetstan blog is far and away the most detailed analysis of the FaceTime protocol. Wright nicely describes his use of Wireshark, videosnarf, and openssl so that others can replicate his experiments. In Face Time (part 1: Introduction), Wright provides a quick characterization of a FaceTime session, which traffic is delivered of TCP vs. UDP and which portions are encrypted. In Face Time (part 2: SIP and Data Streams), he dissects the SIP portion of the session with Wireshark and uses videosnarf to analyze the RTP media streams. Wright found that FaceTime extends SIP MESSAGE authentication in non-standard way and that neither the audio nor the video portions of the FaceTime sessions are encrypted. Finally, in Face Time (part 3: Call Connection Initialization), Wright finds that FaceTime authentication uses Jabber/XMPP with SSL on TCP port 5223 that connects to a Jabber server at Apple with client certificates. The certificate-based authentication means that Apple will be able to control which devices are able to connect to its own servers. Wright speculates that the certificate could be extracted from a jailbroken iPhone and used with other clients. Joshua’s own blog, Will Hack For SUSHI, is sporadic, but excellent.

Highly Profitable Email Newsletters

In Email Newsletters Are Still A Serious Business, Jason Baptiste continues his survey of highly successful email newsletters. He discusses the recent sale of Help A Reporter Out (reportedly sold for twenty million), Thrillist (more than two million subscribers), Tasting Table, GeekChicDaily, DailyWorth (more than forty thousand subscribers), Letter.ly, Groupon, and ScoopSt. Jason’s original article from October 2009, Email Newsletters Are Serious Business, covered DailyCandy (sold for one hundred and twenty-five million), Thrillist, Help A Reporter Out, Jason Calacanis’, and Ideal Bite newsletters.

One interesting new development is the Letter.ly service from Sam Lessin the founder of Drop.io. In F*Ck Blogging: My Last Blog Post, Sam announces the launch of his platform for paid newsletters and says he will no longer posting to his blog and will instead published a paid subscription-based email newsletter for $1.99 a month. The Letter.ly service uses Amazon for payments, although I could not find any significant documentation or what cut Lessin takes. I will be watching how the service develops with interest.

In the comments to Jason’s article, I found Email newsletters still going strong from Gus Sentementes at the Baltimore Sun. Gus describes successful email newsletters for businesses around Washington DC and Baltimore including the CityBizList real estate newsletter, SmartBrief’s hundred and fifty email newsletters, and FierceMarkets with twenty-nine newsletters and more than nine-hundred thousand total subscribers.

Why Pinboard.in Is My Favorite Bookmarking Service

Pinboard is a bookmarking service that allows you to easily save, tag, annotate and optionally share and archive bookmarks independent of your browser. Pinboard has many of the social features offered Yahoo’s Delicious service, but describes itself as “antisocial bookmarking,” which highlights its capabilities as a private and personal archiving tool. I find Pinboard a simple, fast, and reliable way for me to save bookmarks and archive web pages for future reference. I have been happily using the service for nearly five months and recommend it highly.

Pinboard has become a part of my everyday online reading. I use it to archive bookmarks as well as the full text for any article that I find interesting and articles I plan to read later. I primarily use Pinboard as a personal archive and not for publicly sharing bookmarks and I prefer it to Yahoo’s Delicious bookmarking service for this purpose, although it has fewer options for sharing and tag management. For example, it does not support the Delicious style of aggregating multiple tags in tag bundles or the ability to share a bookmark with a specific user.

To start using the service, simply drag one of the Pinboard bookmarklets into your browser bookmark bar. The first style of bookmarket can either open a new page or a popup window allows you to edit the URL, title, description, tags, and optionally mark the bookmark as private or “to read”. I use the send style of bookmarklet that Pinboard calls “read later.” This bookmarklet saves the page, automatically marks it as read later, and returns you to the place on the page where you left off without opening a new window or a popup. The “to read” status allows you to quickly build up a reading list without interrupting your workflow.

You can aggregate links posted to multiple services by configuring Pinboard to watch for links in your Twitter posts, Twitter favorites, or pages saved to Instapaper, Read It Later, Delicious, and Google Reader. You can easily save links from a BlackBerry or iPhone using a private email address from Pinboard. I find the ability to centralize my bookmarks from multiple services very convenient. Pinboard automatically expands any shortened links and stores the original URL. Full text search on Pinboard include the title, description, tags, and notes, but not the text contained in the pages themselves. Pinboard also allows you to narrow the results of queries with public vs. private status, starred status, and the source e.g. Twitter.

Pinboard offers a single paid add-on, that will snapshot archive the entire page, HTML, CSS, and images for each bookmark you save. You can then view the snapshot of the page even if the original disappears. The cost for this is $25 a year minus your sign-up price. Pinboard recently introduced a feature where all users can download an offline copy of the last 25 URLs saved. The developer says that he plans to eventually allow users to download their entire archive.

Pinboard offers multiple ways to import and export data including both importing and exporting bookmarks in a format compatible with Delicious. Pinboard offers both public and private RSS feeds of bookmark data including tag-based feeds. The Pinboard API is compatible with the Delicious API. This means that any application that uses the Delicious API should be able to easily support the Pinboard by changing the URL to the API endpoint. Unfortunately, most bookmarking applications do not allow end users to change the API endpoint and few directly support Pinboard. On the Mac, both Delibar and Pukka desktop applications support Pinboard. None of the iPhone applications I tested allowed me to use Pinboard instead of Delicious. The best solution for mobile devices is to use the Mobile web version of Pinboard

Overall, Pinboard is an excellent option for storing and archiving bookmarks and I recommend it highly. The service is not free. Currently the price to join is $6.38 and the cost increases by a fraction of a cent for each new user. I like this pricing model as it is inexpensive and allows the developer to support the service without ads and without taking external funding. This leaves the service with a smaller, but more active user-base, and more importantly almost no spam. Recent Pinboard releases have improved bulk editing capabilities, but it is not currently possible to add or remove tags on a set of items returned from a search of your own bookmarks. Hopefully, the developers will eventually add this feature as it would make it possible to quickly and easily organize large numbers of uncategorized bookmarks.

If the idea of social bookmarking seems foreign or the benefits do not seem clear, I highly recommend taking three minutes to watch the short and entertaining animated video Social Bookmarking in Plain English by Common Craft. What is Antisocial Bookmarking? is a nice post on the Pinboard blog by, Maciej Ceglowski, the founder of Pinboard describing the impetus for creating the service.

Lightweight Scheduling With Doodle

Doodle is one of the few online scheduling services that I find worthwhile. The web interface is straightforward and minimalist. Most scheduling applications add enough overhead and complexity that I fall back to scheduling via email. The problem is that inevitably the email results in a flurry of back and forth negotiation that makes me wish I never tried to schedule the event in the first place. The planning process is even more difficult when participants from different organizations do not have access to common scheduling applications.

There are two types of polls in Doodle, one to schedule events and one to present a series of choices. You start the scheduling process by creating a poll with potential dates and times and decide whether you want to send a link to the poll yourself or have Doodle send out the email. Participants open the URL for the poll and simply select check boxes with their desired day and time combinations. Choice-based polls display a simple list of selections. Participants may also add comments or files to both types of polls. It really takes longer to describe the process than it does to complete it. The service is free and ad supported, although some features require paid premium accounts.

Options for Doodle polls include limiting the number of selections for each participant, enabling “if need be” time slots, limiting comments or changes to responses, and support for time zones. Paid premium accounts are $28 a year without ads and include features such as hiding responses, requiring additional information such as email or phone numbers, avatars, and support for custom designs. Doodle corporate accounts called Branded Doodle start at $240 a year for custom corporate branding without ads. Additional corporate options are response tracking and the ability to request additional information for $240 a year, and additional security and SSL access for $240 a year.

Doodle supports direct integration with Google Calendar and provides calendar feeds for use with Google Calendar, Yahoo Calendar, Microsoft Live Calendar, Apple iCal, Outlook and others. Doodle provides calendar plugins for Microsoft Outlook and Lotus Notes. Registration is required for calendar integration. Polls may be exported to PDF, Excel, or .ics calendar files.

Doodle is available as a widget on iGoogle, as an application on Facebook, as a mobile web application, and as a $2.99 iPhone application. The iPhone application is well done and is integrated with the iPhone address book. However, due to restrictions on the iPhone OS, it cannot integrate directly with the calendar application on the iPhone. The workaround is to simply subscribe to the Doodle calendar feed from the iPhone application.

Overall, I highly recommend Doodle for simple meeting scheduling. The one feature I wish Doodle would add is support for multiple email addresses. This would take the guesswork out selecting the right email address for people with more than one address. People scheduling events with complicated requirements such as matching meetings rooms with specific audio visual configurations to particular time slots will want to stick to traditional corporate scheduling applications. For everyday use, I find Doodle to be the right balance of functionality and simplicity.

Notational Velocity - Elegant Note Taking for the Mac

Notational Velocity is a free and open source note taking application for Mac OS X that is extremely simple, fast, and stable. I find the minimalist interface very functional and pleasant to use and it has become one of my favorite applications.

I briefly mentioned Notational Velocity in my recent Messaging News Magazine column Great iPhone and iPad Apps for Reading and Sharing Docs in conjunction with its ability to sync with the Simplenote iPhone note taking application. This combination of Notational Velocity and Simplenote allows me to create, edit, and manage notes that are seamlessly synchronized between my desktop and iPhone without worrying that I will have the latest version on the other device.

Dropbox and SimpleText.ws are two additional options for synchronizing Notational Velocity across multiple machines. The server for SimpleText.ws is also open source and can be self hosted using a local copy of Google App Engine.

Aside from the ease of use and speed some of the features of Notation Velocity I like are:

  • There is no distinction between searching for notes and creating new notes
  • All searches are incremental and help to rapidly filter documents
  • Saving is automatic, no save button needed
  • Creation and modification timestamps are preserved for both import and export
  • Notes can be stored in plain text, rich text, or HTML
  • All data can be exported with a single click
  • Notes can be stored in a single database as plain text files in a directory anywhere on the file system
  • The database may optionally be encrypted and there is an option for secure text entry
  • The interface may be used entirely by the keyboard

Preparing Your Site for the iPad

The Apple iPad does an excellent job of displaying most web sites. However, there are a few obstacles you may want to avoid. There are also a few customizations that will make your site look even better on the iPad. I will summarize the most important issues you should start to plan for and the differences between the iPad browser, the iPhone browser, and desktop browsers. As an added benefit, most improvements made for the iPad will also benefit users with an iPhone or an iPod Touch. There is list of resources to find more information and a list of tools to help you test your site at the end of the article.

Differences in Mobile Safari on the iPad

The primary differences you should account for first are:

  • No support for plugins such as Adobe’s Flash or Sun’s Java for ads, navigation, and multimedia
  • The fixed viewable screen size (viewport) may affect your layout
  • The touch screen is the primary means of interaction and offers different modes of user control

Unlike most desktop browsers, the iPad does not support plugins such as Flash or Java. Any navigation elements, embedded audio and video, or banner ads written in Flash or Java will not appear. Based on public statements, Apple is unlikely to support either language in the future. This means you will need to provide alternative or fallback navigation elements and multimedia embedding options. Apple’s official recommendation is to avoid plugins entirely and use HTML5 elements across your site. Navigation elements may be implemented with standard AJAX techniques. If your revenue depends on banner advertising delivered via Flash or Java, you will need to need to make some changes. If your ad server supports mobile devices, you can turn this on for iPad users. An alternative is to treat mobile users the same as email campaign advertisements. Today at the iPhone OS 4.0 press event, apple announced its own mobile ad platform and ad network called iAd, implemented entirely in HTML5. The mobiThinking Guide to Mobile Advertising Networks in the references surveys most of the available mobile ad network options.

The standards and implementations of HTML5 audio and video tags are still evolving and making your content available in all browsers is still complicated. Supporting HTML5 H.264 encoded video with a fallback to Flash for browsers that do not support it is likely your most straightforward solution. In the references, I have linked to some of John Gruber’s articles on H.264 and Flash that explain the problem in more detail. Video for Everybody from Camen Design and the upcoming SublimeVideo from Jilion are two options for hosting HTML5 friendly video on your site.

The iPad has a 9.7-inch touch-sensitive screen, a fast processor, and fast network connectivity. It provides a web browser experience that is much closer to the desktop experience than a smartphone. This means you should avoid sending iPad users to versions of your site optimized for mobile phones if you are sniffing for iPhone or mobile user agents. If you look at the user-agent strings for the iPad and the iPhone, you will notice that the iPad user-agent lists “like Mac OS X” rather than “iPhone OS.” Both browsers include the “Mobile” in the user-agent string. Most browsers have mechanisms to change the user agent string. I’ve listed some of these in the references.

The current version of iPhone OS (version 3.1.3) uses the following user agent string:

Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_3 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7E18 Safari/528.16

While the iPad with iPhone OS 3.2 uses the following user agent string:

Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10

The iPad viewport is set to 980 pixels wide, in portrait mode the iPad is 768 pixels wide, but the content will scale to 980 pixels. If you have content that wider than the viewport that uses fixed CSS positioning, that content may end up off screen and your users will not see it since they can not resize the window in Mobile Safari.

Users control the iPad with a multi-touch interface and a touch screen keyboard. The “Apple iPhone Human Interface Guidelines: Introduction” is a great document for starting to think about multi-touch user interaction as the metaphors and modes of physical interaction differ. For example, a flick action rather than a mouse controls scrolling and a pinching action controls how a page scales up and down.

There are other issues, some of which Apple may resolve in a future update. In John Gruber’s review of the iPad, he points out that often only a single page is held in memory at one time, subsequent pages often take all the memory available for web pages. This means that if you could loose form data on a page that you have not submitted if you open another page. The memory problem could also appear on AJAX heavy pages.

iPhone OS User Base

Apple announced the iPad at then end of January and released specifications, documentation, and a software development kit (SDK) for those paid members of the iPhone developer program under an non-disclosure agreement. The WiFi only model of iPad began shipping this week and Apple released the SDK to everyone registered in the Apple Developer Program. Apple announced that it sold more than 300,000 iPads on the first day and more than 450,000 as of April 8th. The iPhone OS platform user base is significant. Steve Jobs announced that there were 75 Million iPhones and iPad Touch devices running iPhone OS at the iPad launch in January. The Apple’s 2010 Q1 filing said that it had sold more than 42 million iPhones total. Today at the iPhone OS 4.0 launch Jobs announced that there were 85 million iPhone OS devices.

Mobile Safari on the iPad uses the open source WebKit rendering engine as do iPhone, and iPod Touch devices. Testing your site with the WebKit rendering engine is now essential. Desktop versions of the Safari browser, Google’s Chrome browser, all iPad, iPhone, and iPod Touch devices, Android devices, Palm webOS devices, Symbian Series 60 (S60) devices all use WebKit. RIM has stated that future BlackBerry devices will use WebKit. This means that every major smartphone browser aside from Windows Mobile will be WebKit-based in 2010.

Testing Your Site on the iPad

Testing your site directly on an iPad is the only way to guarantee that your experience will match your visitors with iPads. There are numerous reports by developers of minor differences between the iPad and the iPad in a simulator.

However, next to owning an iPad, the iPhone simulator comes closest to rendering your site as an iPad would. The iPhone simulator that ships with the iPhone SDK 3.2 has an iPad mode under the device option. Anyone can register as an Apple Developer for free and then download the SDK. The iPhone SDK includes the XCode development environment and is nearly a 2.5 gig download, it also only works on Mac OS X 10.6.2 (Snow Leopard) or higher.

The paid iPhone Developer Program is $99 a year. The subscription allows developers to submit native iPhone and iPad applications to Apple’s App Store. Apple also allows paid developers early access to upcoming versions of its SDK such as the iPhone OS 4.0 SDK announced today.

iPad Peek by Pavol Rusnak is a web service that allows you to see what your web site will look like on an iPad. It is free and the source code is available under an open source license. Three things will make your experience with iPad Peek closer to than of an actual iPad.

  • Use a browser with a WebKit-based rendering engine, preferably Safari, since it is the most similar to the iPad browser. Chrome will works too.
  • Disable all plugins in your browser. Otherwise your browser will still load the plugins even though an iPad would not.
  • Change your user agent string in your browser to match the iPad one listed earlier.

Resources

From Apple’s official developer documentation:

Other resources:

Tools

The easiest way to change your user agent in Safari is to use the option in the developer menu. The easiest way to change the user agent in Chrome and Firefox (uses the Gecko rendering engine, not WebKit) is to use an extension.

Further Reading

John Gruber at Daring Fireball has written a series of posts about Flash, HTML5, and H.264 video. They are really worth reading for background on the technical and political issues related to HTML5.

March 2010 MessageLabs Intelligence Report Highlights

Many security vendors produce internet security reports that summarize the attacks and threats seen from the vendor’s vantage point of the network. The concise analysis of trending security threats and predictions of future threats make taking a look at the reports worthwhile. The reports are available no cost as they also promote the vendors services.

I will discuss these reports in a series of posts starting with the monthly MessageLabs Intelligence Report. Highlights from March 2010 MessageLabs Intelligence Report (PDF) (podcast) include:

  • Spam has increased to 90.7%, which is up 1.4% since February.
  • Viruses and malware in email decreased to one per 358.3 email, which is down 0.05% since February.
  • Phishing decreased to one in 513.7 emails, which is down 0.02% since February.
  • Malicious websites down to 1,919 websites blocked per day, which is down 61.6% since February.
  • The Rustock botnet sent 77% of its spam using TLS encrypted connections during March.

The report also discusses malware that targets senior officials, the roles most often targeted and the most common countries of origin for the malware.

The top four roles targeted are:

  • Director 8.7%
  • Senior Official 7.3%
  • Vice President 4.4%
  • Manager 4.3%

Top four sources of targeted email attacks based on IP address of the sender:

  • China 28.2%
  • Romania 21.1%
  • United States 13.8%
  • Taiwan 12.9%

New Ways to Read Messaging News: Twitter, Facebook, and RSS

We regularly look for new ways to make our content more accessible to our readers. We are pleased to announce that we now have more options for reading Messaging News. We want to help you keep track of the latest industry news, events, webinars, whitepapers, commentary, and analysis.

As always, you can find everything we publish on the Messaging News website. In addition you can sign up for one of our weekly newsletters, the print or digital edition of Messaging News magazine, or one of our webinars. You will also find job listings, our annual resource directory, whitepapers, and industry briefings.

Privacy, Large Dataset Research, and the Netflix Prize

Netflix recently announced the cancellation of the second Netflix Prize in a post on its blog. A large number of researchers entered the first contest as it offered an opportunity to work with a large real world dataset combined with the promise of a one million dollar prize and worldwide publicity.

The company’s decision to cancel the contest settled a private lawsuit described by Ryan Singel in his Wired article Netflix Spilled Your Brokeback Mountain Secret, Lawsuit Claims and closed an inquiry from the Federal Trade Commission explained in a Wall Street Journal blog post FTC’s Privacy Worries Prompt Netflix to Cancel Contest byJennifer Valentino-DeVries.

In an earlier column, The State of User Tracking and the Impossibility of Anonymizing Data, I described current research on de-anonymization and re-identification and in particular problems with the Netflix contest. Arvind Narayanan and Vitaly Shmatikov wrote An open letter to Netflix from the authors of the de-anonymization paper. The authors say they hope Netflix will continue to work with researchers in a way that allows for further advances, but that also preserves privacy through techniques such as differential privacy.

Bellkor’s Pragmatic Chaos, the team that claimed the prize wrote about the contest and the implications of their findings in the IEEE Spectrum article The Million Dollar Programming Prize. Dan Gillick further describes the winning solution in Predicting Movie Ratings: The Math That Won The Netflix Prize.

Markdown Simplifies Writing for the Web

Why I like Markdown

Several months ago I began format my articles using Markdown, a lightweight syntax designed to emulate the simple markup style commonly used in email messages. For example, if you would like to make text bold, just put asterisks around it. If you would like to make a list, just put a dash in front of each item. Overall, I’m happy with the change, as it has simplified the process for me to publish online. I can write with any text editor or word processor and then Markdown will convert my text to nicely formatted HTML.

Markdown is both a markup language and tool to convert markdown to HTML. The syntax for Markdown is simple and adds very little bulk to my text. Effectively, the only change made when I write was to add a tiny bit of formatting for the Markdown hyperlinks and headings. John Gruber, Markdown’s primary developer, wrote Dive Into Markdown, an essay describing his design goals, soon after he released the software in 2004. It is well written and worth reading.

I now prefer to keep my documents in Markdown rather than HTML as they are smaller, easier to read, and I can convert them to modern standards-based HTML on demand. I prefer this setup to WYSIWG tools or graphical HTML editors since the only real way to be certain how the HTML will appear to your readers is to view it for yourself with the same browser version. With Markdown, if the HTML specification is updated or the conversion tool adds features I like, I just install a new version of Markdown. I don’t need to modify my original text. Markdown is great for producing basic HTML documents like blog entries or simple web pages, but it is not well suited for long, complex, or highly formatted documents. There are several extensions to Markdown that add features to publish more specialized and complex documents.

If you would like to try Markdown for yourself right now, the Markdown Web Dingus or PHP Markdown Dingus will both give you a live preview of any Markdown formatted text you type. Markdown works on Mac OS X, Windows, and Unix/Linux and is widely supported as a plugin for most popular blog and wiki software. The reference version is written in Perl and developers have ported Markdown to Python, C, JavaScript, and other languages.

Gruber also wrote SmartyPants, which transforms plain text to include nice typographic elements such as curly quotes, en-dashes, em-dashes, and ellipses. Many implementations of Markdown include support for SmartyPants by default. Markdown has a liberal BSD-style license that makes it easy for developers to embed it in other packages. There are several Markdown test suites including one that ships with the reference version that can be used to test compatibility between versions. Wikipedia has a good technical comparison between lightweight markup languages if you would like to see how Markdown differs from similar projects.

Markdown Implementations and Utilities

These days, I write almost everything using the TextMate editor on Mac OS X, which includes support for SmartyPants, Markdown, and PHP Markdown extra. I use the QuickLook Markdown plugin when I want to quickly see a formatted version of a Markdown file from the Finder.

Markdownify converts from HTML to Markdown. The script is available as a web-based conversion tool or you can run the script on your own machine. It supports PHP Markdown Extra as well.

PHP Markdown Extra by Michel Fortin is an implementation of Markdown in PHP that lets you easily create definition lists, footnotes, tables, and intermix HTML with Markdown. The developer has also created a PHP version of SmartyPants unsurprisingly called PHP SmartyPants.

MultiMarkdown by Fletcher Penney’s is an implementation of Markdown that offers more conversion options and adds a number of extensions to the syntax such as footnotes, tables, bibliographic citations, image attributes, internal cross-references, glossary entries, and definition lists. MultiMarkdown first converts the plain text to XHTML and then uses XSLT transforms convert the XHTML into HTML, LaTeX, PDF, or RTF. It includes many features similar to PHP Markdown Extra. Penny’s MultiMarkdown Bundle for TextMate adds support for the MultiMarkdown variant.

Discount by David Parsons is version of Markdown, PHP Markdown extra, and SmartyPants all written in C that focuses on speed.

Pandoc by John MacFarlane can convert from Markdown, HTML, reStructuredText, and LaTeX to “reStructuredText, HTML, LaTeX, ConTeXt, PDF, RTF, DocBook XML, OpenDocument XML, ODT, GNU Texinfo, MediaWiki markup, groff man pages, and S5 HTML slide shows.” Pandoc includes Markdown extensions for definition lists, embedded LaTeX equations, footnotes, and tables. Pandoc is written in Haskell and currently Haskell and requires a bit of tweaking to make it work on Mac OS X 10.6/Snow Leopard.

Babelmark, the Markdown Testbed, allows you to compare the output of different Markdown implementations.