|

Looking for Booksearch?
If you arrived at this page
while trying to get to our school reading program
book/quiz search pages, click here.

or to help support DFF? If you benefit from the
website, in terms of knowledge, entertainment value, or something
otherwise useful, consider making a donation via PayPal to help defray the costs.
(No PayPal account necessary to donate via credit card.)
Transaction is secure.
If you shop at Amazon anyway, consider
using this link. We receive a few cents from each purchase.
Thanks.

The index page for all Programs
on the site?

The DFF Play CD?
Zipped file DFF
Play CD.zip contains executable version of about 75 of the 200+ programs from the site,
mostly those I particularly liked or thought would be of widest interest
for non-programmers. The file is rather large, about 20mb..

Anything
else?

Not a programmer (yet)?
That's OK - the executable
version for any puzzle or game you find here is available
for download. Just scroll down to the bottom of most any
description page and you'll find a "Download executable"
link. Downloaded programs are in "zipped" format to
reduce size and may require an "unzipper" program
unless you are running Win XP or later. Here's
a link to a free one.

Check out the Most
Popular Downloads from DFF (updated weekly)

First
time visitor?
Take
a look at the Introduction page
to see what this site is about

Notes for
Teachers

|
WHAT'S NEW


January 5, 2009: Holidays are over for now,
time to get back on the diet and to get back to work, physical and
mental. For the mental part, today's
Four-Bar Linkage program is
the first version of a mechanical linkage simulation that seems worthy
of posting. A search of DFF for "linkages" produced only one
hit before today. In an August 2002 Newsletter I wrote
"I've
been working on a mechanical linkages simulator program this week, but
it's going to take at least another week to get anything even close to
working." Guess
I underestimated the complexity of that task!. It has taken 60+
hours to get today's posting which only scratches the surface of the
"mechanical linkage simulation" topic. I'll be working
on simpler projects for awhile to let my brain recover from the strain.
December 27, 2008: We are home from
spending Christmas with our daughter and a few of the grandchildren.
Besides being humiliated by a 4 year year in a "Pacman" competition, I
have a grand assortment of new reading material which should last for
the next several months.

I finished up and posted
Monge's Circle Theorem demo
program this morning illustrating that, given 3 circles, the
three pairs of external circle to circle tangents do indeed intersect on
the same straight line!
December 19, 2008:
Merry
Christmas!
One last update before we take off to help Santa Claus
with his deliveries. I ran across Monge's Circle Theorem the
other day and decided to check out its surprising conclusion about pairs
of tangents of 3 circles. Using the trusty "divide and
conquer" problem solving technique, today's posting is
Version 4 of our Geometry demo
program which tests some new line and circle functions leading to
the one to find the Circle-Circle exterior tangents needed for Monge. The demo
includes brief descriptions of the algorithms used to construct the
tangents.
 |
 |
 |
|
1. Circle-circle intersection |
2. Point-Circle Tangents (using
circle-midpoint circle intersection) |
3. Exterior Circle-Circle
Tangents (using point-circle tangents) |
December 12, 2008: One of the first
programs posted when I started DFF 8 years ago solved the problem of
finding the path from left to right through an array of numbers
with the smallest (or largest ) sum. The original version used
recursion, examining every possible path to find the largest and
smallest. A sharp viewer recently pointed out that a much faster
algorithm existed. Sure enough,
Graph Traverse Version 2
posted today adds the new algorithm and solves problems in milliseconds
instead of seconds.

