TEST TEST

Widget.System Limitations

iaian7 » blog   John Einselen, 26.09.09    

Development of the Chroma dashboard widget has been moving along nicely, but I hit a pretty catastrophic error today; the library file was getting truncated. A lot of changes have been made recently to the formatting of the data, so the most plausible culprit was myself. Surely, somewhere in the reading, modifying, and writing back to the library file via command line interface, I’d screwed something up.

After 4 hours trying innumerable possibilities, hacks, tests, and workarounds (all of them failed), I discovered it wasn’t me at all; my macbook was limiting the outputString from widget.system to 4096 bytes. What truly makes this bizarre is that the Mac Pro at work does not have this same limitation, and they’re both Intel 64bit processors running the same version of OS X. I still don’t know how this is even happening; most online sources claim running widget.system asynchronously removes the limits. Well, I now have plenty of proof that says otherwise!

The good news? I finally worked out a solution. Using the myCommand.onreadoutput function, I was able to add each block of 4096 bytes back into a full length javascript string. Perhaps not the most elegant solution, but should work across all systems.

var libString = "";
var commandString = "cat /directory/file.txt";

function getLibrary(event) {
	var myCommand = widget.system(commandString, processLibrary);
	myCommand.onreadoutput = processLibraryConcat;
}

function processLibraryConcat(event) {
	libString = libString+event;
}

function processLibrary(event) {
	// library processing should use libString (full length output)
	// instead of event.outputString (truncated to 4096 bytes)
}
bookmark  

Dynamic Paper Cutouts

iaian7 » tutorials » aftereffects   John Einselen, 25.09.09    

1

While stop motion can be a fantastic medium, the process is too slow for many productions. Even for simple elements, like wrinkled paper, the time it takes to do things physically is often untenable; for the Microsoft PowerPivot online advertising campaign, Vectorform required lightening quick turnaround on visual elements and animation revisions, often on an hour by hour basis. This is how the paper cutout effects were designed and generated dynamically using Adobe After Effects.

read more

Lipsyncing with Papagayo

iaian7 » tutorials » aftereffects   John Einselen, 25.09.09    

Using freely available tools, lipsyncing a character in Adobe After Effects doesn’t have to be a pain. Papagayo is an open source app for breaking a script down into phonemes and syncing the pieces to an audio track, while LipSync is an OS X dashboard widget that helps translate the resulting moho switch files into After Effects keyframes.

read more

Dashboard Development

iaian7 » blog   John Einselen, 14.09.09    

Last summer I had been working on a project that required a rather large amount of lipsync animation in a short amount of time, and developed a workflow involving Papagayo, Lightwave endomorphs, and some custom javascripts to translate between the two.

Hobbled somewhat by the lack of system integration and javascript security limitations, I had to copy blocks of phoneme frames in, and copy out blocks of translated keyframe data. The project died down, and I didn’t need to revisit the workflow till early this summer. That’s when I finally gave widget programming another chance, and got into using Dashcode, part of Apple’s free Xcode development suite.

Let me preface by saying — Dashcode has issues. Long standing issues that haven’t been fixed for quite some time, even through several update cycles. Colour values inexplicably shift during editing object properties (degenerating into a completely different value headed inexorably south), objects loose properties, elements take on properties from other elements deleted the week before, etc. But once that’s out of the way (and you learn to watch out for disappearing styles), it’s a pretty cool system. Not only did it open up doors for interfacing with basic system events (dragging and dropping files, could it really be any easier to translate a .moho file?), it opened up full access to the OSX command line as well. All using a familiar javascript basis.

And that’s the back story to how I started developing a small collection of utilities for Mac OS X, and my earlier post introducing iaian7.com/dashboard. It’s mostly stuff I’ve needed at work — first the lipsync conversion utility, then a widget to help calculate screen resolutions and ratios.

Yesterday I finished up the the latest addition to my collection; first public release of Chroma, a basic colour conversion utility and swatch library. I also posted everything to macupdate.com I certainly didn’t expect such a dramatic response, but traffic has increased substantially with scores of downloads for each widget just within the first hour or two. I sure hope I don’t regret this, there simply isn’t time for me to keep taking on more projects like this! Even so, I really hope they prove useful to others, and plan on continued development as I have time. Hope you enjoy!

Prowler — interface for the Prowl push notification platform, letting you send notes instantly to your iPhone or iPod Touch.

Sheets — generate sprite sheets from image sequences or group selections. It requires an ImageMagick command line installation, but I have yet to find a good Photoshop solution for this, and Sheets doesn’t crash as often. Oh yeah, I went there!

Chroma — a colour management and conversion utility. The library is a little basic so far, but I’m hoping to continue developing the feature set to include more features and better management. The data is all there (swatches are given a group title and name when added), but how it looks and performs is yet to be defined. For now, I’m just excited to finally have a good solution for colour swatches and web development.

Feel free to head over to MacUpdate.com to rate and leave comments for Lipsync, Ratio, Prowler, Sheets, or Chroma.

bookmark  

Chroma

iaian7 » code » dashboard   John Einselen, 13.09.09    

Chroma is an OS X Dashboard utility for converting colours between HSV, RGB, and HEX formats. Favourites can be saved to the swatch library, and are easily copied to the system clipboard for use anywhere else.

