<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>AidenWeb</title>
    <link>http://www.aidenweb.co.uk/</link>
    <description />
    <language>en-us</language>
    <copyright>Aiden Montgomery</copyright>
    <lastBuildDate>Tue, 18 Nov 2008 14:08:34 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.1.8102.813</generator>
    <managingEditor>blog@aidenweb.co.uk</managingEditor>
    <webMaster>blog@aidenweb.co.uk</webMaster>
    <item>
      <trackback:ping>http://www.aidenweb.co.uk/Trackback.aspx?guid=a578df69-78e9-4e28-9a14-f1aa1222a9fd</trackback:ping>
      <pingback:server>http://www.aidenweb.co.uk/pingback.aspx</pingback:server>
      <pingback:target>http://www.aidenweb.co.uk/PermaLink,guid,a578df69-78e9-4e28-9a14-f1aa1222a9fd.aspx</pingback:target>
      <dc:creator>Aiden Montgomery</dc:creator>
      <wfw:comment>http://www.aidenweb.co.uk/CommentView,guid,a578df69-78e9-4e28-9a14-f1aa1222a9fd.aspx</wfw:comment>
      <wfw:commentRss>http://www.aidenweb.co.uk/SyndicationService.asmx/GetEntryCommentsRss?guid=a578df69-78e9-4e28-9a14-f1aa1222a9fd</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <title>Adding GD to PHP on OS X 10.5.5 Leopard (Desktop)</title>
      <guid isPermaLink="false">http://www.aidenweb.co.uk/PermaLink,guid,a578df69-78e9-4e28-9a14-f1aa1222a9fd.aspx</guid>
      <link>http://www.aidenweb.co.uk/2008/11/18/AddingGDToPHPOnOSX1055LeopardDesktop.aspx</link>
      <pubDate>Tue, 18 Nov 2008 14:08:34 GMT</pubDate>
      <description>&lt;h2&gt;Introduction
&lt;/h2&gt;
&lt;p&gt;
I am trying to help out on a cakePHP project for a friend. One of the things that
has been added recently was a phpCaptcha component. This component uses the GD module
to create images using text. Of course everything works fine on the test website,
but not on my machine.&lt;br /&gt;
I am working on a MacBook Pro, Intel Core 2 Duo running Mac OS X Version 10.5.5.
&lt;/p&gt;
&lt;p&gt;
This is mainly for my own memory, as it took me a few hours to get this working, when
it should have only taken a few minutes.
&lt;/p&gt;
&lt;h2&gt;Disclaimer
&lt;/h2&gt;
&lt;p&gt;
If anyone actually finds this page and follows the instructions on it, you do so at
you're own risk. Backup your system before you start. Please follow the information
provided by topicdesk.com. The information here worked on my system, on 18th November
2008, it may or may not work for you. If something goes wrong, I will not be able
to fix it for you. I will accept no responsibility for any use of this information.
&lt;/p&gt;
&lt;h2&gt;Background Research
&lt;/h2&gt;
&lt;p&gt;
There are a number of tutorials out there that already deal with this issue, the ones
that I found were either slightly out of date, or missed something. So rather than
have to go through the discovery process again I am leaving myself a note here.&lt;br /&gt;
&lt;br /&gt;
Let me stress that point, this is a note for &lt;b&gt;myself&lt;/b&gt;. Other people who know
far more about OS X/Apache/PHP than me have written excellent articles, which have
helped me get to this point.
&lt;/p&gt;
&lt;p&gt;
First of all here are some links to people who have already written about the process.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://osx.topicdesk.com/content/view/135/62/" title="" target=""&gt;topicdesk.com&lt;/a&gt; -
A pdf that contains the instructions for adding the GD Extensino to PHP5 on OS X Server
10.5.x&lt;a href="http://www.kenior.com/macintosh/adding-gd-library-for-mac-os-x-leopard"&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.kenior.com/macintosh/adding-gd-library-for-mac-os-x-leopard"&gt;Kenior
Design&lt;/a&gt; - Good instructions with a decent level of detail. Interesting conversations
in the comments.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://90kts.com/blog/2008/installing-gd-libraries-for-leopard-apache-php-525/"&gt;90kts.com&lt;/a&gt; -
A shorthand version of the topicdesk pdf. The comments to this post helped me get
to my solution.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="clear: both"&gt;
The instructions found in the &lt;a href="http://osx.topicdesk.com/content/view/135/62/"&gt;PDF&lt;/a&gt; from &lt;a href="http://topicdesk.com"&gt;topicdesk.com&lt;/a&gt; got
me as far as installing GD and editing my php.ini file, which meant that GD was listed
in phpinfo(). (Instructions on how to use phpinfo are in the pdf from topicdesk.com)
&lt;/p&gt;
&lt;p&gt;
At this point I thought that I was home and dry, however this wasn't the case. When
trying to access a captcha image I was still not seeing anything. Checking my apache
error log (&lt;i&gt;tail /var/log/apache2/error_log&lt;/i&gt;), I discovered this error message.
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
The process has forked and you cannot use this CoreFoundation functionality safely.
You MUST exec().&lt;br /&gt;
Break on __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__()
to debug
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Which lead me to these pages that describe what is going on.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://developer.apple.com/releasenotes/CoreFoundation/CoreFoundation.html"&gt;Apple
document&lt;/a&gt; on CoreFoundation and Fork()&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://discussions.apple.com/message.jspa?messageID=5705589"&gt;Apple Support
DIscussion&lt;/a&gt; - Final reply in this thread suggests how to solve the problem.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://90kts.com/blog/2008/installing-gd-libraries-for-leopard-apache-php-525/"&gt;90kts.com&lt;/a&gt; -
Instructions in the comments on how to compile things correctly.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="clear: both"&gt;
With all these sources of information at hand I went ahead and tried to follow the
steps outlined, and failed. The mistakes were simple ones, but for someone who is
not used to working from the OS X command line, I am sure they are not uncommon.&lt;br /&gt;
&lt;br /&gt;
These are the mistakes that I made: -
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
When building the various downloads, ensure that you are building for the correct
architecture, or build for multiple platforms. My MacBook Pro has an Intel Core 2
Duo, which is a &lt;b&gt;64 bit CPU&lt;/b&gt; not a 32 bit.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
Before downloading any of the source code that is listed in these posts, ensure that
you are downloading the version appropriate to your installation.&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;
I am using OS X 10.5.5, most of the references have links to 10.5.4 or earlier.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
My PHP installation is 5.2.6, again the reference material talks about 5.2.5 or earlier.&lt;br /&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Successful Installation
&lt;/h2&gt;
&lt;p&gt;
So these are the command lines instructions that I used to successfully install GD
into PHP 5.2.6 on Mac OS X Leopard 10.5.5 (Most of this is identical to the &lt;a href="http://osx.topicdesk.com/content/view/135/62/"&gt;PDF&lt;/a&gt; from &lt;a href="http://topicdesk.com"&gt;topicdesk.com&lt;/a&gt;,
with changes to the download locations). I am including these steps here merely for
completeness. Please refer to their PDF for more information: -
&lt;/p&gt;
&lt;p&gt;
Installing libjpeg was exactly how the &lt;a href="http://topicdesk.com"&gt;topicdesk&lt;/a&gt;&lt;a href="http://osx.topicdesk.com/content/view/135/62/"&gt;pdf&lt;/a&gt; explained.
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
mkdir -p /SourceCache&lt;br /&gt;
cd /SourceCache
&lt;/p&gt;
&lt;/blockquote&gt; &lt;blockquote&gt;
&lt;p&gt;
curl -O http://www.ijg.org/files/jpegsrc.v6b.tar.gz&lt;br /&gt;
tar xzpf jpegsrc.v6b.tar.gz
&lt;/p&gt;
&lt;/blockquote&gt; &lt;blockquote&gt;
&lt;p&gt;
cd /SourceCache/jpeg-6b&lt;br /&gt;
cp /usr/share/libtool/config.sub .&lt;br /&gt;
cp /usr/share/libtool/config.guess .
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
(This is what I used as it I am installing for my 64 bit CPU)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64
-g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64
-g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe"
LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure
--enable-shared
&lt;/p&gt;
&lt;/blockquote&gt; &lt;blockquote&gt;
&lt;p&gt;
make&lt;br /&gt;
sudo mkdir -p /usr/local/include&lt;br /&gt;
sudo mkdir -p /usr/local/bin&lt;br /&gt;
sudo mkdir -p /usr/local/lib&lt;br /&gt;
sudo mkdir -p /usr/local/man/man1&lt;br /&gt;
sudo make install
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
(Deviation from the &lt;a href="http://topicdesk.com"&gt;topicdesk.com&lt;/a&gt;&lt;a href="http://osx.topicdesk.com/content/view/135/62/"&gt;PDF&lt;/a&gt;)&lt;br /&gt;
Now we need to get a newer version of &lt;a href="http://freetype.sourceforge.net/"&gt;FreeType&lt;/a&gt; so
that we don't see that horrible error. I chose to use a version from this location &lt;a href="http://download.savannah.gnu.org/releases/freetype/"&gt;http://download.savannah.gnu.org/releases/freetype/&lt;/a&gt; specifically
the 2.3.7 version.
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
cd /SourceCache&lt;br /&gt;
curl -O http://download.savannah.gnu.org/releases/freetype/freetype-2.3.7.tar.gz&lt;br /&gt;
tar xvfp freetype-2.3.7.tar.gz&lt;br /&gt;
cd freetype-2.3.7
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
This is the important line as it re-compiles &lt;a href="http://freetype.sourceforge.net/" title="" target=""&gt;FreeType&lt;/a&gt; with
these options –with-fsspec=no –with-fsref=no –with-quickdraw-toolbox=no –with-quickdraw-carbon=no&lt;br /&gt;
This prevents &lt;a href="http://freetype.sourceforge.net/"&gt;FreeType&lt;/a&gt; from causing
the Fork() error.
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS=”-arch ppc -arch ppc64 -arch i386 -arch x86_64
-g -Os -pipe -no-cpp-precomp” CCFLAGS=”-arch ppc -arch ppc64 -arch i386 -arch x86_64
-g -Os -pipe” CXXFLAGS=”-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe”
LDFLAGS=”-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load” ./configure
–with-fsspec=no –with-fsref=no –with-quickdraw-toolbox=no –with-quickdraw-carbon=no&lt;br /&gt;
&lt;br /&gt;
make&lt;br /&gt;
sudo make install
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Then we get back to the topicdesk PDF. Again my versions of PHP and OS X are different
from the ones that they are referring to, so I went looking here &lt;a href="http://www.opensource.apple.com/darwinsource/10.5.5/"&gt;http://www.opensource.apple.com/darwinsource/10.5.5/&lt;/a&gt; to
find the right code to download, and found &lt;a href="http://www.opensource.apple.com/darwinsource/10.5.5/apache_mod_php-44.1/"&gt;http://www.opensource.apple.com/darwinsource/10.5.5/apache_mod_php-44.1/&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
cd /sourcecache&lt;br /&gt;
curl -O http://www.opensource.apple.com/darwinsource/10.5.5/apache_mod_php-44.1/php-5.2.6.tar.bz2&lt;br /&gt;
tar xjf php-5.2.6.tar.bz2&lt;br /&gt;
cd php-5.2.6/ext/gd&lt;br /&gt;
&lt;br /&gt;
sudo phpize
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
This next line introduces another change, in that I am now linking to the newly compiled
FreeType library, not the pre-installed version. (--with-freetype-dir=/usr/local/lib)
&lt;/p&gt;&lt;blockquote"&gt;
&lt;p&gt;
MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64
-g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64
-g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe"
LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure
--with-zlib-dir=/usr --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/X11R6 &lt;b&gt;--with-freetype-dir=/usr/local/lib&lt;/b&gt; --with-xpm-dir=/usr/X11R6&lt;br /&gt;
&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&lt;br /&gt;
sudo apachectl graceful
&lt;/p&gt;
&gt; 
&lt;p&gt;
Finished! Wasn't so bad after all. Remember the configure options that I have used
here are because I am compiling on a 64 bit CPU. I imagine that I could change some
of those compilation options to simply create the 64 bit option, but as I was following
other tutorials to get this done, I didn't want to stray off the path even further
than I had to.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=a578df69-78e9-4e28-9a14-f1aa1222a9fd" /&gt;</description>
      <comments>http://www.aidenweb.co.uk/CommentView,guid,a578df69-78e9-4e28-9a14-f1aa1222a9fd.aspx</comments>
      <category>development</category>
      <category>OSX</category>
      <category>php</category>
      <category>apache</category>
    </item>
    <item>
      <trackback:ping>http://www.aidenweb.co.uk/Trackback.aspx?guid=65099512-a10e-4ba8-b1fc-6ca27647f3ae</trackback:ping>
      <pingback:server>http://www.aidenweb.co.uk/pingback.aspx</pingback:server>
      <pingback:target>http://www.aidenweb.co.uk/PermaLink,guid,65099512-a10e-4ba8-b1fc-6ca27647f3ae.aspx</pingback:target>
      <dc:creator>Aiden Montgomery</dc:creator>
      <wfw:comment>http://www.aidenweb.co.uk/CommentView,guid,65099512-a10e-4ba8-b1fc-6ca27647f3ae.aspx</wfw:comment>
      <wfw:commentRss>http://www.aidenweb.co.uk/SyndicationService.asmx/GetEntryCommentsRss?guid=65099512-a10e-4ba8-b1fc-6ca27647f3ae</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p style="clear: both; ">
