2005/01/25

Microwave metalurgy: grass-roots industrialisation?

This guy has done something potentially revolutionary, in all senses of the word: he's hacked a normal microwave oven to melt bronze, iron and silver. Futher study may yield a method of melting steel.

What this means:

(a) short term, look for personalized items cast from the above metals to become very chic.

(b) medium term, read about accidents while experimenting with this new technique in the news, leading to a hue and cry (and maybe laws) against the practise, and heretofore inconcievable clauses in rental agreements (I don't think mine specifically outlaws heavy industrial metalwork...) and enforcement of zoning regulations.

(c) hopefully long term, as the skill develops, I'd like to see the skill of metal-working re-appear as (a) a craft that can be practised in your own home/shed, and (b) drive a new bottom-up revolution in personalization of items that were once produced en masse.

Of course, if we ever get to melt steel in a microwave, this means that things like (e.g.) eating utensils, ornaments, etc. could conceivably be made in a normal kitchen.

This is gives tremendous for grass-roots creativity to take hold - if it happens, the technique will be used for things that this guy will never have imagined.

But me being a typical man, I have to point out that primitive bladed weapons could also be manufactured at home using this method, which comes periliously close to putting weapons back in the hands of the worlds middle-class, which at the moment is the probably the most docile demographic on the planet. That would be interesting, and another reason for Western governments of the world to restrict the practise, should it get that far.

Tagging and expression languages

I apologise in advance, but before I get into the meat of this post, I feel obliged to (a) assert that I like tagging a lot better than folders/hierarchies, and (b) proudly claim that I was using tagging way before it became popular[1].

I also find it amusing that the discussion surrounding tagging suffers from the lack of a controlled vocabulary :-)

In the Clay's post above he makes use of a simple boolean expression language to define subsets of all tagged objects in a given space. This is natural, if you think of a tag space as being an infinitely extensible bitset associated with each tagged object. Then you can ask for things like this:

( apple && g5 && ! ( nyc || newyork) )

