It’s become part of the nomenclature to call Flex coders “Development RockStars”. At the Simplified Logic booth this year, we decided to just go with it and hand out RockStar sunglasses for swag.
The 360|Flex event in San Jose was a success in my book. I manned the Simplified Logic booth most of the time, but I did find some time to go to some great sessions. I learned many tips and tricks that I could apply to my own development efforts.
My session on Encrypting Flex was fairly well attended. There were lots of good questions from the audience. I probably could have done a better job preparing for my talk, but I’ll wait until the comments come back from the surveys to flagellate myself over that too much.
Without further ado, here are the materials from my presentation. The audio will have to wait until my presentation gets uploaded to the Adobe Media Player RSS Feed.
Encrypting Flex, Protecting Revenue, and Making Cash (PDF)
flexembeddingexample1 (zip)
flexencryptionexample1 (zip)
flexencryptionexample2 (zip)
flexencryptionexample3 (zip)
I finished up my 360 presentation on Encrypting Flex, Protecting Revenue, and Making Cash yesterday. I’m quite pleased with it. It’s fairly slide-light and demo-heavy which is what I enjoy when going to 360 sessions.
I’m going to be showing a number of different encryption techniques, looking at several obfuscators, and showing what an cairngorm modular app looks like (in development) when each module is encrypted and protected from decompilers. I’ll also go over a couple of techniques to protect your revenue stream from an application, and also a couple of ways you/your company can make additional cash or save time and money (which is pretty much the same as making cash).
If you weren’t quick enough to get tickets, too bad, so sad…All sold out! I believe they’re at least going to have screencam and audio from my talk. If I get ahold of it, I’ll post it here afterward along with my code examples. See you at eBay.
I work as a contractor for Simplified Logic, one of the sponsors of the 360 Flex San Jose event. I’m going to be speaking along with David Bigelow in the presentation entitled Making Money with Flex. At SLI, they use their nitro-lm (license management) product to track and control usage and licensing of an application. It also has notification features so you can get an e-mail when one of your customers maxes out licenses, isn’t using your software for some reason, or any number of other significant events. Another aspect of the software is to protect your code from decompilers using a public/private key encryption algorithm.
Given that there is only limited time to present, what areas do you think we should focus on? The business case stuff, license management and tracking, or a deep-dive into encrypting flex applications?
I’m working on some new types of SWF file encryption to demonstrate at 360 Flex San Jose. If you’ve read my Inside RIA articles, you know that the main technique used by NitroLM to encrypt swf files is to create a wrapper application and load/decrypt the real application using a SWFLoader. The problem with this technique is that it’s a little bit kludgy and adds deployment complexity. It also has some difficulty in AIR in that if you wrap an <mx:Application> inside an AIR app, you won’t be able use some of the Native AIR functionality.
I’ve been dilligently working on a new technique for encrypting modular applications. Basically, you’ll write your flex or AIR app as you normally would and break up functionality into modules loaded by <mx:ModuleLoader>. You could also put pretty much all of your code in a single module if you wanted to. Then, when you’re ready to deploy, just comment out the <mx:ModuleLoader> tags and replace them with <nitrolm:EncryptedModuleLoader> tags.
There’s a few other steps including encrypting the module SWFs with an AIR application called AssetEncrypter, but the process is much more straightforward than the wrapper technique. It’s also much easier for the developer to code because they don’t have to deal with the keys and decryption themselves. All of the complex functionality has been done for you in the <nitrolm:EncryptedModuleLoader>
I’m looking forward to going to 360 Flex San Jose coming up. I attended my first 360 Flex event last year in Seattle. Since then, I’ve been to Atlanta and Milan to their conferences. Looks like a pretty killer speaker lineup again. Get your registration done before they’re sold out.
Well, another 360Flex has come and gone. I must say that this one exceeded my expectations. Going into it, I had the fear that the European event wouldn’t have the same feel or “cool” factor that the US events had going for them. The SLI party was killer. They waaay overbought on the food and alcohol, but Michael Labriola, the crazy Brit guy with the red hair (sorry, I forgot names) and their posse didn’t let it go to waste.
The sessions were good and there was a lot of quality there. Tom and John were cool as always when they put on a 360Flex conference. I’m definitely looking forward to San Jose.
I was sitting here at 360Flex|Milan and I had a conversation with Michael Labriola about DragManagers in AIR. We both lamented that in Flexbuilder 3 beta 2, we were able to use both the NativeDragManager and the DragManager at the same time (albeit it was a bit hacky). In an earlier post, I demonstrated a MonkeyPatch that allowed you to use the Flex DragManager inside a WindowedApplication in AIR. This was great, but you lose the ability to use Native Dragging/Dropping in your AIR app. This evening, I was finally pissed off enough to rewrite the DragManager how I think Adobe SHOULD have done it in the first place. You use the DragManager class for both Native and Flex-based drag/drop and it’ll pretty much figure out which one you wanted to use. If you’re doing manual Native dragging OUT of your app, the doDrag() method has an additional boolean value at the end to specify that it’s supposed to begin a native drag operation. I’m not going to go into a ton of detail on how it was done, but the code is posted below with view-source enabled. DragManager and SystemManager have been MonkeyPatched. It’s been liberally commented, so hopefully you can figure it out. Post a comment if you have trouble with it or it screws up because I missed catching a bug here or there.
Well, my flight has been booked. I’m officially going to 360 Flex in Italy. It was really cool of the 360 Flex conference guys making the first of 3 days free and open to the public. Hopefully it’ll get those people who were on the fence about it to make the trip.
I haven’t worked much on this blog lately because I’m finishing up 3 articles for InsideRIA.com on Encrypting Flex Applications. I’ll post links to them here once they go live.
Since attending 360Flex in Atlanta, I wanted to learn a bit about skinning with Degrafa. For one of my own personal projects, I needed to create some nice scrollbars that would go with my black and purple color scheme. Now keep in mind that I am NOT a designer. Most of my coding experience before learning Flex/AIR centered around backend Java Servlets and other hidden technology. View-Source is enabled if you wanted to see how it’s done. I still don’t know how to get rid of the stupid white box between the two scrollbars. If someone would like to comment and let me know, that’d be great.
