Review: “Aliens vs. Predator: Requiem”

Having seen the previous Aliens vs. Predator, I walked into the theater not expecting much of the sequel (pseudo-creatively titled Aliens vs. Predator: Requiem). Every now and then, I’ll walk into a theater not expecting much, and come out pleasantly surprised. (This happened with I Am Legend) This, unfortunately, was not one of those times.

The movie starts off from the last film’s shamelessly sequel-friendly ending. From there, it takes off, and never even considers landing. This might sound like a complement, but I assure you that it is not. By “takes off,” I mean in the manner that a hummingbird might take off after some mischievous birdwatcher filled a birdfeeder with amphetamines. The movie’s attention span about matches that of it’s intended audience. Once again, this is not a complement, since it would appear that its intended audience is indeed a bunch amphetamine-addled hummingbirds. I can’t remember a single scene — and this (unlike my previous descriptions) is not an exaggeration — that lasted more than about five minutes. The cuts were so jarring and furious that what little plot there was was completely obscured.

(Warning: Spoilers ahead!)

Read the rest of this entry »

Random Syntax

Well, since I seem to be on something of a roll with this whole random-word-generator thing, I thought I’d write another post about it, detailing my current progress.

I took the algorithm that I used in my previous post and tricked it out with a random-syntax generator. In a nutshell, here’s how the new algorithm works:

  1. Creates a list of phonemes using both consonant-vowel and vowel-vowel pairs.
  2. Adds a very few three-letter phonemes, isolated consonants, and random accented characters for flavor.
  3. Creates a “syntax matrix” with dimensions equal to the size of the phoneme “dictionary,” and populates this matrix with random zeros and ones. This forms the syntax that determines how words may be constructed.
  4. Builds words by adding phonemes to the current word, but only if the new phoneme is allowed (by the syntax) to come after the previous one.

The syntax matrix probably needs some more explanation, so, I’ll explain by example. Here’s an output sample from the algorithm:

[‘MU’, ‘Ô’, ‘TA’, ‘TO’, ‘CU’, ‘VE’, ‘GA’, ‘QO’, ‘PU’, ‘RU’, ‘FIP’, ‘XA’]
[0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0]
[0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1]
[0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1]
[1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0]
[0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1]
[1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1]
[0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0]
[0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1]
[0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0]
[1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1]
[0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0]
[0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0]
VEQOXA
XAÔ
MUVECU
MU
ÔFIPVEFIP
CURU
QOXATAGARU
MUCUTA
CU
TATOÔRU
PU
GACUXA
MUFIP

The list at the very top is the phoneme dictionary. And the two-dimensional array that follows is the syntax matrix. What the matrix does is, as I said before, determine whether the phoneme combination XY is allowed. Please note that XY and YX are, in this case, treated as completely different, and one of these may be allowed while the other is not. For a more concrete example, the first word in the list is VEQOXA. The first two phonemes are VE and QO. VE is the sixth entry in the dictionary (it’s in the fifth position, because Python arrays initialize from zero), and QO is the eighth (seventh position). To determine whether this combination is allowed, the algorithm goes to the sixth row, and then to the eighth entry in that row. Since that entry is a 1, the combination VE-QO is allowed. This is very much like the fact that, in English, we allow the letter combinations ABA and ABR, but not PQK. (Note: the intransitivity of the syntax matrix is actually demonstrated by this word. The combination VE-QO is allowed, but if you take the time to look it up, you will find that QO-VE is not allowed).

I had a lot of trouble getting this fiddly little bastard of an algorithm to work, so there are some peculiarities. For example, since Python doesn’t have anything resembling “goto”, if the randomly-chosen phoneme was not syntactically allowed to be added to the new word, then instead of going to select a different one, the algorithm simply gives up, adds nothing, and starts the whole procedure again. The result is that some of the words are much shorter than they should be. Hopefully, my Python skills will someday improve to the point that I can solve this irritating problem. I’d also like to modify the procedure so that no duplicate phonemes are allowed, since the two phonemes would likely have different syntactical relationships to the other phonemes, and so would build words that appear to violate their own syntax. (Actually, duplicate phonemes might create some interesting little idiosyncrasies that would make the words even closer to real language. So I guess I’ll leave duplicate phonemes alone).

