<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>Alan's Development Blog</title>
  <link rel="alternate" type="text/html" href="http://www.gangleri.net/" />
  <link rel="self" href="http://www.gangleri.net/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2011-05-16T18:56:43.32275+01:00</updated>
  <author>
    <name>Alan Bradley</name>
  </author>
  <subtitle />
  <id>http://www.gangleri.net/</id>
  <generator uri="http://www.dasblog.net" version="2.0.7180.0">DasBlog</generator>
  <entry>
    <title>MooTools</title>
    <link rel="alternate" type="text/html" href="http://www.gangleri.net/2011/05/16/MooTools.aspx" />
    <id>http://www.gangleri.net/PermaLink,guid,2dc1d957-1178-42ae-98fe-a618b8acc124.aspx</id>
    <published>2011-05-16T18:56:43.32275+01:00</published>
    <updated>2011-05-16T18:56:43.32275+01:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="mooTools" border="0" alt="mooTools" src="http://www.gangleri.net/content/binary/Windows-Live-Writer/46b636d047ac_12AE3/mooTools_5.png" width="184" height="46" />
        </p>
        <p>
          <a href="http://mootools.net">MooTools</a> is an open source JavaScript library released
under the MIT license that allows you to build your web application entirely in JavaScript
with support for Internet Explorer 6+, FireFox 2+ and Safari 3+. 
</p>
        <p>
The library has a modular structure consisting of the following core modules:
</p>
        <ul>
          <li>
            <a href="#types">Types</a>
          </li>
          <li>
            <a href="#classMgr">Class management</a>
          </li>
          <li>
            <a href="#browser">Browser Interaction</a>
          </li>
          <li>
            <a href="#dom">DOM</a>
          </li>
          <li>
            <a href="#effects">Effects</a>
          </li>
          <li>
            <a href="#networking">Networking</a>
          </li>
          <li>
            <a href="#plugins">MooTools Plugins</a>
          </li>
        </ul>
        <p>
Along with these core modules additional modules can be added in the form of plugins. 
</p>
        <h4>
          <a name="types">Types</a>
        </h4>
        <p>
          <a href="http://mootools.net">MooTools</a> adds extra functionality to the types already
defined in JavaScript using extensions known as 'types'. <a href="http://mootools.net/docs/core/Types/Array">Array</a>, <a href="http://mootools.net/docs/core/Types/String">String</a>, <a href="http://mootools.net/docs/core/Types/Number">Number</a>, <a href="http://mootools.net/docs/core/Types/Function">Function</a> and <a href="http://mootools.net/docs/core/Types/Object">Object</a> all
have had extensions added by <a href="http://mootools.net">MooTools</a>. Alongside
adding extensions to existing JavaScript types <a href="http://mootools.net">MooTools</a> has
adds a new type called <a href="http://mootools.net/docs/core/Types/Event">Event</a>. 
</p>
        <p>
For a full list of functions added by <a href="http://mootools.net">MooTools</a> types
see the online <a href="http://mootools.net/docs/core">documentation</a>. 
</p>
        <h4> 
</h4>
        <h4>
          <a name="classMgr">Class Management</a>
        </h4>
        <p>
          <a href="http://mootools.net">MooTools</a> adds two special properties <em>Extends </em>and <em>Implements. </em>Extends
simulates inheritance and Implements simulates composition.
</p>
        <p>
Extends:
</p>
        <pre class="brush: js;">var Animal = new Class({ 
    initialize: function(age){ 
        this.age = age; 
    } 
}); 

var Dog = new Class({ 
    Extends: Animal, 
    initialize: function(name, age){ 
        this.parent(age); 
        this.name = name; 
    } 
}); 

var snoopy = new Dog('Snoopy', 20); 
alert(myCat.name); 
alert(myCat.age);</pre>
        <p>
Implements:
</p>
        <pre class="brush: js;">var Animal = new Class({ 
    initialize: function(age){ 
        this.age = age; 
    } 
}); 

var Cat = new Class({ 
    Implements: Animal, 
    setName: function(name){ 
        this.name = name 
    } 
}); 

var myAnimal = new Cat(20); 
myAnimal.setName('Micia'); 
alert(myAnimal.name);</pre>
        <p>
 
</p>
        <p>
The problem with using <em>Implements </em>like this is that you still end up with
two distinct classes. However <a href="http://mootools.net">MooTools</a> provides
a Class Method 'implement' that allows you to append the new functionality to an existing
class.
</p>
        <pre class="brush: js;">var Animal = new Class({ 
    initialize: function(age){ 
        this.age = age; 
    }
}); 