I was chatting to a friend yesterday and he was interested in the podcasts that I
listen to. This isn't the first time that I have introduced someone to programming
podcasts, so I figured I would write up the ones that I listen to and what I think
about them. I'll start with a list of the shows and links to their websites. Then
I will go through each one in a bit more detail where I can.<br /><br />
I started off listening to the PWOP podcasts by Carl Franklin and Richard Campbell<br /><br /></p>
        <ul>
          <li>
            <a href="http://www.dotnetrocks.com/" title="DotNetRocks" target="_blank">DotNetRocks</a>
          </li>
          <li>
            <a href="http://www.hanselminutes.com/" title="Hanselminutes" target="_blank">Hanselminutes</a>
          </li>
          <li>
            <a href="http://www.runasradio.com/" title="Run As Radio" target="_blank">RunAsRadio</a>
          </li>
        </ul>
        <br />
Recently I have added<br /><br /><ul><li><a href="http://deepfriedbytes.com/" title="Deep Fried Bytes" target="_blank">Deep
Fried Bytes</a></li><li><a href="http://altnetpodcast.com/" title="Alt.Net Podcast" target="_blank">Alt.NET
Podcast</a></li><li><a href="http://herdingcode.com/" title="Herding Code" target="_blank">Herding Code</a></li><li><a href="http://www.se-radio.net/" title="Software Engineering Radio" target="_blank">Software
Engineering Radio</a></li></ul><br />
Other shows that I have listened to in the past and have lapsed on my subscriptions,
purely as I forgot to subscribe again (rectified as of posting this).<br /><br /><ul><li><a href="http://agiletoolkit.libsyn.com/" title="Agile Tool Kit" target="_blank">AgileToolKit</a></li><li><a href="http://www.polymorphicpodcast.com/" title="Poly Morphic Podcast" target="_blank">Polymorphic
Podcast</a></li><li>
Arcast/<a href="http://channel9.msdn.com/shows/ARCast.TV/" title="Arcast.TV" target="_blank">Arcast.TV</a></li><li><a href="http://aspnetpodcast.com/CS11/" title="The ASP.NET Podcast" target="_blank">The
ASP.NET Podcast</a></li></ul><br />
New podcasts (at least new to me) that I have added, but not had time to listen to
yet.<br /><br /><ul><li><a href="http://blog.stackoverflow.com/" title="Stack Overflow" target="_blank">StackOverFlow</a></li><li><a href="http://coreint.org/" target="_blank">Core Intuition</a></li><li><a href="http://google-code-updates.blogspot.com/feeds/posts/default/-/podcast" target="_blank">Google
Developer Podcast</a></li><li><a href="http://www.netobjectives.com/LAST_view/feed" target="_blank">Lean Agile Straight
Talk</a> podcast</li><li><a href="http://www.buildingwebapps.com/podcasts" target="_blank">Learning Rails</a></li><li><a href="http://www.nxtgenug.net/Podcasts.aspx?PodcastID=38" target="_blank">NxtGenUG
Podcast</a></li><li><a href="http://www.pragprog.com/podcasts" target="_blank">Pragmatic Podcasts</a></li><li><a href="http://podcast.rubyonrails.org/" target="_blank">Ruby on Rails Podcasts</a></li></ul><br />
Other non techy podcasts that I subscribe to.<br /><br /><ul><li><a href="http://www.scifi.com/battlestar/downloads/podcast.php" target="_blank">Battlestar
Galactica Enhanced Podcast</a></li><li><a href="http://www.bbc.co.uk/fivelive/programmes/fightingtalk.shtml" target="_blank">Fighting
Talk</a></li><li><a href="http://mondays.pwop.com/" target="_blank">Mondays</a></li><li><a href="http://www.xbox360fanboy.com/" target="_blank">Xbox 360 Fanboy</a></li><li><a href="http://majornelson.com/" target="_blank">Xbox Live's Major Nelson Radio</a></li><li><a href="http://www.1up.com/do/minisite?cId=3144909" target="_blank">1UP Yours</a></li></ul><br />
I also found that iTunes U has a load of interesting content from places such as MIT
and Berkley.<br /><br />
Am I missing out on any really good .NET or Agile podcasts?<br /><br />
There is a lot of content there and not all of it is excellent, but most of it is
good.<br />
I am a bit behind on my podcasts due to finding out that iTunes has David Eddings
audio books available. Over the past 2 months I have managed to listen to the entire
unabridged series "The Belgariad" and am currently part way through the first book
of "The Malloreon". These are books that I read when I was younger and I am enjoying
listening to them now in audio format, at around 14 hours a book, it is taking some
time though.
<img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=65099512-a10e-4ba8-b1fc-6ca27647f3ae" /></body>
      <title>Podcasts I listen to</title>
      <guid isPermaLink="false">http://www.aidenweb.co.uk/PermaLink,guid,65099512-a10e-4ba8-b1fc-6ca27647f3ae.aspx</guid>
      <link>http://www.aidenweb.co.uk/2008/08/06/PodcastsIListenTo.aspx</link>
      <pubDate>Wed, 06 Aug 2008 16:26:55 GMT</pubDate>
      <description>&lt;p style="clear: both; "&gt;
I was chatting to a friend yesterday and he was interested in the podcasts that I
listen to. This isn't the first time that I have introduced someone to programming
podcasts, so I figured I would write up the ones that I listen to and what I think
about them. I'll start with a list of the shows and links to their websites. Then
I will go through each one in a bit more detail where I can.&lt;br /&gt;
&lt;br /&gt;
I started off listening to the PWOP podcasts by Carl Franklin and Richard Campbell&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.dotnetrocks.com/" title="DotNetRocks" target="_blank"&gt;DotNetRocks&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.hanselminutes.com/" title="Hanselminutes" target="_blank"&gt;Hanselminutes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.runasradio.com/" title="Run As Radio" target="_blank"&gt;RunAsRadio&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Recently I have added&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://deepfriedbytes.com/" title="Deep Fried Bytes" target="_blank"&gt;Deep
Fried Bytes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://altnetpodcast.com/" title="Alt.Net Podcast" target="_blank"&gt;Alt.NET
Podcast&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://herdingcode.com/" title="Herding Code" target="_blank"&gt;Herding Code&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.se-radio.net/" title="Software Engineering Radio" target="_blank"&gt;Software
Engineering Radio&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Other shows that I have listened to in the past and have lapsed on my subscriptions,
purely as I forgot to subscribe again (rectified as of posting this).&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://agiletoolkit.libsyn.com/" title="Agile Tool Kit" target="_blank"&gt;AgileToolKit&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.polymorphicpodcast.com/" title="Poly Morphic Podcast" target="_blank"&gt;Polymorphic
Podcast&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Arcast/&lt;a href="http://channel9.msdn.com/shows/ARCast.TV/" title="Arcast.TV" target="_blank"&gt;Arcast.TV&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://aspnetpodcast.com/CS11/" title="The ASP.NET Podcast" target="_blank"&gt;The
ASP.NET Podcast&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
New podcasts (at least new to me) that I have added, but not had time to listen to
yet.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://blog.stackoverflow.com/" title="Stack Overflow" target="_blank"&gt;StackOverFlow&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://coreint.org/" target="_blank"&gt;Core Intuition&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://google-code-updates.blogspot.com/feeds/posts/default/-/podcast" target="_blank"&gt;Google
Developer Podcast&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.netobjectives.com/LAST_view/feed" target="_blank"&gt;Lean Agile Straight
Talk&lt;/a&gt; podcast&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.buildingwebapps.com/podcasts" target="_blank"&gt;Learning Rails&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.nxtgenug.net/Podcasts.aspx?PodcastID=38" target="_blank"&gt;NxtGenUG
Podcast&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.pragprog.com/podcasts" target="_blank"&gt;Pragmatic Podcasts&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://podcast.rubyonrails.org/" target="_blank"&gt;Ruby on Rails Podcasts&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Other non techy podcasts that I subscribe to.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.scifi.com/battlestar/downloads/podcast.php" target="_blank"&gt;Battlestar
Galactica Enhanced Podcast&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.bbc.co.uk/fivelive/programmes/fightingtalk.shtml" target="_blank"&gt;Fighting
Talk&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://mondays.pwop.com/" target="_blank"&gt;Mondays&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.xbox360fanboy.com/" target="_blank"&gt;Xbox 360 Fanboy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://majornelson.com/" target="_blank"&gt;Xbox Live's Major Nelson Radio&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.1up.com/do/minisite?cId=3144909" target="_blank"&gt;1UP Yours&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
I also found that iTunes U has a load of interesting content from places such as MIT
and Berkley.&lt;br /&gt;
&lt;br /&gt;
Am I missing out on any really good .NET or Agile podcasts?&lt;br /&gt;
&lt;br /&gt;
There is a lot of content there and not all of it is excellent, but most of it is
good.&lt;br /&gt;
I am a bit behind on my podcasts due to finding out that iTunes has David Eddings
audio books available. Over the past 2 months I have managed to listen to the entire
unabridged series "The Belgariad" and am currently part way through the first book
of "The Malloreon". These are books that I read when I was younger and I am enjoying
listening to them now in audio format, at around 14 hours a book, it is taking some
time though.&gt;
&lt;img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=65099512-a10e-4ba8-b1fc-6ca27647f3ae" /&gt;</description>
      <comments>http://www.aidenweb.co.uk/CommentView,guid,65099512-a10e-4ba8-b1fc-6ca27647f3ae.aspx</comments>
      <category>podcasts</category>
    </item>
    <item>
      <trackback:ping>http://www.aidenweb.co.uk/Trackback.aspx?guid=75326fd7-fb90-4e9e-bb0c-a8fc8c36d640</trackback:ping>
      <pingback:server>http://www.aidenweb.co.uk/pingback.aspx</pingback:server>
      <pingback:target>http://www.aidenweb.co.uk/PermaLink,guid,75326fd7-fb90-4e9e-bb0c-a8fc8c36d640.aspx</pingback:target>
      <dc:creator>Aiden Montgomery</dc:creator>
      <wfw:comment>http://www.aidenweb.co.uk/CommentView,guid,75326fd7-fb90-4e9e-bb0c-a8fc8c36d640.aspx</wfw:comment>
      <wfw:commentRss>http://www.aidenweb.co.uk/SyndicationService.asmx/GetEntryCommentsRss?guid=75326fd7-fb90-4e9e-bb0c-a8fc8c36d640</wfw:commentRss>
      <title>Moving to the Mac</title>
      <guid isPermaLink="false">http://www.aidenweb.co.uk/PermaLink,guid,75326fd7-fb90-4e9e-bb0c-a8fc8c36d640.aspx</guid>
      <link>http://www.aidenweb.co.uk/2008/08/03/MovingToTheMac.aspx</link>
      <pubDate>Sun, 03 Aug 2008 14:26:41 GMT</pubDate>
      <description>&lt;h4&gt;Background&lt;br&gt;
