HTDB : Welcome!
Help Us!


Powered By


displaying: 1 to 31 of 31 comments for - newest first
options: [oldest first] [10 per page] [list all pages with comments]

OS X now supported!
the 'tuck - del - 20Jan2006 1:34 PM
HTDB now compiles (assuming the correct dependencies are installed) cleanly under OS X.

expect better recipes for installing to be forthcoming, but this is a huge milestone for us.

yipee! released
the 'tuck - del - 20Jan2006 11:32 AM
contributor ben osheroff has made changes to allow custom GET/POST processing, better XML support, some friendly helper functions.

all of which warrants a new minor version bump.

Downloads now available!
del - The 'Tuck - 20Jun2005 12:26 PM
after, um, 11 years of hard work and hard slacking, HTDB is now available for download to the general public in tarball form.

the install should be fairly smooth for those using linux (redhat/suse both tested). solaris and irix may be a bit more difficult, and getting a mac osx install will require a professional propellor-head.

windows? don't even bother, unless you're willing to port and send the diffs.

leave comments on your successes and/or failures over in the Download feedback area.

thanks for your patience... and good luck!

undefine(), misc fixes
del - The 'Tuck - 15Feb2005 12:24 AM
i've run into a couple of situations recently where it would have been cleaner to be able to *remove* some things from the runtime environment instead of just "zero-ing them out."

as such, i've added ${undefine()} and the C-equivalent: htdb_undefine().

i'm going to let things run awhile before i go ahead and start using htdb_undefine() in low-level functions, but the functionality is now there.

cookies are now protected from sql-injection attempts (in the unlikely case that encryption were broken). also an instance where sockets were not being closed was patched up.

nested whiles/loops fixed
del - The 'Tuck - 24Aug2004 6:03 PM
Kudos to Ben Osheroff for tackling the longstanding issue with the scripted "while" and "loop" syntax being far too fragile for their own good.

"while" and "loop" no longer are required to be preceeded by a tab.

Ben also altered the internal logic to allow arbitrary nesting of whiles and loops - previously, script writers were limited to a depth of two nested whiles and/or loops.

DSO re-org, future work..
del - The 'Tuck - 8Aug2004 6:48 PM
the monolithic DSO source file 'dso_funcs.c' has been broken down into several new files which contain functionally-related code.

cookie expiration is now a configurable thing.

i'm also working on a pretty interesting way to build apps entirely from DSO calls; cgi page requests can be made to map directly to DSO function calls - instead of having to do the "if page == .., else if page ==" (with an optional page-to-function mapping lookup).

this is in a proof-of-concept phase, but looks promising. one intriguing thing is that page requests can map to either DSO functions, or to script functions - which should make for an interesting way to build "cgi-like" apps without actually having to compile anything, if you don't desire to.

lots of little changes
del - The 'Tuck - 19Jun2004 12:42 PM
i have to admit - maintaining a software project is a lot of work. one has to be mindful of future users' needs and expectations. applications need to follow sane naming conventions, there need to be help files for everything: how to obtain, how to build, how to configure, how to troubleshoot, how to use in a web environment, how to use in a stand-alone environment, how to script, how to program, etc, etc.

the libhtdb distribution is currently 900k compressed. that's a lot of stress to the carpus!

del - The 'Tuck - 13Jun2004 3:12 PM
recently added a poor-man's "wget" functionality to htdb, which allows one to go and suck down documents from URLs. comes in both DSO (scriptable) and library usable forms.

socket() and alarm() and fork(), oh my!

Just... About... Ready For Release
del - The 'Tuck - 2Jun2004 10:56 AM
I've got the htdb distribution all packaged up nicely into the expected "configure ; make ; make install" tarball.

But it isn't going out the door until I determine what the proper license will be. GPL seems to take away too much control. BSD seems nicer.

This'll hopefully get sorted out in the next few weeks as I do my homework.

impending release of software
del - woodtucky - 26Apr2004 12:48 AM
i spent the weekend bashing the htdb code into automake/autoconf form - ish.

the DSO libraries are a bit of a bitch to get right with libtool, so that's not done yet.