Animal.implement({ 
    setName: function(name){ 
        this.name = name; 
    } 
}); 

var myAnimal = new Animal(20); 
myAnimal.setName('Micia'); 

alert(myAnimal.name);</pre>
        <p>
 
</p>
        <h4>
          <a name="browser">Browser Interaction</a>
        </h4>
        <p>
          <a href="http://mootools.net">MooTools</a> provides a <a href="http://mootools.net/docs/core/Browser/Browser">Browser</a> object
that contains a number of properties that return Boolean values. For example you can
check if the current browser is FireFox with the following code.
</p>
        <pre class="brush: js;">alert(Browser.firefox);</pre>
        <p>
Along with checking the browser you can also check the platform, if specific plugins
are present and the presence of features like support for DOM queries using XPath.
</p>
        <h4> 
</h4>
        <h4>
          <a name="dom">DOM</a>
        </h4>
        <p>
          <a href="http://mootools.net">MooTools</a> has similar abilities to <a href="http://jquery.com/">jQuery</a> when
it comes to selecting elements. MooTools uses the <em>document.id("messageBar")</em> this
is aliased with the <em>$</em> function much like <a href="http://jquery.com/">jQuery</a> (just
remember using $ when you're using other JavaScript frameworks could cause in unpredictable
results). The returned element is of type <a href="http://mootools.net/docs/core/Element/Element#Element">Element</a> as
defined in <a href="http://mootools.net">MooTools</a>. If you wish to select multiple
elements <a href="http://mootools.net">MooTools</a> provides the <em>$$</em> function
that returns an array of Element instances. 
</p>
        <p>
The ability to manipulate the DOM is essential for an JavaScript framework and <a href="http://mootools.net">MooTools</a> provides
a number of methods to facilitate this. For example the <em>inject </em>method lets
you inject another element into the body of a selected element. 
</p>
        <p>
Hand in hand with DOM manipulation is event handling and like other frameworks <a href="http://mootools.net">MooTools</a> provides
a mechanism to handle events in a browser independent manner. The <em>addEvents</em> method
can be used to attach multiple event handlers to a single element as follows:
</p>
        <pre class="brush: js;">$('someElement').addEvents({
    mouseover: function(){
        alert('mouseover');
    },
    click: function(){
        alert('click');
    }
});</pre>
        <p>
 
</p>
        <h4>
          <a name="effects">Effects</a>
        </h4>
        <p>
          <a href="http://mootools.net">MooTools</a> provides Fx types that facilitate special
effects these include <a href="http://mootools.net/docs/core/Fx/Fx.Tween">Fx.Tween</a>, <a href="http://mootools.net/docs/core/Fx/Fx.Morph">Fx.Morph</a> and <a href="http://mootools.net/docs/core/Fx/Fx.Transitions">Fx.Transition</a>. 
</p>
        <h5> 
</h5>
        <h5>Fx.Tween
</h5>
        <p>
This can be used to transition any CSS property from one value to another. This example
shows how an element is selected and a Tween is created and applied to the element
in an event handler.
</p>
        <pre class="brush: js;">var elm = $('myElement');
 
var myFx = new Fx.Tween(elm, {
    duration: 'long',
    property: 'background-color'
});
 
 
elm.addEvent('click', function(event){
    myFx.start('#ffffff', '#ff0000');
});</pre>
        <p>
 
</p>
        <h5>Fx.Morph
</h5>
        <p>
Similar to Tween Morph allows for the animation of multiple CSS properties at once.
In the example below the background colour is changed along with the size of the font.
</p>
        <pre class="brush: js;">var elm = $('myElement');
 
 var myEffect = new Fx.Morph(elm, {
    duration: 'long',
    transition: Fx.Transitions.Sine.easeOut
});

elm.addEvent('click', function(event){
 
    myEffect.start({
      'background-color': ['#fff', '#f00'],
      'font-size': [10, 30]
    });
});</pre>
        <h5> 
</h5>
        <h5>Fx.Transition
</h5>
        <p>
By default transitions are linear meaning that the transition will linearly move through
all values terminating at the specified end value for the CSS property. However <a href="http://mootools.net">MooTools</a> also
offers alternatives to simple linear transitions which are all defined in the <a href="http://mootools.net/docs/core/Fx/Fx.Transitions">Fx.Transition</a> type. 
</p>
        <p>
One point worth noting is that the Fx types support chaining therefore you can use
this to create more complex animations.
</p>
        <p>
 
