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

Search This Blog

Wednesday, November 19, 2003

From James Robertson's Smalltalk blog...

Java mostly lives on the server - it's been a roaring success there, but it's failed on the client for the same reason that our product, VisualWorks didn't get that much traction on the desktop - end users really, really want apps to look and feel the same. We are addressing this by moving towards Pollock

The irony in this is that with Longhorn, the GUI is becoming more variable in appearance and layout, as well as lighter weight. The Longhorn GUI is going to be *more* like the emulated (i.e. "drawn") widgets of Visual Works, but with a more sophisticated drawing model.

By and large people have been successful with the variety offered by DHTML user interfaces and game interfaces. One of the most appealing user interfaces that I am aware of (Hypercard) is also notorious for breaking the user interface guidelines established by the same vendor.

Still, Pollock is a good thing for Smalltalk, hopefully providing the flexibility to access all of Avalon when or if Longhorn finally arrives.

Sunday, November 16, 2003

My day just got a little brighter: Write Once, Run Anywhere!

The rain has let up and I can see the sun is out over the coastal range, but that's not the real source of sunshine in my day. I had been working on translating a little bit of Java into C#. I gave the automatic translator a quick try, but a strange error was not motivating enough to push through. Hand translation soon gave way last weekend to another project.

I had started to doubt the value of my time vs. the effort of getting up to speed at all. I installed NUnit (not nearly as much documentation as with jUnit) and NAnt (ditto vs. Ant). I managed to piece together enough of a .build file to compile a partially translated .DLL and run a few tests. (Using the unobvious NUnit2 task as opposed to the NUnit task!)

Then the light came from above. What's the state of C Python for .Net scripting? Production ready. Great news! What does it take to run it? Download and click on python.exe. Greater news! I can program using the simple, interactive, (and familiar to me) Python environment.

In just a couple of minutes my whole day, and project, turned from dread to desire. Rather than translating from Java to C# and maintaining two source paths, I'm translating from Java to Python and maintianing one source path that has a little glue into the Java library via Jython and a little glue into the dotnet library via CPython.Net.

Every indication is the CLR will eventually support Python and other dynamic languages much better as first class members of the CLR the way Jython works in the JVM. Meanwhile CPython.Net will do fine, consider this example of handling events...

          def handler(source, args):
              print 'my_handler called!'

          # register event handler
          object.SomeEvent += handler

          # unregister event handler
          object.SomeEvent -= handler

          # fire the event
          result = object.SomeEvent(...)

C Python is the best way to program in dotnet, and Jython is (one of) the best ways to program the JVM. (The JVM still rules on my personal list of interesting languages.)

Friday, November 14, 2003

Even on the desktop, what's changed?

I would expect that Microsoft will be finding ways to move out from under IIS. I believe Indigo is a path for that, but I am not thoroughly versed in this stuff yet. I am less certain they even see a need out from under SQL Server. I am less certain of that myself. It's getting better, it's competitive, and I expect it makes some money. I don't know much about that either. I'd expect some people somewhere inside that large company are finding alternate paths, though.

But even on the desktop, what's changed?

I have a friend who developed some significant client/server software ten years ago, that had a long fruitful life. He's been considering a rewrite, and lately wondered if much of Longhorn obviated the basis for that rewrite. Was there any value in this software above Longhorn, or would it be trivialized?

We discussed Avalon primarily, but considered most of what was presented at the PDC. And we looked at a picture of what his software does. Clearly Longhorn is not a step backward for his kind of application. But just as clearly it was not a giant leap forward.

A few of the grungiest bits would be easier with Longhorn. The bulk of the application would still require good engineering, and with that would be not significantly more difficult to build, nor less functional to run, on any other major OS platform.

So even on the desktop, what has changed? Not as much as might first appear if you're already building significantly sized applications in a "managed runtime", i.e Java, Smalltalk, or Python.

This one is a bit of a ramble...

We need to find a way to lead, not just follow.

Yeah. I am not convinced that what Linux needs is a WinFS-like file system.

But one of the open source world's strengths is the number of programmers who are free to pursue many ideas. A large corporation with a significant cash cow like Windows or SQL Server will always make decisions that leverage those legacies.

I am convinced the hardware, wireless, and Internet platforms are slowly entering their own new level. And there are already object models that run on the most significant platforms. One is Java, which is as good as it needs to be. The innovation needed for the future is above the basic object model.

