<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;A04ERXo4eCp7ImA9WhRSFEo.&quot;"><id>tag:blogger.com,1999:blog-35345378</id><updated>2011-11-16T21:45:04.430Z</updated><category term="Python" /><category term="Vista" /><category term="Visual SourceSafe" /><category term="Microsoft" /><category term="XP" /><category term="Source Control" /><category term="bugs" /><category term="C" /><category term="CAM" /><category term="Visual Studio 2005" /><category term="AJAX" /><category term="64bit" /><category term="Windows" /><category term="conference" /><category term="accu" /><category term="Integration" /><category term="Apple" /><category term="IDE" /><category term="Router" /><category term="Codecs" /><category term="Open-Source" /><category term="Testing" /><category term="OpenSceneGraph" /><category term="GUI" /><category term="Libraries" /><category term="staticanalysis" /><category term="C++" /><category term="CDT" /><category term="Meshes" /><category term="Visual Studio 2008" /><category term="iphone" /><category term="Platform SDK" /><category term="Games" /><category term="Toolkits" /><category term="HTPC" /><category term="VCF" /><category term="Code Reviews" /><category term="Graphics" /><category term="git" /><category term="Core 2 Duo" /><category term="Win32" /><category term="DVD" /><category term="2008" /><category term="Aero" /><category term="Icons" /><category term="wxWidgets" /><category term="OpenGL" /><category term="Guidelines" /><category term="KDE" /><category term="Internet" /><category term="CAD" /><category term="Subversion" /><category term="Glass" /><category term="Javascript" /><category term="SPA" /><category term="Physics" /><category term="Music" /><category term="Migration" /><category term="Linksys" /><category term="Diff" /><category term="Java" /><category term="OSX" /><category term="API" /><category term="Google" /><category term="SDK" /><category term="Development" /><category term="interview" /><category term="Firefox" /><category term="Computers" /><category term="Burning" /><category term="MFC" /><category term="Web Browser" /><category term="build" /><category term="STL" /><category term="Linux" /><category term="Eclipse" /><category term="Anti-Virus" /><category term="gtk+" /><category term="Qt" /><category term="gcc" /><category term="displaylink" /><category term="Ubuntu" /><category term="Free" /><category term="Multithreading" /><category term="virtualisation" /><category term="TortoiseSVN" /><category term="Boost" /><category term="WPF" /><category term="Intel" /><category term="talks" /><category term="Enlightenment" /><category term="Juce" /><title>Garry's Bit Patterns</title><subtitle type="html">This is somewhere to dump what I learn about programming as I go along.  My current occupation is a developer working for Camvine in Cambridge. There'll be lots of Python and lots of Linux.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://garrys-brain.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://garrys-brain.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>305</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/GarrysBitPatterns" /><feedburner:info uri="garrysbitpatterns" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;A04ERXo9cSp7ImA9WhRSFEo.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-3219679046562964150</id><published>2011-11-16T20:55:00.001Z</published><updated>2011-11-16T21:45:04.469Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-16T21:45:04.469Z</app:edited><title>Boogie Board Rip - Review</title><content type="html">Perhaps I should have titled it "The Tale Of Two Tablets".&amp;nbsp; A few months ago I picked up myself and Asus Eee Note, the main selling point to me was the integrated Wacom digitiser making me believe this could be a useful sketching device.&amp;nbsp; Unfortunately the software on it was a custom operating system based on Qt (framebuffer) and was pretty deficient from a sketching point of view.&amp;nbsp; So I offloaded the thing off on eBay....&lt;br /&gt;
&lt;br /&gt;
Then I heard about the new version of the &lt;a href="http://www.improvelectronics.com/"&gt;Boogie Board&lt;/a&gt; which is less of a tablet, more of a paper replacement, but it would have a saving capability for pictures.&amp;nbsp; All for the price of £100 + VAT.&amp;nbsp; The Boogie Board RIP has a 9.5 inch area for drawing on and can even capture those renderings. The way the display on previous boogie boards worked was impressive in that it only consumed power to blank the display, and putting pressure on the display caused an image to be formed.&lt;br /&gt;
&lt;br /&gt;
I did wonder how on earth they would have taken that technology and been able to capture the images.&amp;nbsp; But the guys at Improv Electronics are much smarter than that, it looks like the way it works is there is a separate digitiser to the screen, so it is kind of like a graphics tablet where you can see the image you are also drawing.&amp;nbsp; You have to wake the digitiser to start using it and press the Save button to store the file.&amp;nbsp; The digitiser stores the file in a vector-based PDF leading to some quite nice images.&lt;br /&gt;
&lt;br /&gt;
The primary reason to get hold of it was for sketching and note-taking.&amp;nbsp; Also, I wanted to actually be able to use the device on Linux, and since when you connect it, it just appears as a mass storage device meaning a win there compared to other connection mechanisms (like in the Eee Note).&lt;br /&gt;
&lt;br /&gt;
The device itself is light and flimsy in the best possible way, making it easy to hold and also you don't worry too much about protecting the device rather than actually using it.&amp;nbsp; The battery apparently lasts for a week on a charge, but I have no idea the amount of charge my device is currently holding because it has no indicator.&amp;nbsp; This is not necessarily a problem because the device is ludicrously stripped down and simple, so I see it has having an incredibly simple UI.&lt;br /&gt;
&lt;br /&gt;
The only criticism I have about the device is more subtle than most people would notice.&amp;nbsp; Because the digitiser and display are separate devices they seem to work at different resolutions.&amp;nbsp; The digitiser is highly accurate by the look of it generating cleaner and thinner lines, but the reactive display generates thicker less accurate lines.&amp;nbsp; This may also be due to the design of the pen nib.&amp;nbsp; The pen itself is required to capture input, and I found it comfortable to use.&lt;br /&gt;
&lt;br /&gt;
Overall the Boogie Board Rip is a cool little device good at the job it was designed to do.&amp;nbsp; I'm still trying to work out the best way it will be my digital sketchpad but it is the device I have seen get closest to what I want (in fact if they did a really large A3 version that would be awesome).&amp;nbsp; The guys at Improv Electronics have done an excellent job.&lt;br /&gt;
&lt;br /&gt;
You can buy them in the &lt;a href="http://gbp.improvelectronics.com/"&gt;UK from Improv Electronics&lt;/a&gt; for £120 including VAT.&lt;br /&gt;
&lt;br /&gt;
This is a picture comparing the PDF output to theactual display - you can see finer lines on the image compared to the screen where some lines bleed into one another.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-6iTt5FIWg6s/TsQr5GlQ8WI/AAAAAAAAABY/6Y0DCgnWjds/s1600/boogie1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://1.bp.blogspot.com/-6iTt5FIWg6s/TsQr5GlQ8WI/AAAAAAAAABY/6Y0DCgnWjds/s320/boogie1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And some quick two minute sketches of Rodimus and Megatron. &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-2aP1SvcOtCs/TsQsp_xwrNI/AAAAAAAAABg/953HRJp_5Es/s1600/rodimus.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-2aP1SvcOtCs/TsQsp_xwrNI/AAAAAAAAABg/953HRJp_5Es/s320/rodimus.png" width="237" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/--AoVIjaBCXY/TsQtMapbKiI/AAAAAAAAABo/iu6BuIpxl60/s1600/megatron.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="226" src="http://2.bp.blogspot.com/--AoVIjaBCXY/TsQtMapbKiI/AAAAAAAAABo/iu6BuIpxl60/s320/megatron.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-3219679046562964150?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/UkAUqHq9xIY" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/3219679046562964150?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/3219679046562964150?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/UkAUqHq9xIY/boogie-board-rip-review.html" title="Boogie Board Rip - Review" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-6iTt5FIWg6s/TsQr5GlQ8WI/AAAAAAAAABY/6Y0DCgnWjds/s72-c/boogie1.png" height="72" width="72" /><feedburner:origLink>http://garrys-brain.blogspot.com/2011/11/boogie-board-rip-review.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08BRX04cSp7ImA9WhdaEUk.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-901116198371754594</id><published>2011-10-20T20:17:00.001Z</published><updated>2011-10-20T20:17:34.339Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-20T20:17:34.339Z</app:edited><title>OpenELEC - New Distro For Media Centres</title><content type="html">I saw that a project called &lt;a href="http://www.openelec.tv/"&gt;OpenELEC&lt;/a&gt; (Open Embedded Linux Entertainment Centre) got released released recently.&amp;nbsp; What is interesting about it is not so much the fact that it is a fast booting XBMC distribution, but the fact that it is an embedded Linux system for x86 platforms with minimal size and uses the latest components.&lt;br /&gt;
&lt;br /&gt;
I can vouch for the most important thing when dealig with media is having the latest graphics dependencies on Linux.&amp;nbsp; You tend not to have long-lived stable releases and most issues and advances are done in the day-to-day development.&lt;br /&gt;
&lt;br /&gt;
The source code is available on Github &lt;a href="https://github.com/OpenELEC/OpenELEC.tv"&gt;here&lt;/a&gt;.&amp;nbsp; Going through I can see it has Python, GTK+, and Python gobject bindings, Linux 3.1rc10 kernel and lots more.&amp;nbsp; Even though it is a cut-down minimal system it doesn't lack handy things like ssh and a text editor.&lt;br /&gt;
&lt;br /&gt;
The final images are a mere 100MB or there about in size.&amp;nbsp; There are scripts to create the USB install key and it even has an automated update system.&amp;nbsp; There are optimised builds for ION and AMD Fusion as well as a few other platforms.&lt;br /&gt;
&lt;br /&gt;
If you want an XBMC computer then I can think of more heavyweight ways to get it, but if you want it to boot in 10 seconds and you don't need to cusomise it too much then this would be a really good choice.&lt;br /&gt;
&lt;br /&gt;
To me it looks like an ideal platform for trying out different media type applications (say kiosks or other media centres) with not a huge amount of code as the base system looks pretty solid.&amp;nbsp; I reckon something like Clutter's &lt;a href="http://media-explorer.github.com/"&gt;Media Explorer&lt;/a&gt; could be quite good on it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-901116198371754594?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/JbmgnG23dDo" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/901116198371754594?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/901116198371754594?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/JbmgnG23dDo/openelec-new-distro-for-media-centres.html" title="OpenELEC - New Distro For Media Centres" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2011/10/openelec-new-distro-for-media-centres.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMCSH47cSp7ImA9WhdUEEs.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-5543893751658613477</id><published>2011-09-26T20:21:00.000Z</published><updated>2011-09-26T20:21:09.009Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-26T20:21:09.009Z</app:edited><title>PyCon UK 2011 - Great Conference</title><content type="html">Now with EuroPython being held outside the UK, the PyCon UK takes on more significance.&amp;nbsp; Run by the same guys and now relocated to Coventry this year was a triumph.&amp;nbsp; Something like 200 people attended for the weekend log conference which is pretty impressive.&lt;br /&gt;
&lt;br /&gt;
The venue was excellent.&amp;nbsp; The most important aspect was all meals were supplied at the venue (and were all very tasty).&amp;nbsp; This meant that people tended not to drift off and hopefully that helped the mingling.&amp;nbsp; Some of the rooms were a little small but nobody seemed to forsee how well attended the weekend would be with lots of last minute tickets.&lt;br /&gt;
&lt;br /&gt;
The topic that dominated the entire conference was computing and education.&amp;nbsp; Specifically the useless nature of ICT courses and the complete lack of the next generation of coders coming through.&amp;nbsp; The obvious technology on show and being discussed was RaspberryPi.&amp;nbsp; There was also the BBC CodeLab host attempting to evoke those old feelings of the BBC Model B.&amp;nbsp; Basically the conclusion comes down to there is no will in government for changing the nature of computing in schools and it will require hackers in number making the changes piece by piece themselves.&lt;br /&gt;
&lt;br /&gt;
The Coding Dojo was a lot of fun using the task of Maze Generation.&amp;nbsp; We managed to lash enough together five minutes form the end and I think we surprised ourselves by it working.&amp;nbsp; Also the web development open forum was good, maybe I spoke too much in that....&amp;nbsp; and I managed to get a demo of &lt;a href="http://camvine.com/"&gt;Camvine&lt;/a&gt; in there.&amp;nbsp; There was also three thought-provoking and entertaining keynotes.&lt;br /&gt;
&lt;br /&gt;
As always the people there made the conference.&amp;nbsp; The team who ran it all did a sterling job, even better than their previous EuroPythons.&amp;nbsp; Team 4 in the Code Dojo did a great bit of work, Matt, Safe, Adrian, and Menno.&amp;nbsp; I also got to speak to the keynote speaker Allison Randal at the meal, in fact the whole table was entertaining.&lt;br /&gt;
&lt;br /&gt;
So my recommendation, even if you don't use Python much, is to go to PyCon UK next year because I am pretty sure you will learn something or meet some really interesting people.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-5543893751658613477?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/RJhshcbhn6s" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/5543893751658613477?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/5543893751658613477?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/RJhshcbhn6s/pycon-uk-2011-great-conference.html" title="PyCon UK 2011 - Great Conference" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2011/09/pycon-uk-2011-great-conference.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIGR306fip7ImA9WhdXFUs.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-15607170156445323</id><published>2011-08-28T19:42:00.000Z</published><updated>2011-08-28T19:42:06.316Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-28T19:42:06.316Z</app:edited><title>Raspberry Pi - The Trojan Horse?</title><content type="html">The &lt;a href="http://www.raspberrypi.org/"&gt;Raspberry Pi&lt;/a&gt; project has got a lot of coverage today thanks to the &lt;a href="http://www.guardian.co.uk/technology/2011/aug/28/ict-changes-needed-national-curriculum"&gt;article in the Guardian&lt;/a&gt; written by &lt;a href="http://memex.naughtons.org/"&gt;John Naughton&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The fundamental problem has never been the lack of cheap hardware.  Even in this day and age it is not the lack of quality freely available tools.&amp;nbsp; A kid who has the propensity to be a hacker nowadays would invariably have Linux installed with the myriad of tools available, and also doing that they would have the knowledge it should work fairly easy on other computers running roughly the same operating system.&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi is attempting to invoke the feeling of the BBC Micro in an attempt to get kids programming again, because in the near future we are going to be in a very precarious situation with our engineering ability in this country.&lt;br /&gt;
&lt;br /&gt;
First of all why did the BBC Micro succeed? It is very hard to compare to today with the abundance of computing hardware just in your pocket.&amp;nbsp; Part of it was almost every classroom across the land had one of these and the children who could work out how to operate them hunted 1s and 0s in packs.&amp;nbsp; There was a communal aspect to it as the children would have to share, listen, and take it in turns.&amp;nbsp; Also, there was the TV programme &lt;a href="http://en.wikipedia.org/wiki/Micro_Live"&gt;Micro Live&lt;/a&gt;, which was needed to get a chunk of publicity.&lt;br /&gt;
&lt;br /&gt;
My first programming was done on BBC Micros at school in the East End of London and at friends houses as we couldn't afford one at home. So, I for one know their importance and probably a majority of my friends and colleagues had similar start.&lt;br /&gt;
&lt;br /&gt;
When I was at University Linux was just starting to gain some traction and the work of the FSF got us GCC and the mix of other tools.&amp;nbsp; But on Windows I was still trying to use DJGPP and there was no chance of getting more complex things working with an open (free and Free) toolchain.&amp;nbsp; Children coming up in that age must consider it the computing Dark Ages.&lt;br /&gt;
&lt;br /&gt;
So I come back to my first statement that cheap hardware has never been the problem.&amp;nbsp; The people getting excited about it are 30+ developers like me who think - "Oooooh, cheap commodity ARM platform, that I can hack in lots of ways".&amp;nbsp; My immediate thought was to make it into an immensely cheap network connected digital signage system.&amp;nbsp; And this is probably because ARM is still a minefield and a static and well supported platform would be desirable.&lt;br /&gt;
&lt;br /&gt;
I am not trying to negate the good work done by Raspberry Pi as it could be amazing if it is the Trojan Horse.&amp;nbsp; What do I mean by that?&amp;nbsp; The hardware becomes the makeweight for all the real important stuff that needs to happen if we are truly going to educate the next generation of programmers.&lt;br /&gt;
&lt;br /&gt;
What is needed?&amp;nbsp; Community, publicity, documentation and traction.&amp;nbsp; Community because this goes beyond the single classroom of my youth.&amp;nbsp; You need IRC, social networking and tools for more permanent sharing (like &lt;a href="http://github.com/"&gt;Github&lt;/a&gt; and &lt;a href="https://gist.github.com/"&gt;Gist&lt;/a&gt;).&amp;nbsp; This then ties into documentation, it would need to be good up front but also allow for the people to evolve it, so much like a wiki.&lt;br /&gt;
&lt;br /&gt;
Just social media publicity would not be enough, you would really need a TV programme to generate it, but then this is where the social media would tie in.&amp;nbsp; For the programme they would have to show the users best contributions so there is an incentive to produce and produce something good.&amp;nbsp; After all how many people sent a picture into &lt;a href="http://en.wikipedia.org/wiki/Hartbeat"&gt;Hartbeat&lt;/a&gt; in the hope of getting into the gallery? It's the closest computing could get to the X-Factor...&lt;br /&gt;
&lt;br /&gt;
The most important part will always be changing the educational system to get children learning how computers to make computers work for them rather than simply going through the commercial Word Processor/Spreadsheet operating.&amp;nbsp; I suppose this is where the documentation does come in, but I think there will need to be more.&amp;nbsp; If someone could show educators a curriculum that they could prove worked then that might get the traction required.&amp;nbsp; That would be a tough proposition and also I am unsure about whether there are enough technical skills in the educational sector to deploy such a thing.&amp;nbsp; Maybe it would require people from industry coming in and mentoring... &lt;br /&gt;
&lt;br /&gt;
In the end I am hoping that the Raspberry Pi hardware is the Trojan Horse for something much more fundamental.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-15607170156445323?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/na4jFKewqww" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/15607170156445323?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/15607170156445323?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/na4jFKewqww/raspberry-pi-trojan-horse.html" title="Raspberry Pi - The Trojan Horse?" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2011/08/raspberry-pi-trojan-horse.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4HQns5eSp7ImA9WhdXE0k.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-2554308885520421828</id><published>2011-08-26T07:32:00.000Z</published><updated>2011-08-26T07:32:13.521Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-26T07:32:13.521Z</app:edited><title>Linux at 20</title><content type="html">If it didn't exist I somehow think computing would be a much less fun place and I probably wouldn't be able to do my job so well.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.linuxfoundation.org/20th/"&gt;Linux Foundation&lt;/a&gt;
&lt;br /&gt;
&lt;a href="http://www.linuxfoundation.org/
20th" target="_blank"&gt;&lt;img src="http://www.linuxfoundation.org/
20th/images/lf_linux20_webbadge.png"
width="300" height="250" alt="I'll be celebrating 20 years of Linux with
The Linux Foundation!" border="0"&gt;&lt;/a&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-2554308885520421828?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/AQaUY46DNBU" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/2554308885520421828?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/2554308885520421828?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/AQaUY46DNBU/linux-at-20.html" title="Linux at 20" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2011/08/linux-at-20.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YGRXc_fyp7ImA9WhdXEk8.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-1895918141178128598</id><published>2011-08-24T21:25:00.001Z</published><updated>2011-08-24T21:25:24.947Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-24T21:25:24.947Z</app:edited><title>Pycon UK 2011</title><content type="html">Unfortunately I was unable to make it to EuroPython 2011 due to its location (no longer being in Birmingham).&amp;nbsp; The good news is that the same guys who ran Europython in Birmingham have announced &lt;a href="http://pyconuk.org/"&gt;Pycon UK&lt;/a&gt; in Coventry.&lt;br /&gt;
&lt;br /&gt;
For the reasonable price of £95 you get two days of Python goodness.&amp;nbsp; As their website says:&lt;br /&gt;
&lt;blockquote&gt;

                    &lt;br /&gt;
