April 21, 2017: Here's a Delphi demo, HeapsPermute, of an algorithm developed by J.R. Heap in 1963 which generates permutations of arbitrary data items. It is quite efficient because it swaps only 2 elements for each permutation generated. The disadvantage may be that that there is no apparent order in the generated permutations. Search "Heap's algorithm" on Wikipedia for more information. I plan to use the algorithm in a future "Made from scratch" puzzle solver which doesn't use the existing DFF Library.
March 28, 2017: We're back!. If you received a "Service Unavailable" message in the past two days, no worries. The host site maintenance guys mess up and cause this about once a month. It's usually only a couple of hours, but this time it was 2 daysL. I'm guessing that the root cause is that the DFF site runs under FrontPage, a terrific website builder abandoned by Microsoft years ago with no suitable conversion aids or equivalent replacement available. Manual conversion to something less usable is an easy task to defer, so I'm limping along with the old, unsupported builder program and not many choices for finding another host. After careful cost/benefit analysis, my conclusion is that what happens in the future is a problem to be addressed in the future.
In the meantime, I discovered a small bug in an old beginner's level program which generates odd order "magic squares" up to 51x51 using an ancient algorithm. Magic Squares V1.1 corrects a grid sizing problem for the 3x3 square.
March 19, 2017: CutList Version 4.05 posted today corrects a few misspelling and truncated text errors caught by a couple of sharp eyed users. Thanks to Karson and Anthony for taking the time to let ne know.
March 6, 2017: Several years ago, a buddy of mine took on the design and implementation of a children's water fountain with multiple nozzles squirting at random intervals and durations. I created an animated simulation to illustrate what it might look like. The result was posted here in the "Delphi Techniques" section as an example of how to draw on a graphic control. (a "TNozzle" in thus case). You can view a picture of the resulting real "Splash Pad" here.
A Delphi programmer recently sent me
his attempt to move the TNozzle class to a separate unit and found
that the his drawing attempts were displayed in the wrong place. The
solution was to draw on the canvas of the TNozzle Parent
ShapePaint Version 2.0 demonstrates how to do this.
February 27, 2017: A programmer trying to convert Latitude/Longitude coordinates to points on a Mercator projection recently wrote asking for help. I pointed him to our Traveling Salesman Program which uses a standard map with locations assigned Latitude and Longitude coordinates and computes the shortest distance to visit all of a selected set of locations. However the program would not compile with Delphi versions after Delphi 7. Traveling Salesman Version 3.1 posted this week uses compiler directives to determine Delphi version and generate code which should compile under old or new Delphi versions. As usual when a program is revisited, text errors were corrected and forms layout and displays improved over the previous version.
February 14, 2017: I re-posted the clean copies of the five corrupted program executables removed 4 days ago:
February 11, 2017: It looks like Google rescanned the website last night and gave us the all clear "Get out of jail card". All files can be downloaded today by any browser without warning messages. Whew!
.February 10, 2017: Some users have been receiving "Malicious website" warnings recently when they try to download zip files containing executable files from DFF. The warnings are (were) triggered by 5 infected files. For now I have removed these files: DTMFReader.zip, InstantInsanity.zip, Missionaries.zip, Syllables,zip, and VolumeControlDemo.zip. The infections occurred on the website and nothing has shown up as infected on my computer. The source code for these 5 programs is not infected and still available on the website. Browsers should remove the warnings when they get around to scanning the website again. Until then, Google Chrome will actually issue a false positive for ANY executable download attempt, declaring it to be infected when it is not.
It's disturbing that these infections could occur with no symptoms. I have changed my master password for the website and will be checking daily for any re-infection.
In the meantime, if you want the executable for other programs and receive "Malicious site" warnings , a user pointed out a free anti-virus scanner VirusTotal, which will scan and verify any link. There are a number of free, easy to use, "website malware scanners" available online. The most useful ones actually download and scan files for virus infections. These report the website as "clean" today. Others merely check blacklists and report the website as infected when it find the URL on any list. Those are still erroneously reporting the website a infected based of the list created by Google Chrome. Hopefully we will soon be given a pardon by Google.
February 5, 2017: It's been 10 years, since my last visit to the Catapult Simulator. A grandpa is currently using the program with his grandson to design and build one that will throw a Hershey's Kiss 31 feet! The program needed a few tweaks to handle a projectile weighing a fraction of an ounce, but Catapult Simulator Version 2.2 should do it. For display purposes, here's a sample design that throws a 1 ounce weight about 8 feet. 1/5 ounce Kiss would go much further.
2, 2017: One of the shortcomings of prior versions of our
Square Word Grids program was their inability to solve 5x5
problems except when it generated them. I'm embarrassed to admit
that I forgot about rewriting the program in October 2015, and
renaming it to "Double Word Squares". The good news is that
the the older versions could not solve this recent Mensa Calendar puzzle
that today's posting does, so the January coding and debugging hours
were not in vain. Check out
Square Word Grids Version 3 to see if you are as smart as the
January 24, 2017:
In 2002 I posted a simulation of a "machine" that played TicTacToe with 304 matchboxes representing all unique grid configurations and colored beads for each available cell in that configuration. The machine, MENACE, was invented by British Researcher Donald Michie in 1960. I've forgotten the entire expansion of the MENACE acronym, but the "NAC" part stands for "Noughts And Crosses", the British name for TicTacToe.
The machine plays first and plays X's . It learns as games are played by increasing the number of beads in positions with X's in each box (moves are boxes) which led to the win and taking beads away for losing box sequences. I was contacted last month by a programmer wanting to investigate alternative learning algorithms. That led me revisit the program, which led to TicTacToeMachine Version 2 posted today. The new version has more options for watching the machine learn and more strategy choices in "AutoPlay" mode when the program is playing the role of opponent.
January 1, 2017: HAPPY NEW YEAR!!
December 21, 2016: A recent "simple" logic problem from my trusty Mensa Puzzle calendar caused me fits when tried solving it with my Logic Problem Solver program. The problem "Thanksgiving.prb", contains the clue "Chris ate more turkey than the person who ate the slowest". In my transcription from the calendar, I typed "fastest" instead of "slowest" which made the problem unsolvable. After many hours of looking for the non-existent program bug, I finally went back to the original and discovered the real problem (me!). Logic Problem Solve V5.7 posted today does a better job of diagnosing invalid rules as they are entered. I wouldn't detect my typing errors, but might shorten the time before rechecking inputs,
December 12, 2016: TInteger is Delphi class supporting mathematical operations on arbitrarily large integers. Methods were added today to allow these integers to be converted to number bases other than 10. (Remember from middle school that each position in decimal represents a power of 10 -- the 1's column, the 10's column, the 100's column, etc. Binary numbers, base 2, have the 1's, 2',s, 4's, 8''s column, etc.). Any integer , even one with thousands of digits ,can now be converted to or from a string in any base from 2 to 256. More information at this Big Integers page. I have no good reason for doing this except perhaps just for the "fun of it".
December 6, 2016:
Time marches on, whether we welcome it or not. With Christmas fast approaching, I decided to get any postings for this month out of the way early. Here's the first/
Several months ago, I posted a program to solve a puzzle type
which requires placing letters in a grid so that no two alphabetically
adjacent letters are in adjacent grid cells, horizontally, vertically, or
NoAdjacentNeighbors, V2.0 allows solving the first version of this puzzle
type that I've found that is not based on a 4x4 grid; This one is
5x3 and motivated me to update the program to allow multiple puzzle sizes.
I also added the ability to name, save, and restore puzzles. (After
reentering this one the first dozen or so times while testing, I decided that
saving/restoring was a good feature to have!)
November 16, 2016: I've been working on testing and implementing some changes triggered by the availability of the free Delphi 10.1 Berlin (D10) compiler download. It has many enhancements over Delphi 7 (D7), and is a good candidate for new programs. The bad news is that many of the several hundred D7 based programs on the site would require at least minor modifications to compile on D10. Many of the differences are not new, but previous Delphi versions had price tags in the hundreds of $. Converting D7 source code to more recent versions is not something I look forward to doing "for fun". So here's the evolving approach and what I've changed so far:
A viewer recompiled our Akerue word finding game under D10 and reported that it compiled but did not recognize words entered by the user. The problem was that our dictionary program required changes to account for a new default string format using 16 bit rather than 8 bit characters; necessary for languages non-Latin alphabets, but a pain in the you-know what for us. The library unit which handles dictionary access has been updated to use 8 bit character strings and Akerue is working for compilation under D7 or D10. The updated library can be downloaded from that page and also from the other big dictionary user, WordStuff, which is wrapper for six other word oriented puzzles. I also updated our Delphi 7 - Delphi XE Differences page to include some notes about the D10 conversion steps recognized so far.
October 30, 2016: What does it take to be a good problem solver? It's a question that has interested me for years, primarily because the world needs more of us J. Farmers, detectives, mechanics, doctors, scientists, artists, and programmers are just some of the occupations where success is closely related to problem solving skills. I'm sure of some of the common characteristics (fact gathering, planning, divide & conquer, persistence), but there must be others. I should add "welcoming constructive criticism" to the list. I find it difficult to think about problem solving while doing the problem solving. Today's program, Grid Subdivisions, is a first attempt at documenting my processes, for programmers at least.
October 24, 2016: A viewer reported today that our CPU Speed demo program is being flagged as a virus or malware by some systems (including mine when I checked). The timestamps and size on the site match my local version, so I'm quite sure that it is a false positive for the imported item. I've left the source download in place but removed the executable download link. The source can be recompiled and run locally with no problems. Non-Delphians will have to find another source. Increased security rarely makes everyday operations easier, but it is the price we pay to avoid the catastrophic.
October 23, 2016:
Two programs were updated today based on today's Mensa Calendar puzzle asking for 3 and 6 letter synonyms using all 9 letters in the word CARPOOLED. My Unscramble program is part of my favorite word puzzle solver collection, Wordstuff3, and should have been able to solve it, but did not. It turns out that the three letter synonym is PRO which our dictionary categorizes as an abbreviation which are not searched by default. Whether it is may be debated, but Unscramble had a hard-to-find option to include abbreviations which led me to cheat and peek at the answer. Selecting non-standard words like abbreviations is now much simpler with Unscamble V2, In the process of researching the problem, I also corrected some text scaling problems in the DicMaint dictionary maintenance program which allows words to be categorized as Abbreviation, Capitalized, or Foreign words as well as performing other maintenance tasks. Downloads for both can be found on the WordStuff3 package description page.
October 21, 2016: Although I never learned the root cause of the authentication problem with the website, it seems only to have affected files uploaded during a period of two of three days around the 15th. Most files I could repair by deleting and re-uploading pictures or page data. A couple required intervention by EasyCGI support. If you have trouble accessing pages or files on this website, please let me know.
October 15, 2016: EasyCGI, the host site for DFF, has modified something in their structure which is causing problems with accessing this website. It is erroneously asking for authentication (Username and Password) when browsing to a page. The problem seems worse with Internet Explorer and frequently goes away if you just click the "Cancel" button in the popup window several times. There may be a similar problem when attempting to download program executables or source code zip files. Google Chrome seems to work more often than Internet Explorer or Edge. All browsers seem to be missing embedded pictures on pages, at least in Windows 10. I'm going over now to check the situation on other computers to check Windows 7 and 8.1. I'll post again here as things develop or problem gets resolved .
October 6, 2016: The fall quarter newsletter was sent to subscribers a couple of days ago. It's available here in case you missed it.
Here's significant news that did not make the newsletter: The free "starter" version of Delphi has been extended by Embarcadero!. Thanks to viewer Mac for the heads up with the info. This is the first free release that I recall since Turbo Pascal became "abandonware" in 2002 and, according to Wikipedia, an Explorer version in 2005. I wasn't excited about these because they did not include the compiler source code which was (and is) a valuable learning resource. The new free release is at Delphi 10.1 Berlin Starter Edition and still has the "no commercial use" restriction but does include the source code! Mac also says that it is only available in the 32 bit version which is fine for most users, including me. They do say "Offer may be withdrawn at any time", so don't delay if you want to check it out.
The What's New Archives
Copyright © 2000-2017, Gary Darby All rights reserved.