Future of ActionScript (via ECMAScript) and language talk

Josh wrote up a nice post on the proposed ECMAScript 4 language. He basically took the 40-page spec and ripped out the juicy parts for all to see.

It’s funny to me the path of languages. Every language evolves over time. This evolution includes supporting functions/classes that are found in older languages. These languages become all the rage, then become old and lose out to newer language upstarts. Those upstarts in turn then take the time to evolve and garner all the functionality of the older languages.

Granted, I’m simplifying things greatly. Sure each language brings something new to the table, lest why would we abandon the old ones to begin with? Things become faster and older concepts can be implemented in cooler, more efficient ways.

The things that I’ve been hearing lately is that horizontal scaling is becoming more important than vertical scaling. Meaning, instead of writing code that uses a processor at 100% for 1 second. You need to learn to write your code so that it can parse that work to 100 processors that take 10 milliseconds each to compute it’s part. That’s why I bought my PS3 last year. If life ever settles down long enough, I hope to be able to learn to how create apps that utilize all the cores in the Cell processor like the Interactive Ray Tracing (IRT) app. This youtube vid shows the IRT in action and visually shows each processor in use. Friggin’ sweet.

Yeah, Flash player is single threaded, but Flash/Flex ain’t everything, right? Plus, Adobe has smart folks. They’ll figure out something to utilize those multi-core processors out there, besides video encoding. 🙂

Building Community Virtually

Tonight I’ll be discussing ways with which to build community virtually. While I am a huge fan of face-to-face meetings, it simply is not always possible. I do a lot of administrative tasks for both Silvafug and 360Conferences virtually. Also, John and I strive hard to build the 360Flex community not only physically (when we have the conferences) but also virtually between conferences. I’ll be talking about how technologies such as blogs, IM, etc. help to accomplish that task.

You can see a more detailed write-up over at Daniel’s Blog. Oh yeah, I forgot to mention one minor detail. The event will take place inside Second Life. I’ll admit that I’m new to Second Life, but am exciting about some of the social opportunities that this new medium presents.

See you there!

New Flex Blog to add to your Favorite Feed Reader

Workday UI Blog at http://workdayui.wordpress.com(feed)

As many of you know, I joined Workday, Inc. back in June. Many people have asked, “Where do you go after eBay?” Well, for this developer, it was a company that’s doing some crazy, exciting things with Flex. Workday is an ERP SaaS company. For our frontend, we use Flex.

The exciting thing is that Workday’s choice of Flex wasn’t on a whim. They specifically chose Flex because of the amazing things that Flex can do that traditional web apps cannot. Here’s our app in a nutshell. It’s a custom built Flex VM built atop of Cairngorm. A UI server sends us a view and a model, which we then render together on the fly. We, the developer, create low-level components that the application makers then use as building blocks for our products. Therefore, the things we do vary greatly from creating a custom component one day, to creating an effect on another or tracking a logic issue in Cairngorm. And I literally do mean day to day as those were my last 3 days. One thing you will never be at Workday is bored.

At eBay, my users were a group of 20. Here, it’s literally the entire company (138 people and still looking for more). I say that on two levels. First, it’s our HCM system. We use our product just like our customers to track employee data. Secondly, our products (HCM, Financials, Payroll, etc.) are built on inhouse tools. Those tools are the exact same system as the final product. There’s nothing more rewarding than walking around the office and seeing YOUR work on EVERY employee’s screen. It’s just awesome to know you empower not only end customers, but also your coworkers.

One thing Workday is looking to do is give back some of our knowledge and experiences back to the community. The way we will do that is by sharing items on the Workday UI Blog at http://workdayui.wordpress.com(feed). There you will find posts on hard hitting technical Flex issues such as Memory Leaks in Classes to lighter UI topics like Fun with Icons. The things we’re doing here are pretty amazing and I hope you follow along not only to learn from us, but to share your knowledge with us as well.

Community: What does it mean and how can I help?

I like communities, but do you? When you hear the word “Community”, what comes to mind? Do you participate in communities? If so, why? If not, why?

With Silvafug and 360Flex, I’ve come to realize that I like to serve the community. It makes me feel good that I can help you all learn some new tech skills while providing a place for you all to network. I think it’s equally important for us as people to develop socially as it is for us as developers to grow mentally.

I have an idea on what to build next, but I thought I’d get some feedback from you all first. Is there a void in the community space that you think needs filling? Is there something I can do to better serve you all? Just hit up the comments or email me personally at tom.ortega@gmail.com and I’ll try to answer as best I can.

Otherwise, stay tuned for more info on my next community adventure. I hope you’ll find it as exciting as I do.

Wishing the internet was alive and well in 1992

