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);
}

Flash Takes a Giant Leap – 3D

Flash, the worlds most amazing web technology, development platform, interactive media tool, web based animation creator, video webcast deployment, cell phone application environment, global platform (or whatever you want to call it) is taking the next giant leap.

Flash 3D - Flying Rhino

3D in Flash, that’s right 3D in Flash! Let me say it again – 3D IN FLASH!!!!!!

This is truly a revolution in the web world and will make so many other technologies instantly obsolete. And the amazing thing is that it is an open source project.  The open source project is Papervision and can be found at http://www.osflash.org/papervision3d.  The homepage for the project is located at http://blog.papervision3d.org/ and you can find some other fine examples at http://www.mrdoob.com/ and http://www.rockonflash.com/blog/.  You must take a look at the amazing renderings and as always….

Happy Flashing.

Jake Hilton has a great article on Optimizing Flash Media Server on Linux

Jake Hilton - Flash and Server Guru

A good friend of mine Jake Hilton just posted another article on the Macromedia(Adobe) website entitled Performance-tuning Flash Media Server 2 for live webcasts using Linux. For anyone that is trying to get the best performance from Media Server this is a must read. Jake is truly an expert in this field as evidenced by his development of Huddle (a very cool web conferencing tool). He should be speaking about Flash and server technologies at conferences like FlashForward, Max, FITC, and DX3 (Lynda’s new gig).

Even if you are not setting things up on Linux this is a great article that can help you understand how to optimize Media Server. Go check it out and as always,

Happy Flashing.

Windows Vista Comes with IE7 and Flash Player 7

As a Flash developer you need to be aware that people upgrading to Windows Vista will not be ale to see your work until they upgrade the Flash Player also.

At work and on my new personal computer Toshiba P105-s9339 I have installed Windows Vista. At work it is Windows Vista Enterprise and Windows Vista Ultimate is installed on my personal laptop. An average of 92.68% of the worlds connected population already has Flash Player 8 and over 60% already has the Flash 9 player. See below.

Flash Penetration Statistics

Even though the adoption of the latest versions of the player are the fastest yet, the default install of Windows Vista has Flash Player 7. This is definitely a throwback.

So what can you do? The best thing to do is put in the SwfObject Express Install that is part of SwfObject. This is the quickest way to get people into the latest version of Flash.

This worked great for me with the exception of the having to restart my browser to properly use the new plugin.

Here is one of the best articles I have read on Embedding Flash into Web Pages. It is written by Bobby van der Sluis who created (UFO) Unobtrusive Flash Objects which is another methodfor embedding Flash into web pages. He is also working jointly on a project with Geoff Stearns on a project called SWFFix. You can bet that I will be watching this one closely.

Good Luck Guys!

As always Happy Flashing.

Flash Remoting Server works locally but stopped working on the server

In the latest and greatest project that we are doing we are using Flash Remoting for the communication between the application and the server. We downloaded the Flash Remoting Trial Version and it seemed to work great on all local machines and across local machines and went very well. As soon as we put Flash Remoting on the server everything decided to stop working. There is a technote that says we may have to buy Flash Remoting it in order to get it working on the server. The same technote
I know that many of you are saying why are you trying to use Flash Remoting instead of AMFPHP? This is a very valid question since AMFPHP has always worked in the past. The answer is simple we have an fantastic .NET programmer. AMFPHP doesn’t work with .NET so we decided to use Flash Remoting.

After over 5 hours on the phone yesterday and an hour and a half today I asked the adobe support agent, “So there is no way to get support for this?” The Adobe rep replied, “That is correct”. He then directed me to a page that I might possibly get help from
adobe.com/support/portal which resulted in the following page

Adobe Support Page for Flash Remoting

Finally, after 2 days, more than 7 hours total, 2 hours 36 minutes on hold, 11 transfers, 5 departments, 2 disconnects and 1 404 page error. I got a received a call this morning from Jim Schley at Adobe. I was very happy to hear from Jim and he actually assigned an engineer to me that should be calling back to help solve the problem. He even gave me his personal line so that I could call him back directly if needed. (No I won’t post this number)
Thank you Jim for caring enough to find a solution to my problem and not passing the buck to someone else. I look forward to hearing from your engineer.

Here are the numbers that I called or was transfered to for support:
(800)833-6687 Adobe General Support (These guys were not helpful at all in regards to Flash Remoting)
(888)649-2990 Adobe Pre-Sales Support (These guys also didn’t know or were “not trained for this sort of thing”)
(888)715-4687 Adobe Download Support (This isn’t even Adobe. They were baffled when I was transfered because they only host the download site and support getting the zip files onto your desktop)
(866)335-2256 Adobe Enterprise Server Support(They couldn’t help me but actually spent the time creating a ticket that resulted in the call from Jim Schley)

So the end result is that I look forward to a call from Jim’s engineer that should be able to help with the problem. I will let you know the result.

If you are also having issues with Flash Remoting then these links may be helpful alternatives to the Remoting service.

AMFPHP I can vouch for this one. It is great. Plus it is Free. I highly suggest that you use this. This is only for PHP.

WebORB I haven’t used this yet but plan on installing this as a backup in case. WebORB is a platform enabling development, deployment and runtime execution of Rich Internet Applications. The product facilitates connectivity between rich clients created with Flex, Flash or AJAX and server-side applications developed with .NET, Java, Ruby on Rails, PHP or XML Web Services.

StarWolf I can not vouch for this at all. I don’t even know if it works but it is out there so I thought I would list it.

PHPObject Flash Remoting for PHP. Looks promising haven’t used it.

OpenAMF – Flash Remoting for J2EE. Again, looks promising haven’t used it.

RubyAMF – Flash Remoting for Ruby, Seems to be gainging popularity.
Good luck and I hope that you have some successful Flash Remoting.

Valentines Day – Quick gift

Flash Based Valentine Creator

Did you forget to buy Flowers and now you are wishing you had a last minute Valentine’s day gift. Well if you are here you are in luck. Just fill in your name and your loved ones name below and from your printer will come many Valentines Hearts that you can cut out and put on your love’s car walls, mirrors, house, etc… I suggest putting red, pink or bright pink paper into your printer. Each Valentines heart comes out with a unique saying.

Flash application that prints multiple Valentines hearts, each with a personalized Valentines saying. Create your own valentines. Give your love a heart attack(the good way).

Have fun and spread love.