Adventures in AJAX land – future of flash

Nearly 10 years ago, someone put a document in front of me it had a big confidential label across it. It was the product of millions of dollars into web site consumption. I knew someone who worked at the company, so I got my hands on it. It went over colors, sizes, and in bold letters said, DO NOT USE FLASH. I disregarded it, and continued to flash. Not even two years later it had a staggering penetration rate.

Today I find myself in an interesting situation I am developing a website using GWT (Google Web Toolkit), it is absent of any flash. This is to ensure compatibility with the iPad. This website is more of an RIA then anything, so that is why I picked GWT for this particular job.

However, I have a feeling Apple is going to back down on flash like they backed down on their power mac chips, and here is why. Android devices are quickly starting to outsell apple devices, and what does froyo have? Flash. Also I believe something else will start to happen, instead of people moving away from flash websites, they are just going to start making alternate sites for ipad, why you ask? In many cases it would be cheaper in development costs. This separate iPad specific internet I believe, while I may be wrong, will be unsustainable. 2 Million iPads in the grand scheme of things is nothing, and when android tablets start being rolled out (and they will) the iPad is going to get dwarfed like it did in the PC market.

The sites that people are starting to build now and calling compliant are essentially the same as sites made 10 years ago, except now we have png support, and the client side code structuring uses CSS as opposed to tables. The real question is why did people start using flash in the first place? The answer is pretty simple – Animation. This is the very reason why flash won’t go away, because even with Canvas (if it is supported), event with better JavaScript engines (they are getting there) animation in html5/Ajax/js SUCKS. No ifs, no buts, it just sucks. You have to remember, flash didn’t get big because it supported video, it got big because it supported animation.

So you’re a web studio and you have flash developers, you have flash websites, and you’re freaking out about Steve Jobs power trip. What should you do? I think it depends on the project.

A movie website – you will be able to make a more engaging experience with flash, but you want it to be able to work on iPad. Make two websites a flash, and an iPad compliant site. Have a big budget? Make a flash website and make the alternate website link to a native iPad app.

A web game – You’re going to have to use flash, not enough browsers support canvas yet, and even if they did JS is really slow. iPad is just out of luck, unless you make a native app.

A portal – You shouldn’t be using flash, if you want to use flash, it should be complementary and not critical.

web Video – Flash is your best bet still for broadest compatibility, but offer an iPad friendly version of the video as well.

RIA – This one hits close to home because it is what I love to build. This requires you to consider a lot of factors including what and where the application is going to be used most. If the application is intense and would not work well on a touch screen, make it flash. If it is a simple app, make it HTML/Ajax. It also depends on what kind of performance you need or are looking at. Flash can actually perform much better in certain situations. I would say if you can use HTML/Ajax, use it, it will be easier then going back later since an RIA is usually not trivial to build in the first place. If budget allows, even better then the above option is to make native applications.

So while I think Apple is going to eventually support flash or be crushed by Android in the same way they were crushed by Microsoft, I think the choice to use Flash is contextual more then anything.

Web, GEO, and GIS

There seems to be a big push in the realm of geo,gis, and the web. One of the biggest contributors to this movement was definitely Google Maps. However, the more I read the more I think that developers are actually moving away from where they are supposed to.

When we created Scribble Maps, it was a side project – and we later discovered that there were some very similar tools. When we created Scribble Maps, we didn’t even know what GIS stood for. The most remarkable thing about Scribble Maps, to me, is the fact that we have kids from age 4-14+ using it to learn history, and then we have other using it for municipal zoning projects. It was dead simple, and we have added to it as we have moved forward. However while everyone in our industry is starting to move in one direction, we are specifically moving in another.

The emphasis is quickly becoming how can we get data on a map? how can I share it? and as of late, how can we analyze it? The primary problem with this space is it has filled up fast, and there are already products that have either been around or even being developed. http://www.spatialkey.com/, http://www.zubed.com/, http://www.geocommons.com/ to name a couple, but there are a lot more.

