Where in the world is Carmen Sandiego, Jared Kroff, and Adam Devincent

So I noticed that a lot of people are looking for my former students and Flash geniuses Jared Kroff and Adam DeVincent. Through my good friend Gordon Peterson I found that Jared Kroff and Adam DeVincent are now with a company called Red Interactive Agency. According to Gordon Funktion12 was acquired or something by this agency after sweeping the FITC Awards. Whatever they payed for www.Funktion12.com they got a good deal. Jared and Adam are amazing.

So to contact them you can call or mail the Salt Lake city office of Red Interactive Agency at:
Phone 801.355.4900
Fax 801.355.4901

Mailing Address:
230 S. 500 W.
Salt Lake City, UT 84101

So for all you googlers that are looking for Jared Kroff and Adam Devincent this may help. If nothing else you should check out Red Interactive Agency it just won the FWA Site of the Month and is amazing.

Curtis J. Morley will present at TTIX conference

I will be speaking at the “Teaching with Technology Information Exchange” conference this year which will be held at Utah Valley State College (soon to be Utah Valley University) on June 7th and 8th. The conference will be held in the Student Center and my session will be in room SC 206 A on Thursday at 10 – 10:50 AM and room SC 115 on Friday at 10 – 10:50 AM. I will be presenting with Dr. Clint Rogers (Research Associate – Faculty at BYU), Dr. Steve Liddle (Director, Rollins Center for e-Business and Associate Professor, Information Systems), and Kyle Mathews (a BYU student) on the topic of “The Present and Future of Web 2.0 Technologies in Teaching and Learning”. Check back after the conference for presentation notes, links, and downloads. You will find the conference fascinating and as always the conference has free registration.

The abstract is below:

Teaching with Technology Information Exchange Conference (TTIX)(June 7-8 at UVSC)

http://www.ttix.org
June 7 – SC 206 A (10 – 10:50 AM)
June 8 – SC 115 (10 – 10:50 AM)

The Present and Future of Web 2.0 Technologies in Teaching and Learning

Information technology continues to challenge educational paradigms (Brown, 2000; Schank, 2002). Keeping up-to-date with the most current trends and technologies that are capturing the minds and imaginations of youth is central to knowing how to structure e-learning experiences in the coming decade. Most of the existing e-learning that has been produced is dry and boring. Current learning management systems are not generally used for learner customization, feedback, or collaboration with other learners and teachers (Rogers, Liddle, Chan, Isom, Doxey, 2007). Additionally, high-quality content that is interactive, novel, and engaging is often “trapped” in a specialized format that is not interoperable, making it difficult to transfer to another technology or purpose.

The objectives of this presentation are to provide alternative mental-models that help teachers integrate Web 2.0 technologies and interactions into current educational practice, show examples of what currently exists, and demo (on day two will give hands-on experience with) a cutting-edge global community learning platform.

In the Web 2.0 era, web users expect the opportunity to interact with one another and to contribute in a participatory, continually evolving, dynamic web. Examples of this phenomenon include Wikipedia (wikipedia.org), a reader-created and -maintained encyclopedia, web logs or blogs (e.g., see blogger.com), and YouTube (youtube.com), which was recently bought by Google for more than $1.6 billion. Although there have been several efforts from institutions like MIT to make available huge amounts of digital content, the usefulness of these materials have been met with mixed results (Hylen, 2006; Terkla & O’Leary, 2006). Most of these online approaches are similar to the enterprise learning management systems (WebCT, Blackboard, etc.) in that they typically have the “course” as the basic unit of organization and they model traditional university courses in being “led by an instructor, following a specified curriculum to be completed at a predetermined pace” (Downes, 2005). They are still focused on content delivery and creation from teachers to learners.

