:: Happy Happy, Joy Joy ::
I suspect my greatest joy about our nanotech-vr-bioengineered-p2p-singularity future is it provisions enhanced capabilities to Good and Evil in equal measure.
:: Hack: Keyboard shortcuts ::
This is a simple one, but shaving every last keystroke from repetitive operations is a pet peeve. After seeing Google's keyboard shortcuts, I'd thought I'd use keyed features on my link page (which replaces bookmarks and serves as a home page.)
I have a set of input fields at the top,
<form name=one method=post action=home-search.cgi> <center> <u>g</u>oogle <input name=google type=text> <u>p</u>aper <input name=paper type=text> <u>w</u>ebster's <input name=websters type=text> <u>i</u>mdb <input name=imdb type=text> <input value=sub type=submit> </center> </form>
None of them has focus on page load. If one of our four keys is pressed, it gets focus.
<script> function resetkeys() // for onload { nokeys = false; } function getkey(e) { if (nokeys) return true; if (e == null) { // ie kcode = event.keyCode; } else { // mozilla if (e.altKey || e.ctrlKey) return true; kcode = e.which; } key = String.fromCharCode(kcode).toLowerCase(); switch (key) { case "g": document.one.google.focus(); nokeys = true; return false; case "p": document.one.paper.focus(); nokeys = true; return false; case "w": document.one.websters.focus(); nokeys = true; return false; case "i": document.one.imdb.focus(); nokeys = true; return false; } return true; } document.onkeypress = getkey; </script>
And a script processes the results on [enter]...
#!/usr/local/bin/python import cgi, urllib form = cgi.FieldStorage (); services = { "google" : "http://www.google.com/search?hl=en&ie=UTF-8&oe=UTF8&q=", "paper" : "http://my paper document database?query=", "websters" : "http://www.m-w.com/cgi-bin/dictionary?va=", "imdb" : "http://www.imdb.com/Find?for=" } for k, v in services.items (): if form.has_key (k): print "Location: %s%s\n" % (v, urllib.quote_plus (form [k].value)) break
I have hotkey Ctrl-Numpad-Minus to launch a new browser window. One more keypress gets me the engines.
:: Mozilla steers clear of interactivity ::
Can it be true that Mozilla inherits Netscape's disability regarding dynamic content?
Now, the word dynamic is a red herring. For the NetMoz camp, it's a marketing term. What they mean is programmatic-properties-on-load. They sometimes mean a few mouse-responsive styles. They sometimes mean updating the contents of form elements and image swap. Big deal -- they really mean, "We have no interest in building interactive pages, without the help of Java or Flash."
What a change with MSIE 4. It began to support real, dynamic evaluation of arbitrary sections of code, styles and script. This is a killer stuff. It means Webmasters can posit apps normally relegated to the desktop (and "programmers"), using uniform HTML, Javascript and a basic server-side scripting component. (Anders has some examples: 1 2) It's the difference between endless page loads and real-time interaction. That is, native app-like abilities by web page.
The other half of this equation is RPC. Here at least, we have cross-platform support (e.g. Brent Ashley's JSRS library -- although MSIE-specific code is achingly simple.) Further, both camps are starting to support browser-side SOAP and other protos.
But what's the point, if you can't update content? At the beginning of the Web, we gave up interactivity and direct manipulation for simplicity and portability. But it's ten years later. Can't we have both feature sets?
Update: Read the comments to see why I'm (happily) wrong.
:: Releases Category ::
Creating a new category for releases. Hope to get out a few packages this month.
Working on some utils, web apps and a real Linux fs for glastree.
:: Spam, FTC & 1st Amendment ::
Watching C-SPAN, I stewed while the Telecommunications Research & Action Center announced a petition for recommended ammendments to FTC's email regulatory structure. Current efforts speak only to fraudulent practice, where TRAC, via their Ban the Spam campaign, advocates the tired pair of legitimate headers and working opt-out mechanisms. Now, every propeller head knows this won't work.
During the round of questioning, however, it slowly came to light these folks were not complete idiots. They favor stronger measures, but recognize the provisions of mandatory opt-in and private right of action are bill-killers. Further, actions of US national and state legislatures have been glacial and backwards, whereas FTC policy changes can be made quickly and with no higher public consideration -- thus the direct petition.
With each passing year of defeat, and growing 1st Amendment rants exemplified by John Gilmore and EFF, this compromise sounds less and less daft, as one part in three:
- Narrow junk email to legitimate traffic by well-known companies.
- Put market pressure against said companies to cooperate with consumers on inbox territory. This stuff works, folks. Consider recent victories with web popups. Consider the odious practices of the late 90s that were rejected by consumers.
- Cocoon inside our Bayesian futures.