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

Search This Blog

Saturday, July 10, 2004

The (Real) Dangers of End User Programming

Warren Harrison writes in the recent IEEE Software magazine about the dangers of end user programming. I will admit the dangers he describes are real.

However I am surprised, shocked really, at his prescription.

Rather than assuming the blame for himself and other computer professionals, rather than taking these dangers as impetus to improve the state of the industry, rather than recognizing the natural and unstoppable demand for end user programming, Harrison would simply ban end user programming. "Dabblers" he calls them. "It’s simply unfathomable..." he writes, that these dabblers can program securely.

Unfathomable indeed.

Warren, the roots of the problem do not lay with the "dabblers". The root cause is the poor state of tools and languages professionals like you and I have given them. Recognize that *we* are the ones who can and must do better. End user programming is to be encouraged. We have the ability and responsibility to make them safe and productive, and we will have failed completely if we do not.

Nice language for the JVM

Yes, static languages can be Nice (read these comments), nicer than the popular static, rather, rigid languages.

Easy 3D and Camera?

A fun addition to Croquet would be something like SmoothTeddy. Maybe this is in there already. I can't wait for the download.

Looking at the Teddy pages... Teddy is now available on Sony's PS2 in Japan. Hope it makes it to the US. My kids have an EyeToy camera for the PS2. How great would an integration of Teddy and the EyeToy be?

You want a dynamic language, you *need* a dynamic language

This blog hasn't been taken down in months, but I've made major changes to the underlying code base...

And none of the weird jumping through hoops that .NET requires for this sort of thing either. If you want zero downtime, you need a dynamic language. If you like restarting every time you need to make a change - sure, go grab one of those mainstream systems.

...James Robertson, wherein he also quotes Keith Mantell...
With Smalltalk (at least with Visualworks) this was a breeze: added the code for a variable, accepted it and, hey presto, any inspector open on an instance got a new variable field set to nil.

A world without... ACLs!

Marc Stiegler in the e-lang mail list...

It is possible to visualize a capability-based world in which the human being remembers one and only one pass phrase, the phrase that unlocks all his capabilities on his personal machine. This pass phrase would never be sent over the wire, never be shared with anybody. It would be used solely to to enable the human to authenticate himself to his computer. From there on, ACLs need not apply. Hallelujah.
Alan Karp's site password is an interesting approximation of this idea.

More on Kyma

Ralph Johnson writes more about Kyma...
Of course, part of the reason that they are able to come out with new products regularly in spite of the small size of their company is because they use Smalltalk...

The music is generated by an array of digital signal processors. The UI is written in Smalltalk and generates code that runs on the DSPs. So, the actual code that produces the music is produced by Smalltalk, but isn't Smalltalk.

A little heresy

Bruce Tate writes...

I think we're in a wonderful age of heresy, where it's getting easier to buck the establishment to get things done.

Webmin and Usermin

What is Webmin?

Webmin is a web-based interface for system administration for Unix [including Linux]. Using any browser that supports tables and forms (and Java for the File Manager module), you can setup user accounts, Apache, DNS, file sharing and so on.

Webmin consists of a simple web server, and a number of CGI programs which directly update system files like /etc/inetd.conf and /etc/passwd. The web server and all CGI programs are written in Perl version 5, and use no non-standard Perl modules.

What is Usermin?
Usermin is a web interface that can be used by any user on a Unix system to easily perform tasks like reading mail, setting up SSH or configuring mail forwarding. It can be thought of as a simplified version of Webmin designed for use by normal users rather than system administrators.

Like Webmin, Usermin consists of a simple web server, and a number of CGI programs which directly update user config files like ~/.cshrc and ~/.forward. The web server and all CGI programs are written in Perl version 5, and use only the non-standard Authen::PAM perl module.

Interesting Sony Patent

An interesting Sony patent related to the cell processors Ted mentioned in his blog...

A hardware sandbox structure is provided for security against the corruption of data among the programs being processed by the processing units. The uniform software cells contain both data and applications and are structured for processing by any of the processors of the network. Each software cell is uniquely identified on the network.

Tuesday, July 06, 2004

Non-Surprises on the Slippery Slope of Language Jones'ing

Now it is Java's turn to play with young programmers' minds sliding downhill on the nature of unnaturally boxed objects.


How can a student think clearly with dull tools when they could otherwise move on toward thinking about problem domains instead of unboxing memory allocations.

From "Structure and Interpretation of Classical Mechanics"...

The advantage of Scheme over other languages for the exposition of classical mechanics is that the manipulation of procedures that implement mathematical functions is easier and more natural in Scheme than in other computer languages. Indeed, many theorems of mechanics are directly representable as Scheme programs.