Sessions will include testing, a code clinic, 
Django, PyPy, XML, Design and Graphical Programming. There will be an 
unscheduled room for dynamic talks and time allocated for sprints. The 
weekend will also feature the return of our ever boisterous conference 
dinner!&lt;/blockquote&gt;
I've paid for my ticket already and Python events are always educational and entertaining.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-1895918141178128598?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/jgA5CtOyUhc" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/1895918141178128598?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/1895918141178128598?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/jgA5CtOyUhc/pycon-uk-2011.html" title="Pycon UK 2011" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2011/08/pycon-uk-2011.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EGQXY_fCp7ImA9WhdXEU4.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-6263525197209658766</id><published>2011-08-23T20:33:00.001Z</published><updated>2011-08-23T20:33:40.844Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-23T20:33:40.844Z</app:edited><title>New Github Project - pyxlib-ctypes</title><content type="html">I had written a pyrex based binding to some elements of Xlib, but I decided to make it pure python to avoid the compilation step.&amp;nbsp; Luckily a kind person had created pyxlib-ctypes &lt;a href="http://code.google.com/p/pyxlib-ctypes/"&gt;http://code.google.com/p/pyxlib-ctypes/&lt;/a&gt; which is a pure Python binding to the underlying X functions.&lt;br /&gt;
&lt;br /&gt;
I needed a few more features due to XComposite for writing crazy desktop compositors in pure Python and also some XFixes functionality so we can really hide the mouse cursor.&lt;br /&gt;
&lt;br /&gt;
As such I am publishing my amendments to it on Github - you can check it out here: &lt;a href="https://github.com/garrybodsworth/pyxlib-ctypes"&gt;https://github.com/garrybodsworth/pyxlib-ctypes&lt;/a&gt; it literally has the bare minimum I needed and could probably be extended for greater coverage.&amp;nbsp; It is used in production and seems to be working very happily.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-6263525197209658766?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/uHnjzOpUUqA" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/6263525197209658766?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/6263525197209658766?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/uHnjzOpUUqA/new-github-project-pyxlib-ctypes.html" title="New Github Project - pyxlib-ctypes" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2011/08/new-github-project-pyxlib-ctypes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8GQXw_eCp7ImA9WhdXEU4.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-2441980542568367565</id><published>2011-08-23T20:20:00.001Z</published><updated>2011-08-23T20:20:20.240Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-23T20:20:20.240Z</app:edited><title>Resurrection!</title><content type="html">It's aliiiiiive!&lt;br /&gt;
&lt;br /&gt;
After a few years of hosting my own blog on http://programmerslog.com I have come back to Blogger.&amp;nbsp; This unfortunately was caused by losing the domain which is pretty sad....&amp;nbsp; I have a back up of the few hundred blog posts in a SQL dump but I doubt I will find the energy to extract them(!)&lt;br /&gt;
&lt;br /&gt;
What will be on this blog now?&amp;nbsp; Any projects I publish on Github, lots of Python, Linux, coding, and probably my random artistic scribblings.&lt;br /&gt;
&lt;br /&gt;
I must say Blogger is looking rather swish nowadays, part of the reason to use Wordpress was for the features, but now I can do pretty much what I want here.&amp;nbsp; Also I don't have to worry about renewing my domain subscriptions or doing software updates...&lt;br /&gt;
&lt;br /&gt;
I've reconfigured all my feeds to point to this blog since it is the only active one.&lt;br /&gt;
 &lt;br /&gt;
