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.

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.

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?

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.

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.

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.

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.

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.

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.

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.

Update

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.

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.

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.

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.

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++.

About Me

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.