Thursday, January 20, 2011

The Worst Phishing Attempt Ever. ROTFL!!!

The person who sent this must be only the second generation of their bloodline to walk upright.


From: System Programmer
Reply-To:
Date: Wed, 19 Jan 2011 16:03:08 -0800
To:
Subject: Service Alert

"Dear web mail user"

"This message is from web mail messaging center to all web mail
email account owners. On Wednesday,January 19th, 2011,
all Mail hub systems will undergo regularly scheduled maintenance.

Access to your e-mail via the mail client will be unavailable for some time
during this maintenance window. We are currently upgrading our data base
and e-mail account center see homepage. We are deleting all unsubscripted email
accounts to create more space for new accounts.

To complete and keep your web mail account, you must reply to this email
immediately and enter your user name here (-------------------) and password
here
(--------) Failure to do this will immediately render your email address here
(===================== deactivated from our database.

You can also confirm your email address by logging into your account:.

Thank you for using web mail"

Tuesday, January 18, 2011

Video Comparison: Flaws in the Apple and Blackberry

This video highlights some very serious technical issues both platforms encounter and compares them directly. It shows how to react when your Blackberry becomes frozen and also doing a hard boot of the Apple.

Wednesday, January 12, 2011

Video Tutorial on SEO Tips and Tricks

So today I got another load of spam from idiots claiming that they know SEO. Based only on the email, it was quite obvious they do not understand even the most simple tenets of how Google works.

This is a one-hour video that was recorded at Adobe MAX. I co-led this session with Rich Tretola. There are some great gems of information in here. I am posting it because most SEO concepts are not difficult and you can do most of it yourself. I also want to make sure people understand enough about SEO that they do not get ripped off by idiots like the person who sent me the email today. Enjoy!

Friday, January 07, 2011

22nd Century Releases second studio CD "Where's Howie?!!

Yesterday was an incredible day for 22nd Century.  Our second studio CD was released and picked up by the mainstream press.  On top of this, we also launched the video for the single "Teenage Underwear Model".  The press release is below the video.  On a personal note, I am so proud to be part of this CD.  This is the best music I've ever been a part of.  Thank you to all those who supported us over the years.  Thank you Adobe for allowing me to pursue this hobby while representing the company!   This is for all of you, to make you laugh and rock out.  Relax, lean back and just enjoy the melodies!



22nd Century releases 2nd CD, covering Martha & the Muffin's "Echo Beach"!


VANCOUVER, Jan. 6 /CNW/ - Following up on 2009's successful debut CD "The Twenty Second Century, Canada's 22nd Century released "Where's Howie?!!". Produced by legendary rock producer John Webster (credits: Aerosmith, Alice Cooper, Scorpians, Motley Crue) and mastered by Todd Simko (Pure), Where's Howie was recorded in Vancouver's Mushroom studios and released Jan 6, 2011 on Bugnut Records. The 10 song CD includes covers of Martha and the Muffins "Echo Beach" and The Angel's (aka "Angel City") No Secrets which charted in Australia as high as #8 in 1980.

22nd Century recorded the new CD with punk rock superstar Zippy Pinhead (The Mutants, The Dils, D.O.A.) on drums to fill the void of Glenn Golflom who left the band in 2009 to pursue excellence in business. The trio have briefly toured, playing to audiences in North America while enjoying success from the first CD including winning the popular vote in a National battle of the bands contest, being nominated by the Somojo UK as a finalist for "Rock Artist of the Year" and having radio airplay in dozens of countries worldwide.


"The band's three members, Duane Chaos, Tim Plommer and Zippy Pinhead, have really merged their musical direction" stated Eddy Bugnut of the band's label. "The songwriting is really strong in the singles Teenage Underwear Model and U Generation as well as the title track, Howie the Skid. When I first heard U Generation it reminded me of The Who's earlier live performances. It is a song that basically kicks you in the face from start to finish".

The CD's will are available via most popular digital distribution sites such as iTunes, Rhapsody and Napster while the band's label uses many Web 2.0 social media patterns to market the music via their own network.

Media outlets wishing to receive a copy of the new CD for their review department may use the contact information below.


For further information:
Eddy Bugnut
management (at) 22ndcenturyofficial (dot) com
Preview the CD here.

The new CD can be ordered now as a CD or individual tracks. You may pre-order the cd from the link below or order individual tracks from http://www.cdbaby.com/cd/22ndcentury2

The following outlets have published this story:


AlphaTrade Finance

AOL Daily

Arizona Republic

Atlanta Business Chronicle (Atlanta, GA)

Austin Business Journal (Austin, TX)

Baltimore Business Journal (Baltimore, MD)

Birmingham Business Journal

Boston Business Journal

Business First of Buffalo

Business First of Columbus

Business First of Louisville

Business Journal of Greater Milwaukee

Business Journal of Phoenix

Business Journal of the Greater Triad Area

Business Review (Alban, NY)

Charlotte Business Journal

Cincinnati Business Courier

Dallas Business Journal (Dallas, TX)

Dayton Business Journal (Dayton, OH)


Denver Business Journal

Digital Journal

Distinctly Diva Beauty Network

Earth Times

East Bay Business Times

Entertainers Resource Directory

GlobeSt.com

HalEisner.com

Houston Business Journal

Jacksonville Business Journal

Jakob Montrasio's Net

KAIT ABC-8 (Jonesboro, AR)

KALB-TV CBS-2 / NBC-5 (Alexandria, LA)

Kansas City Business Journal

KATV-TV ABC-7 (Little Rock, AR)

KAUZ-TV CBS-6 (Wichita Falls, TX)

KAZT IND-7 (Phoenix/Prescott, AZ)

KBMT-TV ABC-12 (Beaumont, TX)

KCAU ABC-9 (Sioux City, IA)

KCBA-TV FOX-35 (Salinas, CA)

KCBD NBC-11 (Lubbock, TX)

KCEN-TV NBC-9 (Temple, TX)

KCOY CBS-12 (Santa Maria, CA)

KDUH-TV ABC-3 (Scottsbluff, NE)

KFDA CBS-10 (Amarillo, TX)

KFJX-TV FOX-14 (Pittsburg, KS)

KFMB 100.7 Jack-FM (San Diego, CA)

KFMB 760-AM (San Diego, CA)

KFMB-TV CBS-8 (San Diego, CA)

KFRE-TV CW-59 (Fresno, CA)


KFVE MyNetworkTV-5 (Honolulu, HI)

KFVS CBS-12 (Cape Girardeau, MO)

KGUN ABC-9 (Tucson, AZ)

KHNL-TV NBC-8 (Honolulu, HI)

KHQ-TV NBC-6 (Spokane, WA)

KION CBS-46 (Salinas, CA)

KIVI-TV ABC-6 (Boise, ID)

KKFX FOX-11 (Santa Maria, CA)

KLFY CBS-10 (Lafayette, LA)

KLKN ABC-8 (Lincoln, NE)

KLTV ABC-7 (Tyler, TX)

KMEG-TV CBS-14 (Sioux City, IA)

KMIR NBC-6 (Palm Desert, CA)

KMPH-TV FOX-26 (Fresno, CA)

KMTV-TV CBS-3 (Omaha, NE)

KNDO-TV NBC-3 (Yakima, WA)

KNDU-TV NBC (Kennewick, WA)

KNOE-TV CBS-8 (Monroe, LA)

KOAM-TV CBS-7 (Pittsburg, KS)

KOLD CBS-13 (Tucson, AZ)

KOTA ABC-3 (Rapid City, SD)

KOTV-TV CBS-6 (Tulsa, OK)

KPLC NBC-7 (Lake Charles-Lafayette, LA)

KPTH-TV FOX-44 (Dakota Dunes, SD)

KPTM-TV FOX-42 (Omaha, NE)

KQCW CW-12/19 (Tulsa, OK)

KRHD-TV ABC-40 (Bryan-College Station, TX)

KSAW-TV ABC-51 (Twin Falls, ID)

KSFY-TV ABC-13 (Sioux Falls, SD)

KSLA CBS-12 (Shreveport, LA)

KSTC-TV IND-45 (Saint Paul, MN)

KSTP-TV ABC-5 (Saint Paul, MN)

KSWO-TV ABC-7 (Lawton, OK)

KSWT-TV CBS-13 (Yuma, AZ)

KTEN NBC-10 (Denison, TX)


KTIV NBC-4 (Sioux City, IA)

KTNV-TV ABC-13 (Las Vegas, NV)

KTRE ABC-9 (Lufkin, TX)

KTRV-TV FOX-12 (Nampa, ID)

KTTC NBC-10 (Rochester, MN)

KTUL-TV ABC-8 (Tulsa, OK)

KTVG-TV FOX-17 / KSNB-TV FOX-4 (Kearney, NE)

KTVN-TV CBS-2 (Reno, NV)

KUAM-TV NBC-8 / CBS-11 (Hagatna, Guam)

KUSI-TV IND-51 (San Diego, CA)

KWES-TV NBC-9 (Midland, TX)

KWQC NBC-6 (Davenport, IA)

KWTV-TV CBS-9 (Oklahoma City, OK)

KWWL-TV NBC-7 (Waterloo, IA)

KXLT FOX-47 (Rochester, MN)

KXVO-TV CW-15 (Omaha, NE)

KXXV-TV ABC-25 (Waco, TX)

KYTX CBS-19 (Tyler, TX)

Los Angeles Business from bizjournals

Mega News Network: Art

Mega News Network: Music

Memphis Business Journal

Minneapolis / St. Paul Business Journal

Movie Industry Today

Music Industry Today

Nashville Business Journal

NebraskaTV (Kearney, NE)

New Mexico Business Weekly

News Blaze

Orlando Business Journal

Pacific Business News

Philadelphia Business Journal

Pittsburgh Business Times

Portland Business Journal

Press-Enterprise

PublicityInsider.com

Puerto Rico News Time

Puget Sound Business Journal

Resource Nation

Sacramento Business Journal

San Antonio Business Journal

San Jose Business Journal

SMPR, Inc.

South Florida Business Journal

St. Louis Business Journal

SYS-CON Media

Tampa Bay Business Journal

tapServ.com

TechNewsWorld

TraderTrainingSchool.com

Triangle Business Journal

ValueNotes.com (India)

WAFB CBS-9 (Baton Rouge, LA)

WAFF NBC-48 (Huntsville, AL)

WALB NBC-10 (Albany, GA)

WAND-TV NBC-17 (Decatur, IL)

WAOW-TV ABC-9 / WYOW-TV CW-34 (Wausau, WI)

Washington Business Journal

WAVE NBC-3 (Louisville, KY)

WBAY ABC-2 (Green Bay, WI)

WBCB-TV CW-21 (Youngstown, OH)

WBMA-TV ABC-33 / ABC-40 (Birmingham, AL)

WBOC CBS-16 (Salisbury, MD)

WBRC-TV FOX-6 MyFox Birmingham (Birmingham, AL)

WBTV CBS-3 (Charlotte, NC)

WCAX CBS-3 (Burlington, VT)

WCIV-TV ABC-4 (Charleston, SC)

WCSC CBS-5 (Charleston, SC)

WCWG-TV CW-20 (Greensboro, NC)

WDAM NBC-7 (Hattiesburg-Laurel, MS)

Webindia123.com

WECT NBC-6 (Wilmington, NC)

WEHT-TV ABC-25 (Evansville, IN)

WFFF-TV FOX-44 (Colchester, VT)

WFIE NBC-14 (Evansville, IN)

WFLX FOX-29 (West Palm Beach, FL)

WFMJ-TV NBC-21 (Youngstown, OH)

FMZ-TV Channel 69 Allentown, PA

WFTX-TV FOX-4 (Cape Coral, FL)

WFXG-TV FOX-54 (Augusta, GA)

WGBA NBC-26 (Green Bay, WI)

WGEM-TV NBC-10 (Quincy, IL)

WGFL-TV CBS-4 (Gainesville, FL)

WGGB-TV FOX-6 / ABC-40 (Springfield, MA)

WHBF CBS-4 (Rock Island, IL)

WHTM-TV ABC-27 (Harrisburg, PA)

Wichita Business Journal

WISTV NBC-10 (Columbia, SC)

WKBT-TV CBS-8 (La Crosse, WI)

WKOW-TV ABC-27 (Madison, WI)

WKRN ABC-2 (Nashville, TN)


WLBT NBC-3 (Jackson, MS)

WLNE-TV ABC-6 (Providence, RI)

WLNS CBS-6 (Lansing, MI)

WLOX ABC-13 (Biloxi, MS)

WMBF NBC-32 (Myrtle Beach, SC)

WMC NBC-5 (Memphis, TN)

WOI ABC-5 (West Des Moines, IA)

WOIO CBS-19 (Cleveland, OH)

Worldnews

WQOW-TV ABC-18 (Eau Claire, WI)

WRCB-TV NBC-3 (Chattanooga, TN)

WREX-TV NBC-13 (Rockford, IL)

WRIC ABC-8 (Richmond, VA)

WSET-TV ABC-13 (Lynchburg, VA)

WSFA NBC-12 (Montgomery, AL)

WSFX-TV FOX-26 (Wilmington, NC)

WSJV-TV FOX-28 (South Bend, IN)

WSYM-TV FOX-47 (Lansing, MI)

WTEN ABC-10 (Albany, NY)

WTHR NBC-13 (Indianapolis, IN)

WTNZ FOX-43 (Knoxville, TN)

WTOC CBS-11 (Savannah, GA)

WTOL CBS-11 (Toledo, OH)

WTVF-TV CBS-5 (Nashville, TN)

WTVM ABC-9 (Columbus, GA)

WUPV-TV CW-65 (Ashland, VA)

WVNY-TV ABC-22 (Colchester, VT)

WVVA NBC-6 (Bluefield, WV)


WWBT NBC-12 (Richmond, VA)

WXIX FOX-19 (Cincinnati, OH)

WXOW ABC-19 (La Crosse, WI)

WXTX-TV FOX-54 (Columbus, GA)

WXVT-TV CBS-15 (Greenville, MS)

Yahoo! Music News

Thursday, January 06, 2011

US Department of Homeland Security security error (FUNNY)

This is far too ironic to keep to myself.  I went to log onto the goes account at dhs.gov and got the following error in Chrome.  ROTFL!!!

Building an Android Mobile RSS Reader in 30 Minutes - Part 2 (Video)

This is part 2 of the tutorial to build a Slashdot RSS Android Application. The entire source code is available as well as the application.  In part two you will learn the architectural perils of mobile development plus how to mitigate them to save CPU and bandwidth as well as some best practices to satisfy your end users.


The source code for the project is available here: SlashdotRSS.fxp
The Slashdot.apk (Android installer package) is here: SlashdotRSS.apk


The topic chosen was how to read an RSS feed from Slashdot.org and display the list on a mobile device, then retrieve specific RSS items when the user makes a selection.


Building an Android Mobile RSS Reader in 30 Minutes - Part 2 from Technoracle on Vimeo.

Wednesday, January 05, 2011

Slashdot RSS Android app on marketplace

Over the break I got to devote some time to coding and finished the Slashdot RSS application.  The application is now on the Android market and a full description can be found here (or just download and install it to your device).

This is a free, open source application that monitors the RSS feed from slashdot.org. Anyone may take the source code and do with it what they wish. Video tutorial available at http://technoracle.blogspot.com/2010/12/mobile-slashdot-rss-reader-tutorial.html


The source code for the project is available here: SlashdotRSS.fxp
The Slashdot.apk (Android installer package) is here: SlashdotRSS.apk

A complete video tutorial and written course will be published shortly.

   

Thursday, December 23, 2010

A Couple of Hacks for Mobile Flex Development

The new Flex Hero 4.5 SDK has great features and the architecture for mobile applications is very cool.  Working with it over the last few months has also taught me a couple of coding hacks to share.  First let's look at how it works.

A Flex Mobile application is composed of a minimum of three files.  The first is the main entry point into the application, which has two main content areas.  The top content area (shown below in green) may contain three content areas.  These are Navigation content, Title content, and Action content. Note that these are optional and some applications might use different navigation schemes such as creating a Vector of Spark Navigators.


The gray area below the title is the main content area of an application.  This is controlled by the navigator(s).



When you set up a new Mobile application, the minimum three files are the main entry point, the first default Home or First View, and the Application Descriptor. The descriptor file has the same basic purpose as in previous versions of AIR except it has been extended to declare Android manifests and other items.  The graphic below depicts a larger project and shows some of the main components of a mobile application.


When you launch a mobile Flex application, the first view may be declared within the entry point to the application.  In the example above, MobileFileBrowser.mxml has a single declaration that points to MobileFlexBrowserHome.mxml.   This is declared in line 5 of Code Sample 1 below.

Code Sample 1

Line 6 shows a great trick.  Mobile applications may take a while to initialize and providing user feedback during that time is sometimes useful.  The splashScreenImage shows up when the application launches to let the user know the app is initializing.

Now let's take a deeper look at how the navigation works.  Below is a screenshot of the Mobile Slashdot RSS reader I am working on.  The first half of the tutorial to build it and the source code are available at http://technoracle.blogspot.com/2010/12/mobile-slashdot-rss-reader-tutorial.html. Note that the current code base has some need for optimization.


The Home view in this case contains a list and has a service call linked to it to reach out and grab an RSS feed from slashdot.org.  The service call (getData()) is initiated on an event called "viewActivate", which is fired when as the view becomes active.  When a user gets this view, they may select an item from the list and the view navigator will then pass the data object to a new view and instantiate the new view.  In this example, the RSS item is passed and details are shown in the new view.  If the user wishes to navigate backwards, they simply use the back button.  The code for this is written as pushView(View, Data) and popView().  

Here is an important tip! Consider what happens in a mobile scenario when the user examines several different RSS items and navigates backwards to the main list.  When the new view is active, the old view does not persist by default so a new service call must be performed every time the list view is shown.  If you link your service call up to the viewActive event as shown below on line 5 of Code Sample 2, your application will make the service call each time the view becomes active.

Code Sample 2


Needless to state, in many situations, this is architecturally really bad as it will eat up both bandwidth and battery/CPU life.  Luckily, this problem can be rectified with a single declaration.  The better way is to not call the service based on a viewActivate event and instead allow the user to trigger it with a button or use the applicationInitialize event.  Once you do this, you can simply add the declaration that the destructionPolicy is none as shown below in line 7 of the code snippet. If you download the current source code from part one of this tutorial, note that this has not yet been done and is being slated for part 2.


Code Sample 3


Now let's consider another way you can allow users to navigate through your application.  The Slashdot RSS reader application has an information view.  To access the information view, the call is made directly from the action content area.



When the user clicks the information icon, a call is made through the navigator.activeView object as shown in code samples 4 (below) and 2 above.

Code Sample 4


Note that on line 29 of code sample 4, the call is made to the public function on line 19 of code sample 2.  This function only requests that the navigator push the information view, in this case with no accompanying data.  Since the information view will also have the info icon in the parent container, it too must contain the showInfo() function or an error will be thrown.   If you wrote the function exactly the same as in the other views, it could lead to a recursive problem.  If the user keeps hitting the information icon, new info views get created and activated.  If the user hits the icon 25 times, they would have to hit the back button 25 times to return.

There are two ways to keep the view from being pushed more than once.  On line 10 of the code sample below is the function that gets called when a user clicks on the information icon.  Line 12 sets up a regular expression that will detect if the current view is the "InfoView".

Code Sample 5

Note that there is a "\d*" within the regular expression.  If you add a line of code to trace the name of the currently active view,  the console will show that the runtime appends some numbers to the end of the name as shown below.


Essentially the regular expression can detect if the activeView is already the InfoView and prevent it from creating another instance of itself.

The problem with this approach is that over time it becomes unmanageable.  A far better way to prevent this is to simply make the showInfo() function in the information view do nothing as shown on lines 8-11 of Code Sample 6 below.  Note that if you do not have the showInfo function in the info view, an error will be thrown when the user hits the icon.

Code Sample 6

This is a far better way to handle the problem.

Well, that is all for now.    A video tutorial will be out shortly to summarize some of these lessons and the source code for the RSS Reader will also be released.

Happy Holidays everyone!

Tuesday, December 21, 2010

My favorite 5 Slashdot Comments of 2010

I post a lot of stuff on Slashdot.org.  Here are some of my favorites:

1. http://slashdot.org/comments.pl?sid=1827706&cid=33945232

I guess people are worried that our state of the art igloo geometric designs, dogsled aerodymanics and maple syrup chemistry are in danger if poltical decisions are made without the benefit of science. Luckily there are only 78 of us in the whole country. We can probably sort it out in about a fortnight over a few Molson's beers while watching ice hockey. duane "Who won the damn gold medals at the last Olympics anyways?"
--
"Question everything, including this!" - http://technoracle.blogspot.com/

2. http://slashdot.org/comments.pl?sid=1788824&cid=33599702

Because there are lots of us who work at Adobe who have been very vocal internally about ensuring that Linux is a first class O/S and released at the same time as the other O/S's. That is why Linux is getting the 64 bit Flash Player. More and more of us are using Ubuntu and RHEL on the server (our enterprise ESB uses RHEL/(WebSphere || Weblogic || JBoss) as a reference implementation!). Now if we could only talk our bosses into CS5 for Linux.....

3. http://slashdot.org/comments.pl?sid=1694512&cid=32656498

On Flash and having a Choice:

You could say you are also forced to use a browser then. You have a choice. If you want to see certain sites in their entirety, you can choose flash. If you want to experience only the text, use wget. If you want to see something in between, use a browser. your choice. There are still some old guys who don't even like to load images and only read the alt text. Can't make everyone happy so giving people choice is the only path we can take.

4. http://slashdot.org/comments.pl?sid=1606598&cid=31724840

130 mb of ram while sitting idle? Then it's perfect for windoze and osx.... So what are the alternatives for *nix users now? dn grep this: s/$your_beliefs/$common_sense/i;

5. http://slashdot.org/comments.pl?sid=1575150&cid=31404260

you are right. The way Flash (the swf format only, not the whole platform) was written circa 2003, it wasn't optimized to go to mobile devices. There were some issues and technical hurdles to get around. Some of them were simple (like stopping FP instances that are not in the visible part of the screen) or simply reducing the frame rates of flash applications that are using battery power when they are not in focus). Some required much more thinking such as form fields receiving focus when the tab is hit from an HTML form element above a flash form element). To scale to mobile was a challenge which has been met with the Flash PLayer 10.1. The Google Nexus 1 phone (which I own) does a great job of running the full version of Flash (not Flash Lite). The FP 10.1 has *huge* technical improvements from previous versions Adobe is full on excited about HTML 5 too. There are some really cool possibilities about using HTML 5 features side by side with Flash. Serge Jespers did a great job of showing this on his blog late last week: http://www.webkitchen.be/2010/03/05/the-html5-flash-marriage-geolocation/ [webkitchen.be] The fact is that HTML being updated is not something everyone asked for, but in it's execution, there are some obvious features that I am glad to see such as the Video element. I do share some concerns about how more advanced API's get implemented (such as the document.evaluate(); API) for complex XSLT processing but hope the industry will figure it out. DN

"Any technology can be used for good or for evil. The only question is how you decide to use your coding time in between "
- Gandalf

Saturday, December 18, 2010

1001 Gifts for all of you

This year my family and I decided to give gifts of hope and inspiration for the holidays.  We  donated $1001 towards educating, feeding and helping entire villages become self sustaining via http://www.plancanada.ca.  This donation is made in the names of you, our friends and family and those who have inspired us over the years to think beyond what we need ourselves.

The gifts include a variety of items including mango trees, education materials, lifestock and home birthing kits.

Our only ask is that if you were planning on sending us a card, please use the money and effort, no matter how minute, to help those less fortunate instead.  We have everything we need and are truly blessed!

Merry Christmas, Happy Holidays everyone and thank you!

Wednesday, December 15, 2010

Mobile Slashdot RSS Reader Tutorial - Free Source Code

NOTE:  This is Part 1 of a two part series.  Part two is now posted here: http://technoracle.blogspot.com/2011/01/this-is-part-2-of-tutorial-to-build.html

This post will sum up a new AIR for Android tutorial I have been working on.  The video will explain everything (will be posted shortly).    The project is an RSS reader for Android mobile devices.  I chose Slashdot (News for Nerds. Stuff that Matters!) and used their RSS feed from this URL.  The end result was a functioning mobile application that installed and worked on both the Google Nexus One phone and the Samsung Galaxy Tab.  There are some lessons to be learned though as you will see from the video.


Building an Android Mobile RSS Reader in 30 Minutes from Technoracle on Vimeo.

The source code for the project is available here: SlashdotRSS.fxp
The Slashdot.apk (Android installer package) is here: SlashdotRSS.apk

Here are some screenshots.  I plan to upload a complete tutorial soon!

   

Here are some of the source code views:

Tuesday, December 07, 2010

Adobe molehill 3D APIs - real 3D!

I've been asked a lot lately about the Molehill project. "Molehill" is an internal Adobe code name for a set of low-level, GPU-accelerated 3D APIs we announced at MAX 2010 (another reason never to miss Adobe MAX)!   The new Molehill APIs enable advanced 3D experiences across screens through the Flash runtimes and allow developers to leverage GPU hardware acceleration for significant performance gains. 


How it works today in Flash Player 10.1


Flash Player 10.1 renders thousands of non z-buffered triangles at approximately 30 Hz.  For true 3D, z-buffering is required.  This refers to the management of image depth coordinates in three-dimensional (3-D) graphics models.  It is very difficult to accomplish in real time due to the immense processing power required.  Unlike X and Y coordinates where there is a physical boundary, Z coordinates can extend infinitely, although the range of human eye perception is somewhat limited.


You can spoof 3D effects today using the Flex attributes "rotationX, rotationY and rotationZ".  Here is a project I made using a simple photo that moves it in 3 axis based on user input.  This is not true 3D however.



The source code for this project:






The Adobe website on Molehill states: "With the new 3D APIs, developers can expect hundreds of thousands of z-buffered triangles to be rendered at HD resolution in full screen at around 60 Hz. Using the new 3D APIs in Flash Player and AIR will make it possible to deliver sophisticated 3D experiences across almost every computer and device connected to the Internet.


The 3D capabilities enabled by the new APIs will also be available to the broader developer community through popular ActionScript® 3D frameworks, such as Alternativa3D, Away3d, Flare3D, Sophie3D or Yogurt3D."


Probably the single best description is from Thibault's video embedded below.  I cannot wait to get my hands on the technology!



http://tv.adobe.com/watch/adc-presents/molehill-3d-apis

Monday, December 06, 2010

Generating a PKCS12 certificate for Android Market

I've been writing several Android applications lately (Video,   Scribbler,  FileBrowser) with the Flash Builder 4.5 (Burrito) preview release.  During the process of uploading one *.apk file I can across an error within the Android Market form.  Well, it wasn't a real error per se, more or less an oversight from me.  The error stated:


"Market requires that the certificate used to sign the apk be valid until at least October 22, 2033. Create a new certificate."






This is a requirement which I had overlooked.  By default, creating a certificate via Flash Builder (File > Export > Release Build) will not work as it is not valid for the length required by the Android Marketplace.  


I set out to make a proper certificate however there was not a lot of very current information available.  After a lot of searching, I found the answer right in front of me.  Using the AIR 2.5 SDK, you can create a self signed certificate using the line command tool.  If you have the same issue, follow these instructions:



  1. If not done already, download and save the Adobe AIR 2.5 SDK from http://www.adobe.com/products/air/sdk/

  2. With a line command tool, navigate to the /bin directory.

  3. Copy and paste the following command, replacing the values in braces with your own values.
    ./adt -certificate -cn (duaneallannickull) -ou (adobesystems) -o (sharkwithfrigginglaserbeamsinc) -c (CA) -validityPeriod 25 2048-RSA (./androidsigner.p12) (password)
  4. The country code must be in upper case characters and correspond to an ISO country code. For example, this is what I entered to create mine:

    ./adt -certificate -cn duaneallannickull -ou adobesystems -o sharkwithfrigginglaserbeamsinc -c CA -validityPeriod 25 2048-RSA ./androidsigner.p12 password

  5. Now enter the command "dir" (Windows) or "ls" (Linux || Unix) and you should see your certificate.  A screenshot is below. 

That's pretty much it.  You can use this to sign your applications in a variety of ways, depending on which development tools you use.  For Adobe Flash Builder 4.5, you can reference this certificate during the release process as shown below.

Thursday, December 02, 2010

Video Article - Comparing AIR for Android Development Processes

Yesterday I made a post about my experiences with the new Flash Builder 4.5 and 4.1 IDEs while developing mobile applications. Today, we follow this up with a video to illustrate some of the key points you'll need to get started.



Flash Builder 4.5 download

FileBrowser.fxp (Flash Builder 4.01/AIR 2.5 SDK project - 76 kb)
FileBrowser.apk (Android Package - 1.02 MB)
Installed application size = 1.02 MB (without graphics, icons, splash images etc)

MobileFileBrowser.fxp (Flash Builder 4.5 project - 840 kb)
MobileFileBrowser.apk (Android Package -1.78 MB)
Installed application size = 768 kb (with graphics, icons, splash images etc)

Have fun!

Wednesday, December 01, 2010

Mobile Development with Flash Builder (Tutorial and Source Code)


Today I am releasing a set of two applications, one built using the Flex 4.1 SDK and one built using the Flex 4.5 SDK (Burrito version of Flash Builder using the "Hero" framework).  Although the base application is essentially the same, the differences are astounding in terms of development ease and performance. 

The project itself is a simple project to demonstrate how to read/write to a file system.  The application is named LetMeC (“let me see”).   The screenshot below is of the application built using Flash Builder 4.01 overlaid with the AIR 2.5 SDK.  This one uses the FileSystemDataGrid component and has several helper classes.  The source code for the AIR 2.5 project is available here: 

FileBrowser.fxp (Flash Builder 4.01/AIR 2.5 SDK project - 76 kb)
FileBrowser.apk (Android Package - 1.02 MB)
Installed application size = 1.02 MB (without graphics, icons, splash images etc)



This second screenshot (below) is basically the same application written using the Flash Builder 4.5 Burrito preview.  This application is open and you can use it or install it on your device:

MobileFileBrowser.fxp (Flash Builder 4.5 project - 840 kb)
MobileFileBrowser.apk (Android Package -1.78 MB)
Installed application size = 768 kb (with graphics, icons, splash images etc)



Note that the installed sizes of the applications vary.  The first one is larger even though I never used any graphics for icons, splash screens or other bits.  The Flash Builder 4.5 Burrito application has a larger installer, however on the Google Nexus 1 disk, the installed application is only 768 kb, of which roughly 398 kb is images alone coupled with 230 kb of icons!  The Hero framework rocks! Here is a screenshot.




The differences in development are vast and I am definitely favoring the direction Adobe is running towards with respect to the Hero framework.  Mobile development in Flash Builder 4.5 is much easier.  For starters, there is a notion of "views" and features such as screen orientation are supported.  The first thing you will notice is that the list of components is greatly reduced.  The version of this I built using 4.1 used the component.  This component by itself is very heavy weight (it is still MX or Halo qualified, not Spark).  The scroll bars are difficult to use as the hit area on a touch screen is very small.  Also the orientation is something you have to do manually if you want your application to resize and reorient when the phone is tilted.

One item that works well on PC, Mac, and Linux is AIR’s “openWithDefaultApplication()” method.  No such luck on Android as the architecture uses a notion of “intents”.   It is easy to write code to access the functionality rather than accessing the notion of a "file".  One line of code will open up an SMS, URL, or even phone someone.  As the code samples from James Ward illustrate below:



Last thoughts?  I am now addicted to mobile development!  Adobe Flash Builder 4.5 rocks (even though it is a preview and somewhat "beta").  The most beautiful thing is that I can use 95% of my code for a desktop application too.

Try it for yourself.  Download the Flash Builder 4.5 preview from http://labs.adobe.com

I will post a video of this whole process very shortly on this blog.

Peace, love and may your code compile on the first try!

Thursday, November 25, 2010

Closing Thoughts from Infonex Social Media for Public Sector

Infonex only recently asked me to chair the event in Ottawa this week; however, I am very glad I had the opportunity to do so.  A special shout out to Philippe Renoir (@philipperenoir) who jumped in to co-chair the event.  Almost every speaker had a good message or some important lessons to impart.

Some items that distinguish Social Media from regular media:

Reach
- enables anyone to reach a global audience (potentially for free).
Accessibility – industrial media typically owned privately; social media tools are generally available to anyone at little or no cost.
Bi-directional – Conversation rather than publish pattern. Synchronous vs. Asynchronous!
Usability - industrial media production typically requires specialized skills. Most social media sites do not. Some define new skills, so anyone can operate the means of production.
Concurrency/Speed - the time lag by conventional media = long. Social media is virtually instantaneous responses; participants determine any delay in response).
Mutability - industrial media, once created, cannot be changed easily, whereas social media can be altered almost instantaneously by comments or editing. Newspapers are technically out of date the moment they leave the press and any notes scribbled on them are not seen by all readers.
Uncontrollable – no central point of control.
Measurable - unlike normal media you can determine who has spent time ingesting your message (not true for all forms of media)

