ScratchPadd 4.0

Yes, it's back. The goofiest, ugliest, note taking and utility app ever is back. Moetly re-written in Cocoa to carry us into the glorious future.

Download ScratchPadd 4.0.6 copyright 1991-2014 Ravenware Software LLC & C.K. Haun, all rights reserved worldwide. ScratchPadd is a free application.

What is it?
ScratchPadd is an idea organizer and note-keeper. It's also the app I use to test new things, so it can get to be a bit kitchen-sinky and fun sometimes.

This is a complete re-write, so ScratchPadd is starting with fundementals again, many of the things ScratchPadd did in System 7 don't make any sense in Mac OS X. But check back often, since I tend to revise ScratchPadd a lot.

Version 4.0.6 25 Feb 2014

Table of Contents

ScratchPadd organizes your thoughts into different documents, called Padds, which consist of Pages.
Each Page has 4 short text fields, and one large text field.
You can have as many Pages as you would like in a Padd. Command-option-N creates a new Page at teh end of the Padd. Selecting "Padd>Insert a Page" inserts a Page right behind the Page you're currently viewing.

Move between Pages one of 3 ways;

Each Page can be individually locked by clicking the Locked checkbox in the toolbar. This will keep you from accidentally changing or deleting text.

Each Page can be assigned a tag, the defaults being Normal, Interesting, Priority and Urgent. Set the flag with the "Flag" popup in the toolbar. Setting a flag creates a thin color border on that Page to catch your eye as you're flipping through Pages. You can also have the Padd show only Pages with a specific flag, choose which flagged pages you want to see under the Padd menu Display submenu


The menu will show you what flags are applied in this Padd. Selecting "Priority", for example, will hide all the Normal, Interesting, and Urgent flagged pages and show only Priority. Select 'All Pages' to go back to seeing everything.

You find information in each Padd by selecting Find from the Edit menu>Find submenu, or by hitting command-F. The Find drawer will open, enter textand Finding will happen, slect the result you're interested and go to that Page.

Bonus points if you know what those lines of text are from.

Multi-Padd Finding
New in this version of ScratchPadd is the Multi-Padd Find window.

Enter text to find, and ScratchPadd will find it in all currently opened Padds. Click the disclosure triangle by the document name, and a preview of the text found will appear, click on any result and that Padd will come forward with the Page containing that text selected.

ScrtachPadd can import two types of files, old ScratchPadd files, and anything else. Simply select "import" from the File menu and select a file.
If ScratchPadd can identify the file as an old ScratchPadd file, it will create a new Padd with the same layout as the original file. ScratchPadd can import any file from previous versions of ScratchPadd back to 1993. Files create prior to 1993 cannot be imported becasue I cannot figure out the file format, don't know what the heck I did.
If ScratchPadd cannot identify the file, it will ask you if you'd like to import it as raw data. If you click "import as raw data" ScratchPadd will create a new Padd and import the raw data in the file with no interpretation It will put 20,000 characters of data per page, so if the file is 5,ooo characters/bytes long you'll get a new Padd with one Page, if it's 100,000 bytes you'll get 5 new pages, and so on.

I do not ever expect to add more complex import interpretation to ScratchPadd, in my experience that's a never-ending vortex of work that I don't want to get into.

Any Padd can be exported. Select export from the File menu and the current Padd will be exported as a raw text file to the location you choose.


You can customize various aspets of the look of Padds. Choose "Customize..." from the Padd>Display menu or from the Flag popup in the toolbar and you'll be presented with a sheet


You can then change the flag text and flag border colors. You can also change the basic inner color of the Padd.

Clicking "restore to defaults" puts the text and colors back to the originals.

New in 4.0.3 is a privacy feature

NOTE: In Mavericks the screen has been removed due to weird bugs I can't figure out. Instead of the thing you see to the left, you just see the words private in the 4 text fields. Still works, just not as sexy. I'm leaving this graphic here to remind myself to fix this someday.

Click the privacy checkbox and the current page will become hidden from casual onlookers. You'll also be prompted for a password to make this page non-private.

