Home  Introduction  Newsletters  Programs  Feedback


August
6, 2008
They say that time seems to go by
faster as you age because each month or year is a smaller part of your total
life experience. I'm not sure of the explanation, but it does feel like
summer is flying by. The two months in
We have had a bumper crop for blueberries this summer. I've picked enough gallons to convince me that the high prices in the markets are probably justified. I'll be pruning the bushes heavily this winter to reduce the quantity but hopefully increase berry size for next year. The blueberries are about gone, but the wild blackberries are staring to ripen. Just as good to eat, but much more painful to pick! We'll be sharing the berries with our local bear, the deer, and even the turkeys. All in all, it is good to be home again doing home things, including getting back to programming. Here are links to the projects mainly since our return home.
April 8, 2008: One week before our big trip to I took time to update our
Age Problem Solver
program today to include the current Mensa
Calendar puzzle and to handle a couple of wording variations of previous
puzzles. I also added two buttons to help test and debug the
program. One button reloads the parsing tables without restarting the
program and the other to "backtest"
all available problems and display a summary of results. June 22, 2008: We're back! Home again after 60 days of
European travel. Stops included I had a few dozen DFF emails waiting for me
when we got home. I think I have answered those needing responses,
so if you wrote and did not receive a reply, please write again. One question relating to the
Monitor
off program led to a small change which I tested on my Dell XPS
laptop. Monitor Off uses the Pause key to turn the monitor off or on, but
the XPS documentation did not specify what key combination is needed to
generate the pause key code. I posted
Key Scan Codes
program today as a result of the investigation. It displays key values
for pressed keys which generate a character, or key names for those which do
not. By the way, on Dell XPS laptops the Fn + Insert key combination
generates Pause. Also by the way, it looks like Monitor Off is now
working even under July 1, 2008: A small change to our
Cutting Stock
program was posted this evening. When multiple stock lengths were
available, the summary results grid could list the stock amount used and
cost in a row that associated it with the incorrect length and cost per piece
data. The problem has been corrected.
July 3, 2008: Generating a magic square of a given size is
not too difficult, especially if it has an odd number of cells per
side. Generating a lot of them is not so easy. A viewer wrote
a while ago asking about computing the amount of water that a magic square
would hold if each cell became a column with its height equal to the value of
the cell. Might be an interesting problem to work on, but we need some
samples for testing. Today's first attempt,
PanMagic
Squares, will generate 115,000 or so 5x5
squares with a special "panmagic" property. There are reported
to be a few million order 5 magic squares altogether. Hmmm, someone must
know how to create them all. Oh, by the way, the commonly reported
total number of different 5x5 panmagic squares is 28,800, so I may be all
wet here. I'm sure to hear more about this. July 12, 2008: A minor update to the DelphiForFun Library
file,
DFFLibV11.zip,
was posted this evening. with a few changes. Some of
these have been previously applied to version 10 without notice but it seemed
time to catch up and document them. DFFLIBV11 contains the
following changes: ·
In the DFFUtils unit a new
routine, IntToBinaryString, has been
added to produce a display (printable) binary representation of an integer. ·
UTGraphSearch unit
cures a memory leak with a new "Clear" method that frees
nodes when it is called. ·
The UBigIntsV3 big integers
has a corrected Mult procedure to multiply a
big integer by a 64 bit (Int64) integer. In the old version,
negative smaller Int64 integers (less than 2^{32}1) were treated as
positive. ·
In the Mathslib unit the NbrFactors function (number of factors for an
integer) returned an incorrect value in some cases. Long time contributor
Charles Doumar found and submitted the corrected version. I'm working on a new story problem solver
which reads the text and solves "digit relationship" problems like: "Find a fivedigit number
in which the first digit is double the second, the third digit is two less than
the second, the fourth digit is the sum of the second and third, and the last
digit is one less than the first. The sum of all the digits is 19." The program is running for half a dozen
samples, but I still need to add a few more and do some documentation.
Stay tuned. I watched our 4 year old grandson continuously
revising and honing his language skills all this week. If only I could
get my language processing programs do the same, then we would have something
special! July 16, 2008: As a programmer, I have a standing interest in
how our brains get programmed; i.e. how we learn. Any intellectual
problem I can solve, I should be able to teach my "computer
brain" to solve. This has usually been the case, but after 40+
years of programming, the difficulty in doing so still surprises me.
Today's program
Digital
Position Problem Solver is the latest example. It takes text
story problems with phrases describing the relationships between the digits of
an integer (e.g. "the first digit is two less than the second") and
figures out what integer is being described. I was testing
the 11th problem before realizing that my "teaching" had overlooked
something. The problem sentence was: The
fourth digit is onefourth of the fifth. Oops; "fourth"
can be a position and a denominator! It is clear to us humans that
the relationship being described is "Fourth =
1/4*Fifth". Problem 11 is still unsolved by the program
until I figure out how I know how to solve it and then how to
"retrain" the program. No wonder I love this
stuff! July 27, 2008: Today's program plays with converting Latitude/Longitude
angle coordinates on a sphere to X/Y distance coordinates on a flat map, i.e.
the computer screen. I used the Mercator Projection mainly because
there is a good article on Wikipedia describing the math involved and because
there are Mercator Projection maps available online for testing.
Mercator Demo
allows the user to load small maps, click on two
known points to tell the program about the scaling, and then click the map to
see its Lat/Long coordinates or enter known location Lat/Long coordinates to
see the point on the map. July 31, 2008:
The standard set of 28 dominoes from
blank/blank through 6/6 have been placed randomly on an 8x7 grid and
their outlines erased. The puzzler's task is to replace the outlines,
i.e. to redraw the 28 dominoes. . Check it out at
Domino Search. August 3, 2008:
Intersecting
Lines is a program designed to test a LinesIntersect
function designed to return a "true" or "false"
condition based on whether two given line cross each other. Changes were
posted today to correct a rare error condition where nonintersecting lines
were reported as intersecting. Library file DFFLibV11 which
contains the UGeometry unit which contains the LinesIntersect
function was also reposted. Another example where my 4 year old grandson
can beat my complex algebra based program in deciding whether two lines touch
or cross each other! How do we do it?
Age is an issue of
mind over matter. If you don't mind, it doesn't matter. ~Mark Twain
To subscribe or unsubscribe from this newsletter, visit http://delphiforfun.org/newsletter.htm
244,500 home page visitors since Sept 2000. 401,000 program downloads in the past 12 months! 