Here is a quick summary of some of the messages I heard about public sector social media:

  1. Look before you leap: Before starting on a social media project, take the time to understand what you are getting into.  Use experience (yes - consultants) if required.
  2. Realize that is it better to be part of the conversation than being defined by it! Some people had issues with risk adverse managers who insisted that somehow the conversations in social media being negative to them are not happening.  Be part of the conversation and help your community.
  3. Determine whose voice you are talking with.  Are you talking for your department in an official capacity or are you a person who is sharing personal experiences?
  4. Conduct you social media campaigns with a strong ethics policy.  Identify yourself if commenting on a subject you are part of.  Disclose conflicts of interest. Be authentic (thanks @philipperenoir!)
  5. Be accountable.  Set a clear and consistent policy for communications and ensure it is regularly reviewed.  This also prevents potential issues if employees are dismissed for non-adherence.
  6. Ensure everyone in your government department buys in.  Make sure they have knowledge of the policy mentioned above and have a chance to provide input.
  7. Have clear, concise goals and metrics to judge your goals.  Understand what you are attempting to do and use the social media networks wisely.
  8. Don’t build it yourself!  Your chances of attracting a critical mass on your own platform are probably fairly small.  Using existing platforms is likely a better path (if possible).
  9. Start with baby steps.  Small manageable projects to start with will probably have better results.
  10. Don’t try to control social media!  You cannot and trying to do so will be like pouring gasoline on a fire.

