../
To Do List for David
Online list of things to do ("tasklist")
.
.
updated 2009-04-21.
Contents:
How You Can Help:
If you can help me with any of these, I'd appreciate it.
If you find a dead link,
please
tell me
, so I can fix it and save the next visitor a bit of annoyance.
"Our chief defect is that we are more given to talking about things than to
doing them."
-- Jawaharlal Nehru, Indian statesman (1889-1964)
Projects:
- imaging ECG project - I hope this will help people understand the human heart better.
- propeller analyzer
- "User never notices any single fault" file server project ( partial milestone: distributed wiki )
- ultra-simple email client ... highly resistant to spam
- Jerome Garrett project
- RFID eyeglass-finder ( build small demo ``where are my keys ?'' device. )
- job search
- software bazaar
- levitation
- wireless power transfer
- sundial
- 24/7 audio recorder "personal recorder"
- "automated pulsar finder": robotic telescope
- Gumby project
- video camera on a radio controlled airplane (put on RC car first?)
-
wearable
computer.
-
start a ``lending library'' of engineering tools.
Skills:
- drawing (Inkscape)
- circuit design (gEDA)
- programming (Java + Eclipse + Subversion; Python)
- exercise
- set up electronics lab
- organize apartment
- getting a Ph.D. ... teaching ... perhaps do projects as "research projects"
natural language
Learn the next natural language on my list:
- Deutsch
- American Sign Language (Ameslan)
-
Español
- Morse Code
For more details,
see
"languages I want to learn"
idea_space.html#languages_to_learn
.
perhaps
the translation tools at
idea_space.html#translation
will help.
Perhaps:
make link to show my pages in german
(via one of the online translation tools
idea_space.html#translation
).
artificial language
Learn the next artificial language on my list:
- Python
- Perl (2 niches in particular: chip design / VLSI design and CGI programming)
- Java
- VHDL or Verilog
- GNU Octave
- CSS
- XML
- Forth
- PostScript
- SQL
- Look at the languages that run on a PIC
http://massmind.org/techref/microchip/language/cs.htm
...
http://massmind.org/techref/language/ccpp/
- froth
- TeX and LaTeX,
- Lisp (probably the Scheme dialect). (Lisp language)
- .NET
- ---------------------
I doubt I will find the time to even start learning the artificial languages below this line.
-------------------------
- learn MHDL, a hardware design language
for modeling *analog* circuits (and microwave systems).
- Atmel AVR assembly language
- Parallax Propeller assembly language
- Lua
- Smalltalk
- Ruby
- Tcl
- Prolog (OK, I learned a little bit, but I never got fluent)
- the "WEB" dialect of Pascal
- the "Delphi/Kylix" dialect of Pascal
- Knowledge Interchange Format (KIF)
- Objective-C
- the Joy programming language
- Zope
- PHP
- VRML
- Delphi
- Abundance
-
SNOBOL4+
- Ada
- Modula-3
- COBOL
For more details on all of these languages,
see
"computer languages"
todo.html#computer_languages
I've already learned many artificial languages.
_Structure and Interpretation of Computer Programs_
book by HaroldAbelson, Gerald Jay Sussman (GeraldSussman) and Julie Sussman
"Do not read reviews of this book. Read the book. Do the exercises.
It will teach you more about the essence of programming than any other book I know."
-- ChristianLemburg
"this is not a book about Scheme; it is a book about the fundamental aspects of computer programs.''
(Though it also teaches Scheme)"
http://c2.com/cgi/wiki?StructureAndInterpretationOfComputerPrograms
etc.
-
become familiar with other software development tools:
Subversion, LXR, Bonsai, Tinderbox, Bugzilla.
-
work on some of my to-program projects
to_program.html
.
-
Do some genealogy research on my family
(the Stark, Rice, and Cary families).
david_cary.html#genealogy
Consider making a Rice family web site.
-
Attempt to become less
"over-specialised and/or excessively arrogant".
-
the Mozilla calendar project
http://www.oeone.com/developers/calendar.html
seems like something important enough to spend time on.
-
Build electronics things -- things that are useful,
things that are educational, and things that are both.
-
Nanotechnology
nanotech.html
needs to be implemented (this is way too big for me alone).
-
Make a list of lots of cool software tools (all the software on my machine)
and how to get it -- to make it easy for others to build a system at least
as good as mine. If everyone posted a list like this, then I could download
all the tools to make my machine at least as powerful as everyone elses,
and they could do the same, a win-win situation.
see
computer languages I want to learn
[FIXME: move to
http://c2.com/cgi/wiki?CategoryLanguage
?
move to
http://rosettacode.org/
?
]
(see also
book.html
for some recommended books for some of these languages,
computer_graphics_tools.html#writing
(Postscript and others)
,
computer_architecture.html
(FORTH and some others),
,
html.html
(CGI programming)
,
linux.html
(Java and some others),
video_game.html
,
)
Infosec
http://www.infosyssec.net/infosyssec/prog1.htm
has a long list of tutorials
for many different computer programming languages.
Bruce Eckel
has written some programming books and made them available online:
_Thinking in Java_,
_Thinking in Enterprise Java_,
_Thinking in C++_ ("This book won the Software Development Magazine Jolt Award for best book published in 1995"),
_Thinking in Python_,
_Thinking in Patterns with Java_
http://mindview.net/Books
...
and
_Black Belt C++, The Master's Collection_
_Computer Interfacing with Pascal & C_
http://mindview.net/Books/books.html
...
...
what I think is important for you to understand about the language, rather than
everything I know.
I believe there is an "information importance hierarchy," and
there are some facts that 95% of programmers will never need to know, but
would just confuse people and add to their perception of the complexity of the language.
(the comp.lang.* series of newsgroups)
[web pages with programming language comparisons]
comparison and contrast of various langauges:
-
"A language that doesn't affect the way you think about programming,
is not worth knowing"
-- Alan Perlis
http://www.norvig.com/21-days.html
-
"faqts : Computers : Programming : Languages"
http://faqts.com/knowledge_base/index.phtml/fid/138
lists well over 100 languages with
a discussion forum for each language.
[FIXME: move to #algorithm]
"faqts : Computers : Programming : Algorithms"
http://faqts.com/knowledge_base/index.phtml/fid/585
includes a discussion forum.
-
http://faqts.com/knowledge_base/index.phtml/fid/138
lists many computer languages.
-
Programming Languages:
The Internet's Current Opinion
http://home.earthlink.net/~mrob/pub/lang_srom.html
What Languages Suck, And What Languages Rule
http://www.lehigh.edu/~sol0/rules.html
-
Developer Shed Network
http://devshed.com/
has discussion groups for each of the popular programming languages ...
and related stuff like "Web Page Development",
"Database Discussion", "non-language specific... Software Design & Algorithms", etc.
-
``Learning a new language is harmless.
It gives you new ideas and insights.
You don't have to switch, just learn and try it.''
--
http://slashdot.org/developers/01/12/01/0110233.shtml
-
Review of existing Languages
http://control.gsnu.ac.kr/~astruct/unix/langua~1.htm
All (?) known computer languages,
with pointers to more information.
-
There are lots of humourous comparisons between computer languages, such as
``The Parable of the Languages''
by Bb (?)
http://weblog.burningbird.net/archives/000581.php
-
Computer Language Shootout Scorecard
http://bagley.org/~doug/shootout/craps.shtml
about 30 different language implementations (a few languages represented by 2 implementations),
and a standard set of programs translated to each language.
compares speed, lines of code, etc.
Doesn't take itself seriously.
Discussion at
http://c2.com/cgi/wiki?GreatComputerLanguageShootout
-
Programming Languages Requested --
These are in the order of the most frequently used listed at the top.
- C++
- C
- Java
- Visual Basic
- UNIX
- COBOL
- Oracle
- PowerBuilder
- DB2
- SQL
- Assembler
--
http://www.cs.okstate.edu/programs/job.languages.f99.html
-
"which programming languages are hot with employers"
http://www.bitbreather.com/programming_languages.html
(discussed at
http://developers.slashdot.org/article.pl?sid=03/01/04/2311217&&mode=thread&&tid=98
)
lists (as of 2003-01-04)
SQL 24.06%
ASP 14.90%
Java 14.55%
C++ 11.33%
Visual Basic 10.07%
Perl 4.73%
(the C programming language might be more or less popular than these -- no statistics were collected for it)
-
``Perl versus ....''
http://www.perl.com/language/versus/
points to Java vs. Python, ... and other language comparisons
-
``Different tools are suited to different jobs.
...
[Y]you can pick up a bowling ball with tweezers,
it is rather difficult and ultimately unrewarding.''
-- unknown
(quoted by Jake Kauth 3 Apr 1996)
-
programming language comparison
http://www.spr.com/library/0langtbl.htm
"function points"
[FIXME: offline ?]
-
"Review of existing Languages"
http://www.tunes.org/Review/Languages.html
has the most exhaustive list I've ever seen of
computer programming languages,
many with useful links to further information.
[FIXME: move my PostScript and Forth links there ?]
-
Programming Languages:
The Internet's Current Opinion
http://home.earthlink.net/~mrob/pub/lang_srom.html
gives a pretty (ASCII) 2 D graph,
with various languages plotted on the graph:
Languages that appear higher on the chart (like C and C++)
appear on a greater total number of web pages.
Languages that appear closer to the right side of the chart (like forth)
have a greater 'rules/sucks' ratio -- that is,
they appear more often with 'rules' than with 'sucks'.
DAV: perhaps I would have more fun
learning the languages that people like the best --
Forth, Smalltalk, and
Objective C
are the furthest right on this chart.
-
Vote On Programming Languages
http://c2.com/cgi/wiki?VoteOnProgrammingLanguages
-
Alternatives To C++
http://c2.com/cgi/wiki?AlternativesToCplusPlus
has a long list of languages comparable to C++.
-
perhaps I should list the programming languages I know,
and my comments on each one ...
... maybe become more fluent in Prolog
news:comp.lang.prolog
...
-
http://directory.google.com/Top/Computers/Programming/Languages/
-
Dan's Page of Computer Languages
http://users.bergen.org/~dankna/comp/lang/
some good C links,
PostScript,
P-Code
CGI,
XML,
etc.
-
[computer languages to learn]
``The Year Ahead: Skills trends for 2003''
article by Andrew Swinton 2002-12-27
http://news.zdnet.co.uk/story/0,,t269-s2127185,00.html
Core skills
The 'core' technical IT skills, according to e-skills,
demanded by employers for both contractors and permanent staff
are unchanged from last year except for the addition of .Net this year:
- SQL
- C++
- Unix
- Oracle
-
- Windows NT
- Java
- Visual Basic
- MS Office
- .Net
Contract staff with SAP and Windows 2000 skills were consistently in demand in 2002
...
Small increases in demand have been tracked over the last two quarters
in the following skills areas:
Freehand
[
free trial download
http://www.macromedia.com/software/freehand/
]
, OLAP, Smalltalk, BPCS and EPOS for permanent positions, with
JDBC, JSP EPOS, VPN, VBA and Switches had increased demand for contractors.
...
Soft skills
There is a trend for firms to hire more business-aware staff with
customer focus, client-facing and interpersonal abilities but also
in more technologically specific areas such as:
- Project Management
- Security
- XML
- EAI
- .Net
- C#
-
The Year In Scripting Languages
http://lwn.net/Articles/19959/
| mirror
http://www.vendian.org/language_year/
has good pointers to
the programming languages
Lua, Perl, Python, Ruby, and Tcl.
-
programming language comparison humor:
How to shoot yourself in the foot
in each of 20 different programming languages.
dav_info.html#languages
-
Scripting languages are becoming more and more popular.
Supposedly this "scripting language chooser"
http://www.awaretek.com/langchooseaaa.html
(discussed at
http://developers.slashdot.org/article.pl?sid=03/01/05/1732239&mode=thread&tid=156
)
helps you decide which one to use.
Learning various programming languages
-
http://www.planet-source-code.com/
has lots of tutorials and source code
for many languages (Visual Basic, C++, Java, Lisp, SQL, ...)
-
... I have lots of pointers to learning many specific languages below ...
``programming language was the wrong term,
because they just ain't like human languages.''
-- Edsger W. Dijkstra ? DAV wishes he had more context around this remark.
``world's most flexible programming language''
http://www.everything2.com/index.pl?node_id=37518
compares and contrasts several languages ...
and for these categories gives these recommendations:
object-oriented: Smalltalk.
imperative: PERL, Python, or C.
functional: Scheme.
logical: Prolog.
The follow-ups mention FORTH and PostScript.
....
-
learn Verilog, a hardware description language (HDL).
Some people I know seem to prefer Verilog over VHDL.
-
PostScript
computer_graphics_tools.html#PostScript
-
systems query language (SQL)
-- recc. Thomas Munn.
-
CSS: Cascading Style Sheets
html.html#css
-
FORTH
(some tutorials and more information at
computer_architecture.html#forth
)
(I already picked up a little bit by osmosis,
leakage from other similar languages -- RPL, PostScript --
but I have a little ways to go before I'm fluent
)
-
Java
-
Python
-
Python
http://www.python.org/
I know over two dozen general-purpose languages,
write compilers and interpreters for fun,
and have designed any number of
special-purpose languages and markup formalisms myself.
...
Python ... an exceptionally good design.
...
another useful property of the language: it is compact --
you can hold its entire feature set
(and at least a concept index of its libraries)
in your head.
C is a famously compact language.
Perl is notoriously not...
...
this is an amazing testament to Python's clarity and elegance of design.
There was simply no way I could have pulled off a coup like this in Perl,
even with my vastly greater experience level in that language.
It was at this point I realized I was probably leaving Perl behind.
This was my most dramatic Python moment.
But, when all is said and done, it was just a clever hack.
The long-term usefulness of a language comes
not in its ability to support clever hacks, but
from how well and how unobtrusively it supports the day-to-day work of programming.
The day-to-day work of programming consists not of writing new programs,
but mostly reading and modifying existing ones.
...
Perl still has its uses.
For tiny projects (100 lines or fewer) that involve a lot of text pattern matching,
I am still more likely
to tinker up a Perl-regexp-based solution than
to reach for Python.
...
For anything larger or more complex,
I have come to prefer the subtle virtues of Python...
--
Eric Steven Raymond
http://www2.linuxjournal.com/lj-issues/issue73/3882.html
/* http://www.linuxjournal.com/article.php?sid=3882 */
-
"VPython: 3D Programming for Ordinary Mortals"
http://vpython.org/
-
Python Things
http://lfw.org/python/
- ---------------------
I doubt I will find the time to even start learning the artificial languages below this line.
-------------------------
-
[FIXME: all these languages are probably mentioned at
http://c2.com/cgi/wiki
somewhere --
perhaps I should just dump this information on various languages there
and leave a link from here to a couple of the most relevant pages there.
]
-
``lua''
-
``froth'', very similar to FORTH.
Has ``address register'' to make it fit DSP architecture better.
[DAV: how much of this will fit on a PIC ?]
http://sourceforge.net/projects/froth/
...
Is there any synergy between "froth" and
"dsp_K ... an open-source, real-time kernel and library for digital signal processors (DSPs).
http://dsp-k.sourceforge.net/
...
http://www.linuxdevices.com/articles/AT6489405871.html
?
(This seems to be designed for systems much too small for a full Linux kernal ...
competitor to eCos ?)
-
LAIDBACK
This language was developed at the Marin County Center for T'ai Chi, Mellowness and Computer Programming (now defunct), as an
alternative to the more intense atmosphere in nearby Silicon Valley.
The center was ideal for programmers who liked to soak in hot tubs while they worked.
Unfortunately few programmers could survive
there because the center outlawed Pizza and Coca-Cola in favor of Tofu and Perrier.
Many mourn the demise of LAIDBACK because of its reputation as a gentle and non-threatening language since all error messages are
in lower case. For example, LAIDBACK responded to syntax errors with the message:
"I hate to bother you, but i just can't relate to
that. can you find the time to try it again?"
--
http://www.netfunny.com/rhf/jokes/87/29869.22.html
-
Objective-C
http://developer.apple.com/techpubs/macosx/Cocoa/ObjectiveC/index.html
- Lisp (probably the Scheme dialect).
-
Smalltalk
http://www.squeak.org/
(complete source code freely available)
(Originally developed on the Macintosh,
the ported to numerous other platforms
including Windows CE ... Acorn RiscOS ... Unix ...)
-
the Joy programming language, apparently designed by Manfred von Thun
http://www.latrobe.edu.au/philosophy/phimvt/joy.html
has interesting similarities to Forth and RPL.
(DAV first heard about this in news:comp.sys.hp48 )
It's heavily stack-oriented, and a single item on the stack can be an entire list
or even a program.
-
JavaScript
http://faqts.com/knowledge_base/index.phtml/fid/53/
-
TeX
-
http://www.php.net/
``PHP is a server-side, cross-platform, HTML embedded scripting language.
...
open-source.''
http://www.phpbuilder.com/
-
VRML
-
Pascal (the Delphi dialect)
-
Abundance
http://mindprod.com/article.html
``Abundance: A Data Base language that can run backward in time''
by Roedy Green.
Has some interesting features:
jaunting,
Implicit Array Subscripts,
...
-
Ruby
http://www.ruby-lang.org/
``Ruby is the interpreted scripting language
for quick and easy object-oriented programming.
It has many features to process text files and to do system management tasks''
(The interpreter is distributed under GPL or under an Artistic license).
-
learn MHDL, a hardware design language
originally focused toward the modeling of microwave systems,
but can also model more typical analog circuits.
Largely based on VHDL (which can only model digital circuits).
Understands track parasitics.
Developed by Intermetrics.
Or learn some other design tool just as powerful
(do any exist ? Analog Verilog (Verilog-A), also known as IEEE 1364 ?
Analog VHDL (VHDL-A) ?
)
-
Ada
http://www.cl.cam.ac.uk/~mgk25/ada.html
...
GNAT, the GNU Ada
(see the ``Ada information'' section of
http://www.gnu.org/software/gcc/readings.html
)
-
Parallaxis-III - A Structured Data-Parallel Programming Language
http://www.ee.uwa.edu.au/~braunl/parallaxis/
"Parallaxis is a structured programming language
for data-parallel programming (SIMD systems),
developed by Thomas Bräunl"
-
Pop-11
http://www.cogs.susx.ac.uk/users/adrianh/pop11.html
-
Rebol
http://www.rebol.com/
-
Modula-3
-
SNOBOL4+
http://www.computek.net/public/gep2/snobol4.html
|
http://www.snobol4.com/
-
http://www.Zope.org/
is apparently used to build dynamic websites
a list of projects that sound like fun,
but I have zero time to invest in right now:
(If anyone is interested in me doing any of these,
or if anyone else wants to do / has done these, I'd like to hear about it)
-
Connect a telescope to my computer.
Use it to search for pulsars and/or lasers (optical, IR, etc).
Can the doppler effect help discriminate
earth-based vs. extraterrestrial sources ?
If I come up with any clever ideas,
the folks at
Optical SETI at Harvard / Smithsonian
http://mc.harvard.edu/oseti/
|
http://www.cnn.com/2001/TECH/space/01/22/telescope.alien/
would probably be interested.
"The fastest pulsar found so far, however, spins at only about 600
revolutions per second." -- 2000-02-17
DAV: Do astronomers really have equipment for finding faster pulsars ?
todo: build something to find pulsars.
(I think careful manipulation of pulling charge across CCDs
and then using FFT to look for pulsars
would be interesting and low-cost
compared to brute-force high-speed cameras).
Theory predicts that
"newborn neutron star ... typically 50 rotations per second"
"matter orbiting a neutron star can have a period
as short as a millisecond."
Al Kelly's CCD Astrophotography Page
http://www.ghgcorp.com/akelly/
todo: search
http://slashdot.org/
for "pulsar".
unsorted misc
-
build a
flying robot
robot_links.html#flying_robots
.
-
make model trains that don't need track,
they just follow lines of tape put on the floor.
This way you can put arbitrarily complicated
tracks on the dining room floor,
and when it's time to eat, you can *leave* them there
(only have to put away the train itself).
Perhaps have it sense little colored stickers
just before each intersection
to choose which way to turn ?
-
assemble a set of tools and plans that "has closure"
3d_design.html#closure
.
-
Engineers
Without
Frontiers
http://www.ewof.org/
seems like a worthwhile organization.
"Engineers Without Frontiers (EWOF)
will provide the engineering skills of volunteers throughout the world
to non-profits and others who are doing humanitarian work
but lack the funding to pay for professional engineering services.
The project is somewhat modelled after Doctors Without Borders."
-
consider building a magnetoelectrohydrodynamic water pump.
-
It would be cool to implement
Miss Rosette
http://www.apple.com/education/LTReview/current/elephant/elep8.html
a "word processor" for this visual language
logographic language.
-
Considering helping re-design the
Taniwha Flight Computer
schematic.html#flight_computer
-
http://piclist.org/techref/ideas.htm
has some interesting and strange ideas for projects to do.
-
"Which language should programmers seek out and learn?"
1. Learn (or read) at least one every year or two so you don't get pigeonholed into the limitations of the language you use every day. Different languages promote different approaches - and different approaches/designs are the toolchest of this industry.
2. At least try out one functional language (Lisp/Scheme), one OOP language(C++/Java), one procedural language. None is better than the other, they have different takes on the world and shine at solving different types of problems.
3. Sticking with one language (at the total exclusion of others)limits your output and stunts your learning curve. Looking at more than one also reminds you what languages are for -- expressing more succinctly and clearly the instructions you want the computer to heed.
-- Bjarne Stroustrup 1995 (slightly paraphrased ?)
http://slashdot.org/developers/01/12/01/0110233.shtml
-
[languages]
``java''
(c) 1997-2000 Jamie Zawinski
http://www.jwz.org/doc/java.html
``I think Java is the best language going today, which is to say,
it's the marginally acceptable one among the set of complete bagbiting loser languages that we have to work with out here in the real world.''
-
[FIXME: move natural language info to idea_space.html ?]
``The Translator's Home Companion is intended to serve as a focal point of information about resources available on the Internet and elsewhere for translators, interpreters, and all those interested in the arts and crafts of foreign languages.''
http://www.lai.com/lai/companion.html
-
todo: build some of the more interesting circuits / tools in
schematic.html
Started: 1997 Jul 28.
Original Author: David Cary.
Current maintainer: David Cary.
This page
has
backlinks
David Cary
d.cary+todo.html@ieee.org.
Return to index
// end
http://david.carybros.com/html/todo.html
/* was http://rdrop.com/~cary/html/todo.html */