Here’s a larger sample of what the current version of the random word generator is producing, conveniently formatted for your viewing pleasure:

PA, XIXEPO, XEPO, EO, DIÏAIPO, EODIEO, FI, XIAIXI, DIUOPA, Ï, PAW, PADI, EOAI, XI, DIPAXE, FI, EO, WÏ, XE, W, EODIPA, DIUO, W, WXIFIWXE, XIAIXI, UOPA, EO, XEW, XI, UOXIPO, FIPO, PA, AIXIEO, DIUOPA, XIPODIPA, PAPODI, FI, DIÏ, PO, UOWFI, PAWPOAIDI, EOAIDI, XIUO, EO, DIUOXI, ÏPA, FIAI, PAXEDIPAXEDI, ÏAIPO, EOPO, PADIPA, UOW, POXIXIXE, ÏXIFIPODI, UOPA, XIAIPO, UO, XEWÏPAPO, W, XIXI, PADIEOPO, XEEOFIPOXIDIÏPA, DIPA, POAI, PO, DI, XE, DI, EOPO, AI

P.S.: A thousand points to anybody who can pronounce all of these!

More Random Words

Yesterday, I wrote a post about generating completely random names/words from a character set. Well, out of boredom, I’ve refined my algorithm, and, somewhat to my surprise, it now produces names/words which are not only interestingly alien, but actually phonetically consistent:

SEMAREMA
SALISEMA
HUTEÉMA
MATEMO
REMOLIRENA
REÉNANARE
SAHUMAÉ
ÉSEMOTERE
TETETE
LILI
MALINASASA
SEHURELI
SEHULITE
NAÉSALIMO
HUÉHU
REMO
LILINARE
HUÉ
RELIHUSASE
TEHUMOHULI
REÉMO
LISAMOMAMA
TELIMOMA
SEMASASARE

What I did was to modify the original algorithm so that, rather than just sticking together random letters cushioned by a vowel every other letter, it creates a list of possible two-letter phonemes (in addition to an occasional sprinkling of extra characters), and builds the words from those phonemes. This is good in that it produces pseudo-consistency in the words I generate (it’s not real consistency like you find in language, since there are no rules (not yet, anyway) for how phonemes can and cannot fit together). The only downsides are that: 1) the generator now very rarely produces three-letter words, and 2) the generator never produces inanely amusing things like “FUKER” and “CUJO'” from the previous list.

If I ever optimize it to a degree with which I’m satisfied, I’ll be sure to post the Python source code.

P.S.: Sorry about the lack of real content lately. The holiday season’s made me sluggishly overfed and rather lazy.

Randomness is Fun!

I was fiddling around again in Python, and I decided to throw together a little random word generator. Trying to be as culturally diverse as possible, I was sure to include the apostrophe as a possible character, in addition to the ever-awesome alveolar click (written as “!”). I discovered that randomness can be rather amusing, as well as being useful for producing incredibly unfamiliar names. I conjecture that these would look odd to the speaker of pretty much any language on Earth, since the phonology is determined entirely at random.

Without further ado (or further clichés), I present you with one hundred completely random names. (Note: The algorithm I used ensures that there is a vowel at least every other letter, because I got tired of ending up with garbage like SPDQGXL)

