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

Search This Blog

Thursday, September 28, 2006

The Wiki Way and Other Ways

OK -- two more things about work. First, this... the past is the future, and/or vice versa...

And the wiki... I have used several wikis in various settings in the past, but this team is using its wiki really well so far, with no sign of letting up.

We'll have to get Mr. Panic From Fuzzy to explain "Page Slap" sometime.

Less Bigness

Dan Cresswell wonders...

I just wonder if our systems would be less big and less complex if we admitted we don't understand all things and stopped making so many incorrect assumptions about how things should be done?

Monday, September 25, 2006

The New(?) Architecture of Redisplay

I came across recently an email message on Tweak (a GUI for Squeak Smalltalk) and display refreshes in the presence of asynchronous processes...

So why not use processes?! Looking back at some older conversation about using multiple processes it appears to me that we've been holding back on it because of synchronization issues. While this is certainly understandable (we all know how hard process synchronization can be) I think that we can solve this problem in a very simple way that gives us the best of all worlds.

Here it is:

The basic problem that we have when using multiple processes is that we can't always say for sure when they are run. Because of this, the system may activate some process while we're in the midst of redrawing the screen, handling events, executing some (interfering) other process etc.

Yes, to multiple processes.

I developed some CAD tools a couple different times way back when, that had to deal with distributed processes and asynchronous messages. More recently, but still seven years ago (dear lord, really!) I developed an example graphics editor in Erlang and Tk. Today I would approach an intraprocess design the same as the distributed. First and foremost -- get rid of shared memory and the synchronization issues go way down. Synchronization becomes a design tool rather than an accident waiting to be found, or a burden of self-over-protection.

Here's the real news... there is a *lot* to learn from understanding how Emacs works.

Emacs got the architecture of asynchronous redisplay right 25-30 years ago when it was dealing with the asynchronous nature of text redisplay in the presence of asynchronous keyboard interrupts. The "command pattern" and graphics, etc. are just elaborations on the theme.

Another thing Emacs got right is keyboard maps from keys to functions. A "mode" is a more or less different map from keys to functions. A "modal dialog" is just pushing a new mode map into the keyboard process for some period of time. Emacs embodies a pretty good "model-view-controller" separation.

Processes and display refresh -- expand the Emacs way into true multi-processing. One process owns a display device. Other processes, local or otherwise, may be able to send it display update events. Those messages may have priorities, or rather the display process may understand which collaborators have priorities.

The display process will always try to process the most important update message next. Display update may be postponed until some or all update messages have been processed. If there is a hope of getting through the message queue in time, then the display process will postpone a refresh until the queue is empty, otherwise some logic of when to stop postponing the refresh has to be coded.

Sunday, September 24, 2006

Virtual Fun

I'm really enjoying my new job. The team is a lot more fun than those I've been part of over the last few years. Partly because those teams in the recent past have been almost 100% "virtual" i.e. distributed. No matter how much good work you can get done "virtually" it is difficult to maintain a healthy "virtual" sense of humor, you can't walk to the coffee shop, or talk in the hallway. Distributed bases can work, but each base has to have a small set of people who see each other at least several times a week. The people, the atmosphere, and the work all make a difference too.

My current team is co-located *and* they have a sense of humor (senses of humor?). And they are very smart, and stuff. And they've watched Team America: World Police several more times than I have. (Me: Once, but I laughed my ass off enough for three viewings. Although now I *have* to get the unrated DVD version.)

This week as my manager reports we found a kindred spirit visiting from several thousand miles away in Belfast, over beers. They've done good stuff with virtualization, open source, etc. So we're looking forward to this Portland base working with the Belfast base on some common interests.

And I am looking forward to having a lot more fun, and working on interesting things with smart people. What a difference a few weeks make.

The Middle of the Road

Oh dear. Can we not leave well enough alone?

Getting It Through Not Understanding

Tim Bray on Ruby...

I’m already using method_missing, any language that doesn’t have that just seems crippled.
Welcome. We've been waiting for you. A helluva long time.

Thursday, September 21, 2006

iZunes

Apparently Microsoft is still adept at copying Apple's look and feel.

