<?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>gaskell.org &#187; programming</title>
	<atom:link href="http://gaskell.org/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://gaskell.org</link>
	<description>picking up where teh rest leave off</description>
	<lastBuildDate>Sun, 15 Nov 2009 07:55:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Bulletproof Ajax with ASP.NET MVC</title>
		<link>http://gaskell.org/bulletproof-ajax-with-aspnet-mvc/</link>
		<comments>http://gaskell.org/bulletproof-ajax-with-aspnet-mvc/#comments</comments>
		<pubDate>Sun, 03 Aug 2008 03:26:26 +0000</pubDate>
		<dc:creator>andy gaskell</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[digg]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://gaskell.org/?p=59</guid>
		<description><![CDATA[After reading the excellent Bulletproof Ajax by Jeremy Keith, I thought porting the Bulletproof Books sample application to ASP.NET MVC would be a great first attempt at building an ASP.NET MVC application. One of the main points of Bulletproof Ajax is that Ajax should be used to enhance usability and not to make Ajax a [...]]]></description>
			<content:encoded><![CDATA[<p>After reading the excellent <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2FBulletproof-Ajax-Jeremy-Keith%2Fdp%2F0321472667&#038;tag=9182-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325">Bulletproof Ajax</a><img src="http://www.assoc-amazon.com/e/ir?t=9182-20&amp;l=ur2&amp;o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> by Jeremy Keith, I thought porting the Bulletproof Books sample application to ASP.NET MVC would be a great first attempt at building an ASP.NET MVC application. One of the main points of Bulletproof Ajax is that Ajax should be used to enhance usability and not to make Ajax a requirement to access your content. <a href="http://dotnet.gaskell.org">My version</a> of the <a href="http://bulletproofajax.com/shop/">Bulletproof Books Shop</a> also makes Javascript and XMLHttpRequest support optional.</p>
<div style="margin-bottom:10px;margin-top:10px">
Keeping the site accessible to most web browsers took some extra work and consideration when building the Controllers. I decided that any HomeController actions would render html for the entire page. </div>
<p><!--<br />
{\rtf1\ansi\ansicpg\lang1024\noproof65001\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;??\red0\green0\blue0;\red255\green255\blue255;\red0\green0\blue255;\red43\green145\blue175;\red163\green21\blue21;}??\fs20         \cf3 public\cf0  \cf4 ActionResult\cf0  Index()\par ??        \{\par ??            ViewData.Model = \cf4 Product\cf0 .Products;\par ??            \cf3 return\cf0  View(\cf5 "Index"\cf0 );\par ??        \}\par ??\par ??        \cf3 public\cf0  \cf4 ActionResult\cf0  AddProductToCart(\cf3 string\cf0  productID, \cf3 int\cf0  quantity)\par ??        \{\par ??            \cf4 CartController\cf0  cartController = \cf3 new\cf0  \cf4 CartController\cf0 ();\par ??            cartController.AddProduct(productID, quantity);\par ??            \cf3 return\cf0  Index();\par ??        \}\par ??\par ??        \cf3 public\cf0  \cf4 ActionResult\cf0  RateProduct(\cf3 string\cf0  productID, \cf3 string\cf0  rating)\par ??        \{\par ??            \cf4 RatingController\cf0  ratingController = \cf3 new\cf0  \cf4 RatingController\cf0 ();\par ??            ratingController.RateProduct(productID, rating);\par ??            \cf3 return\cf0  Index();\par ??        \}}<br />
--></p>
<div style="font-family: Courier New; font-size: 10pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;13</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: #2b91af;">ActionResult</span> Index()</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;14</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;15</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ViewData.Model = <span style="color: #2b91af;">Product</span>.Products;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;16</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> View(<span style="color: #a31515;">&#8220;Index&#8221;</span>);</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;17</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;18</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;19</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: #2b91af;">ActionResult</span> AddProductToCart(<span style="color: blue;">string</span> productID, <span style="color: blue;">int</span> quantity)</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;20</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;21</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">CartController</span> cartController = <span style="color: blue;">new</span> <span style="color: #2b91af;">CartController</span>();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;22</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cartController.AddProduct(productID, quantity);</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;23</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> Index();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;24</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;25</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;26</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: #2b91af;">ActionResult</span> RateProduct(<span style="color: blue;">string</span> productID, <span style="color: blue;">string</span> rating)</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;27</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;28</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">RatingController</span> ratingController = <span style="color: blue;">new</span> <span style="color: #2b91af;">RatingController</span>();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;29</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ratingController.RateProduct(productID, rating);</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;30</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> Index();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;31</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
</div>
<div style="margin-bottom:10px;margin-top:10px;">Controllers that refresh partial chunks of html will know how to respond to actions (add product to cart, rate a product) and render views mapped to MVC user controls. The client will make http requests to different urls based on javascript support in the browser. For example to add a product to a cart with javascript enabled, the javascript will make a post to /Cart.mvc/AddProduct and the server will response with a chunk of html. To add a product with javascript disabled the client will post to /Home.mvc/AddProductToCart and the server will respond with an entire page. The HomeController ends up forwarding the call to the appropriate controller so we&#8217;re able to avoid duplicating logic.</div>
<p><!--<br />
{\rtf1\ansi\ansicpg\lang1024\noproof65001\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;??\red0\green0\blue0;\red255\green255\blue255;\red0\green0\blue255;\red43\green145\blue175;\red163\green21\blue21;}??\fs20         \cf3 public\cf0  \cf4 ActionResult\cf0  DisplayCart()\par ??        \{\par ??            \cf4 Cart\cf0  cart = GetCart();\par ??            \cf3 return\cf0  View(\cf5 "Cart"\cf0 , cart);\par ??        \}\par ??\par ??        \cf3 public\cf0  \cf4 ActionResult\cf0  AddProduct(\cf3 string\cf0  productID, \cf3 int\cf0  quantity)\par ??        \{\par ??            \cf4 Cart\cf0  cart = GetCart();\par ??            \cf4 Product\cf0  product = \cf4 Product\cf0 .Products.Find(s =&gt; s.ID == productID);\par ??            cart.AddProduct(product, quantity);\par ??            SetCart(cart);\par ??            \cf3 return\cf0  View(\cf5 "Cart"\cf0 , cart);\par ??        \}}<br />
--></p>
<div style="font-family: Courier New; font-size: 10pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;28</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: #2b91af;">ActionResult</span> DisplayCart()</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;29</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;30</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Cart</span> cart = GetCart();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;31</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> View(<span style="color: #a31515;">&#8220;Cart&#8221;</span>, cart);</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;32</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;33</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;34</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: #2b91af;">ActionResult</span> AddProduct(<span style="color: blue;">string</span> productID, <span style="color: blue;">int</span> quantity)</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;35</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;36</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Cart</span> cart = GetCart();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;37</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Product</span> product = <span style="color: #2b91af;">Product</span>.Products.Find(s =&gt; s.ID == productID);</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;38</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cart.AddProduct(product, quantity);</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;39</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SetCart(cart);</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;40</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> View(<span style="color: #a31515;">&#8220;Cart&#8221;</span>, cart);</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;41</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
</div>
<div style="margin-bottom:10px;margin-top:10px">One thing I&#8217;m not sure about is state management in ASP.NET MVC, so I&#8217;m currently storing the cart and ratings in session.</div>
<p><!--<br />
{\rtf1\ansi\ansicpg\lang1024\noproof65001\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;??\red0\green0\blue0;\red255\green255\blue255;\red0\green0\blue255;\red43\green145\blue175;\red163\green21\blue21;}??\fs20         \cf3 private\cf0  \cf4 Rating\cf0  GetRatings()\par ??        \{\par ??            \cf4 Rating\cf0  rating = System.Web.\cf4 HttpContext\cf0 .Current.Session[\cf5 "Rating"\cf0 ] \cf3 as\cf0  \cf4 Rating\cf0 ;\par ??            \cf3 if\cf0  (rating == \cf3 null\cf0 )\par ??            \{\par ??                rating = \cf3 new\cf0  \cf4 Rating\cf0 ();\par ??            \}\par ??            \cf3 return\cf0  rating;\par ??        \}\par ??\par ??        \cf3 private\cf0  \cf3 void\cf0  SetRating(\cf4 Rating\cf0  rating)\par ??        \{\par ??            System.Web.\cf4 HttpContext\cf0 .Current.Session[\cf5 "Rating"\cf0 ] = rating;\par ??        \}}<br />
--></p>
<div style="font-family: Courier New; font-size: 10pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;22</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: #2b91af;">Rating</span> GetRatings()</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;23</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;24</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Rating</span> rating = System.Web.<span style="color: #2b91af;">HttpContext</span>.Current.Session[<span style="color: #a31515;">"Rating"</span>] <span style="color: blue;">as</span> <span style="color: #2b91af;">Rating</span>;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;25</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (rating == <span style="color: blue;">null</span>)</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;26</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;27</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rating = <span style="color: blue;">new</span> <span style="color: #2b91af;">Rating</span>();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;28</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;29</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> rating;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;30</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;31</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;32</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: blue;">void</span> SetRating(<span style="color: #2b91af;">Rating</span> rating)</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;33</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;34</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.Web.<span style="color: #2b91af;">HttpContext</span>.Current.Session[<span style="color: #a31515;">"Rating"</span>] = rating;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;35</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
</div>
<div style="margin-bottom:10px;margin-top:10px">
You can download the source <a href="http://gaskell.org/upload/BulletproofShop.zip">here</a>.</div>
]]></content:encoded>
			<wfw:commentRss>http://gaskell.org/bulletproof-ajax-with-aspnet-mvc/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Getting access to MSDN downloads with the Empower ISV program</title>
		<link>http://gaskell.org/getting-access-to-msdn-downloads-with-the-empower-isv-program/</link>
		<comments>http://gaskell.org/getting-access-to-msdn-downloads-with-the-empower-isv-program/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 06:50:04 +0000</pubDate>
		<dc:creator>andy gaskell</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[Empower]]></category>
		<category><![CDATA[ISV]]></category>
		<category><![CDATA[MSDN]]></category>

		<guid isPermaLink="false">http://gaskell.org/?p=58</guid>
		<description><![CDATA[Ok, so like 99% of my blog entries are about things not working quite the way I think they should and here&#8217;s another example. When linking your Passport account to your MSDN Subscription you&#8217;re asked to provide your Benefit Access Number. The number they&#8217;re looking for is your Technical ID available on Microsoft Parter Program [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, so like 99% of my blog entries are about things not working quite the way I think they should and here&#8217;s another example. When linking your Passport account to your MSDN Subscription you&#8217;re asked to provide your Benefit Access Number. The number they&#8217;re looking for is your <em>Technical ID</em> available on <a target="_blank" href="https://partners.microsoft.com/partnerprogram/PartnerMembershipCenter.aspx">Microsoft Parter Program</a> site. <strong>Under Requirements &#038; Assets</strong> click <strong>Assign Contact Roles</strong>.</p>
<p>This method didn&#8217;t work for me on the day I received my MSDN shipment &#8211; I had to wait a couple days for it to work.</p>
]]></content:encoded>
			<wfw:commentRss>http://gaskell.org/getting-access-to-msdn-downloads-with-the-empower-isv-program/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing pymedia on Ubuntu</title>
		<link>http://gaskell.org/installing-pymedia-on-ubuntu/</link>
		<comments>http://gaskell.org/installing-pymedia-on-ubuntu/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 03:51:37 +0000</pubDate>
		<dc:creator>andy gaskell</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[pymedia]]></category>

		<guid isPermaLink="false">http://gaskell.org/?p=57</guid>
		<description><![CDATA[I&#8217;ve been trying to install pymedia on a clean install of Ubuntu Hardy Heron and I was wasn&#8217;t able to get it to build using the official docs. Fortunately I found a couple of great blog posts. I ended up having to make a couple of changes:
To install the dependencies I used:

sudo apt-get install python-dev [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been trying to install pymedia on a clean install of Ubuntu Hardy Heron and I was wasn&#8217;t able to get it to build using the official docs. Fortunately I found a <a target="_blank" href="http://pythonide.blogspot.com/2007/10/how-to-install-pymedia-on-ubuntu-gutsy.html">couple</a> of <a target="_blank" href="http://jhcore.com/2008/06/18/pymedia-on-ubuntu-hardy-heron/">great</a> blog posts. I ended up having to make a couple of changes:</p>
<p>To install the dependencies I used:</p>
<pre class="code">
<code>sudo apt-get install python-dev libogg-dev libvorbis-dev liblame-dev <strong>libfaad-dev</strong> libasound2-dev python-pygame</code>
</pre>
<p>I had to go to /usr/bin and run this as <a target="_blank" href="http://jhcore.com/2008/06/18/pymedia-on-ubuntu-hardy-heron/#comments">Michael</a> suggests:</p>
<pre class="code">
<code>ln -s g++-3.4 g++</code>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://gaskell.org/installing-pymedia-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.035 seconds -->
