<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ArneFismen</id>
	<title>Microformats Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ArneFismen"/>
	<link rel="alternate" type="text/html" href="https://microformats.org/wiki/Special:Contributions/ArneFismen"/>
	<updated>2026-04-04T08:20:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=appcast-brainstorming&amp;diff=19301</id>
		<title>appcast-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=appcast-brainstorming&amp;diff=19301"/>
		<updated>2007-08-04T10:04:05Z</updated>

		<summary type="html">&lt;p&gt;ArneFismen: /* Software using appcasts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Appcast Brainstorming &amp;lt;/h1&amp;gt;&lt;br /&gt;
The purpose of this page is to capture software updates practices in the wild, as one effort to codify practices currently used in the automatic update system called Sparkle.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Authors ==&lt;br /&gt;
&lt;br /&gt;
* [[User:DenisDefreyne|Denis Defreyne]]&lt;br /&gt;
* [http://factoryjoe.com/ Chris Messina]&lt;br /&gt;
&lt;br /&gt;
== Context ==&lt;br /&gt;
&lt;br /&gt;
Sites like [http://iusethis.com iusethis.com], [http://versiontracker.com versiontracker.com], [http://macupdate.com macupdate.com] and [http://download.com download.com] among others should be investigated and documented for object names and attributes.&lt;br /&gt;
&lt;br /&gt;
Among common data in a software update changelog are changes or fixes, completed bugs, new features or modified behavior, and known issues. A version number is also typically supplied, but takes on many forms and is not always numeric.&lt;br /&gt;
&lt;br /&gt;
Lastly, this work should be seen as compatible with hAtom, possibly as a prelude to a format that could be embedded as the payload of an hfeed object.&lt;br /&gt;
&lt;br /&gt;
Work should be carried out on the [[appcast-examples | Appcast Examples]] page.&lt;br /&gt;
&lt;br /&gt;
== Related Work ==&lt;br /&gt;
&lt;br /&gt;
* [[downloads-brainstorming]] seems to have a similar goal. Could these two pages be merged? [[User:DenisDefreyne|DenisDefreyne]] 02:56, 28 Jul 2007 (PDT)&lt;br /&gt;
** I would agree that they're related; the Appcast work is specially aimed at making it possibly to transmit Sparkle-like updates in HTML and hAtom. I would be nice to be able to subsume the downloads work with the appcast microformat. [[User:Chris_Messina|Chris Messina]] 010:02, 28 Jul 2007 (CDT)&lt;br /&gt;
* [[hash-examples]] has a section about hAtom integration. The example uses a &amp;quot;download&amp;quot; class, which contains a rel-enclosure link as well as a span with &amp;quot;md5&amp;quot; and &amp;quot;checksum&amp;quot; classes.&lt;br /&gt;
&lt;br /&gt;
== Sparkle-specific Appcast enhancements ==&lt;br /&gt;
&lt;br /&gt;
Sparkle adds a few extra features to appcasts:&lt;br /&gt;
&lt;br /&gt;
* External release notes URL: used when the release notes are not included in the appcast itself&lt;br /&gt;
* MD5 sums and DSA signatures: used for some extra security&lt;br /&gt;
* Advanced version string: Sparkle determines the application version from the enclosure name, which is assumed to be APPNAME_VERSION.zip; the advanced version string allows this convention to be overridden&lt;br /&gt;
&lt;br /&gt;
The appcast microformat should probably support these features as well.&lt;br /&gt;
&lt;br /&gt;
The MD5 sum and DSA signature is specific for an enclosure. It is, however, not possible to add these extra attributes to a [[rel-enclosure]] link; a larger &amp;quot;enclosure&amp;quot; microformat may be necessary.&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
This proposal is mostly inspired by appcasts with Sparkle extensions.&lt;br /&gt;
&lt;br /&gt;
* Each hentry has one enclosure, and possibly checksums and digital signatures. &lt;br /&gt;
* Each hentry has one &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt; which holds the application version.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;amp;lt;html&amp;gt;&lt;br /&gt;
	&amp;amp;lt;head&amp;gt;&lt;br /&gt;
		&amp;amp;lt;title&amp;gt;Appcast&amp;amp;lt;/title&amp;gt;&lt;br /&gt;
	&amp;amp;lt;/head&amp;gt;&lt;br /&gt;
	&amp;amp;lt;body&amp;gt;&lt;br /&gt;
		&amp;amp;lt;h1&amp;gt;Appcast&amp;amp;lt;/h1&amp;gt;&lt;br /&gt;
		&amp;amp;lt;div class=&amp;quot;hentry&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;amp;lt;h2 class=&amp;quot;entry-title&amp;quot;&amp;gt;Adium &amp;amp;lt;span class=&amp;quot;version&amp;quot;&amp;gt;1.0.4&amp;amp;lt;/span&amp;gt;&amp;amp;lt;/h2&amp;gt;&lt;br /&gt;
			&amp;amp;lt;p&amp;gt;Updated on &amp;amp;lt;abbr class=&amp;quot;updated&amp;quot; title=&amp;quot;2007-06-20T18:00+01:00&amp;quot;&amp;gt;24 June&amp;amp;lt;/abbr&amp;gt;.&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;amp;lt;div class=&amp;quot;entry-content&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;amp;lt;ul&amp;gt;&lt;br /&gt;
					&amp;amp;lt;li&amp;gt;Fixed a crash introduced in 1.0.3 which could occur when accounts disconnected or status changed&amp;amp;lt;/li&amp;gt;&lt;br /&gt;
					&amp;amp;lt;li&amp;gt;Fixed group chat when message history is enabled&amp;amp;lt;/li&amp;gt;&lt;br /&gt;
				&amp;amp;lt;/ul&amp;gt;&lt;br /&gt;
			&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;p&amp;gt;&lt;br /&gt;
				&amp;amp;lt;a href=&amp;quot;http://adiumx.cachefly.net/Adium_1.0.4.dmg&amp;quot; rel=&amp;quot;enclosure&amp;quot;&amp;gt;Download&amp;amp;lt;/a&amp;gt;.&lt;br /&gt;
				&amp;lt;span class=&amp;quot;checksum&amp;quot;&amp;gt;The &amp;lt;span class=&amp;quot;type&amp;quot;&amp;gt;MD5&amp;lt;/span&amp;gt; checksum of this download is &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;e0d123e5f316bef78bfdf5a008837577&amp;lt;/span&amp;gt;.&amp;lt;/span&amp;gt;.&lt;br /&gt;
			&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;amp;lt;/html&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The hash microformat used in this proposal is likely to change.&lt;br /&gt;
&lt;br /&gt;
== Multi-app/arch/OS/... appcasts ==&lt;br /&gt;
&lt;br /&gt;
A single downloads page can have downloads for different applications, different versions, different architectures, different operating systems, etc (for example, the [http://dev.mysql.com/downloads/mysql/5.0.html MySQL downloads page]). &lt;br /&gt;
&lt;br /&gt;
Here's a probably incomplete list of different download properties:&lt;br /&gt;
&lt;br /&gt;
* Architecture: PPC, x86, 68k, architecture-independent, …&lt;br /&gt;
* OS: Mac OS X, Windows XP, OS-independent, …&lt;br /&gt;
* Download type: Ruby Gem, gzipped tarball, Mac OS X DMG, …&lt;br /&gt;
&lt;br /&gt;
However, multi-* appcasts are hard to do right, and therefore probably not worth supporting. An appcast HTML page should therefore only contain updates for one application, one OS, one architecture, etc.&lt;br /&gt;
&lt;br /&gt;
== Software using appcasts ==&lt;br /&gt;
&lt;br /&gt;
This is a list of programs and frameworks that use appcasts or appcast-like data.&lt;br /&gt;
&lt;br /&gt;
* [http://sparkle.andymatuschak.org/ Sparkle] uses Sparkle-enhanced RSS appcasts.&lt;br /&gt;
* [http://metaquark.de/appfresh/ AppFresh] uses Sparkle-enhanced appcasts and [http://iusethis.com/ iusethis].&lt;br /&gt;
** I'm not sure how the iusethis integration works, but it looks like AppFresh scrapes HTML pages.&lt;br /&gt;
** iusethis generate appcasts on all the applications that are added, and have auto-discovering appcast-RSS on all app pages.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[appcast]]&lt;br /&gt;
* [[appcast-examples]]&lt;br /&gt;
* [[appcast-formats]]&lt;/div&gt;</summary>
		<author><name>ArneFismen</name></author>
	</entry>
</feed>