</p>
        <h4>
          <a name="networking">Networking</a>
        </h4>
        <p>
          <a href="http://mootools.net">MooTools</a> provides the <a href="http://mootools.net/docs/core/Request/Request">Request</a> class
that wraps the browsers implementation of <a href="http://en.wikipedia.org/wiki/XMLHttpRequest">XmlHttpRequest</a> so
that you are abstracted from browser specific issues when dealing with <a href="http://en.wikipedia.org/wiki/XMLHttpRequest">XmlHttpRequest</a>.
You simply create an instance of the Request specifying values for a number of options
such as the URL. There are various options available that allow you to specify the
method used to make the request, encoding schemes etc, for a full list see the <a href="http://mootools.net/docs/core/Request/Request">documentation</a>.
Some of these properties can be used to define events that should be called in relation
to the Request such as the <em>onSuccess</em> property.
</p>
        <p>
There are two classes that extend <a href="http://mootools.net/docs/core/Request/Request">Request</a>, <a href="http://mootools.net/docs/core/Request/Request.HTML">Request.HTML</a> and <a href="http://mootools.net/docs/core/Request/Request.JSON">Request.JSON</a>.
These classes are intended to make life easier when calling services that return HTML
and JSON data. They both include the <em>update </em>property that specifies the Id
of the element that should be updated in response to the request. 
</p>
        <p>
The last class worth mentioning in relation to requests is <a href="http://mootools.net/docs/more/Request/Request.JSONP">Request.JSONP</a>.
This class makes it easy to make <a href="http://en.wikipedia.org/wiki/XMLHttpRequest#Cross-domain_requests">cross-domain</a> calls
when using <a href="http://mootools.net">MooTools</a>. 
</p>
        <p>
 
</p>
        <h4>
          <a name="plugins">MooTools Plugins</a>
        </h4>
        <p>
          <a href="http://mootools.net">MooTools</a> plugins are classes that have been written
by core <a href="http://mootools.net">MooTools</a> developers or members of the community
to add functionality to the core library. These plugins are called 'MooTools More'
and can be downloaded from the official site <a title="http://mootools.net/more" href="http://mootools.net/more">http://mootools.net/more</a>.
The More Builder avaliable at this site allows you to select the plugins you would
like to use on your site and it will conveniently bundle these with all required dependencies
ensuring that the plugins will work when added to your site. Once you have downloaded
the plugins you wish to use you must include them in the correct order:
</p>
        <ol>
        </ol>
        <ol>
          <li>
MooTools Core Library 
</li>
          <li>
MooTools More Library 
</li>
          <li>
Your MooTools script 
</li>
        </ol>
        <p>
You can learn more about MooTools More at <a title="http://mootools.net/docs/more" href="http://mootools.net/docs/more">http://mootools.net/docs/more</a>. 
</p>
        <p>
 
</p>
        <h4>Summary
</h4>
        <p>
So the big question is how does <a href="http://mootools.net">MooTools</a> fit in
with existing JavaScript frameworks such as <a href="http://jquery.com/">jQuery</a>.
Well <a href="http://jquery.com/">jQuery</a> is more adapt at DOM and UI manipulation.
However a framework such as <a href="http://mootools.net">MooTools</a> offers better
features in terms of actual JavaScript programming for example the features I mentioned
that add more object-orientated features to JavaScript via <a href="http://mootools.net">MooTools</a>.
So while you'll probably stick with <a href="http://jquery.com/">jQuery</a> for the
majority of client-side coding I think you should keep an eye on other frameworks
such as <a href="http://mootools.net">MooTools</a> as this will give you more power
when you need to write actual JavaScript code and it's easy to combine these frameworks
in your application.
</p>
        <img width="0" height="0" src="http://www.gangleri.net/aggbug.ashx?id=2dc1d957-1178-42ae-98fe-a618b8acc124" />
      </div>
    </content>
  </entry>
  <entry>
    <title>HTML5 Up and Running</title>
    <link rel="alternate" type="text/html" href="http://www.gangleri.net/2011/05/03/HTML5UpAndRunning.aspx" />
    <id>http://www.gangleri.net/PermaLink,guid,d4f2e3e5-874f-4733-9b7f-4dfb6ede2474.aspx</id>
    <published>2011-05-03T22:18:50.5163747+01:00</published>
    <updated>2011-05-03T22:18:50.5163747+01:00</updated>
    <category term="Boo" label="Boo" scheme="http://www.gangleri.net/CategoryView,category,Boo.aspx" />
    <category term="Book" label="Book" scheme="http://www.gangleri.net/CategoryView,category,Book.aspx" />
    <category term="HTML" label="HTML" scheme="http://www.gangleri.net/CategoryView,category,HTML.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="background-image: none; border-right-width: 0px; margin: 0px 0px 20px 20px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="html5-up-and-running" border="0" alt="html5-up-and-running" align="right" src="http://www.gangleri.net/content/binary/Windows-Live-Writer/HTML5-Up-and-Running_FE74/html5-up-and-running_1.jpg" width="187" height="244" />
        </p>
        <p>
