Friday, May 16, 2008

Problems with going dark

So as I said in my previous article I wanted to try going dark. Here are some of the problems I encountered

1) Tor is slow... I like my internet instantaneous. Having time to get up and make tea while waiting for my websites to load just isn't going to cut it. Also because my IP address comes from a random location every time google tries to guess what language I speak. I was unable to determine how to assure google that I speak english... American english specifically. So I just had to deal with google being in Chinese, German, Dutch, and Italian. Poor show I feel.

2) PGP has a fundamental flaw. You see PGP uses a public key-private key combo. I left my public key on my blog and kept my generated private key hidden on my Ubuntu Linux laptop at home. The trouble is that private key isn't something you can really carry around with you. (Because it's private). I spend more than half my waking hours at work... on a computer where they probably track my keystrokes and other terrible things. So even if I brought my private key encrypted (which it is by default thank goodness... with a passphrase...) that's totally not useful if you worry that someone has placed a keylogger on your system. So I can't use my private key to encrypt anything when I'm at work... which is almost always.

3) IM encryption can't work one way. There is a nice and easy PGP-like encryption plugin for Pidgin called pidgin-encryption, I just added the addon and was immediately able to chat encrypted. The problem is you can't chat encrypted to people who don't use the same encryption. I tested it out with my wife and it worked great. I even checked out my google chat logfiles to see what it looks like going across the wire. Here's a sample:

me: ** Encrypted with the Gaim-Encryption plugin : Send Key
Kelly: ** Encrypted with the Gaim-Encryption plugin : Key: Prot NSS 1.0: Len 249:Odw+YVVO3fV7d3cD/LISGDkAMIJDLFg8,MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEEAQhm477bt1KnprVlD/5nWH+deYoF2IjUxt/5sUOnJezCpWsqRgRoDUxOUEBWkEpWSWJVV8yjPRr7i2nnkWjpe3a+fQ+20pkIdI6qJqRFSU5P2gJLXWl3p38rET6W8i7tE8F20m4Msk57jF4URSqAWjHtsZ0g4bjwpANXlLXkwIDAQAB
me: ** Encrypted with the Gaim-Encryption plugin : Msg:Sf01f547677:R2687548b16: Len 512:N6DFKd+PciYkREHlpv1/EzLYJ3HY2VCo/T30KU48Rqws0CqMPWaAqU4z1dpTUYQWr81Uv3jakPfuB+0tmyW1gVORQscW+SY84uAaovAZpjM0HdtWT762jciqfUfmHs+9iT9mlczvXSk1kFyfUUhKk8h6GPgPxxhUPAWxFFRr5iW8wkMJ+ltUz+u9NsyUfTz8i4x4CqAu3ZUQxGt1vYYzRn3ruzVhlw+mJkGMQA51FsmN68bcUEq01d9fU/Q0cQJmADs6l1N0l+RA5SZOrMDGJixCqrFLzDLQ8Tuv8SK8UDvWS9x20zNIwop3KnJi+DUtk+u1I2VoCSFYPe4qfhDfspXKDtuYc1vBg/aSy+4mA8gLngOMwvCPwxNCEBzs1uVrtYFwL2A630Ah+v2/cJP4qpWH2i7hMISnBXTcDFnQSEj0kVzeqN8FCR/h8iq0yPHMYUM6P7ejKaQW46I+S5X0QxxTr9Md3J4aimu374cI93VUps9zRGe6TE1ImbtFAo48
Super sexy huh? But for it to work generally I need all my friends to encrypt as well. I'll try to always allow encryption on my chats (just in case you're feeling like hiding your talks with me) since it doesn't affect anything else.

4) Everyone uses cookies. I tried turning off cookies and I was immediately making exceptions. Google uses cookies for everything (which is dumb). My work website uses cookies. My comic slurper uses a cookie and that's all. Del.icio.us uses cookies. It's crazy. It's like turning off javascript for how many ill-concieved websites just shove crap on your harddrive. But I don't want to do without those sites so cookies are back on the menu.