The move itself, however, towards digitization and open sharing of content indicates that the value is not as much the content transfer only, but rather in the learning community, and the use of the content in interactive, creative, and meaningful ways. As the web and learners themselves are changing, online learning invites Web 2.0 platforms that focus more on ongoing content creation and collaboration in communities of people that are both teachers and learners. This presentation will demo and day two will give hands-on experience with a learning system that is being developed to support uploading, reorganizing, ranking, sharing and reusing rich content, assignments, and assessments in a global learning community, using a Web 2.0-style of interaction.

Flash CS3 / Flex Error Messages – Error #1063:

ArgumentError: Error #1063: Argument count mismatch on com.cjm::DrawLines/::onEnterFrame(). Expected 0, got 1.

This is an easy one it means that you got an argument passed to your function yet you did not specify that one was coming. So you did this “function Bob ()” instead of “function Bob (myEvent:Event)” This error is common when dealing with Events.

Flash CS3 / Flex Error Messages #1010:

So that you don’t have to figure out all the cryptic error messages that are being thrown from Flash 9 and Flex I have decided to compile a list of error messages and what they mean in a practical sense.

TypeError: Error #1010: A term is undefined and has no properties.

What this error means is that you are trying to access a property of an object that isn’t there. This is very common when using Arrays. This error will also pop-up if you are trying to access a property of an Object that has not been assigned/created.
Bad Example 1:

for (var i:uint=0; i<=internalArray.length; i++) {
if (internalArray[i].length > 10){
trace(internalArray[i].length);
}
}

Good Example 1:

The above example will throw the error because you are trying to access 1 extra element on the end of your array. Just remove the final loop by removing the “=” sign in the comparison. Because Arrays are “0 based” i<=internalArray.length will take you beyond the last index of the array and try and evaluate for a value that is not there. For example var newArray:Array = [“Bob”, “Joe”, “Jim”]; has a length of 3 but Jim has an index of 2.

for (var i:uint=0; i<internalArray.length; i++) {
if (internalArray[i].length > 10){
trace(internalArray[i].length);
}
}

Bad Example 2:

for (var i:uint=0; i 10){
trace(internalArray[i].bob);
}
}

Good Example 2:

The above example will not work because the property bob has not been defined anywhere in the code. You can remedy this by removing the reference to “bob” or by declaring what the “bob” property for each item in the array.

for (var i:uint=0; i 10){
trace(internalArray[i]);
}
}

Bad Example 3:

This example tries to access a property that is created(instantiated) a few lines down.

for (var i:uint=0; i 10){
trace(internalArray[i]);
}
}

var internalArray:Array = [“bob”,”jim”,”joe”];

Good Example 3:

The order of operation is important because even though Flash/Flex does some “hoisting” you will still get errors if you don’t order things properly.

var internalArray:Array = [“bob”,”jim”,”joe”];

for (var i:uint=0; i
if (internalArray[i].length > 10){
trace(internalArray[i]);
}
}

As always – Happy Flashing

Flex2 Builder not installing on Vista

So for all you people that jumped on the Windows Vista bandwagon you may be experiencing difficulty running Flex2 Builder after you have installed it.

This is the error that I was getting:

!SESSION 2007-05-11 20:10:31.205 ———————————————–
eclipse.buildId=unknown
java.version=1.4.2_12
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Command-line arguments: -os win32 -ws win32 -arch x86

!ENTRY org.eclipse.update.configurator 2007-05-11 20:10:31.696
!MESSAGE Cannot backup current configuration

!ENTRY org.eclipse.update.configurator 2007-05-11 20:10:31.727
!MESSAGE Could not rename configuration temp file

!ENTRY org.eclipse.osgi 2007-05-11 20:10:32.644
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: no swt-win32-3139 in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:123)
at org.eclipse.swt.internal.win32.OS.(OS.java:18)
at org.eclipse.swt.widgets.Display.(Display.java:125)
at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:381)
at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:155)
at com.adobe.flexbuilder.standalone.FlexBuilderApplication.run(FlexBuilderApplication.java:45)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:334)
at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
at org.eclipse.core.launcher.Main.run(Main.java:973)
at org.eclipse.core.launcher.Main.main(Main.java:948)

