<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-7217962</atom:id><lastBuildDate>Thu, 07 Aug 2008 19:53:59 +0000</lastBuildDate><title>Tin Can Camera</title><description/><link>http://www.tincancamera.com/blog/</link><managingEditor>noreply@blogger.com (Pete Kirkham)</managingEditor><generator>Blogger</generator><openSearch:totalResults>126</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-8929642460288397507</guid><pubDate>Thu, 07 Aug 2008 19:45:00 +0000</pubDate><atom:updated>2008-08-07T20:53:59.982+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>kin</category><title>Why Type</title><atom:summary type='text'>For work, I'm demoing a GUI editor, which means undo would be nice, which is easiest to implement if you enforce purely functional data structures. So I'm doing a bit of reading as to how to implement suitable structures in Java 1.6, as that's the project's target language, and using Eric Lippert's examples as part of my reference material.

There was also yet another thread on </atom:summary><link>http://www.tincancamera.com/blog/2008/08/why-type.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-740492999980356270</guid><pubDate>Mon, 30 Jun 2008 22:45:00 +0000</pubDate><atom:updated>2008-07-01T01:07:32.617+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>math</category><title>Cedric's challenge, C port and analytic attempt</title><atom:summary type='text'>I was a bit disappointed that the C port of the previous code wasn't quite as fast as another approach which cached more state instead of generating the i'th value. The second attempt, using the bcd lists was comparable to John Wilson's Java version (1.3 seconds rather that 1.5 reported by the Java), and an attempt using bitsets a bit slower. Timings on Eee pc 900, Ubuntu hardy heron. The code is</atom:summary><link>http://www.tincancamera.com/blog/2008/06/cedrics-challenge-c-port-and-analytic.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-5558892571476588644</guid><pubDate>Sat, 28 Jun 2008 15:44:00 +0000</pubDate><atom:updated>2008-06-28T16:50:41.948+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>python</category><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>A coding challenge</title><atom:summary type='text'>An implementation of the coding challenge of Cedric's.

Somewhat coloured by the fact I normally use python as a prototyping language prior to production coding in C++. 

The combinations technique (using a bcd string instead of list) gets faster than the filtering technique for max somewhere between 1,000,0000 and 10,000,0000. As python is bytecode, it may be slower to bit-twiddle than use a </atom:summary><link>http://www.tincancamera.com/blog/2008/06/coding-challenge.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-1791579750591271281</guid><pubDate>Thu, 12 Jun 2008 20:17:00 +0000</pubDate><atom:updated>2008-06-14T14:39:51.385+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ubiquitous-computing</category><category domain='http://www.blogger.com/atom/ns#'>ubuntu</category><title>Eee's are good, Eee's are good</title><atom:summary type='text'>I got an Asus Eee PC the other week, and spent the weekend and the last few evenings putting Ubuntu 8.04 on it (compiz, Ubuntu studio themes, several desktop tweaks, scite text editor, installing wifi and other drivers). It's small and cute. The screen is surprisingly legible, even for tiny text at arms length, and it's smoother than my big laptop running compiz.

As I don't have a USB DVD drive,</atom:summary><link>http://www.tincancamera.com/blog/2008/06/eees-are-good-eees-are-good.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-9016383683213368967</guid><pubDate>Tue, 03 Jun 2008 22:23:00 +0000</pubDate><atom:updated>2008-06-03T23:28:04.392+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>geo</category><category domain='http://www.blogger.com/atom/ns#'>python</category><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>On the map</title><atom:summary type='text'>Received a little gps 'mouse' receiver in the post today, and (having installed gpsd and python-gps) have got it running as a local service with my first google maps mashup. The server is here, it just shows a google map centred on the current location. I now need to wait until I get a mobile broadband dongle and the new tiny laptop I've ordered (Asus eee 900) and then can have gps on the road (</atom:summary><link>http://www.tincancamera.com/blog/2008/06/on-map.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-2438445072703294118</guid><pubDate>Wed, 28 May 2008 21:36:00 +0000</pubDate><atom:updated>2008-05-29T00:22:16.189+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>uml</category><category domain='http://www.blogger.com/atom/ns#'>python</category><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>Python and EA</title><atom:summary type='text'>For my current contract, I'm part of a team producing scripts which define interfaces to equipment in a satellite communications system for monitoring and control. Various interfaces, serial, low-level TCP and SNMP.

The application is fairly old - originated on Unix in early 1990s, ported to MFC late 1990s - and there are many links between the various configuration files. It's a high </atom:summary><link>http://www.tincancamera.com/blog/2008/05/python-and-ea.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-8876163723336053591</guid><pubDate>Tue, 20 May 2008 21:49:00 +0000</pubDate><atom:updated>2008-05-20T23:04:09.750+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>Lambda The Ultimate and Matrix Distractions</title><atom:summary type='text'>I had been reading up a bit on trace-based JIT. I'm not sure that there's any real difference between trace based and method based JIT if each branch is converted to CPS style call with type feedback. Which means removing the optimisation of having jumps and branches from the bytecode, and replacing them with dynamic calls. 