also, "make install" isn't there yet, so the installation directory *is* the build directory (for now).

that said, we're inching closer. thanks for your patience.

code re-org
del - woodtucky - 15Feb2004 11:58 PM
spent the evening upgrading to apache2 and mysql4 and all that entails.

in the process, i also moved the htdb code out of the apache tree and into /usr/local/htdb - where it shall now live while it awaits apache "mod"-ification

internals tweaking
woodtucky - del - 4Sep2003 7:53 PM
found some optimizations in inner loops and related to script functions. production tests show a 5-10% performance increase and lowered overhead - always a good thing.

also playing around with database query caching.

object sorting
del - woodtucky - 8Apr2003 5:48 PM
a powerful concept - object sorting - was recently added to the core of htdb, and a DSO was added for script-use.

in short, a one-liner allows database results stored in htdb objects to be quicksorted on any of the fields that object contains.

on other fronts, the longterm goal of "evaluate at runtime" is tantalizingly close to being realized. unfortunately, this is one architectural change that will impact existing htdb scripts to some degree.

aren't you glad you don't have an existing htdb installation? :-]

date() and braille() functions
del - woodtucky - 13Nov2002 12:12 AM
those familiar with PHP will appreciate the new date/time DSO: date().

the format arguments mimic those in PHP, although the timestamp argument may be of nearly any known date/time format - unlike PHP.

for the blind among you, there is now the braille() DSO - which will convert any text into braille.

date/time parsing
del - woodtucky - 23Sep2002 11:03 PM
i've extended the family of date/time routines to be able to parse "ddMmmYYYY" and "MM/DD/YYYY" style formatting.

as in...

30Sep1964 or 09/30/1964 or 9/30/1964

not earth shattering, but useful nonetheless.

valgrind is king
del - woodtucky - 28Jul2002 8:58 PM
if you're a software developer, you NEED valgrind (

what is it? it is a virtual machine in which you run your programs and it helps spot botched memory accesses, leaks and frees.

i just spent several hours smoothing out some very subtle mini-bugs in htdblib using valgrind.

oh.. it only runs under linux. sorry suckas

More on localization
del - Woodtucky - 2Jul2002 4:37 PM
i just changed strings used for month names and weekday names from being compiled-in to being looked-up.

because otherwise there'd be no way to have them show up in, say, Czech.

so now there's a "locale.htdb" file included in the distribution that can be tailored to your installation.

multiple database support!
del - woodtucky - 25Apr2002 7:25 PM

i just solved the very hard problem of *nicely* allowing an application to have muliple cached connections to arbitrary databases.

this work was needed to support using mysql in a master/slave configuration, but the solution used allows for an arbitrary number of configuration-file-specified databases.

very clean, very nice.

a good day, indeed.

del - woodtucky - 22Apr2002 11:09 PM
lots of changes were just completed to the entire suite of date/time routines and filter functions.

before, it always annoyed me how the functions that manipulated mysql date/time strings were rather mysql-specific and not very pretty to use.

now, the routines are very consistent and much smarter about how they act upon the data that you feed to them.

all in all, i've quite pleased that this part of the software has been smoothed-out.

extensible crypto/filters
woodtucky - del - 10Apr2002 9:26 PM

i've chucked the hardcoded cryptography and made the crypto, the crypto keys and even the crypto algos be configurable.

using this method, any HTDB installation may choose to use their crypto of choice and maintain their own versioning - without affecting the underlying architecture.

ideally, this should link into the libmcrypt encryption library, which includes several familes of encryption algo.

as time permits..

infrastructure changes
del - woodtucky - 8Apr2002 5:21 PM
so as to minimize security risks due to mis-configured webservers, i've move the location of the 'htdb' directory out of htdocs - it is now a peer of htdocs.

and i'm working on a method of allowing for extending the encryption substem with pluggable encryption modules.

more later

State of the state
del - San Francisco - 5Jan2002 10:10 AM
The long absence of news updates is in no way an indication of HTDB development in-activity!

2001 brought many new DSO extensions, several bugfixes, some internals optimization - the usual stuff.