December 8, 2008: Grandson Nathan, who's
now 4, is into mazes During his visit over the Thanksgiving
holiday, I generated some simple and some not-so-simple mazes for him
using my Maze Generator Program.
One was the "NATHAN" maze made up of the 6 letters connected into one
long maze with a solution path over 600 rooms long. He hasn't
solved it yet; in fact I discovered that rooms were too small when
scaled onto a single printed page and it did not print very well across
multiple pages. Version 3 posted today improves the
printing and scrolling of large mazes. Grandma just pasted up and
mailed him an 8 x 30 inch version!
I also added support for
keyboard arrow keys in addition to mouse click/drag movement to trace
out a solution path. Keys work better for 4-year olds!
December 5, 2008: Today I posted
Version 3 of our CopyFolder
program which copies all or selected mask files from one location to
another. There's an option to replace files in the destination
only if the source date is newer, but the date test was based on file
creation dates. Today's update changes the test to use "Last
modified date" which makes more sense in most cases. I also
corrected a situation where the chosen destination folder was a
subfolder of the source folder and the option was set to copy subfolder
files. Oops - this set up a loop situation treating newly copied
files as source files and copying them over (and over and over ...).
A test now ignores the destination folder file when selecting files to
copy.
December 3, 2008: A small change to the
Intersecting
Lines test program today. Version 3.1 fixes a problem
where lines with large X values were not redrawn correctly.
We now have 7 updates posted since the original version in 2001,
probably more updates that any other program on the site. It's a
good example of how competent our visual image processing system is
compared to digital processing.
November 25, 2008: Time for one more little
"Delphi Techniques" entry before Thanksgiving holiday here on Thursday.
Here's a program which knows how to
Play MP3 Files
based on which sentence within an Rich Edit control is clicked.
November 23, 2008: Back to the fun stuff after
our web-site woes.
Here is one for Delphi programmers - a
Fast Highlighting demo program
which avoids modifying the formatting attributes of a rich edit control by
hooking into the windows procedure which paints the visible window and
adding the highlighting as each window is displayed. Since we
only repaint highlighted portions of the window, we can't change the
width of the text, but within that constraint, it has the advantage of
being very fast.
November 22, 2008: After 10 days of work,
most of the items broken by EasyCGI's migration of the website are
working again, albeit not as satisfactorily as before. They seem
not to have spent much time considering, and zero time testing, the
impact of the migration on users in spite of the promises otherwise.
A few examples,
-
Besides not checking or notifying me about the
policy change to stop allowing CGI executables, they:
-
Changed log file location and format without notice
breaking my internal application that tracks website downloads. They
are still saving the log files zipped with ".gz" suffix and with every
archived log file having the the same file name! I can't make them
understand that ".zip" is the format supported natively by Windows
and, if they must use some Linux program format, they should at least
use unique file names!
-
Eliminated "email pointing" which required setting up a new
email addresses with no way to forward emails from old to new mailboxes ,
-
Changed the "last modified" dates all of the migrated files
to the migration date (November 11), so I can longer tell when my last real
changes were made.
All-in-all a very disappointing experience which appears
to have been "planned" and implemented by the technicians.
Nothing against the technicians, I suppose I am one, just one with 40 or 50
years of experience on most of those guys. (Check
http://www.vistainter.com/reviews/E/easycgi.com/ or a number of other
sites for reviews by people who much worse off than I; people trying to
make a living using EasyCGI. People who depended on them are being driven
out of business with migration horror stories worse than mine.)
November 16, 2008: It
appears that the booksearch application and my form email applications
will never run again on our current host ,EasyCGI.com.
Those apps represent my few forays into online programming a few
years ago. They used Delphi Internet components which ran as
executable files. Executables represent some hazards to host
servers and so it is difficult to find hosts willing to run them.
I don't blame them - I do blame EasyCGI for not vetting my my
applications before migrating and breaking them without prior warning.
In the long run, I doubt
that I'll be motivated to learn .NET, ADO, ASP.NET, CDONTS, and a bunch
of other acronyms and concepts that hold little interest for me.
If anyone out there knows this stuff and wants to volunteer to convert
them to one of the "safe" technologies, I would be grateful.
Until then, I am trying to get EasyCGI to fix a FrontPage parameter
problem that would let the Newsletter and Feedback pages work again.
I have written a version of the AR Booksearch program that will run on
user's PCs after they download the searchable file for a school. And I have a really neat version
of an Accordion Solitaire card game
program which was interrupted by the migration mess that I would
like to get back to.
November 12, 2008: Email
appears to be working again but the web pages that execute programs (the
"feedback" page, the Newsletter "subscribe" page and the Booksearch
"Search" pages) are broken. I have set up temporary email
addresses for use for feedback and subscriptions, but I do not have
a workaround for the AR Booksearch pages. I think it just a matter
of our host, EasyCGI.com, setting the correct permissions to allow the
programs to run . I have submitted a trouble ticket for them to do so.
Hopefully we can get it resolved today.
November 11, 2008: (11:00AM EST) Our host
site, Easycgi.com, is migrating DFF to a new server. In the process,
email has stopped working, temporarily I hope. They are working
to fix it, but in the meantime, if you get "Recipient rejected message"
errors, try again later (or tomorrow). It also appears that some website
formatting has been lost. I'll post again when things get back to normal.
November 10, 2008: A couple of utility program
updates were posted today to satisfy user requests:
Copy Folder Test
Version 2, copies files matching a file mask from a given input
folder to a given output folder. It is now
possible to ignore the folder structure for files from
sub-folders of the selected input folder and to copy all files directly to
the same single output folder.
Large
Files Version 3 lists the 100 (or other number) largest files on
specified disk drive. This version adds date modified information and
the ability to save the list to a CSV text file for importing to Excel or
elsewhere. .
November 1, 2008:
How many times does the digit 1 appear in all of the integers from 0 though
999,999? More times than I thought when I tried to answer the
question manually. Here is a simple 30 line Beginners Delphi program,
HowManyOnes, that illustrates two
ways to answer the more general question (How many occurrences of any given
digit within any given range?). By the way, if you download the source
file, you'll find about 90 lines of code but 1/3 are blank or comment lines
and 1/3 are generated by Delphi itself as controls used were dropped on the
form.
October 21, 2008: I try to average posting a
new program or version each week. Other chores have limited my spare
time this week, but yesterday's
"Puzzler" from
the PBR radio show, "Cartalk", came to the rescue with a problem that
could be solved in a couple of hours of programming. It would probably
take less than that to solve it manually, but programming is more fun!
Here's the puzzle:
Sally invited 17 guests to a dance
party at her estate in the Hamptons. She assigned each guest a number from 2
to 18, keeping 1 for herself. At one point in the evening, Sally
noticed the sum of each couple's numbers was a perfect square. Everyone was
wearing their numbers on their clothing. The question is, what was the
number of Sally's partner?
Go to the Perfect
Square Dance page to download the source or executable that solves
the problem or to read about my approach to solving it.

