It doesn’t make cents

So, there’s this new Bank of America “Keep the Change” thing they keep advertising on the radio and TV. If there were ever a case of bad math, this would be it. They promise to relieve you of lost change by rounding your credit card transactions up to the nearest dollar. First off: unless you ask for cash back, you don’t get change from a credit card transaction. The merchants can specify cents, and DO. Then, they tell you of all the money you can “save” by doing this, as if that money would otherwise be lost. That’s misleading: Your total money stays the same. You are “Saving” in the sense that your money is in your savings account, rather than more readily spendable, but you’re not “Saving” in the sense that you’re spending less money. It’s stupid, and misleading, and had they advertised it as what it is (A spending control mechanism), rather than what it isn’t (A way to get extra money), it would have been much less offensive to those with a simple sense of math.

On PHP design

I’m many things, but the part I want to talk about tonight is my coder. I’ve been coding for more than half my life: When I was 8, I started writing some basic LOGO programs in an extracurricular activity called Wiz Kids. (One of my best friends to this day, Donkey Kong, I met through the program, though we weren’t in the same session). My dad showed me some Perl back before web 1.0. I have a degree and a half in Computer Science, though I’m not certain what good either of those do me.

But I can code, and I do enjoy it. I just suck at it. Case in point: I just dug out a set of PHP scripts I wrote for a friend who has a webcomic. They’re not horrible, but I see so many things I could have done better. I’m fairly certain it’s actually secure code (which means something, in php), but the design is all wrong: It’s written as an application that you drop a layout into, rather than as a set of scripts you drop into a layout.

I’m gonna fix that, eventually. But, for the moment, here‘s the code. It’s used in only two sites, one of which is Brian Carroll’s Instant Classic Genrezvous Point. It’s an interesting exercise, but needs to be reworked. Still, not bad for a couple days of PHP coding without any real direction.

A Project

Orange Ya Glad? is something I thought up a while ago, but am only starting to code now. It’s blatantly based on Apples to Apples, except on the web. It’s obviously not as good as the real thing, but I’m hoping that with the ability to create custom decks out of tags it’ll be worth playing, once I write the code 🙂

Dumpnet drafts, and societal models

Attached at the end of this post will be some drafts of the Dumpnet protocol and specification. There’s some good ideas in them, and a kernel of truth in the idea presented there of Ant Routing. However, these drafts are crap for a number of reasons, both technical and societal.

A perfect society wouldn’t need the DUMPNET. A perfect society would have distinct similarities to a surveillance society: Cameras, records, logs would be everywhere. The difference would be that while a surveillance society would keep those records to those in power, a perfect society would keep them open to anyone.

Granted, this probably wouldn’t work for any number of reasons, but it’s a nice hope. A society where security procedures and anonymity are unnecessary is simply a dream, because there will always be a fringe who attempt to work outside the system.

Where is the DUMPNET necessary, then? Really, it’s current design is for a dystopian society. It allows perfect anonymity. Nobody can prove which packets you sent, or just routed, without careful examination of your computer. The design is paranoid. More along the lines of a cyberpunk world. Not practical in any way.

Not everyone shares my idea of a perfect world. I know some people who would love to live in said dystopia cyberpunk world. Even in our world, they live and value privacy as if they were living in that world. It’s not a bad attitude to take, all things considered. It serves them suprisingly well, if not the best socailly.

Most of those friends are people who I would consider “Hacker” friends. It’s not coincidental. Technological people tend to have higher concerns for issue like privacy. Perhaps because we better understand exactly how much data is being collected, and how it’s used.

I like the idea of the darknet. I like both the idea of freedom and the community that surrounds it. I like the idea of creating a service that can be used to make the world better. I like the access, the intrigue, and mystery that surrounds it.

I’m re-writing the spec. It was written as both a layer 3 and 4 protocol, but really, what’s important is the layer 3.

DUMPTRUNK Server Routing Protocol.

Programs that operate over the DUMPNET supply the DUMPTRUNK node with a Public key on which to listen. They are then allowed to send packets to the DUMPNET, as permitted by server policy, and all incoming messages with a DEST matching their key are routed to them.

