<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Blog of Maxim Porges &#187; Uncategorized</title>
	<atom:link href="http://www.maximporges.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.maximporges.com</link>
	<description>Winning At Yelling</description>
	<lastBuildDate>Sun, 15 Aug 2010 17:56:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Greater Orlando Hackerspace</title>
		<link>http://www.maximporges.com/2010/08/15/greater-orlando-hackerspace/</link>
		<comments>http://www.maximporges.com/2010/08/15/greater-orlando-hackerspace/#comments</comments>
		<pubDate>Sun, 15 Aug 2010 17:56:10 +0000</pubDate>
		<dc:creator>Maxim Porges</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Making]]></category>

		<guid isPermaLink="false">http://www.maximporges.com/?p=903</guid>
		<description><![CDATA[After I started getting in to electronics and realized that I was only going to get so far on my Make: Electronics book alone, I looked around for maker groups in the Orlando area.
As it turns out, there&#8217;s one right in my back yard in Altamonte Springs: the Greater Orlando Hackerspace. My first attempts to [...]]]></description>
			<content:encoded><![CDATA[<p>After I started getting in to electronics and realized that I was only going to get so far on my <a href="http://oreilly.com/catalog/9780596153755">Make: Electronics</a> book alone, I looked around for maker groups in the Orlando area.</p>
<p>As it turns out, there&#8217;s one right in my back yard in Altamonte Springs: the <a href="http://familab.org/blog/">Greater Orlando Hackerspace</a>. My first attempts to contact them a few months back were in vain, but I hit them up again today after seeing some activity on their blog, and learned that they are still going strong just with a little restructuring taking place. They still have &#8220;Microcontroller Mondays&#8221; every Monday at 7 PM so I hope to go out there in a week or two to show my Arduinome, and maybe help some other people build one while learning some stuff myself.</p>
<p>If you are interested in getting engaged, check out <a href="http://familab.org/blog/membership/">their membership page</a> and drop them an email. If you don&#8217;t want to join but want to do a little good for the community, please <a href="http://www.kickstarter.com/projects/211646812/laser-cutter-for-familab-fl-hackerspace">send them a donation for their laser cutter</a>. Any amount is welcomed, but only $10 gets you a keychain!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.maximporges.com/2010/08/15/greater-orlando-hackerspace/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My Arduinome Build in Pictures</title>
		<link>http://www.maximporges.com/2010/08/14/my-arduinome-build-in-pictures/</link>
		<comments>http://www.maximporges.com/2010/08/14/my-arduinome-build-in-pictures/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 21:21:10 +0000</pubDate>
		<dc:creator>Maxim Porges</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Arduinome]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Making]]></category>

		<guid isPermaLink="false">http://www.maximporges.com/?p=900</guid>
		<description><![CDATA[Get the flash player here: http://www.adobe.com/flashplayer
var so = new SWFObject("http://www.db798.com/pictobrowser.swf", "PictoBrowser", "575", "575", "8", "#DDDDDD"); so.addParam("quality", "low"); so.addParam("scale", "noscale"); so.addParam("align", "mid"); so.addVariable("ids", "72157624319731004"); so.addVariable("names", "My Arduinome Adventure"); so.addVariable("userName", "maxim.porges"); so.addVariable("userId", "22985469@N05"); so.addVariable("source", "sets"); so.write("PictoBrowser100620192705");	
]]></description>
			<content:encoded><![CDATA[<div id="PictoBrowser100620192705">Get the flash player here: http://www.adobe.com/flashplayer</div>
<p><script type="text/javascript" src="http://www.db798.com/pictobrowser/swfobject.js"></script><script type="text/javascript">var so = new SWFObject("http://www.db798.com/pictobrowser.swf", "PictoBrowser", "575", "575", "8", "#DDDDDD"); so.addParam("quality", "low"); so.addParam("scale", "noscale"); so.addParam("align", "mid"); so.addVariable("ids", "72157624319731004"); so.addVariable("names", "My Arduinome Adventure"); so.addVariable("userName", "maxim.porges"); so.addVariable("userId", "22985469@N05"); so.addVariable("source", "sets"); so.write("PictoBrowser100620192705");	</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.maximporges.com/2010/08/14/my-arduinome-build-in-pictures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Build An Arduinome (Part 3): Diodes and LEDs</title>
		<link>http://www.maximporges.com/2010/08/14/how-to-build-an-arduinome-part-3-diodes-and-leds/</link>
		<comments>http://www.maximporges.com/2010/08/14/how-to-build-an-arduinome-part-3-diodes-and-leds/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 21:18:26 +0000</pubDate>
		<dc:creator>Maxim Porges</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Arduinome]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Making]]></category>

		<guid isPermaLink="false">http://www.maximporges.com/?p=892</guid>
		<description><![CDATA[
How to Build an Arduinome (Part 3): Diodes and LEDs from Maxim Porges on Vimeo.
In this part of the series, we take a look at the diodes and LEDs, and I solder them on to the SparkFun PCBs.
]]></description>
			<content:encoded><![CDATA[<p><object width="560" height="315"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=14142082&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=14142082&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="560" height="315"></embed></object>
<p><a href="http://vimeo.com/14142082">How to Build an Arduinome (Part 3): Diodes and LEDs</a> from <a href="http://vimeo.com/user4036781">Maxim Porges</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>In this part of the series, we take a look at the diodes and LEDs, and I solder them on to the SparkFun PCBs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.maximporges.com/2010/08/14/how-to-build-an-arduinome-part-3-diodes-and-leds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Build an Arduinome (Part 2): Components</title>
		<link>http://www.maximporges.com/2010/08/01/how-to-build-an-arduinome-part-2-components/</link>
		<comments>http://www.maximporges.com/2010/08/01/how-to-build-an-arduinome-part-2-components/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 00:38:24 +0000</pubDate>
		<dc:creator>Maxim Porges</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Arduinome]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Making]]></category>

		<guid isPermaLink="false">http://www.maximporges.com/?p=886</guid>
		<description><![CDATA[I&#8217;m working my way through the Arduinome making-of videos, and this is the first one I&#8217;ve been able to upload.

How to Build an Arduinome (Part 2): Components from Maxim Porges on Vimeo.
Unless I decide to spend $60 a year on a Vimeo pro account, it might be slow-going with the uploads, but please bear with [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working my way through the Arduinome making-of videos, and this is the first one I&#8217;ve been able to upload.</p>
<p><object width="560" height="315"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=13809496&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=13809496&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="560" height="315"></embed></object>
<p><a href="http://vimeo.com/13809496">How to Build an Arduinome (Part 2): Components</a> from <a href="http://vimeo.com/user4036781">Maxim Porges</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Unless I decide to spend $60 a year on a Vimeo pro account, it might be slow-going with the uploads, but please bear with me! The whole entire process will be documented, and you&#8217;ll be able to see the whole collection of videos on my <a href="http://www.maximporges.com/arduinome">Arduinome page</a> once they are all done.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.maximporges.com/2010/08/01/how-to-build-an-arduinome-part-2-components/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Arduinome is Finished!</title>
		<link>http://www.maximporges.com/2010/07/26/the-arduinome-is-finished/</link>
		<comments>http://www.maximporges.com/2010/07/26/the-arduinome-is-finished/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 04:25:15 +0000</pubDate>
		<dc:creator>Maxim Porges</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Arduinome]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Making]]></category>

		<guid isPermaLink="false">http://www.maximporges.com/?p=865</guid>
		<description><![CDATA[Loads more to come in the way of a detailed video build log, but here&#8217;s me messing with the Arduinome running the mlrv patch in MaxMSP. It basically turns the Arduinome in to a sample player, which was the primary reason I built it.
This is my first time messing with mlrv, so please excuse the [...]]]></description>
			<content:encoded><![CDATA[<p>Loads more to come in the way of a detailed video build log, but here&#8217;s me messing with the Arduinome running the <a href="http://docs.monome.org/doku.php?id=mlr:mlrv">mlrv</a> patch in <a href="http://cycling74.com/products/maxmspjitter/">MaxMSP</a>. It basically turns the Arduinome in to a sample player, which was the primary reason I built it.</p>
<p>This is my first time messing with mlrv, so please excuse the fact that I suck. Your ears should bleed slightly less during the second half as I start to get the hang of it.</p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/lVp2WlANJNA&amp;hl=en_US&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/lVp2WlANJNA&amp;hl=en_US&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.maximporges.com/2010/07/26/the-arduinome-is-finished/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Loom Becomes as3commons-bytecode</title>
		<link>http://www.maximporges.com/2010/06/27/loom-becomes-as3commons-bytecode/</link>
		<comments>http://www.maximporges.com/2010/06/27/loom-becomes-as3commons-bytecode/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 18:29:36 +0000</pubDate>
		<dc:creator>Maxim Porges</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.maximporges.com/?p=853</guid>
		<description><![CDATA[As you know if you follow my blog, I was working for a while on a bytecode parsing/weaving library for AS3 called Loom. I worked on this library during the six months coming up to my wedding, and then after we got back from our honeymoon I decided I just couldn&#8217;t be bothered to dig [...]]]></description>
			<content:encoded><![CDATA[<p>As you know if you follow my blog, I was working for a while on a bytecode parsing/weaving library for AS3 called <a href="http://code.google.com/p/loom-as3/">Loom</a>. I worked on this library during the six months coming up to my wedding, and then after we got back from our honeymoon I decided I just couldn&#8217;t be bothered to dig through binary with a hex editor any more.</p>
<p>I offered the project up to the people on the Loom forums, but there were no takers&#8230; until now! Roland Zwaga has been emailing me on and off for a few weeks asking questions about the library, which he&#8217;s been digging in to in order to add functionality to <a href="http://code.google.com/p/as3-commons/source/checkout">as3-commons</a> and <a href="http://www.springactionscript.org/">Spring Actionscript</a>. They needed a way to extract the private and protected class data (amongst other things) during reflection, and the only way to do that in AS3 at the moment is to parse the bytecode. Rather than starting from scratch, Roland used Loom as a basis for understanding the AVM2 spec, and built from there.</p>
<p>After asking me if I minded (which of course I didn&#8217;t), Roland&#8217;s decided to publish the guts of Loom with his additional work as as3commons-bytecode. He sent out a message to the as3-commons dev list today as follows.</p>
<p><i>Good day gentlemen,</p>
<p>as3commons has a new addition: as3commons-bytecode. This library used to be known as Loom-as3 (<a href="http://code.google.com/p/loom-as3/">http://code.google.com/p/loom-as3/</a>), sadly before Loom was completed its creator, Maxim Porges, didn&#8217;t have the personal time anymoe to invest in its completion. Which is a huge shame since Loom is one of the most complete Actionscript implementations of the AVM spec.</p>
<p>A while ago I was sifting through the Loom sources to try and get a better understanding of all of this bytecode business and came to the conclusion that Loom would be an excellent addition to as3commons and would, as a first, be a great basis to implement bytecode based reflection on.</p>
<p>I just committed version 0.5 which will give you just that, the ByteCodeType class is the main entry point and c an be used like this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="actionscript" style="font-family:monospace;">ByteCodeType.<span style="color: #006600;">fromLoader</span><span style="color: #66cc66;">&#40;</span>FlexGlobals.<span style="color: #006600;">topLevelApplication</span>.<span style="color: #006600;">loaderInfo</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>or if you want to parse the loaded RSLS as well:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> info:<span style="color: #66cc66;">*</span> <span style="color: #b1b100;">in</span> systemManager.<span style="color: #006600;">preloadedRSLs</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	ByteCodeType.<span style="color: #006600;">fromLoader</span><span style="color: #66cc66;">&#40;</span>info<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>After that the ByteCodeType instance can be retrieved through these methods:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="actionscript" style="font-family:monospace;">ByteCodeType.<span style="color: #006600;">forInstance</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
ByteCodeType.<span style="color: #006600;">forClass</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
ByteCodeType.<span style="color: #006600;">forName</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>or, if you&#8217;d like to inspect all of them, loop through the cached instacnes like this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> typeCache:TypeCache =
ByteCodeType.<span style="color: #006600;">getTypeProvider</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">getTypeCache</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #b1b100;">for</span> each <span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">key</span>:<span style="color: #0066CC;">String</span> <span style="color: #b1b100;">in</span> keys<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">type</span>:ByteCodeType = typeCache.<span style="color: #0066CC;">get</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">key</span><span style="color: #66cc66;">&#41;</span> as ByteCodeType;
	<span style="color: #808080; font-style: italic;">/* ... do something... */</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>The resulting reflection classes are all inherited from the ones found in as3commons-reflect but augmented with the extra information we can extract from the bytecode. This includes private and protected members, optional parameter values, parameter names (allthough those values are not always reliable), initialized member values, and more.</p>
<p>Anyways, I think there&#8217;s PLENTY of room for improvement and other functionality for this library but for now I would really appreciate it if you guys could check it out, give it a test drive and give your opinion, criticism, etc,.</p>
<p>100 million kudos and the same amount of respect in tons go to Maxim Porges who did all of the heavy lifting in this library, I only finished some little details added the reflection bits. </p>
<p>have fun with the code!</p>
<p>cheers,</p>
<p>Roland</i></p>
<p>Although I didn&#8217;t have any interest in finishing Loom, I didn&#8217;t want all of the work I put in to it to be completely in vain. One of the things I really like about the open source community is that you can take somebody else&#8217;s work and put it to use for whatever you have in mind for it. In this way, people can learn so much from each other and push the envelope forward in to new areas the original authors never thought of. Loom certainly wouldn&#8217;t have been possible if I hadn&#8217;t been able to look deep in to the source of the <a href="http://www.mozilla.org/projects/tamarin/">Mozilla Tamarin</a> and <a href="http://eval.hurlant.com/">hurlant eval</a> projects.</p>
<p>In closing, I&#8217;m really glad to see my work on Loom contributing value to the community now as part of ascommons-bytecode, and I look forward to seeing where things go under Roland&#8217;s leadership.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.maximporges.com/2010/06/27/loom-becomes-as3commons-bytecode/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Arduinome Coming Soon!</title>
		<link>http://www.maximporges.com/2010/06/20/arduinome-coming-soon/</link>
		<comments>http://www.maximporges.com/2010/06/20/arduinome-coming-soon/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 23:34:05 +0000</pubDate>
		<dc:creator>Maxim Porges</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Arduinome]]></category>
		<category><![CDATA[Making]]></category>

		<guid isPermaLink="false">http://www.maximporges.com/?p=802</guid>
		<description><![CDATA[I ordered the parts for my Arduinome today, referencing the excellent sources at FlipMu and CuriousInventor.com.
I&#8217;ll be documenting my journey in to Arduinome construction as the parts come in, so stay tuned! I&#8217;m also going to be maintaining a page on my site with all my Arduinome reference materials for others to follow in the [...]]]></description>
			<content:encoded><![CDATA[<p>I ordered the parts for my <a href="http://en.wikipedia.org/wiki/Arduinome">Arduinome</a> today, referencing the excellent sources at <a href="http://flipmu.com/work/arduinome/hardware/">FlipMu</a> and <a href="http://store.curiousinventor.com/blog/arduinome-case-now-available-build-log">CuriousInventor.com</a>.</p>
<p>I&#8217;ll be documenting my journey in to Arduinome construction as the parts come in, so stay tuned! I&#8217;m also going to be maintaining <a href="http://www.maximporges.com/arduinome/">a page on my site with all my Arduinome reference materials</a> for others to follow in the future.</p>
<p>In the interim, here&#8217;s the guy from Pretty Lights jamming out on his <a href="http://www.monome.org">monome</a> (the thing that inspired the Arduinome). He&#8217;s using a sample manipulation app for the *nome devices called <a href="http://docs.monome.org/doku.php?id=app:mlr">mlr</a>, which is a <a href="http://cycling74.com/products/maxmspjitter/">Max/MSP</a> patch. You can run pre-compiled patches in the runtime without having to buy Max/MSP.</p>
<p><object width="575" height="461"><param name="movie" value="http://www.youtube.com/v/hsYcLnGmzVE&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/hsYcLnGmzVE&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="575" height="461"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.maximporges.com/2010/06/20/arduinome-coming-soon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up WebDAV on OS X</title>
		<link>http://www.maximporges.com/2010/06/19/setting-up-webdav-on-os-x/</link>
		<comments>http://www.maximporges.com/2010/06/19/setting-up-webdav-on-os-x/#comments</comments>
		<pubDate>Sat, 19 Jun 2010 15:49:46 +0000</pubDate>
		<dc:creator>Maxim Porges</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.maximporges.com/?p=792</guid>
		<description><![CDATA[I was interested in setting up a WebDAV server on my Mac so that I could send files to and from it on my iPad with GoodReader. I found an article about setting up WebDAV on OS X, which was almost correct. Here&#8217;s my updates with the proper process and correct configuration.
Before you start, note [...]]]></description>
			<content:encoded><![CDATA[<p>I was interested in setting up a WebDAV server on my Mac so that I could send files to and from it on my iPad with GoodReader. I found an article about <a href="http://geekfactor.charrington.com/2009/12/run-a-webdav-server-on-your-mac-to-sync-voodoopad-for-free">setting up WebDAV on OS X</a>, which was almost correct. Here&#8217;s my updates with the proper process and correct configuration.</p>
<p>Before you start, note that any changes made to the Apache configuration files require a restart of the Apache server. This can be done by either checking and unchecking the Web Sharing checkbox under Sharing in System Preferences, or running the following command:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> apachectl graceful</pre></td></tr></table></div>

<p>These instructions help you to set up a WebDAV server on your machine which exposes the directory <i>/Library/WebServer/WebDAV</i> as your document root. If you want to set up a different directory, then change that path accordingly in all the remaining instructions. Note that the Apache user seems to need to own the path that you expose over WebDAV, so keep that in mind as you are setting things up.</p>
<p><b>1) Start Apache via System Preferences</b><br />
Open System Preferences => Sharing and click the checkbox for Web Sharing.</p>
<p><b>2) Modify /etc/apache2/extra/httpd-dav.conf</b><br />
Open this file and remove any existing WebDAV entries. Modify accordingly to end up with something like this. You should only have one DavLockDB entry anywhere in the file; in my case, one was already there so I left it alone.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;">...
DavLockDB &quot;/usr/var/DavLock&quot;
&nbsp;
# Locks down all directory access by default. You can then override
# this with additional <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Directory</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span> entries
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Directory</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    Order Deny,Allow
    Deny from all
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Directory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
# Exposes the contents of /Library/WebServer/WebDAV on the
# URL http://hostname/webdav/
Alias /webdav &quot;/Library/WebServer/WebDAV&quot;
&nbsp;
# Sets up WebDAV with access controls. Uses digest auth so you
# don't need SSL for your credentials (although note that none
# of your file transfers will be encrypted, so don't pull anything
# sensitive over the wire without SSL). Specifies a file with
# usernames/passwords, and dictates the realm applicable
# to this configuration
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Directory</span> <span style="color: #ff0000;">&quot;/Library/WebServer/WebDAV&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
   Dav On
   Order Deny,Allow
   Allow from all
&nbsp;
   AuthType Digest
   AuthName WebDAV-Realm
   AuthUserFile &quot;/usr/var/webdav.passwd&quot;
   Require valid-user
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Directory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
...</pre></td></tr></table></div>

<p>If you want to get fancy, there is some additional information on these directives for <a href="http://httpd.apache.org/docs/2.0/mod/mod_auth_digest.html">mod_auth_digest</a> and <a href="http://httpd.apache.org/docs/2.0/mod/mod_dav.html">mod_dav</a> at the Apache web site.</p>
<p><b>3) Open /etc/apache2/httpd.conf and make sure these lines are uncommented</b><br />
This enables the appropriate Apache modules that will make use of the configuration you just created.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;">LoadModule dav_module libexec/apache2/mod_dav.so
...
LoadModule auth_digest_module libexec/apache2/mod_auth_digest.so
...
Include /private/etc/apache2/extra/httpd-dav.conf</pre></td></tr></table></div>

<p><b>4) Create directories with appropriate permissions</b></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #660033;">-p</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>var
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #660033;">-p</span> <span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>WebServer<span style="color: #000000; font-weight: bold;">/</span>WebDAV
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">chown</span> <span style="color: #660033;">-R</span> www:www <span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>WebServer<span style="color: #000000; font-weight: bold;">/</span>WebDAV
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">chown</span> <span style="color: #660033;">-R</span> www:www <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>var</pre></td></tr></table></div>

<p><b>5) Create the password file and set appropriate permissions</b></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">maxbookpro:usr mporges$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> htdigest <span style="color: #660033;">-c</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>webdav.passwd WebDAV-Realm <span style="color: #ff0000;">&quot;mporges&quot;</span>
Adding password <span style="color: #000000; font-weight: bold;">for</span> mporges <span style="color: #000000; font-weight: bold;">in</span> realm WebDAV-Realm.
New password: 
Re-type new password:
&nbsp;
maxbookpro:usr mporges$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">chgrp</span> www <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>webdav.passwd</pre></td></tr></table></div>

<p><b>6) Restart Apache</b></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> apachectl graceful</pre></td></tr></table></div>

<p><b>7) Test</b><br />
As the original article suggests, the easiest way to test is to mount your WebDAV server via Finder.</p>
<p><i>To do this, open Finder and select Go > Connect to Server (⌘K). Type your WebDAV URL, or http://localhost/webdav/ if you are on the server locally. Note that the trailing slash (“/”) is important, and you will not be able to connect without it.</p>
<p>You will be prompted by Finder to type in your username and password, and you need to be careful to enter these exactly as specified for the htdigest command.</p>
<p>Upon success, you will have mounted your WebDAV folder within Finder, and you should be able to copy a file to the folder.</i></p>
<p>I found that the trailing slash was not required when mounting the WebDAV drive in Snow Leopard, but it doesn&#8217;t hurt. You&#8217;ll be able to both read and write files to the WebDAV share.</p>
<p><b>Troubleshooting</b><br />
If you have any issues, check Console for logs from Apache. It will yell at you if your config is bad.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.maximporges.com/2010/06/19/setting-up-webdav-on-os-x/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Possible Fix for iPad Wifi Problems</title>
		<link>http://www.maximporges.com/2010/06/07/possible-fix-for-ipad-wifi-problems/</link>
		<comments>http://www.maximporges.com/2010/06/07/possible-fix-for-ipad-wifi-problems/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 01:38:38 +0000</pubDate>
		<dc:creator>Maxim Porges</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://www.maximporges.com/2010/06/07/possible-fix-for-ipad-wifi-problems/</guid>
		<description><![CDATA[There&#8217;s a well-known issue with iPad wifi. While I don&#8217;t have the chronic wifi problems that I have heard of others having, I did have some issues with my wifi connection being pretty weak from my home router in certain rooms of the house (typically the ones furthest from the router). I have an Airport [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a well-known issue with iPad wifi. While I don&#8217;t have the chronic wifi problems that I have heard of others having, I did have some issues with my wifi connection being pretty weak from my home router in certain rooms of the house (typically the ones furthest from the router). I have an Airport Extreme base station, one of the newer square models. </p>
<p>The problem I have had is a one-bar signal when furthest away from the router. This is not a problem on my laptop, so I knew it had to be something with the iPad reception. The low reception can be a pain on the iPad when watching videos and other high-bandwidth activities. Just for giggles, I switched my base station over to 802.11n-only from 802.11g/n-compatible, staying in the 2.4 Ghz spectrum. I&#8217;m getting much better connection speeds all over the house now, with five bars in every room.   </p>
]]></content:encoded>
			<wfw:commentRss>http://www.maximporges.com/2010/06/07/possible-fix-for-ipad-wifi-problems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bluetooth Headphones and iPad</title>
		<link>http://www.maximporges.com/2010/05/30/bluetooth-headphones-and-ipad/</link>
		<comments>http://www.maximporges.com/2010/05/30/bluetooth-headphones-and-ipad/#comments</comments>
		<pubDate>Sun, 30 May 2010 16:59:11 +0000</pubDate>
		<dc:creator>Maxim Porges</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://www.maximporges.com/2010/05/30/bluetooth-headphones-and-ipad/</guid>
		<description><![CDATA[After successfully pairing my new Bluetooth headphones with my iPad, I had issues getting them to reconnect after the headphones were turned off and on again. I would turn Bluetooth back on on the iPad, and hold the headphones near the device, but they would never reconnect. I tried un- and re-pairing the devices, and [...]]]></description>
			<content:encoded><![CDATA[<p>After successfully pairing my new Bluetooth headphones with my iPad, I had issues getting them to reconnect after the headphones were turned off and on again. I would turn Bluetooth back on on the iPad, and hold the headphones near the device, but they would never reconnect. I tried un- and re-pairing the devices, and while the pairing operation worked and would stay connected following the pairing until the headphones were turned off, the headphones still wouldn&#8217;t reconnect after turning them off and on again. </p>
<p>To make sure it wasn&#8217;t an issue with the headphones, I tested reconnecting them to my Mac after turning them off and on again. This worked flawlessly in the usual fashion &#8211; turn them on, put the devices near each other, and the Mac connects to the headphones automatically.  </p>
<p>In staring at the Bluetooth menu on my iPad, it suddenly occurred to me that the name of my headphones in the list of devices might have been a button. Sure enough, I turned the headphones on again and clicked the name of the device in the list, a spinner showed up, and then they reconnected.</p>
<p>Checking the iPhone manual, there&#8217;s nothing in there that describes this process. I suppose it&#8217;s one of those things that should be intuitive, but in this case it was not intuitive for me since I&#8217;m used to my Macs greedily reconnecting to any devices they have been connected to before without being asked. I actually prefer this process with the iPad, since I have several devices that I share Bluetooth accessories with, and once the accessory is connected it won&#8217;t make itself available to be connected to anything else until it is disconnected. I&#8217;ve had issues with this a few times when I&#8217;ve turned my work laptop and personal laptop on at the same time in my home office. They&#8217;re both paired with my Bluetooth keyboard so whichever one binds to the keyboard first wins, regardless of which one I actually want to use the keyboard with. The only way around this is to turn off Bluetooth on one of the devices until the one I want to use the keyboard with has claimed it, which is kind of a pain.         </p>
]]></content:encoded>
			<wfw:commentRss>http://www.maximporges.com/2010/05/30/bluetooth-headphones-and-ipad/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
