Category Archives: personal

new service – free, secure password generation

Today, I am formally announcing a brand-new service / website for secure password generation.

Go visit

Get yourself random passwords of commonly-required lengths and complexities*.

Password Varieties:

  • 4 of 4
  • upper & lower alphanumeric
  • lower alphanumeric

Lengths generated: 12, 16, & 24 characters

Visit the GitHub project page ..

.. if you want to run the site on your own server.

You can view the source “live” ..

.. if you’d like to see how it works without visiting GitHub – and verify nothing is saved anywhere by the code: it’s just a script with no filesystem / database access.

It’s fast ..

.. load times tend to be under 0.15 seconds!

It will always be linked from my Projects page, and from the ‘External’ links menu on this blog.

*Also findable at – same server, same code

helping a magpierss-powered site perform better

I rely on MagpieRSS to run one of my websites. (If you'd like to see the basic code for the site, see my GitHub profile.)

One of the drawbacks to Magpie, and dynamic websites in general, is they can be bottlenecked by external sources – in the case of Magpie, those sources are the myriad RSS feeds that Datente draws from.

To overcome some of this sluggishness, and to take better advantage of the caching feature of Magpie, I recently started a simple cron job to load every page on the site every X minutes – this refreshes the cache, and helps ensure reader experience is more performant. By scheduling a background refresh of every page, I cut average page load times by nearly a factor of 10! While this is quite dramatic, my worst-performing page was still taking upwards of 10 seconds to load a not-insignificant percentage of the time (sometimes more than a minute!) 🙁

Enter last week's epiphany – since RSS content doesn't change all that often (even crazy-frequent-updating feeds rarely exceed 4 updates per hour), I could take advantage of a "trick", and change the displayed pages to be nearly static (I still have an Amazon sidebar that's dynamically-loaded) – with this stupidly-simple hack, I cut the slowest page load time from ~10-12 seconds to <1: or another 10x improvement!

"What is the 'trick'," you ask? Simple – I copied every page and prefixed it with a short character sequence, and then modified my cron job to still run every X minutes, but now call the "build" pages, redirecting the response (which is a web page, of course) into the "display" pages. In other words, make the display pages static by building them in the background every so often.

If you'd like to see exactly how I'm doing this for one page (the rest are similar), check out this stupidly-short shell script:

(time (/bin/curl -f > ~/temp.out)) 2>&1 | grep real

(The time is in there for my cron reports.)

Compare the run time to the [nearly] static version:

(time (/bin/curl -f > ~/temp.out)) 2>&1 | grep real

ssa, meet irs; irs, meet ssa

As you know, we adopted our second son last year (which finalized in Dec – woohoo!).

A couple weeks ago, we received Zeb’s birth certificate (which needs to be processed after an adoption), and applied for his SSN.

Earlier this week his brand spankin’ new SSN  card arrived – so I got down to finishing our tax return for 2015. Problem:

Rule Number: R0000-504-02
Rule Number Description: The SOCIAL SECURITY NUMBER (SSN or ITIN) and LAST NAME for Dependent 2 do not match the IRS e-File database. You will need to REVIEW AND MAKE CHANGES to the Dependent 2’s information before resubmitting your return.


So I got on the phone to the IRS after some scary FAQ pages, it turns out that the IRS only gets data updates from the SSA every few weeks.

The very helpful lady who answered my call and helped me out told me to try again in a couple weeks, and it should go through with no issues.

At least there’s a reason for it to have rejected.

haiku appliance

I have been a fan of Haiku for years – and BeOS since way back in the 90s. I run a Haiku mirror, and try to pay attention to the project’s updates.

Today I am making available a Haiku-OS r1 alpha 4.1 virtual appliance!

Download it from me here (created in VirtualBox, but in .ova format, so should work “anywhere”). Download links for current editions (for new releases of Haiku-OS) will be maintained on my Projects page.


  • 1G RAM (could’ve easily gotten away with 512M or even 256M, but given everyone should have 1G free (especially if running VirtualBox), went with this size)
  • 20G storage (dynamically allocated, of course), formatted BFS (because it’s better than NTFS – and doesn’t “actually” format the disk (it does, but only kinda – it’s akin to lazy zeroing in VMware)) in VMDK format (if you care)
  • 2 CPUs
  • 32M video memory
  • network: NAT’d

Appliance [download] size :: ~250M.