The next most significant object models are Python and Smalltalk. I don't think we need one object model. And above a narrow band of componentry, the future is almost certainly not to be based in an object model. A simple message passing model will do fine.

I don't think the competition or the worldwide customer base will capitulate completely to the news out of Redmond. But to be sure the dominant platform is finally taking a few significant steps forward.

Tuesday, November 11, 2003

A Heap O'Wha?

Reading about Reaps reminds me just a little about this cool thing unfortunately called Stalin...

Stalin also does global static life-time analysis for all allocated data. This allows much temporary allocated storage to be reclaimed without garbage collection.

Stalin does "whole program optimization". One of the results is that complete lifetimes of allocated objects very often are known ahead of time. Rather than force manual allocation, and rather than use a general garbage collector for all objects, Stalin can explicitly free objects at the point where it can prove the object is no longer referenced.

Because this is "whole program optimization" the software become inflexible to updates without re-analyzing the whole program. That's not too bad in many cases, especially considering the "whole program" may just be one or a set of components but not everything.

Stalin can also do interesting representation analyses, "unbox" values like numbers, and generally eliminate run-time type checking and dispatching. Perhaps the GNU Java Compiler can move toward these optimizations, and perhaps researchers will continue to look at ideas beyond the currently popular virtual machines; ideas that balance the need for dynamic programming and updates with transparent optimizations that get the most out of the hardware.

Saturday, November 01, 2003

MIT World Videos