To send a packet, the DUMPNET programs simply send a basic encapsulation of the packet to the DUMPTRUNK node along their connection to it. This should be essentially a full packet, with ID at 0. It should already include DEST, TTL, SRC, ID, and DATA, and data should be pre-encrypted. DEST should not be hashed.

The DUMPTRUNK node hashes DEST, lowers TTL according to policy, hashes SRC with it’s own private key if non-zero, sets ID

A packet, be it ANT or DATA, is received via a connection. The DEST hash is checked against the public keys registered with this DUMPTRUNK routing node. If it does not match, the ID is checked with the “Recent ID” table. If that returns a match, the packet is dropped. Zero should always be on the “Recent ID” table.

If there is no match on the “Recent ID” table, SRC is hashed with the DUMPTRUNK node’s private key and TTL is modified, appropriately. The new SRC is added to the public key table, along with the interface upon which it was received. (Unix Model note: If designed properly, there needs be no differentiation between a registered program and a linked node within the routing table. It’s just an opened filehandle.) It is then forwarded to each other node that is connected.

If the DEST matches one of them, it is determined whether it is an ANT or DATA packet, by the value of ID. The SRC and DATA are then passed on to the program that “owns” the public key.

DUMPNET Ant Packet specification:

An ant packet is used to set up a connection. It consists of the following information

DEST: A hash of a public key specifying destination.

TTL: A number, counting down the number of hops left to go for a given packet before it should be destroyed. TTL is one of the more flexible parts of DUMPNET. It should be randomized at the sender’s end, and at each node. There must be a general downward trend, but a 50% chance of reducing by one hop, a 40% chance of reducing by two, and a 10% chance of increasing by one helps mask the network architecture. Each DUMPNET routing node software MAY handle this differently.

SRC: An identifier, essentially a repeated crypt of a public key used in linking packets.

??? ID: An identifier, unchanged from node to node, to reduce traffic by preventing broadcast collision.

DATA: A further message, encrypted, with the same public key as used to generate DEST.

Dumpnet Packet Specification:

DEST: the SRC of the ant that was received to create the connection.

TTL: As above

SRC: Zero. There’s no need for a backtrace in this occurance.

??? ID: An identifier, unchanged from node to node, to reduce traffic by preventing broadcast collision. Note that, since the DEST should be a direct path, this should be 0. Perhaps this should be omitted for packets with a SRC of zero?

U-Stor-it

I’ve got a bunch of stuff in an “Uncle Bob’s Self Storage” up in Rochester, NY. As I was checking in when I got the unit, I asked if anyone had ever tried to live in one, as in “Snow Crash” (And a story by Aido in City Limits). The clerk said no, but recounted another tale to me.

There was a 40-something man, who rented one of the units big enough to store a car in. He didn’t keep anything in there, let it sit empty. But, every day, he would drive to the storage lot, open up his unit, drive his car in and eat his lunch.

I guess some people just need privacy.

I’m fine without being final

A lot of people thought the ending to Pirates III was detracted from by the scene in which Barbarossa and Jack head towards the fountain of youth. It lessened the finality of the movie.

Who cares? The movie, despite being the third and final in the series, wasn’t supposed to be final. Jack Sparrow wasn’t simply going to end his piracy. The scene left an opening, both for another movie (unlikely, but possible), and in the viewer’s imagination. Instead of sitting still for the end of the movie, in the viewers mind leaving the theater, Jack is already headed out for destinations unknown. Thar be adventure in these waters, rather than doldrums.

Sluggy and Cerebus

My Cerebus, Part 2 post isn’t done yet. I was trying to think of what to say. The objective, from the beginning, was to compare and contrast Sluggy and Cerebus, the two most obvious examples of Cerebus syndrome. I was having trouble, because, quite honestly, I was bored with sluggy. I wasn’t sure what to talk about, and I wasn’t sure that Sluggy wasn’t going the crazy ranting way of Sims’ original epic in the latter years. Today’s comic sparked some additional love for it, so I’m trying again. I think I understand once more what it was that drew me to sluggy, and why I still read it.

