Marginal Hacks

"I'm glad cavepeople didn't invent television, because they would have just sat around and watched talk shows all day instead of creating tools." - Dave James

LICENSE Is it Free?

Too see more/less tools, change minimum rating (0,3,4,5 stars): none | *****
-- Currently displaying code with 5 or more stars --

Name Rating Works? Description

Homepage Download Changelog album
Y An html photo album generator which descends directories and has theme support. For an example, see my photo album.
Homepage Download Changelog asq
Y Mame Cabinet front end, nice and simple and fast, using arcade controls. It runs in a terminal window but can display a screenshot window as well. Supports MAME as well as other emulators and various games.
Homepage Download Changelog bew
Y A webcrawler/robot for mirroring entire web sites or web trees. Just give it a URL and it gets everything underneath it. It can tell you about broken links as a helpful side-effect. If you want something more stable but don't need the recursion, see findex.
Homepage Download Davent
Y Themeable event registration system which I've developed/used for our dance weekend events for over a decade now. Includes website creation, registration, payment processing, door checkin and even post-event survey. Different events are created by creating small perl files of info, allowing things like complex date-based or # sold based pricing. The biggest weakness is in dealing with more complex checkin issues, such as dealing with one email buying multiple registrations and doing registration changes and trying to figure out the correct price (some of these problems are intractable).
Homepage Download Changelog DaVite
Y This is a web invitation system, much like or, but you have total control over it! Note: I am no longer developing DaVite, as I have started to do work on MyVite
Homepage Download Changelog ePerl
Y Embed perl in your text files! This is a very snifty tool. It was originally written by Ralf S. Engelschall as a C program, and I realized that it should be written in perl, which I did in a program that is an order of magnitude smaller. (In fact, the source for this page is eperl).
Y This script kicks ass for code development. Watches a file and runs it (or something else) every time it changes. Write your code in one window, and watch it automatically execute in another.
Homepage Download Changelog html2jpg
Y Converts HTML pages to images (gif, jpg, png, ps, etc..). Very kludgy, only works with certain versions of Mozilla, but I needed a way to automate screen grabbing the HTML window out of a browser (for my album project). Maybe it'll help you. If you have KDE, I recommend khtml2png
Homepage Download LocationExample
Y Example Android project that creates a simple but complete location app. It uses Google Play Services and Google Fused Location Services (the latest location API) to do location updates and properly handles the lifecycle as well as turning location lookups on and off.
Homepage Download Changelog make_faq
Y Makes FAQs and such things. I use this to build: DaveFAQ and DaveHistory
Y Simple yet kicks ass. Moves or copies files using regular expressions. Thanks to Andrew Allen for the idea, which I'm sure he stole somewhere else.
Homepage Download perlc
Y Perl to C 'compiler' for hiding perl source code and creating an executable for distribution. Also has simple support for limiting distribution. (Not true compilation!)
Homepage Download Changelog pemf
Y I got tired of procmail and the like, so I just wrote my own mail filter that's easy to control and can do simple things like remove MIME. MIME sucks. If you can't vi it, it sucks. It can also catch SPAM, auto respond to email, forward email, blah blah blah. Everything that procmail can do, but it's perl, so it's better. Perl rocks.
Homepage Download Changelog scurvy
Y Lets you easily write screenplays or scripts in a simple text format, then converts them into the proper screenplay format. Also imports some RTF and Final Draft formats and can convert to multiple formats as well.
Homepage Download Changelog serverizor
Y Converts a generic command into a tcp server so you can disconnect and reconnect to it from the command line. This is actually pretty handy.
Homepage Download Changelog site_index
Y Multi-page HTML site index generator for local domains. See examples at any of my domains. Companion to whats_new
Homepage Download Changelog spigot
Y Spigot is an easy way to turn on and off printing of text according to patterns matched and other simple rules. Like a combination of 'expect' and 'cat' and 'head'. See usage for simple examples.
Homepage Download Changelog tcp_forward
Y Forwards a TCP connection and lets you snoop and filter the traffic being sent. Uses the simple IO::Socket server/client examples in the perlipc manpage.
Homepage Download thumb
Y Just a thumbnail generator, except that it makes thumbnails the same size while keeping aspect ratio by cropping - so the pictures aren't stretched. This looks better than I expected - and is the code I use for the cropping mode of 'album'
Homepage Download libExpr.rb
Y Ruby expression tree generator. Can convert expression strings such as "(7*3)+(var/2)" into an expression object that can be very quickly evaluated (and can handle offloading variable evaluation). Can convert to RPN, Prefix and AST (abstract syntax tree) and has a flexible precedence model that includes presets for Ruby precedence or C precedence. Uses the shunting yard algorithm, but also supports unary (such as '-a' or '+a') as well as ternary (such as 'a?b:c') operations as well as short-circuiting logic operations (such as 'a||b'). Only AST supports all of these features, see the docs at the top of the source for more info). Also has a testbench that generates random expressions and verifies correct operation. It's a tar.gz, but you can also just look at the source and the testbench here.

Author: David Ljung Madison Stellar [CONTACT] - My home.
LICENSE Free? Reporting Bugs

"I have an elegant script for this, but it was too big to fit in the margins.."

- Me, MarginalHacks

Thanks to Jamie Zawinsky and the Jargon File for the name

There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. - C.A.R. Hoare

Terms Of Use | Site Index | CONTACT | PGP Key | MarginalHacks, Marginal Hacks