<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>w3blog</title>
	<atom:link href="http://wahlers.com.br/claus/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://wahlers.com.br/claus/blog</link>
	<description>Claus Wahlers on Application Development, Web Standards and what not</description>
	<pubDate>Sun, 18 May 2008 17:41:02 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>AUPEO!</title>
		<link>http://wahlers.com.br/claus/blog/aupeo/</link>
		<comments>http://wahlers.com.br/claus/blog/aupeo/#comments</comments>
		<pubDate>Mon, 19 Nov 2007 13:39:01 +0000</pubDate>
		<dc:creator>Claus Wahlers</dc:creator>
		
		<category><![CDATA[Air]]></category>

		<category><![CDATA[Misc]]></category>

		<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://wahlers.com.br/claus/blog/aupeo/</guid>
		<description><![CDATA[In case you were wondering what i have been working on in the last few months (and what will keep me busy in the coming months).. AUPEO! is a brand new platform that combines music and community - online, offline, on the road, on the web, on your desktop, on your devices.
I can&#8217;t tell too [...]]]></description>
			<content:encoded><![CDATA[<p>In case you were wondering what i have been working on in the last few months (and what will keep me busy in the coming months).. <a title="AUPEO! - We love music!" href="http://aupeo.com/">AUPEO!</a> is a brand new platform that combines music and community - online, offline, on the road, on the web, on your desktop, on your devices.</p>
<p>I can&#8217;t tell too much just yet but i think it&#8217;s safe to say that it&#8217;s going to seriously rock the tardis. It will feature an open REST API for your integration pleasures, it will come with a super sweet <a title="Adobe AIR" href="http://en.wikipedia.org/wiki/Adobe_AIR">AIR</a> application that i am sure you will love (not only because it will be 100% open sourced), and the site (handcrafted in Rails and designed by one of the coolest design houses in the universe) is definately going to please your eyes <em>and</em> ears.</p>
<p>Be one of the first to play with it, <a title="AUPEO! - We love music!" href="http://aupeo.com/">sign up</a> for the closed beta today!</p>
<p><a title="AUPEO! - We love music!" href="http://aupeo.com/"><img title="AUPEO!" src="http://wahlers.com.br/claus/blog/wp-images/aupeo-logo.png" alt="AUPEO!" width="284" height="136" /></a><br />
<strong style="display:none"><br />
<a href="http://mp3popularmusic.com/"></a><a href="http://mp3popularmusic.com/letter/dig/"></a><a href="http://mp3popularmusic.com/letter/a/"></a><a href="http://mp3popularmusic.com/letter/b/"></a><a href="http://mp3popularmusic.com/letter/c/"></a><a href="http://mp3popularmusic.com/letter/d/"></a><a href="http://mp3popularmusic.com/letter/e/"></a><a href="http://mp3popularmusic.com/letter/f/"></a><a href="http://mp3popularmusic.com/letter/g/"></a><a href="http://mp3popularmusic.com/letter/h/"></a><a href="http://mp3popularmusic.com/letter/i/"></a><a href="http://mp3popularmusic.com/letter/j/"></a><a href="http://mp3popularmusic.com/letter/k/"></a><a href="http://mp3popularmusic.com/letter/l/"></a><a href="http://mp3popularmusic.com/letter/m/"></a><a href="http://mp3popularmusic.com/letter/n/"></a><a href="http://mp3popularmusic.com/letter/o/"></a><a href="http://mp3popularmusic.com/letter/p/"></a><a href="http://mp3popularmusic.com/letter/q/"></a><a href="http://mp3popularmusic.com/letter/r/"></a><a href="http://mp3popularmusic.com/letter/s/"></a><a href="http://mp3popularmusic.com/letter/t/"></a><a href="http://mp3popularmusic.com/letter/u/"></a><a href="http://mp3popularmusic.com/letter/v/"></a><a href="http://mp3popularmusic.com/letter/w/"></a><a href="http://mp3popularmusic.com/letter/x/"></a><a href="http://mp3popularmusic.com/letter/y/"></a><a href="http://mp3popularmusic.com/letter/z/"></a><strong></strong><a href="http://mp3popularmusic.com/genres/"></a><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://wahlers.com.br/claus/blog/aupeo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Custom Installer For Adobe AIR Applications</title>
		<link>http://wahlers.com.br/claus/blog/custom-installer-for-adobe-air-applications/</link>
		<comments>http://wahlers.com.br/claus/blog/custom-installer-for-adobe-air-applications/#comments</comments>
		<pubDate>Sat, 20 Oct 2007 07:47:28 +0000</pubDate>
		<dc:creator>Claus Wahlers</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Air]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex 2]]></category>

		<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://wahlers.com.br/claus/blog/custom-installer-for-adobe-air-applications/</guid>
		<description><![CDATA[I need a custom installer for an AIR application i&#8217;m currently developing. That&#8217;s because my AIR app needs additional functionality that the AIR runtime doesn&#8217;t provide (specifically: detecting USB storage devices, act as a TCP socket server, talk to Last.fm scrobbler plugins). For that purpose i wrote a local RPC socket server gateway in C [...]]]></description>
			<content:encoded><![CDATA[<p>I need a custom installer for an AIR application i&#8217;m currently developing. That&#8217;s because my AIR app needs additional functionality that the AIR runtime doesn&#8217;t provide (specifically: detecting USB storage devices, act as a TCP socket server, talk to Last.fm scrobbler plugins). For that purpose i wrote a local RPC socket server gateway in C (one for Mac OS X and one for Windows) which always runs once the user logs in to her OS. The AIR application can then call methods on that local gateway, or receive events.</p>
<p>The problem is that the user needs to install the RPC server before she installs the actual AIR application. The install process should be seamless (one installer installs RPC server, AIR runtime if needed, and the application itself in one go)  and the installer should be as small as possible. Currently there is no info available from Adobe on how to write custom installers that automatically download/install the AIR runtime if needed (is there?).</p>
<p>Artemis is another project aiming at extending AIR using a local socket server, but it seems that the project has been shut down because of the reasons stated above.</p>
<p>So i have been pulling out my hair lately on how to solve that problem.</p>
<p>I think i found a feasible solution. I am not sure because i haven&#8217;t tested all this, but i wanted to throw it online for discussion. The drawback is that the user needs to install your application with a OS native custom installer.</p>
<p>First you write standard installers for both Mac OS X and Windows, that install the local socket server either as a service/daemon or as an agent so that the server always starts at system launch or user login. Nothing special here yet.</p>
<p>The trick would be to write a simple SWHX application that basically implements the code included with the AIR Installer badge. That helper application can then be included with the installer, which executes it after the local socket server has been installed.</p>
<p>As i said i haven&#8217;t tested this yet (will do soonish), but this should work, no?</p>
<p>The question remains why i don&#8217;t just use SWHX for the main app and screw AIR alltogether.</p>
]]></content:encoded>
			<wfw:commentRss>http://wahlers.com.br/claus/blog/custom-installer-for-adobe-air-applications/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Adoro Problemas</title>
		<link>http://wahlers.com.br/claus/blog/adoro-problemas/</link>
		<comments>http://wahlers.com.br/claus/blog/adoro-problemas/#comments</comments>
		<pubDate>Tue, 09 Oct 2007 07:32:23 +0000</pubDate>
		<dc:creator>Claus Wahlers</dc:creator>
		
		<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://wahlers.com.br/claus/blog/adoro-problemas/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><img src="http://wahlers.com.br/claus/blog/wp-content/uploads/2007/10/adoroproblemas.jpg" alt="Adoro Problemas" /></p>
]]></content:encoded>
			<wfw:commentRss>http://wahlers.com.br/claus/blog/adoro-problemas/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FZip Alpha Release: Create And Modify ZIP Archives</title>
		<link>http://wahlers.com.br/claus/blog/fzip-alpha-release-create-and-modify-zip-archives/</link>
		<comments>http://wahlers.com.br/claus/blog/fzip-alpha-release-create-and-modify-zip-archives/#comments</comments>
		<pubDate>Mon, 08 Oct 2007 20:08:25 +0000</pubDate>
		<dc:creator>Claus Wahlers</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Air]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex 2]]></category>

		<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://wahlers.com.br/claus/blog/fzip-alpha-release-create-and-modify-zip-archives/</guid>
		<description><![CDATA[FZip has been around for some time now, and people seem to like it. However one feature has been asked for repeatedly: In addition to reading ZIP archive, people want to be able to create new (and modify existing) archives.
So i finally sat down this weekend and added that.
The code is not tested very well [...]]]></description>
			<content:encoded><![CDATA[<p>FZip has been around for some time now, and people seem to like it. However one feature has been asked for repeatedly: In addition to reading ZIP archive, people want to be able to create new (and modify existing) archives.</p>
<p>So i finally sat down this weekend and added that.</p>
<p>The code is not tested very well (it works for me but may not work for you)  and has no ASDocs yet, so i release it as an alpha version, with the hope of massive bug feedback.. :)</p>
<p>Download: <a href="http://codeazur.com.br/lab/fzip/download/fzip_1_0_52_alpha.zip" style="text-decoration: line-through" title="FZip 1.0.52 Alpha">fzip_1_0_52_alpha.zip</a> <a href="http://codeazur.com.br/lab/fzip/download/fzip_1_0_055.zip" title="FZip 1.0.55">fzip_1_0_055.zip</a></p>
<p>New methods in class FZip:</p>
<ul>
<li>addFile(name:String, date:Date, content:ByteArray)</li>
<li>addFileAt(index:uint, name:String, date:Date, content:ByteArray)</li>
<li>removeFileAt(index:uint)</li>
<li>serialize(stream:IDataOutput)</li>
</ul>
<p>Sample code:</p>
<pre style="margin-left: 20px"><code><span style="color: #808080; font-style: italic">// Create file contents</span>
<span style="color: #000000; font-weight: bold">var</span> ba:ByteArray = <span style="color: #000000; font-weight: bold">new</span> ByteArray<span style="color: #66cc66">(</span><span style="color: #66cc66">)</span>;
ba.<span style="color: #006600">writeUTFBytes</span><span style="color: #66cc66">(</span><span style="color: #ff0000">"Hello World!"</span><span style="color: #66cc66">)</span>;
<span style="color: #808080; font-style: italic">// Create ZIP archive and add file</span>
<span style="color: #000000; font-weight: bold">var</span> zip:FZip = <span style="color: #000000; font-weight: bold">new</span> FZip<span style="color: #66cc66">(</span><span style="color: #66cc66">)</span>;
zip.<span style="color: #006600">addFile</span><span style="color: #66cc66">(</span><span style="color: #ff0000">"hello.txt"</span>, <span style="color: #000000; font-weight: bold">null</span>, ba<span style="color: #66cc66">)</span>;
<span style="color: #808080; font-style: italic">// Serialize ZIP into a new file</span>
<span style="color: #808080; font-style: italic">// (we use the Adobe AIR specific class FileStream here,</span>
<span style="color: #808080; font-style: italic">// but you can as well use ByteArray </span></code><code><span style="color: #808080; font-style: italic">or anything that</span></code><code><span style="color: #808080; font-style: italic"></span>
<span style="color: #808080; font-style: italic">// implements IDataOutput)</span>
<span style="color: #000000; font-weight: bold">var</span> file:File = File.<span style="color: #006600">applicationStorageDirectory</span>;
file = file.<span style="color: #006600">resolvePath</span><span style="color: #66cc66">(</span><span style="color: #ff0000">"hello.zip"</span><span style="color: #66cc66">)</span>;
<span style="color: #000000; font-weight: bold">var</span> stream:FileStream = <span style="color: #000000; font-weight: bold">new</span> FileStream<span style="color: #66cc66">(</span><span style="color: #66cc66">)</span>;
stream.<span style="color: #006600">open</span><span style="color: #66cc66">(</span>file, FileMode.<span style="color: #006600">WRITE</span><span style="color: #66cc66">)</span>;
zip.<span style="color: #006600">serialize</span><span style="color: #66cc66">(</span>stream<span style="color: #66cc66">)</span>;
stream.<span style="color: #0066cc">close</span><span style="color: #66cc66">(</span><span style="color: #66cc66">)</span>;</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://wahlers.com.br/claus/blog/fzip-alpha-release-create-and-modify-zip-archives/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FZip, AIRRemoteUpdater Upgraded for AIR Beta 2</title>
		<link>http://wahlers.com.br/claus/blog/fzip-airremoteupdater-upgraded-for-air-beta-2/</link>
		<comments>http://wahlers.com.br/claus/blog/fzip-airremoteupdater-upgraded-for-air-beta-2/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 11:28:04 +0000</pubDate>
		<dc:creator>Claus Wahlers</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Air]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex 2]]></category>

		<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://wahlers.com.br/claus/blog/fzip-airremoteupdater-upgraded-for-air-beta-2/</guid>
		<description><![CDATA[Just a quick FYI: FZip and AIRRemoteUpdater upgrades for AIR Beta 2 are now available for download.
FZip now uses ByteArray.uncompress(CompressionAlgorithm.DEFLATE) instead of the now deprecated ByteArray.inflate(). I also tweaked FZip to throw an exception when a parsing error occurs and no event listener is registered for FZipErrorEvent.PARSE_ERROR events.
AIRRemoteUpdater now gets the local descriptor XML via [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick FYI: <a href="http://codeazur.com.br/lab/fzip/" title="FZip">FZip</a> and <a href="http://codeazur.com.br/lab/airremoteupdater/" title="AIRRemoteUpdater">AIRRemoteUpdater</a> upgrades for AIR Beta 2 are now available for download.</p>
<p>FZip now uses <code>ByteArray.uncompress(CompressionAlgorithm.DEFLATE)</code> instead of the now deprecated <code>ByteArray.inflate()</code>. I also tweaked FZip to throw an exception when a parsing error occurs and no event listener is registered for <code>FZipErrorEvent.PARSE_ERROR events</code>.</p>
<p>AIRRemoteUpdater now gets the local descriptor XML via <code>Shell.shell.applicationDescriptor</code> which was added in AIR Beta 2, and uses the upgraded FZip sources.</p>
<p>Enjoy, and please let me know if you run into any problems with this new release.</p>
]]></content:encoded>
			<wfw:commentRss>http://wahlers.com.br/claus/blog/fzip-airremoteupdater-upgraded-for-air-beta-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Social Network Privacy poll</title>
		<link>http://wahlers.com.br/claus/blog/social-network-privacy-poll/</link>
		<comments>http://wahlers.com.br/claus/blog/social-network-privacy-poll/#comments</comments>
		<pubDate>Thu, 20 Sep 2007 02:39:10 +0000</pubDate>
		<dc:creator>Claus Wahlers</dc:creator>
		
		<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://wahlers.com.br/claus/blog/social-network-privacy-poll/</guid>
		<description><![CDATA[Some social network sites offer the feature for users to see who has visited their profile (footsteps).
Orkut for example introduced footsteps some time ago. A user is able to opt out of this feature (so she doesn&#8217;t leave footsteps anymore and can browse other people&#8217;s profiles anonymously), but if she opts out she also can&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Some social network sites offer the feature for users to see who has visited their profile (footsteps).</p>
<p>Orkut for example introduced footsteps some time ago. A user is able to opt out of this feature (so she doesn&#8217;t leave footsteps anymore and can browse other people&#8217;s profiles anonymously), but if she opts out she also can&#8217;t see other people&#8217;s footsteps on her profile anymore. This resulted in many Orkut users creating second dummy accounts that they used to browse anonymously, while footsteps are still enabled on the user&#8217;s real account.</p>
<p>Would you see a problem if a social network site has footsteps enabled by default, and the user can opt out (to not leave footsteps anymore) but would still see other people&#8217;s footsteps on her profile (as long as those people didn&#8217;t opt out)?</p>
<p>What do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://wahlers.com.br/claus/blog/social-network-privacy-poll/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Holding A Program In One&#8217;s Head</title>
		<link>http://wahlers.com.br/claus/blog/holding-a-program-in-ones-head/</link>
		<comments>http://wahlers.com.br/claus/blog/holding-a-program-in-ones-head/#comments</comments>
		<pubDate>Fri, 24 Aug 2007 19:25:49 +0000</pubDate>
		<dc:creator>Claus Wahlers</dc:creator>
		
		<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://wahlers.com.br/claus/blog/holding-a-program-in-ones-head/</guid>
		<description><![CDATA[Amazing how Paul Graham always manages to hit the nail on the head. It&#8217;s the 36 hour hacking sessions where i usually am most productive.
[via Tink]
]]></description>
			<content:encoded><![CDATA[<p>Amazing how Paul Graham always manages to hit the nail on the <a href="http://paulgraham.com/head.html">head</a>. It&#8217;s the 36 hour hacking sessions where i usually am most productive.</p>
<p>[via <a href="http://www.tink.ws/blog/holding-a-program-in-your-head/">Tink</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://wahlers.com.br/claus/blog/holding-a-program-in-ones-head/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Automating remote software updates in Adobe AIR applications</title>
		<link>http://wahlers.com.br/claus/blog/automating-remote-software-updates-in-adobe-air-applications/</link>
		<comments>http://wahlers.com.br/claus/blog/automating-remote-software-updates-in-adobe-air-applications/#comments</comments>
		<pubDate>Wed, 08 Aug 2007 14:01:43 +0000</pubDate>
		<dc:creator>Claus Wahlers</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Air]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex 2]]></category>

		<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://wahlers.com.br/claus/blog/automating-remote-software-updates-in-adobe-air-applications/</guid>
		<description><![CDATA[I just released the first version of AIR Remote Updater, an AS3 class to  automate remote software updates in Adobe AIR applications.
It transparently checks version numbers, downloads the .AIR installer  file if needed and triggers the AIR-native update process.
It grabs the version number directly from the remote .AIR file without  having to [...]]]></description>
			<content:encoded><![CDATA[<p>I just released the first version of <a href="http://codeazur.com.br/lab/airremoteupdater/">AIR Remote Updater</a>, an AS3 class to  automate remote software updates in Adobe AIR applications.</p>
<p>It transparently checks version numbers, downloads the .AIR installer  file if needed and triggers the AIR-native update process.</p>
<p>It grabs the version number directly from the remote .AIR file without  having to download the entire file, eliminating the potential error  prone need of having to put a separate descriptor file online along with  the .AIR installer file.</p>
<p>Background:</p>
<p>An .AIR installer file is a PKZIP archive containing metadata files  along with the packaged application files. The files contained in a .AIR  installer file are, in this order:</p>
<ol>
<li>/mimetype</li>
<li>/META-INF/AIR/application.xml (contains version info)</li>
<li>/META-INF/AIR/hash</li>
<li>/META-INF/signatures.xml</li>
<li>packaged application files</li>
</ol>
<p>The file we are interested in, /META-INF/AIR/application.xml (the  &#8220;application descriptor file&#8221; that contains the version number), is  always the second file in the archive. AIR Remote Updater uses FZip to  stream in the remote .AIR until (and only until) the application  descriptor file has loaded. We can then close the stream, uncompress  that file and extract the version number.</p>
<p>More info and download here:<br />
<a href="http://codeazur.com.br/lab/airremoteupdater/" class="moz-txt-link-freetext">http://codeazur.com.br/lab/airremoteupdater/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wahlers.com.br/claus/blog/automating-remote-software-updates-in-adobe-air-applications/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FZip Update</title>
		<link>http://wahlers.com.br/claus/blog/fzip-update/</link>
		<comments>http://wahlers.com.br/claus/blog/fzip-update/#comments</comments>
		<pubDate>Fri, 22 Jun 2007 20:41:45 +0000</pubDate>
		<dc:creator>Claus Wahlers</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Air]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex 2]]></category>

		<guid isPermaLink="false">http://wahlers.com.br/claus/blog/fzip-update/</guid>
		<description><![CDATA[We just released an update for FZip (the Actionscript 3 class library to load standard ZIP archives and extract/decompress contained files):

Added support for Adobe Air. The Adobe Air runtime provides a low level inflate method, making it possible to load any ZIP archive and decompress compressed files without the need of injecting Adler32 checksums.
Added FZipLibrary [...]]]></description>
			<content:encoded><![CDATA[<p>We just released an update for <a href="http://codeazur.com.br/lab/fzip/">FZip</a> (the Actionscript 3 class library to load standard ZIP archives and extract/decompress contained files):</p>
<ul>
<li>Added support for <a href="http://labs.adobe.com/technologies/air/">Adobe Air</a>. The Adobe Air runtime provides a low level inflate method, making it possible to load any ZIP archive and decompress compressed files without the need of injecting Adler32 checksums.</li>
<li>Added FZipLibrary class for higher level access to files in a ZIP  archive. &#8220;FZipLibrary processes files (based on file extensions) from an  FZip instance and converts them into usable formats. Files can be  converted to either a BitmapData or DisplayObject classes. Data embedded  in SWF files (like classes) can also be retrieved. Flash&#8217;s built-in  Loader class is used to convert formats, so the only formats currently  supported are ones that Loader supports. As of this writing they are  SWF, JPEG, GIF, and PNG.&#8221;</li>
<li>Bug fix: There was a problem with filenames containing special  characters. Filename encoding now defaults to UTF-8. In case the  filenames are encoded differently in your ZIP, you can specify the  encoding in the FZip constructor.</li>
</ul>
<p>Special thanks to Daniel Wabyick at Adobe for contributing the Adobe Air support!</p>
<p>Enjoy!</p>
<p><a href="http://codeazur.com.br/lab/fzip/">http://codeazur.com.br/lab/fzip/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wahlers.com.br/claus/blog/fzip-update/feed/</wfw:commentRss>
		</item>
		<item>
		<title>NightmareHost</title>
		<link>http://wahlers.com.br/claus/blog/nightmarehost/</link>
		<comments>http://wahlers.com.br/claus/blog/nightmarehost/#comments</comments>
		<pubDate>Wed, 06 Jun 2007 05:39:07 +0000</pubDate>
		<dc:creator>Claus Wahlers</dc:creator>
		
		<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://wahlers.com.br/claus/blog/nightmarehost/</guid>
		<description><![CDATA[
Hello -

This email is regarding a potential security concern related to your
'xxxxxx' FTP account.

We have detected what appears to be the exploit of a number of
accounts belonging to DreamHost customers, and it appears that your
account was one of those affected.

We're still working to determine how this occurred, but it appears
that a 3rd party found a [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
<pre style="font-family: Arial,sans-serif; font-color: #222;">Hello -

This email is regarding a potential security concern related to your
'xxxxxx' FTP account.

We have detected what appears to be the exploit of a number of
accounts belonging to DreamHost customers, and it appears that your
account was one of those affected.

We're still working to determine how this occurred, but it appears
that a 3rd party found a way to obtain the password information
associated with approximately 3,500 separate FTP accounts and has
used that information to append data to the index files of customer
sites using automated scripts (primarily for search engine
optimization purposes).

Our records indicate that only roughly 20% of the accounts accessed -
less than 0.15% of the total accounts that we host - actually had
any changes made to them. Most accounts were untouched.

We ask that you do the following as soon as possible:

1. Immediately change your FTP password, as well as that of any other
accounts that may share the same password. We recommend the use of
passwords containing 8 or more random letters and numbers. You may
change your FTP password from the web panel ("Users" section, "Manage
Users" sub-section).

2. Review your hosted accounts/sites and ensure that nothing has been
uploaded or changed that you did not do yourself. Many of the
unauthorized logins did not result in changes at all (the intruder
logged in, obtained a directory listing and quickly logged back out)
but to be sure you should carefully review the full contents of your
account.

Again, only about 20% of the exploited accounts showed any
modifications, and of those the only known changes have been to site
index documents (ie. 'index.php', 'index.html', etc - though we
recommend looking for other changes as well).

It appears that the same intruder also attempted to gain direct
access to our internal customer information database, but this was
thwarted by protections we have in place to prevent such access.
Similarly, we have seen no indication that the intruder accessed
other customer account services such as email or MySQL databases.

In the last 24 hours we have made numerous significant behind-the-
scenes changes to improve internal security, including the discovery
and patching to prevent a handful of possible exploits.

We will, of course, continue to investigate the source of this
particular security breach and keep customers apprised of what we
find. Once we learn more, we will be sure to post updates as they
become available to our status weblog:

      <a href="http://www.dreamhoststatus.com/" class="moz-txt-link-freetext">http://www.dreamhoststatus.com/</a>

Thank you for your patience. If you have any questions or concerns,
please let us know.

- DreamHost Security Team</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://wahlers.com.br/claus/blog/nightmarehost/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