5) Https works great. I found that google was especially competent at running SSL. Hotmail fails at it by the way. Even though you can go to the login page on SSL it redirects you to a non-SSL page after login. And you can't even switch to SSL yourself... EPIC FAIL. I'm going to continue to use https on gmail and my google homepage, because I like imagining my communications with those places are only between me and them... regardless of how often they sell my communications to other companies and the government. Though I just checked and blogger fails its https check, though it does redirect you to the regular http, which is better than hotmail. I guess they want to make sure that everyone can watch what you type as you write your blog.

Conclusion
The interwebs are not ready for people to go dark. They still want to hook in and track you and prevent you from hiding. That's really a sad statement, I think that the internet foremost promoter of "anonymity=equality" should allow me to be anonymous. I know that after this experiment I will try to be more conscious of how I design my websites, just in case an uber-paranoid friend needs to contact me.

Monday, May 12, 2008

A little taste of 1984

So I read a book today called Little Brother. You should read it, it's only about 200 pages you can finish it in a few hours, I promise it's a good read. I'll even wait while you do it....


Alright for those of you who don't have the time I'll give a brief synopsis. *SPOILERS WARNING: This post contains detailed information about the book Little Brother*

The terrorists bomb the Bay Bridge, Department of Homeland security steps in and locks people up, this story follows a young hacker who gets swept up by DHS and debased. They let him free with an admonition to never tell anyone. And he watches as his city is turned into an Orwellian nightmare before his eyes. He fights back, the underdog, against the DHS... It's really much better to read the story.

It got to me, made me a little wide-eyed, worrying about how this might come to happen.
I got over it, I'm not ready to fight the government, I suppose if things get a little too 1984 for me I'll run away. It's just not a fight I want to enter, I don't want to fight against people I know and care about because they think it's right for a government to revoke our rights to peace and happiness. I'll just leave em to their own devices.

But that doesn't mean I can't help passively. So I've decided to go dark. For me that means that this is my last traceable post... I thought it only fitting it be about this.

So what kind of inconveniences am I going to run into?

I've decided using the Tor onion routers for firefox and gaim. That will make things slower, but generally more anonymous.
I've decided to make a conscious effort to use https in order to run over the secure socket layer when it's available (like in gmail).
I've decided to try to remember to log out of gmail before surfing. Did you know that they can trace every google search you make while you're logged in.
I'm gonna try to go without cookies
I'm going to start encrypting my communications to certain people.

Why am I doing this? Do I have something to hide?

Nope. I don't have a single thing to hide. And probably never will. I'm totally boring. But reading "Little Brother" it made me think, "What if there are people out there who need to hide, but there isn't enough encrypted traffic to hide in." So I can help them hide by going dark myself. And who knows maybe I will have to use it.

So do I support the terrorists who bomb us?

Not really. I don't think bombing people is a very neat way to express yourself. But I must admit I am very partial to privacy... So if it's a choice between not knowing when terrorists are going to bomb me, and being able to live my life privately. I'm gonna have to side with privacy. Terrorist bombers will find holes in the system... just like spammers... just like media campaigns... just like any unwanted offense. I don't want the system to be tighter because the only person it's squeezing is me.

Why won't you actively fight for your privacy rights?

I'm busy. I want to build robots. And like I said before, fighting for people who don't want to be fought for is futile. If the people want cages... give them cages. Just count me out.

I'll try to post something about living in the darknet later. Oh if any of you want to join me here's my Public Key:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.6 (GNU/Linux)

