The 100 million dollar Apollo program

October 31st, 2006 . by polyGeek

Adobe has put it’s money where it’s mouth is. They’ve created a 100 million dollar venture capital fund to help get Apollo off the ground. Not like I needed any more incentive to run with Flex/Apollo but this helps.

This is really a great idea for Adobe. They’ll spur interest around the product and if they invest well they’ll make money.


CMYK weirdness

October 30th, 2006 . by polyGeek

I had some images given to me that were going to be loaded at run-time in Flash. No problem. I’ve done that hundreds of times. But this time I got some weirdness that took a while to figure out.

Here’s the image in standard RGB:

orion_saved_as_RGB

Nothing wrong there.

Now here’s the same image using CMYK.

orion_saved_as_RGB

One thing you might notice is that it’s much darker than the RGB, unless your browser corrects for it. It’s also WAY bigger in file size. The top image is only 13k. The same in CMYK is 587. I’ve never worked in CMYK so this is all new to me.

Now here’s the really strange part.

orion_CMYK_in_Flash

This is a screen capture of the image after it was imported in Flash.
WTF? So this is what I saw when I loaded the images. I went to the artist who saved these images out and noticed the CMYK on the titlebar in Photoshop.

So, if you ever get something like this you know what caused it.


Turf Wars

October 21st, 2006 . by polyGeek

In the turf war between Adobe and Microsoft consider what battles each company can lose and can’t lose. (By can’t I mean isn’t a losable battle within the next 5 years.).

There is no way that Adobe is going to lose the battle over creation software. The reason is simply because someone might be able to make an amazing website, or print material, using something like GIMP or Pixel but that’s not going to fly at all in an interview. If you don’t know Photoshop you won’t get a job in, dare I say ANY, design firm.

It’s all about work flow. Right now everyone uses Adobe and every school is teaching on it. So, that one is in the bag for the foreseeable future. Plus I know that Adobe is going to rock the world next year with a few announcements so it isn’t like they’re sitting back and racking in the money without putting it back into product development.

The scope of Microsoft products is staggering. They make everything from MP3 players - Zune - to Exchange Server. But, the two big money makers for MS are Office and Windows OS. The money they bring in allows Microsoft to explore other markets and recover from mistakes. Do you think a company like Apple could throw a couple of billion dollars in operating costs at iPod to get it going? Nope, but Microsoft can and will.

Here’s the interesting part: Microsoft is so big it is now competing with itself. Everyone knows that Google is building a suite of office tools. Microsoft is countering with their own online suite with Office Live. Now you know that MS is going to be very reluctant to enable Office Live on FireFox, or any other browser besides IE, but in the end they may have to.

Aside: What do most people in the workplace use their computers for? Email, writing, spreadsheets, slide shows, etc. Really, unless you play games or use Adobe CS everything you need your PC to do can be done with a fairly small set of tools that will soon be accessable via a browser.

The transition to online office suites couldn’t come at a worse time for Microsoft. Vista is about to ship, in theory. So lets say that it’s available at the first of 2007. The adoption rate for businesses is pretty slow and doesn’t really get rolling until after the first service pack release. So in about 2 years when Vista should be hitting it’s stride a lot of managers are going to wonder why they’re spending so much money on PCs with the Windows OS. All anyone really needs is a PC with a browser. They can do that with Linux/Ubuntu and Firefox. Plus, they’ll save a heap on security.

I’m not saying every business is going to come to that conclusion but enough of them will. Oh, and lets not forget that Apple isn’t exactly the whipping boy in the office anymore. So Microsoft is going to struggle to maintain it’s current status in the OS world. And it is going to face a huge battle from Google, and probably Yahoo, in the online office space.

The real unknown in this picture is Adobe’s Apollo program. There is no way in hell that Microsoft is going to use Apollo. I have hopes for Google swinging around to it but I have my doubts. So someone out there, Yahoo maybe, is going to make an online office suite with Apollo that runs on every PC/Mac/Linux box and they just might walk away with the pot of gold.

Here’s what is think is the defining issue: Adobe is an enabler and Microsoft is not. (To be fair Microsoft is an enabler as long as you’re using MS products.) Adobe is going to make it possible to run software across platforms. The number of applications that can run on Linux is going to explode and help it get into the workplace. Microsoft will enable their products to run on other platforms only as a last resort and if they do no one will trust them to keep it up - IE WMP for Mac anyone?


Sort an array of Objects by Date

October 20th, 2006 . by polyGeek

Sort an array of Objects by Date.

The sortOn method doesn’t sort by Date objects. If you need to sort by the date object then try this.

Suppose you have an associative array- myArray - with one of the properties being an instance of Date.

What you can do is add another property to each object that is the date converted to a number.

for(var i:Number = 0; i < myArray.length; ++i) {

a[i].obj.dateNum = obj.date.getTime();

}

