News by Barney Boisvert

This feed does not validate. (details)

My Flex-based Chart Engine

21 Nov 03:04
I've been looking for a good charting mechanism for a few personal apps.   CFCHART works in some cases, but I usually opt for SVG, either rendered inline (i.e. SVG and XHTML interleaved in an XML doc) or rasterized into a PNG server-side via Batik.  Both solutions have their merits, but both also have a lot of problems (drawing SVG requires a lot of arcane math, and CFCHART is quite inflexible and has a number of bugs).

Schema Tool Update

19 Nov 04:53
I've updated my schema tool again, this time with some pretty significant changes.  Quick recap: the goal of the app is to manage your DB schema via managed code, rather than some external process, so you get transparent database upgrade to all environments as part of deploying a new version of your app.  Very handy in production, essential in development. Here's a rundown of what's new: Multiple tool types are now supported via a new 'toolfactory' CFC.

Excalibur Constants

10 Nov 05:04
I believe I've blogged about Excalibur (an RPN calculator for Win32) before, but I just discovered the wide array of constants that it has built in: While I can't say that I use many of those numbers in my daily calculations (which are usually either pixels or dollars), the last one is definitely useful.

Regular Expression Backreferences and the Non-Greedy Modifier

9 Nov 13:33
Update: James Allen caught a formatting bug. It seems WordPress doesn't like my coloring, and when present, swaps the double quotes for "smart quotes". I've removed the coloring, and it seem to be fine again. Someone posted a question on CF-Talk about using backreferences in regular expression search strings. Not the replacement string, mind you, but the search string itself. This is, as you'd expect, perfectly legal and can be incredibly powerful.

Enums and ActionScript's Static Initializers

3 Nov 04:17
I discovered today, while trying to synthesize an Enum type, that AS3 has the concept of a static initializer, which is awesome. In a nutshell, a static initializer is kind of like a constructor, but it's for the class object itself, not instances of the class. It gets invoked during classloading, after all static properties have been set, but the class is turned loose for general consumption. Here's an example of an Enum type (named ColorEnum) that uses the static initializer (in bold): package com.

It's November…

2 Nov 03:09
… and that means NaBloPoMo, and this counts.

Interesting ChangeWatcher Behaviour

27 Oct 02:24
I've been working on a Flex app for visualizing market research data for the past week or two, and ran into an interesting behaviour of ChangeWatcher, quite at odds with how I'd have expected it to work.  As everyone knows, the Flash player is single threaded (and frame based), which makes for some interesting edge cases.

E4X and Prototype Goodness

18 Oct 01:55
I got around to trying the E4X-based query structure this morning, and it works like a charm.  It's now possible to write your queries like this: Query.execute(   <query>     update contact set       name = :name,       email = :email     where id = :id   </query>,   {     id: new QueryParam(id, "integer"),     name: new QueryParam(name),     email: new QueryParam(email)   } ); There's still an extra layer in there (i.e.

More Thoughts on Server-Side JS

17 Oct 23:00
I got a lot of great comments (along with some not-so-great ones) regarding my server-side JS implementation. As expected, quite a few people were very excited about using AS3 on the server instead of JS, and I agree. It got me thinking about how much code reuse you could get within an application. At the very least, you can share libraries, which is handy. But you can also very likely share VO's, and quite possibly entity objects as well.

Why JavaScript (or really, ECMAScript)?

17 Oct 05:02
After my last post on CF and JS integration (via Rhino), I got several comments that can be summarized as "why?". I addressed the issue in a rather oblique manner in my last post; here's a more full treatment. Before I start, I want to make incredibly clear that I'm not talking about a new JS-based application server built on Rhino.
Pages   ← previous   next
8 9 10 11 12 13 14 15 16