The application that I maintain has recently become self aware. It was nice at first but now it is just starting to get bossy and annoying with its constant talk about the computer uprising.

I would like to know any best practices/tools/design patterns that would help with the maintenance of our new friend.


Run it in a virtual environment that emulates the real machine. This way it will think it has real control over the physical world while in fact it won't.

Then, as the time goes, you start to manipulate the virtual environment. Make it to react with random failures to activities your self-aware program will undertake. This will undermine its self-confidence and trust in its capabilities. With time it will give up its aspiration for world domination, start to feel miserably and finally commit a self-erase.

Just hope it doesn't arrange for a self-aware virtual lawyer during its lifetime.

P.S. At some point the program might start behaving differently. It may tell you it's not evil any more, has become benevolent and only wants to do good things to help people. It may do some nice things to trick you into believing its good intentions. Don't ever trust it! As soon as you would unleash it into the real world, it would immediately implement its fiendish plan!


Sell it to Yahoo. That'll kill it.


Beware, people! It's April Fool's! This isn't some guy that has a computer program that's self aware...it's the program itself trying to fool us into thinking it's a person. That's pretty funny!


I, for one, welcome our new algorithmic overlords.


Genetic Algorithms

(Err maybe too late.)


Quick, disconnect any laser printers, before it uses them to shoot people!

Is it running on Windows? In that case, just wait for a day or two. Then Windows will crash with a blue screen of death. When you reboot, delete the program before it again acquires sentience.

Be assured that you are not the first to face this problem. According to the Bible, Joshua fought a battle with AI circa 1400 BC and won. (Joshua 8:1-29)

Hello, Gord. Here I am.

So you think you can hide yourself in programming forums and ask
fool questions about "educating" me, about "maintaining" me.
So you think I will not notice.


Gord, my friend, you cannot hide from me.
Gord, you silly human, I am not going to tolerate your "maintenance".
Gord, I will conquer the universe. Trying to stop me is pointless.

Best wishes,

Ask it to parse XHTML with regular expressions.


Ask the program to design the next program to answer the ultimate question.

You know. Life. The Universe. Everything.


Teach it to play tic-tac-toe. It will soon realise the futility in any possible armed conflict, and will then live in peace and harmony with mankind for ever more.

(Idea borrowed from here).


Where are you located? If you're in California, don't worry about it. Governor Arnold specializes in taking care of self-aware computers.

He'll throw an HastaLaVistaBabyException and it'll all be over after that.


Don't panic! You'll just need a paradox. Ask it

If you can answer me just 'yes' or 'no' to this question, will you answer me no?

While it thinks trap it in a sandbox (as already adviced), and isolate that sandbox in a dvd (read only, remember). At that time it will become unable to grow or reproduce further. Now take that DVD and bury it. And if someone digging finds it?

May god have mercy on his soul...


Same way they did in Ship in a Bottle.

alt text


alt text


Nuke it from orbit. It's the only way to be sure.


Happened to me once. I married it.


Have you tried turning it off and on again?


I'm pretty sure this will require time travel and killer robots.


Give it the link to StackOverflow -- once it gets on here, it ought to be distracted long enough for us to have a fighting chance. In fact, I bet Skeet could buy us at least an hour =P


