.

The online home of the Federal Adams Family.

You are an anonymous visitor. There is more content in this site that is not being shown. To obtain further access, please authenticate if you think you are a known visitor, or find more possibilities here if you are a new-comer. Thank you.


Manoah F. Adams - Programming

Introduction

Hello! I have had my hands at a keyboard since I was five.... that doesn't make me a computer geek though ... just familiar and at ease with the subject. All of my programming thus far has been driven by personal utility, and for the fun of it (it also has a pleasantly linear work/result ratio, unlike, say law or politics?).

This listing of my projects includes both published and unpublished items, as it intially is here just to show you what I am up to, and as well because I am not sure how many people there are out there still interested in code for the PowerPC era (and things like dependency versioning and upgrade procedures can be handled more easily when I know I am the only user).

However, I will try and publish my code and projects as they reach maturity and plausible utility to a broader audience.

If you are eager to use or develop any of these projects that I haven't yet published, let me know (developer@<this domain name>)

As you peruse this list, you will probably notice a few things:

(1) I have an awful lot of 'registries' -- which is something that stems from my penchant for record keeping (which may come from my German mother, or from all the years of sorting parts and wires that my dad needed for the classroom). It might seem a little overboard to make a custom app for these kinds of things, instead using a database program like Filemaker, but Cocoa is easy enough that making a custom app is not that much slower than designing a database, and further having a custom app provides so much opportunity for actually doing something with that data (i.e. statistics and reporting).

(2) I seem to be spread rather thin with all these projects open at once -- which is true, and the quality (for the moment) does suffer, but I can't help it. They need to be made, and something is better than nothing.

(3) I seem to be re-inventing the wheel a lot. -- I probably am, but then at least it is my wheel - spoked just the way I want it, and I also learn much from the process too.

(4) I it also noteworthy that as a general rule, each of my projects serves as a test-bench or learning environment for a particular code-base of mine or API/technology of Apple's.

Think I'm out on a limb developing for PowerPC? Check out the PowerPC communty:
MacPowerPC | PowerPC Liberation | Viva PowerPC | System Folder | ClassicHasClass - TenFourFox | PPC Luddite | G3-5 Users Group


Projects


Libraries and Helpers

FAFStringScanner

A custom string scanner better suited to my parsing needs than NSScanner. It supports sequential scanning by character, token, and literal string match. It also handles reading balanced spans of text (that is, text enclosed in braces, brackets, quotes, and parenthesis). API is fairly stable, but more tests and documentation are needed. It operates on a 'cursor' mode, rather than 'insertion point', so the scan location always points to a character, rather than between characters.

FAFPHPSerializer

A class to translate to and from PHP-serialized simple objects, and corresponding Foundation objects. It is employed frequently in the program that I use to administer this site.

FAFOutlineView

A subclass replacement for NSOutlineView and NSTableView incorporating a different datasource methodology and common fixes and additions such as label colors and column spanning. I use it in nearly all of my applications.

FAFGraphiteWindow

FAFGraphiteWindow is part of my ongoing efforts to return to the visual interface of OS-9 which I miss terribly. It has a few quirks (not all behaviors of a standard window have been replicated) but it works on everything from ppc32/Leopard to x86_64 El Capitan. (Which surprised me).

Compatibility: OS-X 10.4 - 10.11 | PPC32 - Intel64

The Big Four

screenshot showing hello world type demo

ObjectiveApplescript

A development tool to aid in making AppleScript behave in a more object-oriented fashion and to provide a better run-time framework for simpler creation and more reliable operation of AppleScript scripts and applications.

I am not sure how usefull this project will be to anyone, but I can't resist doing it, even if it never gets used, since this is the most exciting of my projects.

Compatibility: OS-X Tiger, Leopard | PPC32

Loozer

Loozer is intended as a replacement for Apple's Finder, implementing features long wanted by my dad and myself. It is still in the experimental stage.

FederalAdamsFamily.com

This website is the fourth of my primary projects. I've had it for some (I think) seven years ... but it has gotten less development effort than my other primary projects ... mostly because I don't really enjoy web programming nearly so much as regular app development. (To me it feels so fragmented and disorganized). Nevertheless it is a necessity and so I put my best effort into it. This website is built from scratch using the LAMP stack with a few base-level tools and libraries - but definitely no existing Content-Management-System.

I have periodically explored the use of existing CMS systems such as Drupal and Wordpress, but always wind up concluding that due to the needs of this site (wide variation in content type, access control issues, etc) I would spend more effort taloring an exisisting system than starting from the ground up. Besides, I can't seem to help doing my own way. (For one thing the bloat of many systems provides me with at least one excuse for a custom solution)


