Adobe
Products
Acrobat
Creative Cloud
Creative Suite
Digital Marketing Suite
Digital Publishing Suite
Elements
Photoshop
Touch Apps
Student and Teacher Editions
More products
Solutions
Creative tools for business
Digital marketing
Digital media
Education
Financial services
Government
Web Experience Management
More solutions
Learning Help Downloads Company
Buy
Home use for personal and home office
Education for students, educators, and staff
Business for small and medium businesses
Licensing programs for businesses, schools, and government
Special offers
Search
 
Info Sign in
Welcome,
My cart
My orders My Adobe
My Adobe
My orders
My information
My preferences
My products and services
Sign out
Why sign in? Sign in to manage your account and access trial downloads, product extensions, community areas, and more.
Adobe
Products Sections Buy   Search  
Solutions Company
Help Learning
Sign in Sign out My orders My Adobe
Preorder Estimated Availability Date. Your credit card will not be charged until the product is shipped. Estimated availability date is subject to change. Preorder Estimated Availability Date. Your credit card will not be charged until the product is ready to download. Estimated availability date is subject to change.
Qty:
Purchase requires verification of academic eligibility
Subtotal
Review and Checkout
Adobe Developer Connection / Developer spotlight /

David Lenaerts: Developer spotlight

by David Lenaerts

David Lenaerts
  • derschmale.com
  • twitter.com/DerSchmale

Created

5 April 2010

Page tools

Share on Facebook
Share on Twitter
Share on LinkedIn
Bookmark
Print
Adobe AIR Flash Professional Flex Pixel Bender

Requirements

User level

All

What (Adobe and non-Adobe) technologies are you currently using?

Adobe provides the most important technologies I use. Development typically involves Flash, Flex, AIR, Pixel Bender and, on occasion, Alchemy. Non-Adobe development products include IntelliJ IDEA 9 and Microsoft Visual Studio. To create 2D and 3D visual assets, I use Photoshop, the NVidia Photoshop plug-ins and various simple 3D editors.

What is the most recent project you've built and what (Adobe and non-Adobe) technologies have you used?

The past few months, I've been working on the Away3d open source Flash 3D engine. I created a geometry compiler that creates a BSP data-structure with a PVS (potentially visible set) from a large-scale 3D model, such as a game level. It's a technique used by many games (including Quake and Unreal) to significantly accelerate rendering of interactive walkthroughs. With models like these, a large part of the geometry is usually hidden from view–BSP/PVS offers an efficient way to negotiate these parts and prevent further calculations. It was built using ActionScript 3 in IntelliJ IDEA for Flash Player 10 and Adobe AIR.

In your work, what are some of the biggest technological challenges you've faced and how did you overcome/solve them?

For me, the toughest technological challenges are usually the recurring ones. The strategies to overcome them can be very different for each case, and there is a lot of interplay between them.

When working with real-time visualizations, performance is a decisive factor of success, on par with the aesthetics. I consider a beautiful effect that runs slowly equally unacceptable as an ugly effect that runs smoothly. Since Flash Player uses the CPU exclusively (with the exception of video playback), the challenge becomes even harder. Luckily, recent technologies such as Pixel Bender and Alchemy provide great opportunities for faster performance and have helped me achieve goals I would have otherwise considered impossible. Nonetheless, it's still important to write heavily optimized code, which is often less readable (with in-lined methods and collapsed code).

If all else fails, it's important to step back and consider approaching your goal from an entirely different angle: changing the code architecture or even switching to use another technology.

Another challenge I'm repeatedly facing (and again painfully recent) is writing clean and readable code while respecting the performance requirements. Especially in larger enterprise applications and open source libraries, code must be flexible and maintainable. Most likely, another developer will work on it in the future. Unfortunately, this usually affects the execution speed. The challenge is to find a balance between performance and code architecture, when there isn't a clear solution. Encapsulating heavily optimized code as much as possible and adding meaningful comments (rather than "This code is magic: do not touch.") already goes a long way. Finally, and most importantly, spend the time to determine the areas that need to be optimized. It's too easy to get carried away!

What excites you, inspires you, or makes you say, "Wow that's really cool" about the technologies that you work with?

One of the most inspiring aspects of working with the Flash platform is without a doubt its open source community. The continuous flow of shared information is very infectious; I feel constantly challenged by the wonderful experiments that developers in the community put out there. Having to right-click to make sure it's really Flash based, and then being able to browse the source is a great privilege and an outstanding way to learn.

Where do you get your information about technology?

I get my information from the usual sources: various tech blogs and sites, books, conferences and information or recommendations from fellow geeks. When researching something specific, I usually just use Google as a starting point.

What are some of your favorite websites or blogs?

There are a lot of community members' blogs that I love, most of which are featured in the aggregator flashbookmarks.com. Apart from Flash platform blogs, a lot can be learned from more general programming resources, such as gamedev.net and gamasutra.com. One specific resource I'm following with growing interest is the online book-in-progress Game Programming Patterns, which ties into my previous point of writing clean vs. fast code. Still, none of these measures up to the webcomic xkcd.com, where I learned to defend myself against raptors.

Outside of your work, what inspires or excites you most, and why?

Many things I do to relax still manage to tie into my work somehow. When I'm unwinding outdoors, it's usually with a good tech book or staring at nature's engine: landscapes, watching smoke curling up, rippling water… Yet more often than not, my observations lead me think "It would be so cool to do that in code!"

