The Magic Behind Interface

Blog

Fontcase 1.1

fontcase

Fontcase, you’re everything I need but I don’t have time for a relationship right now.

Some nice people over in Netherlands created an affordable font management application that is as elegant as it is useful. I’ve been testing out the beta version since its release in January with a kind of where-have-you-been-all-my-life infatuation, but it’s not looking like we can live together just yet.

Fontcase has all the trappings of the perfect font management app — tags, genres, and browsing features could a keep a designer manicuring their font collection for days, but it’s not quite ready for prime time yet. In addition to metafun features I need something fast enough to keep up with my deadlines. Fontcase chugs to the point where I give up (even after the 1.1 update), shut it down and go back to my reliable but boring Font Explorer.

No white flag just yet, but I’ll be looking out for an update that improves performance before I make the switch…

http://www.bohemiancoding.com/fontcase/index.html

YouTube 3.0

youtube

http://www.daito.ws/weblog/2008/11/workshop_youtube_live_family.html

Skimmer

Skimmer in fullsize and widget mode

I haven’t fallen in love with a social media aggregator thus far, but I do like the widget display option in the recently-released Skimmer. The elegant design makes updates easy to read. Available for free from fallon.com, the Adobe Air app displays posts from Twitter, Facebook, Flickr, YouTube and Blogger. Minuses are that it is a little buggy, and I haven’t figured out how to categorize and filter friends. But maybe that’s just me.

via Adweek

Palm App Catalog

Palm Pre

When I visited the Sprint Store last Thursday, the rep there highly praised the soon-to-be-released Palm Pre phone. Due out this summer, the phone combines a qwerty keyboard with a touchscreen. Most notably, apps for the phone will be based on HTML, CSS, and javascript, already commonly used by web developers. The app store will be called the Palm App Catalog and will compete with other new stores such as Google’s Android Market and Blackberry App World.

Inside Waves

Waimea Church

Recently featured on Good Morning America and the Today Show, Clark Little is an Hawaiian surfer turned photographer. Using a Nikon D3 in waterproof housing, Little captures the inside of the barrel at 9 frames per second. An array of stunning images result.

AS3 MathUtils

We’ve started a MathUtils class with a bunch of static methods to help you do your Math homework. This class will surely grow over time, please post ideas, requests, and other resources as comments.

Some of my favorite methods are:
magneticModulo – see with Flash and PixelBender example here
degreesToRadians
radiansToDegrees
generateTruelyUniqueInt
simplifyAngle
roundDecimalPrecission

There’s also a public static const for PI / 180, using a pre-calculated value is an optimization technique.

The documentation for the class can be found viewed here.

Download the class file here.

Magnetic Modulo

What is magnetic modulo you ask? It’s nothing really…except the coolest thing ever.

Download the source PixelBender files here. You’ll find filters for creating square, diamond, and circle shapes, and how to plot them using Magnetic Modulo.

I’ve been working with the PixelBender Toolkit a lot lately, and I’ve written a placement algorithm that is very useful. I call it Magnetic Modulo because it uses modulo division to adhere to one of two points, based on a distance parameter. Below is a video example of a PixelBender effect that uses Magnetic Modulo to control plotting the numerous circles in the filter. Changing the distance parameter changes how far apart the circles are from each-other. Changing the radius changes the radius of each circle.

http://www.vimeo.com/3824382
http://www.vimeo.com/3841767

And here’s a Flash based example of how Magnetic Modulo works. Think of distance as the distance you want each point to be from eachother. So below, our two blue points represent the possible points that the red ball will be attracted to. Think of them like equally weighted charged magnets, both of which the red point is attracted to. The red point is lazy, just like Objects in the real world, it will be attracted to whatever point it is closest too. If remainder of its current position divided by distance is greater than or equal to half the distance, it goes to the rightmost point, otherwise the left most point. If that doesn’t make sense, just drag the below red ball and let go, you’ll get the hang of it.
Math is visual.