October 16, 2008: The "Josephus problem" requires
that the player position himself so that he is last selected in a circle of
N soldiers when every Kth "soldier" is eliminated starting the
count at some known position 1.
Josephus Version 2, posted today, adds the ability to solve the
inverse problem. The final position is known along with N and K, and
we must calculate where to begin the count for the selection process.
(Left: To make position 6 the final selection in a circle of
7 Smileys when selecting every 4th, start counting at position 5. So
far numbers 1, 5, and 3 have been eliminated. in that order The rest of the
elimination sequence is 2, 4, 7, and 6.)
October 9, 2008: Last week's Numbrix™ posting
led to this week's project, a Numbrix™ Puzzle
Generator. This link is to the Numbrix™ page; the generator
is available a a separate download links at the bottom of the page.
The program implements a "connect the dots" generator which finds random
paths connecting all points in a square array with all turns at right
angles and no crossings. By numbering the dots and pre-defining
those to be shown a clues, a file can be saved in the format expected by our
Numbrix™ solver.
October 4, 2008: Here's an update to our
program that calculates the shortest distance between two given points on the earth's
surface.
Lat-Long Distance Version 2 adds an implementation of
Vincenty's algorithm (Vincenty's Inverse) that calculates distances with an
error of less than 0.001 inch! More significantly, the
program also implements the original version of the algorithm (Vincenty's
Direct) that calculates end point coordinates for a great circle route given
a point together with an initial bearing and a distance.
The WHAT'S NEW Archives
(Click to expand)
-
2008
-
2007
-
December, 2007
-
November, 2007
-
October, 2007
-
September, 2007
-
August, 2007
-
July,
2007
-
June,
2007
-
May,
2007
-
April,
2007
-
March,
2007
-
February, 2007
-
January,
2007
-
2006
-
December,
2006
-
November,
2006
-
October, 2006
-
September, 2006
-
August,
2006
-
July, 2006
-
June, 2006
-
May, 2006
-
April, 2006
-
March,
2006
-
February
2006
-
January, 2006
-
2005
-
December, 2005
-
November, 2005
-
September, 2005
-
August, 2005
-
July, 2005
-
June 2005
-
May, 2005
-
April, 2005
-
March, 2005
-
February, 2005
-
January, 2005
-
2004
-
December, 2004
-
November, 2004
-
October, 2004
-
September,2004
-
August, 2004
-
July, 2004
-
June, 2004
-
May, 2004
-
April, 2004
-
March, 2004
-
February, 2004
-
January, 2004
-
2003
-
December, 2003
-
November, 2003
-
October, 2003
-
September, 2003
-
August, 2003
-
July, 2003
-
June, 2003
-
May, 2003
-
April, 2003
-
March, 2003
-
February, 2003
-
January, 2003
-
2002
-
December, 2002
-
November, 2002
-
October, 2002
-
September, 2002
-
August, 2002
-
July, 2002
-
June, 2002
-
May, 2002
-
April, 2002
-
March, 2002
-
February, 2002
-
January, 2002
-
2001
-
December, 2001
-
November, 2001
-
October, 2001
-
September, 2001
-
August, 2001
-
July, 2001
-
June, 2001
-
May, 2001
-
April, 2001
-
March, 2001
-
February, 2001
-
January, 2001
-
2000

|