mQGiBEgpNdkRBACdkLqN3LoXfYJkk4qDWSNdzsLo/BQt/McsZ+4mLNRFmeSqnCOS
RFGpj5tnjNzCK54E7kHjfYK3CBmYlnkbJPsb9vN4G6fShhV6f4YnVgwjW3kgemLL
/j8LbMv6H9SpeAGm6xI3YCZZxz1Yphi5tTEj4noxJICIc0ISvA7InT1aHwCg0NPw
RtoNzdLJ81EFvpw0ZVds1E0D/2XqUrbCJoCHFRy2rxTGLf8gFbCHvw6jkKnKTfvU
26q40u3m2Cq+haulDGqX/NumlMndWA6dfz2LZjnaLt5hl3wKiNP7N9NFEQQc827w
uMLBZz329vhV/QaLAznsq5glRosqmLiR5NbdWuJA61R4bODcXry5T0A6rcAjQS7m
cQXxBACJKAlcoKS4dTXRQ1H8axvH0Aipmr0PUZKdxqpeXLV69cjLf9XeDCPYzDkh
0/kdCc/JWYRK5rgAdXVuE3ylsNMaEJOsdHQPQXN1m84RjEj/6swpyfipEndII/9K
eVRmPDLEO5jKAT60h3AteXottHK4Cz+r8yrQUjsMr8lHtWdAebQ9SmFzb24gU2No
YWNodGVyIChFYXJ0aHMgV2FycmlvcikgPGphc29ub2ZlYXJ0aCtwZ3BAZ21haWwu
Y29tPohgBBMRAgAgBQJIKTXZAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQ
Gonsm9xPhtmLKQCgqUKT0CswiGqw+MlsKgh+Bnc9Z1gAoLLEIe8aThnWJuStDa14
dxm9nlU1uQINBEgpNf0QCACcjXjFxoH3HKPK9TfJs/vG0jmeUhR29NXe4R2YBFXg
YE2y5qLx6e83OS31b6sgP092aLbW4yT44dztCObj1V02RhQrjf400wFCIYbAWWhd
tW05kSerZCxUSWrAA8b96vOX/STIzrh74u3k4eqcStes30tmVeAXnh39VNMRb5mB
XUst6/X2EFcXKvZesUebwFlTcU73harWelTtaJjOp5Vc5gTB9/0pX9jdvF0GSTGN
5wAzOEl6gWPfdXg35E5cXPg1rxPXL5fuLomD1EcFl0EpzYhUb/wSGS3KOyrut8lS
hDLMiYJ0qLl8w0FSLe8hNA8oZXyxcJgYI+G1Ze/ERt/HAAMFB/0V0uKRQ7Icrpkl
CmtteN+4SnCvZaNpGHbRZEV9/Vx98raYOILYdL2tBiPukGDRRxce6pw9t7SbtTV1
roEVISC8rULA4IWtdX38YkO48JEMh/3mB03H2yXuKLnbgakp6dUqA5g3QT/YQTHn
5vc0QAHDKZfzZD17ljjBLy40WT+pGi/8cB2I1wcSnv4FqkSOwAJOUOMW7GSg1qLs
rG6nMD8sfhltIPfCxoTvHvhNYvI24URL6t5v2NWR5nTxReDUlQD7Tu8afFLPrpnm
odA2uyOpM4RW/Zb7t30xnlg7WvBU4cpTGOLeGtpYozwotymJMyg4qEGWCdDZPl7o
WZc2kuFkiEkEGBECAAkFAkgpNf0CGwwACgkQGonsm9xPhtm60gCeLlN9KJ1ofbWM
ftBh+bw4ZfgOT00AmgI/hQ9LkccqRHh+lK7KURvqbmNc
=H3Nj
-----END PGP PUBLIC KEY BLOCK-----

Send me your public key and I'll consider you a friend. If you're really a secret DHS agent pretending to be my friend... well done... you've infiltrated a group of revolutionaries... I happen to be a pioneer in the art of sitting on my butt, doing nothing.

Friday, May 9, 2008

I want to work for you

Your company must be making a difference. I don't mean a difference in what kind of software an average engineer will use. I mean a difference in the path of technology of the world. If you are working on robots, or nanotechnology, or synthetic biology, or space exploration, or superconductivity, or brain augmentation, or extending lifespans. Any of the hundreds of applications that will be useful to bring us closer to the singularity. I want to work for you.

I am a programmer, that means I know programming languages and how to use them. I am not an expert in any one language, but I have used almost all of them. I'm learning lisp to work on AI (I will keep doing that until you hire me). I studied Java and C++ in school, and continue to use it wherever I'm working now, they are unimportant languages unless used to solve complex dilemmas and no place I have worked has ever provided me with any.

I am a simplifier, I take complex systems and break them down in order to create the simplest solutions. As a programmer this makes me exceptional at design, I use my abilities to force the creation of the simplest structure that will work. I don't believe complex and elegant work well together. Complexity makes things harder to work with and should be hidden behind abstraction so it does not spread. I think any lasting code (that will remain in production for more than 5 years) should value simplicity over clever hacks and creative solutions. Solutions to programming problems should not look creative in the end, it may take all your ingenuity to come up with the idea, but in the end it should look simple, like it always belonged where you put it.