!ENTRY org.eclipse.osgi 2007-05-11 20:10:32.647
!MESSAGE Bundle
update@plugins/com.adobe.flexbuilder.debug.e32_2.0.155577/ [70] was not resolved.
!SUBENTRY 1 org.eclipse.osgi 2007-05-11 20:10:32.647
!MESSAGE Missing required bundle org.eclipse.debug.ui_[3.2.0,99.0.0).

And this is how to resolve it:

I experienced the same issue when I tried to install Flex on a new Vista system. Here’s how I corrected it:

1) Navigate to C:\Program Files\Adobe\Flex Builder 2\plugins

2) Look for the file “org.eclipse.swt.win32.win32.x86_3.1.2.jar”. You will need to open this in a file compression program such as WinAce, WinRar or WinZip. If you don’t have such a program you can try:

2a) Copy (make sure you COPY, not MOVE) the file to another location, such as your desktop.

2b) Rename the file with a “.zip” extension (i.e. change “.jar” to “.zip”). NOTE: You will not see the file extension if your system is configured to hide extensions. In this case, open a Windows Explorer window (“My Computer”, etc.) and press the “Alt” key. A menu bar will appear. Select “Tools -> Folder Options”. Select the “View” tab, and look for “Hide extensions for known file types”. Uncheck the box, then click OK.

2c) You should now be able to right-click the file and use Vista’s built-in .zip extraction to extract the contents to a folder.

3) Within the org.eclipse.swt.win32.win32.x86_3.1.2.jar file is a file called “swt-win32-3139.dll”. Copy this file to C:\Windows\System32\ (You will be asked for a confirmation when you do this).

Once that is done, Flex should run correctly. You can now delete the copy of the .jar file that you made, as well as the folder created by Vista’s .zip extraction (if applicable).

Hope this helps!

The above excerpt was taken from the following website at Adobe

http://www.adobe.com/cfusion/webforums/forum/rss.cfm?forumid=60&catid=539

As always Happy Flashing/Flexing

musicRAIN wins a FITC award

musicRAIN logoMy company, mediaRAIN, just won the Flash in the Can Award in the “audio category” for the musicRAIN interactive sheet music application. Robert Penner accepted the award Flash in the Can logoon our behalf. musicRAIN the leader in digital sheet music is the creation started many years ago that is revolutionizing the music industry. There were many people that helped to make musicRAIN a reality.

The original version was created for the LDS Church and can be viewed at www.lds.org/music. They were the first to believe that with technology and music combined we can bless many lives. The music player for the church has touched many lives around the world. There were many prayers and miracles from God that happened along the way to make this original version happen.

The commerical version owes many thanks to Morgan, Brooke, Blake and Shannon. They believed in us. Because of them it was possible for the player to be developed in a commerical way using and refining the indusrty standard musicXML created by Michael Goode and have the musical and Flash genius of Robert Penner to help in creating an amazing application that is light and versatile. It also owes many thanks to the amazing people at CCLI. Howard and Deryk, Gary, Pete, and everyone else.

I’m sure I will forget many people but here is a list of key contributors to the project over the years.

At the LDS Church

At CurtisMorley.com Interactive

  • Michael Chamberlain (An amazing project manager and friend)
  • Richard Lyman (intial Developer with me on musicRAIN)
  • Tyler Wright (The one that saved musicRAIN for the church)
  • Larry Lentz (design and creation)
  • Chase Brammer (Coding actionscript)
  • Gary Rogers (Back -end systems)
  • Evan Ehat (intial designs etc…)
  • Josh Buhler (Ties, Slurs and much more for the Church version)

At mediaRAIN

  • Jacob Wright (Backend, middleware, DB, security)
  • Delane Barrus(Design and interface)
  • Dave Nibley(promtional material)
  • Wayne Pullman(tradeshow booth and materials etc…)
  • Ben McElroy (font creation)

