"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.

Search This Blog

Friday, August 22, 2008


An even better idea...


Tri is a prefix meaning three. Tri represents the collaboration between local, state and federal entities. It depicts the primary disciplines of public health: epidemiology, biostatistics and health services. Tri also refers to the epidemiological triad of host, agent, environment.

Sano is an adjective meaning promoting good health. Our goal for the application and the community is to help protect the health of people throughout the world.

This is Mike "Fuzzy" Herrick's thing. Good deal.
The TriSano™ Eye represents a zooming (micro/macro) view on disease detection and prevention.

OK, I was good until being told this is an eye. That's kind of creepy. Isn't it a leaf?

Mike fills in the details about the logo. I really like the logo, graphically. I just need some time to adjust to it being an eye, not a leaf. Oh.

Open Quote

An interesting idea...

OpenQuote is an open source, web based, insurance quotation solution which allows quotes to be produced, and products maintained, over the web. Any number of products can be configured to support any line of business via externalised product definitions and rules.

Thursday, August 21, 2008


The same three of us have been programming in groovy in ernest for the first time. We've each dinked around a bit at one time or another previously.

Overall I like it. Especially closures and the syntax for block closures when the receiver's last argument is a closure. The spectrum from programming nearly all-like-java on one end of groovy style, and programming nearly all-like-lisp-and-smalltalk at the other end of groovy style flows more smoothly than I initially gave groovy's designers credit for a few years ago.

One quirk - bit me for a dozen minutes or so, the oddity/convenience that groovy wants the keys of a map to be strings. What bit me was the expression...

{ foo: bar}
where foo and bar are variables.

The "convenience" groovy provides is the interpretation of foo as a string, i.e. "foo". The value for the pair is still the result of evaluating bar. So you end up with the pair (if bar is the integer 1)... "foo" : 1

If foo has the value 3 and you'd like the pair to be... 3 : 1 then you have to put foo in parentheses to force evaluation...

{ (foo): bar}
That's the closest thing to a true quirk I've encountered. But for parameter lists, etc. the convenience does pay off in neatness. The result is a very smalltalk-ish keyword message send, and combined with the block closure syntax, is a pleasant and familiar style for smalltalk-lovers. (e.g. coding a seaside-ish web framework using paul-graham-ish closures rather than continuations would be very fitting in groovy.)

Meanwhile the other affect groovy has had is that now when I edit java code, I'm forever not using semicolons at the end of statements.

Oh, and the tools still really suck.

git out

Three of us have been using git with a shared (git) repository on a server. We've been pushing and pulling to/from the shared repository as opposed to peer-to-peer just as a matter of convenience and familiarity.

I have to say I like the concept of distibuted version control, or more to the point: versioning locally, pushing, and pulling. This is the first I've used such a tool. Mostly I've been using svn for the last few years. We've not tried the svn/git combo pack, just because we did not need or want to use svn in this case.

I also have to say after a couple two three weeks of using git, I am not crazy about git per se. Aside from just the learning adjustment that this is not svn and this is distributed version control, the adjustment and learning about what I would call the "quirks" of git have been somewhat discouraging.

I'd compare some of the cryptic language of git to some of the cryptic error messages a programmer new to erlang sees, or haskell / complexly type inferred languages. Combined with a vocabulary only a kernel linux hacker could appreciate, I suppose. I don't think this language is due to the concepts of distributed version control per se, rather to git's implementation and implementors.

And whatknot.

So git seems to be winning. I've not tried mercurial or other distributed repositories. Is git so good? Or just the one that's winning for reasons other than usability? And stuff.

My "Handling" Fantastic Contraption

I just love the trial and error that goes into making these contraptions.

My latest... "Stand Tall" is a solution for the "Handling" scenario.

Wednesday, August 20, 2008

"The most amazingly lifelike CGI"

Via Shawn Levey, movie critic for The Oregonian...

"The most amazingly lifelike CGI"