&lt;/h4&gt;
&lt;p style="clear: both;"&gt;
A few months ago I was in need of a new laptop. My current Sony Vaio was starting
to struggle running Visual Studio 2005/2008, IIS and MSSQL 2005 all at once.&lt;br&gt;
&lt;br&gt;
So I started looking around for a replacement. Whilst reading reviews and generally
searching for recommended development laptops, I started noticing a number of articles
that were claiming that the Mac Book Pro was the fastest Windows XP laptop out there.&lt;br&gt;
&lt;br&gt;
At the time our company was thinking of developing an iPhone version of our mobile
phone software and I wanted to find out what it was like living in a non Windows OS.
I have worked almost exclusively on Windows platforms since leaving Sixth Form in
1999 (wow that seems a long time ago). So I decided to give OSX a try.&lt;br&gt;
&lt;br&gt;
When I told some of my friends they thought that I had gone mad, after all I use my
laptop for work and my job is developing software. Which isn't an issue until you
find out that I build ASP.net websites and Winforms applications in C#.&lt;br&gt;
&lt;/p&gt;
&lt;h4&gt;Finding Applications&lt;br&gt;
&lt;/h4&gt;
&lt;p style="clear: both;"&gt;
The first thing that I did was try and figure out the applications that I would need
for everyday use of Leopard. Everyday tasks on a Windows XP machine would see me using
the following applications: -&lt;br&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Email - Outlook&lt;/li&gt;
&lt;li&gt;
Calendar - Outlook&lt;/li&gt;
&lt;li&gt;
Web Browser - &lt;a href="http://www.mozilla.com/en-US/firefox/" title="Fire Fox" target="_blank"&gt;FireFox&lt;/a&gt; or &lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" title="Internet Explorer" target="_blank"&gt;IE&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Text editing - &lt;a href="http://notepad-plus.sourceforge.net/" title="Notepad++" target="_blank"&gt;Notepad++&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Instant Messaging - &lt;a href="http://messenger.live.com/" title="Windows Live Messenger" target="_blank"&gt;Windows
Live Messenger&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Application Launching - &lt;a href="http://www.bayden.com/SlickRun/" title="SlickRun" target="_blank"&gt;SlickRun&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Note taking - Jot (Part of &lt;a href="http://www.bayden.com/SlickRun/" title="SlickRun" target="_blank"&gt;SlickRun&lt;/a&gt;)
or Microsoft &lt;a href="http://en.wikipedia.org/wiki/Microsoft_OneNote" title="OneNote" target="_blank"&gt;OneNote&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Playing Media - Windows Media Player, &lt;a href="http://en.wikipedia.org/wiki/Media_Player_Classic" title="Media Player Classic" target="_blank"&gt;Media
Player Classic&lt;/a&gt; or when I synced my iPod, &lt;a href="http://www.apple.com/itunes/" title="iTunes" target="_blank"&gt;iTunes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
IRC - &lt;a href="http://www.mirc.com/" title="mIRC" target="_blank"&gt;mIRC&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
VOIP - &lt;a href="http://www.skype.com/" title="Skype" target="_blank"&gt;Skype&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
RSS Aggregator - &lt;a href="http://www.newsgator.com/individuals/feeddemon/default.aspx" title="FeedDemon" target="_blank"&gt;FeedDemon&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
PDF Viewer - &lt;a href="http://www.adobe.com/products/acrobat/readstep2.html" title="Adobe Acrobat Reader" target="_blank"&gt;Adobe
Acrobat Reader&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Blogging - &lt;a href="http://windowslivewriter.spaces.live.com/" title="Windows Live Writer" target="_blank"&gt;Windows
Live Writer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
FTP - &lt;a href="http://filezilla-project.org/" title="FileZilla" target="_blank"&gt;FileZilla&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Screen Shots -&lt;a href="http://blogs.geekdojo.net/brian/articles/Cropper.aspx" title="Cropper" target="_blank"&gt;Cropper&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Task Manager&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Remote Desktop - Microsoft Terminal Service Client&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Virtual Machine - Microsoft &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=04d26402-3199-48a3-afa2-2dc0b40a73b6&amp;displaylang=en" title="Vitual PC" target="_blank"&gt;Virtual
PC&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Document editing - &lt;a href="http://office.microsoft.com/" title="Office 2007" target="_blank"&gt;Microsoft
Office 2007&lt;/a&gt; 
&lt;/li&gt;
&lt;/ol&gt;
I spoke to some friends about what they used on the Mac, played with different applications
that were out there and came up with the following list of replacements.&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;
Email - Mac Mail*&lt;/li&gt;
&lt;li&gt;
Calendar - iCal* and &lt;a href="http://www.google.com/calendar/" title="Google Calendar" target="_blank"&gt;Google
Calendars&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Web Browser - &lt;a href="http://www.mozilla.com/en-US/firefox/" title="FireFox" target="_blank"&gt;FireFox&lt;/a&gt;,
Safari* and I also added &lt;a href="http://caminobrowser.org/" title="Camino" target="_blank"&gt;Camino&lt;/a&gt; to
the list of browsers [&lt;i&gt;Update:27/01/2009&lt;/i&gt; - More and more I am turning to Opera
as my default browser]&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Text Editing - &lt;strike&gt;&lt;a href="http://www.barebones.com/products/textwrangler/" title="TextWrangler" target="_blank"&gt;TextWrangler&lt;/a&gt;&lt;/strike&gt; [&lt;i&gt;Update:27/01/2009&lt;/i&gt; -
Took the plunge and purchased TextMate and using it all of the time now]&lt;a href="http://www.barebones.com/products/textwrangler/" title="TextWrangler" target="_blank"&gt;
&lt;br&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Instant Messaging - &lt;a href="http://www.adiumx.com/" title="Adium" target="_blank"&gt;Adium&lt;/a&gt; (Multiple
IM client support. I use it for MSN and ICQ)&lt;/li&gt;
&lt;li&gt;
Application Launching - &lt;strike&gt;&lt;a href="http://www.blacktree.com/" title="QuickSilver" target="_blank"&gt;QuickSilver&lt;/a&gt;&lt;/strike&gt;Launchbar&lt;/li&gt;
&lt;li&gt;
Note taking - Stickies* and &lt;strike&gt;&lt;a href="http://evernote.com/" title="Evernote" target="_blank"&gt;Evernote&lt;/a&gt;&lt;/strike&gt; YoJimbo&lt;/li&gt;
&lt;li&gt;
Playing Media - &lt;a href="http://www.apple.com/itunes/" title="iTunes" target="_blank"&gt;iTunes&lt;/a&gt;*
and &lt;a href="http://www.apple.com/quicktime/download/" title="QuickTime" target="_blank"&gt;QuickTime&lt;/a&gt;*
+ &lt;a href="http://perian.org/" title="Perian" target="_blank"&gt;Perian&lt;br&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
IRC - &lt;a href="http://colloquy.info/" title="Colloquy" target="_blank"&gt;Colloquy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
VOIP - &lt;a href="http://www.skype.com/" title="Skype" target="_blank"&gt;Skype&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
RSS Aggregator - &lt;a href="http://www.newsgator.com/Individuals/NetNewsWire/default.aspx" title="NetNewsWire" target="_blank"&gt;NetNewsWire&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
PDF Viewer - Preview*&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Blogging - &lt;a href="http://www.drinkbrainjuice.com/blogo" title="Blogo" target="_blank"&gt;Blogo&lt;/a&gt; (Also
used for twitter)&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
FTP - &lt;strike&gt;&lt;a href="http://cyberduck.ch/" title="CyberDuck" target="_blank"&gt;CyberDuck&lt;/a&gt; (Free), &lt;a href="http://www.panic.com/transmit/" title="Transmit" target="_blank"&gt;Transmit&lt;/a&gt; (Commercial)&lt;/strike&gt; [&lt;i&gt;Update:27/01/2009&lt;/i&gt; -
Using &lt;a href="http://filezilla-project.org/"&gt;FileZilla&lt;/a&gt; all the time now, recent
updates have made it stable enough for me to use]&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Screen Shots - Grab*&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Activity Monitor&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Remote Desktop - &lt;a href="http://cord.sourceforge.net/" title="CoRD" target="_blank"&gt;CoRD&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Virtual Machine - &lt;a href="http://www.vmware.com/products/fusion/" title="VMWare Fusion" target="_blank"&gt;VMWare
Fusion&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Document Editing - &lt;a href="http://www.neooffice.org/" title="Neo Office" target="_blank"&gt;Neo
Office&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Extra applications
&lt;/h4&gt;
There other applications that I have installed which I find very useful.&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;a href="http://growl.info/" title="Growl" target="_blank"&gt;Growl&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://homepage.mac.com/holtmann/eidac/" title="smcFanControl" target="_blank"&gt;smcFanControl&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://sourceforge.net/projects/synergykm" title="SynergyKM" target="_blank"&gt;SynergyKM&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.appzapper.com/" title="AppZapper" target="_blank"&gt;AppZapper&lt;/a&gt;
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.delicious-monster.com/" title="Delicious Library" target="_blank"&gt;Delicious
Library&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;
Growl allows applications to plug into its API and use it for notifications. The notifications
are then controlled by growl and the growl menu. It is possible to configure how notifications
behave, how they look, how long they stay on screen and many other aspects. It also
appears that notifications can be sent and received across the network, but I have
not used this feature.&lt;br&gt;
&lt;br&gt;
The second is smcFanControl because my Mac Book Pro didn't seem to want to spin its
fans very fast and tended to get very very hot. smcFanControl allows the user to set
fan speeds and have profiles setup for easy switching.&lt;br&gt;
&lt;br&gt;
It took me a while to find a working &lt;a href="http://synergy2.sourceforge.net/" title="Synergy" target="_blank"&gt;Synergy&lt;/a&gt; client
for Leopard, however SynergyKM works excellently. I have Synergy running in server
mode on a Windows Vista 64bit desktop machine, a Synergy client running on an XP laptop
and finally SynergyKM running on this Mac Book Pro. This allows me to use the Keyboard
and Mouse from the Vista machine, to drive all 3 machines. When my mouse hits the
edge of my monitor, it jumps over to the next machine and takes the keyboard focus
with it.&lt;br&gt;
&lt;br&gt;
AppZapper is an application uninstaller that will remove all traces of the application
you are attempting to remove. It always seems that an Operating System slows down
after a number of months being used. This is normally because it is filling up with
useless files and (in the case of Windows) registry settings. Many applications fail
to uninstall themselves entirely, leaving trace elements behind in temporary files,
settings and user data. AppZapper is the way to avoid this happening on your Mac.&lt;br&gt;
&lt;br&gt;
Delicious Library lets you use the built in iSight camera to scan barcodes on your
stuff. It then uses Amazon to search for the barcode and enter whatever information
it can find about you things. It displays your things on &lt;i&gt;shelves &lt;/i&gt;using images
downloaded from Amazon or ones that you have assigned. Makes it quick to find out
if you have something before buying it again. I managed to scan 327 DVDs and 134 books
into the application in a couple of hours.&lt;br&gt;
&lt;h4&gt;Development Applications
&lt;/h4&gt;
Normally I would install applications directly into my Windows XP installation to
allow for .net software development. However on the Mac Book Pro I don't have the
option to install the framework and the development tools. Ok, so I could install &lt;a href="http://www.eclipse.org/" title="Eclipse" target="_blank"&gt;Eclipse&lt;/a&gt; or &lt;a href="http://macromates.com/" title="TextMate" target="_blank"&gt;TextMate&lt;/a&gt; and
the &lt;a href="http://www.mono-project.com/Main_Page" title="Mono Framework" target="_blank"&gt;mono
framework&lt;/a&gt; and develop that way, but I need to use the full &lt;a href="http://msdn.microsoft.com/en-us/netframework/default.aspx" title=".NET Framework" target="_blank"&gt;Microsoft.NET
framework&lt;/a&gt; for my work.&lt;br&gt;
&lt;br&gt;
I am using &lt;a href="http://www.vmware.com/products/fusion/" title="VMWare Fusion" target="_blank"&gt;VMWare
Fusion&lt;/a&gt; as a virtualization environment. This allows me to run Windows operating
systems in a Virtual Machine(VM) on my Mac Book Pro, then simply take the image of
the VM over to my Windows machine when I need to and run it there. I will detail my &lt;a href="http://www.vmware.com/products/fusion/" title="VMWare Fusion" target="_blank"&gt;VMWare
Fusion&lt;/a&gt; setup in another post.&lt;br&gt;
&lt;h4&gt;Applications I found whilst researching this post
&lt;/h4&gt;
Whilst looking for links for this post I came across a number of other applications
that I am going to try out. I'll post again sometime soon with my thoughts on them.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.lobotomo.com/products/FanControl/index.html" title="Fan Control" target="_blank"&gt;FanControl&lt;/a&gt; -
Like the name suggests, this is another application for controlling the fans. [&lt;i&gt;Update:27/01/2009&lt;/i&gt; -
This is now setup as my fan control software.]&lt;br&gt;
&lt;a href="http://metaquark.de/appfresh/" title="AppFresh" target="_blank"&gt;AppFresh&lt;/a&gt; -
Keeps all of your applications up to date. Checks various update sites. [&lt;i&gt;Update:27/01/2009&lt;/i&gt; -
I am enjoying this application, it makes keeping things up to date so simple.]&lt;br&gt;
&lt;a href="http://www.titanium.free.fr/pgs2/english/download.html" title="Deeper" target="_blank"&gt;Deeper&lt;/a&gt; -
Allows access to otherwise hidden preferences.&lt;br&gt;
&lt;a href="http://www.titanium.free.fr/pgs/english.html" title="OnyX" target="_blank"&gt;OnyX&lt;/a&gt; -
A multifunction utility for Mac OS X 10.5. [&lt;i&gt;Update:27/01/2009&lt;/i&gt; - I use this
periodically to tweak setting on my MBP]&lt;br&gt;
&lt;a href="http://www.titanium.free.fr/pgs/english.html" title="Maintenance" target="_blank"&gt;Maintenance&lt;/a&gt; -
A System Maintenance and Cleaning utility for Mac OS X. 
&lt;br&gt;
&lt;a href="http://filezilla-project.org/" title="FileZilla" target="_blank"&gt;FileZilla&lt;/a&gt; -
OSX Version of FileZilla is available, can't believe I missed this.&lt;br&gt;
&lt;a href="http://www.ed-shiro.net/index.php?option=com_content&amp;task=view&amp;id=13&amp;Itemid=36&amp;lang=english" title="SuperDocker" target="_blank"&gt;SuperDocker&lt;/a&gt; -
Allows to customize parts of your Mac OS X Leopard.&lt;br&gt;
&lt;a href="http://www.freemacsoft.net/LiteIcon/" title="LiteIcon" target="_blank"&gt;LiteIcon&lt;/a&gt; -
A simple app which allows you to change your system icons easily.&lt;br&gt;
&lt;a href="http://jares.altervista.org/Dvd_Hunter.html" title="DVD Hunter" target="_blank"&gt;DVDHunter&lt;/a&gt; -
A free DVD cataloguing application.&lt;br&gt;
&lt;a href="http://www.videolan.org/" title="Video Lan" target="_blank"&gt;VideoLan&lt;/a&gt; -
Media player and can be used as a streaming server.&lt;br&gt;
&lt;h4&gt;Links
&lt;/h4&gt;
&lt;div&gt;&lt;a href="http://www.coolosxapps.net/"&gt;http://www.coolosxapps.net/&lt;/a&gt;
&lt;/div&gt;
&lt;a href="http://damieng.com/blog/tag/mac-freeware/"&gt;http://damieng.com/blog/tag/mac-freeware/&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://simpable.com/software/mac-software/"&gt;http://simpable.com/software/mac-software/&lt;/a&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=75326fd7-fb90-4e9e-bb0c-a8fc8c36d640" /&gt;</description>
      <comments>http://www.aidenweb.co.uk/CommentView,guid,75326fd7-fb90-4e9e-bb0c-a8fc8c36d640.aspx</comments>
      <category>OSX</category>
      <category>Software</category>
    </item>
    <item>
      <trackback:ping>http://www.aidenweb.co.uk/Trackback.aspx?guid=af9f8cde-5c72-4081-8fcf-af77f1321873</trackback:ping>
      <pingback:server>http://www.aidenweb.co.uk/pingback.aspx</pingback:server>
      <pingback:target>http://www.aidenweb.co.uk/PermaLink,guid,af9f8cde-5c72-4081-8fcf-af77f1321873.aspx</pingback:target>
      <dc:creator>Aiden Montgomery</dc:creator>
      <wfw:comment>http://www.aidenweb.co.uk/CommentView,guid,af9f8cde-5c72-4081-8fcf-af77f1321873.aspx</wfw:comment>
      <wfw:commentRss>http://www.aidenweb.co.uk/SyndicationService.asmx/GetEntryCommentsRss?guid=af9f8cde-5c72-4081-8fcf-af77f1321873</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p style="clear: both; clear: both; ">