Given the hype you might be forgiven for mistaking HTML5 as the 2<sup>nd</sup> coming.
But all joking aside this is a significant step for the web but what does it really
offer web developers? Well this is a question that I feel is answered in <a href="http://oreilly.com/catalog/9780596806033">HTML5
Up and Running</a>.
</p>
        <p>
First thing to point out is that this book at just under 200 pages, is not an in-depth
coverage of all the new features coming with HTML5. But if you're like me and only
want a quick overview to catch-up with current developments in HTML5 this could be
the book for you.
</p>
        <p>
I found this book written and presented in a very clear and friendly manner that made
reading the book enjoyable. The author Mark Pilgrim and there is a little IE bashing
but nothing over the top. While reading it is important to remember that many aspects
of HTML5 are still in development and are therefore subject to change. Having said
this I still think this book is useful. One criticism that I did have is I felt there
was rather too much coverage of the media aspects such as audio and video, this criticism
could be attributed to the type of apps that I find myself building most often.
</p>
        <p>
Personally I enjoyed the coverage on <a href="http://en.wikipedia.org/wiki/Microdata_%28HTML5%29">Microdata</a> and
felt it gave me a nice introduction to get up and running with this feature. Other
useful chapters included the new forms input types and the new tags such as &lt;header&gt;,
&lt;article&gt; and &lt;footer&gt;. Other topics were interesting and well covered.
</p>
        <p>
HTML5 is still evolving but this is a book that could help you catch up quickly but
rather than just taking my word for it you can read the book online for free at: <a title="http://diveintohtml5.org/" href="http://diveintohtml5.org/">http://diveintohtml5.org/</a></p>
        <img width="0" height="0" src="http://www.gangleri.net/aggbug.ashx?id=d4f2e3e5-874f-4733-9b7f-4dfb6ede2474" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Pirates of Silicon Valley</title>
    <link rel="alternate" type="text/html" href="http://www.gangleri.net/2011/04/29/PiratesOfSiliconValley.aspx" />
    <id>http://www.gangleri.net/PermaLink,guid,85620714-39da-46c5-ab25-65499ac5bddb.aspx</id>
    <published>2011-04-29T18:35:22.2819997+01:00</published>
    <updated>2011-04-29T18:35:22.2819997+01:00</updated>
    <category term="film" label="film" scheme="http://www.gangleri.net/CategoryView,category,film.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="background-image: none; border-right-width: 0px; margin: 0px 20px 20px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Pirates of Silicon Valley" border="0" alt="Pirates of Silicon Valley" align="left" src="http://www.gangleri.net/content/binary/Windows-Live-Writer/Pirates-of-Silicon-Valley_10FC8/Pirates%20of%20Silicon%20Valley_3.jpg" width="200" height="240" />
          <a href="http://www.imdb.com/title/tt0168122/">Pirates
of Silicon Valley</a> is quiet an old film now but I've got to see recently. It tells
the early story of Apple and Microsoft as they create the PC industry. First thing
to point out is that this film does not have the same level of production as <a href="http://www.imdb.com/title/tt1285016/">The
Social Network</a> had and as a result at times may feel like a TV movie. However
if you're a geek you'll find this entertaining given the portrayals of the key characters.
I particularly enjoyed John Di Maggio's performance of Steve Ballmer.
</p>
        <p>
Checkout the trailer:
</p>
        <iframe title="YouTube video player" height="390" src="http://www.youtube.com/embed/lEyrivrjAuU?rel=0" frameborder="0" width="480" allowfullscreen="allowfullscreen">
        </iframe>
        <img width="0" height="0" src="http://www.gangleri.net/aggbug.ashx?id=85620714-39da-46c5-ab25-65499ac5bddb" />
      </div>
    </content>
  </entry>
  <entry>
    <title>EBook Management</title>
    <link rel="alternate" type="text/html" href="http://www.gangleri.net/2011/04/27/EBookManagement.aspx" />
    <id>http://www.gangleri.net/PermaLink,guid,ecf1440d-3326-40f1-82df-fd4a328b5063.aspx</id>
    <published>2011-04-27T20:40:20.58325+01:00</published>
    <updated>2011-04-27T20:40:20.58325+01:00</updated>
    <category term="ebook" label="ebook" scheme="http://www.gangleri.net/CategoryView,category,ebook.aspx" />
    <category term="Utility" label="Utility" scheme="http://www.gangleri.net/CategoryView,category,Utility.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.gangleri.net/content/binary/Windows-Live-Writer/EBook-Management_1203A/calibre-logo_2.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 10px 10px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="calibre-logo" border="0" alt="calibre-logo" align="left" src="http://www.gangleri.net/content/binary/Windows-Live-Writer/EBook-Management_1203A/calibre-logo_thumb.png" width="169" height="112" />
          </a>Since