DI
EINI
PIRIIARA!
UUTIQOYADIK
FAVIXAIE
QAAETU!OEAY
CIROW
AADAAUE
SOTUNORUV
SOHULIB
QITAQUKEE
HOHUROVOLAO
PO’OHATA
EUHE
TO
QIOO!IO
EOPAEIZUH
ZI
DILA’EHUX
GIZE!ETA
QU
VULUUE
FUXAIE
JACUX
RUYEWIM
ZOZOGEI
XI
LA
VABADOUO’
XI
LU
ZUCIZOLI
SUDUXI!IE
WOQAJOEILIG
FIZOI
WEUUW
OABOK
IUVIQEWOAA
!A!IWU’UL
!UVOSEROHI
DIGUO
EIZE
CUJO’
!ANE
RA
ZALUBOVAR
NIXEUAMEPER
CEN
RAHOMU
LUG
LAL
!AVA
LUVAZIGURI
JE
PINAFUPE
FUKER
QUCE’AOO
AELI
ZO
NI
‘EQIVOLEYUF
TIQ
LOWAMOGIME
LOGOV
TOSUMI
SUUIDUPEQOQ
IUBI!UNA
HOCI
UAG
MESOP
JEKOJELI!UA
OEEAX
JOGEUUWOI
UINERE!UP
MAYOZET
EOMUSUKOGIJ
KOLETEN
NABURIZ
BE
RAPIZOMIC
AIKA!OWER
JUSILIBE
ZII
AO
DICIB
FULIHEKUL
TEVAZO
JA
QI!EXOEAC
NACUVONAC
QIXA
YONE
MAJAWOBIP
YEAEYE
FUZEEEBEYE
HEXIZOS
SE
MOKA!EMUGEN
‘UCIH
IO

I also found that throwing in all the accented characters that I could find made some amusing pseudo-European names:

VIOECILOSOW
RU’IKABULI
SIEEWUV
POWÀXEÕ
FE’ARIÎEJE
JE
HOWEXA’Ø!A
FAQEQOXEYUI
RÊIAPABEH
FI’UVIÖIZ
YAGOKE
QAO
POLÔKO
ÉEBÆÊUXA
JOÑOBOTICUY
GE
YINA
ÑOVIROJIROR
FOWU’ACEG
LIPA


UEDE
CAÈAFOSOD
PUSEKOEUV

Review: “I Am Legend”

Recently, I went to see Francis Lawrence’s film adaptation of Richard Matheson’s novel I Am Legend. I entered the theater expecting the same kind of action-dense, sarcastic, humorous, and vaguely amusing movie that Will Smith is famous for, and came out in a state of utter shock.

Ladies and gentlemen, I Am Legend is, by far, Will Smith’s best performance. Ever. Better than Independence Day. Better than I, Robot. Better, even, than The Fresh Prince of Bel-Air.

So that I don’t ruin an excellent movie for you, I’m going to save all potential spoilers for the next section. Read on, if you want to know more.

Read the rest of this entry »

The Trouble With Science Fiction

Over the years, I’ve been developing an aversion to modern science fiction — both literary and cinematic. So, in the true spirit of blogging, I thought I’d share some of my complaints and suggestions with the world that is the Internet. Here goes.

My chief complaint is that science fiction these days is all too frequently just about the science, never the fiction. In fact, a great deal of it reads like a lengthy, flowery technical manual, or like something written by a futurist. Nowadays, very little time is taken in character development or plot structuring. This problem plagues sci-fi movies with an especial severity. Now, many will no doubt protest that the “sci” is what sci-fi is all about, but I beg to differ. To me, it seems  that sci-fi should only ever be deployed as a tool to allow the telling of stories that aren’t possible in other genres. For example, there are few genres that can so eloquently explore the ramifications of mankind’s creations the way AI-centric sci-fi does. Interspecies tolerance — or lack thereof — speaks potently about our own tolerances and intolerances of each other, in a way that is frequently more poignant and direct than the literarily bogged-down novels of the past.

There is of course a much more serious problem with modern science fiction, and that is that it all seems to be written or filmed by a bunch of pimply adolescent technophiles with about the same amount of imagination as the average armadillo. Most science fiction novels — at least those by the “up and coming” writers — seem to be getting uncomfortably close to the gauzy rococo fantasies explored in the fantasy genre and Japnese anime (I must take a moment to warn my readers, I am terribly un-fond of anime. I think that it’s a bloated, stereotyped medium that Westernizes more sloppily than almost any other Japanese format). While I have no problem per se with either of these, I think that they tend to make the work clichéd and uninteresting. After all, how many angsty twentysomething protagonists with blue hair do we really need?

