Oliver Steele : Sources
.section {gradient-start-color: #eef; border-radius: 10}
Unless otherwise noted, these have been tested in Firefox 1.5, Safari 2.0, and IE 6.
Utilities
- Collections-js
- JavaScript collection methods. Provides the functionality of the ECMAScript 1.7 Array extensions, and the Prototype collection methods, in a lightweight form that can be used with other frameworks, including OpenLaszlo.
- Functional
- Functional is a library for functional programming in JavaScript. It defines the standard higher-order functions such as
map, filter, and reduce. It defines functions such as curry, rcurry, and partial for partial function application; and compose, guard, and until for function-level programming. It also defines string lambdas, which allow strings such as 'x -> x+1', 'x+1', or '+1' as synonyms for the more verbose function(x) {return x+1}. Source, blog. Demo & docs.
Concurrent JavaScript
- Sequentially
- Sequentially is a library of temporal and frequency adverbs for JavaScript. It provides methods to queue a function for deferred or periodic execution, and to throttle the rate or number of times that a function can be called. You could think of it as a kind of memoization, where instead of caching the result it modifies when and whether a function is called.
- Concurrent
- Currently just a partial port of Haskell's MVars, that can each be used to coordinate data flow among periodic functions, and asynchronous callback.
Metaobject Programming
- MOP
- MOP is a short metaobject programming toolkit. It currently contains functions that temporarily replace the methods on an object or class, or that capture calls to a set of methods and replay them later (for asynchronous AJAX). It also defines a function that defines delegating methods.
- Fluently
- A construction kit for chained method calls (fluent interfaces), for JavaScript.
jQuery Plugin
- jQuery Profile Plugin
- Stick this in your page, call
$.profile.start() to start profiling calls to $(selector), and then $.profile.done() to stop profiling. It will display statistics for selector calls, by selector. , Source, blog.
Graphics
- JavaScript Gradient Roundrects
- Draws gradient roundrects without images. Gradients can be applied procedurally or, via the divstyle library, through CSS. This uses the WHATWG
canvas element if it's available, and a stack of div elements otherwise. Source, demo, docs.
- Bezier Library
- Measure and subdivide beziers, and animate points along a path composed of single or multiple beziers. bezier.js, path.js, demo, blog. (This library also works in OpenLaszlo.)
- TextCanvas library
- TextCanvas is a wrapper for the WHATWG canvas element, that adds a drawString() method for labeling graphs. Source, docs, demo, blog. This shares the API of the OpenLaszlo textdrawview library.)
- CFDF-JS
- A JavaScript implementation of Chris Coyne's Context Free Design Grammar. This one's in progress; I'm slowly plugging away at it.
- JavaScript Fu Rails Plugin
- JavaScript Fu extends Rails with a few facilities to better integrate JavaScript into Rails development. The
notes and statistics rake tasks compass JavaScript files in the public/javascript directory; the call_js RSpec matcher asserts that a string or response contains a script tag, that contains JavaScript that calls the named function or method; and the page.onload page generator method generates code that executes the content of the block upon the completion of page load. Download, blog.
- JCON: Ruby Gem for JSON type conformance
- JCON (the JavaScript Conformance gem) tests JSON values against ECMAScript 4.0-style type definitions (PDF) such as
string?, (int, boolean), or [string, (int, boolean), {x:double, y:double}?]. Download, blog.
- OpenLaszlo Ruby Gem
- A Ruby interface to the OpenLaszlo compiler. This library allows you to compile OpenLaszlo programs from within Ruby, in order to integrate OpenLaszlo development into Rake or Rails applications.
- DB Content Plugin
- Adds tasks to save and restore database content. Blog and install instructions.
- OpenLaszlo Rails Plugin
- The OpenLaszlo Rails plugin makes it easy to use OpenLaszlo client-side applications with Rails. It includes generators and scaffolding for creating OpenLaszlo applications, connecting them to Rails REST controllers, and displaying them within Rails views.
Computational Lexicography
- PyWordNet
- A Python interface to the WordNet lexical database. (Also see JWordNet for a Java implementation.)
- PyFSA
- A library for manipulating Finite-State Automata (FSAs). It contains algorithms for constructing, minimizing, and determinizing FSAs, compiling them from regular expressions, and using them as rules in a chart parser.
- ChartParser.py (view source)
- A simple chart parser (<100 code lines for the parser itself).
Utilities
- Collections-js
- JavaScript collection methods. Provides the functionality of the ECMAScript 1.7 Array extensions, and the Prototype collection methods, in a lightweight form that can be used with other frameworks, including OpenLaszlo.
- LzOsUtils
- Miscellaneous utilities for OpenLaszlo, including jQuery-compatible AJAX functions and a Flash↔JavaScript bridge. Download.
- LzTestKit
- Extensions to LzUnit (the OpenLaszlo test framework): define mocks, stub, and expectations; run individual test cases; run all the test applets in a directory; test asynchronous functionality within a single test case.
-
JSON
- JSON for OpenLaszlo
- An implementation of JSON for the OpenLaszlo platform.
Rails
- OpenLaszlo Ruby Gem
- A Ruby interface to the OpenLaszlo compiler. This library allows you to compile OpenLaszlo programs from within Ruby, in order to integrate OpenLaszlo development into Rake or Rails applications.
- OpenLaszlo Rails Plugin
- The OpenLaszlo Rails plugin makes it easy to use OpenLaszlo client-side applications with Rails. It includes generators and scaffolding for creating OpenLaszlo applications, connecting them to Rails REST controllers, and displaying them within Rails views.
Older Code
This was developed in the OpenLaszlo 3.0 timeframe. Some or all of it might be included in OpenLaszlo 4.0.
- Bezier Library
- Measure and subdivide beziers, and animate points along a path composed of single or multiple beziers. bezier.js, path.js, demo, blog. (This library also works in DHTML.)
- LzDrawView patches
- Patches to the OpenLaszlo LzDrawView class to make it (more) compatible with the WHATWG <canvas> element, including cubic beziers and CSS colors. This shares the API of the DHTML TextCanvas library.
- Textdrawview
- An extension to
drawview that adds a drawString method for labeling graphs. Source, demo, demo source, blog.
- Simple logging
- A simple logging facility. This library defines info, debug, warn, and error functions that are compatible with the logging methods in readable, inline console, and fvlogger. This allows libraries that use these functions to be used in both OpenLaszlo programs and in DHTML.
- laszlo-utils
- Miscellaneous patches and utilities. Currently defines LzKeys.fromEventCode for converting event codes to string characters.
JavaScript
- Readable.js
- Readable.js is a JavaScript library for displaying string representations that are useful for debugging. For example,
{a: 1} displays as {a: 1} instead of as [object Object]; and [1, null, '', [2, 3]] displays as [1, null, '', [2, 3]] instead of as 1,,,2,3. Source, docs, blog. (This library is pretty old. In particular, it predates the wonderful Firebug. I'm not sure if it's still relevant.)
- Inline Console
- Inline Console adds a console with an evaluation field to the web page that includes it. Source, docs, demo, blog. (This library is pretty old. In particular, it predates the wonderful Firebug. I'm not sure if it's still relevant.)
- DivStyle
- DivStyle lets you write CSS inside
<div> tags. Why? So that you can use properties that CSS doesn't define. The gradient library, for example, uses this to define gradient-start-color, gradient-end-color, and border-radius properties. Source, docs.
Python
-
Programmers' Utilities
- textlines.py (view source)
- A read-on-demand substitute for file.readlines(). Returns a randomly accessible sequence (a lazy array) that reads lines as they're requested. Python 2.2 removes some of the need for this: use
for line in open(fname) instead.
- textopen.py (view source)
- Read lines from a text file that uses non-native line separators. This is unnecessary as of Python 2.3.
Python IDE Patches (MacOS)
- CommandHistoryPatch.py (view source)
- (1) adds keys (ctl-uparrow and ctl-downarrow) to grab previous console commands (you can type the keys repeatedly to scroll back and forth through the command history); (2) changes Return to execute the entire line no matter where within it the selection is positioned; and (3) makes it so that keystrokes in previous lines copy the line before inserting the key. (Read the module comment in the source code for more details.) Download Joe Strout's PatchUtils.py, , and drop CommandHistoryPatch.py onto PythonInterpreter, in order to install it.
- icopen.py (view source)
- Patches MacOS Python to use the Internet Config file mappings to select the type and creator for a file. Put it in your Python path, and create a file named
{Python}:sitecustomize.py that contains:
import icopen
(If {Python}:sitecustomize.py already exists, just add the 'import' line to it.) The next time you launch PythonInterpreter or Python IDE, the patch will take effect.
- SpaceTranslationPatch.py (view source)
- Patches the MacOS Python IDE to convert spaces to tabs when a source file is opened, and back to spaces when it's saved. Version 0.2 uses the PatchUtils mechanism to install itself, and recognizes eight-wide tabstopped files. Download Joe Strout's PatchUtils.py, and drop SpaceTranslationPatch onto PythonInterpreter, in order to install it.
Note: This patch in conjunction with Joe Strout's advanced editor patch can cause an error when some files are opened. It's safe but inconvenient to close the error window and continue.
Japanese
- edict.py (view source)
- An OO interface to the EDICT Japanese/English dictionary. As-is.
- kanjidic.py (view source)
- An OO interface to the KANJIDIC kanji dictionary. As-is.
- kconv.slb (download source)
- A MacPPC compilation of the
kconv module for Japanese character conversion. Drop it in your Python plugins directory, and invoke it as documented in its README.
Other Languages
- JWordNet
- A Java OO interface to the WordNet lexical database.
- Lisp packages
- Smalltalk; probably obsolete by now
You are viewing a mobilized version of this site...
View original page here