# How I write apps

This is a response to an email..

I start with basic functionality. It doesn't need a GUI unless it really does. I make the app default to best human defaults as I see them, yet always remembering things a user chooses when decisions need to be made.

I aim for Newton, distributing energy along a line; CPU cycles the heavy-lifters, like pyramid builders marching inclined planes; yet remembering my Einstein; knowing that time is always to be had. I tend towards intelligence over efficiency and test and revisit important code compulsively, seeking ever more efficient means.

I want my computers to "know me" and so I code programs to run with as little human input as possible, having gotten to know me already, see! No requested function is too trivial, if I can add it without disturbing the efficiency of existing code and can find the time, I add it! I want my apps to know all the human variations!

But of course, apps can't pop a hundred, even a dozen dialogs. Where there is serious question, I lean towards doing a thing the best way, offering the user a chance to see how I, after decades of continual consideration, consider some way to be the best way of doing a particular thing, be it data verification or picking colors. If they don't agree, fine; set so-and-so preference. There is always a preference! From that point, the app works your way.

And so they build up that way. Everything added carefully, mindfully. My test suites grow with each release, each bug report. I run them joyfully!

for now..

;o) Cor

# Toggle Undo

Or maybe "Twiddle Undo". I realize that I use this, on average, around 2,396 times a day. I figure it might save you time, too; for me it's muscle memory, a part of typing, so here goes..

In my text editor (currently EditPlus), I have a macro which performs one, or rather two functions.

1. Undo the last thing I did (Ctrl+Z, right!)
2. Redo the last thing I undid (that is a word! You may not have a keyboard shortcut for this.)

If not immediately apparent, this moves your cursor/caret to "the last thing I did".

We write code, we debug and examine other parts of the code; any documents; we write more code; usually right where we left off. I use Ctrl+\ as my HotKey for this macro. I'm hitting that all day!

If your text editor/IDE doesn't do stuff like this, switch editors.

for now..

;o) Cor

# BackUp 0.9.9.5

I this morning uploaded a small update to BackUp, the changes..

~   BackUp will now automatically add a trailing slash to the target
directory (when chosen with the button) to prevent unwary users from
getting backups in D:\backupSource, or similar locations. You can still
remove it for the actual copy operation, if required.

~   When an operation is paused, the "[paused]" title will no longer time-
out.

~   The "Run BackUp Set" button will now, like the QuickCopy run button
("Do It!"), transform into an Abort button during a BackUp operation.

*   Full tray menu now correctly displays during QuickCopy operations,
enabling you to pause/abort the operation from there, as well as get to
the preferences (ini file).

*   Fixed the folder select dialog to correctly open in the previously
chosen directories.

*   Fixed the tray menu not being reset correctly after a BackUp operation
when the GUI is running.

*   Fixed an issue where aborting an operation during the paused state would
exit BackUp.

for now..

;o) Cor

# Project Folders.. ALL of 'em!

I don't know about you, but when I'm working on a particular project, I tend to have a heap of related folders open on my desktop.

For instance, when I'm working on checksum, I have Eleven folders that are always open. Opening these manually is choreful, so I came up with a solution which it's about time I shared. It's very simple..

First, create a batch file, say "project-checksum.bat", containing something like this..

:: open folders for a project
::
:: checksum..
::

explorer "I:\Cor\Dev"
explorer "I:\Cor\Dev\checksum"
explorer "C:\Program Files (x86)\corz\checksum"
explorer "C:\Program Files\corz\checksum"
explorer "I:\Cor\Dev\checksum\distro\checksum"
explorer "I:\Cor\Dev\checksum\distro\checksum_x64"
explorer "O:\windows\software\checksum"
explorer "B:\Test\checksum"
explorer "C:\Users\cor\AppData\Roaming\corz\checksum"
explorer "M:\"

Then create a shortcut to launch the batch file. Its command-line would go something like this..

%SystemRoot%\system32\cmd.exe /C "C:\Toolbars\Active Scripts\bat\project-checksum.bat"

Obviously, the path will be different on your system, but the idea is the same. Click the shortcut and Voila! Eleven folders open on my desktop.

Their positions on my desktop(s) are always the same, thanks to the wonderful ShellFolderFix.

I keep the shortcut in a menu of similar project launchers, activated from a Coolbarz ToolBar. By the way, the Coolbarz web site has recently vanished, sadly, but downloads can still be found around the web. Google that.

So there you have it, a time-saving, sanity-saving system for getting all your relevant folders launched with a single click.

for now..

;o) Cor

# BackUp 0.9.9.3

My "just do it" BackUp app has went from Alpha to ßeta.

It has a simple GUI these days, in addition to the ini-driven logic which underpins its regular operations, working as an unstoppable copier with optional hash-checking.