All these are of course nonexclusive and perceived with my own filter!  Your actual mileage may vary.  Please comment if I missed something.

Time to fly back to snowy Vancouver!


Monday, November 22, 2010

Adobe in the Enterprise, HTML5 and LiveCycle ES

This is an interview I did in Los Angeles during the Adobe MAX event.  From the description:

"In this interview, we cover a wide range of topics with Adobe's Duane Nickull during the Adobe MAX 2010 conference.  Nickull looks at the state of the mobile web, HTML5 and it's role at Adobe, Flash Builder and the ease of deployment to multiple form factors, PDFs and their growing utility for the enterprise, and Adobe's involvement in cloud technology."

Monday, November 15, 2010

Free Android App with source code

James Ward and I collaborated and wrote a simple demo app called "Scribbler".  It demonstrates some really simple concepts such as detecting screen capture and saving to the local file system on Android.  This application is a regular Flex applications that uses standard Flex 4 components (Not the new Hero/Slider framework) hence demonstrating that in some cases you can use MXML to build mobile apps.    The application is available now on the Google Android Marketplace.  We made this lame icon with "Sp" based on an indecisive moment of what to call the damn app.  If you end up having to explain it to someone say SP stands for "Sribbler Pad".



The full source code is downloadable from here.  Have fun with it!  Please tweet this (button is below) if you think others might like it.  More to follow if we are encouraged properly!