Archive for the Category Adobe

 
 

Advanced Data Visualization – Adobe MAX

For those of you who missed my session at Adobe MAX this year, you can see the recorded session here.    I have included a link to the source code as well at the end of this post.

I would suggest viewing the presentation directly from the Adobe site, as it provides a better user experience.  They did a great job of creating chapters in the timeline so you can skip ahead to relevant sections.

I have also included the source code which you can download from here:

http://www.twgonzalez.com/demos/SourceCode/MAX_2009.zip

Speaking at MAX 2009

For those of you attending Adobe MAX 2009, or wanting a reason to attend, I will be speaking on Advanced Data Visualization and Axiis Monday afternoon Oct 5th at 3:00pm and Tuesday afternoon Oct 6th at 1:30pm.

My Data Visualization MAX Preso now on AdobeTV

 

For those of you who were unable to attend Adobe MAX this year, Adobe was kind enough to record all of the sessions and release them publicly.   My session covered off on Data Visualization with Flex, and was structured as a high level overview, good for beginners to advanced users.  I primarily cover the use of Flex charts, and quickly go through several examples from the basics to more advanced customization.   The preso is relatively quick paced, but should give people a good overview of what options exist within the Flex Chart controls and how you might use them within your projects.

You can see a high-res HD version directly on AdobeTV here.   

MAX 2008 Data Viz Source Files

I just got back from my trip up to San Fran, for Adobe MAX 2008, and I wanted to post the source code for my session on Data Visualization.   My preso was geared to target a broad spectrum of developer levels from beginner to advanced.  I have four code demos that cover off on data structures for charts, data formatting, chart styling/appearance, and chart interaction.   Each demo walks through a progression from simple to advanced concepts and code.   From the session feedback survey feedback I received today, it appears that audience found the presentation helpful and valuable as I had relatively high marks, and few people told me it was one of the better presentations at the conference.   To everyone who attended, thanks for coming, and I hope you got some value out of it.

Here is the link to the source files.

Overall I found the conference as a whole to be a bit of a let down at the content level.  It was great to see all the familiar faces and catch up with people, but I didn’t have the same feeling of excitement that I had last year in Chicago.  It seemed this year that Adobe was doing a lot more product refinement than pushing any real new boundaries.   Flash Catalyst (Thermo) has not really changed (just gotten further along) than what we saw in Chicago last year, and overall the MAX “Sneaks” were rather blah… ActionScript on the server to render HTML… c’mon guys we were doing that kind of stuff with .asp 10 years ago.   I sure hope MAX last year was not the apex of Adobe under the guidance of Bruce Chizen, and that now we are starting a decline.    I also realize that Adobe/Macromedia has pushed so many boundaries over the last couple of years that as a company it is now in a position where it needs it platform technologies to cross the chasm from early adopters to a more mainstream market, which for people like me becomes boring – because I always want to work with new technologies and be that early adopter level.

My speaking schedule at MAX 2008

Monday November 17th is the official start date for Adobe MAX.   I will speaking at several sessions throughout the conference.

On Monday I will be speaking with Juan Sanchez about Degrafa at the 360|MAX unconference.  The presentation will be from 4:00pm to 5:30pm.

Then Monday night at 9:30 I will be doing a Birds of a Feather session with Juan, speaking again about Degrafa.

Wednesday at 3:30pm I will be doing my Flex Data Visualization presentation.  Adobe asked me to do this preso and to try and serve as wide an audience as possible from Flex rookie to advanced Flex developers.  60 minutes is not a lot of time so I will be moving quickly and I have put together 4 new code demos where I walk through code from simple to advanced examples that cover off on  Data Structures, Working with Chart Series, Styling Charts, and Chart Interactivity.   Pretty much everything is focused on Flex charting, versus other components.  I will also be covering off on some of the open source components I have previously released like the DataSet Component, as well as one or two new components I have created that make it easier to customize Flex Charts.

I hope to see you there, and please don’t be shy about introducing yourself if you have read this blog.   MAX is a really fun conference and I am looking forward to it.

 

UPDATE 11/14/2008:  According to the MAX scheduler it says my session is SOLD OUT, but don’t worry if it is like any other MAX event it is first come, first serve – so just be there early.   I also realized the session description is slightly different than the content.  It is hard in 60 minutes to get too in depth about anything, my session will show different techniques for dealing with data, chart appearance and styling, and user interaction within Flex charting.

360 Flex Data Visualization and Dashboard Presentation

At 360 Flex San Jose Adobe (Ted Patrick) recorded all session presentations in HD with sound.  Today they just published my preso.   Unfortunately my laptop was giving me fits and I could never get Keynote to go into “presentation” mode.   Outside of that and a lot of “umm and uhhs” while I was talking the presentation did a pretty good job of presenting the material and giving the community some new MIT code.   You can also see it via Adobe Media Player to get the full rez version.