Privacy is on a Page by Page basis, all pages have their own privacy setting and their own passwords.

NOTE: This is NOT security. It's simple privacy to keep casual eyes off your Padd data. But it is not secure, your file data, for example, is not changed, only the view on the screen is blocked. Don't trust really sensitive information to this!

Also note that the first 20 characters of line 1 of the Page will still be displayed in the card navigation popup menu, unobscured. So to be safe don't put anything you don't want glanced at in line 1.

You can also change a password later, select "Change privacy password" from the Padd menu.


4.0.5 adds page sorting.

Select Sort Pages from the Padd menu and a sheet will drop in front of the window.

The first lines of each Page are shown (or the words No line one if there is no text in line one). Drag to sort. Hit Revert to remove any changes. Hit Done to finish.




Where are there....
Lots of File finding utilities out there, heck, the Finder is actually not bad at it.
But they don't solve the problem I sometimes have. I don't want to find a specific file, I want to find where a kind of file is. This comes up for me when I want to, for example, find a particular picture that I've lost on my hard drive. I have backups of backups, and file hierarchies imported from many machines over the years, so a simple look into Pictures is not going to work.

Regular searches file the files of a specific type. But that's not always what I want, getting a list of 1,000s of jpgs that I have to wade through is not fun.

So the Where are there.... feature under the Tools menu was born. Type in a file type extension, then hit Search, and almost all the directories on your hard drive will be searhed for that kind of file, and if a directory has one of those types of files it will be added to the list, like so;

Each one of those directories has at least one txt file. Double-click on the item and it will be shown in the Finder. No more wading through a list of files.

As you can see, there is a Cached popup menu in the toolbar. Where are there.... caches previous searches so you don't have to go through the long process again.

You can save Wherre are there.... files, or you can export the list of directories to a text file, use the File menu of course.

Note that Where are there.... searches inside bundles (not applications, other bundles) so for example a Keynote file, which is actualy a bundle, will show up if it contains this type of file, you can use "show package contents" in the Finder to open the bunlde and look inside.

WARNING: Where are there.... can take a whole heck of a lot of time as it burrows deep into your hard drive and examines every file and directory. Let it churn. Or hit cancel, of course, but this will take quite a while. As long as the little spinny thing is spinning, it's still searching

Words Inna File
I'm writing another app that requires me to build word lists from text files (app is now released, check out the weird Machine Essays). I wrote some code to do that, and we'll see where that goes in that other, bizzaire, app. But since I had the word list builder and had a little fun playing with it, I figured I'd throw it into ScratchPadd, you might have some fun with it.

What it does.
Words Inna File looks through a ASCII/UTF8 stored file and pulls all the unique words from that file, and organizes them into letter groups. Then you can look at those groups.

Excited yet? There's more!
You can also export those lists of unique words into a text file.

Whew, I'll let you catch your breath. No, it doesn't do anything else. But I think it's kinda neat, and someone might actually find a use for it, so I included it in ScratchPadd. I'll let you know here when the other app, that really uses this, is ready. Select Words Inna File from the Tools menu to bring up the window. BTW, this only works with alphabets that have 26 letters, becasue that's all I care about. And Unicode is right out, export to plain text if you want a scan.

There are two tables in the window. The table on the left is the Word Groups table, where you create and manage complete word lists.
The table on the right is the list of words for each letter in the word group. The slider goes to each letter, from A at the top to Z at the bottom.

To start, click the + button under the Word Groups table to create an untitled word group.

You can add words to a word group in two ways, by typing htem in or by scanning a file. Obviously, scanning a file is the intent.

When Words Inna File scans a file it looks for groups of ASCII characters bracketed by a delimter character. By default that character is and ASCII space, hex 0x20. That is set by the Delimter popup button under the Word Group table. There are two other pre-set delimeters in that list, line feed (0x0A) and carrage return (0x0D) that you can select. You can also select other and enter a single hex character in the edit box next to the popup. Only single-character delimters are allowed.