This is somewhat amusing. I turned on <a href="http://growl.info/" title="Growl" target="_blank">Growl</a> Sticky
Notifications as I have become used to reading tweets as they are announced this way.
</p>
        <p style="clear: both; clear: both; ">
          <a href="http://www.aidenweb.co.uk/content/binary/GrowlStickyNotifications3.jpg">
            <img class="linked-to-original" src="http://www.aidenweb.co.uk/content/binary/GrowlStickyNotifications4.jpg" height="20" align="" width="216" style="  text-align: center; display: block; margin: 0 auto 0;" />
          </a>
          <br style="clear: both" />
I then left my laptop turned on whilst I went to eat some food. I come back around
45 minutes later and this is what I see.
</p>
        <p class="blogo-linebreaks-removed-1" style="clear: both; clear: both; ">
          <a href="http://www.aidenweb.co.uk/content/binary/growlTakingOver2.jpg">
            <img class="linked-to-original" src="http://www.aidenweb.co.uk/content/binary/growlTakingOver1.jpg" height="237" align="" width="379" style="  text-align: center; display: block; margin: 0 auto 0;" />
          </a>
          <br style="clear: both" />
        </p>
        <img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=af9f8cde-5c72-4081-8fcf-af77f1321873" />
      </body>
      <title>Growl Taking Over My Screen</title>
      <guid isPermaLink="false">http://www.aidenweb.co.uk/PermaLink,guid,af9f8cde-5c72-4081-8fcf-af77f1321873.aspx</guid>
      <link>http://www.aidenweb.co.uk/2008/08/01/GrowlTakingOverMyScreen.aspx</link>
      <pubDate>Fri, 01 Aug 2008 09:25:00 GMT</pubDate>
      <description>&lt;p style="clear: both; clear: both; "&gt;
This is somewhat amusing. I turned on &lt;a href="http://growl.info/" title="Growl" target="_blank"&gt;Growl&lt;/a&gt; Sticky
Notifications as I have become used to reading tweets as they are announced this way.
&lt;/p&gt;
&lt;p style="clear: both; clear: both; "&gt;
&lt;a href="http://www.aidenweb.co.uk/content/binary/GrowlStickyNotifications3.jpg"&gt;&lt;img class="linked-to-original" src="http://www.aidenweb.co.uk/content/binary/GrowlStickyNotifications4.jpg" height="20" align="" width="216" style="  text-align: center; display: block; margin: 0 auto 0;" /&gt;&lt;/a&gt;
&lt;br style="clear: both" /&gt;
I then left my laptop turned on whilst I went to eat some food. I come back around
45 minutes later and this is what I see.
&lt;/p&gt;
&lt;p class="blogo-linebreaks-removed-1" style="clear: both; clear: both; "&gt;
&lt;a href="http://www.aidenweb.co.uk/content/binary/growlTakingOver2.jpg"&gt;&lt;img class="linked-to-original" src="http://www.aidenweb.co.uk/content/binary/growlTakingOver1.jpg" height="237" align="" width="379" style="  text-align: center; display: block; margin: 0 auto 0;" /&gt;&lt;/a&gt;
&lt;br style="clear: both" /&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=af9f8cde-5c72-4081-8fcf-af77f1321873" /&gt;</description>
      <comments>http://www.aidenweb.co.uk/CommentView,guid,af9f8cde-5c72-4081-8fcf-af77f1321873.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.aidenweb.co.uk/Trackback.aspx?guid=f642ca18-a2d2-4de0-8431-978a9f65d1ee</trackback:ping>
      <pingback:server>http://www.aidenweb.co.uk/pingback.aspx</pingback:server>
      <pingback:target>http://www.aidenweb.co.uk/PermaLink,guid,f642ca18-a2d2-4de0-8431-978a9f65d1ee.aspx</pingback:target>
      <dc:creator>Aiden Montgomery</dc:creator>
      <wfw:comment>http://www.aidenweb.co.uk/CommentView,guid,f642ca18-a2d2-4de0-8431-978a9f65d1ee.aspx</wfw:comment>
      <wfw:commentRss>http://www.aidenweb.co.uk/SyndicationService.asmx/GetEntryCommentsRss?guid=f642ca18-a2d2-4de0-8431-978a9f65d1ee</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p style="clear: both;">
          <u>A Domain Model?</u>
          <br />
          <br />
        </p>
        <div>I don't know. I have only read the first chapter of Eric Evans', <a href="http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215" title="Amazon - DDD" target="_blank">Domain
Driven Design</a> so far, so I might be on the right track here.
</div>
        <div>From what we have figured out so far from the requirements we have the following
entities.
</div>
        <div>
          <ul>
            <li>
Club</li>
            <li>
Member</li>
            <li>
Team</li>
            <li>
Manager</li>
            <li>
Player</li>
            <li>
Staff-Member</li>
          </ul>
        </div>
        <div>This is where I am starting from. It might not be the right place, but it seems
as good as any right now. I believe that with these concepts I should be able to start
building an application that the users will understand.<br /></div>
        <div>
          <br />
        </div>
        <div>
          <b>
            <u>Some more detailed requirements</u>
          </b>
          <br />
          <br />
        </div>
        <div>Further discussions with people related to the club highlights the fact that
