tag:blogger.com,1999:blog-72179622010-03-19T18:38:11.479ZTin Can CameraSomewhere on the vast net, just merging along with the entire domain...Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.comBlogger147125tag:blogger.com,1999:blog-7217962.post-65093922866751569572010-03-19T18:20:00.003Z2010-03-19T18:38:11.489ZSome N-gauge templatesMy parents moved house recently, and I have the model railway which was sitting in their loft for a couple of decades back. I'm building a new layout, so made some paper templates for planning the track. They'll appear here in due course.So far, the options for printing them are a bit limited - they have a 200x256mm area to suit my printer and use millimetres as SVG dimensions. Google Chrome Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-19538386746272637122010-03-19T18:17:00.003Z2010-03-19T18:20:51.680ZService AnnouncementThis blog has been hosted on Blogger and uses FTP to publish static files to www.tincancamera.com/blog . Blogger are stopping support for FTP, so you will need to point your browsers to http://blog.tincancamera.com and readers to this feed instead.Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-79568421265119453722010-03-19T13:29:00.006Z2010-03-19T13:56:25.081ZSqueezebox (more things I'll forget)I've had a squeezebox for about 14 months, about half of which time it hasn't worked. This was due to a combination of excito 'Bubba' (a small ARM based file server) not supporting upgrading their Debian installation without losing such things as power management, and squeezecentre being appalling bad at supporting old versions. I needed to upgrade the OS to use my backup drive - connecting a Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-91858937491465580622009-11-21T17:54:00.003Z2009-11-21T17:59:02.801ZTrees, Forests, Vines.My current clients are using Model Driven Development for a new product line. Obviously I'm not able to say what the product line is, but that doesn't matter for the work I have to do, which to do with issues they are having working with model consistency between distributed teams on three sites. It actually is quite close in spirit to a project on hypertext repositories for multi-view Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-40862055997226048172009-11-06T11:16:00.010Z2009-11-06T13:45:20.310ZWhere does the energy for a solar-powered mole scarer come from?This question was given as an example of a poor science question on the today programme today, as the presenters declared that the answer is obvious to anyone with basic literacy and has nothing to do with science or mathematics."For every problem there is a solution which is simple, obvious, and wrong."— Albert EinsteinTaking this as an example of a solar-powered mole scarer, it consists of a Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-81743318002840263202009-10-09T16:00:00.010+01:002009-10-09T17:37:44.746+01:00Re: Why is UML so hard?In response to Why is UML so hard?In the late '90s I was working as a research associate at the University of York looking at CASE ( computer aided systems engineering ) tools and notations when UML started to happen to the industry as a merger of some OO notations developed in industry from experience in the '70s and '80s. The academic world had already learnt from the cognitive science and Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com3tag:blogger.com,1999:blog-7217962.post-73840913346995917512009-10-05T14:32:00.005+01:002009-10-05T15:44:02.360+01:00Random ListsAs kin has support for pattern matching and sequences at its heart, it's natural to formulate a random number generator as a generator of a sequence of random numbers.For example, this is the same linear congruent shift register as used in java.util.Random: type lcsr ( seed : uint64 ) : seq [ uint32 ] def head : uint32 => uint32 ( self.seed >> 16 ) def tail : lcsr => lcsr ( ( Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-72861112054937766212009-07-07T09:04:00.003+01:002009-07-07T09:08:24.316+01:00They have been had over?I've been using Chrome on my netbook, which doesn't have Flash. Not everyone's sites seem to notice.Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-41097009732220732802009-07-03T09:11:00.003+01:002009-07-03T09:26:12.516+01:00Engineers' StigmergyGetting some work done on my car, I noticed that the last garage to service it had left a little label on the door pillar with the mileage and type of oil put in last time.I've done a fair bit of maintenance and porting of long-term applications, the oldest ( aerostructure stress routines at BAE ) were several decades old. In the better code, there are a succession of comments explaining just Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-12166678945027954692009-06-19T13:19:00.003+01:002009-06-19T14:29:41.207+01:00Language-level Immutablity and Shared Memory ConcurrencyI've been a fan of Bartosz Milewski’s Programming Café ( or possibly Bartosz Milewski’s Programming Caff; I'm not sure if lack of an accent implies greasy chips and tea outside of the UK ). He's exploring the options of applying the leverage of type checking to concurrency problems within shared-memory systems. In a different camp, there's the Erlang crowd, typified by Steve Vinoski which says Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com5tag:blogger.com,1999:blog-7217962.post-70944822064484752542009-05-23T22:15:00.003+01:002009-05-23T22:38:00.484+01:00Messing about with X windowsI've spent the last week or so adding bindings to kin for X11 and anti-grain geometry.X11 gives basic windowing capability, but no widgets ( you run GTK or some other toolkit on top ), AGG gives high-quality software graphics rendering.This is a window which attempts to draw some buttons:The window has a transparent background. I've lost track of the number of hacks I've had to do to get Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-87522695359489158052009-04-16T16:08:00.004+01:002009-04-16T16:25:17.012+01:00Comma QuibblingAn example in kin. This misses the difficulty of the C# problem - as sequences in kin are linear, rather than being the mutating iterator/enumerator pattern used in Java/C#, you can pattern match several elements at once trivially (being able to pattern match sequences and backtrack on failure is one of the main reasons for writing kin in the first place).module examples::eric_lippert_20090415Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-14564758518839926212009-04-09T17:48:00.003+01:002009-04-09T23:19:08.942+01:00A new way to look at networking.I find this video incredibly interesting. It's talking about the phase transition that occurred between telecoms networks and packet switched networks, and questioning whether the same can happen between packets and data.In a routed telecom network, your number 1234 meant move first switch 1, second switch 2 and so on - it described a path between two endpoints. In TCP your packet has an address,Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-86748942775191135342009-04-01T16:37:00.002+01:002009-04-01T16:41:55.411+01:00On UMLOver the last few weeks I've been working on kin, and hanging around stackoverflow. For one question on usefulness of UML, I ended writing a rather long answer, so as I haven't blogged in a bit I thought I'd post it here too.There's a difference between modelling and models.Initially in the design process, the value in producing a model is that you have to to get to a concrete enough Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com1tag:blogger.com,1999:blog-7217962.post-57296825572439167852009-03-14T17:33:00.002Z2009-04-16T16:26:08.291+01:00Things I didn't know in CI've been creating an interpreter in C99 for the last six weeks. This is the largest project I've done in C, as normally I get paid for writing C++. I've also read the C99 spec, as I was taught C in '91, and things change.Here are a couple of things I've discovered which I didn't know before:You can use field names in struct initialisers, such as( foo_t ) { .bar = 3, .baz = 8 }which give you an Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-65482167886880588442009-02-06T13:05:00.003Z2009-02-06T13:10:08.353ZAparrently the thermometer isn't broken.I looked at the thermometer in the hall and it read 14°C.It occurred to me that every time I could remember in the last three years, that thermometer has read 14°C.So I put it in some warm water, then some cold, and the reading changed.Given that I only look at the thermometer to see if it's cold enough to turn the heating on (we don't have a thermostat), it must be that I only wonder whether Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-69971449200381749332009-01-25T15:19:00.008Z2009-01-25T22:06:49.808ZSciTE and ctagsI've been using SciTE as editor of choice for some time, and spent a little time today getting a few extra things working for C99 projects. This year I'm refreshing my C a bit, as I haven't done anything which has specifically used C99.There's support in SciTE for autocompletion of words within the file by hitting Ctrl+Enter, but you can also add .api files which list function prototypes for an Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-43397057340827410642009-01-10T13:30:00.004Z2009-02-06T13:13:24.598ZTodo listI'm between contracts at the moment (if you're in the UK and want a systems engineering toolsmith, my CV is here) so there are a few projects I've been meaning to get round to:Review Artisan's free version of their SysML toolSort out automating backups rather than just using hg now and againConvert lots of m4a and import CDs into my new toy, a SqueezeBox network music playerGet a coherent Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-24229304412747660672008-10-26T13:35:00.003Z2008-10-26T13:49:50.353ZThe Computational Beauty of Nature/Little thingsOver the last few weeks, I've been reading The Computational Beauty of Nature an coding up a few of generative algorithms.I've put them in the examples/java/fractals folder. Not much to them, just written on a netbook running Ubuntu.I have two main computers - an Asus Eee PC 900 netbook and a Shuttle SX48P2 Deluxe desktop - and tend to use the Eee PC much more, even for programming, despite Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-44792487962287568512008-10-18T15:25:00.001+01:002009-04-16T16:29:17.993+01:00Prolog is not co-operativeXProlog v.1.3, May 2002?- help. > No. ?- oh, go on.> No. ?- please.> No. ?- quit.Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-9515673694213391542008-10-13T23:47:00.001+01:002008-10-13T23:48:49.180+01:00I don't want to think about itFact: Boston Computer Museum sells chocolate bars shaped like floppy disks.Fact: Three year old kids see daddy boot his computer using a floppy to play games.Fact: Computers are warm inside...even some quite expensive computers.I don't want to talk about it. sourcePete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-89296424602883975072008-08-07T20:45:00.003+01:002008-08-07T20:53:59.982+01:00Why TypeFor 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 forums.java.sun.com Pete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-7404929999803562702008-06-30T23:45:00.005+01:002008-07-01T01:07:32.617+01:00Cedric's challenge, C port and analytic attemptI 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 isPete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-55588925714765886442008-06-28T16:44:00.004+01:002008-06-28T16:50:41.948+01:00A coding challengeAn 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 dynamicPete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0tag:blogger.com,1999:blog-7217962.post-17915797505912712812008-06-12T21:17:00.003+01:002008-06-14T14:39:51.385+01:00Eee's are good, Eee's are goodI 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, IPete Kirkhamhttp://www.blogger.com/profile/17321624014729731964noreply@blogger.com0