getting my Kindle I've amassed more and more eBooks and one of the best tools I've
found to manage all these books in <a href="http://calibre-ebook.com">Calibre</a>.
This is a free and open-source tool that helps you manage your library of eBooks and
best of all it's available to Windows, Mac and Linux users. 
</p>
        <p>
Calibre is rather like iTunes for your eBook, it allows you to define metadata for
your books such as tags that allow you later to search for books. Alongside helping
you to manage your collection calibre also allows you to convert books to different
formats such as PDF to MOBI. Although the Kindle does support PDF I tend to prefer
converting the PDF to MOBI before dropping it onto my kindle. All of which is very
easily achieved using Calibre.
</p>
        <p>
If you have any eBooks I highly recommend that you check out Calibre. More information
and the latest version can be obtained from: <a title="http://calibre-ebook.com" href="http://calibre-ebook.com">http://calibre-ebook.com</a></p>
        <img width="0" height="0" src="http://www.gangleri.net/aggbug.ashx?id=ecf1440d-3326-40f1-82df-fd4a328b5063" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Java The Good Parts?</title>
    <link rel="alternate" type="text/html" href="http://www.gangleri.net/2011/03/15/JavaTheGoodParts.aspx" />
    <id>http://www.gangleri.net/PermaLink,guid,3ddca861-9470-4b08-8821-60f3fcfde445.aspx</id>
    <published>2011-03-15T18:04:01.545625+00:00</published>
    <updated>2011-03-15T18:04:01.545625+00:00</updated>
    <category term="Book" label="Book" scheme="http://www.gangleri.net/CategoryView,category,Book.aspx" />
    <category term="Java" label="Java" scheme="http://www.gangleri.net/CategoryView,category,Java.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="background-image: none; border-right-width: 0px; margin: 0px 10px 10px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="javaTheGoodParts" border="0" alt="javaTheGoodParts" align="left" src="http://www.gangleri.net/content/binary/Windows-Live-Writer/43e43ed7fb75_E09E/javaTheGoodParts_3.jpg" width="187" height="244" />
        </p>
        <p>
I'm a fan of the effective series of books (<a href="http://www.amazon.co.uk/Effective-Java-Second-Joshua-Bloch/dp/0321356683/ref=sr_1_1?ie=UTF8&amp;qid=1300032733&amp;sr=1-1-spell">Effective
Java</a>, <a href="http://www.amazon.co.uk/Effective-covers-4-0-Specific-Development/dp/0321658701/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1300032769&amp;sr=1-1">Effective
C#</a> etc.)and was therefore looking forward to this book hoping to pick u a few
gems I'd yet to discover. To be blunt I was disappointed. The book is well written
and concise, however having done considerable Java development I found this book more
of a nostalgic reminder of the advances Java had given us when it first appeared in
the late nineteen nineties. 
</p>
        <p>
I think this book <em>might</em> be of use to somebody newer to the Java language
who has already gotten to grips with the basics of the language as it does cover many
of the topics I found I had already learnt with a combination of playing with the
language and reading during my early days programming Java. However for those more
experienced I think <a href="http://http://www.amazon.co.uk/Effective-Java-Second-Joshua-Bloch/dp/0321356683/ref=sr_1_1?ie=UTF8&amp;qid=1300032733&amp;sr=1-1-spell">Effective
Java</a> would be a better investment of your time as I feel any reasonably experienced
Java developer will find very little new information in this book.
</p>
        <img width="0" height="0" src="http://www.gangleri.net/aggbug.ashx?id=3ddca861-9470-4b08-8821-60f3fcfde445" />
      </div>
    </content>
  </entry>
  <entry>
    <title>97 Thing Every Programmer Should Know</title>
    <link rel="alternate" type="text/html" href="http://www.gangleri.net/2011/03/13/97ThingEveryProgrammerShouldKnow.aspx" />
    <id>http://www.gangleri.net/PermaLink,guid,05b8ba41-5f54-481e-a853-4c3035d5d6d6.aspx</id>
    <published>2011-03-13T15:37:00.701875+00:00</published>
    <updated>2011-03-13T15:37:00.701875+00:00</updated>
    <category term="Book" label="Book" scheme="http://www.gangleri.net/CategoryView,category,Book.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="border-right-width: 0px; margin: 0px 0px 20px 20px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="51uSFVY7zjL._SS500_" border="0" alt="51uSFVY7zjL._SS500_" align="right" src="http://www.gangleri.net/content/binary/Windows-Live-Writer/97ThingEveryProgrammerShouldKnow_1258D/51uSFVY7zjL._SS500__3.jpg" width="176" height="244" /> Following