the system should be available outside of office hours and over the internet, apparently
the managers/coaches of the kids teams are volunteers who have day jobs. It should
be secured in some way so that club information stays private. This leads me to the
decision to build the application as a website. The website will be hosted on a windows
server machine with IIS and ASP.NET available.
</div>
        <div>
          <br />
        </div>
        <div>(Ok, so that is a little staged, but isn't all of this?)
</div>
        <div>
          <br />
        </div>
        <div>I decide to leverage what I can of the Membership, Roles, Profile and Personalization
features offered by ASP.NET. (Learning about the ASP.NET MVC or Monorail is a step
too far right now, I might do that on the second iteration.)
</div>
        <div>
          <br />
        </div>
        <div>After this decision is made I need to figure out what to do first. As the club
secretary is the person who will be in acting as the administrator of the software
I need to make sure that they have the features that they want as soon as possible.
We need to get them familiar with the system and allow them to get the initial sets
of data entered.
</div>
        <div>
          <br />
        </div>
        <div>
          <div>
            <div>Somehow I manage to get in touch with the club secretary again to talk through
some features of the system. This is what I got out of the conversation.
</div>
            <div>(This is going to make <a href="http://behaviour-driven.org/" title="BDD" target="_blank">BDD</a> people
cry, please let me know what I can do to make this better)
</div>
            <div>
              <br />
            </div>
            <div>When I try to access data in the system, I should not be allowed to, unless I
have logged in.
</div>
            <div>
              <i>Given that a user is not logged in,</i>
            </div>
            <div>
              <i>When sensitive data is accessed,</i>
            </div>
            <div>
              <i>Should be shown the login screen.</i>
            </div>
            <div>
              <br />
            </div>
            <div>When I want to contact a member, I need to be able to see a list of all members,
so that I can see the ones I want.
</div>
            <div>
              <i>Given that there are members in the system,</i>
            </div>
            <div>
              <i>When the member list page loads,</i>
            </div>
            <div>
              <i>A list is populated with all the members of the club.</i>
            </div>
            <div>
              <br />
            </div>
            <div>When a member joins the club, they need to be added to the system, so that I
can make sure they are organised.
</div>
            <div>
              <i>Given the member does not already have details in the system,</i>
            </div>
            <div>
              <i>When I enter their details,</i>
            </div>
            <div>
              <i>They appear in the list of members for my club.</i>
            </div>
            <div>
              <br />
            </div>
            <div>
              <i>Given the member is already in the system,</i>
            </div>
            <div>
              <i>When I enter their details,</i>
            </div>
            <div>
              <i>I should be made aware that they already exist</i>
            </div>
            <div>
              <i>And I should have the choice to duplicate the entry<br /><br /></i>When a member leaves that club, I need to be able to remove them from the system,
so that I don't end up with lots of out of date information.<br /><i>Given that a member exists in the system,<br />
When I delete their information,<br />
They are removed from all lists of members,<br />
And they are removed from all Teams</i><br /></div>
            <div>
              <br />
            </div>
            <div>As I am leaving the club owner wants to find out how things are going, so we
go through the list of requirements that I have gathered so far and he is quite happy
with them. In fact he thinks that it sounds so good that we should make this available
to other clubs to use, at a price of course. This introduces another concept, multiple
clubs active in the system at the same time. We might consider setting each club up
with their own system, but lets not go there until we know that it is a problem.
</div>
            <div>
              <br />
            </div>
            <div>I think that this will do for now. There is actually quite a lot of work involved
in getting to this point. Some infrastructure needs to be in place to handle some
of the non-functional requirements that we have.
</div>
            <div>
              <ul>
                <li>
The system needs to be stable.</li>
                <li>
If there is a problem we need to be able to find out what happened.</li>
                <li>
The system need to be responsive.</li>
              </ul>
            </div>
            <div>Lets jump in and start coding. I will be trying to do as much as I can in a TDD
style, no sure how the database interaction part is going to go yet, I always hate
writing tests that hit the database.<br /></div>
            <div>As the title of the first post suggested, I will be using NHIbernate for data
access and other goodies that object relational mappers offer. Ninject will be used
for any dependency injection needs, I am sure that there will be some somewhere. jQuery
will be used for the web UI and any ajax capabilities. What about the iPhone? Well
I am not sure about that yet, all I know is that I have an iPod Touch, a usb cable,
a Mac Book Pro and an iPhone developer account. I am sure that I can come up with
something for remote administration, even if it is just an iPhone Web Application.
</div>
            <div>
              <br />
            </div>
            <div>I'll be back when I have something interesting to show.
</div>
          </div>
        </div>
        <p>
        </p>
        <img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=f642ca18-a2d2-4de0-8431-978a9f65d1ee" />
      </body>
      <title>Football Application - Preparing to code</title>
      <guid isPermaLink="false">http://www.aidenweb.co.uk/PermaLink,guid,f642ca18-a2d2-4de0-8431-978a9f65d1ee.aspx</guid>
      <link>http://www.aidenweb.co.uk/2008/07/18/FootballApplicationPreparingToCode.aspx</link>
      <pubDate>Fri, 18 Jul 2008 08:48:07 GMT</pubDate>
      <description>&lt;p style="clear: both;"&gt;
&lt;u&gt;A Domain Model?&lt;/u&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;div&gt;I don't know. I have only read the first chapter of Eric Evans', &lt;a href="http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215" title="Amazon - DDD" target="_blank"&gt;Domain
Driven Design&lt;/a&gt; so far, so I might be on the right track here.
&lt;/div&gt;
&lt;div&gt;From what we have figured out so far from the requirements we have the following
entities.
&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;
Club&lt;/li&gt;
&lt;li&gt;
Member&lt;/li&gt;
&lt;li&gt;
Team&lt;/li&gt;
&lt;li&gt;
Manager&lt;/li&gt;
&lt;li&gt;
Player&lt;/li&gt;
&lt;li&gt;
Staff-Member&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;This is where I am starting from. It might not be the right place, but it seems
as good as any right now. I believe that with these concepts I should be able to start
building an application that the users will understand.&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;u&gt;Some more detailed requirements&lt;/u&gt;&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;Further discussions with people related to the club highlights the fact that
the system should be available outside of office hours and over the internet, apparently
the managers/coaches of the kids teams are volunteers who have day jobs. It should
be secured in some way so that club information stays private. This leads me to the
decision to build the application as a website. The website will be hosted on a windows
server machine with IIS and ASP.NET available.
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;(Ok, so that is a little staged, but isn't all of this?)
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;I decide to leverage what I can of the Membership, Roles, Profile and Personalization
features offered by ASP.NET. (Learning about the ASP.NET MVC or Monorail is a step
too far right now, I might do that on the second iteration.)
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;After this decision is made I need to figure out what to do first. As the club
secretary is the person who will be in acting as the administrator of the software
I need to make sure that they have the features that they want as soon as possible.
We need to get them familiar with the system and allow them to get the initial sets
of data entered.
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;Somehow I manage to get in touch with the club secretary again to talk through
some features of the system. This is what I got out of the conversation.
&lt;/div&gt;
&lt;div&gt;(This is going to make &lt;a href="http://behaviour-driven.org/" title="BDD" target="_blank"&gt;BDD&lt;/a&gt; people
cry, please let me know what I can do to make this better)
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;When I try to access data in the system, I should not be allowed to, unless I
have logged in.
&lt;/div&gt;
&lt;div&gt;&lt;i&gt;Given that a user is not logged in,&lt;/i&gt;
&lt;/div&gt;
&lt;div&gt;&lt;i&gt;When sensitive data is accessed,&lt;/i&gt;
&lt;/div&gt;
&lt;div&gt;&lt;i&gt;Should be shown the login screen.&lt;/i&gt; 
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;When I want to contact a member, I need to be able to see a list of all members,
so that I can see the ones I want.
&lt;/div&gt;
&lt;div&gt;&lt;i&gt;Given that there are members in the system,&lt;/i&gt;
&lt;/div&gt;
&lt;div&gt;&lt;i&gt;When the member list page loads,&lt;/i&gt;
&lt;/div&gt;
&lt;div&gt;&lt;i&gt;A list is populated with all the members of the club.&lt;/i&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;When a member joins the club, they need to be added to the system, so that I
can make sure they are organised.
&lt;/div&gt;
&lt;div&gt;&lt;i&gt;Given the member does not already have details in the system,&lt;/i&gt;
&lt;/div&gt;
&lt;div&gt;&lt;i&gt;When I enter their details,&lt;/i&gt;
&lt;/div&gt;
&lt;div&gt;&lt;i&gt;They appear in the list of members for my club.&lt;/i&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;&lt;i&gt;Given the member is already in the system,&lt;/i&gt;
&lt;/div&gt;
&lt;div&gt;&lt;i&gt;When I enter their details,&lt;/i&gt;
&lt;/div&gt;
&lt;div&gt;&lt;i&gt;I should be made aware that they already exist&lt;/i&gt;
&lt;/div&gt;
&lt;div&gt;&lt;i&gt;And I should have the choice to duplicate the entry&lt;br&gt;
&lt;br&gt;
&lt;/i&gt;When a member leaves that club, I need to be able to remove them from the system,
so that I don't end up with lots of out of date information.&lt;br&gt;
&lt;i&gt;Given that a member exists in the system,&lt;br&gt;
When I delete their information,&lt;br&gt;
They are removed from all lists of members,&lt;br&gt;
And they are removed from all Teams&lt;/i&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;As I am leaving the club owner wants to find out how things are going, so we
go through the list of requirements that I have gathered so far and he is quite happy
with them. In fact he thinks that it sounds so good that we should make this available
to other clubs to use, at a price of course. This introduces another concept, multiple
clubs active in the system at the same time. We might consider setting each club up
with their own system, but lets not go there until we know that it is a problem.
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;I think that this will do for now. There is actually quite a lot of work involved
in getting to this point. Some infrastructure needs to be in place to handle some
of the non-functional requirements that we have.
&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;
The system needs to be stable.&lt;/li&gt;
&lt;li&gt;
If there is a problem we need to be able to find out what happened.&lt;/li&gt;
&lt;li&gt;
The system need to be responsive.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;Lets jump in and start coding. I will be trying to do as much as I can in a TDD
style, no sure how the database interaction part is going to go yet, I always hate
writing tests that hit the database.&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;As the title of the first post suggested, I will be using NHIbernate for data
access and other goodies that object relational mappers offer. Ninject will be used
for any dependency injection needs, I am sure that there will be some somewhere. jQuery
will be used for the web UI and any ajax capabilities. What about the iPhone? Well
I am not sure about that yet, all I know is that I have an iPod Touch, a usb cable,
a Mac Book Pro and an iPhone developer account. I am sure that I can come up with
something for remote administration, even if it is just an iPhone Web Application.
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;I'll be back when I have something interesting to show.
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=f642ca18-a2d2-4de0-8431-978a9f65d1ee" /&gt;</description>
      <comments>http://www.aidenweb.co.uk/CommentView,guid,f642ca18-a2d2-4de0-8431-978a9f65d1ee.aspx</comments>
      <category>development</category>
    </item>
    <item>
      <trackback:ping>http://www.aidenweb.co.uk/Trackback.aspx?guid=e3fd5ca3-b516-4da4-8953-968fde7d1b57</trackback:ping>
      <pingback:server>http://www.aidenweb.co.uk/pingback.aspx</pingback:server>
      <pingback:target>http://www.aidenweb.co.uk/PermaLink,guid,e3fd5ca3-b516-4da4-8953-968fde7d1b57.aspx</pingback:target>
      <dc:creator>Aiden Montgomery</dc:creator>
      <wfw:comment>http://www.aidenweb.co.uk/CommentView,guid,e3fd5ca3-b516-4da4-8953-968fde7d1b57.aspx</wfw:comment>
      <wfw:commentRss>http://www.aidenweb.co.uk/SyndicationService.asmx/GetEntryCommentsRss?guid=e3fd5ca3-b516-4da4-8953-968fde7d1b57</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p style="clear: both;">
          <b>
            <u>Background</u>
          </b>
          <br />
          <br />
I am intending on writing a small application over the next day or two that will help
me understand, at a reasonable level, some interesting technologies.<br /><br /></p>
        <div>The software will be a fictional Football Club organisation application; that
is <b>Football</b>, the game where you kick the round ball with your <b>feet</b>,
not whatever this <i>soccer</i> thing is, never seen someone playing a football game
in their socks ;) That can be used to manage club members, teams, management staff,
fixtures and whatever else comes up along the way.<br /><br /></div>
        <div>The reason for doing this is to delve into some of the technologies that I have
been meaning to learn for some time. After reading through documentation, articles,
blog posts, tutorials and whatever text I could get my hands on, I am ready to start
attempting to implement something. If anyone does find this series then be warned,
it is more of a learning experience than a manual. Something that I say/do in the
first post may later be ripped out and done in a different way later on. Also if you
spot something that isn't right, let me know, that's what comments are there for.<br /><br /></div>
        <div>
          <b>
            <u>Requirements</u>
            <br />
            <br />
          </b>
        </div>
        <div>So lets get going then. The first thing we need is a set of requirements. I am
going to use a style that might be similar in style to BDD requirements, although
I've never really done any BDD before.
</div>
        <div>Requirements gathering can be quite boring, so I'm going to tell a story.<br /><br /></div>
        <div>I set off in search of some people with a vested interest in the software. The
first person I meet is the club owner.
</div>
        <div>
          <ul>
            <li>
As a club owner, I want my club to be well organised, so that we run efficiently.</li>
          </ul>
        </div>
        <div>That's it, that is the only requirement he has, after that he gets on his phone
and I leave quietly. Don't you just love requirements. Ok, lets try and get some more
out of the people at the club. I will assume that they have agreed that a software
solution will be created that has some sort of data storage ability. I'm certainly
not going to go through this exercise and tell them to go and buy everyone their own
leather bound diary!<br /><br /></div>
        <div>I find the club secretary who is responsible for looking after the smooth running
and organisation of the club.
</div>
        <div>
          <ol>
            <li>
As club secretary, I want to be able to know who the members of the club are, so that
I can contact them when I need to.</li>
            <li>
As club secretary, I want to be able to control which managers have access to which
teams through the system, so that they are not overwhelmed by the amount of information.</li>
            <li>
As club secretary, I want to be able to send emails to our members, so that I can
send out reminders or newsletters.</li>
          </ol>
        </div>
        <div>Wandering around the club offices I find the treasurer, who is responsible for
the finances of the club. Far too busy to talk I only get a few requirements.
</div>
        <div>
          <ol>
            <li>
As club treasurer, I want to be able to keep track of membership fees, so that I can
balance the books.</li>
            <li>
As club treasurer, I want to be able to keep track of any fines awarded to players
or staff, so that we can ensure they are paid in time.</li>
          </ol>
        </div>
        <div>Later on I manage to get a meeting with a few of the team managers associated
with the club. Ok, so all I managed to do was catch up with a manager during half
time at a game.
</div>
        <div>
          <ol>
            <li>
As a team manager, I want to know who is available to me for selection, so that I
can pick the best team.</li>
            <li>
As a team manager, I want to know which members of the club's 'back room' staff have
been assigned to my team, so that I can make sure the players are well looked after.</li>
            <li>
As a team manager, I want to be able to access my fixture list whenever I need to,
so that I can make sure everyone knows who we are playing next.</li>
          </ol>
        </div>
        <div>While I'm at the game, I decided to talk to some of the substitutes, they had
some requirements too.
</div>
        <div>
          <ol>
            <li>
As a player, I want to be able to access the fixtures, because the manager sometimes
forgets.</li>
            <li>
As a player, I want to be able to let the manger know when I am on holiday, so that
he doesn't put me in the team.</li>
            <li>
As a player, I want my personal information to be secure, so that I don't wake up
to find someone has stolen my identity.</li>
          </ol>
        </div>
        <div>As I am thanking the players and setting off to get back to work, (doesn't everyone
work on a Saturday evening?), one of the team's <s>fanatics</s> fans confronts me.
"You making a website for this lot? Well I got things I want on it too!"
</div>
        <div>Oh well, might as well humour him.
</div>
        <div>
          <ol>
            <li>
As a fan, I want to be able to see the fixtures, so that I don't miss a game.</li>
            <li>
As a fan, I want to be able to see the results of the games, so when I miss one I
know what the score was.</li>
            <li>
As a fan, I want to be able to read news stories about the team, so that I am never
out of the loop.</li>
            <li>
As a fan, I want to be able to talk on the internet with other fans, so that we can
make up new chants.</li>
          </ol>
        </div>
        <div>
          <br />
        </div>
        <div>After that I switched off and drew fluffy clouds all over my notes.<br /><br /></div>
        <div>Overall I think that we have a good enough set of feature requests to get us
going. As everyone in the club is too busy to talk to us now, we are going to have
to work out priorities by ourselves. We have a <s>week</s> day to get something together
to show the club owner. The intention of the software is to help organise the club,
so the fan's website requirements can probably be put deep into the product backlog! 
</div>
        <div>
          <br />
Now that you have some background to what I am trying to do, the next post will hopefully
start getting into some technology.<br /></div>
        <p>
        </p>
        <img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=e3fd5ca3-b516-4da4-8953-968fde7d1b57" />
      </body>
      <title>NHibernate, Ninject, jQuery and the iPhone?</title>
      <guid isPermaLink="false">http://www.aidenweb.co.uk/PermaLink,guid,e3fd5ca3-b516-4da4-8953-968fde7d1b57.aspx</guid>
      <link>http://www.aidenweb.co.uk/2008/07/17/NHibernateNinjectJQueryAndTheIPhone.aspx</link>
      <pubDate>Thu, 17 Jul 2008 21:36:51 GMT</pubDate>
      <description>&lt;p style="clear: both;"&gt;
&lt;b&gt;&lt;u&gt;Background&lt;/u&gt;&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
I am intending on writing a small application over the next day or two that will help
me understand, at a reasonable level, some interesting technologies.&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;div&gt;The software will be a fictional Football Club organisation application; that
is &lt;b&gt;Football&lt;/b&gt;, the game where you kick the round ball with your &lt;b&gt;feet&lt;/b&gt;,
not whatever this &lt;i&gt;soccer&lt;/i&gt; thing is, never seen someone playing a football game
in their socks ;) That can be used to manage club members, teams, management staff,
fixtures and whatever else comes up along the way.&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;The reason for doing this is to delve into some of the technologies that I have
been meaning to learn for some time. After reading through documentation, articles,
blog posts, tutorials and whatever text I could get my hands on, I am ready to start
attempting to implement something. If anyone does find this series then be warned,
it is more of a learning experience than a manual. Something that I say/do in the
first post may later be ripped out and done in a different way later on. Also if you
spot something that isn't right, let me know, that's what comments are there for.&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;u&gt;Requirements&lt;/u&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/b&gt;
&lt;/div&gt;
&lt;div&gt;So lets get going then. The first thing we need is a set of requirements. I am
going to use a style that might be similar in style to BDD requirements, although
I've never really done any BDD before.
&lt;/div&gt;
&lt;div&gt;Requirements gathering can be quite boring, so I'm going to tell a story.&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;I set off in search of some people with a vested interest in the software. The
first person I meet is the club owner.
&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;
As a club owner, I want my club to be well organised, so that we run efficiently.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;That's it, that is the only requirement he has, after that he gets on his phone
and I leave quietly. Don't you just love requirements. Ok, lets try and get some more
out of the people at the club. I will assume that they have agreed that a software
solution will be created that has some sort of data storage ability. I'm certainly
not going to go through this exercise and tell them to go and buy everyone their own
leather bound diary!&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;I find the club secretary who is responsible for looking after the smooth running
and organisation of the club.
&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;
As club secretary, I want to be able to know who the members of the club are, so that
I can contact them when I need to.&lt;/li&gt;
&lt;li&gt;
As club secretary, I want to be able to control which managers have access to which
teams through the system, so that they are not overwhelmed by the amount of information.&lt;/li&gt;
&lt;li&gt;
As club secretary, I want to be able to send emails to our members, so that I can
send out reminders or newsletters.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;Wandering around the club offices I find the treasurer, who is responsible for
the finances of the club. Far too busy to talk I only get a few requirements.
&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;
As club treasurer, I want to be able to keep track of membership fees, so that I can
balance the books.&lt;/li&gt;
&lt;li&gt;
As club treasurer, I want to be able to keep track of any fines awarded to players
or staff, so that we can ensure they are paid in time.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;Later on I manage to get a meeting with a few of the team managers associated
with the club. Ok, so all I managed to do was catch up with a manager during half
time at a game.
&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;
As a team manager, I want to know who is available to me for selection, so that I
can pick the best team.&lt;/li&gt;
&lt;li&gt;
As a team manager, I want to know which members of the club's 'back room' staff have
been assigned to my team, so that I can make sure the players are well looked after.&lt;/li&gt;
&lt;li&gt;
As a team manager, I want to be able to access my fixture list whenever I need to,
so that I can make sure everyone knows who we are playing next.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;While I'm at the game, I decided to talk to some of the substitutes, they had
some requirements too.
&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;
As a player, I want to be able to access the fixtures, because the manager sometimes
forgets.&lt;/li&gt;
&lt;li&gt;
As a player, I want to be able to let the manger know when I am on holiday, so that
he doesn't put me in the team.&lt;/li&gt;
&lt;li&gt;
As a player, I want my personal information to be secure, so that I don't wake up
to find someone has stolen my identity.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;As I am thanking the players and setting off to get back to work, (doesn't everyone
work on a Saturday evening?), one of the team's &lt;s&gt;fanatics&lt;/s&gt; fans confronts me.
"You making a website for this lot? Well I got things I want on it too!"
&lt;/div&gt;
&lt;div&gt;Oh well, might as well humour him.
&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;
As a fan, I want to be able to see the fixtures, so that I don't miss a game.&lt;/li&gt;
&lt;li&gt;
As a fan, I want to be able to see the results of the games, so when I miss one I
know what the score was.&lt;/li&gt;
&lt;li&gt;
As a fan, I want to be able to read news stories about the team, so that I am never
out of the loop.&lt;/li&gt;
&lt;li&gt;
As a fan, I want to be able to talk on the internet with other fans, so that we can
make up new chants.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;After that I switched off and drew fluffy clouds all over my notes.&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;Overall I think that we have a good enough set of feature requests to get us
going. As everyone in the club is too busy to talk to us now, we are going to have
to work out priorities by ourselves. We have a &lt;s&gt;week&lt;/s&gt; day to get something together
to show the club owner. The intention of the software is to help organise the club,
so the fan's website requirements can probably be put deep into the product backlog! 
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
Now that you have some background to what I am trying to do, the next post will hopefully
start getting into some technology.&lt;br&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=e3fd5ca3-b516-4da4-8953-968fde7d1b57" /&gt;</description>
      <comments>http://www.aidenweb.co.uk/CommentView,guid,e3fd5ca3-b516-4da4-8953-968fde7d1b57.aspx</comments>
      <category>development</category>
    </item>
    <item>
      <trackback:ping>http://www.aidenweb.co.uk/Trackback.aspx?guid=98f550d4-baab-4c44-8c6b-92987649f686</trackback:ping>
      <pingback:server>http://www.aidenweb.co.uk/pingback.aspx</pingback:server>
      <pingback:target>http://www.aidenweb.co.uk/PermaLink,guid,98f550d4-baab-4c44-8c6b-92987649f686.aspx</pingback:target>
      <dc:creator>Aiden Montgomery</dc:creator>
      <wfw:comment>http://www.aidenweb.co.uk/CommentView,guid,98f550d4-baab-4c44-8c6b-92987649f686.aspx</wfw:comment>
      <wfw:commentRss>http://www.aidenweb.co.uk/SyndicationService.asmx/GetEntryCommentsRss?guid=98f550d4-baab-4c44-8c6b-92987649f686</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p style="clear: both; ">
