Ideas in this (virtual) directory have been implemented by me or by somebody else.

Terminal on a chip

2006-11-13 03:15; in Adam's Ideas, Done; 143 words

Serial terminals are typically very expensive -- often two to three times the price of a far more capable PC. There's still a market for them because they're more reliable and compact than a general-purpose machine.

I'd suggest producing a "terminal on a chip" using an FPGA -- a serial port, a VGA output and a PS/2 or USB keyboard input. The resulting circuit board would only be a couple of inches square, so could easily be glued to the back of a cheap LCD monitor. Even adding Ethernet support (for telnet/ssh) shouldn't be much more difficult, since there are existing TCP stacks for FPGAs.

(The reason I wanted this was so I could mount a WRT54G board in a SPARCstation IPX case, as a low-power-consumption Linux workstation...)

The Briel PockeTerm is essentially what I was thinking of here, implemented using a Parallax Propeller chip.

Record frames

2006-03-13 17:00; in Adam's Ideas, Done; 71 words

I've got a number of record sleeves that are quite attractive, and I'd like to be able to have on the wall. Since they're a standard size, I'm sure it's already occurred to someone else to sell a twelve-inch-square picture frame that you can put an empty record sleeve into.

... and yes, it has -- Firebox sell them, as do Indelible Pink (along with a number of variations on the same idea).

1541 emulator

2005-06-19 09:30; in Adam's Ideas, Done; 95 words

The C64 DTV is a modern (and extremely cheap) clone of the Commodore 64 with a set of built-in games -- and keyboard and disk interfaces. To provide persistent storage and thus make it a useful C64 system, it would be neat to have a flash-based storage device that emulated a 1541 disk drive. Since this would only need a small microcontroller and a flash chip, it could probably be made small enough to fit inside the original DTV case.

Looks like Jim Brain had the same idea: his uIEC is a Compact Flash-based 1541 emulator.

HTTPS proxying

2004-10-28 13:11; in Adam's Ideas, Done; 235 words

Filtering proxies like Privoxy are extremely useful for people who want to alter the content of web pages before they see them, but they can't currently do anything about pages served by SSL: SSL proxies just pass TCP connections through. With a bit of certificate manipulation, though, it would be possible to alter the content of SSL pages in a proxy.

The trick would be for the proxy to be a CA. The user would grab a CA client certificate from the proxy (using a magic URL) and install it in their browser as a trusted CA. The proxy could then generate synthetic certificates on the fly for SSL sites that the browser would trust. This would allow real SSL proxying: the browser would talk via SSL to the proxy using certificates generated by the proxy, and the proxy would talk via SSL to the requested sites using (and verifying) their own certificates.

It would even be possible for the proxy to deal with existing clients that use CONNECT for SSL proxies, by starting an SSL session and accepting the incoming HTTP request. Institutions that want to guarantee that their CONNECT proxies are only being used for real HTTP might find this useful.

This has apparently (as of 2009) been implemented in Palo Alto Networks' PA-4000 -- although the fact that I heard about it through RISKS Digest suggests it's perhaps not a terribly good idea...

Attachment warnings

2004-03-30 16:03; in Adam's Ideas, Done; 120 words

If I'm sending email and I've used the word "attached" in the message, it's likely that I intend to attach a file before I send. Since in many mail clients (for instance, in Mutt) the process of editing text is separated from the menu where you can attach files, I sometimes forget to actually attach the file before sending the message. If I've said I'm going to attach a file and I try to send the message without doing so, my mail client should warn me.

Internationalising this might prove to be an interesting challenge.

post-mode implements this for Emacs, and KMail has done it for ages according to a correspondant, so I think this idea's been thoroughly done now...

A better RSS aggregator

in Adam's Ideas, Done; 63 words

Not much of an idea: I want an RSS aggregator with an interface like PyDS's aggregator, but without the rest of PyDS. Borrowing liberally from the PyDS code might be the easiest way to achieve this.

Implemented as rawdog. I didn't end up using the PyDS code, but I did make use of Mark Pilgrim's feedparser library, which saved a lot of work.

Aspect ratios in window managers

in Adam's Ideas, Done; 64 words

When resizing a video window on my desktop, I would like to know what its aspect ratio is. It'd be nice if my window manager would tell me (in "4:3" or "1 1/3:1" form), or allow me to constrain a window to 4:3 shape.

If your window manager handles size hints correctly (for instance, Openbox 3 does), MPlayer now maintains its aspect ratio correctly.

Bandwidth proxying

in Adam's Ideas, Done; 91 words

Suppose I'm running a webserver on a slow dialup link, and I'm serving large pages containing mostly static content with occasional dynamic sections. It's therefore possible that a site with a better connection that knows how to generate the static bits of my outgoing data can generate packets that appear to come from me with the appropriate contents, exchanging some minimal information with my machine (TCP sequencing, etc.). Effectively, this is distributing one end of a TCP connection across several hosts.

Werner Almesberger's already done essentially this as TCP connection passing.

bandwidthpie

in Adam's Ideas, Done; 32 words

A real-time-updating pie chart showing how much of our ADSL bandwidth each user is using.

Implemented using Perl, GD and iptables as bandwidthpie; see all.fivegeeks.net for an example of it in use.

batvise

in Adam's Ideas, Done; 125 words

A supervise-like tool that's a bit more flexible and didn't need svscan (you'd start and stop it by hand) or svc (make it respond properly to SIGTERM, SIGHUP etc., and write the supervisor's PID to a pidfile). You could even do svscan-style logging by having, say, a -e switch that made it redirect its child's stderr to its stdout, and then just piping the output to another instance of it. There's probably no need for supervise's "down" functionality -- if you don't want the child running, then don't run the supervisor. An option to specify the delay in seconds before restarting the child would be useful.

Implemented; see batvise. I've gone back to freedt since, to avoid the huge trees of do-very-little processes this method required.

Categories

Contact: <ats@offog.org>

Copyright © 1997-2011 Adam Sampson