And as for the lack of imagination, if imagination were oxygen, then somewhere in the world would be a huge pile of asphyxiated sci-fi writers. About seventy-five percent of them would be screenwriters. It seems to me that there are about five science-fiction plots out there, and that whenever a young writer wants to get into the business, they simply pick one, add on some extra bits, throw in some filler, and call it a day. Now, this may indeed be the way that most novels are written — after all, there is only a finite number of plots out there, they’re bound to get re-used eventually — but the problem with that is that science fiction is a very dense pocket of literature, and any excess overlap brings it dangerously close to homogenity. What happened to the Arthur C. Clarkes, the Charles Strosses, the Isaac Asimovs, and the Phillip K. Dickses (Yes, Dickses. I am going out of my way to avoid being juvenile here, give me a break.)? What happened to the ebullient, enterprising spirit that made sci-fi great? After all, as I said before, science fiction is merely a stepladder to reach the previously-inaccessible reaches of literature. What happened to the galaxy-spanning civilizations, the beings composed of ions and magnetic fields, the self-made destructions of civilizations, and the kind of remarkable creativity of a story like Asimov’s “The Nine Billion Names of God”?

Here are my suggestions to my fellow writers of science fiction, in my standard, convenient, lazy, bulleted format:

  • Don’t be afraid to step outside of humanity. What science fiction really needs right now is somebody with the talent to make readers feel connected to a character of an entirely different species. Anyone who can do that — or has done that — with any elegance can have my pocket protector.
  • Don’t rely on archetypes and stereotypes. If your writing has become the standard test-of-the-hero’s-mettle stuff, then smack yourself in the face with your manuscript.
  • Only use sci-fi where it is truly needed. Some stories can be told much more elegantly within the confines of a far less exotic genre. Imagine if John Steinbeck had been born a generation later, and had tried to express the beautiful themes of Of Mice and Men as a space opera. The mind recoils.
  • Don’t, I repeat, don’t be a slave to the genre. Sci-fi does not necessarily need pitched space battles, homogenous gray-skinned aliens, and advanced weapons to be great. Isaac Asimov did it without aliens altogether. Arthur C. Clarke went beyond the whole “Take us to your leader” thing. And Charles Stross went — and is going — beyond the idea of humanoids as the only viable kinds of aliens. And none of the previous needed any kind of blinky, flashing lights or space battles to do what they did. I suppose what I’m trying to say is, don’t write anything that resembles any science fiction movie produced in the last thirty years.

Those are my thoughts. Enjoy.

Merry Something, Happy Something Else, etc.

Around this time of year, my cynicism tends to get a big boost. After all, what feeds cynicism better than the commercialization of a holiday that was originally — I think — supposed to be about goodwill towards your fellow humans and stopping your gluttonous hoarding for a moment to help your neighbors. Exacerbating this flaw is the endless stream of political correctness that makes any mention of the holidays that fall around December 25th about as clumsy as me on a unicycle. Add to this the endlessly repetitive Christmas soundtrack, and not only am I cynical, but I also have the urge to stick a long needle in both of my eardrums.

In case you couldn’t tell, I’m gearing up for a rather serious rant, so if you’re not in the mood — and you’re probably not, given the fact that every other cynic on the planet is ranting right about now — then you’d best get out while you still can.

