This is an informal collection of software written here. It ranges from the best to the oldest, from libraries to snippets. This web page was generated using SPIN_py, whilst the desktop mixer adjusts the music/tv volume.
libs_apps is a large collection of code (libraries and apps). This HTML table shows it as several sub-sections, as well as the whole. You can tell by the filename.
These packages work best on Linux, or UNIX boxes. WIN32 developers will also find them usable (maybe even useful), but they aren't .zip files. They are compressed .tgz tarballs (.tar.gz). Try http://www.7-zip.org WinZip or other.
ALL Linux/UNIX users, experienced and novice, will get good service from http://www.midnight-commander.org: a two panel file browser, and all-round swiss-army-knife. It helps you view MIME files inside .tgz files. I cannot recommend this text-based utility enough, though you do have to set a few options: pause_after_run_always, lynx_like_motion_yes, confirm_delete_yes, confirm_exit_no, internal_editor_maybe_not, save ...
| Name | Date | Size | Lang | Desc |
|---|---|---|---|---|
| IDEAS | 2011-04-19 | 797.8_K | C++ | Ideas: not quite sane ones |
| NOTES | 2011-01-02 | 1.0_K | LGPL NOTES for stuff to sort out | TEXT scratchings for 2011 |
| libs_apps | 2010-12-21 | 1343.3_K | C++ gtk | A moderate set of libraries and apps |
| libs_apps::tv_rem | 2010-12-21 | 1343.3_K | C++ | APP: switch tv channel |
| libs_apps::accts_gtk | 2010-12-21 | 1343.3_K | C++ gtk | APP: A table of financial accounts data and UK reports |
| libs_apps::sar_plot | 2010-12-21 | 1343.3_K | C++ | APP: Gather parse store and plot SAR -AMS data from Solaris, HP/UX, True64, AIX, ... |
| libs_apps::sar_parse | 2010-12-21 | 1343.3_K | C++ | APP: parse a SAR report |
| libs_apps::sar_data | 2010-12-21 | 1343.3_K | C++ | LIB: code concepts for the SAR data software |
| libs_apps::wclient | 2010-12-21 | 1343.3_K | C++ | APP: client/server socket test code |
| libs_apps::js_many | 2010-12-21 | 1343.3_K | C++ | APP: JavaScript with many plugins, such as accts_js |
| libs_apps::lib_base | 2010-12-21 | 1343.3_K | C++ | LIB: a basic library of buffers, objects, fd, event-driven-io |
| libs_apps::lib_base2 | 2010-12-21 | 1343.3_K | C++ | LIB: extended library of specific features: js gtk pdf ssl |
| libs_apps::lib_play | 2010-12-21 | 1343.3_K | C++ | LIB: play area - move to IDEAS |
| libs_apps::lib_media | 2010-12-21 | 1343.3_K | C++ | LIB: access to the sound mixer, radio, infra-red, ... |
| libs_apps::lib_inet | 2010-12-21 | 1343.3_K | C++ | LIB: internet ftp, http, ... |
| libs_apps::lib_accts | 2010-12-21 | 1343.3_K | C++ | LIB: code concepts for the accounting software |
| mm3_scan | 2010-08-03 | 24.2_K | C++ | Parse file.mm3 (old accounts) |
| utils_misc | 2009-11-09 | 17.6_K | C | Misc Utils that do useful things |
| mp3_hissy_fit | 2009-09-25 | 29.1_K | Python | process a tree of files, .wav .mp3 .cddb, least hiss, most fit |
| BLOG_PSG_TOKEN | 2009-07-10 | 875.5_K | utf8-en | some BLOGS from whenever |
| SPIN_py | 2008-11-24 | 212.6_K | C++ Python Module | SGML Parser 'SP' integrated as a Python module |
| tools_2000 | 2008-04-08 | 123.3_K | ksh | Build a standard GNU toolchain in a sensible prefix |
| PATH_TOOL | 2008-03-10 | 3.4_K | C++ | change PATH or other variables |
| scan | 2007-01-24 | 49.2_K | C++ | a parser to scan general texts |
| pygtk_menu_app | 2006-10-30 | 4.2_K | Python | A menu of runnable buttons |
| lib_sudoku | 2006-08-28 | 13.7_K | C++ | sudoku solver kit |
| NWA_parse | 2005-08-06 | 9.9_K | Python | parse FullStatement.csv from Nationwide Anglia |
| tests | 2004-12-06 | 5.8_K | C++ | test cases |
| sar_gather | 2004-09-30 | 5.6_K | ksh | edit crontab to collect SAR -AMS data |
| Pythag | 2004-06-12 | 14.1_K | Python/Tk | illustrate a proof of Pythagorus' triangle |
| YearZone | 2003-08-22 | 13.8_K | C++ | cached date+time to/from int convertion |
| snmp1 | 2003-07-12 | 6.1_K | C++ | Example SNMP program in C++ |
| web_play | 2003-04-04 | 16.9_K | PHP | PHP login and session |
| hp_info | 2001-07-04 | 3.3_K | ksh | Gather some info about an HP/UX box and its LVM layout |
| s_time | 0 ABSENT FILE | 0 | C | adjtime by a number of seconds |
| un_hex | 0 ABSENT FILE | 0 | C | convert ascii 2-byte hex numbers to bytes |
Ideas: not quite sane ones
This is a cooking pot where there are lots of half baked ideas. libs_apps will gradually move some of its chaff here. FP256 - fixed point arith and printer. bio - ssl bio as fd_selectable_ssl. enum_group - names against ints. loob - loob is not bool (eg pointer || NULL). slog1 - beginnings of syslog client/daemon. OBJ - how a pointer to an obj might look. ping - (using gtk_main solved deafness) Open_File/Counting_in_BINARY_From_Zero
Date:
2011-04-19
Lang:
C++
Size:
797.8_K
Download:
IDEAS-2011-04-19.tgz
TEXT scratchings for 2011
HAPPY NEW YEAR!! Its time to dust off SCAN, make it parse SCRIPTS, built a TREE STO that contains lots of C snippets, and generate C or C++ code from those bits (HaHa!!). Here are the latest meanderings, in .txt format
Date:
2011-01-02
Lang:
LGPL NOTES for stuff to sort out
Size:
1.0_K
Download:
NOTES-2011-01-02.tgz
A moderate set of libraries and apps
libs_apps is a code platform (libs) driven by a few tasks (apps). It has a refCounted, C++ object model, some containers, text buffers, wrapped_gtk_objects, linux device mixers (wrapped api), infra-red-api-wrapped, PDF generation, CSV accounting, JavaScript instumentation, persistent MMAP object storage, sar_parse, sar_plot display, ... all my code is moving into here (but I am going to move some of the experimental code out to ../IDEAS). The build system, is not out-of-the-box, but does cross-compile for WIN32, which is getting more api support (some kludged) these days. You're not supposed to use it all at once, I'm just pooling it so that it integrates, and grows in sync.
Date:
2010-12-21
Lang:
C++ gtk
Size:
1343.3_K
Download:
libs_apps-2010-12-21.tgz
switch tv channel
This is a major panel to watch TV. It uses lirc to send InfraRed to the set-top-cable-box, and the VCR. It uses /dev/radio to tune FM stations It uses xawtv to watch TV, and uses X11 atoms to send signals in the same way that xawtv-remote does. (switch channels) It uses /dev/mixer, (OSS emul if ALSA) to track volumes on a per-channel basis, and it does quite a good job at fading over the nasty CLICK that xawtv/bttv used to have when changing channel. It can run /dev/cdrom. but that needs a bit more work.
Date:
2010-12-21
Lang:
C++
Size:
1343.3_K
Download:
libs_apps-2010-12-21.tgz
A table of financial accounts data and UK reports
This is a cross between a spreadsheet and a database, with the rules in the code. It produces a nifty companies house report in PDF (still with the old API, its replacement is postponed again).
Date:
2010-12-21
Lang:
C++ gtk
Size:
1343.3_K
Download:
libs_apps-2010-12-21.tgz
Gather parse store and plot SAR -AMS data from Solaris, HP/UX, True64, AIX, ...
sar is a standard UNIX utility on Solaris, HP/UX, ... which collects System Activity samples every 60 seconds and outputs a wierd ascii report. That can be gathered by a script, gzip compressed, and collected. (See sar_gather, tarball in ../samples/.) Another machine can then parse the text, and build up a binary array of floating points in compressed blobs in SQL tables. They can then be plotted, along with data from other data collectors. The current version works well, for several years of 'batch collected' data. Future developments will move to online collection streams with re-transmission options for LAN down times.
Date:
2010-12-21
Lang:
C++
Size:
1343.3_K
Download:
libs_apps-2010-12-21.tgz
parse a SAR report
sar_parse reads the ASCII and gets it to the database.
Date:
2010-12-21
Lang:
C++
Size:
1343.3_K
Download:
libs_apps-2010-12-21.tgz
code concepts for the SAR data software
SAR data gets held in memory, in POST files, in remote SQL (MySQL or Postgres), all accessed through the dset_api.
Date:
2010-12-21
Lang:
C++
Size:
1343.3_K
Download:
libs_apps-2010-12-21.tgz
client/server socket test code
I dont do threading, mostly because of its slow-down overhead. Instead, I do event driven IO. Usually one packet contains a complete action. If that action blocks, and you have many connections, you should have many processes (apache style). wclient is a test frame for the HTTP client and server code, also a few other things in libs_apps.
Date:
2010-12-21
Lang:
C++
Size:
1343.3_K
Download:
libs_apps-2010-12-21.tgz
JavaScript with many plugins, such as accts_js
js_many is a JavaScript interpreter that can import modules (compiled in if not dynamically loaded DLL), so that you can load the ACCTS module, or the XXX module. I've written C++ modules for Tcl and Python, so why-o-why am I going down the JavaScript path? -- Tcl does have a secure model, but doesnt have struct-objects which auto-know when to call delete. Python has wonderful struct-objects, but doesnt have a secure model, and I want to be able to send scripts to the accountant that cant reformat the disk. Hindsight, says "create a Tcl struct object extension", but Tcl continues to refuse to add ClientData to Tcl_ObjType (actually two needed, ClientData_of_Module, ClientData_of_Type - or overload freeIntRepProc for the first, and extend struct for second).
Date:
2010-12-21
Lang:
C++
Size:
1343.3_K
Download:
libs_apps-2010-12-21.tgz
a basic library of buffers, objects, fd, event-driven-io
This is a library with core types such as reference-counted objects, smart pointers to them, buffers that stretch, event-driven file-descriptors, unix-time, etc (COMING SOON: u32_hilo i32_abcd)
Date:
2010-12-21
Lang:
C++
Size:
1343.3_K
Download:
libs_apps-2010-12-21.tgz
extended library of specific features: js gtk pdf ssl
Things like PDF, X11, Gtk, JavaScript, OpenSSL. If your app needs JS-instrumentation-scripting, here is one way of adding it. The SSL is much stonger, now that I have a use for it.
Date:
2010-12-21
Lang:
C++
Size:
1343.3_K
Download:
libs_apps-2010-12-21.tgz
play area - move to IDEAS
These are IDEAS that are not yet fully grown, but might have proof of concept use elsewhere within libs_apps.
Date:
2010-12-21
Lang:
C++
Size:
1343.3_K
Download:
libs_apps-2010-12-21.tgz
access to the sound mixer, radio, infra-red, ...
This wraps the Linux kernel access to TV cards with a radio on them (the TV is viewed using xawtv, but the radio is direct). It also contains wrappers to control the sound mixer, and LIRC infra-red transmitter (I channel hop using my keypad, and pause the VCR with a mouse)
Date:
2010-12-21
Lang:
C++
Size:
1343.3_K
Download:
libs_apps-2010-12-21.tgz
internet ftp, http, ...
The HTTP code works well. The ftp is a bit of a placeholder. The HTTP code uses event driven IO, WITHOUT THREADS, to handle multiple connections as a client or server. A second area will be needed for servlet style.
Date:
2010-12-21
Lang:
C++
Size:
1343.3_K
Download:
libs_apps-2010-12-21.tgz
code concepts for the accounting software
This splits the ACCTS application(s) into its components. Thats a set of tables of rows (of spec) of cols (of spec). Its also the JavaScript API to the data, the GUI frames, reports and a possible new tbl2 format. It generates a rather smart PDF report.
Date:
2010-12-21
Lang:
C++
Size:
1343.3_K
Download:
libs_apps-2010-12-21.tgz
Parse file.mm3 (old accounts)
Money-Manager is a proprietry (DOS) accounting program. mm3_scan parses its files to export it elsewhere. This code is old and untidy, but it retains access to legacy files, and it doesnt fall over.
Date:
2010-08-03
Lang:
C++
Size:
24.2_K
Download:
mm3_scan-2010-08-03.tgz
Misc Utils that do useful things
s_time adjusts the time, updates the hardware clock, and shows a synchronised count, perror prints errno, un_hex convers hex to binary, overwrite_file fills a file with NULs, with writes aligned at boundries, (cured a bad-block on the disk), PATH_TOOL edits shell vars like LD_LIBRARY_PATH.
Date:
2009-11-09
Lang:
C
Size:
17.6_K
Download:
utils_misc-2009-11-09.tgz
process a tree of files, .wav .mp3 .cddb, least hiss, most fit
MP3 files are compressed WAV files. This script uses cdda2wav to put the WAV files in the right places, and get the .cddb file. It then uses the .cddb file to rename the dir/files, and tag the mp3's You can ask LAME to give you different quality levels. -V0 means bigger files with less hiss, -V9 means more will fit on your player, but sound too hissy. -V4 seems OK for non-headphones So you load the CD with cdda2wav (hissy -rip_here), and then produce different trees at different compression levels, then copy the files that fit to your player. Then change your mind, and rebuild a new tree at the new level.
Date:
2009-09-25
Lang:
Python
Size:
29.1_K
Download:
mp3_hissy_fit-2009-09-25.tgz
some BLOGS from whenever
This is a rough collection of stuff
Date:
2009-07-10
Lang:
utf8-en
Size:
875.5_K
Download:
BLOG_PSG_TOKEN-2009-07-10.tgz
SGML Parser 'SP' integrated as a Python module
SP is the best Open Source C++ SGML Parser http://www.jclark.com/ SPIN_py is a Python module that uses SP's generic interface to provide a SAX-like (but different) stream of events, which you can hook to Python expressions, and build a tree (not DOM). This page is generated by SPIN_py/SPIN_test_zone/test_gen_2_LGPL
Date:
2008-11-24
Lang:
C++ Python Module
Size:
212.6_K
Download:
SPIN_py-2008-11-24.tgz
Build a standard GNU toolchain in a sensible prefix
This is a collection of shell scripts that do the following: ./configure --prefix=/tools/2000/ccs The above is easy enough, but sometimes there are additional parameters, and its nice to have help putting the files into the right directories, and keeping source without objects. I use these scripts to bootstrap/build the GNU toolchain, and a list of well known + needed apps, and put them into SEVERAL DIFFERENT prefixes. That assists maintaining versions eg /live/web_one/ -vs- /test/web_two/
Date:
2008-04-08
Lang:
ksh
Size:
123.3_K
Download:
tools_2000-2008-04-08.tgz
change PATH or other variables
A C program to add/del items from a PATH like variable. The program filters out duplicates, which may help speed, and it makes shell scripts a bit more readable. It now has a new option to allow duplicates, and use spaces, to build command lines. NB in order to set a variable, (not in a sub-program), you need to have 'dot-included' a function that calls the C prog.
Date:
2008-03-10
Lang:
C++
Size:
3.4_K
Download:
PATH_TOOL-2008-03-10.tgz
a parser to scan general texts
This is a general purpose parser I attempted some 10 years ago, and has somehow bubbled back up to being active. It has the core idea, that a single pointer LEX.P is most of whats needed, and can be kept in a register, with a lot of inlining. I also have a second theory, which is an alternative to YACC, (this will never happen), and am manually generating code, that it might somehow generate. The idea would be to detect the maximum common prefix, draw a railroad, avoid ambiguity, and minimise backtracking. Dont wait up.
Date:
2007-01-24
Lang:
C++
Size:
49.2_K
Download:
scan-2007-01-24.tgz
A menu of runnable buttons
This is an initial scratch at RunOnAsIn, but thinking about it, C++ would be better.
Date:
2006-10-30
Lang:
Python
Size:
4.2_K
Download:
pygtk_menu_app-2006-10-30.tgz
sudoku solver kit
This is an early starting point. It manages 5000 solutions per seconds. It needs libs_apps It currently searches for "numbers for a square", later it will search for "squares for a number", then domino levels (puzzle creation) ((Not really a lib/kit))
Date:
2006-08-28
Lang:
C++
Size:
13.7_K
Download:
lib_sudoku-2006-08-28.tgz
parse FullStatement.csv from Nationwide Anglia
Nationwide Anglia online banking service, provide a downloadable FullStatement.csv. This Python script parses the CSV, and makes a series of reductions, recognising standard string expressions. Things like standing orders, currency convertions from european ATM's, and the town for each shop.
Date:
2005-08-06
Lang:
Python
Size:
9.9_K
Download:
NWA_parse-2005-08-06.tgz
test cases
Ever had an impossible compiler error? Creating test cases takes time, so why throw them away?
Date:
2004-12-06
Lang:
C++
Size:
5.8_K
Download:
tests-2004-12-06.tgz
edit crontab to collect SAR -AMS data
This is a simple READABLE ksh script(s) to collect stats. You can read it for security, and install it on your HP/SUN/AIX/True64/... boxes. Even if you dont have the SAR parser running (yet), get this in cron now. (You cant plot data that you dont have).
Date:
2004-09-30
Lang:
ksh
Size:
5.6_K
Download:
sar_gather-2004-09-30.tgz
illustrate a proof of Pythagorus' triangle
Ever wanted to prove pythagorus? Where do you start? This script creates a little animation, that might help. --- When you see the shape, its pretty obvious that the bits add up to the whole, but you must check that what you expect is what is really there. Is it really square? --- ALSO: a tray of perfect ball bearings form a pattern, but is that approximate or exact? Do 6 exactly surround 1 without rattle or being squashed? --- (BUG: win32 draws OK but doesnt animate, run on Unix)
Date:
2004-06-12
Lang:
Python/Tk
Size:
14.1_K
Download:
Pythag-2004-06-12.tgz
cached date+time to/from int convertion
This is a pre-prototype to convert time_t (signed int) to/from date/time The standard libc time functions are frankly awful. The libc functions are still used to find the edge values, where "summer-time" starts and ends, and the year starts, but after that, (which can be cached, possibly on disk or code) convertions should be much faster for values in the same year. This prototype is pre-early beta, but does NOT have a problem with 2004-01-10 causing overflow on t2 = (t1+t3)/2
Date:
2003-08-22
Lang:
C++
Size:
13.8_K
Download:
YearZone-2003-08-22.tgz
Example SNMP program in C++
http://www.net-snmp.org/ is a C library for SNMP servers and clients. snmp1 is an example C++ client, its really an experimental C++ wrap, of simple gets, with asynchronous responses.
Date:
2003-07-12
Lang:
C++
Size:
6.1_K
Download:
snmp1-2003-07-12.tgz
PHP login and session
Some PHP scripts and MySQL tables that track a login session. The client browser keeps a single cookie, which is the session-id, and a random secret for the session. No other data is kept in the cookie, or in the URL. This allows the user to bookmark pages. If no login has happened, the user gets a new session as the 'ANON' user. If the page needs some permit that the current user doesnt have, it can fail or send what it wants (no output yet sent). With forms and functions to handle login.
Date:
2003-04-04
Lang:
PHP
Size:
16.9_K
Download:
web_play-2003-04-04.tgz
Gather some info about an HP/UX box and its LVM layout
A list of commands that might tell you how an HP/UX box is configured. along with a full text dump of the LVM layout. You edit the list of commands to add any missed ones, or comment out any data that your policy says to not grab.
Date:
2001-07-04
Lang:
ksh
Size:
3.3_K
Download:
hp_info-2001-07-04.tgz
adjtime by a number of seconds
Currently I use the 'NET to get the time at boot, but when I was modem connected, this was very useful, as this PC's clock drifts quite a lot.
Date:
0 ABSENT FILE
Lang:
C
Size:
0
Download:
ABSENT: s_time
convert ascii 2-byte hex numbers to bytes
This convert from ASCII hex dumps back to DATA.
Date:
0 ABSENT FILE
Lang:
C
Size:
0
Download:
ABSENT: un_hex