Now go get some words. Click the Add from file button and you'll be prompted to select a file to scan for words.
Note that this can be any type of file you want to look at. Obviously, scanning a text file is the most common use of Words Inna File but it will happily scan a jpeg, a zip, an mp3, whatever. Some interesting things can be found that way.

The scan begins. The scan is actually done on a seperate thread, so scanning very large files, or files with a great many unique words, happens in the background without stopping you from doing other things.

When the scan is done (almost instantly in most cases) the unique words in that file will be displayed in the right hand list.

Thats it!

Click Export to export your fancy word lists. Word lists can be exported to a text file, or added to a existing Padd, or into a new Padd. The Export options look like

Pick a text file, a new Padd, or an existing Padd from the popup

And choose an output delimeter from that popup

Other things to do
- You can delete word groups by selecting them in the left hand box and clicking the lower minus button
- You can add words one-by-one by typing them in to the edit box next to the Add this word button, then clicking that button
- You can delete individual words one-by-one by selecting them in the word list and clicking the minus button under that list.
- You can filter the word list, just type characters into the Filter edit box and only those words containg those letters will be in the list
- You can save any word list by selecting it in the list and using the Save menu item
- Same thing with opening them, just use the Open menu item
- The Cancel button will rarely be needed, and will rarely light up. However, tehre are some conditions where a scan might take quite a while, and you might want to cancel it. If the scan is taking a while, the button will be active and you can cancel if you'd like.
- You can merge two word groups by saving both of them to disk, select one in the list, then use Add from file to select the other. I will make this simpler maybe, but I have no idea of anyone will even use this so you need to tell me.

What it's doing
When a new word group is created, 26 empty letter groups are created. When you select a file to add, the file is loaded into memory and handed off to the parser. The parser is a seperate thread. The parser walks through the input file looking for groups of characters seperated by the delimter character. It lower-cases all the ASCII characters it finds(I usually upper case, decided to lower case this time) between delimters, then searches through all the words it has already found to see if this one has been found yet. If it has been found, on to the next letter group. If it has not been found, it's added to that letter group. Continue until the whole file has been processed.
It's pretty fast, I spent a lot of time optimizing it. It will parse through, for example, a 175 mbyte text file in about 3 seconds. The gating item on how long it takes is the number of unique words. The more unique words, the more time it takes to index them. The 175 mybte file I referenced there ends up having only about 16,000 unique words. I have a 2.5 mbyte file with more than 200,000 unique words, and that takes minutes to parse. You'll probably be surprised by how many unique words are in most text. Scanning is pretty good, but not perfect. It will pick up non-words if you scan something like a mail database, where headers and addresses might look like words.

If this all sounds like a lot of work for nothing, maybe so. But I had fun writing it, and you may have fun playing around with it. Historical note, the 1st version of this was written in 1992, this is much better. I am not including the Word list or Letter group classes in the source window, if you are interested in seeing them email me.

Semi-random features
Added two features to the Speech submenu

Speak with bouncing ball will speak all the text in the bottom, large, text field and highlight each word as it's spoken. Just becasue it can.

Speak selection into sound file asks you for a file location and name, then speaks the currently selected text into that file, saved as an AIFF sound file that you can use whereever else you would like.

Source Code
Under the Tools menu the Source submenu brings up a window containing much of the source to ScratchPadd. I do this to scare you and addle programmers brains, it has often been said that raw C.K. source code is hazardous to normal programmers brains, so look at your risk. All the code is not there, you cannot build ScratchPadd, but you can see how I'm doing things if you're interested.

NOTE: I do not want your feedback on any of this code. It's probably not the best way to do anything, but it's my way and it works, and it's staying the way it is.

Version History
4.0.5 23 Aug 2013


4.0.3 27 April 2013

4.0.2 December 2012
Added the Source Code window
Added the Where are there.... feature
Fixed initial text feild selection in the Find drawer

4.0.1 November 3 2012
Changed finding from a sheet to a drawer, like this a lot better.

4.0 October 31 2012
Initial Cocoa version.

The main reason why I started ScratchPadd was to show Louis that the Find routine I had worked out was reasonably fast and small, so thanks to him. That was in 1989, he'll never see this.

Back to Software