on from "<a href="http://oreilly.com/catalog/9780596522704">97 Things Every Software
Architect Should Know</a>" and the less heard of "<a href="http://oreilly.com/catalog/9780596804152">97
Things Every Project Manager Should Know</a>" is this book full of 97 things we programmers
should know. Born from the same community process this book contains insight from
many of today's best developers cutting code day after day.
</p>
        <p>
Like the other books in this series this book is extremely well written and presented
in a very digestible format as each of the 97 points has a maximum of two pages. This
has lead to a book that is very easy to pick up and read cover to cover while community
to work or even reading one or two points while waiting for a build to complete.
</p>
        <p>
Alongside being a really easy to read book it is also an excellent reference book
and thanks to the well laid out table of contents which can be flicked through very
quickly this is a book that can be used easily to help resolve the occasional cubical
dispute. 
</p>
        <p>
Some of the topics will seem blatantly obvious while other topics were thought provoking
and will maybe bring things more to your attention that you were subconsciously doing.
The book isn't as hard core as other <em>classic</em> titles such as <a href="http://www.pragprog.com/the-pragmatic-programmer">The
Pragmatic Programmer</a>, <a href="http://cc2e.com/">Code Complete</a> and the <a href="http://www-cs-faculty.stanford.edu/~uno/taocp.html">Art
of Computer Programming</a>, I still feel that this is a book that every programmer
should have a go at reading. It isn't that expensive and it's a very easy read so
it won't take up too much of you time and you'll probably pick up a few things to
think about will knocking out code.
</p>
        <img width="0" height="0" src="http://www.gangleri.net/aggbug.ashx?id=05b8ba41-5f54-481e-a853-4c3035d5d6d6" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Rooting Samsung Galaxy i9000 with official Froyo</title>
    <link rel="alternate" type="text/html" href="http://www.gangleri.net/2010/12/15/RootingSamsungGalaxyI9000WithOfficialFroyo.aspx" />
    <id>http://www.gangleri.net/PermaLink,guid,71d27be8-0c79-46c4-a3ed-c1b118f62124.aspx</id>
    <published>2010-12-15T20:48:59.4808747+00:00</published>
    <updated>2010-12-15T20:48:59.4808747+00:00</updated>
    <category term="Android" label="Android" scheme="http://www.gangleri.net/CategoryView,category,Android.aspx" />
    <category term="mobile" label="mobile" scheme="http://www.gangleri.net/CategoryView,category,mobile.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Upgrading to Android 2.2 (Froyo) on the Samsung Galaxy can be a relatively painless
task. Simply follow<img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="Android-2.2-Froyo" border="0" alt="Android-2.2-Froyo" align="right" src="http://www.gangleri.net/content/binary/Windows-Live-Writer/Rooting-Samsung-Galaxy-i9000-with-offici_11915/Android-2.2-Froyo_3.png" width="240" height="224" /> these
steps to get the official upgrade:
</p>
        <ol>
          <li>
Connect your Samsung Galaxy phone to your PC</li>
          <li>
Launch Kies</li>
          <li>
In the Kies taskbar click on the phone icon at the far right to upgrade your phone's
firmware</li>
          <li>
Follow the onscreen instructions 
</li>
        </ol>
        <p>
 
</p>
        <p>
Now that you have upgraded to Froyo you'll also want to root your phone. A quick Google
will reveal a few options for rooting a Samsung Galaxy running Android 2.2. This will
tell you to download a tool such as 'One Click Root' which simply requires you to
click a button to root your phone. However I found after upgrading using the official
upgrade from Samsung this didn't work for me resulting in me getting the error "<em>E:signature
verification failed</em>" 
</p>
        <p>
