to program
updated 2002-12-26
contents:
[FIXME: move stuff from todo.html and linux.html here;
... computer_architecture.html ...
also to_program.txt]
(also see directory
../program/
of programs I've written / am working on.
ToProgram
Programs I could write.
(was:
FP(for program)list
)
in order of priority:
-
prioritizer
(perhaps work with
GPE: The GPE Palmtop Environment
http://gpe.handhelds.org/
)
(consider using
``DateLens - A Calendar Interface for Pocket PC PDAs''
http://www.cs.umd.edu/hcil/datelens/
)
Also see
"Painless Software Schedules"
todo.html#schedule
-
finish Fullerton project
-
finish my compression paper
-
Write and test the sample apps for
YARMAC
.
see
c_programming.html
-
http://speakeasy.org/~lion/#OrganizeTheHiveMind
-
[TODO: can I help this project ?]
Genes - Personal Genealogy Database
http://genes.sourceforge.net/
1. Read and display data to the screen from a GEDCOM file.
-
the Griffin Project: UNIX Typing Tutor
http://linux.umbc.edu/gits/typing-tutor.html
Gary Gabriel
http://userpages.umbc.edu/~igabri1/griffin/
-
help with the
MMIX project
computer_architecture.html#mmix
.
-
Does QuartusForth run on the Dana ?
http://kristopherjohnson.net/cgi-bin/twiki/view/Main/AlphaSmartDana
Use it to learn Forth:
http://www.kristopherjohnson.net/cgi-bin/twiki/view/Main/FreeForthPrimerProject
[FIXME: #forth]
-
Does OnBoardC run on the Dana ?
http://onboardc.sourceforge.net/
http://www.kristopherjohnson.net/cgi-bin/twiki/view/Main/OnBoardC
-
(this should be simple ... translate Pascal to C for a nifty
desktop plotter machine)
http://www.luberth.com/plotter/mguicstep.html
[FIXME: move to computer_graphics.html#programming#bresenham]
http://www.luberth.com/plotter/plotter.htm
That should lead right in to this development project:
Linux Stepper Motor Device Driver
http://www.freelabs.com/~whitis/software/stepper/
``I need to write a multiaxis implementation of the Bresenham line drawing algorithm.''
-
Read and comment on the ``Previews of Volume 4''
http://sunburn.stanford.edu/~knuth/news.html#rng
-
...
Experience in using Unix-based source code debuggers (i.e., DDD)
...
-
make simple little OpenGL demo
(Julia with inverse iteration ?)
"Glax - ActiveX with Opengl:
An ActiveX control implementing OpenGL 1.1"
Karl M. Syring
http://www.weihenstephan.de/~syring/ActiveX/
-
todo: help support Plucker:
"Plucker is an offline web and eBook viewer for Palm OS® based handheld devices and PDAs
...
that let you decide exactly what part of the web that you want to view on your PDA.
Plucker includes programs that let you specify exactly what part of the World Wide Web
you'd like to download onto your PDA
(as long as they're in standard HTML or text format);
these web pages are then processed, compressed, and transferred to the PDA
for viewing by the Plucker viewer.
...
Plucker is Free Software and that means that
you can use it without charge, you can give it away to others, and that you can even modify the program (or pay others to do it for you) to customize it or add the features you want."
--
http://www.plkr.org/index.plkr
In particular,
several people
http://www1.alphasmart.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=35;t=000018
would like it customized for the Dana screen.
see also
book.html#pluckerbooks
-
todo: install and play with
Source Navigator
,
a source code browser.
-
todo: install and play with
http://borland.com/kylix/
a rapid applications development tool (RAD) for Linux.
-
help with a
ic_layout_tool.html
-
our "bug bounty" program. Basically, for each bug you fix [in Ghostscript], you get $500.
--
http://www.ghostscript.com/
-
http://distcc.samba.org/
???
distributed gcc
-
the ICI programming language
http://www.zeta.org.au/~atrn/ici/
"ICI is a C-like, high level language originally developed by Tim Long"
"ICI is also useful as an extension language
for applications and ... embedded systems."
-
"Scanner Access Now Easy" (SANE)
http://www.mostang.com/sane/
a GPL'ed API and some device drivers
for accessing various scanners, digital cameras, and frame-grabbers.
Claims to be superior to TWAIN.
-
The EGg0 Educational Robotics Platform
http://eggo.sourceforge.net/
(found
http://www.handhelds.org/z/wiki/JonathanPennington
)
-
Linux - Development Software
http://www.fokus.gmd.de/linux/linux-softw-devel.html
lots of libraries and classes for all sorts of things
used in software development
(3D animated graphics, CGI programming, GUI development,
font manipulation,
compilers and assemblers,
regression testers, debuggers,
pretty-printers ("indentation filter"),
lint tools, etc.).
-
consider writing Sokoban solver in Prolog.
- Write a "no-limits" design program that can
handle arbitrary numbers of dimensions (rather than the
so-called 2d, 2.5d, 3d, 3.5d drawing programs common
today), including 4D and fractal dimensions. Also,
Escher-style tessellation would be neat.
First step: download
latest free-D alpha version
.
-
[TODO: B: help develop one of the open-source C compilers on]
http://www.gnupic.org/i_compile.html
-
play with small open-source text editors such as
GNU nano by Chris Allegretta
http://www.nano-editor.org/
.
Consider using my compression ideas to squish it even smaller.
ideas for adding bloat:
add hyperlinks.
(click on a http:// link loads lynx;
click on a WikiName searches for a file with that name
in the same directory as the one you're looking at,
and creates it if it doesn't exist ... unless you exit without saving changes
).
(perhaps post my results to
http://texteditors.org/
)
-
Make a "beginners getting-started step by step instructions"
on how to set up a development system:
Given that the final end point is a chip on a solderless breadboard
that is connected to a PC,
and has a bootloader
(
http://www.microchipc.com/PIC_tips.asp
highly recommends a bootloader / serial debugger)
programmed into it.
*and*
given that we *don't* have any pre-programmed chips
2 paths to get there:
(a) Using only 1 chip:
* build a "simple programmer". program the initial bootloader.
* Then shuffle all the hardware into the "serial bootloader" setting.
(b) Using 2 or more chips (if we have dozens of chips, this is faster ...)
* build or buy "chip programmer" (perhaps *using* a pic).
(If you build it yourself, use a "simple programmer" to program it).
Then use that hardware to program all the other chips (through the ISP pins).
...
but what about ICD in-circuit debugger, single-stepping, etc. ?
-
connect a PIC and some Flash memory;
(perhaps *serial* flash, making something that externally looks
identical to
computer_architecture.html#pic+EPROM
; see also
robot_links.html#serial_memory
.
Then
implement some of my ideas with B* trees and flash.
Also try to port FORTH to it.
http://massmind.org/techref/microchip/language/forths.htm
Would it make things simpler to have *both* a serial FLASH
(say, half for ASCII-text source code,
half for "p-code" ?)
*and* a serial RAM (data stack, return stack, and heap data)
?
But if we're going to go to the effort to make it
"OK to kill the power at any time;
it resumes right where it left off when you turn the power back on",
then it might be even simpler to *not* have RAM, only have FLASH (or EEPROM).
Quick summary of ideas (some good, some bad ideas):
-
0xFF (the "freshly erased") bytes are ignored.
-
0x00 ("completely overwritten") bytes are ignored.
-
extra empty 0xFF bytes are placed where it is "likely" the user will type in more stuff.
-
If the B* absolutely *must* store 0x00 and/or 0xFF bytes,
escape them with something like
-
0xFF --> 0x01 0xfe
-
0x00 --> 0x01 0xfd
-
0x01 --> 0x01 0xfb (values carefully selected so only *1* bit changed from 0xff)
(On power-up, if you see 0x01 0xFF,
it's obviously an incomplete write of one of these bytes --
overwrite the 0x01 with 0x00
and pretend the power failed just *before* starting to write the 0x01 byte.
If you see 0x01 followed by any other byte, something more serious is wrong;
perhaps overwrite both with 0x00.).
-
parent nodes (including the root node)
are a list of addresses of children nodes.
The all-zeros (0x0000) and all-ones (0xFFFF) addresses are ignored.
(Or perhaps we should ignore addresses that start with 0x00 or 0xFF ?)
(Do these nodes need any other information ?)
(Perhaps *dont* pack address extremely tightly, so LSb is always zero.
Then start writing a new address at MSB ...
on power-up, any addresses with non-zero LSb are obviously
an incomplete write;
overwrite the address with 0x0000
and pretend the power failed just *before* starting to write the address).
-
leaf nodes are bytes.
(Do these nodes need any other information ?)
-
How to indicate which is the root node ?
Does each node really need to indicate whether
it is
- the root node (words of addresses)
- some other non-root parent node (words of addresses)
- a leaf node (bytes of text)
-
unlike B* trees in other media,
sometimes a B* node that is too small to handle 1 more new thing
can be copied elsewhere (squeezing out all the 0x00 "overwritten" bytes)
and suddenly it is plenty large enough for that 1 more thing and a few more.
-
When a "basic block" of the flash is full of 0x00 "overwritten" nodes
(perhaps with a few 0xff "empty" nodes),
it can be immediately erased.
-
Circular buffer:
make sure we always maintain at least 1 completely empty FLASH block (0xFF "erased").
Occasionally garbage collect:
critical section -- lock out modifications to the B* tree
-
- copy nodes from the "next" block after the empty block (circular) to the empty block.
- when we've copied all those nodes, erase the "next block.
- Somehow indicate that that freshly erased block is now the official empty block
- erase the new official empty block (In some cases, this could be done after the end of the critical section ?)
end critical section.
(wait... does this really work ? Won't this mess up all the addresses in the parent
pointers that are now left pointing into the new empty block ?)
What happens when we're in the middle of garbage collection and power fails ?
-
How big should nodes be ?
Obviously no bigger than the "basic block" of the flash.
But perhaps as small as the minimum of 2 addresses.
Assume node addresses in the parent nodes are *packed* to exclude always-zero LSBs.
Some options:
-
1 byte addresses (probably the minimum):
can select one of 2^8-2 == 0xFE == 254 nodes
(the 0x00 and 0xFF address reserved to indicate null).
-
2 byte addresses
can select one of 2^16-2 == 0xFFFE == 65534 nodes
(the 0x0000 and 0xFFFF address reserved to indicate null).
-
2 address per node (the minimum) x 2 byte addresses
gives 4 bytes / node,
and a maximum of 65534 nodes * 4 bytes =~= 256 KByte of FLASH
(not including the "spare" needed for garbage collection)
(When full of text, well over 1/2 of this is used
for the overhead of parent nodes).
-
64 addresses per node x 1 byte addresses
gives 64 bytes / node,
and a maximum of 254 nodes * 64 bytes == 16256 bytes
(when full of text, well over 1/64 of this is used
for the overhead of parent nodes ...)
-
When the current node becomes full and needs to split
(for example, trying to insert into the middle
and there's not enough 0xFF in that leaf to allow that), then we do
either a left-insert or right-insert (doesn't matter which):
left-insert:
-
The parent node is updated:
the address of a fresh new empty node is inserted just to the *left*
of the old address of the current node.
-
all text to *left* of insertion point is copied from the current node to the fresh empty leaf.
(0xFF and 0x00 null bytes are squeezed out).
(a few 0xFF empty bytes inserted at beginning and end and perhaps in the middle).
-
All non-0xFF bytes to the *left* of the insertion point in the current node
are "erased" (overwritten with 0x00).
(bytes to the right of the insertion point are left alone).
right-insert:
-
The parent node is updated:
the address of a fresh new empty node is inserted just to the *right*
of the old address of the current node.
-
all text to *right* of insertion point is copied from the current node to the fresh empty leaf.
(0xFF and 0x00 null bytes are squeezed out).
(a few 0xFF empty bytes inserted at beginning and end and perhaps in the middle).
-
All non-0xFF bytes to the *right* of the insertion point in the current node
are "erased" (overwritten with 0x00).
(bytes to the right of the insertion point are left alone).
power-loss tolerant insert:
-
make sure the parent node has room for 2 new addresses
next to
(to right, left, or on both sides of)
the old address of the current node.
If not, recursively split parent until it does.
-
all text to *left* of insertion point is copied
from the current node to a fresh empty leaf.
(0xFF and 0x00 null bytes are squeezed out).
(a few 0xFF empty bytes inserted at beginning and end and perhaps in the middle).
-
all text to *right* of insertion point is copied
from the current node to the other fresh empty leaf.
(0xFF and 0x00 null bytes are squeezed out).
(a few 0xFF empty bytes inserted at beginning and end and perhaps in the middle).
-
The parent node is updated:
the address of the 2 new empty node is inserted next to
the old address of the current node.
The pointer to the current node in the parent is erased
(overwritten with 0x00).
(as long as this step is done atomically,
power failure at any other time never loses data ...
but this requires a block of 6 flash writes;
is there an other way that only requires each byte write to be atomic ?
)
-
...
-
My Dana can use a MultiMedia Card (MMC) or two;
can I interface a PIC to a MMC ?
-
Make very simple linear bar code reader:
basically a PIC and a photosensor wand ...
...
can I focus the IR port on a PalmOS device
to get it to read linear bar codes ?
-
Make a 2D bar code reader (barcode reader):
-
off-the-shelf semi-portable PC (or PalmOS device ?)
-
off-the-shelf standard webcam (or scanner)
-
Open-source software.
consider printing out the little 2D barcodes, sticking them onto a chess set,
and otherwise building another implementation of
GlyphChess
machine_vision.html#GlyphChess
with a laptop to make the whole thing portable.
(Perhaps use some *other* 2D barcode, different from DataGlyph ...)
Also consider informing
http://consumerium.org/wiki/wiki.phtml?title=Bar_code
about this software.
-
http://speakeasy.org/~lion/#OrganizeTheHiveMind
-
Todo: play with using the SDCC compiler to run C code on the PIC processor.
really 2 todos:
- set up equipment so I can program PICs easily
- help development of SDCC compiler.
http://sdcc.sourceforge.net/#download
http://sdcc.sourceforge.net/files/v2.2.1/sdcc-2.2.1-win32-borland.zip
Is
http://sdcc.sourceforge.net/cygwin_help.html
really the quickest way to get up and running ?
Porting C compilers
#porting_c
-
to_program: improve
vlsi.html#magic
. For starters, add pull-down menus
(especially "help").
-
todo: check out the Matrix Template Library
http://c2.com/cgi/wiki?MatrixTemplateLibrary
...
http://www.osl.iu.edu/research/mtl/
-
Install Bugzilla and LXR on my web server.
Source:
http://sourceforge.net/projects/lxr
Another online version:
http://lxr.mozilla.org/seamonkey/source/netwerk/dns/src/nsDnsService.cpp#620
...
What is the latest version of GCC ?
Put that into LXR ?
It would be cool to have a software bazaar.
A place where people who are willing to pay to have some programming done
can connect with people who are willing to program.
Too often hundreds of end-users are annoyed for years by some tiny little thing
that a programmer could fix in a day or 2 of tweaking.
I think the site would start up with "free" projects --
projects so small that Comsci students looking for experience and fame
could knock them out in a few hours.
Later we would add "paid" projects.
How can we deal with money
while avoiding potential problems ?
Is the "street performer protocol"
appropriate ?
(sometimes incorrectly spelled "software bazzar" ).
Here are some sites that are almost, but not quite what I'm picturing.
-
CommercializingOpenSourceSoftware
http://c2.com/cgi/wiki?CommercializingOpenSourceSoftware
-
Here are some software projects for which I'm prepared to pay a bounty.
You'll have to submit a proposal and some references, if you want an advance on the bounty.
My budget for these bounties in 2004 is USD 100,000.
--
Thomas Black, program manager for Open Source at The Shuttleworth Foundation
http://markshuttleworth.com/bounty.html
One project is
"Timetabling
...
I'm interested in proposals for extensions to SchoolTool
to actually assist in the design and optimisation of the school calendar.
This is a VERY HARD problem!
The solution will need to support many different kinds of timetables, many different sorts of constraints, and
be able to present this in a UI that is optimised for a given type of school."
-
http://www.firstmonday.dk/issues/issue4_6/kelsey/
"the Street Performer Protocol, an electronic-commerce mechanism to facilitate the private financing of public
works. Using this protocol, people would place donations in escrow, to be released to an author in the event that the promised
work be put in the public domain."
-
"Web Developer Marketplace : freelance programmer, web designer freelancer software developer web hosting"
http://forums.payproject.com/
-
http://forums.devshed.com/
has a "Project Help Wanted" section,
as well as a discussion forum for "non-language specific... Software Design & Algorithms",
and seperate discussion forums for each of the popular programming languages,
Web Design, etc.
[FIXME: c_language]
-
"The Wall Street Performer Protocol:
Using Software Completion Bonds To Fund Open Source Software Development"
by Chris Rasch
http://www.openknowledge.org/writing/open-source/scb/
-
The Free Software Bazaar
http://visar.csustan.edu/bazaar/bazaar.html
has lots of similar challenges.
It also has a nifty market economy --
you can promise to pay X amount of money
in return for some piece of software,
or you can offer to develop some piece of software
in return for X amount of money.
[offline ?]
(2004-09-06: offline)
ToDo:
Add my software ideas / challenges to some Software Bazaar.
ToDo:
Look through
all Free Software Bazaar(s) (Are there any ?)
for software I would find interesting
and/or could quickly implement and donate.
-
project outsource
http://ns.todnkewgrpy.ph/search.php?id=oucomnw
????
apparently lets companies/people post computer projects they want done,
and allows programmers to bid on projects they want to do.
-
"MyBank"
http://virtualschool.edu/
???
-
http://www.dontronics.com/meeting.html
MicroChip PIC Hardware Designers/Software Authors
...
I just attempted to connect two groups of people together,
people that needed work done and people that could do the work required.
has a nifty rating system for programmers / electronics designers.
-
Consider downloading the source from
http://www.gnu.org/directory/cosrc.html
and setting up an online reverse-auction engine
(i.e., people post what they want,
and other people bid on giving it to them).
This looks like one possible way of funding open-source development,
giving programmers information on what people want
and roughly how much they're willing to pay for it,
and giving non-programmers information on
what programmers do and how much various ``features'' cost.
(But then why has cosource.com gone offline ?)
-
listings that provide jobs for programmers to work on Open Source programs
http://www.technology-and-computers.com/Computers/Open_Source/Program_Contracting/
[Add to Challenge ? Or dump all my Challenge stuff onto this ?]
-
"Rent A Coder"
http://www.rentacoder.com/RentACoder/misc/News.asp
I just found this site recently, and know nothing about it outside of
what the site itself says.
What do you know about Rent A Coder ?
The requirement that the coder (programmer) pay a little bit of money up-front
before being paid the full price of a job seems odd to me.
It seems to have everything I wanted my site to have,
except I also wanted to support the "street performer protocol"
to encourage open-source software.
-
http://c2.com/cgi/wiki?CoSource
related ideas:
Todo: write code to implement some of the ideas at
psd.html
,
especially
psd.html#treemap
[see also
software_david_uses.html#macintosh
-- perhaps move all links to software archives to that page ?
]
Also algorithms and source code ...
small data compression
-
todo:
Write a program for
The Calgary corpus Compression Challenge
http://www.mailcom.com/challenge/
.
Naturally, first we write a very simple program
just to build the test harness;
later add more complicated stuff.
-
todo:
Implement data compression on PIC.
- LZRW1-a
- huffman-like
- pucrunch
http://www.htsoft.com/cgi-bin/agnes?PicforumAgnes+PicforumAgnesHTMLArticle+1325
One thing I want to do with data compression on a PIC:
store (compressed) sound data on the PIC, then play back
(kind of like a cheap, crude, extremely low-quality MP3 player).
This lets me play several seconds worth of sound that contains
the frequencies humans are most sensitive to
(telephone-quality "voice quality", 40 Hz to 4 000 Hz)
without actually having to store all 8 Ksamples/second.
I think I want real-time decompression on-the-fly ...
do I really want to make this isochronous ?
See
http://www.piclist.com/techref/microchip/dsp/wav2dt.htm
-
DAV's Huffman reference algorithm:
instead of "#of bits", store "#of leading zeros"
(?)
-
[FIXME: toread]
April Text Compression Challenge.
http://www.mactech.com/articles/mactech/Vol.16/16.07/Jul00Challenge/index.html
The Programmer's Challenge
to_program.html#programmers_challenge
-
http://www.mountpoint.ch/unique/project/t-rip/index.html
LZ77 decompression on a 68HC11 micro controller.
(in Deutsch)
[FIXME: toread]
-
The Lossless Compression Page (the Squeeze Page)
by Dominik Szopa
http://www.cs.sfu.ca/CC/365/li/squeeze/
But I thought it would be much better to show you.
...
So along with the descriptions of the algorithms,
I have made some Java applets that allow you to see what it happening.
Right now, I have descriptions and applets for Huffman, Adaptive Huffman and LZW.
If anyone wants to make a LZ77 applet, it would really help complete this.
-
play with data compression and decompression on the HP48 --
implement the LZRW-1a.
play with data compression and decompression on the PIC --
implement the LZRW-1a (if possible).
Post results to
http://www.piclist.com/techref/method/compress/embedded.htm
Also look at ideas from pucrunch
data_compression.html#short
-
translate pucrunch by Pasi Ojala to PIC (assembly language ?); perhaps Atmel.
Begin with simple C code.
data_compression.html#program_compression
DAV:
compared to LZRW1-a, pucrunch has
* better compression
* because it can take advantage of 2 byte repeats, and
* because it has a *huge* complicated compression routine),
* bit-oriented, doesn't care about 14 or whatever bit words.
* the program is a little bit longer
(~130 instructions of 6502 assmbler
vs.
of ~42 instructions of 68000 assembler)
* decompresses a little bit slower.
...
perhaps also make a short, slow *compressor* that runs on the PIC itself.
Does the short, slow compressor still beat LZRW1-a in compressed size ?
DAV: (*all* compression algorithms:)
it might be convenient to shuffle bit order
such that 8 bit quantities
(literals, perhaps also last part of offset in pucrunch)
are always aligned to byte boundary.
advantages:
-
while looking at compressed files generated by text,
it's easier to see inserted literals ... get a feel for
how many literals there are, what the start-up time is, etc.
-
For relatively incompressible sections of files,
it might turn out to be *faster* to do byte-to-byte copies
rather than having to shift bits around.
For ISO-8859-1 text that has lots of bytes w/ the high bit (bit 7) set,
perhaps it would be better to embed the escape bits
as bits 6 and 5, which are never 00 in ISO-8859-1 text except for
(rare) control codes and (common) tab, carriage return, line feed.
But perhaps standard pucrunch with escape in 7 and 6 is adequate;
these are never 10 except for rare punctuation symbols.
(... and if they're common, they're usually followed by a space,
so 2-byte LZ77 copies should pick them up ...).
Pasi Ojala 1997 explains that
...if a fixed-length code is used [, a] one-step lookahead is enough
to guarantee optimal parsing.
If there is a more advantageous match in the next location,
we output a literal byte and that longer match instead of the shorter match.
I don't have time or space here to go very deeply on that,
but the main reason is that in fixed-length code
it doesn't matter
whether you represent a part of data
as two matches of lengths 2 and 8 or
as matches of lengths 3 and 7 or
as any other possible combination (if matches of those lengths exist).
This is not true for a variable-length code and/or a statistical compression backend.
[does the LZW1-a compressor take advantage of this fact ?]
Consider a reduced version of
LZRW4
... which also can take advantage of 2 byte repeats ...
...By using contexts, LZRW4 gets away with using 3-bit
lengths and 5-bit "indexes"...
...
The LZRW4 decompressor requires much more temporary working RAM than the LZRW1-a decompressor,
(a table of 4096 pointers),
but you need (?) that temporary table of 4096 pointers
for the the LZRW1-a *compressor*,
so if you're going to put them both on the same machine ...
you might as well go with the better-compressing LZRW4.
...
but DAV still suspects pucrunch is still better than LZRW4 ... or is it ? [FIXME: get numbers]
-
very simple Huffman-like compression for PIC:
store a list of the most frequently-used letters
(space, e, t, a, ...),
then either use true Huffman codes
or simpler Elias Gamma codes
to select from that list
(chars past the end of the list are represented literally;
is this ``other'' char frequent enough to give it a shorter
Elias Gamma code than the last char in the list ?).
... but wouldn't LZRW1-a give better compression,
and not require a table ?
-
to_program: text filters
[FIXME: haven't I written about them somewhere else ?)]
map all uppercase letters to "A" + lowercase letter;
"This is a test, this" --> "Athis is a test, this" ...
de-conflate
...
the idea is to filter the file such that the
compressed text is shorter than it would be without the filter,
and in such a way that the file can be un-filtered and retrieve the
original (lossless) text.
Is it possible to losslessly swap "qu" with "cw" ?
If so, ... then after filtering most text won't have the q character.
Fewer letters, in general, seem to make compression work better.
-
todo: install fif viewer ("fractal image format")
http://www.worldwar1.com/fracgal.htm
|
http://download.com.com/3000-2378-10001008.html?legacy=cnet
|
http://www.altamira-group.com/
-
todo: write text compressors with my "new ideas":
get pucrunch working;
add "circular compression";
add "continue from (absolute) end of last copy, skipping 1 char"
(this allows delete 1 char, change 1 char, insert 1 char
relatively efficiently).
-
todo: write image compressors with my "new ideas":
add dilate, erode to fractal compression.
-
todo: read
"Europort Data Compression"
http://rugmd4.chem.rug.nl/hoesel/xdrf.html
which discusses compressing molecule data
(lots and lots of water molecules; molecular dynamics)
[FIXME: #molecules]
more ToProgram
-
Make some
Computer Generated Holograms
.
-
Download the free F21 simulator and emulator
http://www.ultratechnology.com/store.htm
and
Play with a MISC chip
computer_architecture.html#misc
.
------------------------------
Date: Mon, 5 Jun 2000 14:42:16 -0400
From: Nick Cabatoff <ncc at cs.mcgill.ca>
To: misc
Subject: mad mp3
There's been discussion on this list in the past about making an mp3
player based on the F21. I just noticed an implementation using only
integer arithmetic at <http://www.mars.org/home/rob/proj/mpeg/>,
thought I'd pass along the reference.
The library which does the decoding adds up to about 8KB of C source,
almost half of which is composed of data (Huffman code words for Layer
III). I'm going to dabble with writing a Machine Forth decoder
inspired by this code, but it'll probably be some time before I have
anything to show for it. If anyone else decides to do some work on
this though maybe they could coordinate with me, perhaps share some
code or ideas?
------------------------------
and then
Programs to Write
Programs to Write
(Code to Hack)
simple histogram
Mark: "I want a CGI script that ...
sends email via a template file with an unknown number of variables ( names used more than once, a javascript or ".asp" loop )."
started: 1997 Nov 1
end prog.html
-
-
html page index
Write program to index (via words)
and Table of Contents (via <headers>)
my entire web site,
with links to where those words / headers came from.
write program to index all the words
on my web page
(leaving out "a", "an", "the", "etc.", etc.),
(dropping any ``s'' at the end of plurals)
(how to handle capitals ? accented characters like resume ?)
creating a index page
with a link to the web page that uses it.
Will the Unix "makeindex" program help ?
-- I hear that Sandy Harris
has written software ("needing work") to
index only the words in the headers
( <H1/> through <H6/> )
in a "permuted index".
Hasn't this already been done ?
http://www.etla.net/~willey/projects/
anm
List and crossreference the anchors in HTML documents.
Jutta Degener
http://kbs.cs.tu-berlin.de/~jutta/anm/
[FIXME: try this out]
source code to make a index for a book ?
http://www.fiu.edu/~duttagus/weiss4/
"Automatic Indexing with the DocBook DSSSL Stylesheets"
by Norman Walsh 1998
http://docbook.sourceforge.net/release/dsssl/current/doc/indexing.html
...
Norman Walsh
http://nwalsh.com/
(
_DocBook: The Definitive Guide_ book by Norman Walsh and Leonard Muellner
"the official documentation for DocBook"
the complete text of the printed book is online
http://docbook.org/
The DocBook Wiki
http://docbook.org/wiki/
)
Just for grins,
make a list of all the words I use,
sorted by the "canonical anagram" of the word,
to see if anagram-ambiguous coding
idea_space.html#improved_alphabets
is really a problem.
(some people use alphabetical order as canonical anagram order;
where did I see people
put consonants first, vowels last ?)
(see
the source code written by Jim Korenthal
spin_dictionary.html#anagrams
)
http://oddwiki.taoriver.net/wiki.pl/SomeWare/IndexTool
Play with the Mozilla code.
In particular, help make sure compression/decompression work right
http://bugzilla.mozilla.org/show_bug.cgi?id=105292
.
Also confirm that the build instructions work on the various platforms I have:
http://www.mozilla.org/build/win32.html
Programs to Read
http://sunburn.stanford.edu/~knuth/programs.html
[FIXME: read !]
compressed caching [of] Linux virtual memory
http://linuxcompressed.sourceforge.net/
Could I help with this project ?
This seems related to
``Disk compression versus file compression''
http://tldp.org/HOWTO/Multi-Disk-HOWTO-6.html
and
http://squashfs.sourceforge.net/
and also related to the Ross Williams patent
on Blocklets(TM)
http://blocklets.com/
(especially
``Example Application: A Low-Redundancy File System''
http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=/netahtml/srchnum.htm&r=1&f=G&l=50&s1=5,990,810.WKU.&OS=PN/5,990,810&RS=PN/5,990,810
which claims
``The technique could be used to increase the efficiency of an on-chip cache.''
[FIXME: link to VLSI]
).
The patent also mentions
``suggests that some form of universal standardization on a particular partitioning method would be a worthy goal.''
DAV thinks that one partitioning method (with a variant) is already a de-facto standard:
the character 0x0A (newline character);
some applications, in addition, also partition after the "." (dot period) character.
[FIXME: make sure these 3 groups know about each other,
and perhaps even crosslink to each other]
simulations
fractals
automata
my CAD
symbols
data
grasscatcher - programs
hypercard draw
my language
(hack,hack)
c2 write simple "oscilliscope simulator" program ... read both voltage and time value, so (from graph) it's obvious where the data dropouts are.
c2 Saturn program -- get astronomical data to check program, accuracy.
c3 write program to draw appolonian gasket.
What happens when subroutine is given a negative radius?
What is the fractal dimension of the Appolonian packing ?
the fractal dimension of the "Appolonian packing", a rather pretty fractal made from circles. The precise value is a little difficult to compute; the most digits I have seen is 1.305686729, but that's probably only accurate up to the "7". To make the fractal, start with three circles that are just touching (tangent to) each other, and with none of the circles inside each other. Now there is exactly one way to add a 4th circle in the space between the three circles so that the new circle is tangent to all three. Then you can add three more smaller circles in the spaces between the 4th circle and two of the original three. As you continue this process indefinitely, you get an Appolonian packing.
http://home.earthlink.net/~mrob/pub/math/numbers.html
c3 write simple pascal Graph(xmin, xmax, function) w/pure ASCII output to illustrate passing functions as parameters (demo with sin(x), x, and user-defined functions like (x**2-(.25)). Do in-line functions work? )
DAC's very own time program
... think i'll call it Frameworks.
timeline mode - shows autobiographical summary on the
scale of 1 or 2 human lives.
take the random stereogram program and modify it do *animations* ...
can this be done with ASCII text ? I doubt it, but ...
FP:make paper titled "Birthdays" w/366 lines (one for each day of leap year) and on each line list people w/ that birthday (optional year of birth in parenth)
add anniversaries.
maze generator
From agora!rainrgnews0!psgrain!usenet.eel.ufl.edu!news.mathworks.com!uunet!in1.uu.net!news.u.washington.edu!myhost.subdomain.domain!scottco Fri Aug 11 23:02:09 1995
Xref: agora comp.graphics.algorithms:15170
Path: agora!rainrgnews0!psgrain!usenet.eel.ufl.edu!news.mathworks.com!uunet!in1.uu.net!news.u.washington.edu!myhost.subdomain.domain!scottco
From: scottco@myhost.subdomain.domain (Scott C. Cottrille)
Newsgroups: comp.graphics.algorithms
Subject: Re: maze algorithm wanted.
Date: 9 Aug 1995 17:43:17 GMT
Organization: String to put in the Organization Header
Lines: 156
NNTP-Posting-Host: camelot.stc.housing.washington.edu
NNTP-Posting-User: scottco
X-Newsreader: TIN [version 1.2 PL2]
Allan Nienhuis (Allan_Nienhuis at mindlink.bc.ca) wrote:
: Hi there.
: Several (many) months ago, there was a slight bit of discussion about
: different methods of creating simple 2d mazes. Naturaly, I didn't
: bother to save any of the algorithms suggested, and now I have need of
: just such a thing. I would prefer something recursive in nature, but
: I'm willing to look at any type of soution.
: Thanks,
: Allan Nienhuis at mindlink.bc.ca
Here's one I derived from a letter sent into Compute! many many years ago.
I modified it to be state-driven, so that I could more easily make a
timer-based screen saver out of it (works great!) You know, I think I've
posted this thing about 4 times now - why don't these maze questions make
it into a FAQ? The algorithm below is VERY simple.
#define rnd(n) (rand() % n)
#define NUMAMAZCOLORS 8
int Pattern[4][2] = { 0, 2, -2, 0, 0, -2, 2, 0 };
int DoMaze(void);
void main(void)
{
SetYourGraphicsVideoMode();
srand((unsigned)(time(NULL) % 1000));
while(!kbhit())
{
if (DoMaze())
{
break;
}
}
InvertTheScreen(); // black becomes nonblack, and vice versa
getch();
ReturnScreenToTextMode();
}
int DoMaze(void)
{
#define ZERO 0
#define ONE 1
#define TWO 2
#define THREE 3
#define FOUR 4
static int Maxx;
static int Maxy;
static int xPos = 2;
static int yPos = 2;
static int PseudoGoto = ZERO;
static int j;
static int x;
int nx;
int ny;
switch(PseudoGoto)
{
case ZERO:
Maxx = 298;
Maxy = 198;
SetPixelColor(5);
SetPixel(xPos, yPos);
PseudoGoto = ONE;
break;
case ONE:
j = rnd(4);
x = j;
PseudoGoto = TWO;
break;
case TWO:
nx = xPos + Pattern[j][1];
ny = yPos + Pattern[j][0];
if (ny < 1 || ny > Maxy || nx < 1 || nx > Maxx)
{
PseudoGoto = THREE;
}
else
{
if (GetPixel(nx, ny) == 0)
{
SetPixelColor(j + 1);
SetPixel(nx, ny);
SetPixelColor(5);
SetPixel(xPos + Pattern[j][1] / 2, yPos + Pattern[j][0] / 2);
xPos = nx;
yPos = ny;
PseudoGoto = ONE;
}
else
{
PseudoGoto = THREE;
}
}
break;
case THREE:
j++;
j = (j > 3) ? 0 : j;
if (j != x)
{
PseudoGoto = TWO;
}
else
{
j = GetPixel(xPos, yPos) - 1;
SetPixelColor(5);
SetPixel(xPos, yPos);
if (j < 4)
{
xPos = xPos - Pattern[j][1];
yPos = yPos - Pattern[j][0];
PseudoGoto = TWO;
}
else
{
PseudoGoto = FOUR;
}
}
break;
case FOUR:
return(1);
}
return(0);
}
spectrum-analyzer program
outputs sinewave to user's filter, inputs sinewave,
displays phase and amplitude (attenuation).
Or uses the nifty step-response method.
(Uses Sunset Laboratory AIB board)
http://www.vernier.com/legacy/mpli/
waveform analysis (FFTs, wavelets, etc)
"The most straight-forward method of adopting the FFT to handle such nonstationary signals
(i.e., signals whose spectral composition change with time)
is known as the Short-Time Fourier Transform (STFT).
...When the STFT is computed using the Gaussian window,
it is sometimes called the Gabor Transform."
-- J. Bulgrin and B. Rubal, "Time-Frequency Analysis of Heart Sounds", _Scientific Computing and Automation_ Aug. 1994.
self-check program
write a program with self-check checksum or CRC, to detect corruption / infection.
data_compression.html#ecc
programming questions
do I need to do anything special to handle command-line redirection
*and* command-line arguments?
ex: type test.txt | myprog /verbose | more
programs in general
help and "about" screens.
("about" can probably be just a regular textfile,
self-edited in "read only", "view" mode.
title, version number and date, and where to send shareware fees.
Just be sure that it can't be disconnected from the program.
)
text/program code/HTML formatting: Pretty-Printer
-
converting to HTML:
Should it be smart enough to recognize already-converted HTML files and make no changes ?
how about smart enough to
recognize hand-coded additions to HTML files and "straighten up" those bits
(similar to C prettyprinter).
-
Converting to HTML:
recognize several URL formats (including the standard format), convert them all to standard format.
-
recognize several email address formats, convert them all to a standard format.
attempt to recognize start of name from Capitalization or punctuation
(2 or 3 "words" of the name ? Longer Capitalized names for titles of books ?) ? Ambiguous.
Examples:
d.cary@ieee.org (David Cary)
David Cary <d.cary@ieee.org>
"David Cary" <d.cary@ieee.org>
all get converted to
<a href="mailto:d.cary@ieee.org">David Cary</a>
-
Converting to HTML: recognize ASCII Art:
consecutive lines that all have at least 1 space in the 1st column,
no tabs, and every line is less than 80 (132?) characters.
Tag with
and
(unless, of course, already tagged).
Converting to HTML:
recognize sorted lists: paragraphs that begin with
"1. ", "2.", "3." etc. or
"(1)", "(2)", "(3)" etc.,
... convert to standard
-
- ...
-
form.
Perhaps leave old numbering system there to make it possible to undo this modification,
so a human can decide what needs to be deleted.
(I would *guess* everything that is identical for every item,
getting rid of whatever random punctuation they used that day, but that may delete too much --
perhaps they *want* every item to start with "To" or "+" -- or not enough,
when the document has inconsistent punctuation.).
Consider also recognizing unordered lists,
consecutive paragraphs that begin with "-", "*" or "+".
Both kinds have exactly the same whitespace in front of the marker (usually 1 or more tabs).
"Object Outline" from Bumble Bee Software (http://www.bbeesoft.com)
extracts comments from C++ to automatically generate HTML information,
with automatic hyper-linking. (Windows 95 and Windows NT; $297).
http://www.nothings.org/computer/mxml/mxml.html
has an example that converts plain text into HTML.
[FIXME: this MacroXML
might be useful for several of these projects:
]
Sean Barrett, inventor of MacroXML, says here that
``I don't think XML is a panacea for human-maintained files''.
Which makes me wonder:
Since I think all source code should be human-readable and human-maintainable,
is *any* format a panacea for human maintained files ?
Apparently some formats are *better* than XML for some applications ...
Q: compare MacroXML, sed scripts, and Perl -- which is most appropriate
for writing this sort of conversion filter ?
prioritizer
subroutine that takes a list.
(of TTD:s, etc)
asks you which is more important,
[#1] or [#2].... etc.
then, when done w/ last, shows sorted list in order of priority.
probably insertion sort w/ binary search.
able to quit then continue w/out starting over.
takes top 10, puts them on "top 10" card.
also do summary prog in test stack
move all FP cards to FP stack, w/ copy of prioritized list in both stacks.
keep data for top FP in daytimer.
simple file -> paper print program
compressed half-page printouts,
fine type.
header and/or footer, giving *source* file
(full pathname, including machine name ?),
time, date, page number,
last page number (to give "page 4/5" style numbering,
so it's obvious if you have all the pages -- this document has 5 pages).
Pente
future:
look-ahead
(sacrifice a less-than-maximum move now
in order to acheive a brilliant move later)
make symbols list
...
do cellular automata
1D
2D (Conway's Life)
3D
generalize my hashlife to handle
"cyclic space" discovered by David Griffeath:
if a cell is in a state k at a certain time, it must consume any adjacent cells that are in state k-1 before the next tick.
see "Order from Chaos",_Programmer's Journal_ may/june 1990
, which references
"Computer recreations" _Sci Am_ 1989#2,
_Cyclic Cellular Automata in 2D_ Fisch R,
_Fractal Programming in C_,Stevens, R.T.
http://robots.net/article/511.html
to_program.html
see also
todo.html#others
for non-software task lists.
Tools to help write software:
Software to write:
Unwritten Software:
The world is full of fascinating problems waiting to be solved.
In order to get in on the excitement, you need to learn
the tools used to solve them.
(from
How To Become A Hacker
http://www.ccil.org/~esr/faqs/hacker-howto.html
by Eric S. Raymond
)
-
Learn how to program.
In 1997 the one language you absolutely must learn is C (though
it's not the one to try learning first thing). Besides C, you should
also learn at least LISP and Perl (and Java is pushing hard for a place
on the list).
-
Get one of the free UNIXes and learn to use and run it.
-
Learn how to use the World Wide Web and write HTML.
-
Contrary to popular myth, you do *not* have to be
a nerd to be a hacker. It does help, however, and many hackers are in
fact nerds. Being a social outcast helps you stay concentrated on the
really important things, like thinking and hacking.
Q: What language should I learn first?
A:
HTML. ... There are a lot of glossy, hype-intensive bad HTML books out there,
and distressingly few good ones. The one I like best is _HTML: The
Definitive Guide_.
When you're ready to start programming, I would
recommend starting with Perl or Python. C is really important, but it's
also much harder.
Here is some tools seem like they might be useful.
Please tell me about any other useful programming tools you find.
You might also be interested in the
jargon
creed.html#jargon
some hackers use.
[FIXME:
move information about programming in general here from
linux.html
]
Here are some challenging projects,
roughly in order of the value *I* place on them.
I challenge you to work towards
pushing at least one of these
towards a finished product.
(See also
The Programmer's Challenge
by Bob Boonstra
#programmers_challenge
)
I'd be willing to pay money for some of these ...
#software_bazaar
-
Write a
molecular modeling tool
.
-
http://www.foresight.org/WebEnhance/backlinks.news.html
desires a simple (?) CGI script that implements "Backlinks".
-
For program:
make simple "filter filter",
i.e., a UNIX filter
that takes a input datafile of numbers
and outputs another datafile of numbers,
"filtered" in the EE sense.
typical use:
.... | filter -hipass 20 Hz -lowpass 20 KHz -Sample 44.1 KHz | ....
perhaps 2 columns, so you can filter/separate I/Q modulation,
or do hipass/lowpass filtering simultaneously.
Decimation -- the output file can be *much* shorter than the input file.
The -Sample tells the filter what the input sample rate is in Hz,
so that the other parameters can also be specified in Hz
rather than in samples.
-
GNU Task List
http://www.gnu.org/prep/tasks_toc.html
-
a freeware Typing Tutor would be appreciated
http://linux.umbc.edu/gits/typing-tutor.html#typing-tutor
-
A VLSI chip design program.
see
vlsi.html#ic_layout_tool
-
http://www.cs.utah.edu/~mcdirmid/ghost/
Java on the PalmPilot.
[has mailing list; interesting project]
[very alpha the last time I checked]
-
OnBoard C is a C compiler that runs on a PalmOS handheld.
http://kristopherjohnson.net/cgi-bin/twiki/view/Main/OnBoardC
...
http://onboardc.sourceforge.net/
- How can we build things that encourage people to learn and explore ?
"I'm always reading about parental anxieties
over all the bad stuff kids are exposed to on the Internet,
but frankly I'm more concerned about the good stuff my daughters are missing
because they lack the incentive or the interest or the knowledge to hunt for it."
--
"Kids and the Web: Getting Out of the Internet Rut" By David Laskin
http://home.microsoft.com/reading/home.asp
"I've encouraged her to explore virtual communities,
such as
Moose Crossing,
that teach kids elementary programming skills
and connect them with other young surfers around the world."
-
Create and collect
converters
between different font file standards.
http://czyborra.com/charsets/iso8859.html
the Hofstadter book (___??) says this simple-seeming concept
touches on some of the most difficult areas of AI.
-
(help develop)
GNU Yellow Vector Editor
http://www.gyve.org/
and
http://www.gnu.org/software/gyve/gyve.html
[FIXME: computer_graphics.html]
-
The web is cool and all, but there's still a few little things that could be better.
http://www.foresight.org/WebEnhance/index.html
-
"Project Mnemonic"
http://oloon.student.utwente.nl/~mnemonic/
is an effort to produce a Free MultiPlatform
High-Performance Web Browser.
Adding "a thumbs-up button and a thumbs-down button"
http://www.useit.com/alertbox/980208.html
seems like a cool thing to add to a web browser.
-
SEUL: Simple End-User Linux project
http://www.seul.org/
(
http://www.seul.org/whatsnew/website/
)
(
http://www.omegacs.net/~omega/
)
The
seul-dev-help at seul.org mailing list
http://www.globalserve.net/~twoducks/seul-dev-help/
-
gwp
http://www.hungry.com/products/gwp/
, a extremely simple text editor,
except for the fact that it lets you type in Japanese.
(written for the GNOME project)
The project is still in the conceptual stages
last time I checked. (in 1998 ?)
/* was
http://www.oswego.edu/~barrows/
*/
http://www.linuxplanet.com/linuxplanet/reviews/3809/2/
...
-
FreeDesigner project
free_d.html
-
Linux Documentation Project
http://sunsite.unc.edu/LDP
-
MacHack
http://www.machack.com/
-
the SimOS project
http://www-flash.stanford.edu/SimOS/
part of Stanford Flash
x86 and other CPU / architecture emulators:
-
Mnemonic
http://www.mnemonic.org/
a project to create the ultimate Web browser.
-
http://www.openscape.org
people working on the free Netscape client code
-
a central point of contact and community
for those interested in using or improving the Netscape source code:
http://www.mozilla.org/
-
GTSC4
HTTP://Welcome.To/GTSC4/
????
-
The QB Challenge
http://www.qbasic.com/chall.shtml
lists challenges in order of complexity:
-
Some simple things to help you learn a language
(that have been done hundreds of times before)
(that are otherwise useless),
-
some more complicated things to help you learn a language
that would be somewhat useful
if they hadn't already been done a few times before.
-
``I need ideas for more challenges! E-mail me with some!''
-- David Zohrob
[
FIXME: mail my challenges to
David Zohrob <mallard at qbasic.com>
]
OK, so thinking up new challenges *is* pretty challenging in itself.
-
Programmer of the Month
http://members.tripod.com/~POTM/
points to another programming challenge
http://contest.uvarov.ru/
[FIXME: do these people know about the Mac Challenge
#programmers_challenge
,
and vice versa ?]
[FIXME: should I add these computer languages to my list of computer languages ?]
NOTE: I measure the real time, not CPU time.
If your program makes a lot of calculations and doesn't wait()ing or sleep()ing you can freely use ANSI clock(),
but if you want to measure time more accurately consider using ANSI time(), POSIX times()
(the return value of times() is the real time measured in ticks) or POSIX alarm().
-
[challenge]
``We don't know of any free shopping carts worth using.
If you know of one, contact us and let us know -- we'll put it up on this page.''
http://www.wordsinarow.com/tools.html
[also lists credit card processing companies]
``for a website which is only selling a couple of items,
like us, or which doesn't need ...
the hassle and expense of setting up a merchant [credit card] account,
PayPal is a good choice.''
many people are looking for an alternative to PayPal:
http://paypalwarning.com/
...
http://paypalsucks.com/
-
http://www.topcoder.com/
computer programming tournaments.
* In the coding phase, contestants will be given a set of problems to solve using their programming skills.
* In the challenge phase, participants have the opportunity to review their competitors' code for errors.
Tournaments they host include:
-
"The Ultimate Editor"
article by Stephen Bint
http://www.tldp.org/LDP/LG/current/bint.html
challenges you to write the ultimate console-mode text editor
(text mode, but with colors,
mouse, pull-down menus, etc.
...
but most importantly,
well-documented to make it easy for others to add menu items
in C++
)
-
``All that stuff we started, but never got finished...''
http://www.daveandal.com/cupbrd.asp
`` So we've put all our unfinished and/or part-working stuff into a big 'To-Do cupboard'.
If you're brave enough to take something out and get it working,
we'll put a link to it on our site.''
...
``This is stuff that we played with, but never got finished.
You're welcome to download what you want and use it, finish it off and sell it,
hack it into something completely different, or just have a good laugh.
And if you build anything worthwhile from it, send us a link to it
so that others can see what you've done with our left-overs.''
[hacking challenges ?]
-
[FIXME: make ``challenges'' section here and in todo.html,
listing what people think other people should do ? For example:]
No Starch Press is holding a contest for Linux game developers.
http://lwn.net/2001/1122/a/gamecontest.php3
-
ICFP 2001 Programming Contest
Challenge Task
http://cristal.inria.fr/ICFP2001/prog-contest/task.html
compressing the SML/NG markup language
(very similar to HTML).
The Programmer's Challenge
The contest is judged by
Bob Boonstra
< boonstra at ultranet.com >
http://www.ultranet.com/~boonstra
-
http://savannah.nongnu.org/projects/unac/
DAV: this looks like it would be simple for me to finish.
-
check out
``Simple GCC projects''
http://www.gnu.org/software/gcc/projects/beginner.html
.
DAV thinks it would be pretty simple for me to to
``Find and expunge all the places where one .c file includes another.''
and not too hard to
``Break up enormous functions.''
(since I'm on this refactoring kick).
-
To me the application du jour is a web browser.
If you have run out of things to do write a web browser.
-- Chuck Moore (Charles Moore) 1999-04-13
http://www.ultratechnology.com/1xforth.htm
(Can a web browser be written in less than a thousand instructions ?)
"How do I Edit in Color Forth?
Yes I do have a custom editor for doing this.
I think everyone should have a custom editor for editing their program files.
I don't believe in universal editors. An editor is so easy too write that why not?
A browser is very easy to write too, and
I know people don't like to believe me but
I will give you some examples in the course of the next year."
--
http://www.ultratechnology.com/cm52299.htm
-
todo:
to quiet complaints that modern translations
``add too'' or ``leave out'' stuff in the KJV,
make a very simple mechanical tranlation:
a set of ``sed'' or ``Perl'' scripts
that substitute ``old English'' --> ``modern English''.
To prove that the translation is one-to-one,
flip the direction and translate
``modern English'' --> ``old English''
and use diff to prove that the entire process is lossless.
- KJV <--> modern English
- graff -- graft
- you -- you_all
- thou -- you_alone
- ye -- ??
- wert -- were
- thine -- your
- kine -- cattle
- leasing -- ???
(Psalms 5:6)
- ...
- ...
/* I started to translate ``you'', ``thou'', ``thee'', ``ye'' all to modern ``you'',
but that is lossy -- how to distinguish them in the modern version
to make the reverse translation possible ?
*/
-
NanoCAD
http://discuss.foresight.org/~pcm/nanocad/index.html
-
James Gleick
http://www.around.com/
[FIXME: read]
[FIXME: mention those books of James Gleick I've read in book.html]
[FIXME: consider playing with the source code on this page ...
perhaps update to Java, and post to sourceforge ?]
-
From: (Ken Nestle)
Newsgroups: comp.sys.mac.system
Subject: Word counter ?
Date: Mon, 20 Nov 1995 13:11:00 -0500
Organization: InterAccess, Chicago's best Internet Service Provider
I'm looking for a Mac app that will give me an alphabetical list of all
the words used in a document, along with a count of how many time it
appears.
Thanks in advance to anyone who can help.
Ken
--
If you love something, set it free.
If it doesn't come back, hunt it down and kill it.
-
Implement one of the requests from
the 'official' GIMP Wish List
http://members.tripod.com/~Juergen_Erhard/computers_contribute_gimp_index.html
[FIXME: todo]
-
FreeHDL
http://www.freehdl.seul.org/
A project to develop a free, open source VHDL simulator for Linux.
-
"extremely well documented" Source Code?
http://www.gameprogrammer.com/archive/html/msg04641.html
[FIXME: Consider emailing about literate programming
c_programming.html#tools
... Knuth ...
]
-
disassembly
http://www.halfbakery.com/idea/Pac-Man_20Genome_20Project#1012895654
-
computer_architecture.html#cellular_automata
[FIXME: DAV once started writing a version of HashLife
(in QuickBASIC, if you can believe it).
Perhaps it would be interesting to
write it as a"search program" (in C or C++),
for more generalized cellular automata,
and set it to the task of finding
Garden of Eden patterns,
Phoenix patterns,
oscillators of various periods,
and other forward and backward iteration problems.]
-
write simple program to find approximate fractions using continued fractions.
-
write simple utility to factor integers.
-
``What is required is a word processing software package with spell check and grammar check
with thesaurus suggestions for Basic English usage.''
-- Jim Bauer
http://www.basiceng.com/ramble.html
(DAV: i.e., a word processor for people developing conlangs ...
it would be nifty to make it context-sensitive,
so you could have a paragraph of standard English
and a paragraph of some other language
...
even if you have to manually insert the HTML
tags that indicate language ...
)
more details:
http://www.basiceng.com/needs.html
lists some open-source software
and improvements to make to it.
-
routine to dissect a (approximation of) a number into a
continued fraction expansion ... then
another routine to take that expansion and create
a list of approximating fractions (convergents).
Continued fractions
http://mitpress.mit.edu/sicp/psets/ps2cnt/readme.html
-
"WANTED! Volunteer programmers, designers and editors
to help improve this group of non-profit websites - in particular, any Java experts"
A Global Suggestion Box
for socially innovative non-technological ideas and projects,
with £1,000 UK sterling awards annually for the best ideas or projects submitted
http://www.globalideasbank.org/
[FIXME: search tools ? todo.html#others ?]
-
If you want to write a compiler, you might look at
http://c2.com/cgi/wiki?GamesCompiler
.
-
Catalog of Free Compilers and Interpreters.
http://www.idiom.com/free-compilers/
All the listed items should be free and come with source code
-
http://home.earthlink.net/~mrob/pub/math/numbers.html
http://home.earthlink.net/~mrob/pub/math/numbers-2.html
gives
``An efficient way to calculate e''.
Pick whichever method gives me the most bits in the least time
(pi, e, or sqrt(2))
and use those bits to make some pictures.
(Or just download lists of digits from pi archives on the internet ...)
Also has some approximations of π --
clear those approximations out of my list,
and ask Robert P. Munafo to crosslink with Eric's list at mathworld.com
.
Perhaps use the C programs at
http://numbers.computation.free.fr/Constants/Programs/programs.html
or one of the other programs that refers to.
(Pictures such as
http://mathworld.wolfram.com/PrimeSpiral.html
(which has a nice PostScript program -- check it out !)
(also look at triangular, hexagonal, etc. arrangements
)
-
``C editing with VIM HOWTO'' by Siddharth Heroor
http://tldp.org/HOWTO/C-editing-with-VIM-HOWTO/index.html
add information about DOC++.
-
todo: try to get the HP48 to play DTMF tones.
http://www.hpcalc.org/hp48/docs/faq/48faq-4.html#ss4.14
claims that
``The speaker in the HP48 is not capable of supporting the DTMF tones''
but the reason given is pretty bogus.
Consider ``turning off the display refresh, which supposedly takes up about 11% of the CPU time.''
(mentioned in that FAQ).
The DTMF page
http://www.pstec.de/ppp/pppdtmf/pppdtmf.html
how to generate DTMF tones using only a single-bit output ...
and why the Palm Pilot can't play DTMF tones
(DAV: the speaker driver isn't low-impedance enough,
so the piezo just rattles at its own resonant frequency ...)
...
also see
http://www.dattalo.com/technical/theory/dtmf.html
...
???
"DTMF decoding on PIC18"
techtrain.microchip.com/masters2002/Classes/608/608 DTF.pdf
techtrain.microchip.com/masters2002/Classes/608/608%20DTF.pdf
document on "Design of DTMF Detector
on PICR Microcontroller with 1-bit DFT using modified
Goertzel algorithm"
???
-
TtH: the TeX to HTML translator
http://hutchinson.belmont.ma.us/tth/
to_program: the example on the front page doesn't look right in Mozilla --
I see Ö (Ö)
when it clearly should indicate the square-root symbol √ (√).
If
Alan Wood
http://www.hclrss.demon.co.uk/demos/symbol.html
is correct,
Mozilla is being standards-compliant,
and TtH needs to be modified to bring it into standards compliance.
-
``Tiny programs for constants computation:
(The smallest C codes to compute classical mathematical constants)''
This page contains some very tiny code to compute classical mathematical constants.
Wanted : any shorter C codes or tiny C codes for z(3), the Euler constant g (!) or any other
classical constant.
Send any new tiny code to : xavier.gourdon(at)free.fr or to sebah.pascal(at)fnac.net .
http://numbers.computation.free.fr/Constants/TinyPrograms/tinycodes.html
DAV: functional program compression, right up my alley !
-
DAV:
often I scan in an image,
then I median filter it (or blur it) and mess with the contrast
to chop off irrelevant details at the white and black end,
to force large flat areas to really go to large flat areas,
but keep text legible ...
but after I mangle it, throwing away everything but
what I think are the *relevant* details,
perhaps it would be nice to restore the original colors
(rather than crisp black and white),
to colorize it.
So:
write a program to
generate a 3rd ``colorized image'' from 2 input image:
a ``raw image'', and a ``filtered image''.
Consider the special case of
an image (the ``filtered image'') reduced to 16 colors:
what I *dont* want is a lot of colors
dedicated to near-black, and a bunch more to near-white,
while what I think are ``important'' distinctions get
washed out.
So:
Except for the color map,
the output image is the same as the ``filtered'' image.
For each color in the color map,
find the *location* of every pixel in the filtered image
that uses that color,
then find the corresponding pixels in the raw image,
then set that color in color map of the colorized image
to the average color of those selected pixels from the raw image.
Future:
how to automatically take a raw image and generate
the final filtered, colorized image ?
Perhaps direct translation would make it easier to avoid problems
such as slight left-right offsets ...
Perhaps better:
better OCR-like understanding of the image.
-
check the tomsrtbt.FAQ for "ToDo".
Tom promotes the languages "Lua" and "BAL".
computer_architecture.html#tomsrtbt
[FIXME: which should I learn first ?]
-
improve POV-Ray:
Unofficial Wish List
http://www.povray.org/download/features/wishlist.php
-
http://sourceforge.net/people/helpwanted-latest.php
looks for programmers, web page designers, and graphics artists to volunteer to help.
-
http://www.e-zekiel.com/
???
-
``Coding between Mouse and Keyboard, Part I''
article by Patricia Jung 2002-09-01
``This article shows you how to create the GUI of a tiny text editor without being a C++ guru.
In Part II, we'll
add missing functionality and
translate the program into languages other than English.''
http://linuxjournal.com/article.php?sid=4721&mode=thread&order=0
-
``In-Memory Database Systems''
article by Steve Graves 2002-09-01
``Embedded IMDSes are especially useful for embedded development''
http://linuxjournal.com/article.php?sid=6133&mode=thread&order=0
-
options & futures
``incomplete designs for software (or, occasionally, hardware) that I would implement if I had the time or the stamina.
Not all of them are completely serious.''
-- jutta (Jutta Degener)
http://kbs.cs.tu-berlin.de/~jutta/swd/
The stone: Hardware: a touch-only interface
sounds pretty cool:
no sound, no visuals, just pressing chords into the stone, and feeling it press back.
...
it can broadcast and receive text messages over the cell phone network
... also links to other haptic interfaces.
More about haptic interfaces (Bumpology) and
other strange (but possibly implementable) hardware and software ideas at
http://kbs.cs.tu-berlin.de/~jutta/me/notes.html
-
Converting from HTML
http://www.w3.org/Tools/html2things.html
lots of tools to convert HTML to plain text, to TeX, to PostScript, to setext, etc.
[FIXME: move to ... ?]
-
the Petersen Graph
http://kbs.cs.tu-berlin.de/~jutta/swd/topo.html
does this scale better than the hypercube ?
[computer architecture # parallel ?]
-
[long list of software and electronic hardware ideas]
http://www.ee0r.com/ideas.html
-
http://lists.w3.org/Archives/Public/www-ql/2001JulSep/0016.html
???
-
I miss a free good paint tool for X-Windows.
http://kbs.cs.tu-berlin.de/~jutta/swd/paint.html
has lots of ideas for what a good paint tool should do.
[FIXME: crosslink to free_d.html ?]
I wonder what being able to quickly manipulate graphs would feel like...
[crosslink to
psd.html
]
-
Teen Programmers Unite
http://www.tpu.org/
(what is
http://www.tpu.org/cgi-bin/tpusite.cgi
?
-
Linux Terminal Server Project
http://www.ltsp.org/
Linux makes a great platform for deploying diskless workstations
that boot from a network server.
The LTSP is all about running thin client computers in a GNU/Linux environment.
-
Q:
I want to do a Network monitoring project in LAN in TCP/IP using C.
But i have no idea baout that. Please provide me a giudance and assist me in
my project.
A:
Join the mailing list run by Douglas Comer. You will
get definite answers as douglas is considered expert on TCP/IP .
-- unknown
[FIXME: get exact name and location of this mailing list.]
books by Douglas E. Comer:
http://search.barnesandnoble.com/booksearch/results.asp?sourceid=00405232526069618292&bfdate=08-07-2003+10:50:43&popup=0&ATH=Douglas+Comer&bfinfo=Douglas_Comer
and
http://www.alibris.com/search/search.cfm?S=R&wauth=Douglas+comer&siteID=1JSk6CbYEf0-b9ig9WdUWVesuNIq9EYIqQ
and
http://shop.cajun-style.com/aws.cgi/mode_books/kind_AuthorSearch/search_Douglas%20Comer/
http://shop.cajun-style.com/aws.cgi/mode_books/search_Douglas%20Comer/
[FIXME: add to "book stores"]
Computer Networks and Internets
book by Douglas Comer.
"Questions from readers of the book, with answers from the author, Doug Comer"
http://www.netbook.cs.purdue.edu/
Network Systems Design
Using Network Processors
book by Douglas Comer
ISBN: 0-13-141792-4
http://www.npbook.cs.purdue.edu/
Douglas Comer
http://www.cs.purdue.edu/people/comer
various definitions of the Internet,
from
Intel
http://www.soe.ucsc.edu/~callon/internetintro/sld022.htm
|
http://www.soe.ucsc.edu/~callon/internetintro/tsld022.htm
,
Douglas Comer
http://www.soe.ucsc.edu/~callon/internetintro/sld023.htm
|
http://www.soe.ucsc.edu/~callon/internetintro/tsld023.htm
[FIXME: crosslink to "embedded web servers"]
-
What we do not understand we do not possess.
-- Johann Wolfgang von Goethe
-
[maps and mapping software ...]
http://www.mapcruzin.com/rmp_maps/sponsors.htm
|
3d_design.html#map_software
-
[FIXME: read more about
"Robust Hyperlinks"
http://www.cs.berkeley.edu/~phelps/Robust/
which includes open source software
...
how does this work ?]
-
Efficiency is intelligent laziness.
- Arnold H. Glasow
-
http://crit.org/http://www.opensource.org/
-
Is it possible to force a COTS CD writer (CD recorder) (CD-WORM or CD-RW)
to make holograms ?
perhaps
http://www.cdrfaq.org/
in particular, the section
What are the gory details about how are 1s and 0s encoded?
http://www.cdrfaq.org/faq02.html#S2-43
would be helpful.
-
Consider playing with some of the more interesting-sounding tools listed at
computer_architecture.html#os
such as HURD and GRUB and tomsrtbt.
-
install rsync
http://rsync.samba.org/
-
the cLIeNUX "distribution" by Rick Hohensee
ftp://ftp.gwdg.de/pub/cLIeNUX/
|
ftp://linux01.gwdg.de/pub/cLIeNUX/
|
http://ftp.ibiblio.org/pub/linux/distributions/cLIeNUX/
I don't use C anymore.
--
Rick Hohensee
ftp://ftp.gwdg.de/pub/cLIeNUX/interim/ABOUT
(trying to build a forth-oriented Linux distribution, cLIeNUX)
http://exit3.i-55.com/~bolus/
???
[FIXME: play with improving cLIeNUX]
lucid naming is the best documentation.
http://ibiblio.org/pub/Linux/distributions/cLIeNUX/descriptive/DSFH.html
http://ibiblio.org/pub/Linux/distributions/cLIeNUX/descriptive/axioms
has many good quotes.
[FIXME: creed ? to_program ?]
A system is only as good as the docs.
Proximity is the best documentation.
2 stacks are better than one.
Hiding information isn't friendly.
If you can't obtain the sourcecode, you don't own the box.
-
http://labf.com/
check out the X window / remote desktop stuff here.
-
http://poorbuthappy.com/projects/index.php?page=TheToolThatLetsYouSyndicateTranslation
lets companies/people post text they want translated into another language,
and allows translators to bid on projects they want to do.
(Or do the companies / translators bid on translator time ?)
-
http://poorbuthappy.com/projects/index.php?page=TheMultilingualCMS
-
http://poorbuthappy.com/projects/index.php?page=TheMetaDataWetDreamTool
[FIXME: html.html#metadata]
-
Is it possible/easy to develop plugins for IE? It sure looks like it - so how does that work? And if so, with all due respect to all the developers out there who have built a newsfeed aggregator, why hasn't anyone developed a newsfeed aggregator that just plugs into IE? Develop it, make it easy to use, include all the usual goodies + categories, and charge me $10. Come'on.
Posted by Pedro at March 07, 2003
http://poorbuthappy.com/ease/000949.html
-
http://groups.yahoo.com/group/biblesoftware/
"A forum to discuss all types of Bible software including, but not limited to, Logos, BibleWorks, QuickVerse, Gramcord, PC Study Bible, Ages, Theophilos, The Online Bible, and
The Sword Project
."
-
http://www.stuartcheshire.org/
points to tips on Mac programming;
check out RadioScope on a Motorola 68HC11;
-
Natural Order Numerical Sorting
http://www.naturalordersort.org/
sorts in this order:
Picture1.jpg
Picture2.jpg
Picture3.jpg
Picture4.jpg
Picture5.jpg
Picture6.jpg
Picture7.jpg
Picture8.jpg
Picture9.jpg
Picture10.jpg
Picture11.jpg
Picture12.jpg
-
check out
http://www.sourceforge.net/projects/onlinebible
-
writing a computer program that plays Othello
http://www.armory.com/~iioa/othguide/faq/faqlatest.html#articles
"Othello is the easiest of the "major" games to program properly, due to the small rule set."
"four papers that I would personally recommend to interested Artificial Intelligence (AI) students who have already been introduced to game tree search."
"The Internet Othello Server (or IOS)
was written by Igor Durdanovic in late 1993
as a location for holding computer Othello tournaments. "
[DAV is no longer interested in writing a program to play Othello;
he's already been there, done that]
-
Consider writing an entry for the
Shortest Wiki Contest
http://c2.com/cgi/wiki?ShortestWikiContest
[FIXME: crosslink to functional compression]
Perhaps more important is the
Easiest Installable Wiki Contest
http://c2.com/cgi/wiki?EasiestInstallableWikiContest
[installing Wiki]
http://wiki.org/wiki.cgi?TipsForSiteOperators
-
todo: install wiki-like things on my Palm:
PalmWiki by Toshiyuki Masui and others.
http://c2.com/cgi/wiki?WikiLikeThings
-
Consider writing a Chatbot.
(Would that experience help with machine translation ?)
-
consider making a box that
-
listens to you whistling into a microphone on one end
-
displays what frequency it thinks you're whistling
-
plays the closest note out the MIDI port on the other side
(perhaps an octave lower ?
Perhaps a fifth or so higher or lower in harmony ?
)
...
look at DTMF decoders for ideas -- perhaps
even use DTMF ideas to decode more than 1 note at a time
(i.e., 2 people whistling in harmony).
How to avoid feedback from the midi device back to the microphone ?
simplest: wear headphones.
complicated: remember what note you sent,
and ignore that note ... either a complicated filter to
filter it out, or simply
stop listening,
play for a sixteenth note,
stay quiet for a sixteenth rest,
then stay quiet for an eight note as we listen for the whistle again.
-
getting 2 PIC devices to communicate with DTMF tones
http://www.sxlist.com/techref/member/rat_ring/index.htm
| mirror
http://www.piclist.com/techref/member/rat_ring/index.htm
[FIXME: this is a massmind alternate name, right ?]
-
http://c2.com/cgi/wiki?PianoKeyboard
With what I know about MIDI and the PS/2 keyboard interface,
perhaps it would be interesting to combine them:
a little box that lets you play keys
and letters show up on the computer screen.
-
"Low-cost techniques for sound generation"
article by David Hinerman 2003-05-29
http://www.embedded.com/story/OEG20030512S0079
includes
source code for DTMF generation using DDS
... For several years, radio amateurs have used a modulation method called PSK31 for keyboard-to-keyboard chats on the air. PSK31 uses phase-shift keying of a carrier to transmit bits of data. Usually a program running on a personal computer generates a phase-shifted audio carrier and outputs it from the sound card. A single-sideband (SSB) transmitter con verts the audio to RF and transmits it out the antenna. An SSB receiver recovers the audio carrier, and a computer equipped with a sound card demodulates the phase-shift keying at the other end and displays the original text.
George Heron (amateur radio callsign N2APB) has developed a simple device that generates a PSK31 audio message. Links to George's schematic, source code, and other documents are at www.njqrp.org/psk31beacon/psk31beacon.html. The module uses a Ubicom SX28AC/DP microcontroller and a simple resistor array instead of a DAC chip. A personal computer running a PSK31 program (available through aintel.bi.ehu.es/psk31.html) and a microphone plugged into its sound card's input can hear and demodulate the audio signal. George's design also illustrates how to use the LM386 amplifier chip.
-
Karl Fogel
http://www.red-bean.com/kfogel/ideas.html
has some interesting ideas for software.
"The Perfect Life Program"
"hypertext locator (keeps you on track)"
[TODO: email Fogel about
http://www.touchgraph.com/
and perhaps
psd.html
]
-
machine-language-to-C translator ("uncompiler").
See
link_farm.html#translation
.
-
GNU Enterprise
http://www.gnue.org/
-
a fast search facility would be really nice.
Eventually, I may have one (I refuse to use free search engines that impose advertising.
They tend to be too slow anyhow.)
In the meantime, realize that you can always use Ctrl-F in your browser to search any single document.
...
However, if someone would offer to provide a fast non-commercial search engine that I can just drop in with near zero effort, please contact me ...
-- Samuel M. Goldwasser
http://www.laserfaq.org/
| mirror
http://members.misty.com/don/lasersam.html
-
Write small program to display the
Lagrangian libration points
of a 2 body system
(In particular, look at the Sol-Terra and Terra-Luna systems)
[FIXME: already did. pointer goes here _____]
-
Linux-like tools that run under Windows
http://www.datacomm.ch/mwoog/software/linux_windows.htm
GNU software for Windows 95 and Windows NT
http://agnes.dida.physik.uni-essen.de/~janjaap/mingw32/
GNU Software for Windows
http://www.gnusoftware.com/
http://www.fred.net/tfelix/supasoft/wuup.htm
The idea is to take the BSD and GNU UNIX-like utilities and port them to Win32
so that they will compile under Microsoft's latest Visual C++ compiler. The
result is a set of tools that handle long filenames ... Full source code for
VC++ 5.0 is available,
-
[Yarmac ?]
BASIC to C Translator
http://www.users.qwest.net/~sdiggins/bcx.htm
[YARMAC]
Programming in C
UNIX System Calls and Subroutines using C,
A. D. Marshall
http://www.cs.cf.ac.uk/Dave/C/CE.html
(has some online algorithm animations)
[general programming]
http://www.nicholson.com/rhn/basic/
points to *lots* of different programming tools
(although it emphasises BASIC)
[hacking]
``Explaining -- perhaps the better word is justifying -- all this to outsiders
turned out to be tough for the team. "I haven't actually found the right way to
explain this to a nontechnical person," says Hansteen. His experience is
reminiscent of beginning computer science students who, emerging from a
sleepless, Mountain Dew-fueled code-writing binge, can't communicate the joyful
accomplishment they feel at having written a program that, say, adds all even
numbers between one and 50. The invention is so much more important than its
output.
One reason computer people are often a cloistered, close-knit bunch is that they
don't have to justify to one another their will to create.''
http://www.salon.com/tech/feature/2001/05/10/pigeons/index2.html
[technical humor]
http://i-want-a-website.com/about-linux/
-
http://www.codeproject.com/
???
-
G0XAN's (Mainly Homebrew/QRP) Amateur Radio Page
http://homepages.tesco.net/~gary.aylward/radio.htm
and some PICmicro info
[FIXME: to read]
-
We need a language that lets us scribble and smudge and smear,
not a language where you have to sit with a teacup of types balanced on your knee and
make polite conversation with a strict old aunt of a compiler.
-- Paul Graham
-
http://c2.com/cgi/wiki?RefactorLowHangingFruit
points to
http://www.joelonsoftware.com/articles/fog0000000348.html
which claims that writing a refactoring tool would be good.
A tool that makes it easier to do things like this:
-
"changing the name of a variable
(and having all the references to it change automatically)."
-
"Found repeated blocks of code and created classes, functions, or methods to
eliminate the repetition."
-
"Broke up large functions into multiple smaller ones."
-
"Removed all remaining English language text from the main code and
isolated that in a single file for easy internationalization."
which in turn points to
http://refactoring.com/
[FIXME: gather up my info on refactoring and functional compression;
perhaps put somewhere near
http://c2.com/cgi/wiki?WhatIsRefactoring
]
-
improve ray-tracing programs ?
http://6502group.org/RAY6502.HTM
claims to be "much faster" than similar programs ...
compare it to POV-Ray,
and see if either one has ideas that can be used
to improve the other.
-
install a Wiki
http://c2.com/cgi/wiki?PersonalWiki
-- perhaps
http://c2.com/cgi/wiki?PalmWiki
. Perhaps check out the source code to
http://c2.com/cgi/wiki?EddiesWiki
.
Also:
what exactly needs to be added to Wiki to turn it into a PIM ?
-- alarm clock -- this just needs to link to the Wiki page that describes the appointment.
-
Consider: port
"PIC_TREE" by J Borgaard
http://massmind.org/techref/microchip/devtools.htm
from VB to something more portable ... C ? Forth ?
I have lots of other ideas for software that, unfortunately,
I don't have time to implement -- or I don't know enough
to implement.
Perhaps you could help ?
to_program.html#challenge
-
http://sunir.org/
???
-
check out the GUI user-interface-development software at
video_game.html#gui
-
http://lcavwww.epfl.ch/~gbarrene/SPclass/
Matlab image compression routines used to implement JPEG compression.
-
news:comp.protocols.misc
???
-
http://www.twinfeats.com/main.tfs
??? open source PalmOS programs ???
-
the projects listed at
http://www.colorforth.com/status.html
sound like fun.
One is:
Port colorForth to a PDA.
... some of them have already been done; check
http://kristopherjohnson.net/cgi-bin/twiki/view/Main/ColorForth
.
-
http://download.com.com/
[FIXME: check out "developer utilities"]
-
i manage a Solar System Simulator group with the goal of making a solar
system simulator that can model man made structures in space such as the SE.
Unfortunately most of the group including my self have other commitments
too, in my case its university. But now that the holiday season is here
perhaps we can get a bit more done.
Perhaps you and others who have the same interest in helping us out would
join us at
http://groups.yahoo.com/group/SolarSystemSimulator/
the idea is to make a fully free and open source space sim that allows users
to experiment by creating and testing man made structures (such as the SE)
in a simulated but realistic space model.
http://groups.yahoo.com/group/SolarSystemSimulator/
-
"Borland Pascal. And its open source cousin, FreePascal."
???
-
todo: set up a .EARTH DNS server
http://nic.earth.mad-scientists.org/
-
The Patriot Missile Failure
http://www.ima.umn.edu/~arnold/disasters/patriot.html
[FIXME: read again more carefully]
[FIXME: circular numbers don't have this problem ... perhaps move this link to massmind # circular numbers ]
-
-
todo: check out
3d_design.html#Open-SESSAME
by A.J. Turner et. al.
includes
-
Matrix Library - vector and matrix container classes for representing and manipulating linear algebra operations
- Rotation Library - library of coordinate frame representations and operations (ie quaternions, direction cosine matrices, etc.)
-
...
-
"school forge: working together to unleash the power of open source tools in education"
http://schoolforge.net/
-
???
_ Artificial Intelligence through Prolog_ book by Neil C. Rowe
http://www.cs.nps.navy.mil/people/faculty/rowe/book/book.html
...
http://www.cs.nps.navy.mil/people/faculty/rowe/
-
"STARFIRE A Vision of Future Computing"
Sun Microsystem's Starfire project
http://www.asktog.com/starfire/starfireHome.html
-
U.S. patent 5,327,529
"Process of designing user's interfaces for application programs"
by Douglas Fults and Anthony Requist
Assignee: Geoworks
1992.
-
Wishlists for specialized WikiEngines:
new features, Wikis wanted for these platforms,
Wikis wanted in these languages,
etc.
http://c2.com/cgi/wiki?WikiEnginesWanted
-
Wavelet Image Compression Construction Kit
http://www.geoffdavis.net/dartmouth/wavelet/wavelet.html
Wavelet compression package by Geoff Davis
-
http://dspvillage.ti.com/docs/catalog/resources/blockdiagram.jhtml?familyId=44&bdId=325
???
-
consider setting up my own email-to-fax gateway
(sometimes called "Internet Fax Telephone Bypass")
-
PicoGUI
http://picogui.org/News/News_Item.2003-04-01.0852
???
-
http://c2.com/cgi/wiki?OoEnvironmentForPalm
and
http://c2.com/cgi/wiki?ProgrammingOnHandHelds
lists many languages that let you type code *on* the Palm and run it right there.
-
challenges ?
http://www.forthfreak.net/wiki/index.cgi?ForthProjects
-
"Java for Bioinformatics"
article by Stephen Montgomery 09/24/2003
http://www.onjava.com/pub/a/onjava/2003/09/24/java_bioinformatics.html
especially check out
"WebMol ... allow researchers to visualize and manipulate complex protein structures."
-
What should I do with
dma_faq.html
?
-
http://gtkboard.sourceforge.net/
"two player board games
...
If you are a developer looking for something fun to code, here's something cool.
Because all you need to do to write a new game is to write about 3 or 4 functions, or hooks,
for things like evaluating the goodness of a given position.
Your game will become a plugin that will be called by gtkboard, and it will take care of everything else."
-
The Remembrance Agent
http://remem.org/
The Remembrance Agent (Remem) is an Emacs plug-in that watches over your shoulder and suggests information relevant to what you're reading or writing. While search engines help with direct recall, Remem is a tool for associative memory. Suggested documents are displayed in a buffer at the bottom of your Emacs window, and are updated every few seconds based on the last hundred or so words surrounding the cursor. Documents are pulled from your own text documents, and Remem's internal indexer can parse email archives, HTML, LaTex and plain-text documents. It runs under most Unix systems (and maybe even properly souped-up Mac or Windows) and both Emacs and XEmacs.
-
What is the "GeoURL" on pages like
http://ron.ludism.org/annex/
?
-
http://www.bmumford.com/clocks/hj/
???
schematic ... measure time error of clock ... DAV: also measure time error of 60 Hz power line ...
don't I talk about this elsewhere ?
(time.html ?)
Electronic Pendulum
http://massmind.org/techref/postbot.asp?by=time&id=piclist\2003\12\22\072602a&tgt=post
-
all
open source: Apache, PHP, MySQL.
-
I would love to find some kind of program that takes XML tree data
(or database data, but XML seems ideal for this project) and displays the tree diagram graphically.
It would be great if I could control what part of the tree it shows by collapsing and expanding nodes,
allow me to hide or display attribute data,
or color code the display of the lines, nodes & terminus labels to metadata coded for each node, etc.
If you have any ideas or links please send them in!
--
Noreen Whysel
http://www34.brinkster.com/nwhysel/
-
[hacker challenges]
[perhaps crosslink "hacker challenges" with "cool science fair projects"]
http://www.userfriendly.org/geekstuff/
started 1997 Nov 1
(possibly before ?)
[FIXME: better footer]
errors
.
Return to index
// end
http://rdrop.com/~cary/html/to_program.html