360 Flex Feedback – Thanks Community

I just got feedback from my 360 Flex session, and I must say it was very pleased to see how many people found the session valuable.  It is always very hard when preparing to present technical information to guess what people already know and what they want to learn.
I spent quite a bit of time polishing code and generating some new stuff that I could share with the community, and the reality is that if this were a billable engagement (the work required to prepare for my preso) it would have been a good size project.  So I was very gratified to see such positive feedback from the community.
I have not done a lot of public speaking, and as such it is something I am trying to learn how to enjoy more and become more effective at.  One of the real challenges I find is how to be engaging and dynamic when discussing detailed technical information.  I tend to be more about “here are the facts” and less about “here I am to entertain you.”  I think there is a happy medium somewhere in the middle that a speaker finds over time, this is something I am striving for.
I look forward to MAX, and even more so the next 360 Flex to have an opportunity to create even more engaging and valuable presentations that I can share with the community.

I will be speaking at MAX 2008

Well, it looks like it is official.  I will be speaking at MAX 2008 this year on Data Visualization with Flex.  I am still working out the final details of the presentation.  When I spoke on the same topic in 2006, I did a detailed walkthrough of building a dashboard.  This year, I think I will change it up a bit and more do some highlights of what is possible with little code tidbits and how-to’s.  I think this might appeal to a wider audience (and potentially shorter attention spans since my session is going to be at 3:30 on Wednesday November 19th, the last day.)
I would love to get some feedback from the community as to what level to target the session.  Should I stick with beginner level material (i.e. here are all the available components and what they do, or go to a more intermediate advanced level?)   Any comments very welcomed, as I still have a couple of weeks to flush out the preso.

Flash Player Bug – Stroking a Corner

It appears there is a known bug in the Flash Player that creates rendering artifacts and uneven results when trying to apply strokes to a corner radius.  Let me outline the situation by having you look at the attached image with three separate rectangles and the associated code for each.
So for the left rectangle we used the code below, and one would expect a nice pretty red rectangle with a smooth black stroke and 6 pixel corner radius, but what we get is a rectangle with 4 uneven corner and these weird rendering artifacts which extend beyond the boundary of the shape.
//Left Rectangle
graphics.lineStyle(1,0,1,false);
graphics.beginFill(0xFF0000,1);
graphics.drawRoundRectComplex(10,10,100,30,6,6,6,6);
For the middle rectangle we set the “pixelHinting” property of the lineStyle to true, and this seems to remove the funky artifacts, but still leaves the different radius on the corners.

//Middle Rectangle
graphics.lineStyle(1,0,1,true);
graphics.drawRoundRectComplex(150,10,100,30,6,6,6,6);
graphics.endFill();
For the right most rectangle it appears we have it drawn correctly, but we were only able to do this by NOT using any line style at all, and instead having to create two rectangles with one nested inside the other.
//Right Rectangle Outer
graphics.lineStyle(0,0,0,false);
graphics.beginFill(0,1);
graphics.drawRoundRectComplex(300,10,100,30,6,6,6,6);
graphics.endFill();
//Right Rectangle Inner
graphics.beginFill(0xFFFFFF,1);
graphics.drawRoundRectComplex(301,11,98,28,5,5,5,5);
graphics.endFill();
So it is obvious to me that the Player is capable of rending this correctly, but it does NOT.  I am not sure if the cause is in some type of sub-pixel interpolation algorithm, or it lies within the “curveTo” code for line strokes where the player might be using some type of cubicBezier algorithm and the control points are too close together to get an accurate curve.
It appears that the Flex team is aware of this issue and thus renders all of its “cornerRadius” borders by applying the same technique I am using above by doing two separate compexRectangle fills.
So apparently Adobe is well aware of this issue, and from what I understand, through unnamed sources, this isn’t even on the radar for the next major release (Flash Player 10.)  I think is a real shame since I believe it really undermines the quality of what can be produced with Flash when you want a high level of detail and your are forced to take a bunch of unnecessary hacks to work around it.

Should Apple purchase Adobe?