But then I got distracted by a discussion of Strassen matrix </atom:summary><link>http://www.tincancamera.com/blog/2008/05/lambda-ultimate-and-matrix-distractions.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-8307802797791755309</guid><pubDate>Wed, 30 Apr 2008 20:51:00 +0000</pubDate><atom:updated>2008-04-30T22:20:00.696+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>Test of syntax highlight</title><atom:summary type='text'>Test of the syntaxhighlighter:


    # generic sequence trait
    trait seq&lt;T&gt;
        def empty : boolean
        def head : T
        def tail : seq&lt;T&gt;
        def to_string =&gt; '[' ++ join(self, ', ') ++ ']'
        def concat (other:seq&lt;T&gt;)
            =&gt; other.empty ? self : shift(other, reverse)
        def reverse =&gt; shift([], self)
</atom:summary><link>http://www.tincancamera.com/blog/2008/04/test-of-syntax-highlight.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-7359761291744715275</guid><pubDate>Fri, 25 Apr 2008 08:55:00 +0000</pubDate><atom:updated>2008-04-25T10:53:22.181+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>uml</category><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>kin</category><category domain='http://www.blogger.com/atom/ns#'>languages</category><title>Some things I'm thinking about</title><atom:summary type='text'>I've been playing more with my mostly functional modelling and simulation language (kin), here are some ideas which I want to try and profile to see if they offer gains:

Carrying type and data as a tuple:
Some implementation of Scheme and JavaScript use a single void* size datum for each object, and for integers set the lowest bit and encode the value in the rest, and for other objects the </atom:summary><link>http://www.tincancamera.com/blog/2008/04/some-things-im-thinking-about.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-8939523464531964508</guid><pubDate>Sun, 20 Apr 2008 21:29:00 +0000</pubDate><atom:updated>2008-04-20T22:50:35.891+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>c++</category><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>kin</category><category domain='http://www.blogger.com/atom/ns#'>languages</category><title>Bjarne Stroustrup on the Evolution of Languages</title><atom:summary type='text'>A few comments on this -