This seems to be a problem for a number of people based on comments I've read however
not to worry it is still possible to root your phone even if you've used the official
upgrade from Samsung all you need is z4Root. When I rooted my phone I was able to
download this from the Android Market Place however it appears to have been <a href="http://www.google.com/support/forum/p/Android+Market/thread?tid=42b164ff51b2dc3d&amp;hl=en">removed</a> but
you can obtain a copy from <a href="http://forum.xda-developers.com/showthread.php?t=833953">xda-developers</a>.
</p>
        <p>
Once you have downloaded z4Root start the app and click the 'root' button as shown
in the screenshot and that's it you've now rooted your phone.
</p>
        <p>
          <a href="http://www.gangleri.net/content/binary/Windows-Live-Writer/Rooting-Samsung-Galaxy-i9000-with-offici_11915/z4root_2.jpg">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top: 0px; border-right: 0px; padding-top: 0px" title="z4root" border="0" alt="z4root" src="http://www.gangleri.net/content/binary/Windows-Live-Writer/Rooting-Samsung-Galaxy-i9000-with-offici_11915/z4root_thumb.jpg" width="148" height="244" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.gangleri.net/aggbug.ashx?id=71d27be8-0c79-46c4-a3ed-c1b118f62124" />
      </div>
    </content>
  </entry>
  <entry>
    <title>It's Not How Good You Are, It's How Good You Want To Be</title>
    <link rel="alternate" type="text/html" href="http://www.gangleri.net/2010/11/04/ItsNotHowGoodYouAreItsHowGoodYouWantToBe.aspx" />
    <id>http://www.gangleri.net/PermaLink,guid,fa01bb18-32bf-4701-a186-66d6881b6390.aspx</id>
    <published>2010-11-04T20:05:40.7577729+00:00</published>
    <updated>2010-11-04T20:05:40.7577729+00:00</updated>
    <category term="Book" label="Book" scheme="http://www.gangleri.net/CategoryView,category,Book.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="border-right-width: 0px; margin: 0px 20px 20px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="sshot-3" border="0" alt="sshot-3" align="left" src="http://www.gangleri.net/content/binary/Windows-Live-Writer/ItsNotHowGoodYouAreItsHowGoodYouWantToBe_13573/sshot-3_3.png" width="167" height="244" />
        </p>
        <p>
On a recent trip to London I had a bit of time to wander round the <a href="http://www.barbican.org.uk/">Barbican's</a> art
gallery. In there, there's loads of interesting designs for things from seats to buildings.
However one of the most interesting things I found was in the gift shop. It's a small
book with a relatively plain cover, however the very title just jumped out at me "It's
Not How Good You Are, It's How Good You Want To Be". The very attitude in this title
made it jump out more than any fancy cover every could have. 
</p>
        <p>
Steve Jobs once talked about 'how the original Macintosh designers had read 'beautiful
books', well in my opinion this book could fall into such a category. It's the prefect
combination of simple witty writing combined with attractive fonts and good use of
pictures and colours. 
</p>
        <p>
Although the author is from a marketing background there is advice here that's applicable
to anyone from any field especially IT. We all want to improve our ability as programmers
well this quote from the book is very relevant to us "<em>Firstly you need to aim
beyond what you are capable of.</em>"
</p>
        <p>
Another useful comment relates to criticism "<em>It is quite easy to get approval
if we ask enough people, or if we ask those who are likely to tell us what we want
to hear"</em> it goes on to point out how we edit out the bad so that all we hear
is the good stuff that keeps us feeling warm and fuzzy. This book comes from the perspective
of delivering something graphical to a customer and handling that customer, see an
similarities in what we do?
</p>
        <p>
I'll leave you now with my favourite line from the book "<em>If you can't solve a
problem, it's because you're playing by the rules</em>".
</p>
        <img width="0" height="0" src="http://www.gangleri.net/aggbug.ashx?id=fa01bb18-32bf-4701-a186-66d6881b6390" />
      </div>
    </content>
  </entry>
  <entry>
    <title>The Passionate Programmer</title>
    <link rel="alternate" type="text/html" href="http://www.gangleri.net/2010/09/26/ThePassionateProgrammer.aspx" />
    <id>http://www.gangleri.net/PermaLink,guid,7f1d2618-35dd-43cc-aa96-8404f1347b85.aspx</id>
    <published>2010-09-26T11:28:40.578125+01:00</published>
    <updated>2010-09-26T11:28:40.578125+01:00</updated>
    <category term="Book" label="Book" scheme="http://www.gangleri.net/CategoryView,category,Book.aspx" />
    <category term="Career" label="Career" scheme="http://www.gangleri.net/CategoryView,category,Career.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="border-right-width: 0px; margin: 0px 20px 20px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Chad Fowler - The Passionate Programmer" border="0" alt="Chad Fowler - The Passionate Programmer" align="left" src="http://www.gangleri.net/content/binary/WindowsLiveWriter/ThePassionateProgrammer_914A/cfcar2_3.jpg" width="164" height="244" />
        </p>
        <p>