I am sure I am not the only one who has posed this question, I know there was lots of conjecture about this a couple of years ago.   But I think the argument is even stronger today.   It appears that Apple is really trying to take advantage of the fiasco that is Windows Vista and is pushing new PC buyers to make the jump to Apple (hey it worked on me)  But, Apple is going to have a tougher going with the developer crowd and the corporate culture.  If Apple ever hopes to jump the chasm and become an integral part of the enterprise they are going to have offer compelling reasons for developers to jump ship as well and write software for Apple.  Right now the only compelling reason for developers to make the switch and write software for Apple is because they become so enthralled with the Apple experience that they want to be part of it (once again, I am guilty as charged) or they are specifically targeting OS X or the iPhone for their offering.
But, as motivated as I am to develop the next great iPhone/OS X app, each and every time I put forth an earnest effort to do so I am struck by how antiquated the development tools, languages, and platforms feel to me.  For a corporate developer who just needs to get the job done and could care less about how sexy something looks/feels they will have even less impetus to make the jump.   One thing that Microsoft did extremely well, although not so much any more, was to practically spoon feed developers with their technologies. It was SOOO easy to pick up a MS technology, not necessarily because they were the best technologies, but because MS invested heavily in providing training materials, live events, practically giving away their software via MSDN, etc.   Now, I see the open source movements doing a better job of this with the robust communities and communication infrastructures that have developed as a result of the internet.
So here I sit at a cross-roads, do I invest the time to develop an application that is specific to Apple either via Objective-C/XCode or via proprietary AJAX for Safari extended WebKit?   Well, either choice seem like several steps backwards from where I am right now.  Currently I develop in Adobe Flex, and while the tooling can stand room for improvement, it is still far ahead of XCode.  But where Flex really shines is the combination of the language and the design patterns it easily supports in combination with the power and ubiquity of the Flash player.  Having to go back and write AJAX code and deal with browser compatibility issues and the lack of robust profiling/tracing tools is just painful.  Once you know how much better it can be, having to go back and use tooling/languages that you were using 8 years ago just hurts.  The XCode/Objective-C road does not appear any better.  Damn Flex and Adobe, if I never went down this path I wouldn’t know any better, and I would be happily struggling with AJAX, HTML5, and excited that I now have a Canvas HTML element that has a graphics context I could draw to. 
 
Okay, back to my original theme for this post, why should Apple purchase Adobe?  If for nothing else, Flash and Flex.  If Apple controlled Flash they could easily put it on the iPhone and still force their lock-in for flash-enabled iPhone apps having to be distributed via their AppStore.  With ActionScript, Flash, and AIR in their back pocket, what they have is  universal development platform that would open the doors to a much wider developer audience. Because a developer knows when they are targeting Flash/AIR they are not only targeting Apple but pretty much any OS/Client.  In the words of Bob Warfield, the friction is greatly reduced. It would also put Apple on practically EVERY desktop because Flash sits on every desktop.   Similar to the logic I used in purchasing a Mac Pro, where I knew worse case I could run Windows natively (but have yet to do so) I would be able to develop for the iPhone/Apple knowing that my application would also work anywhere elese.  Even better, instead of having to learn the ins-and-outs of a new language based on an old development paradigm I would either leverage the knowledge I already have (if I knew Flex) or be investing my time in learning something new, but more powerful and more efficient.
 
But, wait, there is more to this argument outside of my myopic developer/engineer perspective.   Apple is really pushing to deliver software to creative folks, albeit more at the hobby level, but nonetheless what company has the best and most established creative software?  Adobe!!!  If Apple wants to position themselves as the company that creates the hardware, software and distribution channels for creative content (music, video, multi-media, etc.) why not also control and offer the tools to create such content… it would go a long way to reducing the friction in some of these marketplaces, where the creative authors can seamlessly distribute their works via the Apple channel.  This would allow them to target all strata of their verticals that they want to sell into, and these offerings create a self-reinforcing viral effect. This said, I am not sure how comfortable I am with a company like Apple holding such a dominant position in the market based on their historically closed nature.
And this is where I come to why I think it might not work, and that is due to cultural issues between the two companies.  Adobe has been making GREAT strides to become a much more transparent and open company, they are investing heavily in contributing open source code and really seem to be figuring out how to be a good corporate citizen while still turning a profit.  Apple, not so much.  They seem to still cling the old-school closed source mindset, where everything is shrouded in secrecy and tightly controlled.  This does have its advantages, but long term I don’t think it will benefit them.  So what happens when a company like Apple acquires a company like Adobe with the differences in their respective cultures?  I don’t think it would be a very pretty picture and could have the potential to destroy Adobe and the value they bring to the table.  But from a purely mercenary/capitalistic view I think it would still be in Apple’s best interest to do so.
From looking at the Yahoo finance stats today, here are some metrics for both companies.   It would seem with Apple’s cash on hand they have enough resources to make something like this happen (they have almost as much cash on hand as Microsoft) if they were motivated to do so.  
Apple:
Market Cap: $148B
Annual Sales (2007): $24B
Total Cash: $18B
Adobe:
Market Cap: $19B
Annual Sales (2007): $3.1B
Total Cash: $1.57B