This page is Under Construction
Python
all
these require Python installed to run. Some of them were written
using Python 2.4 and may or may not require version 2.4+.
ttt.py
plays
a perfect game of tic tac toe, aggressively.
ljget.py
downloads the ENTIRE livejournal history for a given user.
including comments. in 17 lines! :D oldest entry first.
phaldo5.py, phaldo.py, phaldo2.py, phaldo3.py, phaldo4.py
I made an efficient algorithm to create all permutations of a string. Because it was clever and I don't know if it's been done before. I got it down to 94 characters (a one-liner) (which could be smaller depending on the name of the function). phaldo.py - phaldo4.py show the history of the program, from the first implementation to how i got it down to 94 characters. Making it return only unique results (in the case where some letters are repeated) could be done by simply passing the result to set(), adding 5 more characters or 10 more for list(set()). If you pass it a one-character string it'll return the string instead of a list with one element, but I considered that good enough because you'll get the same result either way when you iterate over it or even take an index. Otherwise adding 2 characters would solve that problem, viz., '[a]' instead of 'a' at the end.
telnet.py, telnet2.py
win32 telnet host that can execute arbitrary console
apps. still in development and i don't remember whether I left it in
a working condition..
ircserv.py
tried writing an IRC server, but IRC clients wouldn't interact
with it correctly despite its apparently correct use of the protocol,
so I gave it up. (only got as far as USER, PASS, MOTD, PRIVMSG, MODE,
JOIN, and PART). Does not support peers.
cdcheck.py
I can't believe I actually had to write this. It reads
every file on a CD and reports bad ones. I use it after burning an
ISO in Nero because for some odd reason Nero doesn't let you verify
written data for an image, and it's easier to do it this way than to
get half way through an intallation and then fnid out I have to burn
another disk. and xcopy doesn't work with nul.
backjack.py
i made some functions that I was going to use for a black jack
emulator to test all possibilities to make an optimal blackjack
playing guide. i didn't get around to i because I figured the ones
that are out there are probably correct. and they don't even give you
enough of an edge to make money. #note to self: check if later
version on MY pc.
phongram.py
finds
phonic anagrams of an input word. uses the cmu dictionary or maybe
some modification of it. shows a * for results where the vowel
stresses are preserved.
sc.py, sc2.py
returns the list of a given string (which may be '' of course) followed by all possible combinations of characters (from a defined string), the string lengths starting at the length of the given string +1 and ending at a given value. good for password hacking or whatever. sc2.py is the same thing using a generator (you can iterate through the results without it having to store the whole list beforehand).
equation.py, eq2.py, equation2.txt
takes the julia set equation Z=Z*Z+C to five levels of recursion
and outputs an equation (equation.txt) with three variables where one
of the variables is a third dimension representing a line through the
plane of C's. the equation can then be put into Mathematica which
will then convert it to a more efficient form. the second program
reads the resulting equation (equation2.txt) and converts it to a
POVray-readable equation (eq3.txt) for an isosurface. i don't know if
this is the version that has a weird bug in the conversion process..
if you're wondering, the resultant 3d form looks cool, but it doesn't
fully render correctly. or sometimes (usually) not at all.
julia.py,julia2.py,julia3.py,julia4.py
these plot out a 3d representation of the julia set for rendering
in povray point by point. The first one tries to do it using
triangles, and fails. But I found out that [[False]*res]*res doesn't
work, because it copies the same address to multiple rows. I just
haven't bothered to fix it because I fear the program won't work
anyway and it'll be too hard to debug. The second plots points, the
third and fourth I don't remember what the difference is but they do
what the second does only they take all the poitns *inside* the
object out to make rendering faster. but they really, really need a
better algorithm because it leaves vertical(?) gaps.
courierbot.py
an AIM bot i'm still working on that primarily stores IMs to
people who are offline. I have no idea whether what I have so far
actually works, because I haven't run it yet.
sockstream.py
a class that makes an ip socket event-driven and has non-blocking
read functions and also has a non-blocking bind/listen/accept
function. can connect it through the class or pass it a connection.
sockstream3.py
a simplified
sockstream class that sends and receives strings whose first two
bytes indicate their lengths
UnityBot.py
An IRC bot I'm working on. Most of the command set and
functionality and the parameter format weren't my ideas. It's
supposed to be a replica of someone else's bot in order to prove to
him how superior Python is... but he seems to be against any
scripting language. Requires client2.py, Pythonica2.py (modifications
I made), and a few obscure modules you can find on the
web.
ansitest.py
A telnet client with
ANSI emulation. It doesn't quite work yet.. with advanced ansi
features.
find.py
like grep, but not as
full-featured or as fast.
todo: mathserver. version from my pc.
Assembly
all graphical programs
work in 320x200 256 color mode.
all source files are made for NASM
(Netwide Assembler).
Just because a file is a .com file doesn't
mean it's a virus.
Most of these were made in 1996.
BOUNCE5.ASM, bounce5.com
bounces
simultaneous lines across the screen making patterns. you'd have to
see it. sometimes it's cool, it depends on the pattern. there are
command keys for manipulating the behaviour of the graphics which are
displayed when you exit the program. command keys ignore alternate
windows keyboard layouts.
xor5.asm, xor5.com
cool effect.
BUTTSEX.ASM, BUTTSEX2.ASM,
buttsex.com, buttsex2.com, buttsex3.com
shows lots of “BUTTSEX
“'s on the screen and the cells change colors in a cool
pattern. buttsex2 just removes the blue background parts.
buttsex3.com enables all background colors and it's the trippiest of
the three, just maybe a little ugly.
prime6.asm,
prime6.com, prime5g.asm, prime5g.com
These
are just to show off my mad asm optimization, or the true power of a
modern CPU, one or the other. PRIME6 displays all the prime numbers
between 3 and 65,535, in a fraction of a second, and shows the time
it took. prime5g takes a filename as a parameter and will write the
primes to the file (in decimal) instead. prime5g is almost
instantaneous.. most of the time taken in PRIME6 is for writing to
the screen. the .com file is 202 bytes and it outputs 6000+ primes so
you can prove that it's not just writing from a stored list.
WICKED.ASM, WICKED2.ASM,
WICKED3.ASM, wicked.com,
wicked2.com, wicked3.com
i
called it wicked because I made something like this in BASIC class in
'93 and somebody said “wicked!” That version was more
animated, though, this program goes so fast that it appears in
flashes. the first one probably isn't worth downloading. the second
one is fastest, but the third one has color.
PUFFS.ASM,
puffs.com
makes a kind of neat effect. i just tried to randomize
the seed but couldn't figure out how to do it in 1 minute so you'll
have to live with the same picture every time.
MISERY.ASM,
SOUND.ASM, misery.com
it
used to make a cool sound via the pc speaker.. a shrill sound that
would randomly vary in frequency. but now it just makes static, at
least on this computer. I don't know whether I wrote sound.asm. (it's
required for misery.asm.)
WACKED.ASM,
wacked.com
something i got accidentally.
not that great.
LINE3O.ASM, LINE3P.ASM,
LINETEST.ASM, linetest.com
line3o
is an optimized line drawing algorithm i made in asm. you know, back
in the days when computers were slow and fast line drawing algorithms
were important to people writing demos and whatnot. if i counted the
clock cycles i don't remember the result, but linetest.com shows how
many lines it draws in a given time. line3p was my next version of
the line algorithm but it won't compile. (shrug)
DECOUT.ASM,
DECOUT2.ASM
routines for printing
numbers in decimal. the first one prints without commas, the second
one with. linetest.asm requires hexout2.asm.
HEXOUT.ASM,
HEXOUT2.ASM, HEXOUT16.ASM,
routines I made for printing numbers in hex. hexout16 is for
16-bit numbers and the other two are for 32-bit, but i don't remember
the difference between the other two.
INSTR.ASM
I'm
not sure I made this, but it seems like I did. it finds a substring
within a string. ...efficiently.
BLAH2.ASM,
blah2.com
just a weird effect. I should
probably make the center-point bounce around the screen, but I'm too
lazy.
THETE2.ASM, thete2.com
Nothing
that great. I don't know if I wrote this. My friend may have.
pow.asm
raises a number to a power using a loop. it
essentially takes 3 lines.
HTMLVIEW.ASM
I
was frustrated with the slowness of Internet Explorer so I actually
started to make an HTML viewer in assembler. I think as far as I got
was mainly concerning screen initialization (VESA) and that part may
or may not be functional.
MERRILY.ASM,
MERRILY.COM
bounces lines across the
screen which reflect off of an invisible word in the middle of the
screen. the word could be changed to anything. uses the same command
keys as the BOUNCE series but doesn't display them.
LINCON.ASM
I
didn't make this, but it's required for some of these. [random number
generator]
julia2.exe
shows strange attractor
for any place on the mandelbrot you put your mouse, real-time.
julia4.exe
shows julia set for any
place on the mandelbrot you put your mouse, realtime
julia.exe
the above combined (i prefer one or the other)
2dgrav.cpp
simulates gravitic
interaction among objects in 2-d space. has lots of command keys that
create cool effects, etc. i didn't finish it because the freakin'
gravity doesn't work right and I can't figure out why.
squares
2dgrav real-time julia mandelbrot with attractor maize conenctric
circles
QBTRM108.BAS
Totally obsolete today of course, but I put a lot
of work into it. 1800 lines of code. It's an ANSI terminal program.
Won't work without the correct version of qbserial which I don't
have. I also made one in asm. it did ansi and avatar. it even had a
phone book. and it would show the incoming stream of data on the
bottom row zooming across. the coding was really clever. but i lost
it. 1996.
2DGRAV.BAS, 2DGRAV2.BAS,
2DGRAV3.BAS, 2DGRAVR.BAS
Simulates
gravitic attraction among objects in 2D space. Has some options that
create cool effects. Doesn't work anymore. Don't remember the
differences between the different versions. One of them needs
SVGAQB10. 1996.
MSMTHNG.BAS,
MSMTHING.EXE
This one actually works. I
forgot the name of the game, but it starts with an M. 1995.
ZOOP.BAS,
ZOOP.EXE
A game called Zoop.
1996
SPIRAL.BAS, SPIRAL.EXE
Kinda
cool graphics effect.
OTELOV36.BAS,
OTELOV36.EXE
Othello. I don't remember
the algorithm for the computer player but I'm sure it's really
simple. Works. 1995.
NIBBLES2.BAS
A
hyped up version of Nibbles, the qbasic game that used to come with
windows. Needs some minor adjusting with the timer calibration.. new
computers are too fast for it. 1993
BINGUESS.BAS,
BINGUESS.EXE
Challenges you to guess
the number (either 0 or 1) that it's “thinking” of. Tells
you what % you got correct and lets you know if you show indications
of ESP, using some formula that's probably totally wrong. Also can
average scores over many sessions. Unfortunately I didn't bother to
provide a way to exit the program. But I'll compile it with debug
mode so ctrl+brk should work assuming your computer isn't like this
one.
GUESSND.BAS, GUESSND.EXE
Plays
sounds of random frequencies and challenges you to guess the hertz.
Tells you what the hertz was and the difference.
ALGERNON.BAS,
ALGERNON.EXE
give it a file containing
a maze in ascii and this program will solve it – *with the shortest possible route*. start needs to be denoted by S, finish by F,
and walls by X's. 1995
SHAPES.BAS,
SHAPES.EXE
turns a txt file into an ansi
file made up of blotches of color. would have been cool back when
bbs's still existed.. 1995
ANAGRAM.BAS
Just
finds single-word anagrams of an input string. Needs a word file.
1995/1998
ANSIFNTN.BAS,
ANSIFNTN.EXE
Displays a fountain of
characters and writes it to an ANSI file. 1995
PSYCH.BAS
I
started to make a bulletin board system in QB. If i remember
correctly, it didn't work right. Requires qbserial. Doesn't work.
Isn't finished. 1995
WID.BAS
manipulates
a picture, i think a wolfenstein graphics format?, can do neat things
to the color that not even photoshop does. i think. i apparently
don't have enough dos memory to run it now. you can simultaneously
convert all three channel into respective sets of coefficients for
all three channels (9 values), that's the only thing I remember about
it. 1994
BLOBS.BAS, BLOBS.EXE
creates
colored blobs. 1996
EXACT.BAS
finds
anagrams composed of more than one word. it's not perfect..
1995
CHRBNC.BAS
bounces things around
the screen in text mode. goes way too fast. 1995
BASE.BAS
converts
a number from any base to any other base. uses double floats so the
numbers can be pretty large. possible inaccuracy. there's a better
thing to do this in UnityBot. I say better because 1. Python is more
concise, 2. Python naturally handles integers with ludicrous amounts
of digits, 3. it does decimal points and outputs the numbers in irc
WITH bars over the repeating decimal portions.
TOE5.EXE
(i
lost the source to this one.) Plays a perfect game of Tic Tac Toe,
i.e., never loses, and takes the best chances at winning. At least
that's what it's supposed to do. It's been beaten before and I
couldn't find the bug.
PRIME.BAS
Lists
primes or tests if a number is prime. It's pretty flawed. 1993/1995
todo: vb – lsystem