<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>58bits - tech</title>
	<atom:link href="http://www.58bits.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.58bits.com/blog</link>
	<description>six bits short of sixty four...</description>
	<lastBuildDate>Mon, 07 May 2012 16:19:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>The Long Road Home</title>
		<link>http://www.58bits.com/blog/2011/11/10/the-long-road-home-from-microsoft-to-linux/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-long-road-home-from-microsoft-to-linux</link>
		<comments>http://www.58bits.com/blog/2011/11/10/the-long-road-home-from-microsoft-to-linux/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 03:12:27 +0000</pubDate>
		<dc:creator>Anthony Bouch</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.58bits.com/blog/?p=246</guid>
		<description><![CDATA[I’ve toyed with a few titles for this post, including &#8211; ‘My Kingdom for a Backslash’, or ‘Fish Don’t Know They’re in Water’. In the end I felt ‘The Long Road /home’ was the most fitting. This post is about &#8230; <a href="http://www.58bits.com/blog/2011/11/10/the-long-road-home-from-microsoft-to-linux/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a title="Road Home by William Chew" href="http://www.flickr.com/photos/bombartz/6030034360/" target="_blank"><img class="alignleft size-full wp-image-257" style="border-width: 1px; border-color: black; border-style: solid;" title="Road Home by William Chew" src="http://www.58bits.com/blog/wp-content/uploads/2011/11/road-home1.png" alt="" width="280" height="186" /></a>I’ve toyed with a few titles for this post, including &#8211; ‘My Kingdom for a Backslash’, or ‘Fish Don’t Know They’re in Water’. In the end I felt ‘The Long Road /home’ was the most fitting.</p>
<p>This post is about my thoughts and experiences as a software developer, leading up to my use of Linux and building my first non-Microsoft based Web application.</p>
<h2>In The Begining</h2>
<p>I’m a non-CompSci grad &#8211; having started my academic life with a college diploma in biology (a Canadian community college is the equivalent to what would have been called a ‘polytechnic’ in the UK). After about four years of working as a laboratory assistant, I decided that biology wasn’t for me, and moved into IT.</p>
<p>I started the hard-way – in PC support, and slowly worked my way up from there. I had a couple of lucky breaks along the way, which combined with a lot of hard work, meant that I was eventually able to pass for a ‘nearly’ competent IT professional (whatever that means).<span id="more-246"></span></p>
<p>After several years of ICT related employment (and having overseen a couple of medium sized software projects), I decided that I needed to go back to the coalface, and learn more about software development. I started by writing desktop applications in VB6, followed by <a title="C#" href="http://en.wikipedia.org/wiki/C_Sharp_(programming_language)" target="_blank">C#</a> and <a title="ASP.NET" href="http://en.wikipedia.org/wiki/ASP.NET" target="_blank">ASP.NET</a>. I also sat the required exams for the Microsoft MCSD and MCDBA certifications (.NET versions).</p>
<p>I was firmly in the Microsoft camp. In fact even before my switch from biology to IT, I’d been building XT compatible clones – feeding DOS and Windows floppies into the disk drives of my home-built machines. It all seemed like good fun at the time. Later – having earned some certs, and with a few projects under my belt – I thought I was doing all right, earning okay money on a couple of contracts, and thinking things were generally headed in the right direction.</p>
<h2>Ch-Ch-Ch-Ch-Changes</h2>
<p>But then two things happened. The first was that Microsoft unleashed a wave of frameworks and technology – part of what was then called WinFX, including Longhorn, WPF (Avalon), WCF (Indigo), WWF (its workflow offering). The second was that a few years later I decided to go back to school.</p>
<p>I remember thinking at the time that by going back to school I was simply going to rack-up a decent qualification – something that would help me to progress, and maybe even help prepare for the day when I would hang-up my keyboard and move back into management (or something else altogether). What I hadn’t anticipated, was how hard it was going to be to study as well as stay on top of what was happening in the Microsoft world. Things were changing fast, and I was struggling to keep up. Like some of my contemporaries, I was also trying to stay abreast of the broader trends in software development. I’d started reading some of <a title="Martin Fowler" href="http://en.wikipedia.org/wiki/Martin_Fowler" target="_blank">Fowler’s</a> stuff. And I was reading a lot about the challenges of managing software development projects – challenges that are unique to building systems that reach out and touch all aspects of an organization. I’d read ‘<a title="GoF" href="http://en.wikipedia.org/wiki/Design_Patterns" target="_blank">GoF</a>’, <a title="Kent Beck" href="http://en.wikipedia.org/wiki/Kent_Beck" target="_blank">Kent Beck</a>, <a title="Eric Evans" href="http://domainlanguage.com/" target="_blank">Eric Evans</a> and others. I watched the <a title="TDD" href="http://en.wikipedia.org/wiki/Test-driven_development" target="_blank">TDD</a>, <a title="BDD" href="http://en.wikipedia.org/wiki/Behavior_Driven_Development" target="_blank">BDD</a>, and <a title="Agile" href="http://en.wikipedia.org/wiki/Agile_software_development" target="_blank">Agile</a> zealots rise to glory. I was also following the raging WS-* debate, and beginning to understand the significance of <a title="Roy Fielding" href="http://en.wikipedia.org/wiki/Roy_Fielding" target="_blank">Roy Fielding’s</a> work.</p>
<p>I was beginning to acquire a deeper understanding of the software development process as a whole &#8211; in particular, an appreciation that the major challenges for most projects are not technology related. To this day the two most important texts I’ve read on the topic are <em><a title="The Mythical Man Month" href="http://en.wikipedia.org/wiki/The_Mythical_Man-Month" target="_blank">The Mythical Man Month</a></em> by Frederick P. Books, and <em><a title="PeopleWare" href="http://en.wikipedia.org/wiki/Peopleware:_Productive_Projects_and_Teams" target="_blank">PeopleWare</a></em> by Tom DeMarco. Incredible when you think that <em>The Mythical Man Month</em> was first published in 1975. Read them both, and you’ll understand why they’re important in the field of software and systems.</p>
<p>Somewhere between studying, and trying to keep up with things in general, I began to experiment with Linux. I’d just started a course on computer security – which included Linux and Windows security. Thanks to virtualization technology, spinning-up a desktop Linux VM was a breeze; although apart from using the VMs for a couple of exercises on my course, not at lot happened at this point. I was still a bigoted Microsoft developer, convinced that C# was a ‘real’ developer’s language, and that Linux, Apache, MySQL and PHP were for kids. Actually that’s a little harsh. I wasn’t really bigoted, at least not in the literal sense – but humans are a tribal bunch, and we like to stick to what we know. Often when our beliefs in what we know are challenged, we resort to derision and are dismissive of alternative points of view.</p>
<p>Things began to change when my computer security course started looking at historical operating systems, combined with some basic principles of machine organization and computing. It was then that I realized my entire frame of reference in computing had been shaped by the tools, messages and strategy coming from Redmond. It was a myopic point of view. I discovered that a lot of the messages coming out of Microsoft were simply re-hashed versions that had originated elsewhere, and were designed to keep people on its platform. When Microsoft decided it was time to push a point of view that suited its technology, it did; and as far as message delivery goes – it excels at it. Remember the ‘impedance mismatch’ between general purpose programming languages and SQL? That was the <em>message de jour</em> when LINQ was released. Why not earlier? It was weird to see so many Microsofties ‘on message’ at the time.</p>
<p>Of course Redmond wasn’t the only thing influencing my cognitive map of software development. My ‘up-to-date’ view of what was going on in the development community was shaped largely by the list of RSS blog feeds I’d subscribed to. I learned a veritable ton from excellent bloggers and technical writers. But I was also becoming suspicious of a smaller group of writers whose mandate was clearly one of self-promotion, and who had little interest in helping the development community at large. Whether this is unique to the Microsoft development community or not – I was getting tired of the BS, troll-baiting, and general angst and confusion that seemed to be the result of mixed messages from the so called ‘thought leaders’ in the community. <a title="Rob Conery" href="http://wekeroad.com/" target="_blank">Rob Conery</a> made a comment at one point that (paraphrased) the level angst and confusion surrounding data access – “is just weird” – and he was right. Remember the open letter to Microsoft &#8211; ‘<a href="http://efvote.wufoo.com/forms/z7x3p9/" target="_blank">ADO .NET Entity Framework Vote of No Confidence</a>’? What better example of the level of hyperbole that exists between Microsoft and its community developers (acknowledging that the intent of the letter was to try and help the tool evolve). And then there was Scott Bellware.</p>
<p>Another important event in my transition from a Microsoft-only approach was when I attended my first <a title="Barcamp" href="http://en.wikipedia.org/wiki/BarCamp" target="_blank">Barcamp</a> developers’ conference here in Bangkok. I was impressed with the energy and enthusiasm shown by the small army of open source software developers I’d met there. I wasn’t quite ready to put on my <a title="Richard Stallman" href="http://en.wikipedia.org/wiki/Richard_Stallman" target="_blank">Richard Stallman</a> acolyte’s robe (it turns out not many are, but that’s a different story) &#8211; but there was some very cool stuff going on. I also couldn’t help but notice that many of the successful Microsoft open source projects, were in fact ports of successful projects that had come from other languages and platforms; like Lucene, Hibernate, and Velocity to name a few.</p>
<p>The tipping point came when I was involved in a large .NET project that can only be described as the quintessential death-march. Death-march projects aren’t unique to users of Microsoft technology – but this one happened to be using those tools. And no one in the organization had heard of <a title="Richard Stallman" href="http://en.wikipedia.org/wiki/Richard_Stallman" target="_blank">Richard Stallman</a>, or <a title="REST" href="http://en.wikipedia.org/wiki/Representational_state_transfer" target="_blank">REST</a>, or had even the slightest interest in Agile; not that those alone are the basis for establishing the maturity of a software development team, but it was an indication that the team, like a lot of other teams, had been living in the Microsoft echo-chamber for too long. For me personally – it was hard – really hard. And most of what was hard had nothing to do with writing code. There were problems in requirements, which had led to classical problems of oversight and late realizations – the stuff of any difficult project. But what I found interesting in hindsight was the level of friction in tools, frameworks, testing and deployment – all of which conspired to fight against each other, creating an exhausting drag on the project.</p>
<h2>Lessons Learned</h2>
<p>After a bruising project, it was time to complete my studies and write my thesis. I’d sworn privately, that I would never allow myself to become worn-down or as affected by any project ever again – even if it meant a fundamental change in direction (although not quite ready for <a title="Mark Pilgrim" href="http://www.hanselman.com/blog/410GoneThoughtsOnMarkDiveintomarkPilgrimsAndWhysInfosuicides.aspx" target="_blank">410 Gone</a>).  Fortunately, my next role was a fairly low-stress part-time engagement, which allowed me to devote the rest of my time to writing my final report. What transpired over the course of those happy nine months was that I built and deployed a Linux-based production server, and wrote my first Web application based on an open source framework.</p>
<p>And after all of that, this is what I’ve learned:</p>
<p>First, <a title="Linux" href="http://en.wikipedia.org/wiki/Linux" target="_blank">Linux</a>, <a title="Apache HTTP Server" href="http://httpd.apache.org/" target="_blank">Apache</a>, <a title="PostgreSQL" href="http://www.postgresql.org/" target="_blank">PostgreSQL</a> and <a title="PHP" href="http://www.php.net/" target="_blank">PHP</a> are not (just) for kids. Linux has turned out to be the lion of the Internet. Look at the latest <a title="Netcraft" href="http://news.netcraft.com/archives/category/web-server-survey/" target="_blank">Netcraft Webserver survey</a> &#8211; 65% of the Web is powered by the <a title="Apache HTTP Server" href="http://httpd.apache.org/" target="_blank">Apache HTTP Server</a>. Back in the late 90s and for most of the 2000s (and while Microsoft was still mucking around with IIS4, 5 and 6), the Apache HTTP Server community was benefiting from a world class webserver (with a real url re-write module) along with all of the other tools and technology that fit together to form seamless and frictionless development and deployment environments (before Microsoft developers even began talking about ‘friction’ in their projects). I’ve come to realize that what’s happening now in the *nix world is simply too big to ignore, and I don’t think I would work for, or consider hiring, anyone that didn’t possess at least a rudimentary understating of this fact.</p>
<p>Second, I mentioned above that the major challenges for most projects are not technology related. In one of the first texts I’d read by <a title="Martin Fowler" href="http://en.wikipedia.org/wiki/Martin_Fowler" target="_blank">Fowler</a>, he describes three fundamental risks to any project: 1) requirements risk, 2) skills risk, and 3) technology risk. I think requirements and skills risks conspire to create the most trouble for any project, but technology is still important. Successful projects can be, and are, run using Microsoft technology, but remember this: Microsoft’s only objective is to sell software licenses, and to do what ever is required to continue to sell software licenses. And that is all. It’s a company that has been arguably over-compensated for decades from a license-based revenue stream that is the result of its dominance in the desktop computer market. Nor has Microsoft been shy about using its position of dominance to destroy competition, and in the process, innovation. Its attempt to ‘create’ a developer community is a top-down effort and is the antithesis of how communities should be formed. The developer division in Redmond still largely decides what the strategy will be for the development of Microsoft-based frameworks and technology. When compared to the level of activity and innovation in other communities, it might be reasonable to describe a dependency on the Microsoft platform as a technological risk – both in terms of vendor lock-in, and in terms of the maturity of the development community as a whole; and that these risks should be assessed as with any other risk to a project. If a project is at a stage where it can freely choose its underlying technology, then I believe there are healthier tools and communities in the non-Microsoft world. Two great cases in point are the <a title="Ruby" href="http://www.ruby-lang.org/en/" target="_blank">Ruby</a> and <a title="Node.js" href="http://nodejs.org/" target="_blank">Node.js</a> communities on <a title="Github" href="https://github.com/" target="_blank">GitHub</a> (and elsewhere). Looking at the speed of development and contributions to either of these communities, and it’s clear that while feathers might still be ruffled – good projects and tools quickly rise to the top, while mediocre projects fall to the side. It’s fascinating to watch.</p>
<p>Third, anecdotal evidence suggests that as many as 70% of all software projects fail to meet their stated objectives. It’s not a fun industry to work in, and death-march projects will continue to exist in all of the major technological camps. The success of any project will be determined by a subtle combination of maturity, experience and insight along with realistic estimates of the ‘true’ cost of creating or implementing software based solutions. In theory, the up-front analysis of a project is meant to be ‘technology agnostic’. In practice, most shops are in one technological camp or another. I think at this point however, at least one indicator of the likely maturity and experience of a potential supplier, or team – is their genuine willingness to consider a range of technologies and solutions including open source platforms and tools like <a title="Linux" href="http://en.wikipedia.org/wiki/Linux" target="_blank">Linux</a>, <a title="PostgreSQL" href="http://www.postgresql.org/" target="_blank">PostgreSQL</a>, <a title="PHP" href="http://www.php.net/" target="_blank">PHP</a>, <a title="Python" href="http://www.python.org/" target="_blank">Python</a> and <a title="Ruby" href="http://www.ruby-lang.org/en/" target="_blank">Ruby</a> to name a few.</p>
<p>Fourth, I wish I’d started my career in software development at the &#8216;web-face&#8217;, maybe as a Perl/CGI scripter.</p>
<p>Over the coming months I’ll be publishing a series of blog posts on how I got started with <a title="Linux" href="http://en.wikipedia.org/wiki/Linux" target="_blank">Linux</a>, <a title="Vim" href="http://www.vim.org/" target="_blank">Vim</a>, and a bunch of other tools that, for me at least, made computing fun again.</p>
<p>Stay tuned…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.58bits.com/blog/2011/11/10/the-long-road-home-from-microsoft-to-linux/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>iPhone 4S and NFC</title>
		<link>http://www.58bits.com/blog/2011/10/13/iphone-4s-and-nfc/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=iphone-4s-and-nfc</link>
		<comments>http://www.58bits.com/blog/2011/10/13/iphone-4s-and-nfc/#comments</comments>
		<pubDate>Thu, 13 Oct 2011 07:21:36 +0000</pubDate>
		<dc:creator>Anthony Bouch</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://www.58bits.com/blog/?p=221</guid>
		<description><![CDATA[This link to Macworld was sent to me by a colleague &#8211; &#8220;iPhone 4S: Why no NFC chip?&#8220;. I think it&#8217;s another excellent example of editorial polyfiller. How can a market be created for NFC technology &#8211; without handsets that &#8230; <a href="http://www.58bits.com/blog/2011/10/13/iphone-4s-and-nfc/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This link to Macworld was sent to me by a colleague &#8211; &#8220;<a href="http://www.macworld.co.uk/iPad-iPhone/news/index.cfm?newsid=3309226" target="_blank">iPhone 4S: Why no NFC chip?</a>&#8220;. I think it&#8217;s another excellent example of editorial polyfiller. How can a market be created for NFC technology &#8211; without handsets that support NFC?</p>
<p>I think the decision not to include NFC technology in the iPhone 4S was based on two factors.<span id="more-221"></span></p>
<p>The first, was that Apple was likely catering to the wishes of the two major US mobile carriers &#8211; AT&amp;T and Verizon.  NFC technology punches another large hole in the influence mobile operators will have over handset technology and services. And almost all of the major carriers around the world have tried at some point to leverage their network and account/payment/billing infrastructure in order to tie customers to their business. Remember when you were going to be able to buy a coke from a vending machine by just entering your mobile number? And then there was M-Pay in the UK. Most schemes have failed &#8211; but the mobile operators are still trying. And they&#8217;ve had a huge influence on handset design as a result. Verizon refused to sell handsets that had WiFi initially. What they want is for everything to go through their network &#8211; and ideally their billing infrastructure too. But they stink at it. WiFi allows handset owners to bypass the mobile network, and so will NFC. So this is probably a last gasp by the mobile operators in the States to try and continue to own the &#8216;smart-card&#8217; (aka SIM card) and see if they can come up with an alternative scheme using existing hardware/infrastructure in the meantime.</p>
<p>The second reason is that Apple probably don&#8217;t mind having a &#8220;significant feature&#8221; to add to their upgrade path.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.58bits.com/blog/2011/10/13/iphone-4s-and-nfc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>John Seddon &#8211; Re-thinking IT keynote speech part 1</title>
		<link>http://www.58bits.com/blog/2011/10/01/john-seddon-re-thinking-it-keynote-speech-part-1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=john-seddon-re-thinking-it-keynote-speech-part-1</link>
		<comments>http://www.58bits.com/blog/2011/10/01/john-seddon-re-thinking-it-keynote-speech-part-1/#comments</comments>
		<pubDate>Sat, 01 Oct 2011 06:47:18 +0000</pubDate>
		<dc:creator>Anthony Bouch</dc:creator>
				<category><![CDATA[Enterprise]]></category>

		<guid isPermaLink="false">http://www.58bits.com/blog/?p=198</guid>
		<description><![CDATA[Brilliant &#8211; a must watch for all systems people and managers&#8230;]]></description>
			<content:encoded><![CDATA[<p>Brilliant &#8211; a must watch for all systems people and managers&#8230;</p>
<p><iframe src="http://www.youtube.com/embed/hbNsQFd8DQw" frameborder="0" width="80%" height="250"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.58bits.com/blog/2011/10/01/john-seddon-re-thinking-it-keynote-speech-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Master&#8217;s Thesis</title>
		<link>http://www.58bits.com/blog/2011/09/25/masters-thesis/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=masters-thesis</link>
		<comments>http://www.58bits.com/blog/2011/09/25/masters-thesis/#comments</comments>
		<pubDate>Sun, 25 Sep 2011 09:13:50 +0000</pubDate>
		<dc:creator>Anthony Bouch</dc:creator>
				<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.58bits.com/blog/?p=176</guid>
		<description><![CDATA[I completed my master&#8217;s degree in information security from Royal Holloway, University of London this May. It took a little while for the results to come out, and to be sure that my thesis had been accepted and graded accordingly. &#8230; <a href="http://www.58bits.com/blog/2011/09/25/masters-thesis/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-177" title="Royal Holloway" src="http://www.58bits.com/blog/wp-content/uploads/2011/09/image001.png" alt="" width="185" height="53" />I completed my master&#8217;s degree in information security from Royal Holloway, University of London this May. It took a little while for the results to come out, and to be sure that my thesis had been accepted and graded accordingly.</p>
<p>Now that I&#8217;m in the clear, I&#8217;m able to publish the report online &#8211; which can be found here at the following link - <a title="3-D Secure: A critical review of 3-D Secure and its effectiveness in preventing card not present fraud" href="http://www.58bits.com/thesis/3-D_Secure.html" target="_blank">3-D Secure: A critical review of 3-D Secure and its effectiveness in preventing card not present fraud</a>. It can be read as HTML, or downloaded in PDF form (with larger figures and illustrations) from <a title="3-D Secure: A critical review of 3-D Secure and its effectiveness in preventing card not present fraud" href="http://www.58bits.com/thesis/3-D_Secure.pdf">here</a>. I think the <a title="Executive Summary" href="http://www.58bits.com/thesis/3-D_Secure.html#_Toc290908589" target="_blank">executive summary</a>, <a title="Introduction" href="http://www.58bits.com/thesis/3-D_Secure.html#_Toc290908590" target="_blank">introduction</a> and <a title="Conclusion" href="http://www.58bits.com/thesis/3-D_Secure.html#_Toc290908658" target="_blank">conclusion</a> read fairly well, and might be of general interest.</p>
<p>In another life &#8211; I&#8217;d love to spend more time on human computer interaction for security related tasks (HCI-Sec). It&#8217;s a fascinating field and I found some really interesting material on the topic.</p>
<p>I also wanted to say thank you to all of those who participated in the survey; in particular to Paul Stack (@stack72 ) and Craig Murphy (@CAMURPHY) for helping to drum-up participants.</p>
<p>Enjoy&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.58bits.com/blog/2011/09/25/masters-thesis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Best Mac OS X Utilities</title>
		<link>http://www.58bits.com/blog/2011/09/24/the-best-mac-os-x-utilities/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-best-mac-os-x-utilities</link>
		<comments>http://www.58bits.com/blog/2011/09/24/the-best-mac-os-x-utilities/#comments</comments>
		<pubDate>Sat, 24 Sep 2011 05:51:28 +0000</pubDate>
		<dc:creator>Anthony Bouch</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[utilities]]></category>

		<guid isPermaLink="false">http://www.58bits.com/blog/?p=154</guid>
		<description><![CDATA[Having recently joined the &#8216;cult of Apple&#8217; &#8211; here&#8217;s what I consider to be the minimum required set of Mac OS X utilities and helper applications for any Mac OS X installation: Quicksilver: This application launcher is the business. It&#8217;s &#8230; <a href="http://www.58bits.com/blog/2011/09/24/the-best-mac-os-x-utilities/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.58bits.com/blog/wp-content/uploads/2011/09/Apple-logo.png"><img class="alignleft size-full wp-image-155" style="border-style: initial; border-color: initial; border-width: 0px;" title="Apple-logo" src="http://www.58bits.com/blog/wp-content/uploads/2011/09/Apple-logo.png" alt="Mac OS X" width="152" height="186" /></a>Having recently joined the &#8216;cult of Apple&#8217; &#8211; here&#8217;s what I consider to be the minimum required set of Mac OS X utilities and helper applications for any Mac OS X installation:</p>
<ol>
<li><a title="Quicksilver" href="http://www.blacktree.com/" target="_blank">Quicksilver</a>: This application launcher is <em>the</em> business. It&#8217;s been around for ages, and does what it says on the tin. It looks a lot like &#8216;Gnome Do&#8217;, and I love it. A very fast, and very convenient way to launch apps, scripts, open documents and a lot more. It&#8217;s also free. An alternative to <a title="Quicksilver" href="http://www.blacktree.com/" target="_blank">Quicksilver</a> is <a title="Alfred" href="http://www.alfredapp.com/" target="_blank">Alfred</a> &#8211; which also looks nice &#8211; although I&#8217;ve yet to take it for a spin.</li>
<li><a title="Pathfinder" href="http://www.cocoatech.com/" target="_blank">Pathfinder from Cocoatech</a>: Cocoatech calls this &#8220;The Finder, reinvented&#8221; &#8211; and it&#8217;s nothing less than that. For me &#8211; it takes all the pain out of Finder, and creates a file and folder management shell that reminds me of Total Commander for Windows. Having folders sort before files should be part of Mac OS X out-of-the-box &#8211; but for some strange reason it isn&#8217;t. <a title="PathFinder" href="http://www.cocoatech.com/" target="_blank">Pathfinder</a> takes care of that nicely. There&#8217;s also an excellent split window view, preview view, and options to override all of the default key-binding behaviors &#8211; including &#8216;Enter to Launch&#8217; as opposed to renaming a file or folder. Most importantly for hi-res displays &#8211; all the standard View Options are available, allowing you to change font and icon size to suit. I can barely use a Mac without it and it&#8217;s well worth the price of admission.<span id="more-154"></span></li>
<li><a title="Little Snitch" href="http://www.obdev.at/products/littlesnitch/index.html" target="_blank">Little Snitch</a>: This is a great utility that tells you when any software installed on your Mac is trying to &#8216;call home&#8217;. It&#8217;s the opposite of a Firewall. Instead of preventing stuff from &#8216;coming in&#8217; to your computer &#8211; <a title="Little Snitch" href="http://www.obdev.at/products/littlesnitch/index.html" target="_blank">Little Snitch</a> will tell you whenever an app is trying to &#8216;get out&#8217; &#8211; and allow you to decide if you want to allow it to or not. The network monitor that comes with Little Snitch is brilliant. If you&#8217;ve ever wondered what was causing all of your network activity, when you weren&#8217;t actually using your computer, <a title="Little Snitch" href="http://www.obdev.at/products/littlesnitch/index.html" target="_blank">Little Snitch</a> will tell you.</li>
<li><a title="iStats Menu" href="http://bjango.com/mac/istatmenus/" target="_blank">iStats Menu from bjango</a>: Want to keep an eye on memory usage, disk activity, cpu activity and system or cpu temperature? <a title="iStats Menu" href="http://bjango.com/mac/istatmenus/" target="_blank">iStats Menu</a> will do that nicely thanks. I discovered iStats menu after looking for a simple hard disk activity light. I wanted to know when my disk was idle, or reading, or writing (and potentially thrashing). Activity monitor does a good job &#8211; but <a title="iStats Menu" href="http://bjango.com/mac/istatmenus/" target="_blank">iStats Menu</a> had so many nice features and extras packed into the app that I forked-out for it. As a bonus &#8211; I really like their menu bar clock, and additional world clocks that can be added to the drop-down. Another utility app that&#8217;s well worth the price of admission.</li>
<li><a title="Tunnelblick" href="http://code.google.com/p/tunnelblick/" target="_blank">Tunnelblick</a>: For road-warriors that need access to their small office, or corporate virtual private networks (VPNs) <a title="Tunnelblick" href="http://code.google.com/p/tunnelblick/" target="_blank">Tunnelblick</a> will do nicely. Tunnelblick is an OpenVPN client. It&#8217;s super stable, easy to set-up and works great. The only catch of course is that your office or corporate VPN must be an <a title="OpenVPN" href="http://www.openvpn.net/" target="_blank">OpenVPN</a> SSL based VPN (as opposed to say an IPSec VPN). Most modern day firewalls support OpenVPN and so you may be using an OpenVPN without knowing it. Contact your IT or systems support people to find-out, and recommend <a title="Tunnelblick" href="http://code.google.com/p/tunnelblick/" target="_blank">Tunnelblick</a> to them if you&#8217;re using an OpenVPN.</li>
<li><a title="TrueCrypt" href="http://www.truecrypt.org/" target="_blank">TrueCrypt</a>: Everyone should have some sort of personal information security strategy &#8211; although most people don&#8217;t, or are relying on paid-for utility apps and 3rd party browser plugins. I couldn&#8217;t do the topic justice in a short post like this suffice to say that it&#8217;s kind of important to know where you are keeping your sensitive information like bank account details, web site logins and passwords, software registration details and serial numbers etc. Mac OS X ships with FileVault and this is likely to be a practical solution for full disk encryption on a Mac &#8211; although I&#8217;ve not yet tried it. I like <a title="TrueCrypt" href="http://www.truecrypt.org/" target="_blank">TrueCrypt</a> a lot because it allows me to create a single &#8216;confidential&#8217; volume that I can take with me, and mount on any system that supports <a title="TrueCrypt" href="http://www.truecrypt.org/" target="_blank">TrueCrypt</a> - and that means Windows, Linux, and Mac OS X. The only downside to <a title="TrueCrypt" href="http://www.truecrypt.org/" target="_blank">TrueCrypt</a>, is that it&#8217;s not quite as user friendly as I&#8217;d like it to be on the Mac. Before you can install it you need something called <a title="FUSE" href="http://en.wikipedia.org/wiki/Filesystem_in_Userspace" target="_blank">FUSE</a>. To quote WikiPedia &#8211;  &#8221;Filesystem in Userspace (FUSE) is a loadable kernel module for Unix-like computer operating systems that lets non-privileged users create their own file systems without editing kernel code.&#8221; OK &#8211; so you don&#8217;t really have to know what that means &#8211; suffice to say that you need FUSE installed before you can install TrueCrypt. And <a title="MacFUSE" href="http://en.wikipedia.org/wiki/Filesystem_in_Userspace" target="_blank">MacFUSE</a> will do just the trick.</li>
<li><a title="ClamXav" href="http://www.clamxav.com/" target="_blank">ClamXav</a>: This might be a somewhat risky recommendation &#8211; but I don&#8217;t want any anti-virus software running on my computer.  By running, I mean any real-time monitoring or background processing that will take up CPU cycles, or interfere with the general performance of my computer. What I want is an on-demand anti-virus scanner that I can use whenever anyone hands me a disk, or when I download a file from the internet. <a title="ClamXav" href="http://www.clamxav.com/" target="_blank">ClamXav</a> lets me do just that. <a title="ClamXav" href="http://www.clamxav.com/" target="_blank">ClamXav</a> is a graphical front-end to the <a title="ClamAV" href="http://www.clamav.net/lang/en/" target="_blank">OpenSource ClamAV</a> virus scanning system that is used on many mail gateways and servers on the Internet. I love <a title="ClamXav" href="http://www.clamxav.com/" target="_blank">ClamXav</a>&#8216;s interface &#8211; it&#8217;s simple to use, and also does what it says on the tin. If you <em><strong>do</strong></em> want real-time file system monitoring, <a title="ClamXav" href="http://www.clamxav.com/" target="_blank">ClamXav</a> has an option to turn on sentry monitor &#8211; which will do that for you.</li>
<li><a title="AppCleaner" href="http://www.freemacsoft.net/" target="_blank">AppCleaner</a>: Mac OS X doesn&#8217;t have a default &#8216;application uninstall&#8217; subsystem, nor do many apps that you install by dragging into the Applications folder have an uninstall option (which is a little weird). There are a couple of application removal tools. <a title="AppCleaner" href="http://www.freemacsoft.net/" target="_blank">AppCleaner</a> which is free, and appears to do the job. There&#8217;s also <a title="AppZapper" href="http://appzapper.com/" target="_blank">AppZapper</a> which looks good as well, but is not free.</li>
<li><a title="SuperDuper" href="http://www.shirt-pocket.com/SuperDuper/SuperDuperDescription.html" target="_blank">SuperDuper</a>: Two popular file based backup utilities for Mac OS X are <a title="SuperDuper" href="http://www.shirt-pocket.com/SuperDuper/SuperDuperDescription.html" target="_blank">SuperDuper</a> and <a title="Carbon Copy Cloner" href="http://www.bombich.com/" target="_blank">Carbon Copy Cloner</a>. I was tempted to use my own <a title="rsync" href="http://www.samba.org/ftp/rsync/rsync.html" target="_blank">rsync</a> script &#8211; but <a title="SuperDuper" href="http://www.shirt-pocket.com/SuperDuper/SuperDuperDescription.html" target="_blank">SuperDuper</a> was nice and clean, simple to use, allows for pre- and post-processing scripts &#8211; and will make the sync&#8217;d external backup disk bootable as well.</li>
</ol>
<div>And that&#8217;s it. So far I&#8217;m loving my new MacBook Pro. Having a certified UNIX OS and all of the native userland FreeBSD and GNU tools under the hood is fantastic (and a topic I&#8217;ll have more to say about soon).</div>
]]></content:encoded>
			<wfw:commentRss>http://www.58bits.com/blog/2011/09/24/the-best-mac-os-x-utilities/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A Beautiful Developer’s Font</title>
		<link>http://www.58bits.com/blog/2011/03/15/a-beautiful-developer%e2%80%99s-font/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-beautiful-developer%25e2%2580%2599s-font</link>
		<comments>http://www.58bits.com/blog/2011/03/15/a-beautiful-developer%e2%80%99s-font/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 15:34:52 +0000</pubDate>
		<dc:creator>Anthony Bouch</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.58bits.com/blog/2011/03/15/A+Beautiful+Developers+Font.aspx</guid>
		<description><![CDATA[I’ve been experimenting with the development environment of my Linux setup recently. I’m running two virtual machines via VMWare Workstation from my Windows 7 PC. One is an Ubuntu 10.10 install using the Gnome desktop, and the other is openSUSE &#8230; <a href="http://www.58bits.com/blog/2011/03/15/a-beautiful-developer%e2%80%99s-font/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.58bits.com/blog/wp-content/uploads/2011/03/fonts_34.png"><img class="alignleft size-full wp-image-205" style="border-width: 1px; border-color: black; border-style: solid;" title="fonts_34" src="http://www.58bits.com/blog/wp-content/uploads/2011/03/fonts_34.png" alt="" width="305" height="253" /></a>I’ve been experimenting with the development environment of my Linux setup recently. I’m running two virtual machines via VMWare Workstation from my Windows 7 PC. One is an <a href="http://www.ubuntu.com/" target="_blank">Ubuntu 10.10</a> install using the Gnome desktop, and the other is <a href="http://www.opensuse.org/en/" target="_blank">openSUSE 11.4</a> using the KDE Plasma desktop.</p>
<p align="left">I’m also using <a href="http://www.vim.org/" target="_blank">Vim</a> – which I have to say, I’m liking a lot (my dotfiles and Vim settings, plugins etc. are <a href="https://github.com/58bits/dotfiles" target="_blank">here</a>). I’m also trying to synchronise settings between each machine, ideally using the same terminal and font settings. On Linux this has been a challenge since Gnome and KDE handle fonts a little differently. Gnome has also made the <a href="http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines#Color_Palette" target="_blank">Tango project and theme</a> its default for the Gnome Terminal emulator. This is a great colour theme that softens system colours using a more ‘pastel’ palette. However in order to get this to work under KDE you need to download the following <a href="http://kde-apps.org/content/show.php/Tango+Konsole+Original?content=120515" target="_blank">colorscheme</a>. Save it as Tango.colorscheme and place it in your ~/.kde4/share/apps/konsole/ directory. It will then show up under the Settings –&gt; Configure Profiles –&gt; Appearance tab for Konsole.<span id="more-19"></span></p>
<p align="left">A matching terminal colour palette combined with my custom Vim colour scheme (<a title="Color Schemes" href="https://github.com/58bits/dotfiles/tree/master/vim/colors" target="_blank">daring-dark.vim</a>) – and I was close to having matching systems. The trick was finding a matching font. Monaco was pretty good under Ubuntu – but it was broken under openSUSE (even the Linux version).</p>
<p align="left">And then I discovered <a href="http://www.gnome.org/fonts/" target="_blank">Bitstream Vera Sans Mono via the Gnome project</a>. A brilliant font and perfect rendering under Gnome Terminal, Konsole, and even the <a href="http://software.jessies.org/terminator/" target="_blank">Terminator!</a> (which is an awesome cross-platform terminal emulator).</p>
<p align="left">And so there it is. I still think Monaco looks just a tad better in Visual Studio – but Vera Sans Mono on Linux with the Tango colour theme, and my custom Vim colours – is gorgeous.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.58bits.com/blog/2011/03/15/a-beautiful-developer%e2%80%99s-font/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Linear Tape-Open (LTO) and LTFS</title>
		<link>http://www.58bits.com/blog/2010/10/05/linear-tape-open-lto-and-ltfs/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=linear-tape-open-lto-and-ltfs</link>
		<comments>http://www.58bits.com/blog/2010/10/05/linear-tape-open-lto-and-ltfs/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 06:32:36 +0000</pubDate>
		<dc:creator>Anthony Bouch</dc:creator>
				<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Other Tech]]></category>
		<category><![CDATA[archive]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[data]]></category>

		<guid isPermaLink="false">http://www.58bits.com/blog/2010/10/05/Linear+TapeOpen+LTO+And+LTFS.aspx</guid>
		<description><![CDATA[I thought this was worth breaking my tech blog silence for. I’ve been doing some research on storage options for a media company who are in desperate need of an easy-to-use, safe and large capacity storage solution. I spent the &#8230; <a href="http://www.58bits.com/blog/2010/10/05/linear-tape-open-lto-and-ltfs/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="border-width: 1px; border-color: black; border-style: solid;" title="HP StorageWorks Ultrium Tape Drives - Tape Drives-Ultrium" src="http://www.58bits.com/blog/content/binary/WindowsLiveWriter/LinearTapeOpenLTPandLTFS_BE6F/HP%20StorageWorks%20Ultrium%20Tape%20Drives%20-%20Tape%20Drives-Ultrium_3.jpg" alt="HP StorageWorks Ultrium Tape Drives - Tape Drives-Ultrium" width="277" height="150" align="left" border="0" />I thought this was worth breaking my tech blog silence for.</p>
<p>I’ve been doing some research on storage options for a media company who are in desperate need of an easy-to-use, safe and large capacity storage solution.</p>
<p>I spent the best part of a week looking at various offerings, when it became clear that LTO and LTFS were going to hit the sweet spot.</p>
<p>The <a href="http://en.wikipedia.org/wiki/Linear_Tape-Open" target="_blank">LTO specification</a> is currently at LTO-5 – which provides 1.5 TB of uncompressed storage to the linear tape format and data transfer speeds of up to 140MB per second. Impressive. That’s about 500GB per hour.</p>
<p>But here’s the good part.<span id="more-20"></span></p>
<p>Until now – all tape backup systems required their own non-standard and proprietary index in order to catalogue and locate data on a tape. So for example once you start using Symantec’s Backup Exec – or anyone else’s software – you’re stuck using it until you’re ready to rotate your backup stock. Even if the data is in <a href="http://en.wikipedia.org/wiki/Tar_(file_format)" target="_blank">tar format</a> – you still need to know ‘where’ the tar files are located on the tape. With archive material, there&#8217;s a risk that years from now your data may be on a tape that requires software that might not exist, or that you&#8217;re going to have to pay for in order to access data that belongs to you.</p>
<p><strong>Enter </strong><a href="http://en.wikipedia.org/wiki/Linear_Tape_File_System" target="_blank"><strong>LTFS</strong></a><strong>.</strong></p>
<p>With LTO-5 a new open file system has been introduced, which means that a tape that has been backed up on a <a href="http://en.wikipedia.org/wiki/Linear_Tape_File_System" target="_blank">LTFS</a> compliant system – can be read and restored from another. Great.</p>
<p>What’s more – IBM, and HP (to start) have released freely available <a href="http://h71028.www7.hp.com/enterprise/us/en/solutions/storage-linear-tape-file-system.html" target="_blank">LTFS software for LTO-5 tape drives</a> for Mac OS X and Linux. Even better news for Mac OS X users since support for enterprise class backup software on Mac OS X is thin (with some specialty solutions from people like <a href="http://www.productionbackup.com/" target="_blank">BRU-PE</a> and the very expensive <a href="http://www.archiware.com/index.php?hp=126" target="_blank">PresStore</a> system from <a href="http://www.archiware.com/" target="_blank">Archiware</a>).</p>
<p>The initial releases of <a href="http://en.wikipedia.org/wiki/Linear_Tape_File_System" target="_blank">LTFS</a> doesn’t replace an enterprise class backup and archive system – however it does allow smaller companies to begin using LTO 5 LTFS now – knowing that their assets are safe in a long shelf-life and open standard.</p>
<p>Win win for LTO-5.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.58bits.com/blog/2010/10/05/linear-tape-open-lto-and-ltfs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problem Syncing iTunes 9.1 with Outlook 2007 Contacts and Calendar</title>
		<link>http://www.58bits.com/blog/2010/04/25/problem-syncing-itunes-9-1-with-outlook-2007-contacts-and-calendar/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=problem-syncing-itunes-9-1-with-outlook-2007-contacts-and-calendar</link>
		<comments>http://www.58bits.com/blog/2010/04/25/problem-syncing-itunes-9-1-with-outlook-2007-contacts-and-calendar/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 16:32:52 +0000</pubDate>
		<dc:creator>Anthony Bouch</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://www.58bits.com/blog/2010/04/25/Problem+Syncing+ITunes+91+With+Outlook+2007+Contacts+And+Calendar.aspx</guid>
		<description><![CDATA[I wouldn’t normally post a rant article on my blog – but iTunes – grrrrr. I really wish I wasn’t forced to use iTunes to sync my Outlook Contacts and Calendar with my iPhone 3GS. For the last few days &#8230; <a href="http://www.58bits.com/blog/2010/04/25/problem-syncing-itunes-9-1-with-outlook-2007-contacts-and-calendar/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I wouldn’t normally post a rant article on my blog – but iTunes – grrrrr. I really wish I wasn’t forced to use iTunes to sync my Outlook Contacts and Calendar with my iPhone 3GS.</p>
<p>For the last few days I’ve been unable to sync my Outlook 2007 Contacts with my iPhone – and it was driving me nuts.</p>
<p>I tried reinstalling iTunes 9.1, tried the Edit –&gt; Preferences –&gt; Devices – Reset Sync History option. I tried checking all my recurring dates in Outlook – since this was reported in the past as a problem.<span id="more-21"></span></p>
<p>In the end – the answer was to roll back to iTunes 9.03 – by doing the following.</p>
<p>As per <a title="http://support.apple.com/kb/HT1923" href="http://support.apple.com/kb/HT1923">http://support.apple.com/kb/HT1923</a> …</p>
<p>Use the Control Panel to uninstall iTunes and related software components in the following order:</p>
<ol>
<li>iTunes</li>
<li>QuickTime</li>
<li>Apple Software Update</li>
<li>Apple Mobile Device Support</li>
<li>Bonjour</li>
<li>Apple Application Support (iTunes 9 or later)</li>
</ol>
<p>I then deleted ALL of the Apple and Apple Computer folders in all of the user profiles – under</p>
<p>&lt;UserName&gt;\AppData\Local<br />
&lt;UserName&gt;\AppData\LocalLow<br />
&lt;UserName&gt;\AppData\Roaming</p>
<p>Reboot my Windows 7 PC – and then downloaded a copy of iTunes 9.0.3 from here… <a title="http://www.oldapps.com/itunes.php" href="http://www.oldapps.com/itunes.php">http://www.oldapps.com/itunes.php</a></p>
<p>Installed 9.03 &#8211; rebooted again – and presto – it worked.</p>
<p>You’ve wasted nearly a day of my time Apple – which is worth more to me than your phone and your terrible software.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.58bits.com/blog/2010/04/25/problem-syncing-itunes-9-1-with-outlook-2007-contacts-and-calendar/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Synchronising Sheep (Using LINQ)</title>
		<link>http://www.58bits.com/blog/2010/04/14/synchronising-sheep-using-linq/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=synchronising-sheep-using-linq</link>
		<comments>http://www.58bits.com/blog/2010/04/14/synchronising-sheep-using-linq/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 13:11:13 +0000</pubDate>
		<dc:creator>Anthony Bouch</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.58bits.com/blog/2010/04/14/Synchronising+Sheep+Using+LINQ.aspx</guid>
		<description><![CDATA[LINQ to Objects in C# has been around for a while now – and yet I’m regularly amazed at how easy LINQ has made it to perform what would have previously been fairly tedious tasks (well unless you were very &#8230; <a href="http://www.58bits.com/blog/2010/04/14/synchronising-sheep-using-linq/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>LINQ to Objects in C# has been around for a while now – and yet I’m regularly amazed at how easy LINQ has made it to perform what would have previously been fairly tedious tasks (well unless you were very clever and had written your own set of IEnumerable helper methods)&#160; &#8211; like the following – where I needed to synchronise a list of records in a database…</p>
<pre class="brush: csharp; auto-links: false;">/// &lt;summary&gt;
/// Let's synchronise some sheep...
/// &lt;/summary&gt;
/// &lt;param name=&quot;newSheep&quot;&gt;&lt;/param&gt;
/// &lt;param name=&quot;db&quot;&gt;&lt;/param&gt;
/// &lt;returns&gt;&lt;/returns&gt;
public IEnumerable&lt;Sheep&gt; SynchronizeSheep(IEnumerable&lt;Sheep&gt; newSheep, IDbService db)
{
    IEnumerable&lt;Sheep&gt; oldSheep = db.GetSheeps();

    foreach (var delete in oldSheep.Except(newSheep))
    {
        db.DeleteSheep(delete.Id);
    }

    foreach (var update in newSheep.Intersect(oldSheep))
    {
        db.UpdateSheep(update);
    }

    foreach (var addition in newSheep.Except(oldSheep))
    {
        db.InsertSheep(addition);
    }

    return db.GetSheeps();
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.58bits.com/blog/2010/04/14/synchronising-sheep-using-linq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome Hidden Gems</title>
		<link>http://www.58bits.com/blog/2010/02/22/google-chrome-hidden-gems/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-chrome-hidden-gems</link>
		<comments>http://www.58bits.com/blog/2010/02/22/google-chrome-hidden-gems/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 14:43:37 +0000</pubDate>
		<dc:creator>Anthony Bouch</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://www.58bits.com/blog/2010/02/22/Google+Chrome+Hidden+Gems.aspx</guid>
		<description><![CDATA[For a while now I’ve been jumping between IE8, Firefox, and Google Chrome. The browser that’s pulling me in – is definitely Chrome. For starters it’s fast. I mean really fast – even after a solid couple of months of &#8230; <a href="http://www.58bits.com/blog/2010/02/22/google-chrome-hidden-gems/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.58bits.com/blog/content/binary/WindowsLiveWriter/GoogleChromeHiddenGems_CE60/chrome_2.jpg"><img style="border-bottom: 0px; border-left: 0px; margin: 5px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="chrome" border="0" alt="chrome" align="left" src="http://www.58bits.com/blog/content/binary/WindowsLiveWriter/GoogleChromeHiddenGems_CE60/chrome_thumb.jpg" width="221" height="240" /></a> For a while now I’ve been jumping between <a href="http://www.microsoft.com/uk/windows/internet-explorer/" target="_blank">IE8</a>, <a href="http://www.mozilla.com/en-US/firefox/firefox.html" target="_blank">Firefox</a>, and <a href="http://www.google.com/chrome" target="_blank">Google Chrome</a>. The browser that’s pulling me in – is definitely Chrome. For starters it’s fast. I mean really fast – even after a solid couple of months of use with a large local cache. </p>
<p>Other sticky features include being able to just type my search terms into the address bar – and execute a search (not unique to Chrome of course IE8 and Firefox both do this). And then the little details – like the screen shot shown here. While visiting one of my regular podcasts with Chrome – just clicking on the MP3 file – from what I’m assuming is a progressive download – launched a very nice little audio player. I don’t know why it’s there – or what ‘auto-magical’ stuff happened under the hood – it just worked. I also like the <a href="https://tools.google.com/chrome/intl/en-GB/themes/p/at_chrome.html?installdataindex=nosearch&amp;hl=en-GB&amp;brand=CHOS&amp;utm_campaign=en-GB&amp;utm_source=en-GB-ha-emea-uk-bk&amp;utm_medium=ha" target="_blank">dark theme</a> I found for Chrome and just ‘clicked’ and it was in – nice and dark and less painful to the eye – just like my dev IDE. </p>
<p>There are bigger issues and tectonic industry shifts at work here. I couldn’t write about them all with enough zest or knowledge to be of interest in this short post (like the future of Firefox now that the Mozilla Foundation’s largest funding organisation – Google – has their own browser) – suffice to say that for me at least- Chrome is sticky – and I’m using it more and more.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.58bits.com/blog/2010/02/22/google-chrome-hidden-gems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using apc

Served from: www.58bits.com @ 2012-05-18 06:16:34 -->
