Tuesday, October 19, 2010

Samples of a windows-like scrolling window and collapsing animatable tree class in actionscript 3

http://www.northeastmagic.com/as3examples/

Everything in this example is 100% pure actionscript 3 made in FlashDevelop. I was struggling to find a real object oriented component that was editable at a very low level so I made this from scratch myself. I may add it to google code as an open source project for others to improve upon.

There are a ton of controls. The individual shapes for every part of every interface element are all classes written from scratch in AS3.

If you are interested in this class let me know at ryan @t northeastmagic dot c0m.

Thursday, September 30, 2010

Helpful hints in creating a custom facebook FBML page

Five Helpful hints when making an FBML facebook page. Hopefully this will save you some time in creating your own custom fan landing page.

Facebook page Icons: 200x200 pixels in size max. Different sizes get cropped unexpectedly so trial and error is the only way to determine what to do.

1. When the tiny icon is made, a 200x200 image gets cropped to around 165x165 then shrunk to the icon size. If you want a border around your subject, you need to make the subject smaller than 160x160 to preserve it.

2. Image artifacting. Any background color but black and white seems to cause artifacts around detailed edges. If you have text or fine

detailed vector graphics on a background, keep the background either black or white..or really busy so the artifacts look like part of the image. It also seems to preserve smoothing, so you can really blur the image if you want by setting smoothing to 8 (photoshop/fireworks)

3. a bunch of weird crap happens with IE that isnt testable outside of facebook:
-stylesheets have to be external or IE wont read them (use <link rel="stylesheet" href="http://www.mywebsite.com/myStyles.css?v=1.0" type="text/css"/>[/code] at the top of the facebook page)
-div tags cause spacing problems in tables, so if you create a table use span tags, not div tags. For some reason the div spacing issues cant be overcome with setting padding/margin/border to zero. Technically divs add a linefeed and spans dont...so perhaps thats it. Divs work fine in IE, Chrome, Safari, and Firefox outside of facebook, but not in a facebook page.

4. You cant link directly to a youtube .flv anymore (easily) so to embed youtube videos you need to link to the .swf file.

<span class="videoWindow">
<table width="240" height="145" border="0" cellpadding="0" cellspacing="0">
<tr> <td><fb:swf swfbgcolor="000000" imgstyle="border-width:0px;" swfsrc='http://www.youtube.com/v/VIDEO_ID_GOES_HERE?autoplay=1&egm=0&border=0&showsearch=0&showinfo=0&iv_load_policy=3&rel=0&color1=0x111111&color2=0x000000' imgsrc='http://www.mySite.com/images/videoLanchGraphic.png' width='240' height='145' /></td> </tr>
</table>
</span>

This will provide a simple youtube player. There are arguments you can pass are documented here:

http://code.google.com/apis/youtube/player_parameters.html#ExampleUsage
To hide the annotations and stuff, rel=0 is the most important, some of the other ones like iv_load_policy dont work without that.

4. as with all style sheets, make absolutely sure the final semi colon is at the end, any code written after it will be ignored
<style>
.myRef1{
}
.myRef2{
};
.myRef3{
}
</style>
In this case myRef3 class is ignored.


5. In the page editor, sometimes if you have code that exceeds the size of the browser window (unavoidable) after a save the window gets small and there are no scroll bars to get to the rest of your code. in firefox you can press Ctrl+a to select all and this enlarges the window to accomodate all your code.

Monday, September 20, 2010

Moble internet has sent us back to the stone age

Up until about 2006 when internet technology was advancing extremely fast in terms of what an RIA was capable of, we were introduced to what I would characterize as several speedbumps.

1. Facebook (in a big way, not its actual inception)
2. the iPod touch/apps/iPhone etc.
3. Google

These two massive developments effectively ended the progression towards faster, better, more elaborate technologies and set us back about 10 years in terms of what one could do with modern technology and the internet.

Facebook represented a highly simplistic html based interface with technology that had been around for 20 or 30 years. In terms of capabilities, it was not much more advanced than, say, compuserve or AOL was in 1995. Sure, the standard FBML was more open to developers, and it introduced more user friendly tools, but it fundamentally wasnt much different.

On the other hand, up to the real boom of facebook, online gaming technology like World of Warcraft, and before that Myst URU Live, and of course Second Life were pushing the boundaries of both the display engines, physics simulations, reality engines, and really appeared to be the next logical step from the 2d but fast paced and impressive flash revolution.

When HTML dominated the internet, it was largely text, tabs, scrolling, and hyperlinks. Eventually people could interact with databases via HTML form pages, and the simple form/submit/variables were born. Some java apps enabled more elaborate connectivity, but when Flash came along, eventually the graphic designer was able to directly make use of the power of database connectivity without forcing an "install" procedure. A person could simply navigate to a flash application and start "playing" then could leave, and wouldnt have to "uninstall" the specific app thanks to the flash player.

Flash took the web from simple text and static graphics to a new era of video, animation, games and sophisticated RIA's for business that could replace boring, ugly apps developed by nerds with no graphic experience or animation expertise. The visuals now took front seat while the functionality often became a side note (much to the chagrin of tech purists like Jakob Nielson, who saw technology exclusively a pragmatic object, and not a creative expression.

The flash revolution completely changed the way people saw the web.

Then Google came along, and since google was designed primarily around the idea of "webpages" which was a throwback to the flash generation which instead was developing a world of sophisticated, intelligent apps in place of "webpages", google could not understand them. The concept of websites got a breath of fresh air, and became revitalized and we saw resurgence of CSS and HTML, and the HTML format was again considered the "permanent grand master" and flash was seen again as a small quirky, strange thing often warned against with misinformation and mistrust, similar to "witchcraft" in medieval times.


Then along came facebook, which looked old fashioned and grossly simplistic to the creative developers at the time (myself included) who dismissed it at first. The hook, however, which proved to be more important than pragmatism OR creative expression was the end users ability to assert themselves. Up to the facebook revolution, creative and technological elitists had reserved the right to produce content for large audiences much like television broadcasters had reserved that right for themselves in the channel. The "broadcast" world became the "conversation world", and the "audience" became far more interested in each other than the content being shoveled at them by anonymous "experts".

