Browsing articles from "December, 2008"
Dec
31

2008 Year End Analysis

So, another year gone… I’m going to be looking back at my previous years analysis and building off of that. Again, this is more of a historical record for myself than anything else.

My daughter, Paige, is still great. I am astounded by all that she says and does and wonder if she might be some rare prodigy. I suppose all fathers do think in this way but, my goodness, she is astounding. I was hoping we would have another on the way by now- no such luck.

Work is still great. I’ve been very busy but my position is quite flexible- so it works. A lot of stabilization has occurred over the past year and we are in a really good position, internally. I’ve been involved with a number of super projects and have been given a great amount of freedom when dealing with each one. This gives a lot of opportunity for experimentation and growth while remaining within set business goals- everyone involved comes out better for it. I have no complaints here aside from the drive- but even that is better due to my hybrid vehicle HOV pass.

I have cut down on teaching by about 30%. I pretty much no longer do any lectures for the CIS program- only DMS. CIS stuff is restricted to online simply because I do not have a solid block of time to dedicate as lectures require. Online is flexible enough that I can deal with it well along with any other duties. I would like to be able to do more lectures for them, but it would have to be just right in order to work.

Fractured Vision Media continues to serve me well as both my personal business and distribution mechanism. I took the time to formalize the business structure to a greater degree this year and have been fortunate enough to be able to turn down projects that either did not suit me or smelled of trouble. Legacy partners have continued to provide me with a good working relationship as well.

Personal projects have been quite sparse over the past year. I’ve managed to sell more than a few copies of ‘A Prison of Oneself’ and have begun to see the digital distribution returns from Amazon, iTunes, and the like begin rolling in. Nothing monumental- but refreshing all the same. I have begun writing new music and hope to pull something together for a release next autumn or winter. I have done absolutely no new video work this year, which is terrible. Though I did transfer a lot of my older video work to Vimeo.

I have had a really interesting year in my relationship with Adobe. While, in the past, I have served as a beta tester for various products, this is the first year I was given access to an entire pre-release suite. Fractured Vision Media was also made an Adobe Partner, somehow, and this was the first year I attended the Adobe MAX conference. The really big news is that I was nominated and accepted as an Adobe Higher Education Leader. There are some great benefits and privileges that I receive and it seems like a really fantastic group of people Adobe is starting up through this program. It is quite an honor for myself and I’m rather proud of this recognition. I plan to contribute as much as I am able toward this new endeavor.

Looking forward to 2009, I can only hope for more along the same lines…
Continued success at work, a fully-realized home life, growing my business more, quality time with personal projects, a greater involvement with the Adobe community, and further recognition by industry leaders. Go a.D. 2009!

Dec
23

Using FlexEvent.IDLE to Determine Inactivity

A FlexEvent.IDLE event will dispatch every 100 milliseconds when there has been no keyboard or mouse activity for 1 second.  So, if you want to have some other method fire off after the user is inactive for 5 minutes (for example), you would set it up as detailed below.

Be sure to import the following classes.  IDLE needs to be bound to a SystemManager instance and we will need to reference the mx_internal namespace later on:

1
2
3
import mx.managers.SystemManager;
import mx.events.FlexEvent;
import mx.core.mx_internal;

You’ll need to tell Flex that you want to use mx_internal as a namespace to access those properties within the SystemManager class. SytemManager has an “idleCounter” property which is super useful to access- but it is scoped to mx_internal and is not normally accessible. Trying to access it without these steps will throw an error:

1
use namespace mx_internal;

SystemManager is automatically instantiated as a part of every Flex app, so we do not need to do this manually. We will, however, need to add an event listener for FlexEvent.IDLE:

1
this.systemManager.addEventListener(FlexEvent.IDLE, userIdle);

Construct the callback method. Five minutes is equal to 300000 milliseconds… divided by 100 ticks and the number we need to check against is 3000. Of course, you’ll probably want something a little shorter in duration for testing:

1
2
3
4
5
private function userIdle(e:FlexEvent):void {
	if(e.currentTarget.mx_internal::idleCounter == 3000){
		//do something!
	}
}

Note that we prefix the idleClounter property with the mx_internal namespace.

That’s it! Now we have a sweet little activity monitor in our app. When activity is detected, idleCounter will automatically reset as well.

Dec
19

VidLoop Updates and a Word of Caution

icon_128I took some time today to update the VidLoop AIR application. The current version is 1.2.2.  New features include a randomize function and the integration of the AIR Update Framework.  I’ve also fixed a few small bugs.

A note of importance here… I really should have integrated the update framework before my initial public build.  I just didn’t initially expect a ton of users.  Now I cannot push the update to anyone who currently has the app installed- they’ll have to update manually.  It’s probably best to include the updater on any project- no matter how small… just in case. Lessons learned!

Dec
1

Nifty AIR App: VidLoop

icon_128Last week, I was approached by someone asking if we could build a small application that would run a series of videos in a continual loop. I told him it would be pretty simple to do this and that it would only be an afternoon’s work in AIR. So, that evening, I was able to point him to the URL hosting the AIR app. It performed exactly as he requested- user points to a local directory and then all the videos within are run in a loop until the user intervenes. Very simple.

My client had no problem installing the app or running it but asked if it might be possible to inject still images between videos as well. This got me thinking of other useful features and I ended up spending a good deal of time over the Thanksgiving break enhancing and tweaking until I had what you can see below.

VidLoop

The VidLoop application allows a user to specify a directory of media files in order to present them within a semi-infinite loop.

File types that are supported are as follows…

VIDEO: flv, f4v, mp4, m4v

IMAGE: jpg, jpeg, gif, png

The user is able to adjust certain settings based on the controls presented. This includes the amount of time images are to persist on the screen, whether or not to scale these images up to fill the screen, the local directory to pull media from, and whether or not to parse subdirectories. All settings are saved upon each occurrence of a successful run.

Hit ESCAPE to stop a presentation. CLICKING will step through each item and can be used to skip ahead regardless of video length or image duration settings.

I can see a lot of applications for this tool and have begun thinking of some future enhancements; Screensaver Mode, Media Sort Functionality, Randomize Option…

Before AIR, it would be have been a lot of trouble for me to put something like this together.  Now, it’s a piece of cake – and this work is very addicting as well!

Grab it, if you wish…

About this Website

This is the website of Joseph Labrecque: Senior Multimedia Application Developer for the University of Denver and Owner of Fractured Vision Media, LLC. Joseph is an Adobe Higher Education Leader.

Adobe Higher Education Leader

Adobe Certified

Aggregated by AXNA

Follow me on Twitter!