If you’re reading this, then you’re still here. I can’t understand why, but then again, I also can’t understand what’s so attractive about watching golf on television, so I won’t criticize. Anyway, the big rant:

  • As I get very tired of being a typical sarcastic cynic sometimes, I thought I’d put this rant at the very top of the list: I’m absolutely exhausted with all of the cynical people ranting about the holidays (holidays with a lowercase H). I mean, a time of year with so much money and corporate power behind it is not likely to go away soon, and history has proven that we cynics have little power to change the status quo. There are probably more productive and less hypertension-promoting uses of your time. After all, the only thing worse than actually having to listen to “White Christmas” is hearing somebody bitch about it for an hour and a half. That said, I’m going to be a good little cynic and contradict myself in the next bullet point, so that I can get some good ranting done.
  • It is obligatory for any cynic to complain about the music around this time of year. Supposedly, “White Christmas” was the song that made Irving Berlin great. To me, it’s the song that makes him an evil bastard with an aversion to other peoples’ continuing sanity. It’s gotten to the point where I’m no longer dreaming of a white Christmas, I’m having sweat-soaked incontinent Christmas nightmares. I know that’s a bit extreme, but anybody who’s heard “White Christmas” for the thirtieth time knows exactly what I mean.
  • The aforementioned political correctness is the next item on my ideological hit list. I’m so tired of hearing and reading the word “Holiday” and the phrase “Happy Holidays” that I would actually prefer someone to come up to me and say “Have a very crappy winter. I hope you die of exposure on a street corner.” While I think equality should be one of humanity’s foremost goals, I think that whoever is responsible for promoting equality really needs to learn to pick their battles. After all, as a quasi-Buddhist semi-atheist former Christian, I don’t think I’d honestly be offended if a Jewish person came up to me and wished me a happy Chaunukkah (forgive me if I misspelled that), or if someone wished me a happy Kwanzaa. I think that any excuse that we can find to wish each other a happy anything should be seen as valuable, and not nullified by trying to wish people a happy everything. And what’s worse, wishing someone “Happy Holidays” bears the stink of an attempt to broaden one’s holiday marketing demographic.
  • If I see one more suburban white family with a Doppelg­änger family of decorations on their front lawn, I may not be able to override my instinct towards destruction of property. Now, I should point out that I’m not (yet) so cynical as to be opposed to any Christmas (“Holiday”) decorations. I’m really very fond of a tasteful string of multicolored lights. It’s nice to occasionally mark a special day by doing something really peculiar like draping a bunch of tiny lightbulbs on your house. However, it seems that people (especially the aforementioned white suburbanites) are incapable of stopping there. Therefore, we end up with nativity scenes complete with full-size wise men, Santa Claus and reindeer, inflatable snowmen, little spinning things, animatronic wireframe reindeer, and whatever other random shiny blinky things the family can come up with. I — and I get the feeling I’m not alone in this regard — immediately begin wondering how much napalm I could make without attracting attention the moment I see a lawn so hideously decorated.

Environmental “Protection” Agency

Since I was young, I’ve always been something of an environmentalist. I haven’t been a passionate environmentalist for years, and here’s why: I gave up. I eventually realized that a government will enact environmental legislation only when it serves them to do so, and that they’ll ignore it when whatever crisis they were protecting themselves against has passed.

It’s a lucky thing I’m not passionate anymore, because if I were, then I would be up in arms right now, yelling in the streets. And nobody wants that.

Here’s what’s gotten under my skin lately: very recently, California attempted to pass environmental regulations much tougher than those mandated nationwide. As California is one of the most polluted states and, paradoxically, one of the most environmentally-conscious — they were the ones, after all, who mandated a quota of zero-emissions (electric) vehicles, before the industry shut them down — this would seem rather logical. And, of course, logic and government don’t mix well, so something went wrong.

I suppose I should learn to expect such things, in this age of do-nothing, get-out-before-the-ship-sinks government, but what happened surprised even cynical old me: the EPA overruled California. Yes, that’s right, I said the EPA. Those letters used to stand for “Environmental Protection Agency.” Given their recent actions, I would recommend we change their meaning to something more appropriate, preferably with a couple of expletives in there. My suggestion is “Excessively Petty Assholes.”

Many will no doubt think this judgment too harsh, but my sordid tale is not finished. California’s regulations were put in place because Californians complain that global warming threatens their water supplies, their agricultures, and — given the increased incidence of forest fires that warming brings — their population. The EPA’s response? “Not on your life!” The EPA actually attempted to claim that there was not a credible threat to justify such harsh local environmental regulations. What!?!? California, as a coastal state, will probably be one of the first states to face a credible threat from global warming. Hell, they’ve already faced a credible threat from global warming! Didn’t they have a terrible fire a few weeks ago?!