This perplexed both the google/html experts and the flash experts, and to survive, both had to learn to play facebook's way or be left behind. Google continues to struggle with this and may actually be forced to completely change, reinvent itself, or simply become obselete as facebook search replaces it entirely - relegating it to a plugin for wikipedia and other large information repositories.

Up to this point, both facebook and google's technology pushed the state of the art backwards in terms of sophisticated application development...google with its HTML dependent design, and facebook with its proprietary but largely HTML centric design. Savvy flash developers have managed to integrate the technology into facebook in things like Farmville, but flash is not really being taken advantage of or pushed to new levels, its actually working to be compatible with legacy, dated technologies offered by Facebook and Google.

Enter Second Life. When Second Life came along, as a flash developer, I was honestly intimidated. It seemed that it could run circles around flash by simulating not only 2d animation, but 3d animation, sophisticated artwork, creativity, and reality engines. The true state of the art exhibited previously in stand along video games now in an open engine, available to developers. Things like HTML and Flash on a prim surface made those two technologies seem laughable, and its API put it in the next logical step toward the "holodeck" along with its interchangeable physics engine, developer tools, and scripting engine.

At the time of Second Life's peak, it was in the news almost daily, and one could fart in second life and it would make front page of CNN. It seemed unchallenged and unbeatable in terms of potentially taking the RIA to the next level.

