Https on Apache Tomcat 5.5

I tried to play around with Flex Data Services today. So I downloaded the package and went through the install. Now since I already have an instance of Apache Tomcat 5.5 running on my laptop I was less than inclined to install JRun. So I installed the non-JRun package and deployed the FDS WARs. I ran the the collaborative dashboard example and things looked good. The other application I had been eyeing for a while was the NoteTag example application written by Adobe. For the uninitiated, NoteTag is a collaborative note taking application. The coolest part of NoteTag is that it doesnt have a backend database but rather uses Blogger, TypePad and Del.icio.us to store the data. However since these services require authentication over SSL, I had to install a security certificate on my Tomcat instance.

So here is how I went about it. First of all, the SSL key generator is part of the core JDK as of Java 1.4. The keytool is available at %JAVA_HOME%binkeytool.exe. Run it as specified at the Apache Tomcat tutorial site:

keytool -genkey -alias tomcat -keyalg RSA

The tool asks a series of questions like name, address etc to write the keystore. Once the key is written, move it to where tomcat can access it in the Catalina directory. Lastly uncomment the HTTPS connector and add the following attributes:

keystoreFile=”tomcat.keystore”
keystorePass=””

Ta..daaa…https!!

I still havent managed to run NoteTag (I am getting connection errors) but thats a battle for tomorrow. Right now I need to go to sleep.

HOLY SH** !!!! WE WON !!!!!

OMG OMG OMG.

We WON!!!

flashforward_5023700286_o

The Fan won the People’s choice award from among 60 other applications. I gave a stuttering speech when I accepted the orange arrow.
Of course most of the kudos go to the design and the interaction gurus but I’d like to think development has had something to do with it as well :D.

Weirdly, this completes my Flash Forward experience. I first went to FF 3 years back as a volunteer, then as a regular attendee once I had a full time job….then as a speaker on architecting Flash applications for enterprise applications and finally this year as a nominee and winner !!!!

Onward to MAX ;).

More notes, Day 2, FF Austin

XD Talk:
Better looking evolution of Mike Chamber’s ApolloTunes, now renamed to Acsension. Neat design for the xd group: XD bold and joined to look like a bomb.

——————————
Browser Power for Flash
1) Loading a valid xhtml file as an xml file. (I think its a better idea than ripple but I need to look more at Ted Patrick’s FXT to compare with that)
2) To ‘hide’ the javascript parts of the HTML document surround the js in comment tags within the script block.

3) idMap[id] in the XML Object in Flash 8 returns the node with the id referenced.

————————–
From the Yahoo AS2 – AS3 migration talk:

1) Do not put code in constructors of classes since they arent JIT-ed.
2) NetConnection you can change objectEncoding to AMF0 or AMF3 to send data in AMF format.
3) The ‘delete’ keyword deletes only dynamic properties and methods.

————————————–
From the FlexBuilder talk:
Eclipse editor shortcuts : Ctrl+Shift+L

————————————–
From Grant Skinners talk on Resource Management in AS3.

AS3 doesnt garbage collect until it starts running out of memory.
Use weak references when adding listeners.
Have explicit dispose functions in your classes.

Blogging from Flash Forward, Austin

Am at the Flash Forward Conference at Austin. Has been fun so far even though I am really tired. I attended a few useful sessions so far one of which I am not allowed to speak about ;). I think the most educational session has been the one on the Flex component life-cycle by Chafic Kazoun. I have been reading about it but its different when someone walks you through the code of a custom component. Quick notes from the talk:

1) Lifecycle: constructor -> createChildren -> commitProperties ->measure -> updateDisplaylist.
2) The constructor and the createChildren is called only once.
3) Invalidation: invalidateProperties, invalidateSize, invalidateDisplaylist each calls a corresponding commit event to be fired from Flex.
4) Embedding swfs and ripping symbols from the library: [Embed(source=”/assets/source.swf” symbol=”[symbol_linkage]”]
5) I have never used the BitmapAsset class. Need to look at what that is.
6) In the updateDisplayList call [instance].move(x,y) rather than [instance].x = [value] since move fires additional functions that let flex layout stuff correctly.
7) Measure doesnt get called if width,height are declared explicitly.
8) You can access unscaledwidth, unscaledHeight in the updateDisplaylist functions to layout your stuff. Call the children’s setActualSize function accordingly.