Software development to me is a career that offers an excellent opportunity to be
passionate about what you do. On the flip side it's also easy to slip into a mundane
routine buried beneath layers of bureaucracy in which case your passion fades and
instead to the outstanding career you dreamed of you become an average programmer
drifting from day to day ticking boxes to climb a corporate ladder in the belief that
titles and promotion are the keys to a safe job and happiness. Often this is not the
case many climb the ladder only to find that they were only really happy while writing
code.
</p>
        <p>
If this sounds familiar this is a book you must read! In the music industry recording
artists constantly reinvent themselves to stay relevant in modern times, this is what
has separated the one hit wonders from musical legends that last for decades constantly
massing new fans and producing new material. The same rings true with software development.
The book has an example of a person pinning their entire career on becoming a J2EE
architect the book points out do you really want to pigeonhole yourself into a specific
technology from one specific company?
</p>
        <p>
Another thing developers my fret about is loosing their jobs to cheaper overseas competition,
the book offers very good advice to this prospect by reminding us that the rapid changing
nature of IT was why many of us got into programming in the first place due to the
constant challenge of learning something new. The book suggests embracing the change
to hone your skills and constantly critique where you're at so that you can be ready
for the next change. Just as a company wouldn't try and sell outdated stock make sure
your not caught trying to sell yourself based outdated or unsellable skills. 
</p>
        <p>
The author Chad has a very clear writing style and his analogies between his career
as a programmer and his earlier days as a Jazz musician are informative and an enlightened
way to look at our careers as software developers. I can't recommend the book highly
enough its full of excellent advice and is a very easily read book that won't take
too much of your time but will give you so much.
</p>
        <p>
The book will help you get into the mindset of always looking to improve adding value
to yourself in such away that the outstanding career you dreamed of can become a reality.
As the saying goes "<em>A rolling stone gathers no moss</em>" ensure you're not gathering
moss.  
</p>
        <img width="0" height="0" src="http://www.gangleri.net/aggbug.ashx?id=7f1d2618-35dd-43cc-aa96-8404f1347b85" />
      </div>
    </content>
  </entry>
  <entry>
    <title>PyCon Ireland 2010</title>
    <link rel="alternate" type="text/html" href="http://www.gangleri.net/2010/04/26/PyConIreland2010.aspx" />
    <id>http://www.gangleri.net/PermaLink,guid,a10853a3-a178-44e6-a16f-924798d64976.aspx</id>
    <published>2010-04-26T22:09:45.631375+01:00</published>
    <updated>2010-04-26T22:11:05.131375+01:00</updated>
    <category term="Community event" label="Community event" scheme="http://www.gangleri.net/CategoryView,category,Community%2Bevent.aspx" />
    <category term="Python" label="Python" scheme="http://www.gangleri.net/CategoryView,category,Python.aspx" />
    <content type="html">&lt;img style="border-right-width: 0px; margin: 0px 20px 60px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="pycon001" border="0" alt="pycon001" align="left" src="http://www.gangleri.net/content/binary/WindowsLiveWriter/PyConIreland2010_665B/pycon001_1.png" width="108" height="97" /&gt; 
&lt;p&gt;
On Saturday 17th &amp;amp; Sunday 18th July &lt;a href="http://python.ie" target="_blank"&gt;Python.ie&lt;/a&gt; are
running a two day conference &lt;a href="http://python.ie/pyconireland" target="_blank"&gt;PyCon
2010&lt;/a&gt; at the Dublin School of English.
&lt;/p&gt;
&lt;p&gt;
The early bird registration is great value and is open until 31st May.
&lt;/p&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;
Early bird: &amp;euro;40 
&lt;/li&gt;
&lt;li&gt;
Standard: &amp;euro;60 
&lt;/li&gt;
&lt;li&gt;
On the door: &amp;euro;70 
&lt;/li&gt;
&lt;li&gt;
Extra dinner place: &amp;euro;30 
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="pycon002" border="0" alt="pycon002" align="right" src="http://www.gangleri.net/content/binary/WindowsLiveWriter/PyConIreland2010_665B/pycon002_1.png" width="432" height="120" /&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.gangleri.net/aggbug.ashx?id=a10853a3-a178-44e6-a16f-924798d64976" /&gt;</content>
  </entry>
</feed>