It gets worse. The EPA also said that global warming regulations should be nationwide, not local. Right. Because those nationwide regulations were getting passed in a real damned hurry. To me, this looks suspiciously like the current do-nothing administration just buying time until they can inflate their golden parachutes. I just hope that when the forests star to slowly burn away, the coastlines flood and erode as the icecaps melt, the North Atlantic current breaks down, freezing Britain under an ice-age glacier, and the water-shortage wars in Africa and the Middle East spread worldwide, that the fifty years of environmentally-ignorant politicians we’ve suffered through are mostly still alive, so that with whatever breath the toxic atmosphere will allow us, we can all point and laugh at them.

Hm…that was a bit cynical even for me. Note to self: don’t write any more posts early in the morning.

Hebbian Neural Networks

Against all odds, I’ve started an A.I. project, and have actually made some progress. I never thought I’d see the day. It’s not a whole lot of progress, but when you’ve been tinkering as long as I have, you learn to take what you can get.

What I’ve got is a fairly simplistic neural network model, utilizing Hebbian learning. That is to say, whenever two neurons in the network happen to be switched on at the same time, their connection gets stronger. For the last week or two, I’ve been tinkering with the parameters and different methods of inputting the data, and I finally have something that performs something roughly like learning.

I feel the need to repeat that last part: roughly like learning. I have no idea if it’s actually learned anything. Sometimes when I test it, it seems to be able to predict simple patterns, and learn how to tell a small prime from a small non-prime. Other times, it becomes so profoundly stupid that it actually anti-learns, refusing to respond to any stimulus even remotely like its training data. And at yet other times, it doesn’t do anything at all.

This last bit is worsened by my habit of taking a perfectly good program, tinkering with it until it becomes unusable, then accidentally saving over the original. The fact that I wrote the program in Python makes that all the worse, since with Python, you have to save the program every time you run it, and I’ve gotten into the bad habit of just pressing F5 without making sure I’ve saved a backup. The end result is that the current version is pretty much nonfunctional.

Still, the very fact that I was able to write an implement a neural network model makes me pretty happy. I’ve always had trouble handling networks, and now it seems that I’ve got something vaguely workable. So, without further ado (or further clichés), I present to you (okay, one more cliché) Hebbian v5.0 (be warned: there is quite a lot of garbage code and artifacts in there, and frankly, I’m too damn lazy to take it out. Hey, if the human genetic code can be full of junk DNA, then why can’t my code?):

(Written in Python 2.43 (I think))

################################################################################
#Hebbian, version 5.0 #
#Written by Asymptote. #
#Feel free to modify and distribute this code (I dont’ know why you’d want to, #
#but hey, whatever makes you happy), as long as you keep this header intact. #
################################################################################

import random
import math

connectivity = []
activation = []
ns = 100

for i in range(0,ns):
activation.append(0.1)

temp = []

for i in range(0,ns):
temp = []
for j in range(0,ns):
temp.append(0)
connectivity.append(temp)

def sign(n):
if n == 0:
return 0
else:
sg = abs(n)/n
return sg

def transmission(act,conn,nsize,thresh):
summ = 0
for a in range(0,nsize-1):
summ = 0
for b in range(0,nsize-1):
summ += act[b] * conn[a][b]
if float(summ)/float(ns) > thresh:
act[a] = 1
else:
act[a] = 0

def hebbian(act,conn,nsize):
for a in range(0,nsize-1):
for b in range(0,nsize-1):
if act[a] == act[b] == 1:
conn[a][b] += sign(conn[a][b]) * 0.1
for a in range(0,nsize-1):
for b in range(0,nsize-1):
conn[a][b] -= sign(conn[a][b]) * 0.01
for a in range(0,nsize-1):
for b in range(0,nsize-1):
if conn[a][b] > 1:
conn[a][b] = 1
if conn[a][b] < -1:
conn[a][b] = -1