Another tip from a different talk:
[Flash8] CacheAsBitmap your masker and maskee to get smooth 8bit alphas.

Thats it so far. More stuff as it happens.

Next Gen Apps: Really Good or RRRReally Bad !

I installed MAX today, a new app running on the WPF RC1 runtime, mostly cos of the hype I read on a few blogs. Is it great? Well I dont know. Its…different. A lot of things glow. A lot of things have drop shadows. There are some tweens. But is that what I am looking for in an app that manages my photos and my blogs? Its kind of hard for me to say this but I dread the new world of ‘cinematic apps’. Why? Cos its so easy to get them wrong. The biggest complaint against Flash used to be that every Flash site had to be learnt. The newer sites seem to be doing a better job of information architecture but thats come after years of learning from bad apps. And now the desktop is open to similar abuse with application developers flexing their new-found freedom from traditional controls.

WPF’s prize demo is the Northface application that shows users videos overlayed on 3d planes and videos overlayed on video. I am completely blah’ed by it and couldnt care less. Nor do I care about the photos rotating 360 degrees before coming into view. Actually for a desktop app, I cant think of any place I would use 3d anyway. I still want Flash to come up with native 3d but thats cos I would like to make a game or some interesting new UI for a site but I dont think for an app like an rss browser.

Maybe I lack imagination and maybe I am just getting old (26 years !!…shudder). Maybe I will revisit my fears when some new apps come out. I still think MAX is interesting, but I doubt it’ll replace my RSSOwl

Obligatory Flickr post

Had a few hours (well actually I didnt but I couldn’t but I needed a break from ‘work’ 😉 ), so I decided to refactor some of the code from Flexamp and create a few ‘widgets’ (I am beginning to hate that term by the way). Anyway, I had the basic application out in like 20 minutes but I wanted to see if I could do something a little more fun. So I tried to create a tsunami kind of Flickr photoshow when the images expaned when you rolled over them. So the logic was simple:

  • Load the Flickr Images
  • Populate a Tilelist with the data with a custom itemRenderer
  • In the itemRenderer, on rollover set the Image component’s source to the large image url
  • invalidate the tilelist so that the new image can be drawn larger than irs neighbours

Unfortunately that didnt work and here is why that seems to be:

According to the Flex docs for TileList:

You can set the size of the tiles by using the 
rowHeight  or columnWidth properties. 
Alternatively, Flex measures the item renderer 
for the first item in the dataProvider 
and uses that size for all tiles.

So looks like you cant have a custom tile with different dimensions than the rest of the tiles.
So after two hours I was back where I started from. I’ll try to play around more with it and see if I can do something about it.

The only thing i did learn was that to get to the _root of the application you need to reference it as Application.application

[SWF] /blog/swf/flickr.swf, 450, 475 [/SWF]

PS: The Search Button seems to require clicking twice. Not sure why.

Flickr changes bust Flexamp and other Flash apps

Flickr changed the crossdomain file on their servers a few days back breaking Flash applications across the www. The flickr crossdomain file at http://www.flickr.com has been removed and Flash developers have been asked to point their applications to api.flickr.com. Unfortunately I missed the news and so far the last few days, related media has not been working. Hopefully I’ll get down to recompiling it soon. I looked around the many Flex apps using Flickr and most havent updated their apps.
In other news I have also started a new page to point to Flex links I have found on the web. I keep jumping from computer to computer and am not completely in love with del.icio.us (mostly because of the UI …. I wish it looked more like popurls basically one big page of links) so it seemed like a good idea.
I still havent had too much time to put up source code for tutorials and stuff but hopefully that’ll come soon.