topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Wednesday April 24, 2024, 11:20 pm
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - kyrathaba [ switch to compact view ]

Pages: prev1 2 3 4 5 [6] 7 8 9 10next
126
Application Name Found Money
Version 1.0.1.6
Short Descriptionmanage your pocket change or "found money" and track it over time...
Supported OSes Windows XP forward
Setup File link to download setup file
PAD file URLhttp://kyrathaba.dcm...y/FoundMoney_PAD.xml
System Requirementsrequires .NET 4.0 Framework (installer will D/L and install it if needed)
Author Infocoded by kyrathaba | Profile page | Kyrathaba DC page | author of Kyrathaba's Source Code Line Counter. My past NANY entries include: Crocus Contacts, Blackjack, and NANY Excuse Manager.
DescriptionWe all do it: find a dime on the sidewalk, or a quarter in the floorboard of our vehicle.  Lots of people pick these up as "found money".  Superstitious people sometimes make sure the coin is heads-up first, though :)  And many people empty their pockets at the end of the work-day, and save their pocket change.  I myself have a separate coffee mug for each coin type: pennies, nickels, dimes, quarters.  Naturally, each mug is a DC mug...

I've been doing this for a long time.  Several times over the years I've emptied a big jar of coins and cashed out $200 to $350 at my local bank.  Wouldn't it be nice if there was a program, preferably FREE, that tracked this "found money" (or the money your kid sticks in his or her piggy-bank)?  Well, thankfully, DC member caddo requested just such an app and, intrigued, I created it.  I give you "Found Money"!  For anyone wanting background on this app, you may refer to this link.
Features
  • add each "find", specifying the number of each type of coin and bill found, the location it was found, and the date.
  • edit previously saved files (maybe you accidentally assigned the wrong date, or got the number of quarters wrong, etc.)
  • show and browse data for all saved records, or for a subset of those records falling inclusively between two dates
  • intelligently query the records: "Now what day was that when I found the silver dollar in the men's lavatory?"
  • pie charts visually show the ratio of coins to other coins, bills to other bills
  • alongside the pie charts is a textual breakdown of coin/bill percentages, both of total coins vs bills, and in terms of overall money
  • allows you to set a backup directory (I recommend using this with a Dropbox subdirectory)
