Kurt Stephens

Nerd Up!

The only way to implement the future is to avoid having to predict it. -- Piumarta
Fighting entropy one day at a time...

Currency: Ruby Package for FX and Money

Kurt on Sun, 2006-10-29 17:33.

See: http://rubyforge.org/projects/currency/

The RubyForge package currency implements an object-oriented representation of currencies, monetary values, foreign exchanges and rates.

Currency::Money uses a scaled integer representation of the monetary value and performs accurate conversions from string values.

See: http://umleta.com/node/5 for more details.


UserQuery: Ruby Package Simplifies General Searching in Rails

Kurt on Thu, 2006-10-26 18:53.

See: http://rubyforge.org/projects/userquery/

The RubyForge package userquery allows users to do general queries on SQL database table columns using a simple query language. The package parses tokens from the user’s query and generates SQL WHERE clauses immune to SQL injection attacks.

For example, if a user wants to search for all entries records on a DATETIME field named date, the user can enter: “11/1/2006“ into a text field associated with searching on the date column.

UserQuery will intuitively convert this query into an SQL WHERE clause fragment:

(
 (entries.date >= '2006-11-01 00:00:00') 
AND 
 (entries.date <  '2006-11-02 00:00:00')
)

The user query syntax includes “NOT“, “OR“, “AND“ operators, grouping with parentheses, well as relational operators like “LESS THAN 5“ or “>= $500“. Keyword searching, like “foo AND NOT ‘bar baz’“ using SQL LIKE operators is configurable.


Data Transform Programming Style

Kurt on Sun, 2006-10-22 22:26.

Data Transform Programming Style is somewhere between imperative and functional programming.

Data representations flow towards the desired result, from least expressive to most expressive. This allows greater reuse of code on multiple data representations, greater locality of intent and more literal coding. The nested nature of functional application is flattened into an imperative style that reads more like pseudo-code, while retaining functional elements.


Goodbye uSite, Hello Drupal!

Kurt on Sun, 2006-10-15 17:53.

I am decommissioning my CMS system uSite. It was supposed to be a small CMS; it started out as less than 400 lines of Perl code. Eventually, it grew and I grew tired of adding new functionality, so I am migrating to Drupal.

Why Drupal? I have a client who is planning to migrate to Drupal, and my shared hosting provider does not support Plone because Zope’s object database requires too much resources.


Data Risk Management - Rules of Thumb

Kurt on Sun, 2006-10-15 13:49.

This was part of a mail trail on the WWWAC mailing list.

I wholeheartedly recommend backups for all computers – anybody not automatically and periodically backing up important data is asking for trouble. It is the first thing I recommend to any non-technical client. In my case of my burned-up RAID 1 drives, my backups were incomplete ( my scheduled backups failed to run and I wasn’t validating them ), and the cost of reinstalling OSs, applications and data from complete backups, if I had them, was more than the cost of sending the drives out to be resurrected.

Backups are only a last resort, because no backup solution solves the problems of the cost of downtime, restoring and the possibility of incomplete, missing or non-atomic backups.


Extensible AJAX Calendar Widget

Kurt on Thu, 2006-08-31 18:24.

Check it out!

I have written an extensible AJAX Calendar. The calendar events are asyncronously downloaded and cached using a simple XMI representation from the server. Auxillary data can be attached to each calendar event. Each of the days in the calendar are decorated by callback. Calendar navigation events can also trigger callbacks.


UMMF - UML MetaModel Framework 1.0 and Wiki

Kurt on Tue, 2006-06-13 20:35.

I have released UMMF 1.02 to sourceforge and CPAN. And I’ve created a new wiki for UMMF.


Embedding a properly tail-recursive, stack-based interpreter in C

Kurt on Wed, 2006-05-17 14:21.

See /pub/tail_call_interp/tail_call_interp.c

The Scheme programming language requires proper implementation of tail calls, because all looping in Scheme is implemented as function calls — there is a very fundamental relationship between tail-calls and iteration.

Java Connection Editor Applet

Kurt on Wed, 1999-10-20 11:18.

Check it out!

This is a demo of a Java framework I created in 1999 for building UIs for connecting abstract nodes.

It was used for a few different graphical programming environments that I never completed.


Primary links

Syndicate

Syndicate content

Browse archives

« May 2013  
Mo Tu We Th Fr Sa Su
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31