Thursday, November 08, 2007

Firefox 3 Coming


LifeHacker has a first look at the forthcoming Firefox 3. It's interesting to see lots of improvements to the storage and management of places visited online - I'm sure this will provide inspiration for the Internet Explorer team at Microsoft to implement cool new features too.

A feature I asked for (and got a skeptical response) was the ability to do what Firefox seems to aim for but in a Google-ish way. That is to say that it would be nice to have a browser history management/search capability that precluded real effort in organization. In simpler terms, the whole "search, don't sort" experience one has with Gmail, except with browsing history and favorites.


Tuesday, November 06, 2007

Web Shell: Prototype & IronPython


I've been experimenting with IronPython of late trying to get the gestalt of Python as a language.  It occurred to me that something I had been thinking about for a while as a web project would make sense as an Iron Python project so I dabbled a bit.

The idea I had was a command line type application that approximated commands going to a windows shell and sent the results back to the user.  It's a part of a larger suspicion that I've had: that command lines are crisp, efficient user interfaces that are easy to lose sight of because it's not a natural way of thinking on the web.

The screen shots tell you the basic story: you open your browser to nothing but an underlined textbox after which you type your command and press the enter key. 

The client code is pretty straight forward - I've become disillusioned with YUI and moved back to using Prototype:

function runCommand(cmd){
    var request = new Ajax.Request(
            parameters:'cmd=' + cmd,
            onComplete: handleResult

function handleResult(response){
    $('loaderImage').style.visibility = 'hidden';
    var cmdResult = response.responseText;
    $('stdoutDiv').innerHTML = '<pre>' + cmdResult + '</pre>';

So that's all pretty simple, on the server processing the request is equally simple in IronPython.

from System.Diagnostics import *
from System.IO import *

def Page_Load(sender, e):
    cmd = Request.cmd
    p = Process()
    p.StartInfo.FileName = "cmd.exe"
    p.StartInfo.UseShellExecute = 0
    p.StartInfo.CreateNoWindow = 1
    p.StartInfo.RedirectStandardInput = 1
    p.StartInfo.RedirectStandardOutput = 1
    myOut = p.StandardInput
    myIn = p.StandardOutput   
    output = myIn.ReadToEnd()

The web project is fairly small - go ahead and download it here. If you have any improvement, let me know - I'm not sure how to start this as an "open source" affair but it would be a great solution as a light weight tool for remotely operating on a server.

Oh yeah, security: I was thinking of simple NTFS permissions on the files along with Windows Security on the website.  Should do the trick...


Monday, November 05, 2007

Innovative Thinking



There are some great videos at the Business Innovation Factory -

Jason Freid (37 Signals) -
I've been watching these guys for a long time. Although I'm a little resistant to some of the accolades associated with them, the 37 Signals crew thinks clearly and has a clear identity with which they seem overwhelmingly successful.
My favorite comment is Jason saying that they (37 Signals) want to be "enemies of mediocrity."

Richard Saul Wurman -
I first learned about Wurman from TechTV's "Big Thinker" series - although he is trained as an architect his career spans the sort of multidisciplinary mix that makes him special. He originated the TED conferences which have become quite popular of late. He's got an interesting new project called 19:20:21, be sure to check out the information graphics.

Clay Christensen -
One of the most interesting thinkers in the theory of business at present.  I wonder if Clay is more an economist than what one would consider a conventional "business" person. His gifts as a teacher shine through in this particular presentation.