Now you have a number that you can sort by using sortOn as such:

a.sortOn(”dateNum”);

All sorted now.

Here’s a coded example (download FLA)

var myArray:Array = new Array();


myArray.push({fName: “Dan”, age: “oldest”});
myArray[0].born = new Date(1980, 0, 1);
/*
We want ‘born’ to be an instance of the Date object. We cannot
achieve that in the Array constructor. If we try ‘born’ will
be a typeof String. To work around that we just add it on afterwards.
*/

myArray.push({fName: “Bob”, age: “middle”});
myArray[1].born = new Date(1990, 0, 1);

myArray.push({fName: “Ann”, age: “youngest”});
myArray[2].born = new Date(2000, 0, 1);

myArray.push({fName: “Tim”, age: “middle”});
myArray[3].born = new Date(1990, 0, 1);


for(var i:Number = 0; i < myArray.length; ++i) {
var dateNum:Number = myArray[i].born.getTime();
myArray[i].dateNum = dateNum;
trace(”Before sort: ” + myArray[i].fName + ” : ” + myArray[i].age + ” : ” + myArray[i].born);
}

trace(newline);

myArray.sortOn(”dateNum”, Array.DESCENDING);

for(var i:Number = 0; i < myArray.length; ++i) {
trace(”After sort: ” + myArray[i].fName + ” : ” + myArray[i].age + ” : ” + myArray[i].born);
}


MovieClipLoader : documentation

October 19th, 2006 . by polyGeek

The MovieClipLoader class rocks but I wish MM/Adobe would have documented it a little better. I was pulling my hair out over one of those issues where you keep saying, “but, it should work” only to find out that no, it shouldn’t work because the class does certain things without telling you.

First off it resets certain settings, like _visibility. If you have a MovieClip with its _visibility set to false and then use the MovieClipLoader class to load a file into it then the _visibility gets reset back to true. Thank you, it would have been nice to put that in the help files. Now it simple enough to work around that. Simply use the onLoadInit, which I was using anyway, to set the MovieClip’s _visibility to false.

To add to this oddity the _alpha doesn’t get reset. Go figure.

You can also count on any dynamic properties being wiped out. If you have a MovieClip, lets call it “mc“, with a dynamic property such as mc.myName = “Dan”. And then you use the MovieClipLoader class to load a file it will delete all those dynamic properties.

The second issue is how it handles attachMovie. If you load a file via MCL and then try to use attachMovie to attach a linked MovieClip in your library it won’t work. However, you can attach MovieClips from the loaded SWF to itself but only to itself and not to another MovieClip.

For instance, if you create a MovieClip, we’ll call it holder, and then use the MCL to load a SWF that has a linked MovieClip in its library, lets call it circle, then you can attach the circle MovieClip to holder after it has loaded but you can’t attach circle to something like the _root or any other MovieClip. It sort of like scope for MovieClip libraries.

It would be great if someone who really knows why/how the MovieClipLoader class works would write up a detailed documentation on it.

Bottom line, if you’re using the MovieClipLoader class and things aren’t working the way you might expect then consider that it’s a feature of the class, and not a problem with your code.


Where does the stroke lie?

October 18th, 2006 . by polyGeek

I did some poking around in the Flash help files and couldn’t find any documentation to back this up but it seems that when using the drawingAPI that the stroke is half-inside and half-outside of the shape that you draw.

Take the following code. I’m drawing a square from (0, 0) to (100, 100). That should have a width of 100, right? Well, it would if the stroke were 0 but in this case I’m going to make the stroke 10.

var mc:MovieClip = this.createEmptyMovieClip(”mc”,0);

// stroke=10, color=white, alpha=100

mc.lineStyle(10, 0xFFFFFF, 100);
mc.moveTo(0, 0);
mc.lineTo(0, 100);
mc.
lineTo(100, 100);
mc.
lineTo(100, 0);
mc.
lineTo(0, 0);

trace(”width: ” + mc._width); // output: width: 110
trace(”height: ” + mc._height); // output: height: 110

So if you wanted to draw this rectangle with a stroke of 10 and have the MovieClip’s width actually be 100 you would have to draw from (5, 5) to (95, 95).


Know when to say when

October 16th, 2006 . by polyGeek

BusinessWeek.com’s article “How Much is Too Much?” is a pretty good look at what the Xbox is costing Microsoft. The two main points that the article makes is that it is unknown how much MS is willing to spend before giving up but more importantly it points out that the value of Xbox isn’t just in the money MS makes - or losses - but in how much Sony must spend to compete. In the end the Home and Entertainment division, which covers Xbox, may never make money but the company may still profit from it by keeping Sony out of the living room.

What this article doesn’t point out is that Sony isn’t the only battlefront MS faces. There’s Google in the search space. There’s Google again in the online office space. There’s Linux and Apple in the OS space. And Adobe in the content creation space. I’m sure there’s more that I have missed but these are the biggies.