The version of Scheme that we use in this book is MIT Scheme, augmented with a large library of software called Scmutils that extends the Scheme operators to be generic over a variety of mathematical objects, including symbolic expressions. The Scmutils library also provides support for the numerical methods we use in this book, such as quadrature, integration of systems of differential equations, and multivariate minimization.

The Scheme system, augmented with the Scmutils library, is free software. We provide this system, complete with documentation and source code, in a form that can be used with the GNU/Linux operating system, on the Internet at http://www-mitpress.mit.edu/sicm.

This book presents classical mechanics from an unusual perspective. It focuses on understanding motion rather than deriving equations of motion. It weaves recent discoveries in nonlinear dynamics throughout the presentation, rather than presenting them as an afterthought. It uses functional mathematical notation that allows precise understanding of fundamental properties of classical mechanics. It uses computation to constrain notation, to capture and formalize methods, for simulation, and for symbolic analysis.


Jim points out that more flexible languages like Smalltalk and Lisp have issues with "identity" and "equality". He also makes the point though that the more useful notion of "equality" is typically employed in Smalltalk via = (and by the way in Scheme via equal? versus eq?).

In the common rigid languages, unfortunately, the typical programmer uses identity everywhere, which is just an artifact of those languages' rigid foundation in squeezing an instruction or two out of the code here and there. "Hey, let's use an identity test for equality because it's *fast* and it's meaningful a lot of the time." Only now, it's not.

I just wish in Smalltalk "identity" wasn't the easily confused == and in Scheme I wish eq? was a more distinguished symbol like identical? or even something better. Maybe in Smalltalk, #isIdentical: anObject. But it's decades too late.

The Fourth of Nebraska

On the Fourth of July in Nebraska...

My family and I spent the 4th in Grand Island a few years ago in the middle of a cross-country trip. One of the better shows I've seen, IIRC.

Shoulders or Toes, Above or Below the Rest

"Monad is as programmatic as Perl or Ruby."

Looks fairly cumbersome to extend, and I'm not sure how supportive the interpreter is compared to, say, a typical Python interpreter, let alone a Lisp REPL or Smalltalk workspace.

Am I just whining? I hope not. Monad is a great big leap beyond the DOS prompt, I'll grant you that. But hopefully they are learning something from the industry folks who've been down this path already.

For example, I hope they're spending a week to bring in an expert to sit down at a Symbolics machine for an in-depth tour of the Genera command processor; likewise for a tour of a Smalltalk workspace and tools. Hey, one week for both: 2 days with each technology and then 1 day to solicit feedback on Monad.

Would that be worth the effort? Certainly. They will be affecting developers and administrators for a good long while.

Monday, July 05, 2004

Why else?

"Why else would we be in power, if we were not a better judge of international realities?" -- Britt Blaser, writing with irony at Escapable Logic

Capability-based Security and the Web

Tyler Close (of Waterken) writes in the e-lang email list...

The status quo of WWW security is unfortunately mired in the ACL model. However, if you ignore the various security add-ons of the WWW, and focus solely on the underlying model, you find an amazing symmetry with capability-based security. In fact, if you push REST design principles to their logical conclusions, you arrive at some of the core principles of capability-based security.


Alan Kay...

Until real software engineering is developed, the next best practice is to develop with a dynamic system that has extreme late binding in all aspects. The first system to really do this in an important way was LISP, and many of its great ideas were used in the invention of Squeak’s ancestor Smalltalk—the first dynamic completely object-oriented development and operating environment—in the early 70s at Xerox PARC.

Sunday, July 04, 2004


...this time there *was* an earth-shattering ka-boom. (WAV)

Just in from blowing things up with the kids and neighbors. Ah, freedom.

The burgers were not bad either.

What, no Smalltalk?

Read things like this testimony to Smalltalk by a formerly rigid language aficianado.

Me being a statically typed language guy at the time thought the numbers were a bunch of BS. I actually learned Smalltalk to prove to myself the numbers were wrong. After learning Smalltalk and using it in my spare time for over a year I came to the conclusion that I don't like Java, or C++.
Then read things like this effort to bring computer textbook customization into the 21st century.

And wind it up with a search on that site for a Smalltalk text to include in a custom textbook. But...

...a search on the site leads to zero Smalltalk textbooks. (Plenty of Java, C#, and Extreme Programming texts that *refer* to Smalltalk, though.)


The hosting suggestion I rec'd is looking good... linode.com will host a User Mode Linux for you. You simply get root access to your own machine.

(In response to this search for another ISP that supports Smalltalk.)


Writes Blaine Buxton...

Kyma is written in VisualWorks Smalltalk and the lengthy article was a review talking about how all of the major electronic and soundtrack composers and sound designers use it and swear by it.

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.