Last week I <a href="http://www.aidenweb.co.uk/2008/07/09/SecondActually3rdPostFromBlogo.aspx">posted</a> about
trying out <a href="http://www.drinkbrainjuice.com/blogo" title="Blogo" target="_blank">Blogo</a>,
a blog authoring application for the Mac.<br /></p>
        <p style="clear: both; ">
I contacted the support team at brainjuice explaining my problems, and mentioned that
I missed the ability to have a link history/glossary.<br /></p>
        <p style="clear: both; ">
A few hours later I received a reply. I found out that the issue I had with style
on the 
</p>
        <p>
tags will be addressed in an upcoming release. They had added the inline styles to
avoid float bugs on some weblog systems, when posting through Blogo.<br /></p>
        <p style="clear: both; ">
The link typing problem is a known WebKit issue and is being worked on.<br />
The auto-completion for links is on the list of features to be implemented.<br /><br /></p>
        <p style="clear: both; ">
They weren't too sure about the issue that I as having with editing my posts and I
said that I would try and get DasBlog setup locally to try and debug it.<br />
I tried running DasBlog on my VM whilst connecting to it using Blogo. There were various
issues caused by settings that I have never touched and basically I gave up trying
to get them talking after about 30 minutes.<br /><br /></p>
        <p style="clear: both; ">
I left it at that, then 6 days later I received another email from the Blogo team
informing me that they were working on the same issues with another DasBlog user.
At least that proves that it wasn't me doing something silly.<br /></p>
        <p style="clear: both; ">
I look forward to seeing an update on this, as I have to say I love the interface
of Blogo. It is clean and simple. Perfect for my not so often blogging on my little
site here.<br /></p>
        <p style="clear: both; ">
This is my first try at update with a new version of Blogo on 27th July.
</p>
        <br class="final-break" style="clear: both" />
        <img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=98f550d4-baab-4c44-8c6b-92987649f686" />
      </body>
      <title>Update on Blogo</title>
      <guid isPermaLink="false">http://www.aidenweb.co.uk/PermaLink,guid,98f550d4-baab-4c44-8c6b-92987649f686.aspx</guid>
      <link>http://www.aidenweb.co.uk/2008/07/17/UpdateOnBlogo.aspx</link>
      <pubDate>Thu, 17 Jul 2008 18:56:26 GMT</pubDate>
      <description>&lt;p style="clear: both; "&gt;
Last week I &lt;a href="http://www.aidenweb.co.uk/2008/07/09/SecondActually3rdPostFromBlogo.aspx"&gt;posted&lt;/a&gt; about
trying out &lt;a href="http://www.drinkbrainjuice.com/blogo" title="Blogo" target="_blank"&gt;Blogo&lt;/a&gt;,
a blog authoring application for the Mac.&lt;br /&gt;
&lt;/p&gt;
&lt;p style="clear: both; "&gt;
I contacted the support team at brainjuice explaining my problems, and mentioned that
I missed the ability to have a link history/glossary.&lt;br /&gt;
&lt;/p&gt;
&lt;p style="clear: both; "&gt;
A few hours later I received a reply. I found out that the issue I had with style
on the 
&lt;p&gt;
tags will be addressed in an upcoming release. They had added the inline styles to
avoid float bugs on some weblog systems, when posting through Blogo.&lt;br /&gt;
&lt;/p&gt;
&lt;p style="clear: both; "&gt;
The link typing problem is a known WebKit issue and is being worked on.&lt;br /&gt;
The auto-completion for links is on the list of features to be implemented.&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style="clear: both; "&gt;
They weren't too sure about the issue that I as having with editing my posts and I
said that I would try and get DasBlog setup locally to try and debug it.&lt;br /&gt;
I tried running DasBlog on my VM whilst connecting to it using Blogo. There were various
issues caused by settings that I have never touched and basically I gave up trying
to get them talking after about 30 minutes.&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style="clear: both; "&gt;
I left it at that, then 6 days later I received another email from the Blogo team
informing me that they were working on the same issues with another DasBlog user.
At least that proves that it wasn't me doing something silly.&lt;br /&gt;
&lt;/p&gt;
&lt;p style="clear: both; "&gt;
I look forward to seeing an update on this, as I have to say I love the interface
of Blogo. It is clean and simple. Perfect for my not so often blogging on my little
site here.&lt;br /&gt;
&lt;/p&gt;
&lt;p style="clear: both; "&gt;
This is my first try at update with a new version of Blogo on 27th July.
&lt;/p&gt;
&lt;br class='final-break' style='clear: both' /&gt;
&lt;img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=98f550d4-baab-4c44-8c6b-92987649f686" /&gt;</description>
      <comments>http://www.aidenweb.co.uk/CommentView,guid,98f550d4-baab-4c44-8c6b-92987649f686.aspx</comments>
      <category>blogging</category>
    </item>
    <item>
      <trackback:ping>http://www.aidenweb.co.uk/Trackback.aspx?guid=eba13900-b2fd-4a60-b703-aabcc9cebded</trackback:ping>
      <pingback:server>http://www.aidenweb.co.uk/pingback.aspx</pingback:server>
      <pingback:target>http://www.aidenweb.co.uk/PermaLink,guid,eba13900-b2fd-4a60-b703-aabcc9cebded.aspx</pingback:target>
      <dc:creator>Aiden Montgomery</dc:creator>
      <wfw:comment>http://www.aidenweb.co.uk/CommentView,guid,eba13900-b2fd-4a60-b703-aabcc9cebded.aspx</wfw:comment>
      <wfw:commentRss>http://www.aidenweb.co.uk/SyndicationService.asmx/GetEntryCommentsRss?guid=eba13900-b2fd-4a60-b703-aabcc9cebded</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">I have just finished entering the <a href="http://www.fc-utd.co.uk">FC
United of Manchester</a> fixtures, for the first half of the season, into a <a href="http://calendar.google.com/">google
calendar</a>. The official fixtures can be found at either FC United of Manchester's
official <a href="http://www.fc-utd.co.uk">website</a>, or at the Unibond League's
official <a href="http://www.unibondleague.com">website</a>. These are the URLs for
the different ways to access the calendar. 
<ul><li>
iCal - <a href="http://www.google.com/calendar/ical/6nt7o449pblmot0l3ku2d4viak%40group.calendar.google.com/public/basic.ics">iCal
link</a></li><li>
XML - <a href="http://www.google.com/calendar/feeds/6nt7o449pblmot0l3ku2d4viak%40group.calendar.google.com/public/basic">Feed
Link</a></li><li>
Web - <a href="http://www.google.com/calendar/embed?src=6nt7o449pblmot0l3ku2d4viak%40group.calendar.google.com&amp;ctz=Europe/London">Website
Link</a></li></ul>
If you are using a Calendar application that supports the iCal format, use the first
link to subscribe to the calendar.<br />
If you want the calendar to appear in your Feed Reader application, use the XML link.<br />
If you want to view the calendar online, or add it to your own google calendar, use
the Web link.<br />
I will try my best to keep the fixture list up to date, if it is anything like last
year it is going to be hard going.<br />
I have added the results of the first friendly to the calendar.<img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=eba13900-b2fd-4a60-b703-aabcc9cebded" /></body>
      <title>FC United of Manchester Fixtures and Google Calendar</title>
      <guid isPermaLink="false">http://www.aidenweb.co.uk/PermaLink,guid,eba13900-b2fd-4a60-b703-aabcc9cebded.aspx</guid>
      <link>http://www.aidenweb.co.uk/2008/07/12/FCUnitedOfManchesterFixturesAndGoogleCalendar.aspx</link>
      <pubDate>Sat, 12 Jul 2008 15:40:29 GMT</pubDate>
      <description>I have just finished entering the &lt;a href="http://www.fc-utd.co.uk"&gt;FC United of Manchester&lt;/a&gt; fixtures,