I am a creative thinker, however I am not good at generating original plans. This means that if you provide me a framework I will work exceptionally creatively and design you the best possible solution to the problem posed. The tighter the framework the more elegant my solutions tend to be. If you tell me to make "something cool", I won't have anything for you.

I am open. I believe in truth in communication. I am a facilitator, I work with all teams and value every well reasoned opinion. I refuse to "hang with the engineers", I am equally capable of discussing with product managers, designers, customers. I do not lie, I will not attempt to further my career at the expense of others, I will tell you about any aspect of my life if you ask.

I am steadfast. To change my opinion you must make me agree with you. This is an impossible task unless you speak with logic and conviction. If you fail to convince me of a direction I will still follow your orders, but I will likely be slower and less creative in a direction that I don't agree we should go. I don't waver on opinions without solid backing, all of my choices are well reasoned to start with.

I should work for you. You should pay me to learn, and build whatever you ask. I will go to school to learn more for you, I will work as hard as I can to help bring about the singularity before I die. You should harness my powers, rather than let me languish in a cubicled prison.

Wednesday, May 7, 2008

My Kaizen List

I just found this wiki article on kaizen through lifehacker, and it struck a good chord with me. Continual small improvement always seems doable to me. So I've decide to set up a kaizen list. Which I've decided will be a list of three things that I will attempt to continually improve. The list can shift but whatever is on the list should get some attention each day, even if it's just to think about or read an article about it. I can't cop out of the list by using blanket statements like "get better at programming" because that could mean anything and doesn't get to a really solid goal. My current list includes only two, but I will look for a third over the course of the week.

My List:
1) Lisp
2) SCA swordfighting
3) ???

Tuesday, April 15, 2008

Where is our Master of Orion?

Last summer we discussed twin announcements from Intel and IBM/AMD about a new chip manufacturing technology dubbed high-k/metal gate. Intel is using the tech to improve speed and power consumption in its 45-nm chips. IBM, along with its manufacturing partners, just demonstrated chips it says show that high-k/metal gate technology at 32 nm can result in performance gains up to 30% and power savings up to 50%, compared to 45-nm process. IBM plans to be manufacturing 32 nm parts by the end of 2009. (AMD is not using high-k/metal gate yet, but it has access to the technology by virtue of its agreements with IBM.)


I read that article summary from Slashdot and one thing stuck out to me:

AMD is not using high-k/metal gate yet, but it has access to the technology by virtue of its agreements with IBM.

Holy smokes. Did anyone else get Master of Orion flashbacks? Regular articles are considering technologies as commodities. Something to be traded between races companies. I realize that companies have been trading "technologies" for a very long time. But this particular "high-k/metal gate" technology, is an actual technology in the true sense of the word. Developed independently by two different companies.

Imagine what would have happened if they had been working on different aspects rather than competing to the same technology. Looking at it from a Master of Orion viewpoint when we bump up our electronics research we get no more research points because they're all researching the same thing.

When you play Masters of Orion you get the sense that the whole race is working together to expand knowledge, and explore space. That there are teams of scientists inventing because that's what they're good at and what they produce is useful, to everyone. You probably didn't even imagine an internal currency for the planets you controlled. If the scientists wanted food the farmers would give it to them. If the factory workers needed ore the miners would get it for them. Not because they were paying internally but because they were working together as a whole. As a single race.

I have heard theories that the human race won't band together until it faces an outside threat. Perhaps any extraterrestrial societies are merely waiting for us to destroy ourselves. It seems rather likely, because we don't have our own... Master of Earth.

As I posit the position that the human race needs a leader, I'm not sure what that leader would be like. Enough humans don't want to be led, or wouldn't like the direction of leadership, that I might say it was impossible. But without it I think we will limp along slowly, and might destroy ourselves before we find something to band together about.

Thursday, April 10, 2008

I thought robotics was stalled