Screenshots
Installationuse the Inno Setup installer
Using the applicationAny special pointers about using the app should go here...
Uninstallinguse Windows' Add/Remove Programs applet, or your favorite uninstaller, or the built-in Inno Setup uninstaller
Known Issuesnone known: please report any your find, preferably with specific steps to reproduce the error, and a screenshot of the problem
Notable mentionsdotTech article
Alternative Software[url=https://www.donationcoder.com/forum/index.php?topic=21021.0]Skwire's "Piggy Bank"



127
Application Name Christian Prayer Minder
Version 1.0.7.3 (attention: prayer files from versions prior to 1.0.0.9 aren't compatible with later versions of the program; If you currently have v1.0.1.1 or earlier installed, please manually install version 1.0.6.9 after uninstalling any previous version. From now on, you should be able to update from within the program as usual. If you have v1.0.1.2 or later installer, you should be able to download the updated installer from within your currently running program.)
Short Descriptionprovides informative texts on prayer-related topics, plus enables easy save/retrieve/edit prayer files, and searching prayer files based on tags and/or author
Supported OSes Windows XP forward
Setup File (4.95 M) http://kyrathaba.dcm...count/click.php?id=8
Memory Footprintroughly 10 Mb
System Requirementsrequires .NET Framework v4.0 (program detects if absent, and will download/install it if permission is given)
Author InfoDC member kyrathaba, developer of these other NANY 2012 entries: Found Money, Kyrathaba's Hangman, and Source Code Line Counter. My past NANY entries include: Crocus Contacts, Blackjack, and NANY Excuse Manager. Later NANY entries include 2x2 List Sorter (download here), and KyrTTS (Kyrathasoft's Text-to-Sound) (download here).
DescriptionI realize that there are relatively few Christianity adherents here. Nevertheless, for those of us who are, I believe that this program offers something valuable. I began thinking about writing this application several weeks ago, after a series of conversations with my pastor in which we discussed how it's often difficult to concentrate while trying to pray. We've also discussed the need for a tool that acts as a prayer reminder, and one that can track written prayers and offer search functionality. Finally, we wanted a tool that allows the user to come back at a later time to a prayer and offer thoughts/insights into prayer-answers, or meditations on the prayer itself.  This tool will also, in future updates, allow the user to customize prompts and prompt-frequencies for various types of prayer (praise, intercession, supplication, etc.) The program could also be used to store diary/journal entries, although that isn't its intended purpose.
Screencast
Features
  • built-in CHM Help file
  • pray at the speed of typing (for me, that's about 85 wpm)
  • enter author, and any related tags to help in future searches (or omit them)
  • main form features fantastic background images, many of them by [url=http://www.jrbell.com/]J. R. Bell
  • twelve fore-/back-color schemes for the "My Prayers" panel
  • option to launch application when Windows starts
  • ten in-depth articles on prayer-related topics
  • articles on spiritual disciplines, and the Biblical plan of salvation
  • ability to print the article, or whatever portion of its text is selected
  • recommended further reading (some titles with accompanying URLs)
  • real-time filesystem watcher monitors for creation/deletion/renaming of prayer files
  • informative message-boxes
  • program uses index files to make searching for specific prayer files faster
  • warns user if they attempt to save a prayer file in a non-MyPrayers directory
  • error-trapping correctly detects and handles case where user attempts to load a non-PrayerMinder file
  • click a Search result in ListBox to view its filename, lastModified date, path to file, Author, and tags
  • double-click the Search result entry to load that prayer file
  • zero Registry footprint
  • you can now increase or decrease font size in the MyPrayers textbox by selecting your desired font size in Options
  • three ways to exit application: close button, file menu, or Escape key
  • optional "Did You Know" dialog at program startup
  • search either by author and/or tags, using indexes (fast: on the order of milliseconds)
  • search within prayer file contents for a search phrase, returning all files that contain that search phrase (slow: seconds, not milliseconds)
  • if you double-click a Search results listbox entry and it is the result of a search-within-for-phrase Search, the search-phrase is highlighted when the prayer file is loaded
  • smart-saving removes any excess whitespace from the prayer before saving it
  • option to set a backup directory (makes program compatible with using Dropbox for backing up the program's data files)
  • option to password individual author-name, so that user can't create files with that author name or load files authored by that author without the proper password
Favorite method in this project: bgWorkerSearch_DoWork()
Spoiler
Code: C# [Select]
  1. void bgWorkerSearch_DoWork (object sender, DoWorkEventArgs e) {
  2.  
  3.             log.write("We have entered the background worker that does the heavy-lifting in Searches...");
  4.             DateTime _start = DateTime.Now;
  5.             clsSearcherArgument arg = (clsSearcherArgument)e.Argument;
  6.  
  7.             #region ifDebuggerAttachedGiveSomeInfo
  8.  
  9.             if (Debugger.IsAttached) {
  10.  
  11.                 string msg = "Search type: " + ((SearchType)arg.SearchType).ToString() + Environment.NewLine;
  12.  
  13.                 msg += "Search ";
  14.                 msg += (arg.SearchType == (int)SearchType.SearchWithinFiles) ? " phrase: " : " tag(s): ";
  15.                 if (arg.searchPhraseOrTags.Length > 0) {
  16.                     msg += arg.searchPhraseOrTags + Environment.NewLine;
  17.                 } else {
  18.                     msg += "[none]" + Environment.NewLine;
  19.                 }
  20.  
  21.                 msg += "Author filter: ";
  22.                 if (arg.searchedForAuthor.Length > 0) {
  23.                     msg += arg.searchedForAuthor + Environment.NewLine;
  24.                 } else {
  25.                     msg += "[none]" + Environment.NewLine;
  26.                 }
  27.  
  28.                 msg += "Time constraint: " + ((TimeConstraint)arg.timeConstraint).ToString();
  29.  
  30.                 MessageBox.Show(msg);
  31.  
  32.             }
  33.  
  34.             #endregion
  35.  
  36.             #region setUpNeededVariables            
  37.  
  38.             DirectoryInfo di = new DirectoryInfo(pathToMyPrayers);
  39.             FileInfo[] fi = di.GetFiles();
  40.             List<clsPrayerInfo> information = new List<clsPrayerInfo>();
  41.            
  42.             int totalPrayerFiles = fi.GetLength(0);
  43.             string searchedForAuthor = arg.searchedForAuthor.Trim().ToLower();
  44.             string searchedForPhrase = arg.searchPhraseOrTags.Trim().ToLower();            
  45.             int examined_so_far = 0;
  46.             int hits = 0;
  47.             int time_constraint = arg.timeConstraint;
  48.             double totalSeconds = 0;
  49.             bool blnPassesTimeConstraint;
  50.             bool blnPassesAuthor;
  51.             bool blnPassesSearchPhrase;
  52.             decimal fraction = 0;
  53.             int the_percent = 0;
  54.  
  55.             for (int i = 0; i < totalPrayerFiles; i++) {
  56.                 if (fi[i].FullName.ToLower().Contains("thumbs.db")) { totalPrayerFiles--; }
  57.             }
  58.  
  59.             #endregion
  60.  
  61.             if (arg.SearchType == (int)SearchType.SearchWithinFiles) {
  62.  
  63.                 log.write("About to enter foreach loop for searching within files...");
  64.                
  65.                 foreach (FileInfo f in fi) {
  66.                
  67.                     blnPassesTimeConstraint = false;
  68.                     blnPassesAuthor = false;
  69.                     blnPassesSearchPhrase = false;
  70.                    
  71.                     if (f.FullName.ToLower().Contains("thumbs.db")) { continue; }
  72.                    
  73.                     #region codeForExaminingWithinPrayerFileContents
  74.                    
  75.                     blnPassesAuthor = true; //because SearchWithinFiles doesn't care about the author                  
  76.                     FileStream fs = new FileStream(f.FullName, FileMode.Open, FileAccess.Read, FileShare.None);
  77.                     clsPrayerInfo oInfo = new clsPrayerInfo();                    
  78.  
  79.                     try {
  80.                         BinaryFormatter bFormatter = new BinaryFormatter();
  81.                         clsPrayer prayer = (clsPrayer)bFormatter.Deserialize(fs);
  82.                         string contents = prayer.content.Trim().ToLower();
  83.                         if (contents.Contains(searchedForPhrase)) {
  84.                             blnPassesSearchPhrase = true;
  85.                             oInfo = new clsPrayerInfo(prayer, f.FullName);
  86.                             int selStart = contents.IndexOf(searchedForPhrase);
  87.                             oInfo.StartOfSelection = selStart;                            
  88.                             #region determineIfWePassTheTimeConstraint
  89.                             if (time_constraint == (int)TimeConstraint.NoConstraint) {
  90.                                 blnPassesTimeConstraint = true;
  91.                             } else {
  92.                                 DateTime rightNow = DateTime.Now;
  93.                                 TimeSpan ts = rightNow.Subtract(oInfo.lastModified);
  94.                                 totalSeconds = ts.TotalSeconds;
  95.                                 switch (time_constraint) {
  96.                                     case (int)TimeConstraint.PastWeek:
  97.                                         if (totalSeconds <= 604800) { blnPassesTimeConstraint = true; }
  98.                                         break;
  99.                                     case (int)TimeConstraint.PastMonth:
  100.                                         if (totalSeconds <= 2592000) { blnPassesTimeConstraint = true; }
  101.                                         break;
  102.                                     case (int)TimeConstraint.PastYear:
  103.                                         if (totalSeconds <= 31536000) { blnPassesTimeConstraint = true; }
  104.                                         break;
  105.                                 }
  106.                             }
  107.                             #endregion
  108.                         } else {
  109.                             blnPassesSearchPhrase = false;
  110.                         }
  111.  
  112.                         examined_so_far++;
  113.                         log.write("We have examined this many files: " + examined_so_far.ToString());
  114.  
  115.                         if (blnPassesTimeConstraint && blnPassesSearchPhrase && blnPassesAuthor) {
  116.                             information.Add(oInfo);                            
  117.                             hits++;
  118.                         }
  119.  
  120.                     } catch (Exception exceptionOpeningPrayerFile) {
  121.                         string msgWithinFilesException = "Error in SearchWithinFiles portion of code in method bgWorkerSearch_DoWork(): " + exceptionOpeningPrayerFile.Message;
  122.                         log.write(msgWithinFilesException);
  123.                         MessageBox.Show(msgWithinFilesException, "Error Opening Prayer File During Search");
  124.                     }
  125.                     finally {
  126.                         if (fs != null) { fs.Close(); }
  127.                     }
  128.                     #endregion
  129.  
  130.                     fraction = (decimal)examined_so_far / (decimal)totalPrayerFiles;
  131.                     the_percent = Convert.ToInt32(fraction * 100);
  132.                     bgWorkerSearch.ReportProgress(the_percent);
  133.                     log.write("Records counted: " + examined_so_far.ToString() + " of " + totalPrayerFiles.ToString() + " (hits: " + hits.ToString() + ") -- " + the_percent.ToString() + " % complete...");
  134.                 }
  135.            
  136.             } else {
  137.  
  138.                 log.write("About to enter foreach loop for searching via tracking files...");
  139.                
  140.                 foreach (FileInfo f in fi) {
  141.  
  142.                     blnPassesTimeConstraint = false;
  143.                     blnPassesAuthor = false;
  144.                     blnPassesSearchPhrase = false;
  145.  
  146.                     if (f.FullName.ToLower().Contains("thumbs.db")) { continue; }
  147.                    
  148.                     #region codeForSearchingAgainstAuthorAndOrTagsUsingTrackingFiles
  149.                    
  150.                     clsPrayerInfo oInfo = new clsPrayerInfo();
  151.                     string pathToTracker = Path.Combine(pathToTrackingDirectory, Path.GetFileNameWithoutExtension(f.FullName));
  152.                     if (!File.Exists(pathToTracker)) {
  153.                         log.write("Tracking file doesn't exist: " + pathToTracker);
  154.                         continue;
  155.                     } else {
  156.                         log.write("The following tracking file DOES exist: " + pathToTracker);
  157.                     }
  158.                    
  159.                     FileStream fs = new FileStream(pathToTracker, FileMode.Open, FileAccess.Read, FileShare.None);
  160.                     try {
  161.  
  162.                         BinaryFormatter bFormatter = new BinaryFormatter();
  163.                         oInfo = (clsPrayerInfo)bFormatter.Deserialize(fs);
  164.                         oInfo.StartOfSelection = -1;
  165.                         DateTime rightNow = DateTime.Now;
  166.                         TimeSpan ts = rightNow.Subtract(oInfo.lastModified);
  167.                         totalSeconds = ts.TotalSeconds;
  168.  
  169.                         log.write("We were able to open the tracker...");
  170.  
  171.                         #region determineIfTheTimeConstraintPasses
  172.                         if (time_constraint == (int)TimeConstraint.NoConstraint) {
  173.                             blnPassesTimeConstraint = true;
  174.                         } else {
  175.                             switch (time_constraint) {
  176.                                 case (int)TimeConstraint.PastWeek:
  177.                                     if (totalSeconds <= 604800) { blnPassesTimeConstraint = true; }
  178.                                     break;
  179.                                 case (int)TimeConstraint.PastMonth:
  180.                                     if (totalSeconds <= 2592000) { blnPassesTimeConstraint = true; }
  181.                                     break;
  182.                                 case (int)TimeConstraint.PastYear:
  183.                                     if (totalSeconds <= 31536000) { blnPassesTimeConstraint = true; }
  184.                                     break;
  185.                             }
  186.                         }
  187.                         #endregion
  188.                         if (blnPassesTimeConstraint) {
  189.                             log.write("TimeConstraint passed in Search using Mode Normal or ExactMatch...");
  190.                             #region determineIfAuthorPasses
  191.                             if (searchedForAuthor.Length == 0) {
  192.                                 blnPassesAuthor = true;
  193.                             } else {
  194.                                 if (searchedForAuthor == oInfo.author.Trim().ToLower()) { blnPassesAuthor = true; }
  195.                             }
  196.                             #endregion
  197.                             if (blnPassesAuthor) {
  198.                                 #region determineIfSearchPhrasePasses
  199.                                 if (searchedForPhrase.Length == 0) {
  200.                                     blnPassesSearchPhrase = (arg.SearchType == (int)SearchType.Normal) ? true : false;
  201.                                 } else {
  202.                                     if (arg.SearchType == (int)SearchType.ExactMatch) {
  203.                                         blnPassesSearchPhrase = (searchedForPhrase == oInfo.tags.Trim().ToLower()) ? true : false;
  204.                                     } else {
  205.                                         blnPassesSearchPhrase = (oInfo.tags.Trim().ToLower().Contains(searchedForPhrase)) ? true : false;
  206.                                     }
  207.                                 }
  208.                                 #endregion
  209.                             }//end if (blnPassesAuthor)
  210.                         }//end if (blnPassesTimeContraint)
  211.  
  212.                         if (blnPassesSearchPhrase && blnPassesAuthor && blnPassesTimeConstraint) {
  213.                             information.Add(oInfo);
  214.                             hits++;
  215.                         }
  216.  
  217.                         examined_so_far++;
  218.                         log.write("We have examined this many files: " + examined_so_far.ToString());
  219.  
  220.                     } catch (Exception exception) {
  221.                         log.write("Exception caught while trying to load clsPrayerInfo data from this tracking file in bgWorkerSearch_DoWork(): " + Path.GetFileName(pathToTracker));
  222.                         log.write(exception.Message);
  223.                     }
  224.                     finally {
  225.                         if (fs != null) { fs.Close(); }
  226.                     }
  227.  
  228.                     #endregion
  229.                    
  230.                     fraction = (decimal)examined_so_far / (decimal)totalPrayerFiles;
  231.                     the_percent = Convert.ToInt32(fraction * 100);
  232.                     bgWorkerSearch.ReportProgress(the_percent);
  233.                     log.write("Records counted: " + examined_so_far.ToString() + " of " + totalPrayerFiles.ToString() + " (hits: " + hits.ToString() + ") -- " + the_percent.ToString() + " % complete...");
  234.                
  235.                 }
  236.            
  237.             }
  238.  
  239.             DateTime _finished = DateTime.Now;
  240.             TimeSpan tsOverall = _finished.Subtract(_start);
  241.             string duration = clsGetDurationDesc.getDurationDesc(tsOverall.TotalMilliseconds);
  242.  
  243.             clsSearcherResults oResults = new clsSearcherResults(information, duration, examined_so_far, hits);
  244.             e.Result = oResults;
  245.  
  246.             log.write("Now exiting bgWorkerSearch_DoWork()...");
  247.  
  248.         }

Screenshots (there are more images in addition to those shown here, but you'll have to download/install the program to discover them...)
Installationrun the Inno Setup installer
Using the applicationpretty standard Windows application menu system, with some additional options.  Should be straightforward, although I intend to author a help file.
UninstallingRun the uninstaller that the installation provides
Known IssuesI've fixed quite a few minor issues. Let me know if you think you've found a bug: it's probably a feature ;)

128
Kyrathaba Software / Kyrathasoft Hangman (a NANY 2012 entry)
« on: January 19, 2012, 06:25 PM »
Fun Twist On A Classic Game!My program, Kyrathaba's Hangman, allows you to register a user-name.  If you do, the High Score on your particular installation of the application will always be sent to the online database.

For the Highest Scoring DC member, as found here, I will donate up to 25 hours of programming for FREE on a small to mid-size project of your choice!!  I reserve the right to determine what is within my skills, however.  The top-three high-scoring DC members will receive an additional prize from the site.

I reserve the right to throw out a score that has obviously been obtained through some hack: being intimately conversant with the program's level of difficulty, I have a keen idea what's humanly possible.

On the last day of each month between now and the culmination of the NANY 2012 event, I will donate $5 DonationCredits to the highest scorer showing on the scoreboard, provided that the scorer is a DC member.  Visitors who may be reading this: join now!  The first disbursement will be on July 31st, the final one December 31st.  That's an opportunity for someone to win up to $30, not to mention bragging rights!
Application Name Kyrathaba's Hangman
Version 1.0.4.5 (released 8/21/11)
Short Description competitive Hangman with prizes for highest scorers (see blog entry)
Supported OSes Windows XP forward
Setup File A link to the Setup program {will check for absence of .NET Framework 4.0 and download if needed} (1.41 Mb)
PAD file URLhttp://kyrathaba.dcm...tups/hangman_PAD.xml
System Requirements
Author Infocoded by kyrathaba | Profile page | Kyrathaba DC page | author of Kyrathaba's Source Code Line Counter. My past NANY entries include: Crocus Contacts, Blackjack, and NANY Excuse Manager.
DescriptionThis was a project I did for the Boss Assignment of C# Programming School, Phase I.  I liked it so much that I continued to develop it, eventually bringing in cranioscopical for some expert testing.  I owe him a debt for the many bugs he made me aware of; and to mouser I say "thank you" for encouraging me not to give up in learning enough PHP to build the online scripts and database to implement my desired features-set.

Destined to replace time wasted by people watching "Wheel Of Fortune"! -- PC Magazine.

What!  This program is FREE!??  A crime, that's what it is!  Someone slap the developer around until he starts showing some sense and charging for this gem of genius! -- Gamasutra

Features+ choose between an Individual Word or a Phrase, and try to solve before you are hanged!
+ optional audio cues
+ option to register a user-name with online database, so that you can submit your High Score and compete against all other players!
+ option to use mouse or keyboard for input
+ Highest Scorer, as recorded on the online database will receive free coding of a small-to-medium sized project of his/her choice!
+ ToolTips and context-sensitive help for each control in the application's interface

I would appreciate suggestions for future features of the program.

Please consider donating.
Screenshotsscreenshot collage
Online Helphttp://kyrathaba.dcmembers.com/my_programs/KyrHangmanSetups/HangmanHelp.pdf
InstallationSimply use the installer created by Inno Setup
Using the applicationThe GUI is fairly intuitive.  However, there is a textual help file under the "Help" menu, and a more in-depth PDF help file (with screenshots) available via the F1 key.
UninstallingUse the uninstall Program Files menu-item.
Known IssuesWhat?  You mean like bugs?  None (but please make me aware of any that you may find...)
Notable mentionsdotTech article


129
Application NameKyrathasoft Source Code Line Counter
Version 1.0.1.4 (last updated 27th June 2016
Short Descriptioncounts lines of source code across all files in a project (or even across multiple projects) using physical SLOC
Supported OSes Windows XP forward
Setup File KyrSrcLineCounterSetup.zip (~332 Kb)
System Requirementsrequires .NET Framework 4.0; the setup program detects the absence of .NET Framework 4.0 and installs if necessary
Author Infokyrathaba, author of Kyrathaba's Hangman. My past NANY entries include: Crocus Contacts, Blackjack, and NANY Excuse Manager.
DescriptionOption to count or not-count comments and blank lines.
Use standard folder-selection dialog, or drop folder on the listview
Automatically recounts when file extension is changed in the dropdown combo box
Automatically recounts when a folder is dropped on listview
Ability to count files/lines across multiple top-level directories
Supports C, C#, C++, VB, Delphi/Pascal, Bash, Java, AHK, Auto-It
Screenshots
Installationuse the Setup file created by Visual Studio 2015 Community Edition IDE
Using the applicationShould be highly intuitive; I await feedback ([email protected])
Uninstallinguse the uninstaller
Known Issuesnone
Notable mentionsdotTech article



130


"Its function is to encrypt/decrypt individual files or entire directories of files using 168-bit TripleDES encryption. It offers an optional virtual keyboard for entering passwords with the mouse or touchpad, so that the actual computer keyboard doesn't have to be utilized for this purpose, thereby negating the threat of keyloggers."

Online Help for KyrCrypt

131
Kyrathaba Software / Kyrathasoft Crocus Contacts (a NANY 2007 entry)
« on: January 19, 2012, 06:21 PM »
One of my earliest C# programming efforts, the program, as the name implies, stores information about your personal contacts. It's sort of like a digital rolodex. It allows you to store name, address, email, etc., plus a photograph of the person. You have the option of passwording the contact. Contacts are saved to disk in binary format, so only this program can open them. The program supports creating new contact files, opening existing contact files, browsing for and selecting a jpg photo, saving contacts to disk, and deleting existing contact files. A sample contact, "Dr. Beverly Crusher.crf" is included. Contact files have the CRF extension. Supports emailing contacts.

This download is the complete installer. It creates program group, file association, etc., using Inno Setup Builder.

This was my very first NANY submission, in the 2007 event.


132
How Long Since? is a tool for finding the time that has elapsed since a particular date-time; you set the name of the event, its description, and the exact date and time on which the event occurred. Clicking a given event in the listbox, you'll be presented with time elapsed since that date. This value updates each second. You can delete a particular item by double-clicking it in the listbox. When entering the time component of the DateTime of an event you're about to save, simply enter the time as it would be in the local time used by your PC. The program will convert this to UTC, and any items in the listbox that you click upon will show the UTC version of the time.



click to download

133
Announce Your Software/Service/Product / Debut of "How Long Since?"
« on: January 19, 2012, 08:36 AM »
I've responded to an old Coding Snack Request with a small utility that some may find useful and/or fun. You can also find it here and here.

How Long Since? is a tool for finding the time that has elapsed since a particular date-time; you set the name of the event, its description, and the exact date and time on which the event occurred. Clicking a given event in the listbox, you'll be presented with time elapsed since that date. This value updates each second. You can delete a particular item by double-clicking it in the listbox.


134
N.A.N.Y. 2012 / FINAL: The Official WriteUp for the NANY 2012 Event!
« on: January 04, 2012, 07:12 PM »
The NANY 2012 Event at DonationCoder.com

Welcome to the final official write-up for the DonationCoder.com NANY 2012 event!

NANY stands for "New Apps for the New Year". It's an annual event here on DonationCoder.com where we challenge coders of all experience levels to release a brand new freeware / donationware application to celebrate the coming of the new year.  It represents the playful and generous spirit of the DonationCoder.com site and the people who visit it.

Some of the releases are full featured polished, professional-level applications, while some are just experiments by new programmers.

Click here to discuss the NANY 2012 event and learn more, or watch videos of the entries below.  Click the program name to visit the forum thread for that application to discuss and download it.



As always, if you like what you see, consider making a donation to the site, and then sending your donation to some of the authors of the programs below.




Start with these entries
There are some real showstoppers here -- some very polished cute little programs and some unique power tools.





Ethervane Echo

Written by DonationCoder member tranglos, Ethervane Echo is a lightweight clipboard extender designed to speed up typing repetitive text. For writers, translators and coders. Fast and lightweight, with instant search. I have to say, the amount of time and effort that tranglos put into this program really shows. The help file is extensive and documents the program extremely well.






Qatapult

Written by DonationCoder member ecaradec, Qatapult is a keyboard launcher reminiscent of the QuickSilver program on Macs that has this super nice feature that allows to run commands on objects with completion on object and command and possibly extra arguments. It also has a very slick and customizable design UI. Ecaradec has adapted ideas from QuickSilver and made them available for Windows as Qatapult.






MPQ Screensaver Builder

Multi Photo Quotes Builder, by DonationCoder member mouser, let's users package screensavers for their friends and family that contain images and quotes of their own creation.  Based on mouser's Multi Photo Quotes screen saver engine, it offers a high degree of customization on the installed machine, and has unique abilities to tile images on multiple monitors and support random text quotes integrated with the images.






Web Link Captor

Mouser's Web Link Captor is a program that takes a list of plaintext items, and builds an output document containing a list of url-linked results based on web searches for the items. It's a way to quickly build a clickable list of items from just their names, suitable for posting on your blog or a forum, etc. This program took some time, folks. You'd normally expect to pay for software that is this useful and polished. Being able to obtain software like this for free is one of the great things that DonationCoder offers the virtual community.



(You can also watch a longer tutorial here).




Image Grid

This tool, by DonationCoder member vlastimil, allows you to take several smaller pictures and create one big image with all the smaller pictures arranged in a rows and columns. This tool will prove useful to create custom wallpapers from photographs, create previews of multiple images for sites like deviant art or for designers' client, create pictures for a printing service that only supports pictures of certain size and the client needs lots of smaller pictures.






Recursiview

Written by DonationCoder member skwire, Recursiview is a simple image viewer that will allow view a flat list of all images in a folder and subfolders.Keyboard-driven operation; Unicode-path compatible; Configurable thumbnail size.






MPH (Media Player Hotkeys)

Written by DonationCoder member skwire, MPH (Media Player Hotkeys) is a hotkey application designed to allow you to control various audio, video and media players from one set of global hotkeys..






PDFInfoGUI

Written by DonationCoder member skwire, PDFInfoGUI is a Graphical user interface front-end for pdfinfo.exe from the Xpdf package at FooLabs..  It can show a table of pdf information for a large collection of pdf files, and export to csv.






GotSpace?

GotSpace?, by DC member Stoic Joker, is a small simple portable utility that will list the available drives and the space available on them. It's actually a clone of another program SJ had been using for years which had never been updated and lacked some of the features that SJ has added to Got Space?






Portable Extension Warlock

Using this tool by DonationCoder member hamradio, you can build a launch file to launch files of certain types in certain applications skipping the system file associations.  You should be able to use this as well on portable devices as long as the computer you intend to use it on has .NET 4.0. by using the DropZone that is included.






Uncle Cody's Dice Game

DonationCoder members Mouser and Krishean collaborated on this game, which is a simple Solitaire dice game based on Martian Dice by Tasty Minstrel Games.  Fun!






PinPics

Written by DonationCoder member NinJA999, PinPics maps out geotagged photos from a folder.  It's a great way to see where you've been and to bring back old memories.  Try it with the pictures on your smartphone!






Stick A Note

Stick A Note, by DonationCoder member anandcoral, is an application to create focus-less notes that can be associated with application windows.  The note moves with the associated window, and in saved in text format. The note auto-hides in the associated program window is hidden or inactive, and a hotkey can be used to show/hide the note.






Tell When Done

Tell When Done, by DonationCoder member anandcoral, watches a program window, which is doing some process, and tells when it has done it's processing. Effectively freeing the user to do another job in another window, without worrying about it.






Paste Like Text

Written by DonationCoder member anandcoral, Paste Like Text gives option to paste the text from clipboard, in different format, like Proper case, valid file name, hex color value, remove blanks etc. Also option for mimic typing, auto pasteboard and view the color, if possible.






Kyrathasoft Christian Prayer Minder

DC member kyrathaba has this to say about Christian Prayer Minder : This program will likely appeal to a narrower audience. As you might infer from the name of the program, the program provides informative texts on prayer-related topics, plus enables easily save/retrieve/edit/search prayer files. Searching prayer files is based on tags and/or author, or the user can search within the actual words of the prayer itself for a word or phrase. In its future incarnations, the program will have the ability to use user-configurable prompts to remind the user to pray at certain times, and/or about certain topics. Designed for use by people of faith, CPM is a tool that will continue to grow more refined and useful with each new version that becomes available. And if you love beautiful religious artwork, be sure to check out the program, which currently features a score of very attractive images, many of them created by John R. Bell.






Fentwiss

Fentwiss is a java-based keyboard-centric calculator and converter written by DonationCoder member timns. The program features simple and natural syntax for fast calculation and conversion, and tries to present the results in a human-friendly way (mixed units, fractions).









After you've checked out the above entries you might want to check out these
Some of these may appeal to a narrower audience, or be a little rough around the edges.






Desktop URL Embed

Desktop URL Embed was written by DonationCoder member wraith808. Active desktop was supposed to be a big feature on Windows, but it has faded into the annals of history.  Or has it?  It's still there, just not as prevalent.  So when wraith808 wanted to embed a webcam view in his Evil Genius desktop setup, he decided to learn about Windows Gadgets.  This program allows the user to embed a URL into their desktop, and set a refresh if desired and the size of the gadget.






Kyrathasoft Source Code Line Counter

Are you a software developer? Do you ever find yourself estimating a project's size ("Oh, what you're wanting will probably amount to about 5,000 lines of code...") in terms of lines of source code? Kyrathasoft Source Code Line Counter, by DonationCoder member kyrathaba, makes counting lines of source code easy and fast -- within a single project, or across multiple projects. It has the option to discount blank lines and/or comments, and to count/discount IDE-created code. This donationware program supports the following programming languages' source-files: Visual Basic, C, C#, Delphi/Pascal, Bash, Java, AHK, and AutoIt.






Kyrathasoft Found Money

Found Money when DonationCoder member kyrathaba responded to a coding-snack request made by DonationCoder member caddo. The program allows you to keep track of money that you find -- under your car seat, in the washing machine, etc. Features record creation, saving, editing of saved records, and even searching against criteria ("show me any records in which the number of pennies is less than six", or "show me any records in which the number of one-dollar bills is exactly equal to three"). Use it for its original intended purpose, or as a digital piggy bank.






Kyrathasoft Hangman Game

This program was kyrathaba's first submission for NANY 2012, although he later added three more programs. This is a Hangman variant that presents well over nine-hundred hangman puzzles to be solved. As you continue to solve puzzles, the amount of time you have in which to solve each puzzles decreases -- to a point. You can opt to register a username on the online database in order to compete against others who are also using the program, seeing who can get the highest score. In the contest I ran, $30.00 of DonationCredits were distributed to monthly high-scorers. I very much enjoyed everyone's participation, and assistance in improving the game!






Visual Perimeter

Visual Perimeter, by DonationCoder member hegearon, is a very simple-to-use, barebones application whose inner width/height can be set via a "Control Panel" that drops down from the top of the mostly transparent form. Use this program to visualize a perimeter that is so many pixels in width, by so many pixels in height. A nice first effort, by new DC member hegearon!






Treat Yourself Nicely

Treat Yourself Nicely, by DonationCoder member Stephen66515, is designed to be used in conjunction with a healthy diet.

Using this software will give your computer control over when you are able to have a snack! Simply enter your name, and timer options in the settings menu and your good to go!






NoteMe

Using NoteMe, written by DonationCoder member justice, you can quickly send mail to yourself. NoteMe makes it possible to blog using WordPress or Posterous, to send stuff to evernote or pinboard, or label these messages (use NoteMe as a work log). Anything that can accept email can be used with NoteMe. Choose an email address from the dropdown combobox, enter a brief message, click Send. Voila! You've sent a note via email.  This program can also be invoked by a script or batch file.  






Chess PGN Processor

Commissioned by DonationCoder member TaoPhoenix, is a free program for filtering and compressing the data in PGN chess game files.






GoogolBar

GoogolBar, by DonationCoder member app103, is a replacement for the Google Toolbar for Windows. It does not contain anything questionable, unethical, shady, sneaky, privacy invading, etc. Nice, clean, and simple. It is a deskbar that integrates with your taskbar to provide convenient searching of various Google services (20 in total) right from the desktop in your default browser. It will work with all major browsers and most obscure ones, too. It will work with both horizontal and vertical taskbars. It will not store a search history, not phone home, not report statistics, no automatic installation of updates without the user's knowledge or consent, no tracking of personally identifiable surfing activities, no tracking of "anonymous" statistics, no changes to your default search engine, no changes to your default "new tab" page, no changes to any web page you view, no collection and storage of personally identifiable information, no loading of dynamic content from the web, no advertising, no 3rd party bundled software, no BS. NOTE: It currently works with WinXP 32-bit ONLY, but soon a version is coming that will be Vista/Win7-compatible.

And for those that really care about privacy, there is an option to search using Scroogle.






Nea

Nea, by DonationCoder member ewemoa, starts and stops certain AHK_L scripts -- though the current intent is for FARR-focused scripts.  Over the years a variety of FARR-related AHK scripts and snippets have been posted to the DC forums and this app might make it convenient to manage a collection of these.






PerceptualDiff

PerceptualDiff is authored by DonationCoder member JoTo. The program is used to batch compare two branches of image files in a human visible (perceptual - not binary) way. It permits the user to Move and Rename files depending on match results. It is a GUI front-end to the Perceptual Diff utility authored by Hector Yee, and has been offered back to the SourceForge project.






Flipside

Flipside, created by DonationCoder member Deozaan, has a very simple premise. You have a single board, where you play on both sides of it simultaneously. Basically, one side tries to kill the other side. Take turns moving units and attacking each other. But wait, you say, if they are on two different sides of a plane, how do they fight each other? You notice that each side have two different looking units in the corners. They are special units. They cannot be killed, but they also cannot attack either. If they are targeted and hit, they will be pushed back a square in the opposite direction of the attack. But if they aren't combat units, what do they do? They can flip specific squares from one side to the other. The unit with a + on his helmet flips all the squares in the same row and column (orthogonally), while the unit with an X on his helmet flips all the tiles going out diagonally from his position. The special units do not change sides at all, ever, but any other unit on a flipped square is moved to the other side regardless of which side he started on, unless of course one of the special units is occupying a tile that a regular unit would flip to.






Reverse Dictionary (for Android devices)

Reverse Dictionary (for Android devices), created by DonationCoder member lotusrootstarch, is a powerful word finder that lets you describe an idea/concept and get back a list of words and phrases related to that concept.  Also functions as a thesaurus.  For android devices.  Ad supported.






Big Bang Theory Sound Quotes (for Android devices)

Reverse Dictionary (for Android devices), created by DonationCoder member lotusrootstarch, presents you with the ultimate collection of sound quotes from The Big Bang Theory. For android devices.  Ad supported.






Printer PaperSource Explorer

Written by DonationCoder member Ath, Printer PaperSource Explorer displays information about your printers Paper Trays (the source of the paper). Ever needed to setup Tray numbers in an application for a complicated, multi-tray, office printer? Then here's the way to find out the correct tray/bin numbers.






APK loader

APK Loader, by DonationCoder member limelect, is used to load APK files to an AVD simulator. The program makes use of Eclipse and an Android simulator.






Habanero Simple Software Licensing - Early Beta Release

Habanero Simple Software Licensing, by DonationCoder member josant, is an early beta release of a new software licensing solution for developers that will be released eventually as commercial software.





135
N.A.N.Y. 2012 / NANY 2012 Request
« on: December 12, 2011, 07:20 AM »
Not really an app request, but rather a component request, and perhaps there's a free version of this out there in cyberspace somewhere, but if so I haven't come across it:

I would like a custom control that I can add to my Visual C# Express toolbox. It should inherit from RichTextBox, but should be able to LoadFile() just like a RichTextBox (plain or RTB format), and should have a Print() method that prints the entire contents of the custom Rich TextBox.

Printing is abominably arcane in .NET!  Grrr...

136
N.A.N.Y. 2012 / NANY 2012 RELEASE: Christian Prayer Minder
« on: December 07, 2011, 08:00 AM »
NANY 2012 Entry Information

Application Name Christian Prayer Minder
Version 1.0.5.8 (attention: prayer files from versions prior to 1.0.0.9 aren't compatible with later versions of the program; If you currently have v1.0.1.1 or earlier installed, please manually install version 1.0.5.8 after uninstalling any previous version. From now on, you should be able to update from within the program as usual. If you have v1.0.1.2 or later installer, you should be able to download the updated installer from within your currently running program.)
Short Descriptionprovides informative texts on prayer-related topics, plus enables easy save/retrieve/edit prayer files, and searching prayer files based on tags and/or author
Supported OSes Windows XP forward
Setup File (4.8 M) http://kyrathaba.dcm...count/click.php?id=8
Memory Footprintabout 6,680 Kb (this will increase slightly when many prayers have been searched)
System Requirementsrequires .NET Framework v4.0 (program detects if absent, and will download/install it if permission is given)
Author InfoDC member kyrathaba, developer of these other NANY 2012 entries: Found Money, Kyrathaba's Hangman, and Source Code Line Counter. My past NANY entries include: Crocus Contacts, Blackjack, and NANY Excuse Manager.
DescriptionI realize that there are relatively few Christianity adherents here. Nevertheless, for those of us who are, I believe that this program offers something valuable. I began thinking about writing this application several weeks ago, after a series of conversations with my pastor in which we discussed how it's often difficult to concentrate while trying to pray. We've also discussed the need for a tool that acts as a prayer reminder, and one that can track written prayers and offer search functionality. Finally, we wanted a tool that allows the user to come back at a later time to a prayer and offer thoughts/insights into prayer-answers, or meditations on the prayer itself.  This tool will also, in future updates, allow the user to customize prompts and prompt-frequencies for various types of prayer (praise, intercession, supplication, etc.) The program could also be used to store diary/journal entries, although that isn't its intended purpose.
Screencast
Features
  • built-in CHM Help file
  • pray at the speed of typing (for me, that's about 85 wpm)
  • enter author, and any related tags to help in future searches (or omit them)
  • main form features fantastic background images, many of them by J. R. Bell
  • twelve fore-/back-color schemes for the "My Prayers" panel
  • option to launch application when Windows starts
  • ten in-depth articles on prayer-related topics
  • articles on spiritual disciplines, and the Biblical plan of salvation
  • ability to print the article, or whatever portion of its text is selected
  • recommended further reading (some titles with accompanying URLs)
  • real-time filesystem watcher monitors for creation/deletion/renaming of prayer files
  • informative message-boxes
  • program uses index files to make searching for specific prayer files faster
  • warns user if they attempt to save a prayer file in a non-MyPrayers directory
  • error-trapping correctly detects and handles case where user attempts to load a non-PrayerMinder file
  • click a Search result in ListBox to view its filename, lastModified date, path to file, Author, and tags
  • double-click the Search result entry to load that prayer file
  • zero Registry footprint
  • you can now increase or decrease font size in the MyPrayers textbox by selecting your desired font size in Options
  • three ways to exit application: close button, file menu, or Escape key
  • optional "Did You Know" dialog at program startup
  • search either by author and/or tags, using indexes (fast: on the order of milliseconds)
  • search within prayer file contents for a search phrase, returning all files that contain that search phrase (slow: seconds, not milliseconds)
  • if you double-click a Search results listbox entry and it is the result of a search-within-for-phrase Search, the search-phrase is highlighted when the prayer file is loaded
  • smart-saving removes any excess whitespace from the prayer before saving it
  • option to set a backup directory (makes program compatible with using Dropbox for backing up the program's data files)
  • full list of features  [url=http://kyrathaba.dcmembers.com/downloads.htm#prayerMinderFeatures]here
Favorite method in this project: bgWorkerSearch_DoWork()
Spoiler
Code: C# [Select]
  1. void bgWorkerSearch_DoWork (object sender, DoWorkEventArgs e) {
  2.  
  3.             log.write("We have entered the background worker that does the heavy-lifting in Searches...");
  4.             DateTime _start = DateTime.Now;
  5.             clsSearcherArgument arg = (clsSearcherArgument)e.Argument;
  6.  
  7.             #region ifDebuggerAttachedGiveSomeInfo
  8.  
  9.             if (Debugger.IsAttached) {
  10.  
  11.                 string msg = "Search type: " + ((SearchType)arg.SearchType).ToString() + Environment.NewLine;
  12.  
  13.                 msg += "Search ";
  14.                 msg += (arg.SearchType == (int)SearchType.SearchWithinFiles) ? " phrase: " : " tag(s): ";
  15.                 if (arg.searchPhraseOrTags.Length > 0) {
  16.                     msg += arg.searchPhraseOrTags + Environment.NewLine;
  17.                 } else {
  18.                     msg += "[none]" + Environment.NewLine;
  19.                 }
  20.  
  21.                 msg += "Author filter: ";
  22.                 if (arg.searchedForAuthor.Length > 0) {
  23.                     msg += arg.searchedForAuthor + Environment.NewLine;
  24.                 } else {
  25.                     msg += "[none]" + Environment.NewLine;
  26.                 }
  27.  
  28.                 msg += "Time constraint: " + ((TimeConstraint)arg.timeConstraint).ToString();
  29.  
  30.                 MessageBox.Show(msg);
  31.  
  32.             }
  33.  
  34.             #endregion
  35.  
  36.             #region setUpNeededVariables            
  37.  
  38.             DirectoryInfo di = new DirectoryInfo(pathToMyPrayers);
  39.             FileInfo[] fi = di.GetFiles();
  40.             List<clsPrayerInfo> information = new List<clsPrayerInfo>();
  41.            
  42.             int totalPrayerFiles = fi.GetLength(0);
  43.             string searchedForAuthor = arg.searchedForAuthor.Trim().ToLower();
  44.             string searchedForPhrase = arg.searchPhraseOrTags.Trim().ToLower();            
  45.             int examined_so_far = 0;
  46.             int hits = 0;
  47.             int time_constraint = arg.timeConstraint;
  48.             double totalSeconds = 0;
  49.             bool blnPassesTimeConstraint;
  50.             bool blnPassesAuthor;
  51.             bool blnPassesSearchPhrase;
  52.             decimal fraction = 0;
  53.             int the_percent = 0;
  54.  
  55.             for (int i = 0; i < totalPrayerFiles; i++) {
  56.                 if (fi[i].FullName.ToLower().Contains("thumbs.db")) { totalPrayerFiles--; }
  57.             }
  58.  
  59.             #endregion
  60.  
  61.             if (arg.SearchType == (int)SearchType.SearchWithinFiles) {
  62.  
  63.                 log.write("About to enter foreach loop for searching within files...");
  64.                
  65.                 foreach (FileInfo f in fi) {
  66.                
  67.                     blnPassesTimeConstraint = false;
  68.                     blnPassesAuthor = false;
  69.                     blnPassesSearchPhrase = false;
  70.                    
  71.                     if (f.FullName.ToLower().Contains("thumbs.db")) { continue; }
  72.                    
  73.                     #region codeForExaminingWithinPrayerFileContents
  74.                    
  75.                     blnPassesAuthor = true; //because SearchWithinFiles doesn't care about the author                  
  76.                     FileStream fs = new FileStream(f.FullName, FileMode.Open, FileAccess.Read, FileShare.None);
  77.                     clsPrayerInfo oInfo = new clsPrayerInfo();                    
  78.  
  79.                     try {
  80.                         BinaryFormatter bFormatter = new BinaryFormatter();
  81.                         clsPrayer prayer = (clsPrayer)bFormatter.Deserialize(fs);
  82.                         string contents = prayer.content.Trim().ToLower();
  83.                         if (contents.Contains(searchedForPhrase)) {
  84.                             blnPassesSearchPhrase = true;
  85.                             oInfo = new clsPrayerInfo(prayer, f.FullName);
  86.                             int selStart = contents.IndexOf(searchedForPhrase);
  87.                             oInfo.StartOfSelection = selStart;                            
  88.                             #region determineIfWePassTheTimeConstraint
  89.                             if (time_constraint == (int)TimeConstraint.NoConstraint) {
  90.                                 blnPassesTimeConstraint = true;
  91.                             } else {
  92.                                 DateTime rightNow = DateTime.Now;
  93.                                 TimeSpan ts = rightNow.Subtract(oInfo.lastModified);
  94.                                 totalSeconds = ts.TotalSeconds;
  95.                                 switch (time_constraint) {
  96.                                     case (int)TimeConstraint.PastWeek:
  97.                                         if (totalSeconds <= 604800) { blnPassesTimeConstraint = true; }
  98.                                         break;
  99.                                     case (int)TimeConstraint.PastMonth:
  100.                                         if (totalSeconds <= 2592000) { blnPassesTimeConstraint = true; }
  101.                                         break;
  102.                                     case (int)TimeConstraint.PastYear:
  103.                                         if (totalSeconds <= 31536000) { blnPassesTimeConstraint = true; }
  104.                                         break;
  105.                                 }
  106.                             }
  107.                             #endregion
  108.                         } else {
  109.                             blnPassesSearchPhrase = false;
  110.                         }
  111.  
  112.                         examined_so_far++;
  113.                         log.write("We have examined this many files: " + examined_so_far.ToString());
  114.  
  115.                         if (blnPassesTimeConstraint && blnPassesSearchPhrase && blnPassesAuthor) {
  116.                             information.Add(oInfo);                            
  117.                             hits++;
  118.                         }
  119.  
  120.                     } catch (Exception exceptionOpeningPrayerFile) {
  121.                         string msgWithinFilesException = "Error in SearchWithinFiles portion of code in method bgWorkerSearch_DoWork(): " + exceptionOpeningPrayerFile.Message;
  122.                         log.write(msgWithinFilesException);
  123.                         MessageBox.Show(msgWithinFilesException, "Error Opening Prayer File During Search");
  124.                     }
  125.                     finally {
  126.                         if (fs != null) { fs.Close(); }
  127.                     }
  128.                     #endregion
  129.  
  130.                     fraction = (decimal)examined_so_far / (decimal)totalPrayerFiles;
  131.                     the_percent = Convert.ToInt32(fraction * 100);
  132.                     bgWorkerSearch.ReportProgress(the_percent);
  133.                     log.write("Records counted: " + examined_so_far.ToString() + " of " + totalPrayerFiles.ToString() + " (hits: " + hits.ToString() + ") -- " + the_percent.ToString() + " % complete...");
  134.                 }
  135.            
  136.             } else {
  137.  
  138.                 log.write("About to enter foreach loop for searching via tracking files...");
  139.                
  140.                 foreach (FileInfo f in fi) {
  141.  
  142.                     blnPassesTimeConstraint = false;
  143.                     blnPassesAuthor = false;
  144.                     blnPassesSearchPhrase = false;
  145.  
  146.                     if (f.FullName.ToLower().Contains("thumbs.db")) { continue; }
  147.                    
  148.                     #region codeForSearchingAgainstAuthorAndOrTagsUsingTrackingFiles
  149.                    
  150.                     clsPrayerInfo oInfo = new clsPrayerInfo();
  151.                     string pathToTracker = Path.Combine(pathToTrackingDirectory, Path.GetFileNameWithoutExtension(f.FullName));
  152.                     if (!File.Exists(pathToTracker)) {
  153.                         log.write("Tracking file doesn't exist: " + pathToTracker);
  154.                         continue;
  155.                     } else {
  156.                         log.write("The following tracking file DOES exist: " + pathToTracker);
  157.                     }
  158.                    
  159.                     FileStream fs = new FileStream(pathToTracker, FileMode.Open, FileAccess.Read, FileShare.None);
  160.                     try {
  161.  
  162.                         BinaryFormatter bFormatter = new BinaryFormatter();
  163.                         oInfo = (clsPrayerInfo)bFormatter.Deserialize(fs);
  164.                         oInfo.StartOfSelection = -1;
  165.                         DateTime rightNow = DateTime.Now;
  166.                         TimeSpan ts = rightNow.Subtract(oInfo.lastModified);
  167.                         totalSeconds = ts.TotalSeconds;
  168.  
  169.                         log.write("We were able to open the tracker...");
  170.  
  171.                         #region determineIfTheTimeConstraintPasses
  172.                         if (time_constraint == (int)TimeConstraint.NoConstraint) {
  173.                             blnPassesTimeConstraint = true;
  174.                         } else {
  175.                             switch (time_constraint) {
  176.                                 case (int)TimeConstraint.PastWeek:
  177.                                     if (totalSeconds <= 604800) { blnPassesTimeConstraint = true; }
  178.                                     break;
  179.                                 case (int)TimeConstraint.PastMonth:
  180.                                     if (totalSeconds <= 2592000) { blnPassesTimeConstraint = true; }
  181.                                     break;
  182.                                 case (int)TimeConstraint.PastYear:
  183.                                     if (totalSeconds <= 31536000) { blnPassesTimeConstraint = true; }
  184.                                     break;
  185.                             }
  186.                         }
  187.                         #endregion
  188.                         if (blnPassesTimeConstraint) {
  189.                             log.write("TimeConstraint passed in Search using Mode Normal or ExactMatch...");
  190.                             #region determineIfAuthorPasses
  191.                             if (searchedForAuthor.Length == 0) {
  192.                                 blnPassesAuthor = true;
  193.                             } else {
  194.                                 if (searchedForAuthor == oInfo.author.Trim().ToLower()) { blnPassesAuthor = true; }
  195.                             }
  196.                             #endregion
  197.                             if (blnPassesAuthor) {
  198.                                 #region determineIfSearchPhrasePasses
  199.                                 if (searchedForPhrase.Length == 0) {
  200.                                     blnPassesSearchPhrase = (arg.SearchType == (int)SearchType.Normal) ? true : false;
  201.                                 } else {
  202.                                     if (arg.SearchType == (int)SearchType.ExactMatch) {
  203.                                         blnPassesSearchPhrase = (searchedForPhrase == oInfo.tags.Trim().ToLower()) ? true : false;
  204.                                     } else {
  205.                                         blnPassesSearchPhrase = (oInfo.tags.Trim().ToLower().Contains(searchedForPhrase)) ? true : false;
  206.                                     }
  207.                                 }
  208.                                 #endregion
  209.                             }//end if (blnPassesAuthor)
  210.                         }//end if (blnPassesTimeContraint)
  211.  
  212.                         if (blnPassesSearchPhrase && blnPassesAuthor && blnPassesTimeConstraint) {
  213.                             information.Add(oInfo);
  214.                             hits++;
  215.                         }
  216.  
  217.                         examined_so_far++;
  218.                         log.write("We have examined this many files: " + examined_so_far.ToString());
  219.  
  220.                     } catch (Exception exception) {
  221.                         log.write("Exception caught while trying to load clsPrayerInfo data from this tracking file in bgWorkerSearch_DoWork(): " + Path.GetFileName(pathToTracker));
  222.                         log.write(exception.Message);
  223.                     }
  224.                     finally {
  225.                         if (fs != null) { fs.Close(); }
  226.                     }
  227.  
  228.                     #endregion
  229.                    
  230.                     fraction = (decimal)examined_so_far / (decimal)totalPrayerFiles;
  231.                     the_percent = Convert.ToInt32(fraction * 100);
  232.                     bgWorkerSearch.ReportProgress(the_percent);
  233.                     log.write("Records counted: " + examined_so_far.ToString() + " of " + totalPrayerFiles.ToString() + " (hits: " + hits.ToString() + ") -- " + the_percent.ToString() + " % complete...");
  234.                
  235.                 }
  236.            
  237.             }
  238.  
  239.             DateTime _finished = DateTime.Now;
  240.             TimeSpan tsOverall = _finished.Subtract(_start);
  241.             string duration = clsGetDurationDesc.getDurationDesc(tsOverall.TotalMilliseconds);
  242.  
  243.             clsSearcherResults oResults = new clsSearcherResults(information, duration, examined_so_far, hits);
  244.             e.Result = oResults;
  245.  
  246.             log.write("Now exiting bgWorkerSearch_DoWork()...");
  247.  
  248.         }

Screenshots (there are 8 more images in addition to the twelve shown here, but you'll have to download/install the program to discover them...)
KyrPrayerMinder.png
forOurStruggle.png
hearMyPrayer.png
fellAmongThorns.png
rescuedUsFromDarkness.png
lightOfTheWorld.png
AChildIsBorn.png
dietOfWurms.png
GodIsLove.png
inTheBeginning.png
lovesHisWife.png
rescuedUsFromDarkness.png
Installationrun the Inno Setup installer
Using the applicationpretty standard Windows application menu system, with some additional options.  Should be straightforward, although I intend to author a help file.
UninstallingRun the uninstaller that the installation provides
Known IssuesI've fixed quite a few minor issues. Let me know if you think you've found a bug: it's probably a feature ;)

138
My dad's Windows XP Home Pentium-4 machine has the Conficker virus, or some variant of it.  The reason I know this is that he passed the virus on to his external hard-drive (in USB enclosure), a USB thumb-drive, and his Windows XP Home laptop. 

Long story short: we've disinfected the external HD and thumb-drive, as well as the Windows laptop.  However, the Pentium-4 desktop PC seems royally screwed.  The DVD drive seems not to be working now, so even when I put a Kaspersky 10 Rescue DC in the drive and reboot, specifying CD-ROM as first boot device, we have no luck...

Managed to download and install Microsoft Security Essentials (he was running NO anti-virus initially, hence the virus), but we're unable to complete downloading of virus-definitions (presumably the virus is interfering).  Safe mode, no luck.  And his BIOS is too old to be able to allow booting from a USB.

Summary: I cannot get at the problem in any of the usual ways.  I'm wondering if I removed the hard drive and put it in an external HD enclosure, hooked that to a PC running MSE, if we could disinfect the drive, then reinstall it in his Pentium-4 desktop PC and go from there.

Recommendations?

139
For anyone who owns a Dell laptop and wants to run a Linux distro:

Many Dell laptops come equipped with the Dell WLAN 1397 mini-wifi card.  I've had a Dell Inspiron 1545 for several years, and have tried several Linux distros.  The only two I have found that detected my Broadcom router's wireless easily, without any hassle on my part, are xPUD and LucidPuppy.  LucidPuppy was a breeze, and looks very nice.  Very attractive icons and overall theme.

If anyone is interested, I recommended installing LucidPuppy to USB, along with a variety of recovery, antivirus, and other ISOs, via SARDU.

The only thing you may need to do to enable wireless router connection on your Dell laptop is copy any subfolders in C:\Drivers to the root of the /puppy/ folder on your USB pen-drive.

Great stuff!!  :up:

140
Living Room / Migrating Win7 installation to SSD
« on: September 06, 2011, 09:07 PM »
Will this work as described?  If the consensus is "Yes", then I'll describe what I'd like to do, and see the community's reaction and advice.

141
Just successfully installed Virtualbox, then installed Win XP Pro virtually.  Really cool stuff, I'm hooked!

142
Didn't see this particular question covered in any of the other Macrium Reflect threads.

I've used Macrium Reflect on a Win7 laptop to create a backup image.  I had Reflect write the image to a 500Gb Memorex external drive, which apparently is formatted as FAT32.  Therefore, because of the FAT32 limitations, Reflect created multiple 4Gb images sequentially, rather than one larger image as it did on my NTFS MyBook that's attached to my desktop PC.

My question is, if ran another backup and had it write the image to my laptop's NTFS drive, it would create one large image file.  And if I then copied that to the Memorex drive, would that image be functional in the event that I needed to use it in an emergency?  In other words, if I copied a larger-than-4-GB image to a FAT32 drive, could it be accessed and used successfully in an emergency to restore my Windows partition?  Or, do I instead need to format the current FAT32 drive as NTFS and re-run Reflect, creating the backup on the newly formatted external drive?

I realize that the multiple images as they currently exist on the FAT32 drive can be used as-is with success.  I just prefer a single image file.

143
Living Room / Anyone else using Ramdisk in Windows 7?
« on: August 25, 2011, 08:59 PM »
I installed RAMdisk driver-level utility and configured it for 2 GB.  Re-running NovaBench, my benchmark score rose from 382 to 425.  The computer seems to handle noticeably snappier, though perhaps that is merely my expectations affecting my perceptions.  Has anyone else used RAMdisk, or something similar.  Your results?

144
Developer's Corner / HyperNext, anyone?
« on: August 12, 2011, 09:09 PM »
Has anyone used HyperNext?

145
Living Room / Bought a desktop and monitor today
« on: August 12, 2011, 07:18 PM »
I bought this desktop and monitor today.  Would have got a bigger monitor, but had to get one whose dimensions (including the stand) will fit my computer desk.

146
General Software Discussion / Auto-download from DC with WinSCP
« on: August 11, 2011, 11:49 AM »
I wonder if this is permissible and possible: I'd like to automate something that, currently, I'm doing manually.  I backup my Flatpress Blog by downloading it to my MyBook using Filezilla.  I understand that WinSCP can be used in console mode with an associated text file acting as a script.  I'm wondering (1) if this is permissible even if I get it working and (2) if permissible, does anyone have any experience and can provide a sample script. 

All I want is a WinSCP script to automate downloading my /flatpress/ directory to my MyBook.  Then I can use Task Scheduler to automate this.

148
Living Room / Fellas, Don't P*ss off your wife or girlfriend
« on: August 02, 2011, 07:20 PM »
heelKiller.jpg

This woman allegedly beat her boyfriend to death with the spiked heel of a stiletto shoe...

Read more: http://www.dailymail.co.uk/news/article-2021420/Thelma-Carter-stiletto-murder-Boyfriend-Robert-Higdon-killed-heel-head.html#ixzz1Tv82PPgn

149
N.A.N.Y. 2012 / NANY 2012 Release: Found Money
« on: July 27, 2011, 08:39 PM »
NANY 2012 Entry Information

Application Name Found Money
Version 1.0.1.6
Short Descriptionmanage your pocket change or "found money" and track it over time...
Supported OSes Windows XP forward
Setup File link to download setup file
PAD file URLhttp://kyrathaba.dcm...y/FoundMoney_PAD.xml
System Requirementsrequires .NET 4.0 Framework (installer will D/L and install it if needed)
Author Infocoded by kyrathaba | Profile page | Kyrathaba DC page | author of Kyrathaba's Source Code Line Counter. My past NANY entries include: Crocus Contacts, Blackjack, and NANY Excuse Manager.
DescriptionWe all do it: find a dime on the sidewalk, or a quarter in the floorboard of our vehicle.  Lots of people pick these up as "found money".  Superstitious people sometimes make sure the coin is heads-up first, though :)  And many people empty their pockets at the end of the work-day, and save their pocket change.  I myself have a separate coffee mug for each coin type: pennies, nickels, dimes, quarters.  Naturally, each mug is a DC mug...

I've been doing this for a long time.  Several times over the years I've emptied a big jar of coins and cashed out $200 to $350 at my local bank.  Wouldn't it be nice if there was a program, preferably FREE, that tracked this "found money" (or the money your kid sticks in his or her piggy-bank)?  Well, thankfully, DC member caddo requested just such an app and, intrigued, I created it.  I give you "Found Money"!  For anyone wanting background on this app, you may refer to [url=https://www.donationcoder.com/forum/index.php?topic=27207.0]this link.
Features
  • add each "find", specifying the number of each type of coin and bill found, the location it was found, and the date.
  • edit previously saved files (maybe you accidentally assigned the wrong date, or got the number of quarters wrong, etc.)
  • show and browse data for all saved records, or for a subset of those records falling inclusively between two dates
  • intelligently query the records: "Now what day was that when I found the silver dollar in the men's lavatory?"
  • pie charts visually show the ratio of coins to other coins, bills to other bills
  • alongside the pie charts is a textual breakdown of coin/bill percentages, both of total coins vs bills, and in terms of overall money
Screenshots
Installationuse the Inno Setup installer
Using the applicationAny special pointers about using the app should go here...
Uninstallinguse Windows' Add/Remove Programs applet, or your favorite uninstaller, or the built-in Inno Setup uninstaller
Known Issuesnone known: please report any your find, preferably with specific steps to reproduce the error, and a screenshot of the problem



150
Living Room / Matrix-style tech becoming a reality?
« on: July 10, 2011, 09:56 AM »
Sure, we’re not quite at the point where we’re teleporting about or living in space “Jetson’s” style, but technology has made some impressive advancements, even in just the last twenty years. Now, it would seem, that Dr. Theodore Berger and his team of scientists at the University of South California’s Viterbi School of engineering have built a microchip that can actually make the wearer (thus far, rats) know things. It’s a chip that is inserted into their brains, almost Matrix style. Sounds pretty interesting, right?

Read more...

Pages: prev1 2 3 4 5 [6] 7 8 9 10next