Contractors

  • Robert Penner (A true Flash Architecture genius)
  • Michael Goode (Creator of the musicXML standard)
  • Rob Taylor (Thanks for the great help)
  • Scott Johnson (Work on the midi integration)

CCLI

Key Supports

  • Morgan
  • Brooke
  • Blake

Thank you everyone for making my crazy dream into a reality and for blessing many lives along the way.

Speaking today at BYU on Flash & Google Analytics

Today I will be a guest speaker at BYU and will be talking about Google Analytics in Flash. I will be showing the students the power of using analytics and Flash. I will also be talking briefly about Omniture analytics and Flash. My talk will be centered around the capabilities of fine tuned tracking with Flash and what data should be tracked. I will also talk about the class that I am about to release that is built for Google Analytics and Flash.

Stay tuned and Happy Flashing.

SWX – A Great Idea

Aral Balkan has come up with a new way to get server side data from the server and into Flash. This is a very unique method that has great application. You are probably wondering why we need another format to do Flash and server side communication. We have LoadVars(gotta love the .txt files), XML, Remoting(Macromedia Flash Remoting, AMFPHP, WebORB, etc…), JSON, SOAP, XML-RPC, Flash Media Server, Red5, and PHPObject. Some have asked this same question.
When I look at Aral‘s latest project two reasons come to mind of why this is not only a good idea but a great idea.
  1. Mobile Devices.
  2. Data stored on the user computer/device in the form of a swf for local access later.
Some other benefits that Aral states are :

  • It’s simpler to use. (loadMovie(); is pretty easy)
  • Data is deserialized twice only as opposed to four times.
  • You don’t have to learn a new API and can reuse your existing knowledge.
  • It is useful in mobile applications with limited processing power
  • The final downloadable bundles of SWX will contain everything you need to get up and running (you don’t need to buy or download additional tools).

I would really like to focus on the first two items because these have huge implications around what is now possible for mobile devices and for persistent data.

Mobile Devices

The Flash community has been in desperate need of a slim client that doesn’t require huge XML files and can be accessed using just Flash. SWX uses the loadMovie(); command, which we all know has been around since, “Availability: ActionScript 1.0; Flash Player 3″. How easy is that. All you have to do is load a swf into the mobile device and you automatically have all of your data. You access it just like a regular Flash object.

SWX isn’t bogged down by parsing XML and freezing the player while it does so. It is able to be used without heavy load on the processor or large files that have to be parsed. Aral has this to say, “SWX, by design, is the least processor intensive method possible since it is SWF bytecode and that’s as native as you get in Flash.”

Locally Stored Data

Storing Data in a swf is a great concept. It allows the main swf to read and access data from the server without the server load and multiple pings back and forth. I would love to see this concept explored further. It is like an intermediary data base on the users computer. I would imagine that with a little ingenuity and Aral Balkan like genius there could be a way to check if the file is loaded onto the users computer already and if so check a SharedObject for the reference to the local file and only access that swf. This would entirely alleviate the need for a connection after the first time the data is passed into the SWX. Obviously, this has many ramifications, but I would love to see it explored more.

Summary

Great concept, great implementation, and a great way to be more accessible for mobile devices. This is just the solution needed for getting a heavy data app to perform well on mobile devices. I am very excited to see the future of it.

SWX is a great idea.

Alternating Rows in Flash

You can use modulo(%) to check for alternating rows in ActionScript.

var myRow:Object = new Object;
var color0:Number = 0x0000ff;
var color1:Number = 0x00ff00;
for(var i:Number=0; i<10; i++)
{
myRow.rowColor = _root["color"+(i % 2)];
trace(myRow.rowColor);
}

Here is another example of the coloring rows that is a little more compact.  ActionScript with ternary statements is a little more compact and easy to use.

var myRow:Object = new Object; for(var i:Number=0; i<10; i++)
{
i % 2 == 0 ? myRow.rowColor = 0xff00ff : myRow.rowColor = 0xff0000;
trace(myRow.rowColor);
}