<?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/"
	>

<channel>
	<title>sizzo.org</title>
	<atom:link href="http://sizzo.org/wp/feed" rel="self" type="application/rss+xml" />
	<link>http://sizzo.org/wp</link>
	<description></description>
	<pubDate>Tue, 30 Dec 2008 04:02:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>mount bind on osx?</title>
		<link>http://sizzo.org/wp/2008/12/mount-bind-on-osx</link>
		<comments>http://sizzo.org/wp/2008/12/mount-bind-on-osx#comments</comments>
		<pubDate>Tue, 30 Dec 2008 04:01:36 +0000</pubDate>
		<dc:creator>screen</dc:creator>
		
		<category><![CDATA[Misc]]></category>

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

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

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://sizzo.org/wp/?p=79</guid>
		<description><![CDATA[Enter <a href="http://code.google.com/p/bindfs/">bindfs</a>, a directory mirroring user filesystem that works with <a href="http://code.google.com/p/macfuse/">macfuse</a>. Running <code>bindfs /path/to/dest /path/to/link</code> provides the same experience. Delving into the <a href="http://bindfsdocs.googlepages.com/bindfs.1.html">man page</a> shows that you have tons of control over permissions of the directory mount as well.]]></description>
			<content:encoded><![CDATA[<p><img src="http://sizzo.org/wp/wp-content/uploads/2008/12/macfuse_180x180.png" alt="macfuse_180x180" title="macfuse_180x180" width="180" height="180" class="alignright size-full wp-image-80" /> I&#8217;ve been using Connect360 to stream video to my Xbox but it does not allow me to choose more than one video directory to share and it will not follow links onto my external drive. This is a typical problem with a simple solution on Linux, <code>mount --bind</code>. I couldn&#8217;t find mount_bind for osx but a simple alternative that really shows off the utility of user filesystems saved the day. </p>
<p>Enter <a href="http://code.google.com/p/bindfs/">bindfs</a>, a directory mirroring user filesystem that works with <a href="http://code.google.com/p/macfuse/">macfuse</a>. Running <code>bindfs /path/to/dest /path/to/link</code> provides the same experience. Delving into the <a href="http://bindfsdocs.googlepages.com/bindfs.1.html">man page</a> shows that you have tons of control over permissions of the directory mount as well.</p>
<p>If you plan to use bindfs on osx be sure to install macfuse from <a href="http://www.macports.org/">macports</a> and save yourself the configure failure when building bindfs from source because you downloaded the dmg and ran the installer.</p>
<p>We&#8217;ve been running all of our services here on sizzo in linux chroots that rely heavily on bind mounted directories to share data. It wasn&#8217;t until the 2.6.26 kernel that read only bind mounts were working, which provide an extra level of data protection within the chroot. Alternatively using bindfs/fuse on linux seems like it would be another great solution, especially when more fine grained control of permissions is necessary.</p>
]]></content:encoded>
			<wfw:commentRss>http://sizzo.org/wp/2008/12/mount-bind-on-osx/feed</wfw:commentRss>
		</item>
		<item>
		<title>Dvorak+Leopard 10.5.6 BEWARE!</title>
		<link>http://sizzo.org/wp/2008/12/dvorakleopard-1056-beware</link>
		<comments>http://sizzo.org/wp/2008/12/dvorakleopard-1056-beware#comments</comments>
		<pubDate>Thu, 18 Dec 2008 09:42:28 +0000</pubDate>
		<dc:creator>screen</dc:creator>
		
		<category><![CDATA[Misc]]></category>

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

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

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

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://sizzo.org/wp/?p=71</guid>
		<description><![CDATA[ Warning: If you are a dvorak user do not, I repeat, DO NOT upgrade OSX to Leopard 10.5.6. In fact if you use any keyboard layout other than US English you should probably wait as well. After upgrading you may find that you are unable to type using dvorak in some applications, or use [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://sizzo.org/wp/wp-content/uploads/2008/12/osx_installer.jpg" alt="osx installer" title="osx_installer" width="84" height="73" align="left" class="size-full wp-image-73" /> Warning: If you are a dvorak user do not, I repeat, <strong>DO NOT</strong> upgrade OSX to Leopard 10.5.6. In fact if you use any keyboard layout other than US English you should probably wait as well. After upgrading you may find that you are unable to type using dvorak in some applications, or use some application shortcuts. </p>
<p>I got bitten pretty badly in ATOK, a third party Japanese IME, which was rendered completely useless. It wouldn&#8217;t recognize any input keyboard layout other than US English. Input layouts in Kotoeri did work fine however. </p>
<p>Now I&#8217;ve just finished reverting back to 10.5.5 from a backup. A quick web search turned up similar problems using <a href="http://stackoverflow.com/questions/370189/eclipse-keyboard-shortcuts-broken-in-osx-1056">Epclipse keyboard shortcuts</a>, <a href="http://discussions.apple.com/thread.jspa?threadID=1829386&#038;tstart=45">WOW commands</a> and <a href="http://twitter.com/Saqoosha/status/1060057258">others</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sizzo.org/wp/2008/12/dvorakleopard-1056-beware/feed</wfw:commentRss>
		</item>
		<item>
		<title>Making cd a tad bit smarter.</title>
		<link>http://sizzo.org/wp/2008/08/making-cd-a-tad-bit-smarter</link>
		<comments>http://sizzo.org/wp/2008/08/making-cd-a-tad-bit-smarter#comments</comments>
		<pubDate>Fri, 29 Aug 2008 01:33:30 +0000</pubDate>
		<dc:creator>screen</dc:creator>
		
		<category><![CDATA[Misc]]></category>

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

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

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

		<guid isPermaLink="false">http://sizzo.org/wp/?p=42</guid>
		<description><![CDATA[I just realized that I spend way to much time taking a full path w/ filename and then deleting the filename portion after pasting into cd. So here&#8217;s a little .bash_profile function that you can alias to cd to make a bit smarter.


function _cd &#123;
  if &#91;&#91; -n $1 &#93;&#93;; then
    [...]]]></description>
			<content:encoded><![CDATA[<p>I just realized that I spend way to much time taking a full path w/ filename and then deleting the filename portion after pasting into cd. So here&#8217;s a little .bash_profile function that you can alias to cd to make a bit smarter.</p>
<div style="width: 450px">

<div class="wp_syntax"><div class="code"><pre class="bash bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> _cd <span style="color: #7a0874; font-weight: bold;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-n</span> $<span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-L</span> $<span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
      <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;`stat -L $1 -c %F`&quot;</span> <span style="color: #000000; font-weight: bold;">!</span>= <span style="color: #ff0000;">'directory'</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #007800;">CDIR</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">dirname</span> $<span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">`</span>
    <span style="color: #000000; font-weight: bold;">elif</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #660033;">-d</span> $<span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
      <span style="color: #007800;">CDIR</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">dirname</span> $<span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">`</span>
      <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;$CDIR&quot;</span> == <span style="color: #ff0000;">&quot;.&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #7a0874; font-weight: bold;">unset</span> CDIR
    <span style="color: #000000; font-weight: bold;">fi</span>
  <span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">&quot;$CDIR&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
    <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #007800;">$CDIR</span>
  <span style="color: #000000; font-weight: bold;">else</span>
    <span style="color: #7a0874; font-weight: bold;">cd</span> $<span style="color: #000000;">1</span>
  <span style="color: #000000; font-weight: bold;">fi</span>
  <span style="color: #7a0874; font-weight: bold;">unset</span> CDIR
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;"><span style="color: #7a0874; font-weight: bold;">cd</span></span>=<span style="color: #ff0000;">&quot;_cd&quot;</span></pre></div></div>

</div>
<p>This should allow you to use cd normall but when you do the following it will put you in the directory that httpd.conf is in:</p>
<pre style="background-color: black; color: white;">

sizzo:~ screen$ cd /usr/local/apache/conf/httpd.conf
sizzo:/usr/local/apache/conf screen$
<br/>
</pre>
<p>If you use or expand this please share your experience! There are a couple known issues such as reverse traversing across links from within link directories, not sure if there&#8217;s a way around this yet. I&#8217;ll update as issues may arise.</p>
]]></content:encoded>
			<wfw:commentRss>http://sizzo.org/wp/2008/08/making-cd-a-tad-bit-smarter/feed</wfw:commentRss>
		</item>
		<item>
		<title>A Windows Terminal-like font in OSX</title>
		<link>http://sizzo.org/wp/2008/07/a-windows-terminal-like-font-in-osx</link>
		<comments>http://sizzo.org/wp/2008/07/a-windows-terminal-like-font-in-osx#comments</comments>
		<pubDate>Fri, 11 Jul 2008 09:53:19 +0000</pubDate>
		<dc:creator>screen</dc:creator>
		
		<category><![CDATA[Misc]]></category>

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

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

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

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

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

		<category><![CDATA[Windows Terminal]]></category>

		<guid isPermaLink="false">http://sizzo.org/wp/?p=29</guid>
		<description><![CDATA[If you&#8217;ve used terminals since the early 90&#8217;s then you might be pretty used to an old style DOS like font like me. After running windows for so long one of the hardest things about switching to OSX was finding a good font that looks something like what I was used to. This was a [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve used terminals since the early 90&#8217;s then you might be pretty used to an old style DOS like font like me. After running windows for so long one of the hardest things about switching to OSX was finding a good font that looks something like what I was used to. This was a must have condition for making the switch two years ago.</p>
<p>There&#8217;s just something about the new fonts that just doesn&#8217;t work for me after spending hundreds of thousands of hours either in a text editor or at the command prompt. Of course the actual Terminal Font on windows isn&#8217;t a TTF so that&#8217;s a dead end.</p>
<p>What I eventually found was a True Type Font called <a href="http://www.abstractfonts.com/font/3941" target="_blank">Video Terminal Screen</a>. This is what it looks like in iTerm on Leopard at 16pt. Text and code look great with it, well to me.</p>
<p><a href="http://sizzo.org/wp/wp-content/uploads/2008/07/video_terminal_font.png"></a><a href="http://sizzo.org/wp/wp-content/uploads/2008/07/video_terminal_font1.png"></a><a href="http://sizzo.org/wp/wp-content/uploads/2008/07/video-terminal-screen.png"><img class="alignnone size-full wp-image-32" title="Video Terminal Sscreen" src="http://sizzo.org/wp/wp-content/uploads/2008/07/video-terminal-screen.png" alt="" width="484" height="80" /></a><a href="http://sizzo.org/wp/wp-content/uploads/2008/07/video_terminal_font1.png"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://sizzo.org/wp/2008/07/a-windows-terminal-like-font-in-osx/feed</wfw:commentRss>
		</item>
		<item>
		<title>OSCON 2008</title>
		<link>http://sizzo.org/wp/2008/07/oscon-2008</link>
		<comments>http://sizzo.org/wp/2008/07/oscon-2008#comments</comments>
		<pubDate>Wed, 09 Jul 2008 09:36:07 +0000</pubDate>
		<dc:creator>screen</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://sizzo.org/wp/?p=25</guid>
		<description><![CDATA[I&#8217;m happy to be heading to Portland to speak at OSCON in two weeks where I&#8217;ll be presenting my performance caching talk for the last time. If you haven&#8217;t had a chance to see it yet I hope I&#8217;ll see you there. Hrm, now i&#8217;ll need to think of something new to talk about&#8230;
Update: Slides [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://conferences.oreilly.com/oscon"><img src="http://conferences.oreillynet.com/banners/oscon/speaker/oscon2008_banner_speaker_210x60.gif" width="210" height="60"  border="0"  alt="OSCON 2008" title="OSCON 2008"  align="right" style="margin: 0px 0px 10px 10px;" /></a>I&#8217;m happy to be heading to Portland to speak at OSCON in two weeks where I&#8217;ll be presenting my performance caching talk for the last time. If you haven&#8217;t had a chance to see it yet I hope I&#8217;ll see you there. Hrm, now i&#8217;ll need to think of something new to talk about&#8230;</p>
<p><strong>Update</strong>: <a href="http://sizzo.org/wp/talks/">Slides</a> are now available.</p>
]]></content:encoded>
			<wfw:commentRss>http://sizzo.org/wp/2008/07/oscon-2008/feed</wfw:commentRss>
		</item>
		<item>
		<title>Japanese Verb Conjugation</title>
		<link>http://sizzo.org/wp/2008/07/japanese-verb-conjugation</link>
		<comments>http://sizzo.org/wp/2008/07/japanese-verb-conjugation#comments</comments>
		<pubDate>Tue, 08 Jul 2008 11:12:57 +0000</pubDate>
		<dc:creator>screen</dc:creator>
		
		<category><![CDATA[Japanese]]></category>

		<category><![CDATA[て Form]]></category>

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

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

		<category><![CDATA[Te Form]]></category>

		<category><![CDATA[Verb Conjugation]]></category>

		<category><![CDATA[日本語]]></category>

		<guid isPermaLink="false">http://sizzo.org/wp/?p=22</guid>
		<description><![CDATA[Japanese Intermediate 2 began last week at Soko Gakuen and I&#8217;ve been preparing for a while to dive more into verb conjugations. It doesn&#8217;t look like we&#8217;ll be going terribly far with them just yet but I&#8217;ll be ready with the new verb conjugation charts that I&#8217;ve been compiling. I&#8217;m posting the first two charts [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://sizzo.org/wp/wp-content/uploads/2008/07/verb_conjugation.png" alt="" title="verb_conjugation" width="55" height="435" align="left" class="alignleft size-full wp-image-23" />Japanese Intermediate 2 began last week at <a href="http://sokogakuen.org">Soko Gakuen</a> and I&#8217;ve been preparing for a while to dive more into verb conjugations. It doesn&#8217;t look like we&#8217;ll be going terribly far with them just yet but I&#8217;ll be ready with the new verb conjugation charts that I&#8217;ve been compiling. I&#8217;m posting the first two charts as they might be useful to other students.</p>
<ul>
<li>Japanese Verb Conjugation Chart (<a href="http://sizzo.org/~screen/nihongo/japanese_verb_conjugation_chart.pdf">PDF</a>) (<a href="http://www.scribd.com/doc/3871813/Japanese-Verb-Conjugation-Chart">Scribd</a>)</li>
<li>て(te) Form Conjugation Chart (<a href="http://sizzo.org/~screen/nihongo/japanese_te_form_chart.pdf">PDF</a>) (<a href="http://www.scribd.com/doc/3871844/Japanese-te-Form-Chart">Scribd</a>)</li>
</ul>
<p>These are a works progress and if you see any mistakes, please <a href="http://sizzo.org/wp/about/">contact</a> me. The main chart should contain most conjugations used in modern japanese and I plan to add more useful compound verbs in the future, as I learn them. I&#8217;ve collapsed some rows so the chart would fit on one page, these are indicated by the numeric references in the &#8216;Pre&#8217; column.</p>
<p>The XHTML charts may not display properly, if at all (Internet Explorer) on Windows, and the PDF versions are formatted for printing on A4 paper. </p>
<p>The charts were compiled with information from the following great resources:</p>
<ul>
<li><a href="http://www.epochrypha.com/japanese/verbs/verbs.html">Collin McCulley&#8217;s Japanese Verbs Page</a></li>
<li><a href="http://www.nihongoresources.com/resources/books.html">An Introduction to Japanese Syntax, Grammar and Language (PDF)</a></li>
<li><a href="http://www.csse.monash.edu.au/~jwb/wwwjdic.html">Jim Breen&#8217;s WWWJDIC Japanese Dictionary</a></li>
<li>and many others</li>
</ul>
<p><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://sizzo.org/wp/2008/07/japanese-verb-conjugation/feed</wfw:commentRss>
		</item>
		<item>
		<title>A Nihongo Note</title>
		<link>http://sizzo.org/wp/2007/12/a-nihongo-note</link>
		<comments>http://sizzo.org/wp/2007/12/a-nihongo-note#comments</comments>
		<pubDate>Tue, 11 Dec 2007 08:02:43 +0000</pubDate>
		<dc:creator>screen</dc:creator>
		
		<category><![CDATA[Japanese]]></category>

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

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

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

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

		<category><![CDATA[Middle Dot]]></category>

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

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

		<guid isPermaLink="false">http://sizzo.org/wp/2007/12/11/a-nihongo-note/</guid>
		<description><![CDATA[I just finished taking my Japanese final for Beginning 2 and thought I&#8217;d post a little tidbit. Earlier today I managed to spend about 30 minutes figuring out how to input the interpunct character that is used to separate transcribed foreign words written in Katakana like オペレーティング・システム (operating system). In unicode this ・little guy・ is [...]]]></description>
			<content:encoded><![CDATA[<p><img align="right" style="padding-bottom: 5px" id="image20" src="http://sizzo.org/wp/wp-content/uploads/2007/12/katakana_middle_dot.thumbnail.gif" alt="Katakana Middle Dot (Interpunct)" />I just finished taking my Japanese final for Beginning 2 and thought I&#8217;d post a little tidbit. Earlier today I managed to spend about 30 minutes figuring out how to input the interpunct character that is used to separate transcribed foreign words written in Katakana like オペレーティング・システム (operating system). In unicode this ・little guy・ is called the &#8216;katakana middle dot&#8217; or in Japanese, nakaguro. How to input this character in OSX seems to be completely undocumented. In hopes of saving someone this precious time, the kotoeri key combination to use, in kana mode, is ⌥+/ (option/alt + forward slash). You can also enter なかぐろ+[space] <img src='http://sizzo.org/wp/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://sizzo.org/wp/2007/12/a-nihongo-note/feed</wfw:commentRss>
		</item>
		<item>
		<title>DCPHP Talk</title>
		<link>http://sizzo.org/wp/2007/11/dcphp-talk</link>
		<comments>http://sizzo.org/wp/2007/11/dcphp-talk#comments</comments>
		<pubDate>Sat, 24 Nov 2007 08:53:17 +0000</pubDate>
		<dc:creator>screen</dc:creator>
		
		<category><![CDATA[PHP]]></category>

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

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

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

		<guid isPermaLink="false">http://sizzo.org/wp/2007/11/24/dcphp-talk/</guid>
		<description><![CDATA[I&#8217;ve been traveling a lot and almost forgot to get up the slides from my talk in DC a couple weeks ago. If you&#8217;d like to check out the slides, they are available in the Talks section. I had a great time giving this talk and meeting the great DC PHP guys as well as [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been traveling a lot and almost forgot to get up the slides from my talk in DC a couple weeks ago. If you&#8217;d like to check out the slides, they are available in the <a href="http://sizzo.org/talks/">Talks</a> section. I had a great time giving this talk and meeting the great DC PHP guys as well as hanging out with some of the OmniTI folks.</p>
<p><img id="image13" src="http://sizzo.org/wp/wp-content/uploads/2007/11/dcphpconference2007.png" alt="DCPHP2007" /></p>
]]></content:encoded>
			<wfw:commentRss>http://sizzo.org/wp/2007/11/dcphp-talk/feed</wfw:commentRss>
		</item>
		<item>
		<title>You&#8217;re Source Code is Showing</title>
		<link>http://sizzo.org/wp/2007/09/youre-source-code-is-showing</link>
		<comments>http://sizzo.org/wp/2007/09/youre-source-code-is-showing#comments</comments>
		<pubDate>Tue, 25 Sep 2007 06:21:31 +0000</pubDate>
		<dc:creator>screen</dc:creator>
		
		<category><![CDATA[PHP]]></category>

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

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

		<guid isPermaLink="false">http://sizzo.org/wp/2007/09/24/youre-source-code-is-showing/</guid>
		<description><![CDATA[We&#8217;ve all seen Apache serve up some source code when it should have been parsing PHP, or whatever you&#8217;re server side language of choice is, but what can we do to prevent it?
Although it seems improbable I have seen a case where this could be attributed to achieving a mysteriously unstable Apache or PHP state. [...]]]></description>
			<content:encoded><![CDATA[<p><img align="left" style="margin: 0px 10px 3px 0px" alt="01-021-sm.jpg" id="image15" src="http://sizzo.org/wp/wp-content/uploads/2007/09/01-021-sm.thumbnail.jpg" />We&#8217;ve all seen Apache serve up some source code when it should have been parsing PHP, or whatever you&#8217;re server side language of choice is, but what can we do to prevent it?</p>
<p>Although it seems improbable I have seen a case where this could be attributed to achieving a mysteriously unstable Apache or PHP state. This particular server happened to be mis-configured to load <a target="_blank" title="APC Manual Page" href="http://www.php.net/apc">APC</a> as a shared object even though it was already compiled into PHP statically. I recently tried to reproduce this but failed when running a recent build of APC. I do know, however, that removing the erroneous apc.so solved the problem.</p>
<p>We, at Facebook, recently encountered a similar issue resulting in the same outcome. It was the middle of August when I got a message from a user wondering why we were showing him &#8216;codes&#8217; instead of search results when he was searching for a friend. He was able to reach me because my email address is in the first 10 lines of the source code for s.php. This source code was visible to him rather than the search results he was looking for so I dropped everything to try and figure out why.</p>
<p>This shouldn&#8217;t have been possible running the Apache modifications we have in place. We had already patched Apache to detect requested PHP extensions that return a non-handled response, preventing source code from being returned. Although similar results can be achieved using an Apache module such as mod_security, this module only supports output filtering in Apache 2. We decided to patch Apache 1.3 directly which has the added benefit of averting a potential configuration error. This patch for Apache 1.3.37/1.3.39 is now available <a title="Apache Source Defense Patch" href="http://tekrat.com/2007/09/24/apache-source-defense/">here</a>.</p>
<p>After looking at every possible angle, I was unable to configure our Apache build to serve source code even if we wanted to. What we eventually found was a single server running a standard distribution build of Apache in our production pool of several thousand web severs. A lot has been posted online blaming PHP for this, however, the server that we eventually found was not running PHP. In order to criticize PHP we should scrutinize the implementation details of the language itself and eschew the attributes that are common among all web server programming languages.</p>
<p>These sorts of issues can and do happen to anyone, large or small, so what can you do to minimize the damage when this situation arises? As I mentioned earlier, you can use a module like mod_security and it&#8217;s response parsing features, however this does not come free of cost. You&#8217;ll need to be running Apache 2.x and if you are concerned with PHP performance this is not a good choice today, see Ilia Alshanetsky&#8217;s article <a target="_blank" title="Apache 1 vs Apache 2 Performance" href="http://ilia.ws/archives/32-Apache-1-vs-Apache-2-Performance.html">Apache 1 vs Apache 2 Performance</a>. If you&#8217;re already running Apache 1.x you can take a look at our patch but you can also do more, like abstract all PHP pages by implementing an include which evaluates code outside of the document root:</p>
<p><code>/siteroot/docroot/index.php:<br />
include_once '/siteroot/site/index.php';  // point to the real index.php<br />
?></code></p>
<p>Although not absolutely preventing source code leaks, this method, proposed in the blog <a target="_blank" href="http://www.nik.com.au/archives/2007/08/11/learning-from-facebook-preventing-php-leakage">New Web Order</a>, is sound advice and minimizes risk when an exposure occurs. In an optimized APC environment, where <a title="APC stat=0 description" href="http://www.php.net/apc#ini.apc.stat">apc.stat=0</a>, this added abstraction should come at little to no cost in performance.</p>
<p>Simple problems such as this can affect anyone large or small and as the complexity of an environment increases it requires more robust auditing and monitoring. Open source monitoring toolkits largely lack the necessary features to scale in support of these environments so it is essential that we continue to build and improve these systems internally to prevent and detect problems like this. If you are interested in building these types of systems with us or working on PHP with us, feel free to contact me or checkout <a target="_blank" title="Facebook Jobs" href="http://www.facebook.com/jobs/">Facebook Jobs</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sizzo.org/wp/2007/09/youre-source-code-is-showing/feed</wfw:commentRss>
		</item>
		<item>
		<title>PHP&#124;works Talk</title>
		<link>http://sizzo.org/wp/2007/09/phpworks-talk</link>
		<comments>http://sizzo.org/wp/2007/09/phpworks-talk#comments</comments>
		<pubDate>Fri, 14 Sep 2007 18:47:27 +0000</pubDate>
		<dc:creator>screen</dc:creator>
		
		<category><![CDATA[PHP]]></category>

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

		<category><![CDATA[PHP|Works]]></category>

		<category><![CDATA[Terry Chay]]></category>

		<guid isPermaLink="false">http://sizzo.org/wp/2007/09/14/phpworks-talk/</guid>
		<description><![CDATA[I did my first PHP conference talk yesterday at PHP&#124;works. I think it went pretty well considering it was my first for this presentation. If you&#8217;d like to check it out the slides are available in my new Talks section. Now back to being entertained by Terry Chay&#8217;s talk.

]]></description>
			<content:encoded><![CDATA[<p>I did my first PHP conference talk yesterday at <a href="http://works.phparch.com/c/p/index" target="_blank">PHP|works</a>. I think it went pretty well considering it was my first for this presentation. If you&#8217;d like to check it out the slides are available in my new <a href="http://sizzo.org/talks/">Talks</a> section. Now back to being entertained by <a href="http://terrychay.com/blog/" target="_blank" title="Thats fucking viral">Terry Chay&#8217;s</a> talk.</p>
<p><img id="image12" src="http://sizzo.org/wp/wp-content/uploads/2007/09/phpworks2007.thumbnail.png" alt="PHP|works" /></p>
]]></content:encoded>
			<wfw:commentRss>http://sizzo.org/wp/2007/09/phpworks-talk/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