Friday, September 15, 2006

Jini Meeting

The jini meeting is being webcast and recorded. I've not seen it yet but the program has a number of interesting sessions.

Eight Ways

Ted...

Their benchmarks also show that many applications are not able to exploit 4 cores very well, never mind 8. Now, where did I leave that Erlang disk image....
We're busy cramming everything into a common language runtime. Shared memory, critical sections, locks, common object models... it's the wave of the future?

Well, it's a tsunami that is catching up with us while we're busy cramming everything into a common language runtime.

Update: Steve Dekorte writes that no language will save these high core count MISD systems from the Von Nuemann bottleneck.

But the advantage of a shared-nothing programming model like Erlang's is that systems can more easily accomodate multiple shared-memory cores as well as multiple shared-nothing nodes. The languages that assume there is no shared memory are better positioned to get around the Von Nuemann bottleneck.

Common language runtimes that assume shared-memory are a diversion at this point. But I think it will be another five years or so before the JVM and CLR leaders start to think about this. Ideas just take a long time to catch on. With JRuby and such now, we're seeing the beginning of the fruition of an idea that has been around as long as the JVM. The JVM itself was the fruition of UCSD Pascal byte code from the early 1980's.

From what I have seen the hardware manufacturers have a difficult time getting their heads around this direction too. They understand that a single, faster CPU is not going to sell. And so they understand the reason for putting multiple CPUs on a core. I am not sure they know what to do with them in software... Maybe web services?

Tuesday, September 12, 2006

Ruby and Strongtalk

Avi Bryant makes the connection between JRuby, Ruby performance generally, and how fast dynamic languages can really be, e.g. the Strongtalk implementation.

As it happens, the Strongtalk VM would make an excellent basis for the next generation Ruby VM. Given that Sun still employs some of the original Strongtalk engineers, and has just hired the JRuby guys, maybe they can make that happen?
It gets even better... Strongtalk was the precursor to the Java Hotspot runtime. Java is essentially already running a pretty good dynamic runtime under the hood. The language-specificness of the JVM just has to be peeled back a notch and Ruby (and Smalltalk, and Lisp) would be good to go. Or at least much better off than they are now.

Maybe a bit more than a notch. Please start peeling.

Then someone over at James Robertson's blog asks about the performance of a good dynamic dispatch mechanism relative to C++.

In general, Smalltalk can do message dispatch faster than C++.
Is that one of those in theory things?
The line was crossed some time ago when the nature of most C++ applications on the hardware at the time was better suited to dynamic dispatch. When you talk about "C++" once again you have to talk about which implementation. Some C++ implementations have been able to do a more dynamic dispatch (i.e. again implement a significant dynamic language mechanism) in order to get better performance than the more traditional vector-based fixed offset indexing.

Dynamic *will* continue to win more and more for most applications.

Quick Coffee Note

Yes, I am as excited about the recent JRuby and IronPython news as anyone. But...

If "shared nothing" is the right model, then why are we so happy about JRuby and IronPython?

Sunday, September 10, 2006

You Eye

James Robertson on something I've found true as well...

I rent [cars] on travel a fair bit. A decade ago, it took me less time to get out of the rental lot. Now, I always make sure to spend a few minutes locating things like the seat adjustment, the radio controls, the wipers, defroster... you get the picture.
I remember the first time I found myself driving with a "sports" transmission without purposely shifting into it, I was on the road and the damned thing wouldn't get out of first. So off to the side of the road where I spent a few minutes figuring out how the supposedly "automatic" transmission worked.

Saturday, September 09, 2006

I'm Sorry

Gregor confesses...

At a session about stealth I asked Jay Adelson, Digg.com's CEO) which company he is with. Oops. On the bright side he told me that once he arrived for a talk, entering as Larry Page was leaving the stage. Jay went on to introduce himself and finished with "and you work for…" Doesn't misery love company!
I'm sorry. Are we supposed to know who the hell is the CEO of digg?

Likewise I could not pick Larry Page out of a lineup, nor tell you the name of his partner.