Version 4.0 includes an all new library system, support for multiple types of data (256 integer, percentage, and floating point values), updated copy/paste, and many other updates.

read more

Sheets

iaian7 » code » dashboard   John Einselen, 6.09.09    

Sheets is an OS X widget that automates the process of building sprite sheets from image sequences. Using ImageMagick, animations can be output in strips, sheets, or with custom settings for scale and tiling. Large collections are even automatically paginated when necessary.

read more

Prowler

iaian7 » code » dashboard   John Einselen, 3.09.09    

Prowler is a simple OS X widget that lets you send messages to any iPhone or iPod Touch running Prowl, delivered immediately using push notifications. A fast and easy solution for delivering URLs to your handheld, or any other info or notices you might want to push.

read more

Syncing via Dropbox

iaian7 » blog   John Einselen, 11.08.09    

I’ve been a long time fan of Dropbox. Not only does it let me sync files across computers, but it does it seamlessly and reliably (I’ve never once had a file corrupted or lost). A free account gives you 2Gb of cloud-synced storage space, with updates pushed to any connected computer running the menu bar app. Paired with Fruux for automatic address book, calendar, and bookmark syncing, you can get a fair bit of Apple’s expensive MobileMe service for free.

However, one problem with using Dropbox as a sync solution is that it doesn’t sync multiple locations – only a single Dropbox folder located, usually, in your user directory. Some applications have catered to this, such as 1Password’s development of the Agile keychain. Most, however, do not.

The answer? Symbolic links. Based on the excellent tutorial from SmileOnMyMac.net, this is a sample terminal command for setting up the Snippet database to sync using Dropbox (all one line):

ln -s ~/Dropbox/Sync/SnippetDB.plist ~/Library/Preferences/SnippetDB.plist

Make sure you copy the actual plist file to your Dropbox/Sync/ folder first, but that should take care of it. I’ll be running through a few tests in the next few days to make sure it operates smoothly. If my past experience with Dropbox holds true, it’ll be completely painless. It should also work with any similar application setup, just update the above directory links with the appropriate file locations (keeping in mind that not all apps play nicely when files are updated while still opened on another computer).

Addendum 2010: Microsoft’s Live Mesh offers 5Gb free storage, and syncs any folder you select. However, it’s exceedingly cumbersome, requires a full dock-based app to be running at all times, and is easily confused when content changes. I’ve never used it for syncing preferences or databases across computers, because it’s nearly unusable just for storing files.

Addendum 2012: Dropbox has added the ability to sync specific folders, but to keep things simple, I actually still use the symlink method! It lets me overview every pieces of synced data rather quickly in the same directory, and keeps things simple to set up on a new computer (I just keep a text document of the terminal commands needed to set up each folder).

Also, Google released Google Drive, in case you’re interested. Similar concept, different company.

Iaian7, 13.08.09

My elation was short lived when I discovered Snippet does not play well with a db.plist file that is changed outside of the app itself. The Dropbox sync technique holds true, Snippet just can’t take advantage of it.

Iaian7, 27.10.09

Here’s an example command line for syncing YummyFTP bookmarks:

ln -s ~/Dropbox/Sync/YummyFTP ~/Library/Preferences/Yummy\ FTP/Bookmarks

Iaian7, 4.12.09

Command line for switching Lightwave’s plugin folder to Dropbox:

ln -s ~/Dropbox/Sync/LightWave3D ~/Library/Application\ Support/LightWave3D

adijuh.com, 19.01.10

Dropbox is designed to simply sync files and folders, but you can use it to trigger other tasks by simply adding files

Iaian7, 26.02.10

To sync Quartz Composer plugins, move your Library/Graphics folder to your Dropbox, then enter the following in Terminal:

ln -s ~/Dropbox/Sync/Graphics ~/Library/Graphics

bookmark  

New Widgets

iaian7 » blog   John Einselen, 31.07.09    

I’m not much of a programmer; it’s a hobby from time to time (especially when I’m bored), but not exactly a talent. My dev cycle consists mostly of mashing together code till it stops crashing all the time. Not exactly the most efficient way to work, but the best I can hack together given my non-programmer logical processes and limited knowledge of javascript. That said, the past month I’ve been able to refine some basic utilities and expand my programming knowledge a bit; as of this evening, there’s a new section here on the site (iaian7.com/dashboard) and I’ve posted my first official widgets. Enjoy!

Ratio – an Apple OS X Dashboard widget for calculating common screen resolutions of various sizes. Includes presets for HD, NTSC, PAL, Apple iPhone, Microsoft Surface, Fullscreen and Widescreen PC, and more. My first actual widget, so it’s been redone a few times… certainly a learning experience, but I’ve found it pretty useful myself.

LipSync – a dashboard widget for converting Moho format phoneme animation files into Lightwave envelopes or After Effects keyframes. Preston-Blair and Simplified Flash phoneme sets are included along with user definable sets. If your lipsync needs are basic, this is one of the faster (and cheaper) solutions I’ve found so far.

bookmark  

Ratio

iaian7 » code » dashboard   John Einselen, 31.07.09    

Apple OS X Dashboard widget for calculating common screen resolutions of various sizes. Includes presets for HD, NTSC, PAL, Apple iPhone, Microsoft Surface, Fullscreen and Widescreen PC, and more.

read more