Also, it’s worth noting that having Computer Science lectures on public TV rules. <3 Seattle.

The Clock in the tree

“There’s a clock on that tree”.

“Where?”

“On that tree! Look!”

“You’re right. It’s … it’s a clock”

And it was. A little glowing neon blue set of digits stared back from the side of the tree, implacably fluorescing 9:24.

“I wonder what it’s doing there?”

“I dunno. It’s a clock. Who would want a tree with a clock in it? What good is the time out here, in the forest?”

“A good point, young one,” came a third voice, “A very good point indeed. Time, at-least out here, is rather meaningless, is it not?”

At this, the children were frightened. The source of the voice was not immediately obvious, and they looked around for several seconds before finally spotting it’s owner: A small green froggish thing, about a foot tall, stepping out from behind the aforementioned clock tree.

“Time is Relative. Or, rather, in my case, A Relative: He’s my great-great uncle, twice removed.”

“Who are you?” Said the little boy, Joey, who was not infact certain of what the little green thing was, or it’s intentions. He moved to shield his sister, Hazel, who had of course been the one to spot the clock in the first place, from whatever this little man (For it was man shaped, mostly) and his intentions may be.

“I,” said the frog/man/thing, “Am a Goblin.”

“A goblin?” questioned Joey, with distrust. “I’m fairly certain my mother wouldn’t want me talking to goblins, least of all ones that sneak up on us like that.”

“Truly, child, it was you who snuck up on us. We had, of course, seen you, but imagine our surprise when you could see us!”

“Us?” interjected Hazel

“Yes,” Boomed a deep voice, “Us.” And, before their very eyes, the tree moved. Carefully, and precisely, it shifted it’s limbs to resemble arms, and two rather large but rather disconcertingly uneven knotholes blinked open to form eyes. Roughly equally between them was the clock, now reading 9:28. A split in the wood below the eyes, they now saw, was it’s mouth.

“Who are you?” inquizited Joey, pushing Hazel further behind him even while she attempted to scramble in front to get a better look. “Why are you talking to us?”

“I am called… Well, most simply call me Tree.” Said the tree.

“And I,” said the frog/man/Goblin, “Am called Bartholomew. Might I inquire as to your names, young mister and miss?”

“I’m Hazel”, replied Hazel, “And this is my brother, Joey”

“Well met, Sir Joey and Miss Hazel, and welcome to my forest,” boomed Tree, as his gash of a mouth twisted into a crooked and sideways, yet very endearing, smile. Bartholomew smiled too, but with his crooked teeth and green pointed ears, it wasn’t quite so endearing.

“Would you,” Boomed tree, “Fine youngsters,” He withdrew a limb behind him, and brought back with it a kettle and several cups, “Care for some Tea?”

On Cerebus, Part 2

I finished the second volume of Cerebus today.

It’d been sitting on my desk, waiting to be read for a while. At first, it was waiting for me to finish the first part of my Cerebus essay. I wanted to write that without knowledge of what further would happen in the second volume. And then, when that was done, it was waiting simply for the right time for me to sit down and drink it in.

It was on a long plane ride that I finished it, a 5 hour affair from Cincinnati to Seattle. I’ll spare the details. But, with stoically silent people in the seats next to me, I read.

The first thing that strikes me is the art. The basic style is the same as it’s always been, and much the same as more mainstream comics. But the visual “flair”, as it were, is amazing. The use of grayscale text for echoes, heavy use of white on black to bring out text, or facial features. Most of the second half is drawn with the right side as the bottom, and over one set of pages the comic does a full corkscrew, as part of a sequence in which our favorite aardvark is rather inebriated.

Part of this essay is of course, comparing and contrasting such to sluggy. I’m not sure that sluggy has quite the same artistic nuance to it, but it certainly did and does push borders in how it’s story was presented. Perhaps the first thing to mention is that Sluggy is a webcomic: In 1997, there were perhaps a dozen comics on the internet, and only a handful that updated regularly. It was one of the first “three panel” comics to gain popularity on the internet.

Ted's Excellent Adventure.