The illustrations in the interview don't appear related other than that they are of an IDE ("I might have a different opinion if a good IDE was universally available", queue Visual Studio, which implies that VS isn't a good IDE) and that the UML is illustrating multiple inheritance, but  mechanism for dispatch in the paper is not based on multiple inheritance (at least </atom:summary><link>http://www.tincancamera.com/blog/2008/04/bjarne-stroustrup-on-evolution-of.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-256671724281714997</guid><pubDate>Sun, 13 Apr 2008 10:14:00 +0000</pubDate><atom:updated>2008-04-13T11:29:50.233+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>art</category><category domain='http://www.blogger.com/atom/ns#'>patterns</category><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>Andy Goldsworthy - Rivers and Tides</title><atom:summary type='text'>We got the DVD as a wedding gift, and watched it last night. 

I like Andy Goldsworthy, both for his aesthetic and the humility that lets a work exist within an environment which makes it transient, or fluid.

Watching him create a work, sometimes it would fall. Often it was compromised to fit with the time scale imposed by the environment by tide or light.  

At each fall, a discovery. More of </atom:summary><link>http://www.tincancamera.com/blog/2008/04/andy-goldsworthy-rivers-and-tides.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-8017364174698801995</guid><pubDate>Tue, 08 Apr 2008 08:44:00 +0000</pubDate><atom:updated>2008-04-08T09:47:44.419+01:00</atom:updated><title>Boot Wierdness</title><atom:summary type='text'>Note to self:

I added bootparamsd to my bubba (so I can increase RAM disk size), and now if it's plugged into the ADSL I can't get the internet.

Also, continuing errors on booting the Amilo A1650g - added noapic to the boot params and turned off fast boot in the bios. Still don't know why there's a IRQ conflict.</atom:summary><link>http://www.tincancamera.com/blog/2008/04/boot-wierdness.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-6110536911834837166</guid><pubDate>Sat, 29 Mar 2008 18:13:00 +0000</pubDate><atom:updated>2008-04-03T18:13:59.084+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>c++</category><category domain='http://www.blogger.com/atom/ns#'>kin</category><category domain='http://www.blogger.com/atom/ns#'>languages</category><title>More kin musings</title><atom:summary type='text'>Back from finishing a contract in Malvern, and have had a few ideas on kin.

If general allocation is monomorphic arrays in column order, then single object representation is just a stride of 1 and a length of 1, and padded as required.

Assumption is that the code will operate on arrays, so compiler should default to vector ops where possible.

Need some basic constructs before starting, </atom:summary><link>http://www.tincancamera.com/blog/2008/03/more-kin-musings.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-6371143261447424825</guid><pubDate>Sat, 29 Mar 2008 12:13:00 +0000</pubDate><atom:updated>2008-03-29T12:25:50.249Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>personal</category><title>Update</title><atom:summary type='text'>I haven't posted since November, as I've been a bit busy.

I got married on the 29th December.

I left my job writing an interpreter for real-time simulation in South Wales so I could come to Glasgow and had employment at Crocodile Clips in Edinburgh, writing electronics and physics simulation software for schools. Unfortunately, Crocodile lost a large order so failed to honour that contract, so </atom:summary><link>http://www.tincancamera.com/blog/2008/03/update.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-6767037958515632672</guid><pubDate>Mon, 28 Jan 2008 10:34:00 +0000</pubDate><atom:updated>2008-03-29T12:13:47.956Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>languages</category><title>Plays well with others?</title><atom:summary type='text'>&gt; I know large systems can be built statically...I've also done it dynamically in more than one dynamic language.
That hasn't quite been my experience - every large system I've worked on has ended up getting layered into a static core with dynamic or DSL scripting. Greenspun's tenth rule.

On the other hand, even medium applications I've been involved in which were implemented only in a dynamic </atom:summary><link>http://www.tincancamera.com/blog/2008/01/plays-well-with-others.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-14273009365452972</guid><pubDate>Thu, 01 Nov 2007 09:01:00 +0000</pubDate><atom:updated>2007-11-01T10:14:39.245Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>c++</category><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>widefinder</category><category domain='http://www.blogger.com/atom/ns#'>concurrency</category><title>One more wide-finder</title><atom:summary type='text'>Since previous efforts didn't print the results summary, they weren't really complete, so here are two more variants using a vector (tbrayA.cpp) and a priority queue (tbrayB.cpp) to get the top 10 entries.  

There's a pthread parallel version of the B variant (tbrayB_parallel.cpp). The main thread reads chunks, scans back to a line break, and hands off the chunk to a pool of worker objects, </atom:summary><link>http://www.tincancamera.com/blog/2007/11/one-more-wide-finder.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-5115170659546449217</guid><pubDate>Fri, 26 Oct 2007 18:45:00 +0000</pubDate><atom:updated>2007-10-26T20:10:36.373+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>kin</category><category domain='http://www.blogger.com/atom/ns#'>gc</category><title>Garbage</title><atom:summary type='text'>I've been thinking a bit about garbage collection and stack allocation, and both Robert O'Callahan and phaeron at virtualdub seem to have been.

Chicken scheme seems to have something interesting - a single stack which is collected on exhaustion (rather than C# or Java VMs which have a traditional program stack and a stack based allocator), so I'm thinking about implementing a </atom:summary><link>http://www.tincancamera.com/blog/2007/10/garbage.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-9211519055666450152</guid><pubDate>Thu, 18 Oct 2007 21:39:00 +0000</pubDate><atom:updated>2007-10-18T23:40:30.910+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>metaprogramming</category><category domain='http://www.blogger.com/atom/ns#'>math</category><category domain='http://www.blogger.com/atom/ns#'>languages</category><title>I hate everybody</title><atom:summary type='text'>Well, every programming language I've ever used anyway.

Not a lot to report, I've faded off of doing the wide-finder thing as the MPI ruby code was about as good as I could expect in elegance, and I'm more interested in other stuff at the moment. It did get me annoyed with C++ again, in that its primary mechanisms for specialisation - template metaprogramming and single dispatch polymorphism - </atom:summary><link>http://www.tincancamera.com/blog/2007/10/i-hate-everybody.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-5843617658849009254</guid><pubDate>Fri, 05 Oct 2007 22:32:00 +0000</pubDate><atom:updated>2007-10-05T23:43:12.011+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>parallel</category><category domain='http://www.blogger.com/atom/ns#'>widefinder</category><category domain='http://www.blogger.com/atom/ns#'>concurrency</category><title>A few more thoughts on concurrency and high-level languages</title><atom:summary type='text'>I little while ago, I started playing with a pattern-matching and relational language for meta-programming called 'kin' (it's got relations, and does pattern, so kin/kinship).

Being a machine elf rather than a language lawyer, I never could come up with a decent user syntax for it; I've toyed with making it a lisp (either L1 like scheme or L2 like common lisp; I wrote something that used lisp </atom:summary><link>http://www.tincancamera.com/blog/2007/10/few-more-thoughts-on-concurrency-and.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-8672195134919295791</guid><pubDate>Fri, 05 Oct 2007 19:52:00 +0000</pubDate><atom:updated>2007-10-05T20:57:36.693+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>c++</category><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>widefinder</category><title>POITROAI</title><atom:summary type='text'>For this particular problem, the principles are more important that the exact results, but I'm happier with tbray7.cpp which gives the same results as the regex in the original ruby code:fortinbras:$ time bin/tbray7 datasets/hundred-o10k.ap 
matches: 95400

real    0m0.439s
user    0m0.284s
sys     0m0.144sThe file was in cache for that one so ignore the real time; the important thing is that the</atom:summary><link>http://www.tincancamera.com/blog/2007/10/poitroai.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-5266092327999232129</guid><pubDate>Thu, 04 Oct 2007 21:40:00 +0000</pubDate><atom:updated>2007-10-04T22:57:52.102+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>c++</category><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>widefinder</category><category domain='http://www.blogger.com/atom/ns#'>solaris</category><title>Of course, it helps if you tell gcc to generate a 64 bit executable</title><atom:summary type='text'>... when you're using 64 bit operations:
tercel-2:$ time bin32/tbray4 datasets/hundred-o10k.ap 
user    0m5.644s
tercel-2:$ time bin32/tbray6 datasets/hundred-o10k.ap 
user    0m4.048s
tercel-2:$ time bin/tbray4 datasets/hundred-o10k.ap 
user    0m5.725s
tercel-2:$ time bin/tbray6 datasets/hundred-o10k.ap 
user    0m3.839sI'd assumed it would default as it does on linux, but no. Which also </atom:summary><link>http://www.tincancamera.com/blog/2007/10/of-course-it-helps-if-you-tell-gcc-to.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-1502970738250787860</guid><pubDate>Tue, 02 Oct 2007 22:19:00 +0000</pubDate><atom:updated>2007-10-03T19:24:48.888+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>c++</category><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>widefinder</category><category domain='http://www.blogger.com/atom/ns#'>concurrency</category><title>Some fingers in the air.</title><atom:summary type='text'>I got Steve Vinoski's 2007/09/29 erlang code, installed hipe and the bfile module, and it ran on the laptop:
fortinbras:$ cat ../datasets/thousand-o10k.ap &gt; /dev/null
fortinbras:$ time erl -smp -noshell -run tbray5 main 512 ../datasets/hundred-o10k.ap 
110100 matches found

user    1m23.649s
real    1m33.683s
sys     0m1.620sI'm not sure looking at either mine or Steve's code where the 1101th </atom:summary><link>http://www.tincancamera.com/blog/2007/10/some-fingers-in-air.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-1846046089206546881</guid><pubDate>Tue, 02 Oct 2007 18:31:00 +0000</pubDate><atom:updated>2007-10-02T20:00:54.473+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>art</category><title>It's a glitch in the Matrix..</title><atom:summary type='text'>Real wire-frame car</atom:summary><link>http://www.tincancamera.com/blog/2007/10/its-glitch-in-matrix.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-6141100997778189079</guid><pubDate>Sun, 30 Sep 2007 13:50:00 +0000</pubDate><atom:updated>2007-10-01T23:18:21.742+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>c++</category><category domain='http://www.blogger.com/atom/ns#'>algorithms</category><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>parallel</category><category domain='http://www.blogger.com/atom/ns#'>widefinder</category><title>Data-wide wide-finder</title><atom:summary type='text'>Running a test with just breaking into lines without the matching, compared to the non-MPI version with matching runs on the 100x file in 380ms user time rather than 720ms. So there is work in both parts of the string processing.

Parallelising the scan for newlines to work on 8 chars at a time gives a reduction to around 220ms.

Restoring the matching, and parallelising the scan for the first </atom:summary><link>http://www.tincancamera.com/blog/2007/09/data-wide-wide-finder.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7217962.post-7270832174561254421</guid><pubDate>Sat, 29 Sep 2007 20:56:00 +0000</pubDate><atom:updated>2007-10-01T23:13:45.623+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>c++</category><category domain='http://www.blogger.com/atom/ns#'>fortress</category><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>parallel</category><category domain='http://www.blogger.com/atom/ns#'>widefinder</category><category domain='http://www.blogger.com/atom/ns#'>languages</category><category domain='http://www.blogger.com/atom/ns#'>concurrency</category><title>Wide finder, parallelism and languages</title><atom:summary type='text'>Tim Bray, who knows about web search and was part of the XML specification process, is experimenting with exploiting parallelism in his wide finder project.

I'm interested in parallelism (running similar processes on multiple hardware) and concurrency (having multiple collaborating threads of control in a system), as many interesting problems are intrinsically concurrent, and as hardware isn't </atom:summary><link>http://www.tincancamera.com/blog/2007/09/wide-finder-parallelism-and-languages.html</link><author>noreply@blogger.com (Pete Kirkham)</author></item></channel></rss>