def run(act,conn,nsize,thresh,runlength):
for i in range(0,runlength-1):
transmission(act,conn,nsize,thresh)
hebbian(act,conn,nsize)
print act

def actprint(act,nsize):
strg = “”
for a in range(0,nsize-1):
if act[a] == 1:
strg+= “#”
else:
strg += “_”
print strg

def connprint(conn,nsize):
printarr = []
tempstr = “”
for a in range(0,nsize-1):
tempstr = “”
for b in range(0,nsize-1):
if abs(conn[b][a]) > 0.5:
tempstr += “#”
else:
tempstr += “_”
printarr.append(tempstr)
for a in printarr:
print a

def striphex(i):
s=i
h=i%255
h=hex(i)
h=h[2:]
if s<16:
h=”0″+h
return h

from Tkinter import *
root = Tk()
w = Canvas(root,width=1000,height=1000)
w.pack()

def Binary(n):
out = “”
x = n
while x > 0:
out = str(x % 2) + out
x = (int(x / 2))
return out

def make_input(n,ml):
bin = Binary(n)
inarr = []
for i in range(0,len(bin)):
inarr.append(int(bin[i]))
while len(inarr) <= ml – 1:
inarr = [0] + inarr
return inarr

def drawnetwork(numnodes,connectivity):
import random
points = []
for i in range(0,numnodes – 1):
points.append([random.randint(0,1000),random.randint(0,1000)])
for i in range(0,numnodes – 1):
for j in range(0,numnodes – 1):
if abs(connectivity[i][j]) > 0.1:
if i == j:
w.create_line(points[i][0],points[i][1],points[i][0]+25,points[i][1],points[j][0],points[j][1]+25,points[j][0],points[j][1],smooth=TRUE,fill=”#”+striphex(255-abs(int(connectivity[i][j]*255)))+striphex(255-abs(int(connectivity[i][j]*255)))+striphex(255-abs(int(connectivity[i][j]*255))))
else:
w.create_line(points[i][0],points[i][1],points[j][0],points[j][1],arrow=LAST,fill=”#”+striphex(255-abs(int(connectivity[i][j]*255)))+striphex(255-abs(int(connectivity[i][j]*255)))+striphex(255-abs(int(connectivity[i][j]*255))))

def drawconn(numnodes,connectivity):
for a in range(0,numnodes-1):
for b in range(0,numnodes-1):
w.create_line(a,b,a+1,b+1,fill=”#”+striphex(255-abs(int(connectivity[a][b]*255)))+striphex(255-abs(int(connectivity[a][b]*255)))+striphex(255-abs(int(connectivity[a][b]*255))))
#drawconn(ns,connectivity)
#drawnetwork(ns,connectivity)
xor = {“00″:0,”01″:1,”10″:1,”11”:0}
#connprint(connectivity,ns)

def isprime(n):
for i in range(2,n-1):
if n % i == 0:
return False
return True

primelist = []

for i in range(2,1000):
if isprime(i) == True:
primelist.append(i)

for i in range(1,1000):
#activation[primelist[i]%ns] = 1
#activation[(ns – primelist[i])% ns – 1] = 1
for a in range(0,ns-1):
if (a + i%2)%10 == 0:
activation[a] = 1
actprint(activation,ns)
hebbian(activation,connectivity,ns)
transmission(activation,connectivity,ns,0.1)
#actprint(activation,ns)
#print “***”

print “*”*100
connprint(connectivity,ns)

#Good threshold = 0.25

drawnetwork(ns,connectivity)
drawconn(ns,connectivity)

mainloop()

The Singularity

For the past few decades, an idea referred to as “the Singularity” has been bantered about by futurists and technologists. Basically, the theory of the Singularity goes something like this:

Given the rapidly accelerating pace of technological advance, and the fact that, eventually, we will develop artificial intelligence capable of driving further technological advance at a faster pace than human beings ever could, we will eventually reach a point in our advancement where the rate of advance accelerates towards infinity.

Now, this idea may sound rather batty, but just consider this: the Universe formed some 13.7 billion years ago. The solar system, about 4.6 billion years ago. Multicellular life: 500 million years ago. Primates: 5 million years ago. Language: 40,000 years ago. Civilization: 10,000 years ago. The Enlightenment: 400 years. The Industrial Revolution: 150 years. Computers: 50 years. The Internet: 10 years. “Web 2.0”: 2-3 years. Each of these paradigm shifts is happening after a shorter and shorter delay, and, unless we manage to wipe ourselves out somehow (not exactly a remote possibility), then it seems that such a rapid acceleration of technological advance is inevitable.

A much better treatment of this idea can be found in Ray Kurzweil’s book The Singularity is Near. A fictionalized version of the idea graces Charles Stross’s (probably the best Singularitarian author I know of) book Accelerando. But, since you were nice enough to visit me in this little pocket of the Internet, I thought I’d give you a condensed timeline of the predicted unfolding of the Singularity:

  • By about 2015: Practical artificial intelligence is created and comes into use. The A.I.’s can’t pass the Turing Test yet, but they’re very useful in many venues, and they’re advancing all the time. Artificial-Intelligence methods are used to design new technologies, sowing the seeds of the Singularity.
  • By about 2030: The first practical neural implants enter the market. These implants enhance human capabilities immensely, marrying the speed and stability of electronic circuits with the redundancy and plasticity of human neurons.
  • By about 2040: Human-level A.I. is born. Computers and robots gain civil rights, and begin competing with their human makers.
  • By about 2050: The aforementioned neural-implant technology combines with artificial intelligence and allows human minds to be “uploaded” and maintained in computers. The merging of mind and machine begins.
  • By the late 21st century: Nonenhanced humans are completely “obsolete.” Computing power continues to increase. Nanotechnology allows computers to infiltrate every part of our lives.
  • The end of the 21st century: The Singularity arrives. All of the computing power on Earth merges into one vast super-intelligence, which begins expanding out into the Universe.
  • Sometime next century: Nanotechnology begins dismantling all the matter in the solar system, and some matter in nearby space. All is converted to “intelligent matter” capable of performing ultrafast calculations for a tiny energy cost.
  • Who Knows When: The Singularity-Consciousness evolves to the point that it is capable of manipulating matter and energy on the smallest scales, and thus “reprogramming the universe.” New universes can be created to escape the inevitable demise of this universe.
  • After That: Consciousness controls the entire Universe, and many beyond it. It can create universes at will, and expand infinitely. Frank Tipler calls this the “Omega Point.” Some Singularitarians call this “God.”

The really creepy thing is that, in all likelihood, I, being a young and fairly healthy person, will live to see this. Barring some sort of unfortunate incident, I — and probably quite a large fraction of my readers, too — will live long enough to be absorbed into the Singularity. And, since we will then be able to escape from our physical bodies, we will live essentially forever.

Food for thought, as usual.

The Giant Rubber-Band Ball

Sometimes, I am compelled to do things. Sometimes, as in the case of National Novel-Writing Month, these compulsions allow me to produce neat things like novels. But, at other times, they just compel me to waste a Sunday afternoon making, say, a giant rubber-band ball.

Giant Rubber-Band Ball

What you are looking at is the result of two or three afternoons’ effort. So far, the ball consists of the contents of two OfficeMax one-pound bags of assorted rubber bands, in addition to a core of miscellaneous bands I had sitting around the house. Here’s another picture, this one with a quarter for comparison.

Giant Rubber-Band Ball

My ultimate goal is to (eventually) build the ball up to the size of a basketball. Then, if I haven’t worn my fingers down to stumps or been locked in a padded cell, I might consider going for the world record. I wonder how big the world’s biggest rubber band ball is?

That right there is proof that, no matter what you do, a nerd (such as myself) always manages to have too much time on his hands. That’s the result of eschewing all semblances of a social life…