Archive for the ‘AJAX’ Category

Adobe fight fire with fire

Tuesday, July 1st, 2008

Recently Adobe has been needing to deal with a massive force attacking its main domain of dominance, we can call this domain - the highly interactive web or RIA. I don’t refer to Microsoft SilverLight which is supposed to compete with Adobe Flash on the same ground, but to the brutal MS marketing machine. This machine can make every boy and girl blindly recite fallacious facts and numbly say things like “Yeah, but, SilverLight is search engine optimized”.

It took Adobe some time to understand what it is dealing with, and I think I’ve noticed a change in their PR brutality lately, generating big PR out of small things.

This last SEO announcement from Adobe, which claim that Flash will be more searchable by search engines, might have some substance in it, as opposed to the similar one from Microsoft, but, it’s still mainly a marketing battle. I just hope it doesn’t take too many resources out of the real development of the products.

Google were probably working on their own humanoid crawler that has a broader vision then just the Flash Player and can work with any RIA applications even if its written in AJAX or SilverLight. Apparently searching and indexing RIA is not an easy thing to achieve, and it doesn’t seem that even google has managed to do it yet.

The main problem of indexing Flash websites or any other RIA website, is to understand the context of the data and then link to it directly, aka deep linking. The fact that google can now read the text from within Flash even better then it did before, don’t yet solve that problem.

Even so, it doesn’t mean that we shouldn’t be optimistic, and there is a possibility that this will improved the indexing of Flash content. We’ll have to wait and see.

OSE instead of SEO

Saturday, March 15th, 2008

The promise of google to have a human like understanding of the Internet it crawls has yet to reach reality. My point is that, we should start to expect Optimized Search Engines (OSE) instead of painfully optimizing our content for them (SEO). Currently search engines can’t understand RIA (Rich Internet Application), websites written in Ajax Flash and SilverLight, and the authors of these websites need to invest a lot of resources to make it SEO. As RIA become bigger and more significant part or the Internet daily, what use is a search engine that can’t understand it? It’s the age of obscurity all over again, the age before google.

This clip (02:22) has reminded me of the old promise that google will see and understand the web the same as we humans do, a promise which wasn’t really fulfilled. I know there is a big technological challenge in that, hey google can’t do it yet, but the one that will do it the best might be the next google.

The search engine game might be open again since the late 90th.

Hostlynx 2.0 - Serious Flex app

Friday, July 13th, 2007

There is a claim that there isn’t enough serious Flex applications out there. I’ve recently had the honor to preview an impressive one, and also to conduct a short interview with Dima Gutzeit the Project Manager of this app, named Mailvision Hostlynx 2.0.
This is another one for you to showoff when arguing for the right technology for your next application, currently there are only some information and screenshots, but, I’ll let you know when a full demo is publicly available.

Hostlynx 2.0 - Screenshot2 small

Hostlynx 2.0 - Screenshot1 small

Q: What is Hostlynx 2.0?

A: Hostlynx 2 is the next generation of MailVision Class 5 SoftSwitch for VOIP telephony (SIP protocol). The product allows a system provider to setup a telephony network and offer advanced telephony services to its subscribers (IPCentrex). System management of the solution is based on Flex+Webservices.

Q: Who is the audience of this application?

A: Service providers and corporates who wishes to enter the fast evolving VOIP market.

Q: Why do you think Flash is the right technology for this project?

A: During the research for the project we have considered several technologies, including various AJAX toolkits, JSF and etc. The following convinced us to go with Flash/Flex: Flash player is installed on 98% of desktop computers so in majority of cases it will not require any client side installations. We wanted to deliver the best user experience we could and flash allowed us to do that.

Q: Generally, how is this app structured, client, backend, architecture etc’?

A: Our application uses webservices to communicate between client and server, where Flex application is used as a webservices client and JAXWS on the server side. When we started working with Flex (2.0) its webservices implementation was very weak and basic, so we had to create many workarounds on the server side to compensate. Flex 2.0.1 Hotfix 2 changed that, since we were part of the beta program for Hotfix2 and Adobe staff were kind enough to listen to our requests and enhance the webservices implementation.

Q: Have you used Cairngorm?

A: Yes, we do. Our application uses MVC, and this is done by using Cairngorm (2.0). ServiceLocator is responsible for all the webservices related stuff - sending requests and etc.

Q: How many people worked on the project?

A: Project development involved 2-3 developers and one designer. Project duration was around one year.

Q: Did any of the developers had previous experience with Flash or Flex?

A: That was one the “negative” factors when we decided on technology, since none of our developers had any previous experience not with Flash nor ActionScript. The learning curve was not a short one, since all the developers were from Java/JSP world.

Q: Will there be an online demo of the app?

A: We are on Beta 2 release, and a full featured demo will be available as soon as the application is stable enough.