When you get tired of TV (can't every show just be called "Crime Scene Law and Orderly, Miami style"?), you can turn to a new source of video fun and education at MIT World. A friend turned me on to this site this week, and I've been enjoying several very different sessions.

Oh, and they have an RSS feed.

Snow

OK... it was cold enough to snow here, at least over night. But we haven't had a decent (sleddable) snow in the valley for several years. Will this be the year we get to spend the day with the neighborhood closed, everyone on their sleds and other contraptions gliding downhill then trudging back up for someone else's turn?

*Nothing* would make this winter better. We can drive the hour to the mountains anytime, but snow in the valley is what makes a winter successful.

Favorite time of year

Fall and spring are my favorite seasons because of the activity in the weather the change brings. My birthday is in March, but Halloween marks the beginning of the transition to a new year for me. Halloween, Thanksgiving (in the U.S., end of November), and then the winter solstice mark an active stretch of weather for the Pacific Northwest in North America.

January and February are relatively steady in their own ways. January can be steadily wet, and if we're lucky, February can steadily dry. Then the bulbs and buds emerge in the warmth of the February sun. (As opposed to the northeast coast of North America, where winter lasts well into March and April, even May! Been there, done that.)

Then around my birthday the winds pick up again, but more often drier than in the wet fall. More change on the way toward the mostly sunny yet mild summers of the northwest that we don't like to advertise to outsiders. (Yet you come anyway.)

Those pesky little buggers

My cable Internet was out for a couple of days, and my cable TV was out on several channels as well as poor picture quality on many more.

Squirrels ate through the cable up on the pole.

Drool

I am sensing some drool in the corner of my mouth for Linux tablets. Although a friend recently bought a Zaurus and the drool per buck is very enticing.

Monday, October 27, 2003

Don't Fidget With Widgets, Draw!

If I had to pick just one system as a candidate for a modern, rich, smart client, service-oriented GUI, then Joel Bartlett's would be the one, from 1991, that runs on X/Unix in his wonderful Scheme->C system.

Some updating of the programming model would be necessary. The current model is much like NeWS but uses Scheme and X, where there is a single application somewhere using EZDraw as a GUI server.

XUL, SVG, and XAML are kind of in this space today, but like an updated EZDraw, they also need a more "conglomerate" approach to being an integration-oriented GUI device.

EZDraw, like SVG, offers a 2+ dimensional interactive drawing environment and so offer the graphical freedom of a web page or PDF with the interactivity of a traditional GUI. I'm hoping that XAML will be just as interactive, since it may become the de facto standard.

Friday, October 24, 2003

The outsiders win again. Ha Ha.

From Harry Shearer's Le Show's Le Blast email list (subscribe)...

Arnold S's first appointee, his chief of staff, is currently a lobbyist for the HMO industry, and was deputy chief of staff to former Republican gov. Pete Wilson. The same PW who finally came out of hiding and gave media interviews after the election. The outsiders win again.

Thursday, October 23, 2003

How Magnetic RAM Will Work

I love the site How Stuff Works. And I saw they have a section on MRAM, which will change everything about computing, hardware and software, over the next few years.

Should Elementary Schools Teach Keyboarding? (was: Computers in Schools)

James writes about computers in schools.

My sense is computers should begin to show up in schools in middle school (grades 6-7, ages 12-14). The applications should be highly interactive, multi-media, and constructive (i.e. use computers to build "things", even ideas).

What should younger kids be doing? Why, keyboarding of course!

No, not computer keyboarding. Piano keyboarding. This would be far better for connecting their brains for future study of math and science than any software I know of.

Java becoming more static, er, dynamic, um, both!

I did not realize this EventHandler capability is in Java 1.4.

This is kind of ugly, since the API is essentially interpreting strings for names. (Think Class.forName only funner.)

This is kind of confusing, since on the one hand Java is heading toward more static notations with generics. Yet on the other, this EventHandler feature is capitulating to the need for dynamic reflection without a bunch of new syntax.

Mobilized Software

Speaking of moblized software (aka Occasionally Connected Computing), I will be attending Intel's "Mobilized Software Occasion" on Nov. 4th in San Francisco. I'm not sure yet if I get the shirt (employee) or the PDA (attendee), though I know what I'd like.

Rob Pike's Things to Build

From Rob Pike (Bell Labs/Plan9, now at Google)... Things to Build (in Systems Software Research is Irrelevant (PDF), or in Postscript format):

  • Only one GUI has ever been seriously tried, and its best ideas date from the 1970s...
  • There has been much talk about component architectures, but only one true success: Unix pipes...
  • The future is distributed computation, but the language community has done very little...
  • The Web model... is forced interaction; the user must go get it. Let's go back to having the data come to the user instead.
  • System administration remains a deeply difficult problem...
Obvious connections to recent conversations about rich GUIs, and mobilized software, etc. I think he hits several nails square on the head.

Tuesday, October 21, 2003

It Always Comes Down To This

Erik Meijer writes on his blog:

In principle there is nothing that prevents special list transformers and comprehensions from being introduced into imperative languages as well. We know how to do it. In fact, as is the case for many other features, Python has already taken the lead in this.

Python has limited syntax for iteration and unlimited classes that behave as iterators.

The less obvious, more expressive example is Smalltalk, which eschews special iteration syntax. This so called "pure" object-oriented language does not have any syntax for iteration. Everything is a message send, even conditionals and iterations.

A simple notation for a "block of code" object and a simple notation for keyword-based parameters/messages give you what you need without hidden machinery or a fixed syntax. Any of Smalltalk's flow of control mechanisms can be defined in Smalltalk itself. And more, to your heart's content.

BTW, Ruby is closer to Smalltalk than Python is to either in this regard.

Joe Morgan: Best Color Commentator... Ever?

Is Joe Morgan the best color commentator (ESPN Radio) in baseball? In any sport? Ever?

I'm leaning in that direction. He's that good, and I am not saying that because my youth was spent in southern Ohio with the Big Red Machine.

Monday, October 20, 2003

Give Aways

The federal government is essentially giving the resources of Alaska away for free...

On Sept. 24, amid the hubbub of Mike Leavitt's confirmation hearings, few journalists and policy makers stopped to notice that the DOI's Minerals Management Service put 9.4 million acres in Alaska's Beaufort Sea on the chopping block at unusually low royalty rates. The area in question is not far from the Arctic Refuge, off the northern shore of Alaska—land of polar bears, bowhead whales and Inupiat Eskimos who still practice maritime hunts...

There are, of course, likely environmental side effects: Last spring, a report by the National Academy of Sciences warned that seismic exploration and offshore drilling in the area would threaten endangered bowhead whales as well as the livelihoods of traditional Inupiat hunters. Needless to say, that report was overlooked.

Although the Beaufort sale troubles many Alaskan wildlife experts, they say it's merely one of many concerns in the region, some of them potentially far more serious. "This is just a small piece of a larger picture in which the federal government is essentially giving the resources of Alaska away for free," said Eleanor Huffines, Alaska regional director for the Wilderness Society.

Huffines says she is realistic about the need to expand drilling, and the Wilderness Society has identified areas in Prudhoe Bay and western Alaska where it is not opposing increased development. "What concerns me is that no matter how reasonable we try to be in balancing commercial and environmental concerns, [the Bush administration's] plans show no balance at all...

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.