for the first half of the season, into a &lt;a href="http://calendar.google.com/"&gt;google
calendar&lt;/a&gt;. The official fixtures can be found at either FC United of Manchester's
official &lt;a href="http://www.fc-utd.co.uk"&gt;website&lt;/a&gt;, or at the Unibond League's
official &lt;a href="http://www.unibondleague.com"&gt;website&lt;/a&gt;. These are the URLs for
the different ways to access the calendar. 
&lt;ul&gt;
&lt;li&gt;
iCal - &lt;a href="http://www.google.com/calendar/ical/6nt7o449pblmot0l3ku2d4viak%40group.calendar.google.com/public/basic.ics"&gt;iCal
link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
XML - &lt;a href="http://www.google.com/calendar/feeds/6nt7o449pblmot0l3ku2d4viak%40group.calendar.google.com/public/basic"&gt;Feed
Link&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
Web - &lt;a href="http://www.google.com/calendar/embed?src=6nt7o449pblmot0l3ku2d4viak%40group.calendar.google.com&amp;amp;ctz=Europe/London"&gt;Website
Link&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
If you are using a Calendar application that supports the iCal format, use the first
link to subscribe to the calendar.&lt;br /&gt;
If you want the calendar to appear in your Feed Reader application, use the XML link.&lt;br /&gt;
If you want to view the calendar online, or add it to your own google calendar, use
the Web link.&lt;br /&gt;
I will try my best to keep the fixture list up to date, if it is anything like last
year it is going to be hard going.&lt;br /&gt;
I have added the results of the first friendly to the calendar.&lt;img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=eba13900-b2fd-4a60-b703-aabcc9cebded" /&gt;</description>
      <comments>http://www.aidenweb.co.uk/CommentView,guid,eba13900-b2fd-4a60-b703-aabcc9cebded.aspx</comments>
      <category>Football</category>
    </item>
    <item>
      <trackback:ping>http://www.aidenweb.co.uk/Trackback.aspx?guid=3b65bdbc-c321-47ca-a94f-57926dd02004</trackback:ping>
      <pingback:server>http://www.aidenweb.co.uk/pingback.aspx</pingback:server>
      <pingback:target>http://www.aidenweb.co.uk/PermaLink,guid,3b65bdbc-c321-47ca-a94f-57926dd02004.aspx</pingback:target>
      <dc:creator>Aiden Montgomery</dc:creator>
      <wfw:comment>http://www.aidenweb.co.uk/CommentView,guid,3b65bdbc-c321-47ca-a94f-57926dd02004.aspx</wfw:comment>
      <wfw:commentRss>http://www.aidenweb.co.uk/SyndicationService.asmx/GetEntryCommentsRss?guid=3b65bdbc-c321-47ca-a94f-57926dd02004</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">I have been meaning to look at <a target="_blank" href="http://ninject.org">Ninject</a> for
a while now, and today I finally got my chance.<br />
I am only using some basic features of <a href="http://ninject.org">Ninject</a> to
replace my normal use of <a target="_blank" href="http://www.martinfowler.com/articles/injection.html#ConstructorInjectionWithPicocontainer">Constructor
Injection</a> that I tend to favour.<br /><p>
This first example is based on the code needed to drive my <a href="http://jquery.com/">jQuery</a> examples.
When I reached the point of requiring server side data, I decided that I wanted to
try out Ninject.
</p><p>
I wanted to load some data using an HttpHandler. I used a handler as I wanted to also
save data using the same URL.<br />
The handler has what might be a PageController, which will determine the action to
take based on the request being an HTTP GET or POST.<br />
The controller itself relies on an implementation of IDataLayer which handles the
data access.
</p><p>
Currently I have only explored the basic binding techniques in <a target="_blank" href="http://ninject.org/">Ninject</a>.
This involves creating a class that specifies the bindings, then registering it with
the Kernel.<br /></p><pre class="codeCSharp">    using System;<br />
using Ninject.Core;<br /><br />
namespace Core.NinjectModules{<br />
public class PeopleModule : StandardModule{<br />
public override void Load(){<br />
Bind<idatalayer>
().To<filebaseddatalayer>
();<br />
Bind<people>
().ToSelf();<br />
}<br />
}<br />
}<br /></people></filebaseddatalayer></idatalayer></pre><p>
This is the binding module for specifying the dependancies of my People class.
</p><pre class="codeCSharp">    using System;<br />
using System.Text;<br />
using Ninject.Core;<br /><br />
namespace Core{<br />
public class People{<br />
IDataLayer _dataAccess;<br /><br />
[Inject]<br />
public People(IDataLayer dataAccess){<br />
_dataAccess = dataAccess;<br />
}<br />
...<br />
}<br />
}<br /></pre><p>
This is the People class and with the single attribute needed to identify to ninject
what to use for injection.
</p><p>
It is using the <a target="_blank" href="http://dojo.ninject.org/wiki/display/NINJECT/Injection+Patterns">constructor
injection</a> feature. I have removed the rest of the implementation of the class
to help with reading.
</p><p>
Ninject offers a set of features specifically for web applications. They can be found
in the Ninject.Frameworks.Web namespace.
</p><p>
From this namespace I used the NinjectHttpApplication and HttpHandlerBase classes.
</p><p>
The NinjectHttpApplication provides the implementation required to attach a ninject
Kernel to your HttpApplication.
</p><p>
It is an abstract class that requires the user to implement a CreateKernel() method,
in which the user initialises the Kernel.<br /></p><pre class="codeCSharp">    using System;<br />
using Ninject.Framework.Web;<br />
using Ninject.Core;<br /><br />
namespace jQueryExamples<br />
{<br />
public class Global : NinjectHttpApplication{<br />
protected override Ninject.Core.IKernel CreateKernel(){<br />
IKernel kernel = new StandardKernel(new Core.NinjectModules.People());<br />
return kernel;<br />
}<br />
}<br />
}<br /></pre><p>
This is all that I needed to register my People module with the ninject Kernel.
</p><p>
I then needed the People controller to be injected into my handler. This is where
the HttpHandlerBase comes into it.
</p><pre class="codeCSharp"><br />
using System;<br />
using System.Web;<br />
using System.Web.Services;<br />
using Core;<br />
using Ninject.Core;<br /><br />
namespace jQueryExamples.handlers{<br /><br />
[WebService(Namespace = "http://tempuri.org/")]<br />
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]<br />
public class people : Ninject.Framework.Web.HttpHandlerBase{<br />
private People _people;<br /><br />
[Inject]<br />
public People PeopleController{<br />
get { return _people; }<br />
set { _people = value; }<br />
}<br /><br />
protected override void DoProcessRequest(HttpContext context){<br />
_people.RequestType = context.Request.RequestType;<br />
string responseText = _people.Process();<br />
context.Response.Clear();<br />
context.Response.Write(responseText);<br />
context.Response.ContentType = "text/xml";<br />
context.Response.StatusCode = 200;<br />
}<br /><br />
public override bool IsReusable{<br />
get { return false; }<br />
}<br />
}<br />
}<br /></pre><p>
This is the entire implimentation of my handler. The People class will be injected
into the handler when it is needed.
</p><p>
That is it for now for ninject. I can do the basics, next I need to learn about the
context specific bindings etc
</p><img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=3b65bdbc-c321-47ca-a94f-57926dd02004" /></body>
      <title>Using Ninject in a Web Application</title>
      <guid isPermaLink="false">http://www.aidenweb.co.uk/PermaLink,guid,3b65bdbc-c321-47ca-a94f-57926dd02004.aspx</guid>
      <link>http://www.aidenweb.co.uk/2008/07/10/UsingNinjectInAWebApplication.aspx</link>
      <pubDate>Thu, 10 Jul 2008 22:44:01 GMT</pubDate>
      <description>I have been meaning to look at &lt;a target="_blank" href="http://ninject.org"&gt;Ninject&lt;/a&gt; for