I have so many blog posts in the works, but this one has to take priority. In high school, some folks drink it up and party. My friends and I didn’t. Not that we were straight edge (most of us didn’t even know what straight edge was) nor were we mormon (of which at least I am now), we just didn’t drink as strange as that may sound. What we did do at parties was have fun. Having fun was usually a creative endeavor and on one such occasion, we made music videos. We had props, actors, lighting, custumes, the whole nine yards. We made two music videos: one for a U2 song (Numb off of Zooropa) and a Cure song (can’t remember the track). I was the director. It was great fun, but the tape has long since vanished without a trace. If the internet was around back then, we would’ve uploaded it and it would have possibly lived this long (minus format wars and the internet bubble).

Regardless, Steve Borsch’s post sent this my way:

(Sadly, there is no support to embed Vimeo in WordPress, so you’ll have to click the link instead: http://vimeo.com/173714)

Man, I miss my youth. Or maybe, I just miss friends who wouldn’t mind being this silly with me. My favorite bit is the guy at the end who found it more important to finish his beer than participate in the video. Priorities, baby. =) From what I gathered, the workplace is the Busted Tees. (Who just snagged $100 of my hard earned cash for some great t-shirt gifts. You’ve been warned!)

As a person who is constantly making up music videos in my head for the 600+ CDs that I own, it’s exciting to see stuff like this. I have all that I need to create the videos (a mac, video editor, sound tools, a camera, etc.) except for one important item: time. Creating this lil video of my son took me four or five days alone. (Notes: Yes, we’ve now cut his hair and “Goke-goke” means “Dip-Dip” as in the stuff you dip chips into.)

Saffron – My prayers have been answered

Ryan dropped a post on Saffron. Recently, I did a big write-up internally at eBay about a tool to help our XUNI development (Flex-based framework) go smoother when integrating with the Java folks.

In our current development cycle, I’d say 20 to 30% of our Flex dev time is building the actual Flex code for the UI parts, the remaining 80 to 70% is spent on integration. When you try to do concurrent development of the front and middle tiers, the part that suffers is communication and clarification of your data model. Let me show you the problem that we experience:

  1. Middle tier gives you a Transfer/Value Object (i.e. what gets sent from them to you that houses the data they have and you need) at the beginning of the project
  2. You (the flex peep) code to that object
  3. If you’re lucky, you get a stub web service call that sends you back one of these objects
  4. You test your code against the stub and tweak your code until it works perfectly
  5. Middle tier changes the object for justifiable reasons. However, due to schedule and delivery timeframe, they forget to inform you of the change and most definitely do not update the stub web service
  6. Integration testing comes and it doesn’t work obviously
  7. You tweak your code so it works with the new object
  8. After all integration bugs are solved, you hand it back to the Business Systems Analysts or user for a test run. They say the data is wrong and needs to change again
  9. Both you and the middle-tier folks make the changes and finally wrap up the project

Sound painful? Yes, it is. What would help is a tool that all parties (users, Business Systems Analysts, java devvers, Flex devvers, heck even QA) can use to visualize the data objects and spit out code for the front and middle tier developers to stay in sync with.

The parts of Saffron that I’m most excited about are:

  • Wireframe editor allows both developers and/or designers to create wireframes for their projects
  • Allows for Actionscript 2, Actionscript 3, PHP4 and Java Code generation directly from the app.
  • Enterprise level capability having the ability to support models with hundreds of classes without performance degradation
  • Integrated Version Control

I’ll admit that I don’t know Samuel Agesilas Paste personally, but if you do tell him to drop a line to info@360flex.com because the developer world needs him to speak about Saffron at our 360|Flex Conference in August!

Flash: Can get you rich and/or provide a better UI

This is why I love the Flash platform. Jeff Atwood has two good posts (Yes, more Jeff, I tend to “catch up” on blogs when the post count gets high in the Google reader)

Post 1: How to Get Rich Programming

This is something that I hope to do someday. Hopefully, I’ll be as successful as Paul Preece with his Desktop Tower Defense. To be honest though, monetary success isn’t even a requirement. I’d be happy doing something like Snowcraft. That little game had me playing for hours back in the day, and still takes up too much of my time when I open it. (Yes, I realize that it was made with Director, but the same could be accomplished in Flash now.)

Flash is so incredibly good at creating fun little games. Heck, Flex can even let you build games as Joe’s Connect Four shows you. I think that’s why I like being a Flex programmer. While I may be programming “serious” apps during the day, I know that all that time put into coding is going to pay off someday. I’ll be playing with my boys and wham! Inspiration is gonna hit. I’ll quickly jot down the idea and all my flexy flashing knowledge will later help it take shape. Now, if I could just find where I last left inspiration.

Post 2: Zoomable Interfaces

This post deals with something that I’ve always felt is missing in UIs, zooming. I have to agree that it is by far the most intuitive thing to the human mind. We manually zoom to objects in our daily lives by walking up to them. Movies and photos all take advantage of zooming to play with our emotions. It’s just something we know intrinsically.