Now I just have to actually write some content...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-2441980542568367565?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/Hkr5aV-rgDc" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/2441980542568367565?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/2441980542568367565?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/Hkr5aV-rgDc/resurrection.html" title="Resurrection!" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2011/08/resurrection.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4DRng-fip7ImA9WxdWF08.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-7995621094190705573</id><published>2008-07-10T19:08:00.006Z</published><updated>2008-07-10T20:16:17.656Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-10T20:16:17.656Z</app:edited><title>This Blog Has Moved To http://blog.programmerslog.com</title><content type="html">Hi everyone.
&lt;br/&gt;&lt;br/&gt;
This blog has now moved to &lt;a href="http://blog.programmerslog.com/"&gt;Programmer's Log&lt;/a&gt; at its own domain using Wordpress.  The content of this blog will remain, but all new posts will be made at the &lt;a href="http://blog.programmerslog.com/"&gt;Programmer's Log&lt;/a&gt;.  I've already posted a minor update to the TortoiseSVN Visual Studio integration.
&lt;br/&gt;&lt;br/&gt;
Thanks for reading all this time on Blogger.  I have made just over 300 posts and I'm not planning on stopping there, so I hope you can join me.
&lt;br/&gt;&lt;br/&gt;
Oh yes, and don't forget to check out my new employer's website &lt;a href="http://www.camvine.com/"&gt;Cambridge Visual Networks (Camvine)&lt;/a&gt;.
&lt;br/&gt;&lt;br/&gt;
Thanks again,&lt;br/&gt;Garry Bodsworth&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-7995621094190705573?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/dHoAqculyvA" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/7995621094190705573?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/7995621094190705573?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/dHoAqculyvA/this-blog-has-moved-to.html" title="This Blog Has Moved To http://blog.programmerslog.com" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2008/07/this-blog-has-moved-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AAQXc5cCp7ImA9WxdXEUg.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-5096308832674671260</id><published>2008-06-22T18:21:00.002Z</published><updated>2008-06-22T18:35:40.928Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-22T18:35:40.928Z</app:edited><title>A more idealistic time...</title><content type="html">Here in the UK we had an episode of The Money Programme broadcast on the BBC called &lt;a href=" http://www.bbc.co.uk/iplayer/page/item/b00c6sdc.shtml"&gt;Bill Gates: How a Geek Changed the World&lt;/a&gt;.  Follow the link to see it on the iPlayer.&lt;br /&gt;&lt;br /&gt;An interesting part of this is &lt;span style="font-style:italic;"&gt;Steve Wozniak: How it began&lt;/span&gt; which is highlighted and can be watched on the BBC News site &lt;a href="http://news.bbc.co.uk/1/hi/business/7464704.stm"&gt;here&lt;/a&gt;.  It's certainly nice to think of a time when the computer business wasn't all about taking over the world.  It's a brief video from how he got involved in computers, through starting Apple.&lt;br /&gt;&lt;br /&gt;It's nice to see some programmes on TV that look at computing, in fact I'm amazed at the lack of ones about the history of computing.  Although we may be getting a dramatisation featuring &lt;a href="http://blog.wired.com/underwire/2008/06/leo-dicaprio-at.html"&gt;Leonardo DiCaprio as a co-founder of Atari&lt;/a&gt;...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-5096308832674671260?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/vXKL7Xnmuqg" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/5096308832674671260?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/5096308832674671260?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/vXKL7Xnmuqg/more-idealistic-time.html" title="A more idealistic time..." /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2008/06/more-idealistic-time.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ECSX8-eyp7ImA9WxdQF0U.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-8700329028001324137</id><published>2008-06-18T09:32:00.001Z</published><updated>2008-06-18T09:34:28.153Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-18T09:34:28.153Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Firefox" /><title>Firefox 3 Released</title><content type="html">Go get it here:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.spreadfirefox.com/node&amp;id=0&amp;t=264"&gt;&lt;img border="0" alt="Download Day" title="Download Day" src="http://www.spreadfirefox.com/files/images/affiliates_banners/dday_badge_fox.png"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Have a little read on how to make it even better for the Mac &lt;a href="http://garrys-brain.blogspot.com/2008/05/firefox-3-on-mac.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.spreadfirefox.com/node&amp;id=0&amp;t=309"&gt;&lt;img border="0" alt="Firefox 3" title="Firefox 3" src="http://sfx-images.mozilla.org/affiliates/Buttons/firefox3/468x60.png"/&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-8700329028001324137?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/uMVc1yQn-Gw" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/8700329028001324137?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/8700329028001324137?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/uMVc1yQn-Gw/firefox-3-released.html" title="Firefox 3 Released" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2008/06/firefox-3-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8CRHgzeip7ImA9WxdQFkU.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-4556315759079206771</id><published>2008-06-17T07:38:00.005Z</published><updated>2008-06-17T07:47:45.682Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-17T07:47:45.682Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="interview" /><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><title>Bill Gates Talks Some Sense - A 1986 Interview</title><content type="html">The &lt;a href="http://programmersatwork.wordpress.com/"&gt;Programmers At Work&lt;/a&gt; blog have posted a 1986 interview with Bill Gates - you can &lt;a href="http://programmersatwork.wordpress.com/bill-gates-1986/"&gt;read it here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;What is incredibly bizarre is that he talks a lot of sense and a lot of it is still applicable today.  Certainly 20 years later substitute assembler for C, and C with a scripting language in the article and you can believe it was a recent article.&lt;br /&gt;&lt;br /&gt;It's hard to believe Microsoft is the same company that Bill Gates is talking about in this interview as he has such a pragmatic outlook towards development.  With those attitudes you can see why Microsoft became successful, but it also shows you can't stay that way forever without great effort.  Most of my teenage years and adult life I have seen Microsoft as this big monopoly and it was nice to see something that shows what it was like before then.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-4556315759079206771?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/Zrrkici2-6o" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/4556315759079206771?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/4556315759079206771?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/Zrrkici2-6o/bill-gates-talks-some-sense-1986.html" title="Bill Gates Talks Some Sense - A 1986 Interview" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2008/06/bill-gates-talks-some-sense-1986.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYFR3k8eip7ImA9WxdQEU4.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-8658202215548703531</id><published>2008-06-10T21:10:00.003Z</published><updated>2008-06-10T21:25:16.772Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-10T21:25:16.772Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Toolkits" /><category scheme="http://www.blogger.com/atom/ns#" term="C++" /><category scheme="http://www.blogger.com/atom/ns#" term="GUI" /><title>GUI Toolkits - eGUI++ Easy GUI</title><content type="html">I've blogged a few times in the past about &lt;a href="http://torjo.com"&gt;John Torjo&lt;/a&gt;'s &lt;a href="http://torjo.com/win32gui/index.html"&gt;Win32 GUI Generics&lt;/a&gt;.  It was really quite an impressive accomplishment using the advanced C++ techniques in Windows development, but was a bit of a rough diamond. I did do some minor changes to my local copy when I was playing around with it to make sure that the widgets used the correct Windows theming engine, and it was surprisingly easy to add which is a testament to the quality of the code.  It did take ages to compile though with all those templates.&lt;br /&gt;&lt;br /&gt;I notice that now John Torjo has posted &lt;a href="http://torjo.blogspot.com/2008/06/egui-easy-gui-for-c.html"&gt;eGUI++ to his blog&lt;/a&gt;.  Hopefully this is a progression using all he learnt with his previous iteration in Win32 GUI Generics.&lt;br /&gt;&lt;br /&gt;There is an article about eGUI++ on the &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc534994.aspx"&gt;MSDN here&lt;/a&gt; written by John.  It covers the basics of what he has done and covers some of the features.  It is typesafe at compile time which is great for catching errors early as most GUI toolkits you rarely find those types of problems until runtime (especially when using Windows resources).&lt;br /&gt;&lt;br /&gt;You can download it from &lt;a href="http://torjo.com/egui/"&gt;here&lt;/a&gt;.  The example presented on that page is quick and to the point.  Hopefully this is a toolkit to watch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-8658202215548703531?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/SotADyO65HY" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/8658202215548703531?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/8658202215548703531?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/SotADyO65HY/gui-toolkits-egui-easy-gui.html" title="GUI Toolkits - eGUI++ Easy GUI" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2008/06/gui-toolkits-egui-easy-gui.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQNQ3s5cCp7ImA9WxdQEU8.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-5506686769428677195</id><published>2008-06-10T19:51:00.003Z</published><updated>2008-06-10T20:06:32.528Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-10T20:06:32.528Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="talks" /><title>Upcoming Cambridge Talks</title><content type="html">Tomorrow there is the latest &lt;a href="http://www.bcs-spa.org/cgi-bin/view/SPA/SpaCambridge"&gt;BCS SPA&lt;/a&gt; talk in Cambridge.  This month we have &lt;a href="http://en.wikipedia.org/wiki/Dependency_injection"&gt;Dependency Injection&lt;/a&gt; by Stephen Oakman.  If you're in Cambridge and fancy a computer talk with the obligatory pub-based discussion afterwards, give it a go.&lt;br /&gt;&lt;br /&gt;Coming up in July &lt;a href="http://en.wikipedia.org/wiki/Cory_Doctorow"&gt;Cory Doctorow&lt;/a&gt; is giving a talk in Cambridge called "Life in the Information Economy" as part of the Cambridge Business Lecture series.  You can sign up &lt;a href="http://www.cambridgebusinesslectures.com/cory-doctorow-on-life-in-the-information-economy/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;We made a bet, some decades ago, that the information economy would be based on buying and selling (and hence restricting copying of) information. We were totally, 100 percent wrong, and now the world’s in turmoil because of it. What does a copy-native economy look like? How do everyone from barbers to musicians become richer, more fulfilled and more civilly engaged in a real information society. And what do we do about the fact that a couple of dinosauric entertainment companies are determined to screw it up?&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;He's a science fiction author, blogger and journalist.  If you follow &lt;a href="http://www.boingboing.net"&gt;BoingBoing.net&lt;/a&gt; you'll have read a lot of his stuff.  He makes his books available under the Creative Commons licence and I would consider him one of the foremost thinkers (and doers) in the modern minefield of information and ownership (he was European Affairs Coordinator for the Electronic Frontier Foundation).&lt;br /&gt;&lt;br /&gt;Comics adaptations of his fiction have been made available under the Creative Commons licence.  Follow &lt;a href="http://www.boingboing.net/2008/06/09/my-new-graphic-novel.html"&gt;this link&lt;/a&gt; for more information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-5506686769428677195?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/N76lq8bnQ4Q" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/5506686769428677195?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/5506686769428677195?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/N76lq8bnQ4Q/upcoming-cambridge-talks.html" title="Upcoming Cambridge Talks" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2008/06/upcoming-cambridge-talks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEBQX87eip7ImA9WxdRFU8.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-9077663273747017766</id><published>2008-06-03T19:40:00.002Z</published><updated>2008-06-03T20:07:30.102Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-03T20:07:30.102Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bugs" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><title>Redmine - Part 2</title><content type="html">I have been playing with the project management/issue tracker &lt;a href="http://www.redmine.org/"&gt;Redmine&lt;/a&gt; a bit more over the past couple of days.  I have been getting more and more impressed the more I use it because it is so swift to use, by swift I don't mean it runs fast, I mean it gets work done with the minimum of fuss.&lt;br /&gt;&lt;br /&gt;The issue tracking system is pretty simplistic if you do a direct comparison to something like Bugzilla, but it provides the essentials.  The best bit though is the support for custom fields out of the box, so you can pretty much set up your bug report the way you want it.  You can do all the normal things as well like configuring your workflow.&lt;br /&gt;&lt;br /&gt;Using the listview of issue gives you a great context menu that you can use to do common actions like setting the priority, status, and completion percentage.&lt;br /&gt;&lt;br /&gt;The issue tracking also integrates time tracking so you can see the progress.  You have a percentage complete as well as estimated time and actual time.  The time estimations can be tagged with which sub-task took the time (like design, code and test).&lt;br /&gt;&lt;br /&gt;I spent a bit of time messing around with the source control integration.  I decided to try it out with a Git installation I had laying about.  In the end it is pretty simple to actually do, and it provides a simple interface with coloured diffs.  This means it becomes trivial to cross reference issues, documents, code, revisions, and more in one place.  I noticed that the commit comments get added to the reports by adding the issue number.&lt;br /&gt;&lt;br /&gt;The icing on the cake is that it is all wrapped in a clear and intuitive user interface.  It looks good and makes use of all the Javascript goodness that users come to expect and it actually helps to make it easy to use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-9077663273747017766?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/RPm_N8jS0jU" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/9077663273747017766?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/9077663273747017766?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/RPm_N8jS0jU/redmine-part-2.html" title="Redmine - Part 2" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2008/06/redmine-part-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcHSHw_eSp7ImA9WxdREU0.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-1624850581297436347</id><published>2008-05-29T22:13:00.002Z</published><updated>2008-05-29T22:27:19.241Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-29T22:27:19.241Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bugs" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><title>Bug Databases - Redmine</title><content type="html">While on my Internet travels I found a bug database system I hadn't encounterd before called &lt;a href="http://www.redmine.org/"&gt;Redmine&lt;/a&gt;.  It's open-source and based on &lt;a href="http://www.rubyonrails.org/"&gt;Ruby-On-Rails&lt;/a&gt;, and provides much more than simply bugtracking.  It refers to itself as a project management tool as it provides enough tools to do that.&lt;br /&gt;&lt;br /&gt;Features include:&lt;br /&gt;* Per project wiki and forums&lt;br /&gt;* Issue tracking&lt;br /&gt;* Source control integration (Subversion, CVS, Darcs, Bazaar, Mercurial, Git)&lt;br /&gt;* Gantt chart and calendar&lt;br /&gt;* Time tracking functionality&lt;br /&gt;* News, documents &amp; files management&lt;br /&gt;&lt;br /&gt;I did a quick test install on a Ubuntu virtual machine to see what it was like.  The user interface is really quite slick and very easy to use because it makes the most of Javascript.  Even when you have a list view you get a nice context menu to do the simple and most often done changes (priority and the suchlike).&lt;br /&gt;&lt;br /&gt;One of the most interesting parts I found of the system is the paradigm it uses to partition data.  You create a project and it is possible to have per-project wikis, forums, and repositories.  You can even use different source control systems per project. What makes it interesting is that you can point a project at a sub-branch of a repository, so it would be possible to have a project per branch or group of branches.  This would make it much easier to track implementations on a per-branch basis.&lt;br /&gt;&lt;br /&gt;With document and wiki management available it is then possible to integrate the peripheral information for a product with the items involved in actually implementing it.  With the integrated wiki you can also have your requirements and design documents easily at hand.&lt;br /&gt;&lt;br /&gt;I know some of this is very similar to Trac, but it is good to see another tool approaching the same space.  Some of the features like the ease of source control integration is really nice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-1624850581297436347?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/-LkZVtbOV7w" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/1624850581297436347?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/1624850581297436347?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/-LkZVtbOV7w/bug-databases-redmine.html" title="Bug Databases - Redmine" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2008/05/bug-databases-redmine.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQCR3Y9eip7ImA9WxdSFE0.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-4545954906878437924</id><published>2008-05-21T19:37:00.003Z</published><updated>2008-05-21T20:06:06.862Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-21T20:06:06.862Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><title>Web Development - Pylons</title><content type="html">I was reading some information about &lt;a href="http://www.rubyonrails.org/"&gt;Ruby On Rails&lt;/a&gt; and watching a few of the &lt;a href="http://www.rubyonrails.org/screencasts"&gt;screencasts&lt;/a&gt; and I was really impressed about how fast you can create a database-backed website.  One of the good blogs about it is &lt;a href="http://afreshcup.com/"&gt;A Fresh Cup&lt;/a&gt; where a Microsoft refugee embarks on a career in Rails development.  It pointed to a very interesting article &lt;a href="http://glyphobet.net/blog/essay/228"&gt;Ruby’s Not Ready&lt;/a&gt; whcih compares Ruby to Python.&lt;br /&gt;&lt;br /&gt;Through that article I discovered Pyhton has its own "On-Rails" equivalent &lt;a href="http://pylonshq.com/"&gt;Pylons&lt;/a&gt; for rapid website development.  Since Python resources out there are so numerous this would be a very interesting platform to build on.  I guess that also means for enterprising C++ developers using Boost.Python they could have some interesting performance improvements.&lt;br /&gt;&lt;br /&gt;For the most part Pylons seems about as productive as Rails, as outlined in the &lt;a href="http://wiki.pylonshq.com/display/pylonscookbook/Making+a+Pylons+Blog"&gt;tutorial for making a quick blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It's pretty easy to try this stuff out on a &lt;a href="http://www.macports.org/"&gt;Mac&lt;/a&gt; if you have MacPorts installed (and &lt;a href="http://porticus.alittledrop.com/"&gt;Porticus&lt;/a&gt; to make it extra nice).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-4545954906878437924?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/3s0C64hWiLg" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/4545954906878437924?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/4545954906878437924?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/3s0C64hWiLg/web-development-pylons.html" title="Web Development - Pylons" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2008/05/web-development-pylons.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkANQHs6fSp7ImA9WxdSEk8.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-5157077367923599393</id><published>2008-05-19T20:00:00.003Z</published><updated>2008-05-19T20:26:31.515Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-19T20:26:31.515Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="C" /><category scheme="http://www.blogger.com/atom/ns#" term="IDE" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="C++" /><title>Goings On In The Land Of Eclipse</title><content type="html">I've been playing around with some of the Alpha/Beta releases of &lt;a href="http://www.eclipse.org"&gt;Eclipse&lt;/a&gt;.  I haven't played around with it for quite a while but some of the advancements look really interesting.&lt;br /&gt;&lt;br /&gt;Currently Eclipse has &lt;a href="http://update.eclipse.org/downloads/drops/S-3.4M7-200805020100/index.php"&gt;3.4.M7&lt;/a&gt; is available for download.  One of the most interesting features is that the user interface now supports WPF on Vista.  The Java toolkit &lt;a href="http://en.wikipedia.org/wiki/Standard_Widget_Toolkit"&gt;SWT&lt;/a&gt; now has a &lt;a href="http://en.wikipedia.org/wiki/Windows_Presentation_Foundation"&gt;WPF&lt;/a&gt; back-end, you can see its resolution independence if you look at it through the Magnifier application on Windows.  Also, in general, the user interface looks much more integrated into the native platform.&lt;br /&gt;&lt;br /&gt;You can see a list of new and newsworthy items for Eclipse &lt;a href="http://www.eclipsecon.com/swt/R3_3/new_and_noteworthy.html"&gt;3.3 here&lt;/a&gt; and &lt;a href="http://download.eclipse.org/eclipse/downloads/drops/S-3.4M3-200711012000/eclipse-news-M3.html"&gt;3.4 here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The main reason I was trying out the new version was to give the C/C++ toolkit &lt;a href="http://wiki.eclipse.org/CDT/User/NewIn50"&gt;CDT 5.0&lt;/a&gt; a go.  Doug Schaefer has blogged about it &lt;a href="http://cdtdoug.blogspot.com/2008/05/cdt-50-looks-good-now-looking-ahead.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I was just playing a little with it to see how it compared to the older version and it seems a bit faster.  It has the beginnings of some nice refactorings and templates which should make some common coding tasks a bit simpler.&lt;br /&gt;&lt;br /&gt;Hopefully when this all comes out &lt;a href="http://wascana.sourceforge.net/"&gt;Wascana&lt;/a&gt; will have a new version released with a nicely packaged C/C++ development environment for Windows.  It could make a compelling alternative to other IDEs, as well as giving you access to other great tools like PyDev (for Python), Mylyn (task and bug management), and I suppose Java as well...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-5157077367923599393?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/lp3qiKFCSOI" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/5157077367923599393?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/5157077367923599393?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/lp3qiKFCSOI/goings-on-in-land-of-eclipse.html" title="Goings On In The Land Of Eclipse" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2008/05/goings-on-in-land-of-eclipse.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMEQX09eip7ImA9WxdSEUk.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-7011351807708528990</id><published>2008-05-18T19:45:00.003Z</published><updated>2008-05-18T20:26:40.362Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-18T20:26:40.362Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Open-Source" /><category scheme="http://www.blogger.com/atom/ns#" term="Firefox" /><title>Firefox 3 On The Mac</title><content type="html">I've been using Firefox 3 on the Mac for the past month so I thought I'd share some of my experiences when using it.  There release candidate download page is &lt;a href="http://www.mozilla.com/en-US/firefox/all-rc.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The reason I didn't start using it beforehand was because I was waiting for a supported version of the &lt;a href="http://www.delicious.com"&gt;Del.icio.us&lt;/a&gt; bookmarks add-on as it has become indespensible to me.  You can get this &lt;a href="http://blog.delicious.com/blog/2008/04/firefox-3-delicious-and-you.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I run a few add-ons to make it look more integrated with Mac OSX:&lt;br /&gt;* &lt;a href="http://en.design-noir.de/mozilla/locationbar2/"&gt;Locationbar 2&lt;/a&gt; for improving the recognition of URLs.&lt;br /&gt;* &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1951"&gt;Fission&lt;/a&gt; for the progress in the URL field like Safari.&lt;br /&gt;* &lt;a href="http://www.takebacktheweb.org/"&gt;GrApple Delicious (Blue)&lt;/a&gt; theme which looks very good (and integrated on the Mac).&lt;br /&gt;* And don't forget &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1865"&gt;AdBlock Plus&lt;/a&gt; whichever platform you are running on!&lt;br /&gt;&lt;br /&gt;With all of those add-ons working (you can also force add-ons to work by using the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/6543"&gt;Nightly Tester Tools&lt;/a&gt;) I was ready to use Firefox 3.  For a Beta (and now the Release Candidate) it is amazingly stable.&lt;br /&gt;&lt;br /&gt;The entire program is much more responsive and lighter on the system resources.  The integration and look and feel (with the add-ons) is excellent, although I would prefer if spell-checking with edit fields to be on by default (although there is a hack &lt;a href="http://www.osxdaily.com/2007/06/06/enable-spell-checking-in-firefox-text-input-fields/"&gt;here&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;In general it is a large step forward although I am not using the biggest new feature - the bookmarks replacement "Places".  As usual though the major feather in Firefox's cap is the add-ons and once you have them you find it impossible to use anything else.&lt;br /&gt;&lt;br /&gt;Also, I am using it on Windows Vista at work and it is fast, responsive and looks much better, although I would prefer not to have the blue tinge to the window.  I'd recommend upgrading now because once you've tried 3 you can't go back.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-7011351807708528990?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/UATe1dS1siw" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/7011351807708528990?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/7011351807708528990?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/UATe1dS1siw/firefox-3-on-mac.html" title="Firefox 3 On The Mac" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2008/05/firefox-3-on-mac.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QMRn8_eyp7ImA9WxZbEUw.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-1333712040228570317</id><published>2008-04-13T20:28:00.002Z</published><updated>2008-04-13T20:43:07.143Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-13T20:43:07.143Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="STL" /><category scheme="http://www.blogger.com/atom/ns#" term="C++" /><title>Microsoft STL Performance</title><content type="html">On the &lt;a href="http://www.boost.org"&gt;Boost&lt;/a&gt; discussion group there is a discussion started about &lt;a href="http://www.nabble.com/High-Cost-of-MS-"Safe"-STL-for-Release-Builds-td16642449.html#a16642449"&gt;High Cost of MS "Safe" STL for Release Builds&lt;/a&gt;.  It is an interesting look at the massive differences between "safe" and "non-safe" options in Microsoft STL.&lt;br /&gt;&lt;br /&gt;I don't think there has been a clear look at the efficiencies and inefficiencies in the MS-STL implementation, especially with the different options (iterator debugging and safe options).  There have been some looks at comparing different STL implementations but it always difficult to do a good comparison, the main problem being comparing the correct "latest versions".&lt;br /&gt;&lt;br /&gt;Going back a while I was justifying the use of &lt;a href="http://stlport.sourceforge.net/"&gt;STLPort&lt;/a&gt; instead of Microsoft STL supplied with Visual Studio.  Simply, it was a performance thing with both memory and efficiency.  Certainly with the new STLPort visualisers for the Microsoft debugger it is an even playing field for ease of use.&lt;br /&gt;&lt;br /&gt;You can read those here:&lt;br /&gt;* &lt;a href="http://garrys-brain.blogspot.com/2006/10/visual-studio-2005-lets-break.html"&gt;Visual Studio 2005 - Lets Break Everything!&lt;/a&gt; - a bit about how to switch off some of the more annoying "features".&lt;br /&gt;* &lt;a href="http://garrys-brain.blogspot.com/2007/01/development-stlport-versus-microsoft.html"&gt;Development - STLPort versus Microsoft STL performance&lt;/a&gt; - A quick summary of my observations on the performance in a real-world complex application.&lt;br /&gt;* &lt;a href="http://garrys-brain.blogspot.com/2007/01/more-on-stlport-and-microsoft-stl.html"&gt;More on STLPort and Microsoft STL performance&lt;/a&gt; - A little more background.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-1333712040228570317?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/g26hhD_uvBM" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/1333712040228570317?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/1333712040228570317?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/g26hhD_uvBM/microsoft-stl-performance.html" title="Microsoft STL Performance" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2008/04/microsoft-stl-performance.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUNR3s4fip7ImA9WxZbE0o.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-8884565530331136048</id><published>2008-04-12T11:27:00.004Z</published><updated>2008-04-16T19:14:56.536Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-16T19:14:56.536Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="talks" /><category scheme="http://www.blogger.com/atom/ns#" term="accu" /><title>ACCU 2008 Conference Blog Posts</title><content type="html">I thought I'd compile a list of all the blog posts reviewing the ACCU 2008 Conference.  So in no particular order...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.software-acumen.com/"&gt;The Variation Point - Mark Dalgarno&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.software-acumen.com/2008/04/09/agile-methods-lack-result-management-%E2%80%93-gilb-keynote-at-accu-2008/"&gt;Agile methods lack result management – Gilb keynote at ACCU 2008&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.software-acumen.com/2008/04/11/snowflakes-and-architecture-layers-considered-harmful-steve-love-at-accu-2008/"&gt;Snowflakes and Architecture - Layers considered harmful - Steve Love at ACCU 2008&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.software-acumen.com/2008/04/16/when-good-architecture-went-bad-at-accu-2008/"&gt;When Good Architecture Went Bad at ACCU 2008&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://www.riverblade.co.uk/blog.php"&gt;RiverBlade Software Blog&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.riverblade.co.uk/blog.php?archive=2008_03_01_archive.xml#5154458122172743379"&gt;On our way to the ACCU Conference&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.riverblade.co.uk/blog.php?archive=2008_04_01_archive.xml#5886591694562423238"&gt;A Functional Workout&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.riverblade.co.uk/blog.php?archive=2008_04_01_archive.xml#416158763397701065"&gt;This year's fun begins&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.riverblade.co.uk/blog.php?archive=2008_04_01_archive.xml#6589502375417027095"&gt;A Lakos induced day off&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.riverblade.co.uk/blog.php?archive=2008_04_01_archive.xml#5406733889657168345"&gt;Is it Friday already?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.riverblade.co.uk/blog.php?archive=2008_04_01_archive.xml#6807606905401253431"&gt;The Last Day...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.riverblade.co.uk/blog.php?archive=2008_04_01_archive.xml#6479825135926152817"&gt;Post-conference snowballs&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://allankelly.blogspot.com/"&gt;Alan Kelly's Blog&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://allankelly.blogspot.com/2008/04/at-accu-conference.html"&gt;At ACCU Conference&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://allankelly.blogspot.com/2008/04/more-comments-on-accu-conference.html"&gt;More comments on ACCU conference&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://allankelly.blogspot.com/2008/04/presentation-exercises-and-results-from.html"&gt;Presentation, exercises and results from SPA 2008&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://www.jezuk.co.uk/cgi-bin/view/jez"&gt;Jez Higgins&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.jezuk.co.uk/cgi-bin/view/jez?id=3705"&gt;ACCU 2008: Wound Down&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.jezuk.co.uk/cgi-bin/view/jez?id=3707"&gt;ACCU 2008: Robot Wars&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://goodliffe.blogspot.com/"&gt;Pete Goodliffe&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://goodliffe.blogspot.com/2008/04/accu-2008-day-1.html"&gt;Day 1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://goodliffe.blogspot.com/2008/04/accu-2008-pictures.html"&gt;Pictures&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://goodliffe.blogspot.com/2008/04/accu-2008-day-2.html"&gt;Day 2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://goodliffe.blogspot.com/2008/04/accu-2008-day-3.html"&gt;Day 3&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://goodliffe.blogspot.com/2008/04/accu-2008-day-4.html"&gt;Day 4&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://wordaligned.org/"&gt;Word Aligned&lt;/a&gt; - Thomas Guest&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://wordaligned.org/articles/fun-with-erlang-accu-2008"&gt;Fun with Erlang, ACCU 2008&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wordaligned.org/articles/programming-nirvana-plan-b"&gt;Programming Nirvana, Plan B&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://eatmystack.co.uk/camking/"&gt;Stewart's Blog&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://eatmystack.co.uk/camking/?p=12"&gt;It’s April, so it’s time for ACCU 2008!&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://eatmystack.co.uk/camking/?p=13"&gt;Day 1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://eatmystack.co.uk/camking/?p=14"&gt;Day 2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://eatmystack.co.uk/camking/?p=15"&gt;Day 3&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://eatmystack.co.uk/camking/?p=16"&gt;Day 4&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;http: com="" img="" gifa="" href="http://www.artificialworlds.net/blog/"&gt;Andy Balaam’s Blog&lt;br /&gt;&lt;/http:&gt;&lt;ul&gt;&lt;li&gt;&lt;http: com="" img="" gifa="" href="http://www.artificialworlds.net/blog/"&gt;&lt;a href="http://www.artificialworlds.net/blog/2008/04/07/c-is-an-expert-language/"&gt;C++ is an expert language&lt;/a&gt;&lt;/http:&gt;&lt;/li&gt;&lt;/ul&gt;&lt;http: com="" img="" gifa="" href="http://www.artificialworlds.net/blog/"&gt;&lt;br /&gt;&lt;a href="http://codeworks.gnomedia.com/"&gt;gnomedia codeworks&lt;/a&gt;&lt;br /&gt;&lt;/http:&gt;&lt;ul&gt;&lt;li&gt;&lt;http: com="" img="" gifa="" href="http://www.artificialworlds.net/blog/"&gt;&lt;a href="http://codeworks.gnomedia.com/archives/2008/accu/accu-conference-2008-day-1/"&gt;Day 1&lt;/a&gt;&lt;/http:&gt;&lt;/li&gt;&lt;li&gt;&lt;http: com="" img="" gifa="" href="http://www.artificialworlds.net/blog/"&gt;&lt;a href="http://codeworks.gnomedia.com/archives/2008/accu/accu-conference-2008-day-2/"&gt;Day 2&lt;/a&gt;&lt;/http:&gt;&lt;/li&gt;&lt;li&gt;&lt;http: com="" img="" gifa="" href="http://www.artificialworlds.net/blog/"&gt;&lt;a href="http://codeworks.gnomedia.com/archives/2008/accu/accu-conference-2008-day-3/"&gt;Day 3&lt;/a&gt;&lt;/http:&gt;&lt;/li&gt;&lt;li&gt;&lt;http: com="" img="" gifa="" href="http://www.artificialworlds.net/blog/"&gt;&lt;a href="http://codeworks.gnomedia.com/archives/2008/accu/accu-conference-2008-day-4/"&gt;Day 4&lt;/a&gt;&lt;/http:&gt;&lt;/li&gt;&lt;/ul&gt;&lt;http: com="" img="" gifa="" href="http://www.artificialworlds.net/blog/"&gt;&lt;br /&gt;&lt;a href="http://www.voidspace.org.uk/python/weblog/all_by_date.shtml"&gt;Voidspace Techie Blog&lt;/a&gt;&lt;br /&gt;&lt;/http:&gt;&lt;ul&gt;&lt;li&gt;&lt;http: com="" img="" gifa="" href="http://www.artificialworlds.net/blog/"&gt;&lt;a href="http://www.voidspace.org.uk/python/weblog/arch_d7_2008_04_05.shtml#e958"&gt;Report from the ACCU Conference&lt;/a&gt;&lt;/http:&gt;&lt;/li&gt;&lt;/ul&gt;&lt;http: com="" img="" gifa="" href="http://www.artificialworlds.net/blog/"&gt;&lt;br /&gt;&lt;a href="http://olvemaudal.wordpress.com/"&gt;Geektalk&lt;/a&gt; - Olve Maudal&lt;br /&gt;&lt;/http:&gt;&lt;ul&gt;&lt;li&gt;&lt;http: com="" img="" gifa="" href="http://www.artificialworlds.net/blog/"&gt;&lt;a href="http://olvemaudal.wordpress.com/2008/04/10/report-from-accu-2008/"&gt;Report from ACCU 2008&lt;/a&gt;&lt;/http:&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://www.lily.org/blog/"&gt;Dispatches from Maine&lt;/a&gt; - Christian Ratliff&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.lily.org/blog/2008/04/accu-day-one.html"&gt;Day One&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.lily.org/blog/2008/04/accu-day-two.html"&gt;Day Two&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-8884565530331136048?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/ROLBVi4YMCI" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/8884565530331136048?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/8884565530331136048?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/ROLBVi4YMCI/accu-2008-conference-blog-posts.html" title="ACCU 2008 Conference Blog Posts" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2008/04/accu-2008-conference-blog-posts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIFRXY7cCp7ImA9WxZUGUk.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-5782731366639656336</id><published>2008-04-11T20:28:00.005Z</published><updated>2008-04-11T20:58:34.808Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-11T20:58:34.808Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Open-Source" /><title>Sharing Is Good - The Open-Source Insomniac</title><content type="html">&lt;a href="http://www.insomniacgames.com/"&gt;Insomniac Games&lt;/a&gt; who are behind Ratchet &amp;amp; Clank and Resistance: Fall Of Man have recently decided to start sharing knowledge.  Gaming is a notoriously secretive industry and is not well renowned for its open-ness, and Insomniac think its mad that developers keep reinvenhttp://www.blogger.com/img/gl.link.gifting the same core pieces of functionality that don't even make up the bread'n'butter of gaming.&lt;br /&gt;&lt;br /&gt;First up is the &lt;a href="http://www.insomniacgames.com/tech/techpage.php"&gt;R&amp;amp;D section on their website&lt;/a&gt;.  This section contains presentations and papers about various subjects including graphics, gameplay, memory and performance.&lt;br /&gt;&lt;br /&gt;Next up is the open-source BSD-style licensed code.  The section is called the &lt;a href="http://nocturnal.insomniacgames.com/index.php/Main_Page"&gt;Nocturnal Initiative&lt;/a&gt; and is a wiki.  There are links to community forums which aren't busy yet.&lt;br /&gt;&lt;br /&gt;At the moment some of the source code available is:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;C++ Delegate/Event System&lt;/li&gt;&lt;li&gt;Pointer to reference counted objects&lt;/li&gt;&lt;li&gt;Pointer to heap allocated arrays&lt;/li&gt;&lt;li&gt;Endian conversion code&lt;/li&gt;&lt;li&gt;Insertion ordered std::set&lt;/li&gt;&lt;li&gt;Reversible key and value std::map&lt;/li&gt;&lt;li&gt;Interprocess Communication&lt;/li&gt;&lt;ul&gt;&lt;li&gt;      Fast non-blocking message-based design&lt;/li&gt;&lt;li&gt;      Works over BSD-style sockets (TCP) or Named Pipes&lt;/li&gt;&lt;li&gt;Windows platform included, additional platforms are easily added&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Debugging Helpers&lt;/li&gt;&lt;ul&gt;&lt;li&gt;      PDB-based symbol information querying&lt;/li&gt;&lt;li&gt;      Capture stacks within your program making heap object tracking and leak debugging easier&lt;/li&gt;&lt;li&gt;      Give your application automatic crash reports dispatched via email that contain handy user/machine informaton, call stack, and memory page allocation stats&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Console Output Manager&lt;/li&gt;&lt;ul&gt;&lt;li&gt;      Log console output to one or more trace files&lt;/li&gt;&lt;li&gt;      Color code the console output based on Error/Warning/Debug print statements&lt;/li&gt;&lt;li&gt;Throttle output verbosity (configured via command line arg or environment variable)&lt;/li&gt;&lt;li&gt;      Outline nested stages of processing performed by your application (for builders/exporters)&lt;/li&gt;&lt;li&gt;      Augment crash reports with the current outline state of your application (very useful for tracking down new crash bugs)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Instrumenting Profiler&lt;/li&gt;&lt;ul&gt;&lt;li&gt;      Cross platform (Windows and PS3 currently)&lt;/li&gt;&lt;li&gt;      Macro-instrumented stack timer based profiler&lt;/li&gt;&lt;li&gt;      Concise profile report printed out at program exit&lt;/li&gt;&lt;li&gt;      Logs instance data out to human readable log file (Profile Analyzer is in development)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;C++ Reflection&lt;/li&gt;&lt;ul&gt;&lt;li&gt;      Instrument your application classes and register them with the type registry&lt;/li&gt;&lt;li&gt;      Can serialize object instances to XML or our (faster) custom binary format&lt;/li&gt;&lt;li&gt;      Flexible parsing mechanics allow you to read in old versions of your class&lt;/li&gt;&lt;li&gt;      Handles renaming member variables as well as changing member type (within reasonable limits)&lt;/li&gt;&lt;li&gt;      Supports serializing std::vector, std::set, and std::map containers with primitives or pointers to other reflect objects&lt;/li&gt;&lt;li&gt;  Supports serializing enum and bitfield members using string representation (supports reordering enum elements)&lt;/li&gt;&lt;li&gt;      Provides for automatic object comparison and cloning&lt;/li&gt;&lt;li&gt;      Implements introspection using a visitor interface&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;Some of it looks pretty good.  I hope this means that there is more sharing of C++ code which is always a good thing, maybe even some of the libraries could be Boost-ified...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-5782731366639656336?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/RvtjfAoGZsE" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/5782731366639656336?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/5782731366639656336?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/RvtjfAoGZsE/sharing-is-good-open-source-insomniac.html" title="Sharing Is Good - The Open-Source Insomniac" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2008/04/sharing-is-good-open-source-insomniac.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IAQ3c6cCp7ImA9WxZUGUk.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-7404781399198420456</id><published>2008-04-11T19:22:00.004Z</published><updated>2008-04-11T20:25:42.918Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-11T20:25:42.918Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="STL" /><category scheme="http://www.blogger.com/atom/ns#" term="C++" /><title>More STL - MCSTL and STXXL</title><content type="html">In a few previous posts I have mentioned some alternative STL implementations.  You can read about &lt;a href="http://garrys-brain.blogspot.com/2008/03/stl-related-rdestl.html"&gt;rdestl here&lt;/a&gt; as well as &lt;a href="http://garrys-brain.blogspot.com/2008/03/more-stl-ustl-and-stdcxx.html"&gt;uSTL and stdcxx here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I've stumbled across a couple of other STL implementations for more specific purposes that I thought some people might find useful.&lt;br /&gt;&lt;br /&gt;First up is &lt;a href="http://algo2.iti.uni-karlsruhe.de/singler/mcstl/"&gt;MCSTL - The Multi-Core Standard Template Library&lt;/a&gt; which is a multi-core implementation of certain STL algorithms.  This has actually been integrated into the GCC STL implementation with version 4.3.  It uses OpenMP internally for the multi-threading so would be limited to compilers with valid implementations of that functionality.&lt;br /&gt;&lt;br /&gt;Next up there is &lt;a href="http://stxxl.sourceforge.net/"&gt;STXXL: Standard Template Library for Extra Large Data Sets&lt;/a&gt;.  I think the blurb sums it up:&lt;br /&gt;&lt;blockquote&gt;The core of STXXL is an implementation of the C++ standard template library STL for external memory (out-of-core) computations, i.e., STXXL implements containers and algorithms that can process huge volumes of data that only fit on disks. While the compatibility to the STL supports ease of use and compatibility with existing applications, another design priority is high performance.&lt;/blockquote&gt;After seeing some extra long and large computations on huge data sets this can be used to get around limitations of the platform with less addressable space.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-7404781399198420456?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/SUDQbJZhvHQ" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/7404781399198420456?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/7404781399198420456?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/SUDQbJZhvHQ/more-stl-mcstl-and-stxxl.html" title="More STL - MCSTL and STXXL" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2008/04/more-stl-mcstl-and-stxxl.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4BSHg5fip7ImA9WxZUGEg.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-4859488612092190516</id><published>2008-04-10T19:31:00.003Z</published><updated>2008-04-10T19:49:19.626Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-10T19:49:19.626Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2008" /><category scheme="http://www.blogger.com/atom/ns#" term="STL" /><category scheme="http://www.blogger.com/atom/ns#" term="MFC" /><category scheme="http://www.blogger.com/atom/ns#" term="C++" /><category scheme="http://www.blogger.com/atom/ns#" term="GUI" /><title>Visual C++ 2008 Feature Pack Released</title><content type="html">Good news for Windows C++ developers the update to Visual Studio 2008 &lt;a href="http://blogs.msdn.com/somasegar/archive/2008/04/07/visual-c-2008-feature-pack-shipped.aspx"&gt;has been released&lt;/a&gt;.  This "Feature Pack" contains some of the new TR1 C++ standard library as well as a major MFC update.&lt;br /&gt;&lt;br /&gt;Details from the Visual C++ Team Weblog can be found &lt;a href="http://blogs.msdn.com/vcblog/archive/2008/04/07/visual-c-2008-feature-pack-released.aspx"&gt;here&lt;/a&gt; with some videos and links.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;TR1 Update&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The TR1 update is an integration of some more &lt;a href="http://www.dinkumware.com/"&gt;Dinkumware&lt;/a&gt; library functionality.  The features available are:&lt;br /&gt;* array - Defines the container template class array and several supporting templates.&lt;br /&gt;* functional - Defines several templates that help construct function objects, which are objects of a type that defines operator(). A function object can be a function pointer, but more typically, the object is used to store additional information that can be accessed during a function call.&lt;br /&gt;* memory - Defines a class, an operator, and several templates that help allocate and free objects.&lt;br /&gt;* random - Defines many random number generators.&lt;br /&gt;* regex - Defines a template class to parse regular expressions, and several template classes and functions to search text for matches to a regular expression object.&lt;br /&gt;* tuple - Defines a template tuple Class whose instances hold objects of varying types.&lt;br /&gt;* type_traits - Defines templates that provide compile-time constants that give information about the properties of their type arguments.&lt;br /&gt;* unordered_map - Defines the container template classes unordered_map and unordered_multimap and their supporting templates.&lt;br /&gt;* unordered_set - Defines the container template classes unordered_multiset and unordered_set and their supporting templates.&lt;br /&gt;* utility - Defines several general templates that can be used throughout the Standard Template Library.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;MFC Update&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The MFC Update integrates BCGSoft's libraries into the base MFC and provides masses of useful user interface constructs for native developers.  Details from the Visual C++ Weblog is &lt;a href="http://blogs.msdn.com/vcblog/archive/2008/04/07/mfc-update-powered-by-bcgsoft.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Some of the new features are:&lt;br /&gt;* Office 2007 Ribbon Bar:  Ribbon, Pearl, Quick Access Toolbar, Status Bar, etc.&lt;br /&gt;* Office 2003 and XP look:  Office-style toolbars and menus, Outlook-style shortcut bar, print preview, live font picker, color picker, etc.&lt;br /&gt;* Visual Studio look:  sophisticated docking functionality, auto hide windows, property grids, MDI tabs, tab groups, etc.&lt;br /&gt;* Internet Explorer look:  Rebars and task panes.&lt;br /&gt;* Vista theme support.&lt;br /&gt;* “On the fly” menus and toolbar customization:  users can customize the running application through live drag and drop of menu items and toolbar buttons.&lt;br /&gt;* Shell management classes:  use these classes to enumerate folders, drives and items, browse for folders and more.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can download all this from &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=D466226B-8DAB-445F-A7B4-448B326C48E7&amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-4859488612092190516?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/xW5-TBVlzs8" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/4859488612092190516?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/4859488612092190516?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/xW5-TBVlzs8/visual-c-2008-feature-pack-released.html" title="Visual C++ 2008 Feature Pack Released" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2008/04/visual-c-2008-feature-pack-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4CQno4eSp7ImA9WxZUGEg.&quot;"><id>tag:blogger.com,1999:blog-35345378.post-6786153709696247490</id><published>2008-04-10T18:04:00.003Z</published><updated>2008-04-10T19:16:03.431Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-10T19:16:03.431Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="git" /><category scheme="http://www.blogger.com/atom/ns#" term="Source Control" /><title>Git For Windows - msysgit</title><content type="html">Today I finally got a chance to install &lt;a href="http://code.google.com/p/msysgit/"&gt;msysgit&lt;/a&gt; - the Git port for Windows using &lt;a href="http://www.mingw.org"&gt;MinGW&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I was extremely impressed with the painless install and the ease of integration (into the shell context menu and the commandline).  The installer size is a trim 8Mb so it is a quick download to try out.&lt;br /&gt;&lt;br /&gt;The main thing I have tried out at the moment is the newly functioning (for Windows) Subversion bridge.  The git-svn import seems fairly speedy even on Windows and works seamlessly.  It is interesting how efficiently the data gets stored inteh repository as well, and the possibility of reconstructing information that has been lost due to file moves and other lossy operations in Subversion.&lt;br /&gt;&lt;br /&gt;Git-GUI also works.  Obviously it does not look spiffy and shiny but presents the information you need, and access to the operations you need (on a basic level).&lt;br /&gt;&lt;br /&gt;I would say Git For Windows is very close to being "ready" and providing you are not in need of the more difficult corner cases it is ready for production use.  The guys working on it have done a great job.&lt;br /&gt;&lt;br /&gt;Now all we need is their version of TortoiseSVN to take off called &lt;a href="http://repo.or.cz/w/git-cheetah.git/"&gt;git-cheetah&lt;/a&gt; (which probably is getting easier thanks to some of the Tortoises sharing code now to do with displaying overlays).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Git Is The New Unix&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There is a great article about what Git really means as a platform.  You can read it &lt;a href="http://www.advogato.org/person/apenwarr/diary/371.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This kind of opened my eyes to how Git differs from not only other source control systems, but other distributed source control systems.  I recommend giving it a quick read.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35345378-6786153709696247490?l=garrys-brain.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarrysBitPatterns/~4/LChiQsRZW2Q" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/6786153709696247490?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/35345378/posts/default/6786153709696247490?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarrysBitPatterns/~3/LChiQsRZW2Q/git-for-windows-msysgit.html" title="Git For Windows - msysgit" /><author><name>Garry Bodsworth</name><uri>http://www.blogger.com/profile/17628331980461686347</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://garrys-brain.blogspot.com/2008/04/git-for-windows-msysgit.html</feedburner:origLink></entry></feed>

