<?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>IONCANNON &#187; meta</title>
	<atom:link href="http://www.ioncannon.net/category/meta/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ioncannon.net</link>
	<description>Thoughts on Software Development and Engineering</description>
	<lastBuildDate>Tue, 03 Jan 2012 13:59:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<atom:link rel='hub' href='http://www.ioncannon.net/?pushpress=hub'/>
		<item>
		<title>Compiling WebM into FFMpeg for Windows</title>
		<link>http://www.ioncannon.net/meta/1128/compiling-webm-ffmpeg-windows/</link>
		<comments>http://www.ioncannon.net/meta/1128/compiling-webm-ffmpeg-windows/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 10:30:55 +0000</pubDate>
		<dc:creator>carson</dc:creator>
				<category><![CDATA[meta]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[vp8]]></category>
		<category><![CDATA[webm]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.ioncannon.net/?p=1128</guid>
		<description><![CDATA[I have updated this post with a newer version of the VP8 patches to FFMpeg and support for libvorbis instead of the built in vorbis support. Google has released source for the VP8 codec as the WebM project. The WebM project will be an open alternative in the HTML5 video tag codec space and being [...]]]></description>
			<content:encoded><![CDATA[<p>I have updated this post with a newer version of the VP8 patches to FFMpeg and support for libvorbis instead of the built in vorbis support.</p>
<p>Google has released source for the VP8 codec as the <a href="http://www.webmproject.org/">WebM project</a>. The WebM project will be an open alternative in the HTML5 video tag codec space and being backed by Google, who will use it for YouTube, will give it a fighting chance. WebM is starting to be integrated into FFMpeg but there are still some patches that need to be applied. While there are some guides to how to <a href="http://lardbucket.org/blog/archives/2010/05/19/vp8-webm-and-ffmpeg/">build FFMpeg for Linux with VP8 WebM support</a> I wanted to get it compiled for Windows.</p>
<p>First off this won&#039;t be done using a Windows install but instead using <a href="http://www.virtualbox.org/">Virtual Box</a> with a fresh install of <a href="http://releases.ubuntu.com/lucid/">Ubuntu 10.04</a> desktop. It is just faster and easier that way. So go ahead and grab Virtual Box and get Ubuntu installed on it before you continue.</p>
<p><span id="more-1128"></span></p>
<p>I used this <a href="http://www.bluebottle.net.au/blog/2010/cross-compiling-x264-for-win32-on-ubuntu-linux/">cross compiling X264 using Ubuntu</a> as a base for part of my script. The entire script follows but if you want to make sure you get a good copy you can <a href="http://www.ioncannon.net/examples/vp8-webm/vp8webmffmpeg.sh">download it</a>:</p>
<pre class="brush: plain; title: ; notranslate">
mkdir ffmpeg
cd ffmpeg

BASEDIR=`pwd`
MINGBASE=$BASEDIR/win32-webm

sudo apt-get install pkg-config yasm subversion cvs git-core gcc-mingw32

cat &gt; mingw32-setup.sh &lt;&lt; EOF
#!/bin/sh
export CC=i586-mingw32msvc-gcc
export CXX=i586-mingw32msvc-g++
export CPP=i586-mingw32msvc-cpp
export AR=i586-mingw32msvc-ar
export RANLIB=i586-mingw32msvc-ranlib
export ADD2LINE=i586-mingw32msvc-addr2line
export AS=i586-mingw32msvc-as
export LD=i586-mingw32msvc-ld
export NM=i586-mingw32msvc-nm
export STRIP=i586-mingw32msvc-strip

export PATH=&quot;/usr/i586-mingw32msvc/bin:$PATH&quot;
export PKG_CONFIG_PATH=&quot;$MINGBASE/lib/pkgconfig/&quot;
exec &quot;\$@&quot;
EOF
chmod +x mingw32-setup.sh

mkdir $MINGBASE $MINGBASE/src $MINGBASE/lib $MINGBASE/include $MINGBASE/share $MINGBASE/bin

cd $MINGBASE/src

wget -qO - http://downloads.xiph.org/releases/ogg/libogg-1.2.0.tar.gz | tar xzf -
cd libogg-1.2.0
$BASEDIR/mingw32-setup.sh ./configure --enable-static --disable-shared --host=mingw32
make
DESTDIR=$MINGBASE make install prefix=
cd ..

wget -qO - http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.1.tar.gz | tar xzf -
cd libvorbis-1.3.1
LDFLAGS=&quot;-L$MINGBASE/lib&quot; CFLAGS=&quot;-I$MINGBASE/include&quot; $BASEDIR/mingw32-setup.sh ./configure --enable-static --disable-shared --host=mingw32
make
DESTDIR=$MINGBASE make install prefix=
cd ..

wget -qO - ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-8-0-release.tar.gz | tar xzf -
cd pthreads-w32-2-8-0-release
make GC-static CROSS=i586-mingw32msvc-
cp libpthreadGC2.a $MINGBASE/lib
cp *.h $MINGBASE/include
cd ..

wget -qO - http://zlib.net/zlib-1.2.5.tar.gz | tar xzf -
cd zlib-1.2.5/
$BASEDIR/mingw32-setup.sh ./configure
sed -i&quot;&quot; -e 's/-lc//' Makefile
make
DESTDIR=$MINGBASE make install prefix=
cd ..

git clone git://review.webmproject.org/libvpx.git
cd libvpx/
git checkout fd0d7ff4c155b94d3f322addc7b66234b6908cc6
cat &gt; /tmp/libvpx.x.patch &lt;&lt; EOP
diff -rupN libvpx.orig/configure libvpx/configure
--- libvpx.orig/configure	2010-07-11 14:49:18.703230816 -0400
+++ libvpx/configure	2010-07-11 14:50:33.747300030 -0400
@@ -436,9 +436,9 @@ process_detect() {
         }
     fi
     check_header stdio.h || die &quot;Unable to invoke compiler: \${CC} \${CFLAGS}&quot;
-    check_ld &lt;&lt;EOF || die &quot;Toolchain is unable to link executables&quot;
-int main(void) {return 0;}
-EOF
+#    check_ld &lt;&lt;EOF || die &quot;Toolchain is unable to link executables&quot;
+#int main(void) {return 0;}
+#EOF
     # check system headers
     check_header stdint.h
     check_header pthread.h
diff -rupN libvpx.orig/vp8/common/postproc.c libvpx/vp8/common/postproc.c
--- libvpx.orig/vp8/common/postproc.c	2010-07-11 14:49:18.939266476 -0400
+++ libvpx/vp8/common/postproc.c	2010-07-11 14:51:03.855300662 -0400
@@ -481,7 +481,7 @@ int vp8_post_proc_frame(VP8_COMMON *oci,
     }

 #if ARCH_X86||ARCH_X86_64
-    vpx_reset_mmx_state();
+//    vpx_reset_mmx_state();
 #endif

     if (flags &amp; VP8D_DEMACROBLOCK)
diff -rupN libvpx.orig/vp8/common/systemdependent.h libvpx/vp8/common/systemdependent.h
--- libvpx.orig/vp8/common/systemdependent.h	2010-07-11 14:49:18.947263304 -0400
+++ libvpx/vp8/common/systemdependent.h	2010-07-11 14:51:25.019253115 -0400
@@ -10,12 +10,12 @@

 #include &quot;vpx_ports/config.h&quot;
-#if ARCH_X86 || ARCH_X86_64
-void vpx_reset_mmx_state(void);
-#define vp8_clear_system_state() vpx_reset_mmx_state()
-#else
+//#if ARCH_X86 || ARCH_X86_64
+//void vpx_reset_mmx_state(void);
+//#define vp8_clear_system_state() vpx_reset_mmx_state()
+//#else
 #define vp8_clear_system_state()
-#endif
+//#endif

 struct VP8Common;
 void vp8_machine_specific_config(struct VP8Common *);
EOP
patch -p1 &lt; /tmp/libvpx.x.patch
$BASEDIR/mingw32-setup.sh ./configure --disable-examples --disable-mmx --disable-sse --disable-sse2 --disable-sse3 --disable-ssse3
$BASEDIR/mingw32-setup.sh make
DESTDIR=$MINGBASE make install prefix=/
cd ../..
mv usr/local/lib/* lib
mv usr/local/include/vpx/ include/
cd src

wget -qO - http://webm.googlecode.com/files/ffmpeg-0.6_libvpx-0.9.1.diff.gz | zcat - &gt; /tmp/ffmpeg-0.6_libvpx-0.9.1.diff
wget -qO - http://www.ffmpeg.org/releases/ffmpeg-0.6.tar.gz | tar xzf -
cd ffmpeg-0.6
patch -p0 &lt; /tmp/ffmpeg-0.6_libvpx-0.9.1.diff

LDFLAGS=&quot;-L$MINGBASE/lib&quot; CFLAGS=&quot;-I$MINGBASE/include&quot; ./configure --target-os=mingw32 --cross-prefix=i586-mingw32msvc- --arch=x86 --prefix=$MINGBASE --enable-memalign-hack --enable-gpl --enable-avisynth --enable-version3 --enable-postproc --enable-libvpx --enable-runtime-cpudetect --disable-network --disable-devices --disable-encoder=vorbis --enable-libvorbis
make

cp ffmpeg.exe $BASEDIR
</pre>
<p>Just transfer that script to the user you create when you installed Ubuntu and run it. You will need to provide your password once so that the system can install a few tools but after that everything is done automatically. At the end you will have exe files in the directory you ran the script from.</p>
<p>Transfer the exe files that are created to a windows machine and then transcode a video like this:</p>
<div class="codesnip-container" >ffmpeg.exe -i Big_Buck_Bunny_1080p.avi -acodec libvorbis -ac 2 -ab 128k -ar 44100 -s 720&#215;480 Big_Buck_Bunny_1080p.webm</div>
<p>Please note that you need to include the audio codec information above to correctly encode the video. If you don&#039;t include rate values you will get an error telling you the libvorbis can&#039;t be initialized.</p>
<p>When the transcoding is done you will have a WebM video. Grab your closest HTML5 video player like <a href="http://videojs.com/">VideoJS</a> and you are ready to go.</p>
<p>For a demo video encoded using FFMpeg created with the above script check out this <a href="http://www.ioncannon.net/examples/vp8-webm/demo.html">WebM demo video</a>. You will need to use one of the following browsers to view the demo (all of these are as of July 13 2010, support will eventually be added to the main build):</p>
<ul>
<li><a href="http://www.chromium.org/getting-involved/dev-channel">Chromium</a> dev channel build</li>
<li><a href="http://www.mozilla.com/en-US/firefox/all-beta.html">Firefox</a> 4 beta</li>
<li><a href="http://www.opera.com/download/">Opera</a></li>
<li><a href="http://windowsteamblog.com/windows/b/bloggingwindows/archive/2010/05/19/another-follow-up-on-html5-video-in-ie9.aspx">IE 9</a> when the user has the Direct Show DLLs installed</li>
</ul>
<p>I have tested the demo video on each of the above, except for IE9 that doesn&#039;t have WebM support as of yet, and it seems to work pretty well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ioncannon.net/meta/1128/compiling-webm-ffmpeg-windows/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>How to Create iPad Formatted Videos Using HandBrake or FFMpeg</title>
		<link>http://www.ioncannon.net/meta/1040/how-to-create-ipad-formatted-videos-using-handbrake-or-ffmpeg/</link>
		<comments>http://www.ioncannon.net/meta/1040/how-to-create-ipad-formatted-videos-using-handbrake-or-ffmpeg/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 10:56:19 +0000</pubDate>
		<dc:creator>carson</dc:creator>
				<category><![CDATA[meta]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[handbrake]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.ioncannon.net/?p=1040</guid>
		<description><![CDATA[This is for those who may want to load a video onto their iPad with iTunes that isn&#039;t in the correct format. I needed to do this because I was trying to put an iTunes University video on my iPad a couple days ago and iTunes complained that it wasn&#039;t in the correct format for [...]]]></description>
			<content:encoded><![CDATA[<p>This is for those who may want to load a video onto their iPad with iTunes that isn&#039;t in the correct format. I needed to do this because I was trying to put an iTunes University video on my iPad a couple days ago and iTunes complained that it wasn&#039;t in the correct format for the iPad. I&#039;m not sure exactly how that could be but I decided to take the opportunity to see if I could use <a href="http://handbrake.fr/">HandBrake</a> to easily convert it to an iPad friendly format. There is currently no pre-loaded iPad configuration for HandBrake like there is for the iPhone and iPod Touch so I created a few profiles that can easily be imported into HandBrake to output different sizes for the iPad:</p>
<ul>
<li><a href="http://www.ioncannon.net/projects/ipadhandbrake/iPad-4x3.plist">iPad-4&#215;3.plist</a> &#8211; A 4&#215;3 aspect ratio at 640&#215;480</li>
<li><a href="http://www.ioncannon.net/projects/ipadhandbrake/iPad-16x9.plist">iPad-16&#215;9.plist</a> &#8211; A 16&#215;9 aspect ratio at 640&#215;360</li>
<li><a href="http://www.ioncannon.net/projects/ipadhandbrake/iPad-Full.plist">iPad-Full.plist</a> &#8211; A 4&#215;3 aspect ratio at 1024&#215;576</li>
</ul>
<p>Note that when you import videos using iTunes the iPad puts them in their own Videos app unlike the iPhone where they show up under the iPod app. You will want to find the Videos icon if you don&#039;t already know where it is:</p>
<p><a href="http://www.ioncannon.net/wp-content/uploads/2010/04/Screenshot-iPad-Videos.jpg"><img src="http://www.ioncannon.net/wp-content/uploads/2010/04/Screenshot-iPad-Videos-300x163.jpg" alt="iPad Videos Screenshot" title="iPad Videos Screenshot" width="300" height="163" class="alignnone size-medium wp-image-1043" /></a></p>
<p>After verifying that the above 4&#215;3 version worked for the iTunes University video I went about testing it on a couple other video formats. I tested the <a href="http://www.bigbuckbunny.org/">Big Buck Bunny</a> video that I also used for my post on <a href="http://www.ioncannon.net/programming/1015/ipad-streaming-video-and-more/">iPad video streaming</a> in both 640&#215;360 and 1024&#215;576 output formats. Both resolutions looked great. I also tried converting a DVD. If you decide to convert a DVD you will probably want to turn on de-interlacing in HandBrake. You do that by first selecting the &#034;Picture Settings&#034; option:</p>
<p><a href="http://www.ioncannon.net/wp-content/uploads/2010/04/Screenshot-HandBrake-PictureSettings.png"><img src="http://www.ioncannon.net/wp-content/uploads/2010/04/Screenshot-HandBrake-PictureSettings-300x81.png" alt="HandBrake Picture Settings Screenshot" title="HandBrake Picture Settings Screenshot" width="300" height="81" class="alignnone size-medium wp-image-1042" /></a></p>
<p>Then the filters tab and then select the type of de-interlace you want (fast, slow, slowest):</p>
<p><a href="http://www.ioncannon.net/wp-content/uploads/2010/04/Screenshot-HandBrake-DeInterlaceSettings.png"><img src="http://www.ioncannon.net/wp-content/uploads/2010/04/Screenshot-HandBrake-DeInterlaceSettings-300x103.png" alt="HandBrake DeInterlace Settings Screenshot" title="HandBrake DeInterlace Settings Screenshot" width="300" height="103" class="alignnone size-medium wp-image-1041" /></a></p>
<p>If you want to use FFMpeg to do all this you can. The following is a slightly modified version of the streaming command I&#039;m using that will output a high bitrate version of the input video:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw2">ffmpeg</span> <span class="re5">-y</span> <span class="re5">-i</span> input.avi <span class="re5">-acodec</span> aac <span class="re5">-ar</span> 48000 <span class="re5">-ab</span> 128k <span class="re5">-ac</span> 2 <span class="re5">-s</span> 1024&#215;768 <span class="re5">-vcodec</span> libx264 <span class="re5">-b</span> 1200k <span class="re5">-flags</span> +loop+mv4 <span class="re5">-cmp</span> 256 <span class="re5">-partitions</span> +parti4x4+partp8x8+partb8x8 <span class="re5">-subq</span> 7 <span class="re5">-trellis</span> 1 <span class="re5">-refs</span> 5 <span class="re5">-coder</span> 0 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 <span class="re5">-bt</span> 1200k <span class="re5">-maxrate</span> 1200k <span class="re5">-bufsize</span> 1200k -rc_eq <span class="st_h">&#039;blurCplx^(1-qComp)&#039;</span> <span class="re5">-qcomp</span> 0.6 <span class="re5">-qmin</span> 10 <span class="re5">-qmax</span> 51 <span class="re5">-qdiff</span> 4 <span class="re5">-level</span> 30 <span class="re5">-aspect</span> 16:9 <span class="re5">-r</span> 30 <span class="re5">-g</span> 90 <span class="re5">-async</span> <span class="nu0">2</span> output.mp4</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.ioncannon.net/meta/1040/how-to-create-ipad-formatted-videos-using-handbrake-or-ffmpeg/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>iPhone Windowed HTTP Live Streaming Server</title>
		<link>http://www.ioncannon.net/meta/564/iphone-windowed-http-live-streaming-server/</link>
		<comments>http://www.ioncannon.net/meta/564/iphone-windowed-http-live-streaming-server/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 11:22:54 +0000</pubDate>
		<dc:creator>carson</dc:creator>
				<category><![CDATA[meta]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[streaming]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.ioncannon.net/?p=564</guid>
		<description><![CDATA[After some more work I have enhanced the HTTP segmenter and uploading script from my iPhone streaming using AWS S3 and Cloudfront post. I added a number of features and tried to pull together some of the ideas from the comments. I&#039;ll go over some of the features here and there is a full list [...]]]></description>
			<content:encoded><![CDATA[<p>After some more work I have enhanced the HTTP segmenter and uploading script from my <a href="http://www.ioncannon.net/programming/475/iphone-windowed-http-live-streaming-using-amazon-s3-and-cloudfront-proof-of-concept/">iPhone streaming using AWS S3 and Cloudfront</a> post. I added a number of features and tried to pull together some of the ideas from the comments. I&#039;ll go over some of the features here and there is a full list of configuration options on the <a href="http://www.ioncannon.net/projects/http-live-video-stream-segmenter-and-distributor/">HTTP Live Video Streaming server</a> project page and the source is available at the <a href="http://github.com/carsonmcdonald/HTTP-Live-Video-Stream-Segmenter-and-Distributor/tree/master">github repo</a>.</p>
<p>So the major changes I have added are:</p>
<ul>
<li>Yaml based configuration file. See the project page for a complete list of options.</li>
<li>Ability to transfer segments via copy, ftp, scp and s3.</li>
<li>Added the ability to do variable bitrate streams.</li>
<li>Added re-streaming support.</li>
<li>Added logging to a file and better debug output.</li>
</ul>
<p>The variable bitrate streams where done by using pipes. I haven&#039;t done a large amount of testing but it seems to work fairly well. I am able to stream a live HD video source into 3 different bitrates on a fairly old PC. Here are a couple clips I created to show the progressive enhancement in action, you probably want to switch to the HD version of the video and watch it full screen to get the bet view:</p>
<p><center><br />
<object width="480" height="295"><param name="movie" value="http://www.youtube.com/v/teKAyN0qZVY&#038;rel=0&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;feature=player_profilepage&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/teKAyN0qZVY&#038;rel=0&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;feature=player_profilepage&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="480" height="295"></embed></object></center></p>
<p>The configuration file will allow for any number of encoding options or transfer options and they can be put together in a number of different ways. Here are a couple examples of both, see the example configuration files for more. </p>
<p>An encoder example:</p>
<div class="codesnip-container" >
<div class="text codesnip" style="font-family:monospace;">ep_128k:<br />
&nbsp; ffmpeg_command: &quot;ffmpeg -er 4 -y -i %s -f mpegts -acodec libmp3lame -ar 48000 -ab 64k -s 320&#215;240 -vcodec libx264 -b 128k -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -subq 5 -trellis 1 -refs 1 -coder 0 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 128k -maxrate 128k -bufsize 128k -rc_eq &#039;blurCplx^(1-qComp)&#039; -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 30 -aspect 320:240 -g 30 -async 2 &#8211; | %s %s %s %s %s&quot;<br />
&nbsp; bandwidth: 128000</div>
</div>
<p><br/></p>
<p>Transfer configuration example:</p>
<div class="codesnip-container" >
<div class="text codesnip" style="font-family:monospace;">ftp_dev:<br />
&nbsp; transfer_type: &#039;ftp&#039;<br />
&nbsp; remote_host: &#039;192.168.1.1&#039;<br />
&nbsp; user_name: &#039;user&#039;<br />
&nbsp; password: &#039;pass&#039;<br />
&nbsp; directory: &#039;html/streamingvideo&#039;</div>
</div>
<p>As a final note on changes, you are no longer able to use the segmenter without the script now really. If you want to do that you should use the original version of the <a href="http://svn.assembla.com/svn/legend/segmenter/">segmenter source</a>. </p>
<p>Please note that there is still some work to be done on the script to be complete. If I have time my next enhancement will be to add encryption and I will probably try to test builds on other distributions (maybe attempt to create segmenter binaries).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ioncannon.net/meta/564/iphone-windowed-http-live-streaming-server/feed/</wfw:commentRss>
		<slash:comments>63</slash:comments>
		</item>
		<item>
		<title>How to create iPhone wireframes with Inkscape</title>
		<link>http://www.ioncannon.net/meta/313/how-to-create-iphone-wireframes-with-inkscape/</link>
		<comments>http://www.ioncannon.net/meta/313/how-to-create-iphone-wireframes-with-inkscape/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 01:03:01 +0000</pubDate>
		<dc:creator>carson</dc:creator>
				<category><![CDATA[meta]]></category>
		<category><![CDATA[inkscape]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://www.ioncannon.net/?p=313</guid>
		<description><![CDATA[While developing ideas for iPhone applications I&#039;ve played around with just using Interface Builder to stub things out. This works reasonably well but I know how to use Interface Builder so that makes a difference. If you are designing an application and want to stick with graphical tools only you are in luck because Yahoo [...]]]></description>
			<content:encoded><![CDATA[<p>While developing ideas for iPhone applications I&#039;ve played around with just using Interface Builder to stub things out. This works reasonably well but I know how to use Interface Builder so that makes a difference. If you are designing an application and want to stick with graphical tools only you are in luck because Yahoo has produced a set of <a href="http://developer.yahoo.com/ypatterns/wireframes/">wireframing SVG stencils</a> for the iPhone that are very nice.</p>
<p><span id="more-313"></span></p>
<p>This is what the complete iPhone UI template set looks like:</p>
<p><a href="http://www.ioncannon.net/wp-content/uploads/2009/06/mobileiphoneall.png"><img src="http://www.ioncannon.net/wp-content/uploads/2009/06/mobileiphoneall-300x185.png" alt="Yahoo iPhone Template" title="Yahoo iPhone Template" width="300" height="185" class="alignnone size-medium wp-image-351" /></a></p>
<p>As you can see it has all of the standard UI elements of the iPhone.</p>
<p>Using the stencils is easy. Open the SVG file with Inkscape and then create a new empty project. Select the UI element you want and copy it into your project:</p>
<p><a href="http://www.ioncannon.net/wp-content/uploads/2009/06/step1screenshotexampl1.png"><img src="http://www.ioncannon.net/wp-content/uploads/2009/06/step1screenshotexampl1-300x176.png" alt="Example iPhone Screen Design" title="Example iPhone Screen Design" width="300" height="176" class="alignnone size-medium wp-image-355" /></a></p>
<p>Knowing some of the <a href="http://www.inkscape.org/doc/keys046.html">Inkscape shortcut keys</a> helps a lot in creating your wireframe. Being able to align and move elements in z-ordering is much easier if you know the correct shortcut keys to use.</p>
<p>Here are a few example images that I made using Inkscape for a demo application:</p>
<p><a href="http://www.ioncannon.net/wp-content/uploads/2009/06/screen3.png"><img src="http://www.ioncannon.net/wp-content/uploads/2009/06/screen3.png" alt="Example iPhone Screen with buttons" title="Example iPhone Screen with buttons" width="388" height="732" class="alignnone size-full wp-image-354" /></a></p>
<p><a href="http://www.ioncannon.net/wp-content/uploads/2009/06/screen2.png"><img src="http://www.ioncannon.net/wp-content/uploads/2009/06/screen2.png" alt="Example iPhone Screen with entry boxes" title="Example iPhone Screen with entry boxes" width="388" height="732" class="alignnone size-full wp-image-353" /></a></p>
<p><a href="http://www.ioncannon.net/wp-content/uploads/2009/06/screen1.png"><img src="http://www.ioncannon.net/wp-content/uploads/2009/06/screen1.png" alt="Example iPhone Screen with table" title="Example iPhone Screen with table" width="388" height="732" class="alignnone size-full wp-image-352" /></a></p>
<p>If you are new to wireframing it is worth reading the <a href="http://thinkvitamin.com/features/20-steps-to-better-wireframing/">20 steps to better wireframing</a> post by Think Vitamin. One of the 20 steps is not to worry about making your wireframes look exactly like the final product. If you need it to look perfect then using Interface Builder is probably going to work out better.</p>
<p>As a side note I wish Inkscape had a resource for stencils like <a href="http://www.omnigroup.com/applications/OmniGraffle/">OmniGraffle</a> does. There are any number of people who publish stencils on their blogs and there is even a site specifically for <a href="http://graffletopia.com/">OmniGraffle stencils</a>. I would add stencils to my list of <a href="http://www.ioncannon.net/utilities/123/10-tips-for-creating-good-looking-diagrams-using-inkscape/">tips for creating diagrams using Inkscape</a> if it existed. Right now it is seems like the best option is to look for SVG formatted stencils. The gstencil format doesn&#039;t seem too complicated so maybe someone will eventually find a way to convert the contents into SVG where they could then be used in Inkscape.</p>
<p>Update: If you have Adobe Fireworks or have money to spend on doing this you should check out this video on <a href="http://www.building43.com/videos/2009/06/23/mockup-iphone-app-adobe-fireworks/">building mockups for the iphone using Adobe Fireworks</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ioncannon.net/meta/313/how-to-create-iphone-wireframes-with-inkscape/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BlackBerry screen and icon sizes</title>
		<link>http://www.ioncannon.net/meta/321/blackberry-screen-and-icon-sizes/</link>
		<comments>http://www.ioncannon.net/meta/321/blackberry-screen-and-icon-sizes/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 13:13:24 +0000</pubDate>
		<dc:creator>carson</dc:creator>
				<category><![CDATA[meta]]></category>
		<category><![CDATA[BlackBerry]]></category>

		<guid isPermaLink="false">http://www.ioncannon.net/?p=321</guid>
		<description><![CDATA[For some reason the old link I had that contained display dimensions for BlackBerry devices is resulting in a 404 now. When you are doing BlackBerry development it is nice to be able to go to one page that just shows you the screen sizes instead of having to look at each device page so [...]]]></description>
			<content:encoded><![CDATA[<p>For some reason the old link I had that contained display dimensions for BlackBerry devices is resulting in a 404 now. When you are doing BlackBerry development it is nice to be able to go to one page that just shows you the screen sizes instead of having to look at each device page so I don&#039;t know why they removed this page. After looking around a little I couldn&#039;t find a consolidated list that has just screen sizes so I figured I would put one together that replicates the old link:</p>
<table border="1" cellpadding="5" style="border-width:1px; border-spacing:1px; border-color: #000">
<tr bgcolor="#eee">
<th align="center">BlackBerry device model</th>
<th align="center">Display screen size</th>
<th align="center">Icon image size</th>
</tr>
<tr>
<td valign="top"><a href="http://na.blackberry.com/eng/devices/blackberrypearl/blackberry_pearl_8100_series.jsp">BlackBerry Pearl 8100</a></td>
<td valign="top">240 x 260 pixels</td>
<td valign="top">60 x 55 pixels Icon theme<br/> 48 x 36 pixels Zen theme</td>
</tr>
<tr>
<td valign="top"><a href="http://na.blackberry.com/eng/devices/series-detail.jsp?navId=H0,C61">BlackBerry 7100 Series</a></td>
<td valign="top"> 240 x 260 pixels</td>
<td valign="top">60 x 55 pixels Icon theme<br/> 48 x 36 pixels Zen theme</td>
</tr>
<tr>
<td valign="top"><a href="http://na.blackberry.com/eng/devices/blackberrypearl/blackberry_pearl_8200_series.jsp">BlackBerry Pearl 8220</a></td>
<td valign="top">240 x 320 pixels</td>
<td valign="top">46 x 46 pixels</td>
</tr>
<tr>
<td valign="top"><a href="http://na.blackberry.com/eng/devices/blackberrycurve8300/">BlackBerry Curve 8300</a></td>
<td valign="top">320 x 240 pixels</td>
<td valign="top"> 53 x 48 pixels Icon theme<br/> 48 x 36 pixels Zen theme</td>
</tr>
<tr>
<tr>
<td valign="top"><a href="http://na.blackberry.com/eng/devices/blackberrycurve8900/">BlackBerry Curve 8900</a></td>
<td valign="top">480 x 360 pixels</td>
<td valign="top">Unknown</td>
</tr>
<td><a href="http://na.blackberry.com/eng/devices/series-detail.jsp?navId=H0,C201">BlackBerry 8800 Series</a></td>
<td valign="top"> 320 x 240 pixels</td>
<td valign="top"> 53 x 48 pixels Icon theme<br/> 48 x 36 pixels Zen theme</td>
</tr>
<tr>
<td valign="top"><a href="http://na.blackberry.com/eng/devices/series-detail.jsp?navId=H0,C63">BlackBerry 8700 Series</a></td>
<td valign="top">320 x 240 pixels</td>
<td valign="top">53 x 48 pixels Icon theme<br/> 48 x 36 pixels Zen theme</td>
</tr>
<tr>
<td valign="top"><a href="http://na.blackberry.com/eng/devices/blackberrybold/">BlackBerry Bold 9000</a></td>
<td valign="top">480 x 320 pixels</td>
<td valign="top">80 x 80 pixels</td>
</tr>
<tr>
<td valign="top"><a href="http://na.blackberry.com/eng/devices/blackberrystorm/">BlackBerry Storm 9500</a></td>
<td valign="top"> 360 x 480 pixels</td>
<td valign="top">76 x 76 pixels Home screen<br/> 24 x 24 pixels Shortcut bar</td>
</tr>
</table>
<p>This data comes from the <a href="http://na.blackberry.com/eng/devices/">BlackBerry devices</a> page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ioncannon.net/meta/321/blackberry-screen-and-icon-sizes/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Converting videos (flv,wmv,avi,etc) into a format that will work with the iPhone/iTunes</title>
		<link>http://www.ioncannon.net/meta/210/converting-videos-flvwmvavietc-into-a-format-that-will-work-with-the-iphoneitunes/</link>
		<comments>http://www.ioncannon.net/meta/210/converting-videos-flvwmvavietc-into-a-format-that-will-work-with-the-iphoneitunes/#comments</comments>
		<pubDate>Sun, 28 Dec 2008 02:37:20 +0000</pubDate>
		<dc:creator>carson</dc:creator>
				<category><![CDATA[meta]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[mencoder]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[touch]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.ioncannon.net/?p=210</guid>
		<description><![CDATA[I have had an iPhone for a while now and I keep running into instances where I want to have videos outside of youtube in some format that I can watch on the device. These include windows WMV formatted videos from PDC as well as FVL formatted videos on Flex. I finally broke down and [...]]]></description>
			<content:encoded><![CDATA[<p>I have had an iPhone for a while now and I keep running into instances where I want to have videos outside of youtube in some format that I can watch on the device. These include windows WMV formatted videos from PDC as well as FVL formatted videos on Flex. I finally broke down and found a working solution to convert pretty much any video into a iPhone/iTunes format using mencoder.</p>
<p><span id="more-210"></span></p>
<p> Here is the script I came up with to convert a video:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="co0">#!/bin/sh</span><br />
&nbsp;<br />
<span class="re2">BN</span>=<span class="sy0">`</span><span class="kw2">basename</span> $1 .flv<span class="sy0">`</span><br />
&nbsp;<br />
mencoder $1 <span class="re5">-ofps</span> 23.976 <span class="re5">-ovc</span> lavc <span class="re5">-oac</span> copy <span class="re5">-o</span> <span class="sy0">/</span>tmp<span class="sy0">/</span>test.<span class="re1">$BN</span>.avi<br />
&nbsp;<br />
mencoder <span class="sy0">/</span>tmp<span class="sy0">/</span>test.<span class="re1">$BN</span>.avi <span class="re5">-o</span> togo<span class="sy0">/</span><span class="re1">$BN</span>.mp4 <span class="re5">-vf</span> <span class="re2">scale</span>=480:-10,harddup <span class="re5">-lavfopts</span> <span class="re2">format</span>=mp4 <span class="re5">-faacopts</span> <span class="re2">mpeg</span>=4:<span class="re2">object</span>=2:raw:<span class="re2">br</span>=128 <span class="re5">-oac</span> faac <span class="re5">-ovc</span> x264 <span class="re5">-sws</span> 9 <span class="re5">-x264encopts</span> nocabac:<span class="re2">level_idc</span>=30:<span class="re2">bframes</span>=0:global_header:<span class="re2">threads</span>=auto:<span class="re2">subq</span>=5:<span class="re2">frameref</span>=6:<span class="re2">partitions</span>=all:<span class="re2">trellis</span>=1:chroma_me:<span class="re2">me</span>=umh:<span class="re2">bitrate</span>=500 <span class="re5">-of</span> lavf<br />
&nbsp;<br />
<span class="kw2">rm</span> <span class="sy0">/</span>tmp<span class="sy0">/</span>test.<span class="re1">$BN</span>.avi</div>
</div>
<p>One thing to notice is that I have the file format hard coded in the basename argument. I did this because I didn&#039;t need the script to be that generic and I just change it when I move from one format to another. For some reason I found that converting the video with the first statement works best. Without that I had a number of audio sync issues as well as some outright conversion failures .</p>
<p>The options for the first command are</p>
<ul>
<li>-ofps output frames per second</li>
<li>-ovc lavc output codec is lavc</li>
<li>-oac copy output audio is a copy of the input</li>
<li>-o the output file</li>
</ul>
<p>The options for the second command are</p>
<ul>
<li>-o the output file</li>
<li>-vf scale=480:-10,harddup video filter that scales to 480 width and rounds the height to the closest 10/16th width as well as forcing duplicate frames to be encoded in the output </li>
<li>-lavfopts format=mp4 set the video format options to mp4</li>
<li>-faacopts mpeg=4:object=2:raw:br=128 set the audio options to mp4</li>
<li>-oac faac set the audio output format to faac</li>
<li>-ovc x264 set the output to x264 encoding</li>
<li>-sws 9 set the scaler options to lanczos</li>
<li>-x264encopts nocabac:level_idc=30:bframes=0:global_header:threads=auto:subq=5:frameref=6:partitions=all:trellis=1:chroma_me:me=umh:bitrate=500 sets the 265 enocoding options</li>
<li>-of lavf set the output video format</li>
</ul>
<p>After converting the video all you need to to do is drag it onto the iTunes Library bar and it will then import it and make it available to sync to your iPhone, touch or iPod. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ioncannon.net/meta/210/converting-videos-flvwmvavietc-into-a-format-that-will-work-with-the-iphoneitunes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Search for Timezone Maps</title>
		<link>http://www.ioncannon.net/utilities/137/the-search-for-timezone-maps/</link>
		<comments>http://www.ioncannon.net/utilities/137/the-search-for-timezone-maps/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 03:25:46 +0000</pubDate>
		<dc:creator>carson</dc:creator>
				<category><![CDATA[gis]]></category>
		<category><![CDATA[meta]]></category>
		<category><![CDATA[utilities]]></category>

		<guid isPermaLink="false">http://www.ioncannon.net/?p=137</guid>
		<description><![CDATA[For a while I had been casually searching for a way to overlay US time zones over a map for a project I was working on. It was never important enough to have a solution that required paying for something so I was searching for some type of government data source. My first attempt was [...]]]></description>
			<content:encoded><![CDATA[<p>For a while I had been casually searching for a way to overlay US time zones over a map for a project I was working on. It was never important enough to have a solution that required paying for something so I was searching for some type of government data source. </p>
<p><span id="more-137"></span></p>
<p>My first attempt was to use <a href="http://aa.usno.navy.mil/graphics/TimeZoneMap0802.jpg">this large international timezone map</a>, <a href="http://en.wikipedia.org/wiki/Image:National-atlas-timezones-2006.gif">this wikipedia map</a> or <a href="http://en.wikipedia.org/wiki/List_of_U.S._states_by_time_zone">the list of US states by time zone</a> and then trace and outline over the states. This turned out to be a non-starter because the maps aren&#039;t detailed enough and the list of states doesn&#039;t give you enough information.</p>
<p>I figured I would end up looking for <a href="http://www.esri.com/news/arcuser/0401/topo.html">ESRI shape files</a> at some point and that is where I turned next. An initial google search got me to <a href="http://laughingmeme.org/2004/04/09/timezone-shape-files/">a post</a> that led to a <a href="http://fri.sfasu.edu/data/geographic/world/shape/">link to what should have been a set of shape files</a>. Of course the link was dead so I turned to archive.org and <a href="http://web.archive.org/web/20030705005855/http://fri.sfasu.edu/data/geographic/world/shape/">found that the archive was incomplete</a>.</p>
<p>I reverted back to looking for another source and found <a href="http://data.crgsc.org/geographic/world/shape/">a set of shapes that ended up being just a bunch of squares</a>. At this point I had gone over a lot of random links that didn&#039;t get me anything and I was about to give up for good when I finally found <a href="http://www-atlas.usgs.gov/atlasftp.html?openChapters=chpbound#chpref">the USGS atlas site&#039;s time zone data</a>. This was the jackpot, not only do they have time zone shapefiles but they have a large number of other shapefiles that could come in handy some day. This quest has made it apparent to me that the government doesn&#039;t do a great job of getting their data found.</p>
<p>One helpful tool in my shapefile search was <a href="http://www.esri.com/software/arcexplorer/index1.html">ESRI&#039;s free Arc Explorer</a>. It was a quick way to validate the shapefiles where or where not what I was looking for before landing on a set of files that would work.</p>
<p>Now that I had a valid set of time zone shapes I created a simple java application using <a href="http://www.osgeo.org/geotools">geotools</a> to read the files in and generate a resulting map graphic that I could overlay in the project. The shapefiles are easily converted to lat/lon polygons so using this data to overlay on something like a google map would be even easier.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ioncannon.net/utilities/137/the-search-for-timezone-maps/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lots of new releases this week</title>
		<link>http://www.ioncannon.net/meta/127/lots-of-new-releases-this-week/</link>
		<comments>http://www.ioncannon.net/meta/127/lots-of-new-releases-this-week/#comments</comments>
		<pubDate>Thu, 31 May 2007 15:04:00 +0000</pubDate>
		<dc:creator>carson</dc:creator>
				<category><![CDATA[meta]]></category>

		<guid isPermaLink="false">http://www.ioncannon.net/uncategorized/127/lots-of-new-releases-this-week/</guid>
		<description><![CDATA[It seems like this week has been release week for &#034;web 2.0&#034; stuff. Facebook F8 went live last week. All kinds of apps have followed. Google released Maplets, a mashup editor, and Google Gears Mapquest released an updated mapquest API that uses actionscript. The one thing I note in all of these new releases is [...]]]></description>
			<content:encoded><![CDATA[<p>It seems like this week has been release week for &#034;web 2.0&#034; stuff. <a href="http://developers.facebook.com/">Facebook F8</a> went <a href="http://mashable.com/2007/05/24/facebook-f8-live/">live last week</a>. <a href="http://www.techcrunch.com/2007/05/27/picasa-style-online-photo-editing-with-f8-picnik/">All</a> <a href="http://mashable.com/2007/05/30/iqzone-facebook/">kinds</a> of apps have followed.</p>
<p>Google released <a href="http://googlesystem.blogspot.com/2007/05/bring-mashups-to-google-maps.html">Maplets</a>, a <a href="http://www.googlemashups.com/">mashup editor</a>, and <a href="http://googlesystem.blogspot.com/2007/05/google-gears-offline-functionality-for.html">Google Gears</a></p>
<p>Mapquest released an <a href="http://radar.oreilly.com/archives/2007/05/where_20_mapque.html">updated</a> <a href="http://company.mapquest.com/mqbs/4a.html">mapquest API that uses actionscript</a>.</p>
<p>The one thing I note in all of these new releases is the lack of SOAP or enterprise related. Maybe it is just the current wave but most people seem to be embracing the less complicated API infrastructure.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ioncannon.net/meta/127/lots-of-new-releases-this-week/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SOAP vs REST</title>
		<link>http://www.ioncannon.net/meta/117/soap-vs-rest/</link>
		<comments>http://www.ioncannon.net/meta/117/soap-vs-rest/#comments</comments>
		<pubDate>Thu, 22 Feb 2007 02:37:36 +0000</pubDate>
		<dc:creator>carson</dc:creator>
				<category><![CDATA[meta]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://www.ioncannon.net/web-services/117/soap-vs-rest/</guid>
		<description><![CDATA[Recently it seems like the SOAP vs REST debate is heating up. Most of the debate seems to be leaning toward convincing people to not use SOAP based on its increasing complexity. Different people have different views on what REST is but in general if you look at the SOAP specifications or SOAP Standards and [...]]]></description>
			<content:encoded><![CDATA[<p>Recently it seems like the SOAP vs REST debate is heating up. Most of the debate seems to be leaning toward convincing people to not use SOAP based on its increasing complexity. Different people have different views on what REST is but in general if you look at the <a href="http://www.w3.org/TR/soap/">SOAP specifications</a> or <a href="http://www-128.ibm.com/developerworks/webservices/standards/">SOAP Standards and Web services</a> and then look at the <a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm">REST specification</a>, <a href="http://doc.opengarden.org/Articles/REST_for_the_Rest_of_Us">REST for the Rest of Us</a>, or <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">REST</a> you see that in general there is a lot more complexity to SOAP and that is just SOAP itself and not any of its extensions. Here are some good articles I&#039;ve found that should give you insight into the debate: </p>
<ul>
<li>
  <a href="http://www.trachtenberg.com/blog/2006/11/06/rest-vs-httppox-vs-soap/">REST vs HTTP+POX vs SOAP</a> &#8211; A simple explanation of REST and SOAP.
</li>
<li>
  <a href="http://tomayko.com/articles/2004/12/12/rest-to-my-wife">How I Explained REST to My Wife</a> &#8211; Another simple explication of what REST is.
</li>
<li>
  <a href="http://wanderingbarque.com/nonintersecting/2006/11/15/the-s-stands-for-simple/">The S Stands for Simple</a> &#8211; A conversation that expresses the issues with using SOAP.
</li>
<li>
  <a href="http://www.crummy.com/writing/REST-Web-Services/">REST for Web Services</a> &#8211; The outline for a new REST for web services book.
</li>
<li>
  <a href="http://duncan-cragg.org/blog/post/getting-data-rest-dialogues/">The REST Dialogues</a> &#8211; A set of fictional dialogs on REST vs SOAP.
</li>
<li>
  <a href="http://www.addsimplicity.com/adding_simplicity_an_engi/2006/11/the_rest_dialog.html">The REST Dialogues, A Real eBay Architect</a> &#8211; A response to &#034;The REST Dialogues&#034; by a real eBay architect.
</li>
<li>
  <a href="http://www.oreillynet.com/pub/wlg/3005">85% of Amazon calls are to REST version of their API</a>
</li>
<li>
  <a href="http://radar.oreilly.com/archives/2006/12/google_depreciates_SOAP_API.html">Google turns off SOAP API</a>
</li>
<li>
  <a href="http://www.somebits.com/weblog/tech/bad/whySoapSucks.html?seemore=y">Why SOAP sucks</a>
</li>
</ul>
<p>After looking over the above references you may be interested in looking at <a href="http://www.programmableweb.com/apilist">Programmable Web&#039;s API list</a> and see what others are using. The majority of the public services listed offer REST interfaces with some offering both REST and SOAP and very few offer just SOAP. Even though REST seems to be in favor now I believe there are still plenty of areas where SOAP makes sense when you have resources to devote to feeding and caring for it.</p>
<p>Tags: <a href="http://technorati.com/tag/SOAP" rel="tag">SOAP</a>, <a href="http://technorati.com/tag/REST" rel="tag"> REST</a>, <a href="http://technorati.com/tag/web+services" rel="tag"> web services</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ioncannon.net/meta/117/soap-vs-rest/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Even Amazon Can Hurt</title>
		<link>http://www.ioncannon.net/meta/106/even-amazon-can-hurt/</link>
		<comments>http://www.ioncannon.net/meta/106/even-amazon-can-hurt/#comments</comments>
		<pubDate>Thu, 23 Nov 2006 20:13:31 +0000</pubDate>
		<dc:creator>carson</dc:creator>
				<category><![CDATA[meta]]></category>

		<guid isPermaLink="false">http://www.ioncannon.net/uncategorized/106/even-amazon-can-hurt/</guid>
		<description><![CDATA[It just goes to show that even the most redundant sites in the world have their limits. Amazon is mostly unusable ATM because they tried to sell XBox360s at $100.]]></description>
			<content:encoded><![CDATA[<p>It just goes to show that even the most redundant sites in the world have their limits. <a href="http://www.amazon.com">Amazon</a> is mostly unusable ATM because they tried to sell XBox360s at $100.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ioncannon.net/meta/106/even-amazon-can-hurt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

