to do

jQueryUI: draggable + selectable

Posted in to do on July 14th, 2013 by ericsoco – 1 Comment

Across the tubes, there are many hints toward getting jQueryUI’s draggable and selectable widgets to play nice with each other.

However, they all come back to a technique laid out in a post by Ryan Coughlin back in 2008. The basic strategy comes down to this:

  • use selectable() to enable marquee (lasso) selection and click-container-to-deselect;
  • use a click handler to manually set jQueryUI selectable classes (‘.ui-selectable’, etc)
  • hook into draggable() to copy the offset to all selected elements.

I modified a jsfiddle from a Stack Overflow post on the topic with clearer comments and updated jQuery (v1.9.1) and jQueryUI (v1.10.3) libs. Here it is:


Posted in to do, to see on October 21st, 2012 by ericsoco – Be the first to comment

Recently, I’ve had a couple of opportunities to share with the public the exhibit development process at the Exploratorium, with a focus on iteration and evaluation (aka user testing).

The first: an article I wrote called ‘Iterating for Visitors’ on

The second: I’m speaking on the same topic, with a slightly different perspective, to an IxDA SF gathering this Wednesday, October 24.

In case you ever wondered how our exhibits come to be…

Strobe player for Shadowbox.js

Posted in to do on May 21st, 2012 by ericsoco – Be the first to comment

Shadowbox is lovely — easy to use, well-written and fairly well-documented, and has a nice player architecture for supporting media types other than those packaged with the library.

There isn’t great support out-of-the-box for FLV content, just the JW FLV Player, and for various reasons, I’m not really a fan.  I wanted something simpler and cleaner, and I found out about the Adobe Strobe media player. (Download it from sourceforge here.)

To be honest, I wrote this a while back and have been quite busy since, and I don’t remember exactly why I found Strobe to be such a better option.  But for those who agree with that sentiment, feel free to drop in the Strobe player for Shadowbox I whipped up, just for you.  It plays FLVs, Quicktime .mov files, and all other media formats supported by Flash.  And, it falls back to the HTML5 video player when Flash is not available.

To use it, add strobe.js to your Shadowbox source/players folder, edit the players array in build.yml to include ‘strobe’ (no quotes), and rake it back together as shown here.

Flex Library Project won’t build? Check for build errors.

Posted in to do on May 11th, 2012 by ericsoco – Be the first to comment

I ran into a particularly sticky problem today with Flex Library Projects in Flash Builder. I wrote up my issue as a Stack Overflow question, and subsequently managed to figure it out.

In short, as soon as I cut/pasted certain classes into my Flex Library Project, it would no longer rebuild the .swc file in the /bin folder. No matter what I did after pasting in that file, I couldn’t get the .swc to update.

The first symptom was that other projects referencing this Library Project could not find the classes in the Library Project even after I had pasted them into the Library Project. More sluething led to the frozen .swc in the Library Project.

After a while, I noticed that the class I pasted in had dependencies on other, absent classes. This caused build errors (apparent in the Problems pane, but unnoticed by me until then), and those errors caused Flash Builder to stop updating the .swc file.

Simple enough once I noticed the errors — of course Flash Builder cannot recompile the .swc when there are build errors. But there was no obvious indication of these errors, nor that building was failing. Once I cleared up the build errors, the .swc automagically reappeared.

The original source of the build errors turned out to be one unchecked box: when I initially created the Library Project, I neglected to check ‘Include Adobe AIR Libraries’. My library classes referenced some (absent) AIR classes, I got build errors, the .swc would not compile, I could not reference any of the library classes from other projects.

MongoDB ObjectID for AS3

Posted in to do on April 2nd, 2012 by ericsoco – 4 Comments

I’ve been working with MongoDB as of late, and finding the offerings for an ActionScript 3.0 driver to be rather lacking.

I started with ActionMongo, and quickly found out that it has no support for much of anything except the find() command.  I then found my way to MongoAS3, which is a HUGE improvement over the barely-started functionality within ActionMongo.  (Credit where credit’s due, Omar Gonzales built MongoAS3 off of Claudio Alberto Andreoni’s first steps with ActionMongo.)

However, I found a missing piece in MongoAS3 that was holding me back: it doesn’t provide any way to generate a new ObjectID.  This is a problem if, for example, you want to insert a new document.  Since Mongo doesn’t provide a response on a successful insert, this means that a followup query is required to get the ObjectID assigned by the server to the newly-inserted document.  Not ideal.