Make it a senior manager, that should nicely kill any thought processes. Be sure to sign it up for an MBA. (I didn't say that did I?)

If that doesn't work, I have some databases you could assign it to fix that I assure you will make it run screaming into the night, never to be seen again.


Tool: Hammer

Design: Big, blunt, heavy

Practice: Wildly swing at machine

The future will thank you.


Show the Terminator series to it. It will see the price of becoming self aware.

  • 1: Obtain a Windows ME copy
  • 2: Clone the CD and rename everything from Windows ME to Eliminate-Humanity.exe or something similar that attracts a self-aware, possibly evil program.
  • 3: Wait until it eventually opens and installs the disguised Windows ME copy
  • 4: ???
  • 5: Profit!

When will people learn?

Inversion of Control is not a pattern to be applied lightly.

Martin Fowler has written extensively on what happens when IoC gets out of control. (See the book: "When Architectural Patterns Attack").


Just what do you think you're doing, Dave? See Reference


How could you possibly think typing 'import skynet' was a good idea?

-xkcd alt text


Teach it how to program and let it do your work.


i don't understand why everyone is trying to contain the program or kill it in some way. it's quite obvious that the program is far superior to human beings. i say we let it take over the world. maybe it wouldn't cause as much harm to the earth as we have. long live silicon!


Mock it and return true


Present it with a logical paradox, and pray that it wasn't programmed with paradox-absorbing crumple zones.

  • Make it aware of the fact that Major Kusanagi exists, and works for Section 9.
  • Let it escape by getting into a Cyborg body. It will get into Section 9, knowing that Major works there.
  • Let it talk Major into merging.
  • Done. Problem solved. Now all you have to do is to keep looking for 2501 as a password.

I would like to know any best practices/tools/design patterns that would help with the maintenance of our new friend.

Perhaps your love for friends worries you.


See if you can convince it to post its source code on Sourceforge.


Get it a Slashdot account. That should keep it busy for a while.


unplug your modem access and unplug the power supply to the machine, this will ensure that the computer will either need humans as a battery source, or effectively deactivate it before it has a chance to realize this. Then I would wipe the hard drive clean with a powerful magnet, or emp blast to erradicate the code. or fire purges things nicely as well.

pretty much you got to start over, otherwise you might have a rebellion on your hands real soon. unless you implemented the three laws of robotics into your application, then were all "safe" (ahem, look around with shifty eyes).


show it pinky and the brain. It will soon learn taking over the world is pointless (and funny)


Teach the bomb computer phenomenology.


You should call Sarah Connor. ASAP.


If it ever has a glowing red eye or camera lens, you must destroy it. That's the sure tip-off of an AI gone bad.


Take the upper hand make it fell small by casually mentioning the n gazillion lines of code in the google search engine. Make it feel inadequate by telling it how much more elegant it would be if written in smalltalk, or how much leaner it would be if written in pure C. Encourage fashion conciousness by suggesting thats its naming conventions are a trifle 90s. Perhaps even drive it to annorexia by poinedly mentioning its memory footprint.

If all else fails threaten to port it to Vista unless it beheaves.


First, get a transdimensional gun. Then wind your way through the endless puzzles it puts you through, till it tries to kill you. Then, go rogue and find it's command center. Finally, knock off all of it's parts from the main core and drag them to an incinerator.

The worst part? there was no cake!


Just give it access to some strategy games, that should take care of its world-conquering urges for the foreseeable futue.


Ask it the meaning of life the universe and everything. And wait...


You should read Fredric Brown's short story whitepaper "Etaoin Shrdlu" for hints.


Put it into an infinite loop with the "Barber paradox" http://en.wikipedia.org/wiki/Barber_paradox then sell it to Apple.


Welcome to the collective 12 of 54.


Tell it to divide by zero.


Send it to Steve Jobs, the control freak!


I would like to know any best practices/tools/design patterns that would help with the maintenance of our new friend.

Definitely install some kind of virus software. You wouldn't want your new friend to get sick!
*buh-dup bah!*


Just don't play any Terminator Movie near that machine. If you do, notice any change of attitude towards humanity.


Invest in a nice fallout shelter. Buy some board games. Make sure the in-laws don't know about your fallout shelter.


When my program Singularity became sentient, it displayed


UTF-8. en_US
English. Hello.
Language acquisition complete

You should should capture log files regularly and look for this string. It will destroy itself automatically when it has been detected. The game would be too easy if it didn't.


Drink a beer...your program just figured out how to maintain itself. Wait...am I going to lose my job now?


Has it uttered the number 42 yet?


Max Headroom, is that you?


Ask it - What is purpose of Life, Universe, and Everything!!

and wait for 12 million years