There is money to be made in putting a business on a map, a lot of the companies who have existed or currently exist in this space are banking on the cost of predominant technologies giving their technology an edge. The most common example is ESRI and their variety of licenses. There are a couple of major hurdles to this however, and I believe they are the following:

1. If a company is willing to pay 15,000 a year, they are willing to pay 15,000 a year. Offering a significantly discounted product just means you are going to make less money if you are targeting the same market.

2. The consumer grade Geo market is new, so the average business won’t fully understand what you can do with a particular product – so marketing has to be partially education based. For example, “Did you know you can find out where your customers are coming from, and how much they are paying?” or even better, “Use geo and increase your sales by 50% by doing XYZ in the geo space.”

3. GIS is not simple, GIS functions can be. You cannot make a tool that can do everything and expect it to be simple, there are methods you can employ for minimizing interfaces, and hiding advanced functionality, but that only increases usability that doesn’t reduce complexity. I recently read a blog by a Googler about shrinking the gap between GIS and web. I think this is a fundamentally incorrect view to have. The view needs or should be, what GIS functions do people need, and how can we exploit -specific- functions. GIS covers a lot of areas, and not everyone needs to do a 3D viewpoint trajectory intersection to see if something is or isn’t in view.

With Scribble Maps and Scribble Maps Pro we have decided what we are selling is drawing. A lot of people just want to be able to draw on maps, so that is what we are going to focus on. We have already implemented a paint bucket tool, and we are going to be adding even more drawing tools in the future. Will it ultimately be a financial success, that is yet to be seen. However one thing I am very confident on is that applications with specific functions that do them amazing will win over applications that do a lot only well.

Malware on websites and cleaning

I recently was subject to a malware attack, and Google warnings were popping up. I did an initial walk through and cleaned out all my index files and I was still getting the errors I discovered where the code was hiding, and it was in JS files, quite brilliant actually. However if you are having this issue here is what I recommend, but before attempting to do a manual clean-up, the safest and best bet is to just upload files from your machine that you know aren’t compromised, this way you won’t miss anything. However, if you don’t have a backup do the following, or do it regardless:

1. Make sure you’re system isn’t compromised, if they have your password they will log it into their bot, and even after your changes the bot will reinfect you.

2. Go into your HTML Files and look for iframes, embeds, and script tags that don’t belong there. If you’re using php check for invalid php code.

3. Check your JS files, this is the one that gave me trouble, malicious code will be injected into your JS files and you won’t think to check them.

4. Make sure your wordpress is up to date.

Mobile, and Jumping the Gun

Recently the CEO of Google preached that mobile should come first. While there are all kinds of reasons to agree, I am going to have to give some reasons why a developer may NOT want to develop for mobile. It is 100% true that people want to be able to do certain things on their mobile, however I think it would be a huge mistake to assume people want to do EVERYTHING on mobile.

I love Google, but it is pretty apparent the CEO has a bias for mobile because that is where a large percentage of their searches come from, and I assuming it represents a large portion of their revenue (at least I hope so). That said, when was that last time you wrote a whole document on an iphone, or even better, when was the last time you chose to do something on your mobile when you had the choice to use your PC. You will always choose the PC, why? First larger screens, secondly, as intuitive as you make an interface for the phone, it will never be better then a keyboard and mouse. The idea of having to develop on a phone scares me as a developer, I have two monitors, and that usually isn’t enough, and a cell phone screen is what 1/20th of the size?

“Mobile first” is an interesting mantra, but how is that even possible. In almost all cases the mobile version of something is a diluted, watered down version of something online. Facebook mobile applications are less intensive of facebook. That is like developing orange juice from concentrate before developing the concentrated version. Is building light versions before intensive versions the future?

The reality of the situation is that technology needs to be put into a context, what are you doing, how are you doing it, and why? The increase of development for mobile could be an illusion of diluted applications being pushed out at a rapid rate. Quantity does not equate to quality, and at some point you will want to move back from your mobile to your PC, and I personally think the future of mobile will be, how can my mobile experience improve the experience of my online pc experience, and not the other way around , which people seem like they are leaning  towards.