(My grammar is a little more C-ish than Clay's, but the syntaxes are equivalent.)

Futhermore, you can do things like XOR tag spaces, not that I imagine the result would be very useful.

Where boolean tag expressions will come in useful, however, is not just in defining subsets of the object space. Tag expressions could also be used to define equivalency between tags applied using different systems, on the same website or elsewhere. For example, suppose we want to define equivalencies for "Apple Computers" for two people, when one (Kevin) lives in New York and the other (Yves) uses the stock ticker instead of the company name and runs an orchard:


Kevin
Yves
apple && ! ( nyc || newyork) = AAPL && ! orchard


The example is a bit far-fetched, serves to illustrate the principle. And the left and right sides of the above expression need not both be on the same system - one could be in deli.cio.us, and the other in Flickr. In this way, the problem of two different users applying tags like "teen" in drastically different ways can be solved.

Once you start to define equivalencies, those equivalencies can act as bonds between the users in the equation, and from there you can start building trust and authority into what is essentially a fantastically anarchic way of classifying information.

-

1: This is actually true, although tags were classified in a hierarchy, so I suppose it's not really tagging from a purist perspective.

Mixing technical and personal entries: no.

Writing personal stuff is a fine method of release, but: the whole world reads this. Thus, now and retrospectively, I apply what I call "The F Test", to whit:
There is nothing on this blog that I wouldn't say to the CEO of the company I work for.

2005/01/17

Personalised, new and random mp3 radio

3hives has an m3u for the front page, which is nice, but having one for each archive page would be cool too. Looking at this, and other stuff linked below, gives me an idea:

Icecast + mp3blogs + grep + wget/curl + cron + bash + my Linux server = an MP3 jukebox of cool new stuff pulled in from MP3 blogs.

Yeah, so I'm late to this party. I compenate with boundless enthusiasm! Also: listen. Also: (*slaps forehead*) amazon referals are a business model for the most popular cool hunters. And even niche hunters can build audiences, because this is the web and the tail kicks in. The Long Tail is the latest in a series of catchphrases, but this one has traction, since the model explains a lot about how media and markets work on the 'Net.


Media personalisation, notes on "The age of egocasting"

This very interesting article has a new spin on the problem of perfect filters producing boring results, or as it says, "We have created and embraced technologies that enable us to make a fetish of our preferences." Other cool soundbytes:
  • Sampling is the opposite of savoring.
  • “Americans love junk,” George Santayana once noted. “It’s not the junk that bothers me, it’s the love.”
The author lends a little too much credence to the opinions of critics, who seem to be getting rankled that now anybody and everybody is a critic.

A beautiful counterpoint to the thesis is 3hive, which I stumbled on via deli.cio.us - which rocks - and is rapidly introducing me to music such as Flogging Molly that I would never have dreamed of hunting for, but is cool. In this way, 3hive is cool-hunting for me, just as SomaFM or SwissGroove do my soundtracks.

2005/01/14

Safe security

Bruce Schneier posts on the furore surrounding this safe-cracking paper by Matt Blaze (a computer scientist), mostly among safe & physical security professionals. The paper makes for very good reading. [via BoingBoing]

Most of the fuss is because principles such as security through obscurity are dearly held in the safe and lock industry, to their detriment, as Kryptonite discovered. Applying principles from computer security and cryptography in a different domain of expertise is causing heart-burn, which might, on first blush, be reasonable. But in addition to being fascinating, it's also slightly alarming in places:

Most locks have a wider dialing tolerance than the dial graduations would suggest, allowing an error of anywhere between ±.75 and ±1.25 in each dialed number, depending on the lock model. So although there may be 100 marked positions on the dial, there may be as few as 40 mechanically distinct positions.

[...more possible keys removed...]

For locks with the full ±1.25 dialing tolerance allowed under [standard], these recommendations seem especially misguided, leaving only 22,330 distinct “good” combinations. Observe that this is less than 2.5% of the apparent keyspace of 1,000,000.

Similar reductions in effective keyspace will be familiar to observers of many computer password authentication systems.

That's not the kind of thing that a cryptographer can get away with when designing cryptosystems. Before long, safe-makers may not be able to either.

2005/01/13

hyper-efficient RPC with XMLHttpRequest, Gradient, Blogger

(1) You can use XMLHttpRequest to send a HEAD request. Encode the RPC parameters in the URL. Encode the results in "X"-prefixed headers of the 200. No body necessary.

(2) As far as "getting the document controller to stay online", this ain't necessary if the JID referred to in the namespaced element of the loaded document refers to a Pubsub node. The controller can be knocked offline, the node still exists. This is a better model, but server<->client IQ and messaging, and client<->client messaging and RPC would all have to be re-worked around this new model. Bring on FOSDEM.

One of the things that's struck me with lurking on p2p-hackers and reading about DHT's etc. is that as well as building monolithic filesharing apps like eMule, we're also seeing p2p primitives appear, which can be bolted together just like cryptographic primitives to produce systems like Kenosis. This is the style of BT in doing one thing and doing it well.

(3) f you retrospectively change the title of your blog post, permalinks break. This is annoying.

(Also: I can't find a parser generator that will output a parser in ECMAScript. This probably proves that I'm crazy for wanting such a thing, but that's OK. I know I'm crazy.)

2005/01/09

Programmers should generalise... sometimes...

OK, so the idea behind Gradient is to wire an SVG document into a P2P network, albeit one that's physically client server, and conceptually P2P.

Why do this in general: many applications now are being developed for use via the web, i.e. they're webapps. This is my worklife area of specialty.

The idea behind Gradient is that you have a generalized messaging network (XMPP/Jabber) that is (a) can do cool things like PubSub (see below), (b) is scalable and mature, and within which documents form their own application 'clouds', i.e. specialized subcultures of network endpoints.

The fact that you're still loading pages over HTTP means that you're centralising things (of course), but not every P2P network has to be lawyer-resistant if you're trying to do legal stuff. And having the app loaded as a document each time is something we all know the pros and cons of.

One of the things that's not working so far is getting the document controller to stay online. I don't know how often jabber.org is restarted, or if clients are all kicked off after a certain length of time, but having client JIDs perform server functions isn't the way for me to go about it. PubSub is almost definitely the way to go on this, since (IIRC) items published to nodes stay around after a node goes offline. I'll be here end of Feb, so I';; have a better idea of how things stand after that.


2005/01/06

Camera phones as mice, v.2

To follow on from this post, I have another use case coming from the 'smartphone as personal TCB' perspective. Not only could a smartphone function as a mouse, but also as a security device in place of a smart-card. The existing mentalities fit perfectly, because nobody leaves their smartphone lying around.

If the phone has a fingerprint scanner, then it also becomes a secure logon terminal. The use case:

  1. The user puts his phone on the the desk, camera-face down, and swipes his thumb on the strip reader.
  2. The phone establishes a secure link with the workstation via bluetooth, and authenticates the user with the server.
  3. If the authentication is valid, the workstation unlocks and the user begins work.
  4. The user leaves his office, taking his phone-mouse with him.
  5. The workstation detects a break in the bluetooth connection and locks the console.
  6. The user returns to his office, re-swipes his thumb to unlock the console, and continues work.

2005/01/05

Webcams and web authoring

1) Look at these Thousands and thousands of webcams.

Why this is cool:

  1. The random pictures combine to create an indescribable impression. Someone building a boat. A Pagoda. A mock CCTV control center. An Izaka bar. A deserted street. A harbour blanketed in snow. The list goes on.
  2. This is real life, uncut. This is a tiny, jerky window onto the future of mass media. Mass broadcasting, not mass market.
  3. The Architect's office decoration. A web-page could be put up containing nothing but a wall of random videos.

2) WYSIWYG web editing sucks, but then so does editing the stuff by hand, due to its verbosity. Taking a page from XPath, and the type-ahead find features of Mozilla, I'd like to be able to type and edit something like this:

html/head/title>foo<;style[type="text/css"];../body/h1#header>My
site<;div#contents;div#main/p>Welcome<;p(3)>bla bla bla<

And have this generated:


<html>
<head>
<title>foo</title>
<style type="text/css">
</style>
<body>
<h1 id="header>My site</h1>
<div id="contents">
</div>
<div id="main">
<p>Welcome</p>
<p>bla bla bla</p>
<p>bla bla bla</p>
<p>bla bla bla</p>
</div>
</body>
</html>
Combined with the web development bookmarklets, "edit styles" in particular, why, HTML might even become a joy to write.

We know so little, and what we do know...

Is hidden.
  • There is a truly enormous amount of raw figures on the web. This is a link to pages of links to hundreds of thousands if not millions of pages of tables of numbers, from the EU, the UN, and the US Government. That is only the beginning.

    These figures concern every facet of the human condition and more. Those numbers are not boring! Each number is boring, but there are stories hidden in that pile of data, waiting for people to find them.

  • Despite this, a vanishingly small percentage of it is accessible via a machine-usable API. What I mean is this:
    • No metadata, UDDI-like registry, ontologies or taxonomies. The infoarch that does exist is ad-hoc at every level: site, sub-site, and project.
    • No SOAP, XML-RPC, REST, or other pre-web means of access.
    • No machine access except by screen-scraping
    • Subscription access to stats being funded by taxpaying nationals, in most cases, and price levels targeted at institutions and NGOs
    • Trapped behind query interfaces opened as framed, javascripting multi-post powered wizards in popup windows.
    • Stupid restrictions (e.g. 5000 rows max per query) that force needless circumventions.

  • Of all this huge body of data, a good 40-60% (based on my random sampling) of these numbers are in PDF. Extracting tables of figures from PDF into machine-readable form is complex, error-prone and processor intensive. Of the other 60-40%, half is in Excel (which I can live with) and the rest is in CSV or something similar.

  • However, none of this data is theoretically out of reach. What is needed:
    • One smart repository
    • One smart screen-scraper
    • Something to extract tables from PDF documents
    • Trained monkeys to operate the scraping gizmo and classifying gadget.

2005/01/03

I don't care if you met each other via the Internet,

If you're having an argument, TALK. With a telephone. Or Skype. TALK.

Sheesh.

I'm not talking about couples, I'm talking about programmers.

2005/01/02

This is kinda funny

The same day I eulogize Mozilla I hose my installation six ways to Sunday, and I mean completely. Good grief.

[later]

And I have so many plugins installed it takes me 40 minutes to reset everything just so.

2005/01/01

The global village becomes reality, hopefully

Anyone with a heart has been hit hard by the tsunami and it's aftermath. We have between 150,000 and half a million people dead. What's hit me is both the incomprehensible scale of the tragedy, and the personal stories that are coming to light.

There's a ray of hope though. The global reaction to this huge level of suffering is unprecedented. You have countries almost competing to out-do each other in how much they give. I'm waiting to see if China will try and match the USA. Personal donations have poured in. Amazon.com users donated more than Saudi Arabia. Individual responses are matching governments.

Would this have happened 100 years ago? We now have raw, hard-hitting, up-front and personal accounts of what happened beamed straight into our homes. It's not uncommon to have traveled in those parts of the world, to know people who have families and friends there.

There's no denying the world is a nasty place. But here I believe that technology has brought people closer together on a global scale, and I'm hoping that the empathy that's lead to this amazing generosity is the start of something Big. How wonderful it would be to have nations become members of a gift culture, where status is determined by how much we can give, not how much we keep to ourselves.

The pace of web development...

Web development on Mozilla is soon going to become an absolute dream:

  • Solid patterns are developing around XMLHttpRequest, including HEAD requests, which may become the ultra-efficient RPC of the web (and not supported by Safari yet). On IE, this requires either an addition to trusted sites, or dropping your pants to the rest of the Internet. Assuming it's possible, an independent implementation of the XMLHttpRequest object in JScript is only a matter of time.

  • XPath. This is absolutely essential for navigating DOMs. This can be added to >IE5, which is nice, but you have to bind it to each new document you want to work with, which I can live with if I have to. Safari does not support XPath in any way shape or form.

  • E4X, soon. Did I mention how nice this is? Oh yes I did. No more of this:
    newRow.appendChild(nameCell); newRow.appendChild(downloadCell); newRow.appendChild(rangeCell); newRow.appendChild(sourceCell); newRow.appendChild(dateCell);
    ...and no more futzing with pasting strings as innerHTML, which is even uglier from half a dozen perspectives. Yes it's faster, yes it's less redundant code, and no I don't like it because it's an ugly, disgusting hack compared to E4X.
When I code in my spare time I would rather not have to work with ActiveX, or forgo XPath because of Safari. It's when you see the state of other browsers that you realise what a fantastic codebase Mozilla has. If MS isn't already panicking, they should start now.

(Oh, and: this XPath visualiser by Dimitre Novatchev is very, very nice.)