Yeah, seems kinda good.


Magic Pen

Another great game my son pointed me to after showing him Fantastic Contraption...

Magic Pen

Tuesday, August 19, 2008

Concurrent Programming with Erlang / OTP

Manning has a draft PDF available of a new Erlang book, with an emphasis on OTP, the platform/framework/library/what-cha-ma-call-it that helps in the development of robust, concurrent, distributed systems. I bought it, yes, I did. Co-authored by Martin Logan - no relation that I know of, and no damn discount on the book either!! (Well, I didn't ask. :-)

There are only a couple of draft chapters currently in the draft. But this should be a good addition to the growing supply of help getting going with Erlang.

I think the Seaside folks have made this "the year of Smalltalk" but there's an argument to be made for this being "the year of Erlang" as well.


Here's my resulting design for Awash I am pleased with, and fascinated by...


This scenario was fun to evolve -- I settled on the approach fairly quickly, it wasn't a really difficult configuration, but getting the angles and positions just right took a few iterations. The to see the creation finally make it to the target - it is alive!

This would be a good scenario to see which design takes the least time. Every time I run mine there are a couple seconds when I lose all hope of success.

Monday, August 18, 2008

Between You and the Cloud

Damien Katz wonders...

"Cloud computing is great. Right up until you lose your connection, then what?"


Then you wish your software was a little more aware of the difference
between you and your cloud.

As programmers, a lot of us toss around the
http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing but
then expect the network to always be there anyway.

I absolutely believe most people and businesses should be using cloud
computing for nearly everything... soon. But most of the software has
to catch up to cloud style, and cloud style has to evolve toward more
awareness of the sometimes-impassable distance between the cloud and
the cloud user.


That condition will not change anytime soon, so software has to become
more aware of the issue.


Let's see. The open source community is at fault for not getting
Silverspoon running on Linux?


The article begs for sympathy...

"Now, one could get all huffy and puffy and blame Microsoft on this
state of affairs, but in this case, I have to lay this problem
strictly at the feet of the Open Source community. I know for a fact
that De Icaza and Microsoft have pretty much a completely open
relationship, they give him free flowing access to all the .NET API
documentation and their developers, he spends a good amount of time on
the Microsoft campus in Redmond, and Novell and Microsoft are
committed to both making .NET run on Linux. However, Novell and
Microsoft can only do so much to have the community contribute efforts
to keep .NET development at pace on Linux with Windows."

Yeah, right. The most successful software company on the planet could
fund the work if they wanted to. Maybe Linux is not a priority
Microsoft, I can understand that. Maybe Novell has enough troubles of
their own to get Microsoft's software running on Linux. I can
understand that.

Adobe has Flash / Flex / AIR running just fine on Linux. This is not a
technical problem. It's an organizational / business problem.

Maybe Linux does not need Silverspoon. Isn't open source a meritocracy
for software?

Sunday, August 17, 2008

Fantastic Contraption

Fantastic Contraption is quickly becoming one of my most favorite
games since the Pinball Construction Set on the Apple II and the Mac


After several levels I became stuck on a theme of using a lot of wheels, multiple vehicles, and not attaching the goal object. This one is my current favorite...

"More Rails"

Free for basic play. $10 to save and share, building scenarios, etc.

There are some amazing contraptions built by others. I'll link to some of them later, like the "thrower" - just great.

Someone built this "Orbital Launch" contraption which is just out of nowhere... first the goal object gets stuck in this pocket and you wonder will it ever get out. Then after a few revolutions the object and a chain attached to it are launched... but apparently *away* from the target. The object flies out of view for what seems like forever... only to drop down from above.

The gods must be crazy. It makes no sense.

Blog Archive

About Me

Portland, Oregon, United States
I'm usually writing from my favorite location on the planet, the pacific northwest of the u.s. I write for myself only and unless otherwise specified my posts here should not be taken as representing an official position of my employer. Contact me at my gee mail account, username patrickdlogan.