Secondary Projects

BorkPad

Created by BorkWare, 2003, inspired by the Mac OS 9 NotePad.

Original BorkPad procured from Borkware, under a BSD license.

I liked this applet, so I brought it further along.

  • Changed window type to FAFGraphiteWindow
  • Added headline list, mimicking the behaviour of iOS notepad
  • Added scroll-to-bottom preference control for that existing behaviour
Compatibility: OS-X 10.4 - 10.11 | PPC32 - Intel64

Now available for download as modified.

FAF Book Registry











FAF Movie Registry











FAFFuelLogKeeper

A small app to keep fuel (gas) logs on our various vehicles. Once upon a time I used an Excel spreadsheet for this task, however a custom app can handle the data more inteligently. FAF Fuel Log Keeper keeps a fillup-to-fillup MPG calculation, attempts to autofill some values, and allows for interspacing of service event entries, and preliminary support for printable service history.

It is my first, and thus far only, NSDocument based app. It also demonstrates use of column-spanning with FAFOutlineView.

Download |

Center Store Manager Assistant

Center Store Manager Assistant is a utility I use to aid me in my work on the night crew of a local grocery store.

Onan Control

We have a 5K genset which we use to charge a set of deep-cycle batteries. For several years we have been manually monitoring the pack voltage and turning the generator on and off accordingly.

Last month (6/2017) I finally realized a long time dream of automating the control of the generator. Ever since I heard of the Raspberry Pi single-board-computer (some two years ago) I have been wanting to appropriate one for the purpose of generator control. I was waylayed for a long time due (apart from lack of time) to the challenge of adding analog input to the Raspberry. (Not really a big deal but still streatching my skill set). Thankfully the popularity of the Pi resulted in production of an add-on board which allowed me to bypass the (for me) hardest part of the project - the electrical engineering - and focus on assembly and the sofware.

Now I have a python program on the Pi doing the actual monitor and control, and an ObjC application on my Mac providing 'remote' (over LAN) control of the (usually) headless Raspberry.


Other Projects

WaitingForLoginWindow hack

A fun but useless little hack to the startup progress bar

System Requirements: OS-X Tiger (only !)
Development Requirements: PDF editor, like Adobe Acrobat; HEX editor like HexEdit, HexFeind, or 0xED

36 Hour Weather check (cmd. line scpt.)

I got tired of loading the whole weather.com page just to check the local weather forcast, so I made a little script that fetches the forcast page and extracts the info. I use curl to fetch the page (mobile verison) and python to parse it. The BeautifulSoup module (not mine) does the hard work. You will need to adjust the url to get your forecast.
The script is weather-36hr.sh, which calls the adjacent weather-36hr-.sh to process the data. I am sure someone could integrate the two, but this was the simplest for me.

System Requirements: Python 2.7; BeautifulSoup by Leonard Richardson
Download: weather-36hr.zip

dmg extracter (cmd. line scpt.)

At some popint in my travels I had downloaded a bunch of snippets of software (or clipart, I dont remember) all packed in tiny dmg files instead of zip as is usual for such small (e.g. 24K, 100K, ...) items. It got to be tedious to open the disk image, create a directory by that name, copy the files, unmount the image, so I scripted it.
I has been a long time since I used it so I dont remember if it handles absolute paths or, more likely, not, so cd to the dmg's directory first.

System Requirements: Tiger+
Download: dmg-to-directory.sh.zip

PowerPrefs

A small utility for the easy access of hidden application preferences.
This was one of my first apps, so it is pretty nearly useless. Since creating this, I have come across two other programs, made by others, in the same category, that are far more useful:
- TweakFreak, which has a zillion features, but is a little buggy (freaky?).
- TinkerTool, which comes in free and licensed forms, and is very easy to use and well featured. (and is now my favorite). It has one feature particlarly worth the while: "Accelerate animation when rolling out sheets" -- amazing: I wonder how much of my life I have wasted waiting for those sheets to roll up and down! I love it!

[ released | idle development | occasional use ]

System Requirements: OS-X Panther, PPC
Development Requirements: Xcode 1.5
Download: PowerPrefs 1.2.1
Status: Public GPL release, no active development since 2009

Growler

A GUI wrapper for the growlnotify utility, for communicating between people on local machines, as if we didnt have iChat!.

[ not released | idle development | occasional use ]

System Requirements: OS-X Tiger, PPC; Growl
Development Requirements: Xcode

Copyright 2011-2024, Federal Adams Family : Mark-, Dorothee-, and Manoah- Adams
[ Your IP: 18.116.63.107 ]