Flash Example 

You need the Flash Player to see this.

This algorithm that I have named “magnetic modulo” has proven extremely useful whenever working with plotting points. Below is source code for the algorythm.

ActionScript

/**
* Rounds a point to the closest point evenly divisible by dist
* @param point The original point to round
* @param dist The distance of which points should be displaced from one another
* @return The original point rounded to the closest point evenly divisible by dist
*/
function magneticModulo(point:Number, dist:Number) : Number {
	var mod:Number = point % dist;
	if(mod >= dist / 2) point += (dist - mod);
	else point -= mod;
	return point;
}

PixelBender

    float magneticModulo(float val, float dist)
    {
        // do the slashes
        float mod = mod(val,dist);
        if(mod >= float(dist * float(0.5))) {
             val += (dist - qer);
        } else {
            val -= qer;
        }
        return val;
    }

Download the source PixelBender files here. You’ll find filters for creating square, diamond, and circle shapes, and how to plot them using Magnetic Modulo.

Batch Process Type Imagery for Web

Type Stamp Example

Type Stamp Example

If you desire to use a typeface of choice in a HTML site, regardless of whether or not your users have that font installed on their systems, you basically have three options: sIFR, static images, or Font Embedding which is now supported in Safari and will be in Firefox 3.5.

“sIFR (or Scalable Inman Flash Replacement) is a technology that allows you to replace text elements on screen with Flash equivalents” – sIFR

sIFR uses Flash, which is its strengh and weakness. It’s nice because the text is dynamic HTML text. Some disadvantages are performance (especially if you’re using transparent swfs), and accesibility – no flash player, no custom fonts.

But the only alternative other than font embedding is static jpegs, gifs, or pngs.

True, but thats not so bad, atleast if you have this ExtendScript it isn’t.

The idea is simple, make it really easy to make a bunch of images for custom font HTML headers designed from a psd file. So you provide this script a psd and an Array of Strings. Then you pick a directory to save the images, and the output settings (jpeg, png, gif). It will turn each String in the Array into an image created from your psd. You’ll then be asked if you’d like it to save a xml file of HTML img tags, populated from the String value, and the width and height of the image.

So it saves quiet a bit of time as you don’t need to create and then save out each image from Photoshop, and having it spit out the pre-made img tags for you is pretty handy.

You’ll need Adobe ExtendScript Toolkit, which you probably have if you have Photoshop CS3 or newer.

Here’s the script.

If you’re asking yourself if the script is outdated due to browser font embedding, it may be in most cases, but there still may be times where its desirable to use type as image. The script isn’t only web specific, it can be used on print resolution .psd files for batch processing for print work, or whatever else.

FolderUtils – Adobe AIR

FolderUtils Example Screenshot

FolderUtils Example Screenshot

If you’ve been getting into AIR and using the File Class, you’ve probably found it to be pretty handy. And then when you started looking for a way to get a directories contents recursively, you didn’t find anything.

That’s because with the AIR File Class, you can only get the immediate contents of a directory as an Array of File Objects. You can check whether or not they are a File, or a Folder, by using File.isDirectory, but thats it. When I ran into this problem I started a FolderUtils class. With it, you can recursively get the contents of a directory, you’ll get an Array of every File object located within that directory (no matter how many subdirectories deep).

If you’re using the Advanced Data Grid Flex Component, and want to display the contents in a tree view, this utility will prep an Array of File Objects for displaying in the Data Grid. You can also filter files by file type(s), get a directory’s total file size, and format the file size for display.

I’m sure this class will grow over time, if you’ve got any handy related stuff please share!

Get the source and full example as a Flex Project archive here.

Related Links

AdvancedDataGrid – ActionScript 3.0 Language and Components Reference

Advanced Data Grid View Screenshots

more augmentation


Desktop Fireworks from Saqoosha on Vimeo.