(I'm ignoring the concept of cloud computing here because the concept, while important as a fundamental shift in app management, is grossly overhyped - its important like the standard voltage of electricity in homes is important, but not really worthy of news or discussion per se as its not particularly innovative anymore, its just a natural progression)


Then along comes the iPod touch. These tiny devices were extremely revolutionary ONLY in that they made what was already technically available more "inviting" and popular thanks to Apple's branding and clever marketing. They are the coca cola of technology. Fizzy sugar water had been around for many years prior to coca cola, but coke packaged it and made it viable into what is still one of the most popular non-nutritionally valuable foods ever.

The iPod touch was particularly important because it took available processor capabilities at a small size, stripped off all the least popular features on hand held PC's, and made the interface elegant and easy to use. This changed everything, and because technologies like flash and second life were not capable of displaying on such low-power devices, they took a second seat to the "revolution" of the mobile app.

Mobile apps, in truth, are grossly inferior to the state of the art of the RIA on a desktop or laptop computer, but are more popular largely due to the fact that they are available on the terms of the consumer rather than the content distributor.

I dont, for example, want to play internet checkers while I'm sitting at my desktop, but I do when I'm about to go to bed, or riding in a long bus or cab ride to help pass the time.

I would love to play second life in that time, but it just isn't feasable. The display is too small, cant handle the processor speeds, and is too hard to manipulate while I'm holding the little thing.

So in effect, between facebook, google and Apple, the entire move towards progress in display technology has been put on hold while a new "revolution" of getting people to integrate these devices and platforms into their lives occurs.

The future prediction that follows is once the public is on board with these devices and rather simple technology, content will become king once more as consumers become "bored" with facebook, google, and iPhones/ipads/ipods etc. That, you can count on.

Sunday, May 2, 2010

HTML 5 vs Flash...standards based vs proprietary

I thought of an appropriate analogy. I've spent a lot of time working with both open, standards based technology AND proprietary technology, as have all of us.

There are advantages and disadvantages to both, making them each important in developing commercial software and rich internet applications.

Proprietary platforms vs Open ones are like two cars in a race. One has to follow a set of carefully constructed, committee determined rules. The other can simply race around, unfettered. If the object of the race is "getting there first", the proprietary car will almost always win. However, if the objective is more complex, then the proprietary car will be sloppy and unsuccessful, or too focused and inflexible to deal with unforseen events.

A direct example is rendering speed. When you look at a flash presentation, you dont care how it is rendered by the CPU or if it followed certain rules, you just want it rendered as quickly and efficiently as possible so your presentation is not sacrificed. Flash accomplishes this very well because it compiles into a very efficient, compressed code known as "pCode" that is interpreted by the flash player and pushed to the screen as fast as the processor will allow.

HTML 5 as proposed, is a "JIT" or Just in Time compiler, so the browser has to read fairly english like, inefficient tags and convert them to visual graphics on the fly. This is a relatively slow process, but it means if you go view-->source, you can more easily read how the product was created, and copy bits and pieces and paste them into your own HTML 5 document if you want. This is one of the best examples of open source.

Adobe, years ago, introduced something called SVG, which was like HTML 5 almost exactly, except quite a bit more advanced. Adobe wanted to compete with flash because it was owned by Macromedia at the time, a rival to Adobe. SVG failed to catch on though, primarily because it was slower, and less capable than flash. Adobe gave up, and merged with Macromedia, and now champions flash.

Flash does not decide to run only if the code is written perfectly, or if the content is intuitive and useful. Flash is not capable of making that kind of value judgement. That has made for a lot of bad press for flash, because a lot of coders make annoying ads using flash, or make unintuitive, inefficient programs that crash or use a lot of power unnecessarily. Flash does not test coders for their skill level before allowing them to compile for it, it just lets whoever make whatever, as long as they have a valid flash authoring tool. That has enabled some fantastic flash based content to appear, such as www.homestarrunner.com, and it has also allowed for a lot of really annoying stuff.
Given the coders skill and available processing power, though, in every case flash will run faster and more efficiently than SVG if it were created under the same circumstances.

Apple takes this several steps further, and that has been both its success and its failure. Apple has the philosophy that all development must be censored, controlled, and held to a certain standard before its user community can be exposed to it. This makes for a relatively virus free, consistent experience. Its like McDonalds, or Coke A Cola. You know exactly what you are going to get when you open a can of coke whether you are in Guatemala or Moscow. Apple also only runs on Apple hardware, rarely is compatible with non-apple peripherals, and maintains tight even tighter quality control over its iFamily of products. The result is a consistent experience across all devices you buy from Apple, and content that is guaranteed not to be offensive, annoying, or rude. A clean, happy world that is a digital utopia.

That world isnt desirable by all people though, many people in a free country value freedom of expression, freedom of choice, and the right to decide what constitutes "offensive" or "annoying" instead of having a corporation or government decide that for you. Steve Jobs has made it very clear he will not back down on compromising the user experience on his iFamily of devices, although on the Mac OS they do support flash, most recently announcing they have enabled low level hardware support for it. It appears that mr. Jobs is far more interested in his iFamily of devices, though, as he stated the iPad is the most important thing he has ever done in his career. It is possible the Mac OS may be spun off to another company such as microsoft one day, so Apple can be free to pursue their ideology unfettered by the Mac OS and their desktop/laptop computers.

The internet is not something Apple can control or censor (yet), but they can on their own devices and they are doing as much as they can to protect their digital utopia for their users. They have created the app store where developers can apply to create and sell their games and content as long as it meets Apple's strict requirements for functionality and cultural sensibilities. These apps can communicate with the internet and become special portals for websites that guarantee Apple control over what app developers want their users to see.

They do have a web browser app as well, but, many sites you view on an iPod or iPhone will be specially built to be more efficient on your small device. The website can detect that you are an iPhone user, and actually alter itself so that it is laid out in a way you can easily cope with on your device. So, when you "surf the net" on your iPhone, you are seeing a version of the internet that is special. One that is designed for you and your iFamily device. They also block flash, which most people surfing the internet can see (or block if they wanted to using a flash blocker)


There is, however, something strange here. Apple realizes that in order to sell their devices, people will want to look at the internet. Apple has, however, blocked flash on their devices to protect their digital utopia and encourage people to use their app store apps instead of playing flash games or viewing flash videos. Then it gets confusing, because Apple has publicly come out in support of HTML 5. HTML 5, they claim, can do everything flash does, and they want people to use it instead of flash. This is strange because if HTML 5 does everything flash does, why block flash in the first place? My guess is that Apple knows HTML 5 is much slower than flash at rendering interactive experiences, and that it presents less of a threat to their proprietary app store system than flash does. Also, since HTML 5 is open and easy to read the source for (as opposed to being obfuscated like flash's p-code is), HTML 5 sites are easier for Apple to censor, even censoring specific parts.

I dont pretend to read Steve Job's mind though, so I can only be confused like most of the rest of the world is.

To be clear, Apple is not acting out of character. They have been dedicated to the proprietary model since the beginning offering a "different" experience than their competitors. This has been welcomed by many consumers, because it makes the experience of using a computer and going on the internet less frustrating and confusing for them.

Competitors and corporations have shyed away from Apple for this reason though, because Apple does not allow them the same freedom that other platforms do, so they have chosen to risk the viruses and pitfalls associated with them for the benefit of the freedom to do what they wanted without having to check with Apple first, or in some cases, create their own proprietary systems and take responsibility for the viruses etc. themselves. I think this is the fundamental reason Apple maintains a relatively small but loyal sliver of the overall marketplace.

HTML 5 vs flash is more about standards vs proprietary, and the proprietary approach is the one that allows corporations to compete with each other and give their end users something optimized specifically to their needs without compromising. The standards based approach makes a platform more open and transparent, and fosters innovation by providing a common set of tools for many to use. If you want to build a product that is "better than the rest" and meets a specific need, you probably need to create something proprietary. This allows you to protect your investment from being copied easily, and enables you to demand support by paying for it as your budget allows. If you want to build something just to improve the plight of mankind and expect nothing in return, Open Source is the way to go. HTML 5 is great for websites where you dont care or even would encourage copying. Flash is great for building "rich internet applications" that you want to compete with others and do something just a bit better for a price.

Saturday, May 1, 2010

Many ludites suggest flash is going to be "killed" in the long term. Wrong.

Its hilarious to listen to ludites express opinions about things they have no concept of. They state that "one day, people will no longer have to download plugins and that is why flash will eventually die"

Flash is simply integrated into the browser, so no plugin or download required, this is already the case with Google Chrome. Remember when you would buy a PC with or without a math coprocessor? Probably not, but they arent "dead", they are embedded and its impossible to buy a computer without one. No one cares, no one buys a math coprocessor anymore or even knows what it is. Math coprocessors are there, they have not "been killed" they simply are invisible to the end user. This is what flash will eventually become, invisible to the end user. They will just see cool content and wont care if it is HTML 5, flash, or whooza wooza.

The future as I see it...HTML 5? Flash? whatza whooza?

I see Flash/Actionscript it as I've always seen it, a specialized UI tool for building rich internet applications, and there isnt anything else on the market that accomplishes this task as well as flash at the moment - and in the forseeable future. Should something come along that does it better, I have no particular loyalty to Adobe and would be the first to embrace the new technology, in fact, for the latest stuff I have been building flash files in non-adobe products for the most part, only using the free flash compiler that comes with the flex sdk to do my compiles - but I could be using something else if I felt it was worth the effort.

I think if Adobe is smart, they have an opportunity to blur the lines between HTML 5, flash, and anything else by simply making an authoring tool that compiles to any format, and even player technology or scripts that interpret flash to HTML 5 and back on the fly. This would effectively end the debate of HTML5/flash, and render "player technology" irrelevant, which it pretty well already is since flash is embedded so deeply in most browsers outside of the iFamily. End users dont care if their games are HTML5, flash, javascript or whatever, the only people who care are developers, so the drama continues. Adobe clearly realizes it is not in the "plug in" business, it is in the authoring tool business, so their authoring tools should continue to output in every possible format for every possible platform, the only limitation being the platforms and formats themselves. Adobe is in a better position than most companies, it knows how to write RIA authoring tools better than anyone, hell, it invented the concept. Adobe is capable of being so flexible, no other large corporation can really hurt it. For example, Apple said no flash on iPad. So, adobe makes a compiler within a few days that authors app store compliant software for the iPad. Apple gets angry, and responds by blocking any content that is authored by flash cs5. This is ridiculous, because you can bet almost every visual on the apple platform was partially designed using an adobe product, including the hardware. Apple has succeeded in making itself look like an immature baby, and Adobe simply says "fine, we did everything reasonable, and if you want to act retarded, we simply will focus our energy on another platform...android". Apple thinks they've beaten adobe...ha ha. Adobe's dreamweaver is CURRENTLY the best authoring tool for HTML 5, which Apple believes is competition to Adobe. Again, ha ha. Adobe outputs in SVG (HTML5's parent technology) - which Adobe essentially invented, and compiling html 5 from the flash authoring system is actually very logical, and flash CS5 will likely be the #1 choice for making html 5 canvas based content. Apple makes more money than Adobe, but they dont get content authoring like Adobe does. Neither does Microsoft for that matter.

What I am suggesting means that if a user who does not have a flash capable browser visits a flash site, the site could, on the fly, prepare an HTML 5 version for them automatically. This is not difficult, or particularly processor intensive, as it would only need to be done once for the particular platform. A "flash to html5" converter could reinterpret almost any flash site into HTML 5 automatically, so the legacy content would all continue to work without a hitch, and new content could be published directly to HTML 5. That is why HTML 5 is not the future. The future is..."who cares technology", IE the path of least resistance, lowest cost.

If I am an animator and it will take me 25 weeks to produce a cartoon in HTML 5 vs 2 hours in flash, there is no contest. If I can output in both formats with a 1 button publish, then there is no debate, not even a conversation about it. My animation will work on old browsers, new ones, iPads, apeDods and dewDads. THAT is the future, I believe. Whatever is cheapest, easiest, and gets the nerd junk out of the way so creatives can express without having to ftp the htp and mno the qrs. Html whatsit? Flash-a-who-eee?

There will always be a need for niche, customized software in spite of all the attempts by the drupals and nings of the world to provide an easy button because if something is too easy, it becomes nearly impossible to differentiate yourself from everyone offering the same product for free. So in this respect, the best language for the job will be the tool of choice, and right now the clear winner is OOP ECMA. All modern languages are ECMA compliant, and the others are dropping off because they are hard to use and clumsy in comparison, like Objective C, C, C++, Perl, PHP, etc. are the "olden days" and ECMA represents the modern languages like C#, Javascript and its growing libraries, Actionscript 3 etc, all of which can now be authored in eclipse. Again, path of least resistance for developers. I can write in ECMA languages for pretty well every platform, and they are all standard compliant, so the only difference is the compiler/player, which, quite frankly, I dont give a damn about. For me to publish our LMS in HTML 5 in two years, I likely wont have to rewrite any code, there will simply be another checkbox for "output to html5" and voila, done. Company saves millions, and I can concentrate on adding features instead of trying to comply with a non standardized language to rewrite everything...which is incredibly inefficient. ECMA is the "english" of the programming language world, and its already won. Javascript, jQuery, C#, and Actionscript 3 are all together on that front.

They used to say "content is king". I imagine that is still the case, and the amount of flash content out there that is in flash is massive, several orders of magnitude more than what is contained in the "app store". At the same time, only some of that content is video based and can be easily converted to HTML 5 for the iPad/iPhone. Its much easier to write a translation tool than to redo all that content, so that is most likely what is going to happen. Check out www.homestarrunner.com on your iPad for example. Those guys will NEVER spend the time and energy to convert 3 years worth of weekly flash episodes to HTML 5 manually, but a converter would take care of it instantly. The ONLY thing stopping a converter from being made is HTML 5 itself. The format simply isnt ready to handle the complexity required by that content to render properly, but you can bet the second it is ready, some free converter will be available and it will all run smoothly everywhere. For Steve Jobs and the iFamily's sake, that will hopefully happen sooner than later, otherwise many consumers will drop their iFamily product in favor of Android or whoever offers a full flash player because they can get all the app store games for free, as well as all the legacy flash content out there that will likely never be converted to HTML 5 manually. "If I can get "boob shake" app that Apple refuses to allow in its app store on Android for free without having to use iTunes or sign any kind of confining DCMA and basically remain anonymous...well, my iPod touch is going in the bin of old adapters and pocket pcs." says joe daily show fan.

Sorry about the long post, of course, but the issues here are complex and intertwined.

Thursday, April 29, 2010

Steve Job's perpetuates 6 myths about flash.

Here is a link to an engadget article including Steve Job's press release. (Press the "show press release button" at the bottom of the article...dumb, I know.)

Here are my points in response to the 6 points highlighted in the article.

1. "Flash isnt open" - it is actually. Its been open source for years, and there are hundreds of free tools out there that can create .swf files. The swf file spec is not ruled by a committee of volunteers, but that is likely why it has evolved so quickly, and why HTML 5 has effectively stalled. Check out "papervision.org" for a good example, or the "open screen project" at Adobe.

2. "50,000 apps are an effective replacement for the web's flash games" - well not really.

a)Flash game content is not controlled by a single governing body, so one can develop for the flash platform without fear of having their work blocked, censored, or taken offline by a centralized distribution force. IE if I spend $150K on some RIA using flash, Adobe cant shut me down arbitrarily as Apple has been doing to app developers. This means innovation will still happen on the flash side, and apps will copy.

b)Not all flash content out there is "games". There are literally thousands of flash based UI's for business applications, training, and content management. Many of these are behind corporate firewalls, only accessible to customers or internal employees. This is UI that is dependent on the capabilities of flash including rapid prototyping, object oriented class structure, and code sharing and management for scaling business needs. Flash can be the entire UI, or small bits here and there depending on the platform, but has far more robust support for security and tracking to a greater level of detail than any HTML or Javascript based technology.

3. "Reliability on the mac" - Adobe claims Apple consistently blocks adobe from having low level access to their systems, access that is necessary to optimize flash for them. Adobe flash VM2 supports h.264, so there is no technical advantage to HTML 5 even in that respect.

4. "Battery Life" see #3. Intel based PC's have solved the issue by including flash friendly hardware rendering. This, again, is a myth perpetuated by Apple apparently for its own petty self-interest.

5. "Touch not supported". EVERY UI technology currently assumes a keyboard and mouse. Every UI technology can be used to react appropriately to touch. This has absolutely nothing to do with flash in particular, it has to do with shifting all UI technology to support a touch based environment. Touch is simply a new set of UI events that need to be accounted for. Touch does not compete with keyboard/mouse, it augments. Many things are still a lot easier to do with keyboard / mouse than with touch. The idea that touch by itself is somehow the next "evolution" of UI is idiotic. I cant imagine typing this letter, for example, on my iPod.

6."Third party vs Apple's quality (I guess?)" What he appears to be indicating here is that Big Brother AKA apple knows what is best, and small, independent businesses are unreliable and incapable of providing quality tools. Adobe has a pretty good track record of providing the best and most popular tools for creativity that exist, and so I'm not sure how this is a point at all.

This latest trend for Apple seems to be shaping up as a battle for domination of the web by Steve Jobs, who appears to be taking an all or nothing stand where Apple is in 100% control of all online business, or they won't participate.

I think its important for developers to have HTML 5 based alternatives to flash only sites, and consider the app universe and exciting prospect for new business, as well as touch and other technologies it brings up. What upsets me is the closed nature of the Apple business model. As a consumer, I enjoy the ability to have windows media player, apple itunes, and google chrome all running on the same PC at the same time. Flash does not block HTML 5, or silverlight, or DHTML, or any other technology. It is simply another choice in a free society that enables innovation.
Apple's fight to kick everyone out of the sandbox and be the only one there is perplexing and seems uncharacteristically short sighted. I certainly hope they find a way to change their policy.

Sunday, April 4, 2010

iPad? How about the "sharePad" .

Take the "i" out of iPad, and replace it with "we" or "share" and it might become obvious why Steve Jobs is right, this will be the most important and influential offering of his career.

Well, I watched this video, and it suddenly dawned on me. Steve Jobs is right, this is the most important thing he's ever built...only he forgot to tell us why.

Its a show and tell device, a sharing device. Something you would use to show content to someone else. Something to interact with content with someone else. One hand holds it, and three others can poke and prod at it.

As this time article points out, creating content is likely a futile exercise on the iPad, the mouse and keyboard are far superior to a multitouch interface for drawing pictures, writing a blog etc. BUT, if I want to show someone else my blog, or my latest picture, or movie, or whatever...the iPad is far superior to any PC as a show off my stuff device.

PC Gaming is generally a solitary experience although wii really introduced the idea of playing games with your friends, and the iPad really puts people together more intimately and outside of the livingroom/couch context.

I can see the iPad being an excellent and unequalled device for showing people photos (probably most importantly), exploring a map together, playing head to head games like chess, putting together a puzzle with your friend, watching movies or TV in bed, showing plans for architecture onsite, all kinds of new collaborative musical instruments, or working with someone else to organize information IE looking at my accounting spreadsheets with my accountant next to me.

The perfect configuration would be an iPad that doubles as a computer monitor, you plug it into a base that has a keyboard and mouse and all the computers heavy lifting processing power (until that becomes more portable), then you pull it off that device to take across the room, on the train, over to your client's office, to your friends house etc. to show off what you made and maybe get their input.

Steve Jobs device will, in my opinion, appear crude and almost comical in as little as 3-4 years, but the influence it will have on how we will interact with information and each other over the next several years will be huge. Steve didnt invent the tablet PC, but he was the one who got us to try it out...together. Only he didnt know that at the time.

Wednesday, February 24, 2010

Google needs to come clean

In recent news, Google executives in Italy have been convicted for participating in the dissemination of a video depicting the abuse of a child with Down's Syndrome.

Google responded, claiming this action represents the end of the internet as we know it.

Well, it could certainly mean the end of Google as we know it. The problem as I see it is, while Google execs didnt post the video or even know about it until after it was removed, what they fail to mention is they did automatically make money from the posting of the video, as they do with all videos. Ads placed next to videos automatically bill to the advertisers and the videos, regardless of content, immediately generate revenue for Google.

So, they financially benefitted from the abuse of a Downs Syndrome child. The amount may be vanishingly small given the number of hits, but it does bring up a serious point that, were I working at Google, would avoid making such a big stink in the news about.

The point this brings up is, Google financially benefits from all videos posted on youtube and google video in the form of traffic and ad revenue. This truly makes them fiscally responsible for the content contained therein. I'm not sure how they avoid this, but it does seem like a gaping loophole that may be exploited by these Italian lawyers.

Right now, if I try to apply for "revenue sharing" with Google, I get refused if I cannot provide significant legal documentation stating I own the rights in eternal perpetuity across all media for every molecule, concept, and brand displayed in my videos, as well as permission of all those depicted. Otherwise, I fail to be considered. They dont take the video down though, they leave it up and continue to profit from it even though they CLEARLY do not own permission if I the poster do not (by their unreasonably strict standards)

So, my advice to Google is, if you cant accept the responsibility for something, DONT accept the benefit. Actively avoid it. Do not place ads on or near any content for which you are unwilling to be held accountable for, and ONLY pay revenue to the poster and get them to share with you ONLY if they can prove 100% ownership of the content. That way, the responsibility is indeed 100% with the poster, and you are free of culpability.

In this case, I'm afraid, you are partially culpable, although were I the judge I would charge a small fine of $2000 or so payable to the family and you could be on your way, with a warning to change your business model.

Sunday, February 21, 2010

The iPad vs flash issue is a red herring. The real issue is the iPad vs. the Keyboard and Mouse.

In a recent article shown to me by a co-worker, blogger and flash developer Dan Eran Dilger makes a case in support of keeping Adobe Flash technology off the iPad.

In the article, his chief arguments seems to be centered around UI elements such as mouseover, keyboard controls, and multiple mousebuttons so many flash applications depend on to function properly.

I would counter that the idea of slighting flash for supporting this functionality is backwards, instead, the argument should be leveled at the iPad for actively blocking this kind of functionality.

The fight of the iPad is not between it and flash, it is between it and humanity. It has thumbed its nose so to speak at the mouse and keyboard, and while multitouch certainly has much promise in adding significantly to the ways we interact with information, it is by no means an alternative for every user input device.

Further, flash is just a software development platform like C++, Java etc. The question isnt whether it will have multitouch and accelerometer support, the question is how will that become standardized across devices? Currently Apple is curiously vacant from Adobe's open screen project for example, and seems uninterested in a standardized approach to multitouch UI design outside of their own platform. This is shortsighted and disappointing.

Like Apple's "one button mouse" that looked like a hockey puck and every serious Apple user replaced the first chance they got with a real mouse, Apple is attempting to force users to interact with what is really the end users OWN content and information in a way Apple believes is the best, rather than providing end users with a pletora of tools and allowing them to pick and choose.

Personally, I believe Apple should jump off its "high horse" and simply support an external mouse and keyboard, and perhaps a small stand. That way, users could interact with the iPad like a normal computer OR use it like the tablet, depending on the context of the particular activity. That said, the list of things the iPad should be or should have is staggeringly long, so I'll cut it short there.

Apple, its not flash, keyboards, mice, or the internet that is being immature here, its you. You have some neat ideas but you need to grow up and share your toys.

Friday, February 12, 2010

What Apple should have introduced the other day.

Here is what truly would have revolutionized the technology world the other day. If I were CEO of Apple, this is what I would demand from my team.

1. A touch screen device that can interlock with another one, so they could be oriented like a keyboard/screen. This means you'd have one on the desk, flat, and the other one vertical on its wide edge held in place by the flat one. You could then have visuals by your hands using the touch screen to move around and manipulate the one that is vertical as a screen. They would interlock on any side, making all different kinds of combinations for use cases. Iphones could also interlock with the larger one for use together. Simple interlocking hinges use a "slide in" mechanism to hold themselves in place.

2. It should come with a bluetooth or wifi keyboard and mouse. AND the mouse should be flippable so it converts into a trackball.

3. The device should have the best possible CPU, Graphics, SSD memory, and power supply, and each of these major components should be easily removeable and replaceable without having to dismantle the entire thing. You should be able to exchange the CPUs of different devices for specific uses at any time. They should be mounted so they are similar to small plastic blocks with no visible pins when detached.

4. The device should include slots for every major kind of interface, including USB 2, RJ 45, optical, SSD cards, compact flash, memory stick, firewire etc.

5. The device should run every major operating system possible. Windows 7, Mac OS, and linux. The device should be capable of running an emulator for Mac OS 9 prior to carbon.

6. If the device could do all this, running the iPhone OS as an emulator would be trivial.

7. the device should have a camera that allows it to work like a transparent window, that is, you could hold the device up, see a picture, and capture that picture exactly as you see it framed by the device.

8. The device should be multitouch, be able to recognize cameras and download pictures from them when the camera is simply placed ON the device. It should also be able to synch contacts with any blue tooth capable cellphone.

9. The device should have an integrated cell phone, that allows one to keep the device in a backpack or on a desktop flat, while the user simply talks into a small bluetooth headset, which again comes with the device as standard equipment.

10. The device should support DVD's read/write and they should slide into the device's thin edge.

11. The device should cost NO MORE than $300 US. AND the device should be free for people who make less than $1500 a year via various charitable programs.

Unfortunately, all the big companies are developing products selfishly...constantly thinking about how the devices they offer will bring them profit, instead of thinking about how the device will make people's lives better. The Apple iPad is a primary example of this, as is the XBox, the Playstation, the iPhone, iTunes, Sony Home, pretty much every money-grubbing, locked down, proprietary platform that only "improves" in the direction of shareholders bottom line.

Many of us are disappointed because we know Apple can do better. Here's hoping they do!

Monday, February 1, 2010

Deleting discussions...closing discussions...deleting comments - is it ethical?

The more I am involved in social networking writing contributions to various sites, the more I am increasingly aware of the ethics of deleting other people's comments, closing a discussion to comments, or deleting an entire thread/post/network.

Right now, there are literally thousands of ning.com networks, and some of them have tens of thousands of members. The members can spend hours per week or even entire days preparing and posting blogs, comments, opinions, original ideas, creativity, research etc. They can develop close frienships with long, complicated email histories in private conversations, and they can also upload their pictures and videos to contribute.

Now the scary part. The network creator can delete the entire network with the click of a mouse. Years of contributions can be erased in a second by the Network Creator. Its not entirely easy to do by accident, it would require forethought, but, for example, if a network was taken over by someone other than the originator of a network, the content would all become jeopardized.

Slightly less scary but also worth considering is the fact that on most blog posts, the OP (original poster) can delete the discussion. For those of us familiar with how the internet works, quite often an OP's statement ends up merely being a catalyst for what turns into a very deep, involved conversation that will invariably involve countless man-hours of research, writing, proofing and posting, not to mention emotions. Friendships can often start or end in a thread, and people can have their world views altered or completely changed. Its big stuff!

Further along this line of thinking, OP's can generally delete individual comments as well. This exists obviously as a way to prevent spam, but it is also a very dangerous form of censorship, as the OP can spuriously delete dissent while allowing flattering comments to remain to alter the perception of the OP's message.

What do I propose to solve this? Well, a partial solution might be that a general feature be added internet wide to sites that emails your comment or an entire thread to you if your comment is ever deleted. This could get tricky for the case of an entire network, but might be OK if every thread you participated in was sent to you do on the deletion of an entire network.

There could be a standard on the web like the IEEE or some kind of best practice for social networks where you as a contributor are guaranteed a certain set of rights and can hold certain minimum expectations. Your contributions will not be deleted without your express permission could also be a solution. These would be difficult and time consuming to implement. Alternatively there is the concept that wikipedia.com offers with the history, which also seems very elaborate but seems to work in terms of ensuring everyone's say continues to exist (albeit hard to find in a massive list of historical versions and unsearchable)

Also, being able to close a discussion to new comments in context seems highly unethical, because then anyone who may disagree or enhance your statement, or even clarify for accuracy, becomes muzzled by the OP. This is not the mark of a civilized society, and truly seems like a form of oppression and censorship.

I feel as the social networking revolution takes over, new ethical dilemmas will come along that we as a species will need to grapple with and solve to ensure our collective rights and efforts are protected vigorously!

-Ryan Cameron, the Code HandyMan Feb 1, 2010

Thursday, January 28, 2010

iPad becomes "iVe bEen hAd" upon purchase...

Watching the iPad become "unveiled" yesterday really got me thinking...these people at Apple are geniuses. Evil geniuses. The iPad is effectively a giant iPhone, but what is key about the iPhone is the monopoly Apple has on the app store and its stranglehold on the developers for it. If you want to develop for Apple's iPhone, you have to play by their rules, use their technology, and price based on their decrees. Deviate, and you cant play.

For now, they have given a fair amount of leeway to developers and creativity has poured out, but Apple knows almost better than anyone how to play that game. Give them a lot of toys up front, then start to cinch control once they are dependent on it for their livelihood. We saw how they have done that masterfully with the musical community and iTunes, and the Apps are the same thing. Sinister, but elegant and masterful too, like a spider stunning then slowly sucking the blood of its prey, keeping it just alive enough to aid in its own death.

My prediction based on what I saw is this. The iPad will grow an external wireless keyboard and a stand so it can be used like a monitor. It will quickly replace kiosks at points of sale and cash register types of computers in all retail stores. It will replace computers in schools as "apps" spring up that do every possible thing. People trust apple, and dont see a problem with its monopoly, and the government is weak on vetting these things.

Apple will then slowly phase out its desktop and laptop computers, OSX will disappear, and the iPad in various forms will replace it.

OS's are disadvantageous for software companies. They cost a lot to maintain and support, but can only be charged for once. You cant keep charging people for use of the OS, but you are expected to keep it working and shoulder the ongoing costs of maintenance and upgrades. All the while, software vendors can buy and sell their software and don't have to pay the OS maker any royalty for running their software on their OS.

The iPad and iPhone are an example of the end of this model. OS companies have finally figured out that this model is unprofitable and unsustainable, and are working to rebuild their OS's business models to give them better control over the revenue stream and make money on a transactional basis instead of in a one time license fee. Interestingly, Microsoft figured this out a long time ago and have been acting on it with the XBox/XBox live/Games for Windows, but are going to have a much harder time transitioning consoles to the areas of the market currently dominated by PC's because they have no path to convert a gaming console to a PC.

Apple, on the other hand, has established a perfect path, the smartphone to iPad to PC path. This is very logical and will, within a few years, push their technology in where PC's dominate, and likely also eventually encroach on gaming consoles, leaving sony, MS, and Acer type companies caught with their "pants on the floor".

Its a brilliant strategy, and my hat is off to them.

The future for Apple, and likely our world, is a utopia where Apple controls everything. Microsoft played their cards too fast, and got stuck on the anti trust thing, but Apple has managed to form intensely powerful monopolies while maintaining its "underdog" brand and keeping its perceived market share low, effectively allowing them to breeze past hallways once blocked by anti trust lawyers.

By the time we realize what's happened, Apple will have created a monoculture in the marketplace, and that is why we need to support anyone BUT them right now. Its very important for us as consumers to keep the PC afloat because it represents our power. Once we give that up, our ignorance, laziness, and desire for the convenient/cool will be our undoing...and Steve Jobs is counting on it. We'll end up with one device that does whatever makes the most money for Apple, not necessarily what is in the best interest of consumers.

I would like to add though, if the iPad totally bombs, then it will show that consumers are much smarter than Steve Jobs gives them credit for, and they'll have to come up with something that keeps the power where it belongs, in the hands of consumers.

Sunday, January 17, 2010

Why I still dont have a cell phone...and hopefully never will

Cellphones.  Smart phones.  I like to call them T.I.R.E.D. or "Temporary Intelligence Reduction Electronic Devices".  Particularly the ones that have no raised buttons you can feel to know what to press by memory instead of staring down at it.  I dont spend any time in a large city, but can only imagine how many people stumble into traffic, trip, walk into poles, or miss important physical cues due to their various "TIRED" devices such as the ironically named "smart phone" or their iPods etc.

Context has kind of gone by the wayside in our society, and we seem to think getting information in any context, any setting, is just as valueable as getting it in the context for which it was designed. 

Movies, for example, were designed to watch on a large screen in a dark room free of external distraction.  The scripts are written subtley and visual cues are often only noticable on a large screen, so a small screen tends to mess up the experience. 

Training is the same thing, you learn best when focussed on the task, and free of distraction, this is why we have classrooms and texts and lecture halls, no one tries to teach calculus in grand central station.

Gaming as well, at least high end simulation games such as WoW, Fallout 3, Second Life, all best experienced on a large screen with surround sound and free of distraction, glare, and external noises, or suspension of disbelief and immersion just arent possible.

Some people do have the misfortune of taking a subway to and from work which means a long period of time in a small space with little to do. This is where context can be created for these kinds of activities and a "smart phone" actually can be very good.  You can find a corner on the bus or train and tune out everything with headphones.  Same on an airplane, where this kind of coping with being in a very small space for a long period of time is greatly enhanced with some kind of small entertainment device.

If you have a house, though, or an apartment, you can generally find a space for a large monitor, a land line, and gaming system, and for some who work at home a workstation.  You can create individual contexts for each of these activities that is optimal for getting the most out of them.  Your "phone room" can be small with a comfortable chair and perhaps a notepad for taking notes.  Your "TV/Gaming room" can be made dark and cozy, with full surround sound and bass to shake your chair and help create an immersive experience, and your "working/training" room can be a desk perhaps with reference materials handy or various other kinds of equipment necessary for the tasks and an ergonomic chair.

No matter how many apps a smartphone has, it still does not create contexts condusive to using the "apps" and encourages antisocial, sometimes bizarre behavior in public that can and does often disrupt what should be considered normal social behavior. Even in the subway example, phones and ipods break up communities and form tiny isolation booths where once humans would have interacted when finding themselves in an enclosed space with each other.  In some cases, cell phones and ipods create dangerous situations such as when driving, operating equipment etc. really doing any physical activity that requires attention.

The iPhone in particular requires the user to put their head in an unnatural position (angled downwards towards their hands) to effectively "navel gaze". This position encourages social isolation and lowers confidence and self esteem.  There is truth to "keeping your chin up" because it forces you to look "people in the eye" and acknowledge them, show respect or friendliness, and perhaps interact with them.  Not to mention keeping your eyes ahead of you so you can see where you are going and dont trip or walk into something.

What about people being able to reach me if I'm out?  Well, when I'm out, I'm out.  I'm placing myself in a context that is not likely condusive to giving my full attention to the person calling.  I'll either be driving, shopping, meeting other people to spend time with them, or working on a project that requires my undivided attention.   I have voicemail to pick up the call.

What if the message is "urgent" ?  I think people have gotten far to liberal with applying the term "urgent" to things.  Unless you are dying, or someone else will die or become seriously ill and hours or even minutes can affect the outcome, nothing is "urgent" and can wait.  If you are expecting a call, you can always check voicemail/email and even in the case of being a doctor, a pager is more than enough to handle all "dire circumstances".

Texting...seriously.  An athema to language and communication skills, texting is fullfilling the 'urgent' need of many people to dumb themselves down as quickly as they possibly can.  Like "twittering" which removes all context and meaning from information.  Now that said, its possible that texting will vastly enhance the interconnectedness of human beings, I suppose it could be considered an important step in the evolution of a collective conciousness, but I can wait until texting has moved to a more meaningful, context rich mode of conversation.  I have no doubt it will.

The one place I can concede cellphones are good is a roadside or local medical emergency, but in this case, ANY nearby cellphone will do, so I do keep one in my car with no accout tied to it because by law, 911 is supposed to be free for all cellphones.  This is a cost free solution to this issue.

So that is my reasoning for not having a cellphone.  I should state for the record though, as they evolve and become more capable, I could indeed have one or whatever they are called by then (perhaps an implant) ?  But for now, they are just TIRED.

Friday, January 8, 2010

Gambryo needs to be free. Google where are you?

I recently had the opportunity to review a copy of the Gambryo software used by several major titles, including "fallout 3" to make very compelling, immersive gaming experiences.

Its an incredible piece of software that makes turning your virtual idea into a reality much easier than other titles Ive seen in the past.

In order for it to really change the world,though, it needs to become free.  Right now it costs something like $80,000 per user per title, which is kind of ridiculous to say the least.  I understand their business model, but its, quite frankly, the most short sighted, lame ass thing Ive yet to have seen in the software world.

If Gambryo were free, and anyone could use it anywhere as long as they had power and a simple computer, we could experience a renaissance in art, economic opportunity, turning around 2nd and 3rd world economies by allowing an onslaught of creativity to be unleashed on the planet the likes of which the world has never seen.

Unfortunately for  mankind, we have companies like Microsoft and Sony that believe that they need to heavily control all the creativity in the world, and own everything.  So the only ideas that get released are ones that are directly aligned with the ideologies of children who get little or no attention from their parents, gamers who spend most of their time in dark, cavernous rooms completely devoid of social contact (and probably bitter about it as well), and nostalgic CEO's who think the coolest games ever made were in the 70's and 80s.

However, if simulations could be developed by anyone, anywhere, with the only limit being the imagination, we might find that Mozart, that Rembrant, the Gallileo of gaming has been living in Mumbai or Nairobi all this time, and we may experience world changing creativity with much more regularity.

Lets look at writing for example.  Where on earth can you find more diversity than in the written word?  Why is that?  Because a pen and paper don't cost $80,000! 

Second only to writing is music, and again, anyone can make music and in the past few years we've seen an explosion of diversity in music because the technology has become relatively cheap and available. 

Next is movies.  Inexpensive video cameras and editing equipment have created an opportunity for an incredible amount of content that has literally exploded and instead of making it harder to make high end movies, high end movies are instead profiting more than they ever have been.

On the web, html pages and flash games dominate the web only because the creation tools are free and relatively easy to get. 

In Second life, we have a 3d platform with simple but less than optimal tools for creativity (junk compared to Gambryo)  but even there, we see an absolute explosion of expressiveness that barely reveals the creative explosion waiting to happen but is being limited by backwards thinking corporations.

Now, even with gaming tools being so difficult and expensive, we see a massive industry of gaming.  Given the potential though, if game publishing were as easy as making a movie on your desktop computer, or writing a blog (at least the expense part),  I bet we would see an incredible explosion of revenue to the extent that the gaming industry would 10 or 100x its size practically overnight, and make new, fulfilling, creative jobs for millions of people globally. 

Microsoft and Sony have the power to do it, but they don't because they are short sighted, selfish, and afraid.  Shame on you folks.  Google?  Where are you?  Buy Gambryo/3d studio max, and make it free!!!

Saturday, January 2, 2010

Why flash is better than HTML for presenting information online.

There are a lot of people dissing flash, and I wanted to quickly note a few reasons why Flash is actually a better way to present information and offer user interface/functionality than the old, outdated technology of HTML and its derivatives.

1. Flash gives the author control over how the content is loaded and displayed.  Would you want to watch a movie or read a book that had all the scenes or pages out of order? Had the pages come in varying sizes sometimes?  let you see the ending before the movie starts?

Perhaps you would, but the director of the film generally knows how you will get the most out of what they have to say, and needs to present the information in a certain order, with a certain context.  One of my favorite things about flash over HTML or even second life (www.secondlife.com) is that you can hide everything while it loads so the user doesnt end up seeing only the text with no images, or the layout all mangled like often happens with facebook.

2. Flash lets you discreetly send and receive server infomration without interrupting the user experience.  Say you need to fill in a form or something.  With HTML the entire page refreshes, so all your UI controls temporarily disappear then possibly reappear but in entirely different places.    Session management is entirely haphazard at best.

3. Flash provides the opportunity for extreme precision in placement and timing of information for the user.  With HTML, again placement using layers, alpha channels etc, is still difficult and clumsy compared to flash, and the result is either simple websites that are no significant improvement over what AOL looked like in 1995 (IE Facebook, google, ebay, CNN etc.),  and cannot use timing and animation to present information on more of an intelligent, as required basis.

Of course, there are lots of poorly built flash based sites just as there are poorly built sites in all technologies, but with Flash, there is the greatest potential for UI perfection, ease of use, and intuitiveness perhaps than any other technology in existence today.   HTML represents the lowest common denominator and if your website /platform is entirely based on HTML, it certainly says something about your respect for your message and your audience.

I realize the irony of using an HTML based blog to post these remarks, but I do feel that if Blogger offered a flash based system, they would have the potential for being far more elegant and intuitive for their audiences and would ultimately increase their readership due to the improvements over the potential losses of those who refuse to evolve and install flash players or other "new fangled technology"