The question becomes, “which battles can Microsoft win?”.

I think Sony is seriously scared of their position. They make some kick ass electronics but Samsung is hitting them hard in just about everything they make, besides game consoles. If the PS3 isn’t a home run then there may not be a PS4.

Google might be the only company out there that is more cocky than MS. I get the since that Google has an attitude of, “Mess with the best and die like the rest.” At least in the search space. In the online document space it’s a different story. Everyone knows that office type applications are going to become more web based. MS is rushing forward with MS Live and Google is putting together a suite. This is going to cost MS big time because it will cut into the profits of the MS Office line.

And the real stake in the heart for MS could be the OS. The more successful these online office suites are the less people will be tied to Windows. And it leads to huge conflicts for MS. Do they make MS-Live work only with IE and ignore the FireFox/Safari community? If they do then they risk losing this battle to Google. On the other hand if they make Live work across platforms then they enable people to easily switch to Apple or Linux.

The last battle they face is with Adobe. On the surface it would seem that MS will never seriously challenge the Photoshop/Flash line just like Adobe will never challenge the .Net line. But Apollo and Flex may change people’s minds. Give a developer the ability to write a full fledged application that will work on Windows, Apple and Linux OSes and you have a compelling argument to switch.

On top of that Apollo is going to enable a whole new class of applications that no one has even thought of yet. There’s no telling what markets that might open up but it looks like Adobe is going to be the first one in it. Though that is never an assurance of victory.


The Future of Web2.0

October 15th, 2006 . by polyGeek

Ted Patrick, Flex Evangelist for Adobe, has a nice outlook of his vision of what’s to come for Web2.0.

There’s no doubt that as an Adobe employee he may not be entirely objective. However, I think his views could be quite accurate if the Flex/Flash (Flesh) framework becomes the de facto standard for web apps. It’s difficult to predict how likely that is or how much of the market Flesh will end up with. There are many indicators which would seem to favor that outcome:

1-Flash video is an overwhelming success. Using anything else these days is rapidly becoming a joke. The result is that it has created a more positive atmosphere for Flash. So web design shops and individuals are finding it increasingly important to put Flash video into their skill set. The biggest downside to Flash video these days is that it isn’t exactly a no brainer to make the video work. Most people won’t want to use the Flash video component because they’ll want their own skinning. So, they’ll have to learn a little bit of coding here and there. The upside to that is these developer/designers will now have a little more experience with Flash and will be more likely to use it for other projects.

2-Vista has slipped and along with it Windows Presentation Foundation/Atlas. Flex is out there and is picking up steam by the day. Any hope they might have of stealing away support for Flex is waning. There’s no doubt that WPF will have wide support because most of the current crop of .Net developers are likely to pick it up. But as time goes by that number will wain. The Windows platform isn’t going to get any bigger than it is today. The best case scenario is that it will wane slowly until a new equilibrium is found between Windows/Apple/Linux. But anyone who thinks that the current percentages are going to hold is fooling themselves.

3-Apollo (homepage), the Flash as application platform, is about to launch. I think Apollo will be as revolutionary to the Internet as broadband in the home was.
Comments:

The solo Internet experience is dead and social applications have highlighted the importance of shared experience.

No doubt. The Internet is about to become as much a shared experience as World of Warcraft.

We will see applications that let users work online or offline seamlessly.”

This isn’t going to be the easiest feature in the world to enable. I have no doubt that the success of many websites will hinge around how well they enable this feature.

We will see applications that seamlessly integrate audio, video, images, animation, data, and text.

Take your cue from some of the SciFi TV/movies you’ve seen where they show data/content displayed. Did it look like Yahoo, or Google, or MSN? It sure as hell didn’t. Think Minority Report, X-Men, Final Fantasy, et al. That’s the future of visual displays. Oh, and you think it will be done with Ajax? Yeah, right!

Ajax vs Zaphod

October 13th, 2006 . by polyGeek

JD at Adobe points out how the web video revolution that was made possible by the Flash player is could repeat itself with RIAs.

I couldn’t agree more. I’m just amazed to see what people are able to do with Ajax and then I feel sorry for them because I know what a fraking headache it is to do that sort of work in a cross browser environment. I think to myself, “they couldn’t pay me enough to go through that.”

Not that Flash is simple or easy, far from it. But the cross browser issues are almost non existant. Plus you don’t have to worry about a new browser coming out that you’ll have to change your code for.

The good news for the Ajax crowd is that Actionscript is based on the same root language ECMA. So if they want to join the crowd it won’t be too painful.


The Rise of Flash Video, Part 1

October 10th, 2006 . by polyGeek

Pretty good article about how Flash went from being a non-player in the web video field to the dominate format in 2 years.


« Previous Entries