a while now, and today I finally got my chance.&lt;br&gt;
I am only using some basic features of &lt;a href="http://ninject.org"&gt;Ninject&lt;/a&gt; to
replace my normal use of &lt;a target="_blank" href="http://www.martinfowler.com/articles/injection.html#ConstructorInjectionWithPicocontainer"&gt;Constructor
Injection&lt;/a&gt; that I tend to favour.&lt;br&gt;
&lt;p&gt;
This first example is based on the code needed to drive my &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt; examples.
When I reached the point of requiring server side data, I decided that I wanted to
try out Ninject.
&lt;/p&gt;
&lt;p&gt;
I wanted to load some data using an HttpHandler. I used a handler as I wanted to also
save data using the same URL.&lt;br&gt;
The handler has what might be a PageController, which will determine the action to
take based on the request being an HTTP GET or POST.&lt;br&gt;
The controller itself relies on an implementation of IDataLayer which handles the
data access.
&lt;/p&gt;
&lt;p&gt;
Currently I have only explored the basic binding techniques in &lt;a target="_blank" href="http://ninject.org/"&gt;Ninject&lt;/a&gt;.
This involves creating a class that specifies the bindings, then registering it with
the Kernel.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="codeCSharp"&gt;    using System;&lt;br&gt;
using Ninject.Core;&lt;br&gt;
&lt;br&gt;
namespace Core.NinjectModules{&lt;br&gt;
public class PeopleModule : StandardModule{&lt;br&gt;
public override void Load(){&lt;br&gt;
Bind&lt;idatalayer&gt;
().To&lt;filebaseddatalayer&gt;
();&lt;br&gt;
Bind&lt;people&gt;
().ToSelf();&lt;br&gt;
}&lt;br&gt;
}&lt;br&gt;
}&lt;br&gt;
&lt;/people&gt;
&lt;/filebaseddatalayer&gt;
&lt;/idatalayer&gt;
&lt;/pre&gt;
&lt;p&gt;
This is the binding module for specifying the dependancies of my People class.
&lt;/p&gt;
&lt;pre class="codeCSharp"&gt;    using System;&lt;br&gt;
using System.Text;&lt;br&gt;
using Ninject.Core;&lt;br&gt;
&lt;br&gt;
namespace Core{&lt;br&gt;
public class People{&lt;br&gt;
IDataLayer _dataAccess;&lt;br&gt;
&lt;br&gt;
[Inject]&lt;br&gt;
public People(IDataLayer dataAccess){&lt;br&gt;
_dataAccess = dataAccess;&lt;br&gt;
}&lt;br&gt;
...&lt;br&gt;
}&lt;br&gt;
}&lt;br&gt;
&lt;/pre&gt;
&lt;p&gt;
This is the People class and with the single attribute needed to identify to ninject
what to use for injection.
&lt;/p&gt;
&lt;p&gt;
It is using the &lt;a target="_blank" href="http://dojo.ninject.org/wiki/display/NINJECT/Injection+Patterns"&gt;constructor
injection&lt;/a&gt; feature. I have removed the rest of the implementation of the class
to help with reading.
&lt;/p&gt;
&lt;p&gt;
Ninject offers a set of features specifically for web applications. They can be found
in the Ninject.Frameworks.Web namespace.
&lt;/p&gt;
&lt;p&gt;
From this namespace I used the NinjectHttpApplication and HttpHandlerBase classes.
&lt;/p&gt;
&lt;p&gt;
The NinjectHttpApplication provides the implementation required to attach a ninject
Kernel to your HttpApplication.
&lt;/p&gt;
&lt;p&gt;
It is an abstract class that requires the user to implement a CreateKernel() method,
in which the user initialises the Kernel.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="codeCSharp"&gt;    using System;&lt;br&gt;
using Ninject.Framework.Web;&lt;br&gt;
using Ninject.Core;&lt;br&gt;
&lt;br&gt;
namespace jQueryExamples&lt;br&gt;
{&lt;br&gt;
public class Global : NinjectHttpApplication{&lt;br&gt;
protected override Ninject.Core.IKernel CreateKernel(){&lt;br&gt;
IKernel kernel = new StandardKernel(new Core.NinjectModules.People());&lt;br&gt;
return kernel;&lt;br&gt;
}&lt;br&gt;
}&lt;br&gt;
}&lt;br&gt;
&lt;/pre&gt;
&lt;p&gt;
This is all that I needed to register my People module with the ninject Kernel.
&lt;/p&gt;
&lt;p&gt;
I then needed the People controller to be injected into my handler. This is where
the HttpHandlerBase comes into it.
&lt;/p&gt;
&lt;pre class="codeCSharp"&gt;
&lt;br&gt;
using System;&lt;br&gt;
using System.Web;&lt;br&gt;
using System.Web.Services;&lt;br&gt;
using Core;&lt;br&gt;
using Ninject.Core;&lt;br&gt;
&lt;br&gt;
namespace jQueryExamples.handlers{&lt;br&gt;
&lt;br&gt;
[WebService(Namespace = "http://tempuri.org/")]&lt;br&gt;
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]&lt;br&gt;
public class people : Ninject.Framework.Web.HttpHandlerBase{&lt;br&gt;
private People _people;&lt;br&gt;
&lt;br&gt;
[Inject]&lt;br&gt;
public People PeopleController{&lt;br&gt;
get { return _people; }&lt;br&gt;
set { _people = value; }&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
protected override void DoProcessRequest(HttpContext context){&lt;br&gt;
_people.RequestType = context.Request.RequestType;&lt;br&gt;
string responseText = _people.Process();&lt;br&gt;
context.Response.Clear();&lt;br&gt;
context.Response.Write(responseText);&lt;br&gt;
context.Response.ContentType = "text/xml";&lt;br&gt;
context.Response.StatusCode = 200;&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
public override bool IsReusable{&lt;br&gt;
get { return false; }&lt;br&gt;
}&lt;br&gt;
}&lt;br&gt;
}&lt;br&gt;
&lt;/pre&gt;
&lt;p&gt;
This is the entire implimentation of my handler. The People class will be injected
into the handler when it is needed.
&lt;/p&gt;
&lt;p&gt;
That is it for now for ninject. I can do the basics, next I need to learn about the
context specific bindings etc
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=3b65bdbc-c321-47ca-a94f-57926dd02004" /&gt;</description>
      <comments>http://www.aidenweb.co.uk/CommentView,guid,3b65bdbc-c321-47ca-a94f-57926dd02004.aspx</comments>
      <category>development</category>
      <category>ninject</category>
    </item>
    <item>
      <trackback:ping>http://www.aidenweb.co.uk/Trackback.aspx?guid=89c57c05-e9aa-445c-8fcc-1d398254f2d8</trackback:ping>
      <pingback:server>http://www.aidenweb.co.uk/pingback.aspx</pingback:server>
      <pingback:target>http://www.aidenweb.co.uk/PermaLink,guid,89c57c05-e9aa-445c-8fcc-1d398254f2d8.aspx</pingback:target>
      <dc:creator>Aiden Montgomery</dc:creator>
      <wfw:comment>http://www.aidenweb.co.uk/CommentView,guid,89c57c05-e9aa-445c-8fcc-1d398254f2d8.aspx</wfw:comment>
      <wfw:commentRss>http://www.aidenweb.co.uk/SyndicationService.asmx/GetEntryCommentsRss?guid=89c57c05-e9aa-445c-8fcc-1d398254f2d8</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p style="">
The engine running this blog is <a href="http://www.dasblog.info" title="DasBlog" target="_blank">DasBlog</a> which
does not appear on the list of supported systems for Blogo (<a href="http://drinkbrainjuice.com/support/faq" title="Blogo FAQ" target="_blank">FAQ</a>),
so I was expecting a few things not to work.<br /><br />
I am making a <s>second</s> third test post from Blogo. The first time I posted it
seemed that there was a style added to the initial paragraph which caused my blog
to look strange. This <s>second</s> third post is to confirm that it was in the markup
sent from Blogo.
</p>
        <p style="">
I was tempted not to post this as I could see from the preview that it was going to
do the same thing. I decided to go ahead anyway, so that I had an example of the markup
that it is sending and so that I could figure out how I can save drafts.
</p>
        <p style="">
          <a href="http://www.aidenweb.co.uk/content/binary/unpublished4.jpg">
            <img class="linked-to-original" src="http://www.aidenweb.co.uk/content/binary/unpublished4.jpg" style="margin: 0pt 0pt 10px 10px; display: inline; float: right;" align="right" height="32" width="152" />
          </a>
          <s>This
part of the post was written after saving as a draft.</s> Drafts are posted to DasBlog
without publishing them. This is perfect for me, apart from one small problem when
it comes to editing the saved draft. Well technically the editing of the draft is
nice and simple. Blogo will let you list all of the posts on your blog and allow you
to change the text. The intention is then of course to re-post to the blog and have
the content altered.<br /></p>
        <p style="">
          <a href="http://www.aidenweb.co.uk/content/binary/editingerror2.jpg">
            <img class="linked-to-original" src="http://www.aidenweb.co.uk/content/binary/editingerror2.jpg" style="margin: 0pt 0pt 10px 10px; display: inline; float: right;" align="right" height="81" width="289" />
          </a>On
submitting the edited post I see this error.<br />
I can only assume that something in the DasBlog editing system is not playing well
with Blogo. I have emailed the authors of Blogo to let them know and to find out if
there is any prospect of DasBlog support in the future.<br /></p>
        <p style="">
Not being able to edit my posts from Blogo doesn't completely rule it out right now
as the application seems very nice to work with. It is the first one that I have tried
on the Mac, so I will see how it stands up to the others that I use.
</p>
        <p style="">
The old saying "You only miss it when its gone" applies to a feature that I didn't
realise I was using all that much in Windows Live Writer. Whilst trying to go back
through this post and link up the various references that I could. I found that I
was missing the way that Windows Live Writer handled links. Using the link glossary
had obviously become something that I did without thought. So when trying to link
up all instances of the word Blogo I found myself re-typing the informatin everytime,
rather than selecting the information from a list, which is what I was used to.
</p>
        <p style="">
          <a href="http://www.aidenweb.co.uk/content/binary/linkediting1.jpg">
            <img class="linked-to-original" src="http://www.aidenweb.co.uk/content/binary/linkediting1.jpg" style="margin: 0pt 0pt 10px 10px; display: inline; float: right;" align="right" height="30" width="321" />
          </a>A
slight annoyance was that when trying to add links whilst going along, I found that
I would select the word that I had just typed, add the details for the link, then
carry on typing, it would still think that I was typing the link.
</p>
        <p style="">
Something strange has just happened and I am not sure what the result of posting this
is going to be now. I previewed my post to see what it would look like and it looks
like it is not going to break the layout. Maybe it is because I have images in this
post. More investigation is needed.
</p>
        <p>
[edit:from DasBlog editor]Looks like there are no styles on the paragraphs this time.
A little confusing. Also the images didn't quite upload correctly. I was expecting
them to be thumbnails linking to the full images.
</p>
        <img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=89c57c05-e9aa-445c-8fcc-1d398254f2d8" />
      </body>
      <title>Second (Actually 3rd) Post from Blogo</title>
      <guid isPermaLink="false">http://www.aidenweb.co.uk/PermaLink,guid,89c57c05-e9aa-445c-8fcc-1d398254f2d8.aspx</guid>
      <link>http://www.aidenweb.co.uk/2008/07/09/SecondActually3rdPostFromBlogo.aspx</link>
      <pubDate>Wed, 09 Jul 2008 10:15:20 GMT</pubDate>
      <description>&lt;p style=""&gt;
The engine running this blog is &lt;a href="http://www.dasblog.info" title="DasBlog" target="_blank"&gt;DasBlog&lt;/a&gt; which
does not appear on the list of supported systems for Blogo (&lt;a href="http://drinkbrainjuice.com/support/faq" title="Blogo FAQ" target="_blank"&gt;FAQ&lt;/a&gt;),
so I was expecting a few things not to work.&lt;br&gt;
&lt;br&gt;
I am making a &lt;s&gt;second&lt;/s&gt; third test post from Blogo. The first time I posted it
seemed that there was a style added to the initial paragraph which caused my blog
to look strange. This &lt;s&gt;second&lt;/s&gt; third post is to confirm that it was in the markup
sent from Blogo.
&lt;/p&gt;
&lt;p style=""&gt;
I was tempted not to post this as I could see from the preview that it was going to
do the same thing. I decided to go ahead anyway, so that I had an example of the markup
that it is sending and so that I could figure out how I can save drafts.
&lt;/p&gt;
&lt;p style=""&gt;
&lt;a href="http://www.aidenweb.co.uk/content/binary/unpublished4.jpg"&gt;&lt;img class="linked-to-original" src="http://www.aidenweb.co.uk/content/binary/unpublished4.jpg" style="margin: 0pt 0pt 10px 10px; display: inline; float: right;" align="right" height="32" width="152"&gt;&lt;/a&gt;&lt;s&gt;This
part of the post was written after saving as a draft.&lt;/s&gt; Drafts are posted to DasBlog
without publishing them. This is perfect for me, apart from one small problem when
it comes to editing the saved draft. Well technically the editing of the draft is
nice and simple. Blogo will let you list all of the posts on your blog and allow you
to change the text. The intention is then of course to re-post to the blog and have
the content altered.&lt;br&gt;
&lt;/p&gt;
&lt;p style=""&gt;
&lt;a href="http://www.aidenweb.co.uk/content/binary/editingerror2.jpg"&gt;&lt;img class="linked-to-original" src="http://www.aidenweb.co.uk/content/binary/editingerror2.jpg" style="margin: 0pt 0pt 10px 10px; display: inline; float: right;" align="right" height="81" width="289"&gt;&lt;/a&gt;On
submitting the edited post I see this error.&lt;br&gt;
I can only assume that something in the DasBlog editing system is not playing well
with Blogo. I have emailed the authors of Blogo to let them know and to find out if
there is any prospect of DasBlog support in the future.&lt;br&gt;
&lt;/p&gt;
&lt;p style=""&gt;
Not being able to edit my posts from Blogo doesn't completely rule it out right now
as the application seems very nice to work with. It is the first one that I have tried
on the Mac, so I will see how it stands up to the others that I use.
&lt;/p&gt;
&lt;p style=""&gt;
The old saying "You only miss it when its gone" applies to a feature that I didn't
realise I was using all that much in Windows Live Writer. Whilst trying to go back
through this post and link up the various references that I could. I found that I
was missing the way that Windows Live Writer handled links. Using the link glossary
had obviously become something that I did without thought. So when trying to link
up all instances of the word Blogo I found myself re-typing the informatin everytime,
rather than selecting the information from a list, which is what I was used to.
&lt;/p&gt;
&lt;p style=""&gt;
&lt;a href="http://www.aidenweb.co.uk/content/binary/linkediting1.jpg"&gt;&lt;img class="linked-to-original" src="http://www.aidenweb.co.uk/content/binary/linkediting1.jpg" style="margin: 0pt 0pt 10px 10px; display: inline; float: right;" align="right" height="30" width="321"&gt;&lt;/a&gt;A
slight annoyance was that when trying to add links whilst going along, I found that
I would select the word that I had just typed, add the details for the link, then
carry on typing, it would still think that I was typing the link.
&lt;/p&gt;
&lt;p style=""&gt;
Something strange has just happened and I am not sure what the result of posting this
is going to be now. I previewed my post to see what it would look like and it looks
like it is not going to break the layout. Maybe it is because I have images in this
post. More investigation is needed.
&lt;/p&gt;
&lt;p&gt;
[edit:from DasBlog editor]Looks like there are no styles on the paragraphs this time.
A little confusing. Also the images didn't quite upload correctly. I was expecting
them to be thumbnails linking to the full images.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=89c57c05-e9aa-445c-8fcc-1d398254f2d8" /&gt;</description>
      <comments>http://www.aidenweb.co.uk/CommentView,guid,89c57c05-e9aa-445c-8fcc-1d398254f2d8.aspx</comments>
      <category>blogging</category>
      <category>dasBlog</category>
    </item>
    <item>
      <trackback:ping>http://www.aidenweb.co.uk/Trackback.aspx?guid=1091f3b3-4ac8-4860-8519-68f59eddc05d</trackback:ping>
      <pingback:server>http://www.aidenweb.co.uk/pingback.aspx</pingback:server>
      <pingback:target>http://www.aidenweb.co.uk/PermaLink,guid,1091f3b3-4ac8-4860-8519-68f59eddc05d.aspx</pingback:target>
      <dc:creator>Aiden Montgomery</dc:creator>
      <wfw:comment>http://www.aidenweb.co.uk/CommentView,guid,1091f3b3-4ac8-4860-8519-68f59eddc05d.aspx</wfw:comment>
      <wfw:commentRss>http://www.aidenweb.co.uk/SyndicationService.asmx/GetEntryCommentsRss?guid=1091f3b3-4ac8-4860-8519-68f59eddc05d</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I am currently trying to find some blogging software for my Mac. Even though I had
not used it very often, as you can tell from my lack of posts, I had found Windows
Live Writer to be very nice to use.<br />
I will be posting a number of test posts over the next couple of days, in preparation
for my second attempt at blogging.
</p>
        <img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=1091f3b3-4ac8-4860-8519-68f59eddc05d" />
      </body>
      <title>Testing Post from Blogo</title>
      <guid isPermaLink="false">http://www.aidenweb.co.uk/PermaLink,guid,1091f3b3-4ac8-4860-8519-68f59eddc05d.aspx</guid>
      <link>http://www.aidenweb.co.uk/2008/07/09/TestingPostFromBlogo.aspx</link>
      <pubDate>Wed, 09 Jul 2008 08:14:26 GMT</pubDate>
      <description>&lt;p&gt;
I am currently trying to find some blogging software for my Mac. Even though I had
not used it very often, as you can tell from my lack of posts, I had found Windows
Live Writer to be very nice to use.&lt;br /&gt;
I will be posting a number of test posts over the next couple of days, in preparation
for my second attempt at blogging.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.aidenweb.co.uk/aggbug.ashx?id=1091f3b3-4ac8-4860-8519-68f59eddc05d" /&gt;</description>
      <comments>http://www.aidenweb.co.uk/CommentView,guid,1091f3b3-4ac8-4860-8519-68f59eddc05d.aspx</comments>
    </item>
  </channel>
</rss>