Scribble Maps Pro Beta

14 hour days, 3 months, and it is finally here. I set forward wanting to make the best online mapping application on the web, and although I don’t think I am there quite yet, I think I am getting close. Check out the video below for a brief overview of Scribble Maps Pro.

The Death of Viral Marketting

There is an emerging trend, and that is services being launched with zero marketing budget expecting to be the next Facebook or Myspace. I am about to introduce a concept that might be radical to some, but here it is the term ‘viral marketing’ is a nomenclature for ‘good marketing’ and secondly ‘viral’ marketing is NOT free.

If you’re of the opinion that if you build it they will come, while this is possible, you also have to understand that this is no longer the case, because the internet is growing up, it’s not quite an adult yet, but it certainly isn’t an infant. I recommend watching this video by the CEO of amazon The next web innovation.

The internet is becoming jam packed with useful services, and it is becoming more and more a reflection of the business world, it’s harder to stand out. Further more what we are experiencing is a form of internet consolidation, where big websites are becoming the main mediums for information retrieval. Where people use to get information from ugly GeoCities and yahoo websites they now get from sites like Wikipedia. This consolidation is probably most notable with Facebook, where you have Facebook connect starting to infiltrate the major websites.

Now don’t get me wrong, I think there are a lot of ways to spread your message that didn’t exist before: Facebook, twitter, digg, myspace, and all the other websites that make up the social marketing landscape. However, the cost effectiveness of these services is rapidly decreasing. Let me give you an example.

Lets say you want to do media buying, online ads, and you have a budget of 10,000 per month. Now let’s say your average cost per thousand impressions is $10 (this is for high profile websites). You are looking at roughly 1 million impressions, now lets say of those 1 million 0.01% of those buy your product, you’re looking at about 1,000 sales. This is where you need to do your analysis, is doing social marketing directly more effective? If you spend 10,000 on someone doing social marketing are you going to get 1,000 sales?

This might be confusing to those who don’t work in online advertising, so let me make it even simpler, is spending $1 in social marketing the same as spending $1 in media buying? I personally believe that the ROI for Social Marketing is rapidly declining. Also keep in mind that organic growth happens naturally through media buying as well, people will talk about products they like.

So in conclusion if you’re starting a service that has competitors of any type, you need to have a marketing budget to back it up. There is always the chance you could be an internet rock star, but now you are playing the lottery.

It wouldn’t be hard to make a competitor for twitter, just give me a 20 million dollar marketing budget. However, popularity on the internet doesn’t necessarily translate to financial success anymore either.

Neurological Programming

I saw an absolutely amazing video on TED and it got me really thinking about the future of programming.

Programming is an incredibly tedious process because you spend most of your time debugging, then actually building. Now there have been huge strides in programming from binary to machine code, and finally to all the higher level languages. This has lead to the technological evolution we have seen. Programming however is still incredibly primitive. We try to minimize our problems by using frameworks, but at some point every programmer is going to have to deal with gear A turning gear B.

As we continue our discovery of the brain I think we will also see the gradual change of programming. Programming will become less about mechanics and more about management. Instead of writing what something should do, we will explain to miniature brain like algorithms what they shouldn’t be doing. Redundancy and error handling will be ingrained in the essence of future programming.

In other words, future programming will involve advanced mechanisms for rapid teaching of mechanical/technical systems, and less about functional and mandatory mechanics.

Gruvr Widget

I recently helped convert a widget from AS 2.0 to AS 3.0, check out this cool widget that lets you display a band’s tour routes on your webpage or blog.

You can get this widget for your favourite band here.

100k Markers on one Map (no clustering)

Recently I have built a demo that shows how you can add 100k markers to a map and have a relatively high quality of performance using the Google Maps API and a custom tile overlay. The demo and source is available at:

http://www.scribblemaps.com/markerComplex/

Scribble Maps in Middle School

I found a great blog post about how a middle teacher is using Scribble Maps in the classroom.

http://edtechsec.blogspot.com/2009/09/have-students-create-their-own.html

If you’re a teacher you should definitely check it out.