Currently, I'm adding a simple image upload-to-database API, with auto scaling and all the whistles. This will make for easy templatized photo gallery type websites to get up and running.

I'm getting more and more requests for HTDB distributions - and it still isn't going to happen until I'm happy with the distribution method.

Accordingly, I've added a new section asking for assistance with such matters. Any automake gurus reading this? I need your help...


we're not dead
del - woodtucky - 25Apr2001 4:48 PM
a guess a sign of stable code is when it doesn't need constant tweaking - which is why there hasn't been much news recently.

but here's some news of recent developments:

1- in a fastCGI environment, script functions are now cached. this is important as it offloads evaluations until runtime, which is a boon for performance all around

2- all server-known environment variables are now available, not just a subset as previously.

3- in a fastCGI environment, applications will now self-reload upon a change to the modification time of the binary. this is cool because it allows for realtime code updates without need for server hupping.

so that's it for now..


you know a good goat'll DO that...
yol - somefuckingplace, usa - 31Mar2001 10:59 PM
i'm still waiting for an update of htdb.........

programming documentation fest! - woodtucky, ca - 26Feb2001 11:29 PM
just spent half the day devising a method for
documenting the C programming API, and then
proceeded to churn through the most primitive of
the C calls: the data primitive accessors.

this is a lot of work!

at any rate:
The Programming Functions Section
now has something usable to look at. it's going to take
awhile to plow through all the sections that need
to be documented. the hope is that this will
eventually become database-driven - but for now
i'm still playing with the layout.

feedback appreciated.


romania - woodtucky, california - 24Feb2001 12:41 AM
un-apparent tweaks all around..

i've introduced the ${itor()} and ${rtoi()} functions which, very importantly, convert to and from roman numerals. you might notice their usage in the comment area.

recently, there's been an effort to stem memory leaks and to document, document, document.

i must say, script functions are pretty nifty - most of the docs section uses them to self-document and it is a bit of a mind-bender to use a function to document itself, but HEY! it works.

i've been thinking a bit about the "right" CVS layout for a release. does "htdb" really belong as a child of htdocs - or should it be a peer - or should it reside in /etc - BIG questions... input appreciated..

and out


HTDB architecture - woodtuck, ca - 12Feb2001 10:50 PM
ok - so i put together an HTDB architecture page, which should clear up exactly what the hell this thing is!

2.5 tier (since it *could* be made multi-tier, is the thinking) in a nutshell.


Milestone: logic and scripted functions - san francisco, ca - 6Feb2001 12:56 AM
alright, so it turns out that one CAN safely embed logic into HTDB script functions.

sophisticated functions may now be scripted - SQL calls, conditionals, etc. may be used.

it turns out that script functions are immune to the "execute at readtime" bug after all.


Scripted Functions - Woodtucky, CA - 1Feb2001 10:56 PM

a longtime goal was realized today with the implementation of true scripted function support.

what this means is that script-writers can now roll their own interpreted functions. deep milestone, this.

as a proof of concept, i promptly converted the documentation section of to use scripted functions to handle the usage and examples for function calls.


status update - keeper of the code - 10Jan2001 12:47 AM
continuing on the documentation project..

all builtin-in scripting functions are now documented (and self-documenting) with realtime examples.

i'm playing around with the site structure and just added a rough programming doc framework. this will shortly be filled-in with full API disclosure, example programs, etc.

as i'm doing all this, i'm seeing where others might have difficulty, or something could be clearer and i continue to tighten stuff up. so the longer you have to wait, the less you'll be disappointed! (yeah, i know - some of you have been waiting literally *years* to play with this stuff - hang in there)

all-in-all, this has been a very good month of tying up ends.


Welcome - woodland, california - 2Jan2001 10:32 PM
we're inching towards a public release..

i've spent most of december, 2000 tightening-up core code, documenting and building this website.

now there's a place to discuss what is surely burning inside each and every one of you, so have at it.


displaying: 1 to 31 of 31 comments for - newest first
options: [oldest first] [10 per page] [list all pages with comments]

178,003 impressions