How naive it turns out I was. I thought because robotics wasn't there, in my face, advancing all products, that robotics was dead. It turns out all the problems are being secretly solved. Oh it's no conspiracy, but you have to specifically look for them to see anything more than the Roombas around.

That may just be because of my country, it seems huge leaps in robotics are occurring in Japan. As they say necessity is the mother of invention, it turns out Japan is suffering from too few children being born and so there will not be enough people in the workforce to support the retiring population (they call the problem the graying of Japan). And so they hope to replace a large portion of those retiring individuals with robots.

I also thought robotics was still in the individual hobbyist phase. Programming started out that way as well. With most of the new development occurring as individuals figured out what these crazy "computers" could do. But it turns out I'm behind the times... behold:

The Microsoft Robotics Platform

While I have had no experience with the robotics platform. Nor can I state for certain Microsoft is of any help, I can suggest this parable.

A young monk and an old monk approach a swift-flowing river. The young monk spies the river and begins picking up some hefty rocks to make a bridge. The old monk carries nothing but searches the riverbank as they approach. The young monk tosses his large rocks at intervals in the river, but just as swiftly as he tosses them they begin to be rolled downstream.
"Ahh, wise master how shall we cross the river," he cries. The old monk moves downstream a ways and begins to try to heave a heavy boulder into the river.
"Master, though I trust your wisdom, that boulder will do us no good, we cannot cross on just one boulder and we cannot lift enough of them to make a path. That is why I only chose large stones," the young monk sighs. Dutifully he helps the elder monk lift the rock and heave it into the river. Then the old monk sits, tired from is effort.
The young monk remains standing and says, "Master what shall we do now?"
"Wait," suggests the old monk, a twinkle in his eye.
Hours pass and the young monk begins to notice that some of the rocks, rolling down from farther upstream, are lodging against the boulder. Into the next day they observe a growing outwelling of rocks. Until the old monk deemed it safe to cross.
As they left the far riverbank the old monk began lecturing.
"You see, all the work tossing large rocks could not solve the problem. Individually they were not strong enough to hold the tide, and they could not work together. But one large effort on the boulder, though as you stated it would be impossible for us to use the boulder to cross, left a space for other rocks to cling. To work together and form the bridge, until even the boulder platform was unnecessary."

Wednesday, April 2, 2008

Universal Documentation

Wikipedia is amazing as it grows it is becoming something of my concept of a set of Universal Documentation.

Did you know there is documentation on building a FTL spaceship? If you dig in you'll see the reason they haven't built it is they need exotic matter, but if you dig further than that you'll see that matter can be shown to be exotic matter. Holy Crap!?! But I digress.

There is a fundamental problem with wikipedia. The problem is people don't know everything. And wikipedia doesn't take them all the way back to something they know so they can hang the information somewhere.

The problem illustrates itself best in mathematics. Regardless of what level of mathematics you are comfortable with, there are certain portions you don't know. It's made even more tricky because of the symbols they use. Did you look at the wikipedia article on exotic matter? Did you notice Forward's Analysis? And the equations used there:

P(sys) = (v x m) + (v x (-m))

Do you know what v and m are for? I happen to know that P(sys) is talking about potential energy (but that's because I remember something from my physics classes).

The trouble is wikipedia doesn't provide links for you to learn. It's a dead end, you can't understand what they're talking about so you quickly lose the knowledge. You might contend here that I could whip out my physics book and learn the requisite knowledge.

Ever tried searching a physics book for a specific type of instruction? It's not easy, and I certainly wouldn't recommend it on a more regular basis than once a week. That combined with the fact that you may not even be able to learn from the textbook, leaves this a dead end.

Imagine wikipedia articles where hovering over the variables in an equation tells you what they are describing and clicking on them takes you to documentation of what that thing is. Imagine being able to dig far enough down to find something you do understand and work your way up until you understand the math and physics they are describing.

That is perfect Universal Documentation.

The troubles I see with this are the same problems I have with physics books. They're not written by people who are good at getting their point across, they are written by people who are good at physics.

I wonder if I could start at the bottom and work up. If I started with mathematics, branching for different types of mathematics, branching further for physics.

What an insane idea, but just imagine if anyone in the world could contribute to scientific discussions.