So, I added functionality to (which Omar included from Claudio’s original, as part of ActionBSON) to generate a new ObjectID per the ObjectID spec.  The one deviation from the spec comes from the difficulty in getting the process ID from within a flash runtime (requires launching a NativeProcess, which can only be done from an AIR application with the extendedDesktop profile); for this, we’re just using a random.

I also added the ability to extract the timestamp from the ObjectID, which could prove useful.

Hope it’s useful to some of you…I’ve submitted it to Claudio and Omar for inclusion into their distros.  Code after the break, or on Github. (I need a better Gist plugin…)

read more »

Nest 0.2 – Scenegraph and Event Model for Processing/Java

Posted in to do on June 8th, 2011 by ericsoco – Be the first to comment

I’ve been working on some more complex processing/java projects at work lately, and found myself missing some of the niceties of AS3, like add/removeChild(), setting .x or .scaleY or .rotationZ, adding event handlers, etc.

So, I started to write a framework to provide some of those things. Now, it’s all documented and pretty and waiting for you:

read more »

FLARManager v1.1 – Augmented Reality in Flash

Posted in to do on January 30th, 2011 by ericsoco – 10 Comments

Hello again. For your augmenting pleasure, here’s the first major-ish update since v1.0.

As Papervision is pretty much a dead project, I’ve been asked increasingly often to update the parts of FLARManager that use other frameworks. That’s the major focus of this release, but there are some other changes too.

FLARManager v1.1 can now stabilize tracking based on the user scenario you’re targeting. FLARManager.markerMode and FLARManager.patternMode allow more control over the amount of markers and patterns your application will track, and FLARCameraSource.activityThreshold is better integrated into FLARManager’s core to allow performance gains for stationary markers.

Of course, all of this is reflected in updated ASDoc-style documentation, and is documented here as well. And if you don’t want to take the time to understand what I’m talking about, just roll with the defaults and everything will be peachy.

As usual, you can get it via svn/download. Instructions here.

If you like what you see here, please consider flipping a penny or two my way:
donate to FLARManager

Also, in case you missed the news — ARToolworks is now hosting a FLARManager forum here. Please post support questions there for better tracking and archival. And in other communication news, I’m now on the twitters…look out for quickies about FLARManager, Flash, and all good things tech and design.

More on v1.1 after the jump…
read more »

Alternativa3D version 7 support, ARToolworks forum

Posted in to do on December 28th, 2010 by ericsoco – Be the first to comment

Quick updates on code and on support:

Thanks to Makc, FLARManager now supports the latest (free) version of Alternativa3D. As of the time of writing, this means Alternativa3D version 7.6.0. The latest source in my SVN /trunk can be checked out as described here.

Also, I mentioned to ARToolworks that it’s not ideal for FLARManager users to have to wade through comments on previous posts to get support, and they offered to set up a forum specifically for FLARManager. I’m going to start forwarding questions posted on this site to the ARToolworks/FLARManager forum from now on. You can find the new forum here.

Of course, the FLARToolkit forum still exists as well, and I’ll keep my eye on both. Where should you post? Well, if your question is FLARManager-specific, better to post on the ARToolworks forum, as their staff will be helping me answer questions. If your question is more about FLARToolkit, stick with the FLARToolkit forum. Either way, your questions will be heard.

FLARManager v1.0.4 – Augmented Reality in Flash

Posted in to do on November 28th, 2010 by ericsoco – 2 Comments

Another minor update, this time focused on Away3D.

v1.0.4 mainly just updates Away3D from 3.3.4 to 3.6.0, which uses the native flash.geom.Matrix3D instead of MatrixAway3D. This update also includes a new Away3D SWC.

As usual, you can get it via svn/download. Instructions here.

If you like what you see here, please consider flipping a penny or two my way:
donate to FLARManager

Note: Away3D v3.3.4 is no longer supported by FLARManager; if you need support for it, use FLARManager v1.0.3 or earlier.

FLARManager v1.0.3 – Augmented Reality in Flash

Posted in to do on October 31st, 2010 by ericsoco – 7 Comments

So, I have to apologize for the CLibInit errors people have been running into when trying to compile the latest version. I left a reference to FlareTracker in when testing, and did not notice this caused Flash Builder to attempt to compile even though the default application is

This minor release, v1.0.3, fixes that problem. There’s not much else new here, except a couple minor bug fixes. As always, you can download via SVN or via the download link on the FLARManager page. You no longer have to get the flare* libraries to compile FLARManager; hope this helps all of you who’ve been struggling with CLibInit.