Q: Do you have plans for creating similar apps?

A: I believe that the majority of future web/desktop projects of Mailvision will use Flex/AIR.

Q: What do you think is the future of the Flash platform and RIA in general?

A: Flex rocks :-).

So Microsoft is interested in Flash ?!

Wednesday, May 9th, 2007

No, not another conspiracy theory about Microsoft, and not another rant about Silverlight, just my latest, somewhat delirious, job search. Few months back I’ve sent my resume to only one HR company. In my resume I’ve clearly stated Flash as my top skill, and oddly enough my first call was from Microsoft. It’s not exactly Redmond but Microsoft Israel also has it’s standards, I guess. I surprisedly asked the person on the other side. - Microsoft is interested in Flash ?! - You’ll be surprised… he replayed. Microsoft, as expected looks like a very nice place to work in, with extremely nice people, there were also some open XBox and joystick boxes that were probably being plugged somewhere. Though there were many motivations, I had to move on, since this was my first offer I had to check some others.

I was overwhelmed by the amount of offers I got, but really got surprised when I’ve asked for a salary which wasn’t that modest at all and got offered more then I’ve asked for. After that I’ve continued to raise the numbers with every job interview and was still getting the flattering OK. It reached to the point when I was uncomfortable to name a figure and felt the need to deeply apologize before doing so.

Another interesting aspect is that even if the company currently isn’t using Flash at all, they seem interested in this “new” cool technology that no “serious” developer seem to know much about. It goes something like “we’re also interested in doing some stuff in flash” or “do you know, what is it called, Flex… ?” and then I start babbling about Flex 2 and Flash 9. Just give me a chance and I wont stop :D.

Obviously it seems like the most interesting places to work in are these risky startups. You can sometimes get to these by using something like jobs@companyname.com. At the young companies there is probably no HR department and this email address is routed to the CTO or even the founders. See an interesting startup on techcrunch in your area? just send ‘em your resume to the jobs address.

At the end it become too stressful to handle, with too many good options and my ex-employer pushing all of my sentimental buttons in order for me to stay. I’m glad I’ve made the right decision and signed up with JAJAH, an exciting Austrian-Israeli-American VOIP 2.0 / Web 2.0 startup. While my original role is an AJAX developer, we’re already looking at ways we can leverage the Flash technology to our needs.

You may call this Bubble 2.0 and you’ll be somewhat right, but theres a big difference this time it is much more realistic. For once, we now have a deadpool.

Best way to get address variables into Flash

Friday, July 21st, 2006

I've seen too many wrong or old soulotions for sending query string variables into Flash (page.html?var1=Jon&var2=Smith... etc.). In fact, if you'll google it you'll find this old Macromedia article from the year 2000 and about Flash 4, while most of it still applies it's definitely old. These days, we're using swfobject, if you don't use it then you should, swfobject comes with a "global" javascript function called getQueryParamValue and you can use it for setting query/address string variables into FlashVars as follows:

JavaScript:
  1. var so = new SWFObject("movie.swf", "flashMovie", "250", "150", "8", "#FFFFFF");
  2. so.addVariable("var1", getQueryParamValue("var1"));
  3. so.addVariable("var2", getQueryParamValue("var2"));

These variables will be availble as _root.var1, _root.var2, etc. For complete explanation go here. The best thing about FlashVars is that they are available for use as soon as the Flash movie starts, and before everything else, so you can refer, for example, to the variable _root.var1 in the first line of code, as opposed to another old method setVariable, where we had to wait for the variable availability using somthing like watch.

Though the advantage of FlashVars, personly, I don't like _root variables, it seems unclean, especially when it's a long query string that'll make tons of them floating in my _root. Since Flash 8 we can use ExternalInterface to call to getQueryParamValue and get an immediate and synchronous response from within Flash, that way we can have a neater control over owr address variables, for example:

Actionscript:
  1. var sVar1:Object = ExternalInterface.call("getQueryParamValue", "var1");

Play with the example, try different variables.

If you don't use swfobject, I guess you can easily write your own javascript method for getting address variables, but why bother, I don't think you can easily improve on that one. I also don't think that Geoff Stearns, the author of swfobject, will care if you'll copy this function:

JavaScript:
  1. function getQueryParamValue(param){
  2. var q = document.location.search || document.location.hash; if(q){
  3. var startIndex = q.indexOf(param +"=");
  4. var endIndex = (q.indexOf("&", startIndex)> -1) ? q.indexOf("&", startIndex) : q.length;
  5. if (q.length> 1 && startIndex> -1) {
  6. return q.substring(q.indexOf("=", startIndex)+1, endIndex);
  7. }
  8. }
  9. return "";
  10. }

It's great for non flash websites as well.

Get example files

Get swfobject