What's New -  March, 2005

[Home]

 

March 31, 2005: The site has been reorganized somewhat this week in order to implement a new DFF Library section of the website. The library will hold non-visual units that are used in multiple programs here. Finding and updating all of the zipped source files when one of these general usage units changed was getting to be a hassle. We'll be migrating these units to a single library zipped file over time. It will require a separate one-time  download if you want to compile the programs, but I'll  identify those cases clearly.  The first unit moved to the library is TIntList, the Integer List component

In another step to simplify maintenance,  all indices of programs are now computer generated.  This required some changes to the navigational structure of the site.  Use the feedback link to let me know if you see any weird pages (one of the symptoms if I messed up is a missing page title, there is also the chance that some pages that were never completed have been indexed). 

March 28, 2005:  An alert viewer found  that the input  integers to Countdown Plus problems were limited internally to the range of -128 to +127, although larger values were accepted and displayed in the result as though everything was OK.  It wasn't, but it is now.   Input values can now be in the range -999 to +999 and target values in the range -9999 to +9999, for both to the user and the program.   

March 20, 2005:  I spent most of the week working on Project Euler problems, down to three remaining unsolved.  It is addictive, and somewhat frustrating for a "smart guy" to see that 20 other people have solved a problem that you haven't cracked (yet).  But oh, what a rush when that "Congratulations" message pops up!   One by-product of the work is today's posting over in the Math section;  a demo of Dijkstra's Shortest Path graph searching algorithm.  It's a clever and efficient way to find the cheapest (shortest) way to get from one place to another if you know the price (distance) between all of the intermediate way points.   It can solve graphs with several thousand nodes and connections in under a second!   To help understand the algorithm, the demo even describes the steps as it finds the desired path for a small randomly generated graph.        

March12, 2005: CutList continues to increase it's lead as the  most popular download from DFF.  Which is good news and bad news, because real users find real problems (good because they have been found and fixed,   bad because thousands of downloads may exhibit the problem ).   CutList Version 2.1.2 recently posted finally corrects the decimal separator problem which appears with European users where our "decimal point" becomes their "decimal comma".   There was also a problem when items were added to the material supply list.  The origins of the added pieces  were not set properly which messed up the solution displays.  Saving and reloading the project corrected the display.  Now added pieces will display correctly even before saving the file.   

I decided to post the tips and techniques used to handle the decimal separator problem over in the Decimal Techniques section.  International Decimal "Points"  demonstrates the techniques  and includes a replacement for the "Val"  procedure.  Delphi's version is old, old, old and knows about nothing but  a dot  "." as a decimal separator.    

Finally, today I posted a couple of Beginner's programs in  Delphi Techniques.  Over the years, a number of short programs have been written in response to specific user requests, trying to lead them in the right direction without doing their homework assignment for them.   Two recent ones illustrate how to draw on and modify a TImage canvas (a Parking lot in this case) and how to use TChart to plot a set of function values.   Each program has less than 100 lines of code and  are available from the new Beginner's page.      

March 6, 2005:  I have been recompiling programs that use the "Combo" unit to synchronize them with a forthcoming new and improved version.  Combo contains the code that generates combinations and permutations used in many of our puzzle solving programs.  The new version will have many new functions but  the first step was to ensure compatibility with existing programs.   In the process I have uncovered a few bugs not related to Combo usage.   Here is a revised version of Countdown Plus, a program that emulates the mathematics of a British TV game show (Countdown) and which requires players  form expressions that evaluate to a given value.  I found many range checks and overflow errors which have been fixed.   As a test of the fixes, and "just for fun", I created a few expressions that evaluate to the current year (2005) using all of the digits from 1 to 9.    

1+(2+(3+(4+(5*(7*(9+(6*8))))))) 
1+(4+(8+(6*(2+(5*(3+(7*9)))))))
1+(3+(6+(7*(2-(5-(4*(8*9)))))))
1+(2+(7+(5*(3-(9*(4-(6*8)))))))
2+(3+(5+(7*(6-(9*(1-(4*8)))))))
2+(5+(6+(4*(3-(9*(1-(7*8)))))))
1+(3+(6+(5*(7*(9+(8*(2+4)))))))
1+(2+(4+(6*(9*(5+(8*(7-3)))))))
1+(2+(4+(6*(9*(5-(8*(3-7)))))))
1+(3+(6-(5+(8*(2-(4*(7*9)))))))

10 Expressions that = 2005

       

March 3, 2005:  An international user pointed out that the Sample projects included in the Cutlist downloads would not load properly because of the decimal point difference.  A fix in  January generalized the decimal separator field so that  files created in Europe could be read there.  It never occurred to me that my  samples, which already contain the "proper" decimal point (.), would not read properly in Europe.  Cutlist Version 2.1.1, posted today, corrects this problem by identifying the decimal separator of the creating system in each project file. All of the sample project files have been recreated with this information.    I also corrected a problem which added an extra blank space at the beginning of each part name each time the project was saved.  It is good to have real users out there helping to make things better!