The same goes for video games: they form a very strong visual and technical source of inspiration. Games like Doom and Quake got me into programming 3D in the first place. More recently, I've been playing Uncharted 2. That is one of the most beautiful game engines I've seen!

As for music, that's ubiquitous for me. Either I'm listening to it while working or I'm playing the piano or the guitar (albeit poorly). When I find the inspiration, I try to compose a few things too, but that has rarely been the case lately. There's no one genre I would pin myself down to; as long as there's real emotion or a solid idea behind it, it's usually good in my book. Speaking of which... I've recently rediscovered the Koyaanisqatsi soundtrack by Philip Glass, a must listen!

What's the one thing you'd love to see in web technologies in the future?

I would like to see the current technologies evolve and mature. While the heated debate on HTML 5 vs. Flash rages on, I love seeing technologies such as HTML 5 grow and make things that are typically associated with Flash possible without a plug-in. Then there's other plug-in based technologies, most notably Silverlight and Unity 3D, which are gaining in popularity. I think this creates an interesting ecosystem, which will encourage all involved to improve. I'm confident that Flash will keep renewing the web as it has in the past. As a developer I would love nothing more than seeing increased momentum in my preferred environment!

If you could build something you considered revolutionary, what would it be?

If I could answer that question, I would probably already be trying to build it, or at least trying to sell the idea!

What inspired you to use the technologies and do the work that you use/do today?

I took my first baby-steps in programming as a child when I discovered I could write BASIC straight into my Commodore 64's command line. It stuck with me ever since. When I saw Doom, I knew that was exactly the kind of thing I wanted to do. I moved on to Turbo Pascal and C/C++ while the Internet was blooming in Belgium, but it wasn't until college that I got involved with Flash (MX). Compared to the other languages I was used to, I found that it was incredibly easy to work with visuals. It has the benefits of being entirely cross-platform and having a wide potential audience at the same time.

What's next for you? What opportunities to you see in your field?

At the moment, I'm hoping to wrap up and launch some personal projects and get back to experimenting. Both in my job and in my personal work, I plan on investigating some different technologies–not all of them web-based. I'm playing around again with some desktop development in C++, which in combination with Adobe AIR 2.0's support for native processes may result in some interesting new applications.

When it concerns Flash specifically, I'm excited about the fact that it's not just browser-based anymore. I can use the same codebase on the desktop or mobile (among others) as well. If that doesn't offer great opportunities, I don't know what does!

max_banner_220x160

More Spotlight articles

  • Jobe Makar: Developer spotlight
  • David Lenaerts: Developer spotlight
  • Developer spotlight: Todd Williams
  • Kevin Schmidt: Developer spotlight

Products

  • Acrobat
  • Creative Cloud
  • Creative Suite
  • Digital Marketing Suite
  • Digital Publishing Suite
  • Elements
  • Mobile Apps
  • Photoshop
  • Touch Apps
  • Student and Teacher Editions

Solutions

  • Digital marketing
  • Digital media
  • Web Experience Management

Industries

  • Education
  • Financial services
  • Government

Help

  • Product help centers
  • Orders and returns
  • Downloading and installing
  • My Adobe

Learning

  • Adobe Developer Connection
  • Adobe TV
  • Training and certification
  • Forums
  • Design Center

Ways to buy

  • For personal and home office
  • For students, educators, and staff
  • For small and medium businesses
  • For businesses, schools, and government
  • Special offers

Downloads

  • Adobe Reader
  • Adobe Flash Player
  • Adobe AIR
  • Adobe Shockwave Player

Company

  • News room
  • Partner programs
  • Corporate social responsibility
  • Career opportunities
  • Investor Relations
  • Events
  • Legal
  • Security
  • Contact Adobe
Choose your region United States (Change)
Choose your region Close

North America

Europe, Middle East and Africa

Asia Pacific

  • Canada - English
  • Canada - Français
  • Latinoamérica
  • México
  • United States

South America

  • Brasil
  • Africa - English
  • Österreich - Deutsch
  • Belgium - English
  • Belgique - Français
  • België - Nederlands
  • България
  • Hrvatska
  • Česká republika
  • Danmark
  • Eastern Europe - English
  • Eesti
  • Suomi
  • France
  • Deutschland
  • Magyarország
  • Ireland
  • Israel - English
  • ישראל - עברית
  • Italia
  • Latvija
  • Lietuva
  • Luxembourg - Deutsch
  • Luxembourg - English
  • Luxembourg - Français
  • الشرق الأوسط وشمال أفريقيا - اللغة العربية
  • Middle East and North Africa - English
  • Moyen-Orient et Afrique du Nord - Français
  • Nederland
  • Norge
  • Polska
  • Portugal
  • România
  • Россия
  • Srbija
  • Slovensko
  • Slovenija
  • España
  • Sverige
  • Schweiz - Deutsch
  • Suisse - Français
  • Svizzera - Italiano
  • Türkiye
  • Україна
  • United Kingdom
  • Australia
  • 中国
  • 中國香港特別行政區
  • Hong Kong S.A.R. of China
  • India - English
  • 日本
  • 한국
  • New Zealand
  • 台灣

Southeast Asia

  • Includes Indonesia, Malaysia, Philippines, Singapore, Thailand, and Vietnam - English

Copyright © 2012 Adobe Systems Incorporated. All rights reserved.

Terms of Use | Privacy Policy and Cookies (Updated)

Ad Choices

Reviewed by TRUSTe: site privacy statement