Adobe Lab’s JamJar app utilized zooming to create an ever expanding workspace. The best use case for this type of interface though is best explained in Aza’s talk at Google. He demos this little experiment that you should take for a spin. An hour into the talk is when he shows the tool. During the demo, he talks about how his dad was helping a company work with the medical field. Nurses were given a tool that let them zoom in and out from patient’s medical charts. When the zoomed in far enough, they were able to edit. It took the nurses 45 seconds to figure out how to use the system. That’s is sickly fast and all apps should dream of a 45 second learning curve. The nurses themselves then began thinking higher and said, “Don’t stop at just charts, zoom out to see the room, zoom out to see the ward, zoom out to see the floor, zoom out to see the hospital, zoom out to see the chain of hospitals.”

I’ve currently got two experiments going on in Flex. When I finish those two things, I’ll move onto a zoomable experiment. I can’t wait to do my take on this UI concept. If you know of other examples that use zoom very well, please post links in the comments so I can check them out.

HTML 5: Is this how Flex 4 will be made?

Ajaxian has started this monthly Ajax roundup. It’s a pretty good read, even if you’re not an Ajax developer. I’m a Flexer, so most of the news items aren’t relevant to my daily life, but I think it’s important to keep tabs on tech in general.

Kevin Yank, over at SitePoint, has an interesting post on the HTML 5 working group. HTML 5!? You ask/say in disbelief. Yeah, I was surprised to see it too. With Ajax and browser apps becoming more and more prevalent, this has got to be the toughest “release” of HTML to date. As Kevin notes, anyone can join the working group so if HTML gets you buzzing, head on over and join the HTML working group.

The part that I found most interesting in the post was the section entitled “HTML 5 Issues on the Table”. It talks about various different things that make me glad I don’t spend most of my days in HTML anymore. However, when I came across the “Extending HTML Semantics” item, I got a bit sad for being a straight Flex developer. Flex, while being incredibly powerful and easy to use, does have some major drawbacks: not easily searched and not being able to contribute to the semantic web.

Alas though, Flex 3+ will be open-sourced. Now we, who care about semantics and crazy items like that, will be able to help make them a reality in future Flex releases. Right? I don’t know, but I’m hoping so.

Will we have working groups for Flex 3.x and Flex 4? Will these working groups be open to the public? Or will they be “invite only”? Will we have committees on topics like Logging, Unit Testing, Charting, Semantics, Styles, Component Library, etc? Or will there just be two committees: ActionScript and MXML. I don’t know. I sure hope we find out soon though.

I think that’s why the Open-Source announcement hasn’t whet my appetite yet. Yeah, an open Bug Base is nice…but I need a little more meat before I can take a bite.

Us vs. Them: Let’s stop it already

I’m just now reading a May 9th Post by Jeff Atwood. He brings up the “Us vs Them” thing, in regards to Microsoft and Open-Source developers. While it’s a fun read, the best nugget deals with neither side of the fence. Instead, it deals with every developer and an attitude that needs to change.

“As far as I’m concerned, every software developer, regardless of what’s on their tool belt, has the same goal: to craft useful computer software that delights users. We’re allies, not enemies. Friendly rivalry I can understand. But the rabid partisanship that I typically see– on both sides of the fence– isn’t helping us.”

I can’t agree more. I would have to say that until eBay I didn’t think that being allies was possible. For years now, I’ve been interacting with middle tiers not written in the same language as the front tier. Every time, it was the same thing. The developers of the middle tier would say, “Why are you developing the front tier in THAT language? You know, our language can do the front end too.” Then it usually goes downhill and bugs are the front end’s fault because it’s the “lesser” tool and soon it becomes them vs us. At eBay, the Flex team (front end) and the Java teams (middle/back end) realized they had a common goal, got to work and delivered. It was a great feeling not having that animosity and to be a “team”.

As we (developers) get on board with projects, we need to keep that goal in mind and not the technologies. Let’s deliver the best software we can, regardless of what tools we use. In the end, that will make life better for all of us.

SmartClient: An impressive Ajax solution

The folks at Isomorphic Software have this Ajax product known as SmartClient (http://www.smartclient.com). One team inside eBay uses the product for internal projects, and so invited them down to demo for the rest of us. I was there and I have to say, the tool looks powerful. The company has been around for a while and if you look at their homepage, they’re client list is rather impressive.

There are two things I’d like to call out that were demonstrated.

  1. The OLAP CubeGrid: This nifty little tool let you quickly and easily view your OLAP data in a datagrid. Any toolset can do that, right? But then, SmartClient let’s you just drag and drop new elements into the datagrid to further enhance the views. I’ve been in corporate America for quite sometime and the number crunchers out there would go crazy for a tool like that.
  2. XML Schema-driven Form: I know Eclipse and other tools have had something like this for years, but not being a Java head, stuff like this still impresses me. The tool will take an XML schema and automatically bind it to a datagrid and create a corresponding form on the fly. The form will have the elements properly typed, show which are required and even populate drop downs. If you’re using XML extensively, that’s a pretty attractive feature.

As you can see by the sidebar of their site (if you clicked one of the example links), there’s tons of other stuff they do right out of the box. With over 210 Ajax frameworks to choose from, it’s probably pretty hard to figure out which one you want to use. If you’re investigating/using Ajax, give SmartClient a look.