Yes, they've done good stuff, way more than I ever hope to. Or if I do, I couldn't care one iota if you ever recognize me. Sorry.

Storm on the Horizon

Confession time...

I love You Tube, I guess of course. My oldest kid was showing me the series on how various movies *should* have ended.

I watch very little TV and never "reality" shows. But since I really like Storm Large from right here in Portland, I've been watching her You Tube clips from the rock star reality show this summer. (She is *way* beyond what little I could stand to see of her competitors, and I suspect at least as far beyond whatever talent the judges themselves have.)

In any case, this week one her songs was her original Storm and the Balls song, Ladylike. This song is at the top of any list of pop songs about womens liberation. I'd say there is "Respect" the way Aretha Franklin recorded it, combining "R-E-S-P-E-C-T" and "sock it to me" in the same lyrics. And then there is "Ladylike".

In the original R-rated lyrics, which would have cost a *lot* in fines to perform on American broadcast TV, she sings, "What the fuck is ladylike when ladies like to do what the fuck they like just like you?" A *little* bit more direct than Aretha Franklin was, but this is the 21st century vs. the 1960's. The verses of Ladylike go well beyond "Respect".

Nothing else by Helen Reddy or anyone comes to mind as really pushing the point as well as those two songs.

See the abbreviated You Tube PG video version or hear the Balls full PG and R recordings. The Balls versions are supposed to be on iTunes before too long.

Bond

I am with Graham on this Bond thing. I've not seen a new Bond film in over 20 years. Roger Moore was fun in the 70's but that stopped working before he did. Sean will always be the real Bond, but those films are so very dated and I can no longer stand to watch them.

Every glimpse I've seen of the new Bond has led me to believe the role could be recreated as something almost completely new. My hopes are way up for Casino Royale.

Thursday, September 07, 2006

On

Jon Udell on...

Way back in 2002, I thought Web services would be the vector for Internet-scale grid computing. It looks like I got that wrong. A Web service is a fairly general construct, but an entire virtual machine is far more general. And since Linux is the OS of choice for cloud-based virtual machines, last week’s suggestion that Microsoft get cracking on portable Avalon and open XAML makes even more sense this week.

And so

And so...

Make no mistake about it; if you do not find it now, you will repeat the same routines for myriad eons, a thousand times over again, following and picking up on objects that attract you.

Lin Chi (d 867)

And so

Sigh

A sigh for Jim (via Jon Udell)...

I wrote the first three versions of the IronPython compiler in Python, but today it's written in C#. Part of the reason is that now I understand it, so the values of prototyping, and the looser thinking that really helped a lot in the early days, don't really help as much any more. Also there are now more people working on the compiler, and there are some real benefits to the static typing, and the support you can get from Visual Studio.
Sigh.

Tuesday, August 29, 2006

Liberty

This is my first week at a new job with Liberty Mutual Insurance, Agency Markets.

I am very much going to be getting back to speed as a full-time developer for the first time in five-plus years. In recent years as an architect, instructor, and coach I've always found ways to remain hands-on and not too enterprisey for stretches at a time. It's not the same thing as working with a small group with a singular purpose.

That's something I've missed greatly... and so I've joined Mike Herrick's team here in Portland. They're just getting started on some extremely interesting open source ideas and new relationships in the open source community. You should read his blog, Panic From Fuzzy, as these things develop. I imagine I'll write here about OSS generally as I dive in, but much less so about the specifics of this new project unless I explicitly state so.

Portland is a hotbed for open source, and this group is going to be carrying it even further into the business world and specifically the very interesting world of insurance.

A Fine Artist

My uncle, Robert Bard, lives in Jamestown, Ohio with a group of friends who are all practicing independent living in spite of various disabilities. Their organization is Toward Independence, Inc. (My dad is on the board of directors.)

T.I. operates an art gallery, The Inner I, in Xenia, Ohio, if you are in the area. Now they have a gallery on-line and are putting together an on-line store as well.

My uncle started painting a number of years ago and has since received a lot of notice and has been in many exhibits around the state and reprinted on clothing, stationary, etc.

You can read more about my uncle and see some of his work in the on-line gallery.

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.