Tag Archives: programming

Day 2 Announcements From Adobe MAX: PhoneGap, Flash Player 11, AIR 3 and Unreal Engine 3

Compared to the first day’s MAX keynote, the second day’s keynote was much more focused on hard-core development but also a lot less exciting and with fewer major announcements. The only acquisition that was announced was Nitobi, which brings the PhoneGap development platform into Adobe’s portfolio. PhoneGap is a popular way to publish HTML5 and JavaScript-built applications to most major mobile platforms, including iOS, Android, BlackBerry and Windows Mobile. I bet it will be rolled into either Dreamweaver—which has had similar frameworks like jQuery Mobile integrated with it—or the newly-announced Adobe Creative Cloud, where it could end up as another of its creative services (along with TypeKit and others). They did say that PhoneGap will remain an open-source project available to everyone.

According to the keynote, Adobe’s intention is to “bet on HTML5″ while “doubling down on Flash,” which I expected. Some people, particularly Apple fanboys, expect Adobe to kill Flash—but I don’t think it will happen anytime soon if at all, and right now HTML5 can’t duplicate all of Flash’s capabilities so I don’t think it should. Interestingly, Ben Forta—Adobe’s Director of Platform Evangelism—asked for a show of hands of who has built an HTML5 application before, and almost no one raised their hand.

Flash Player 11 and Adobe AIR 3 were also announced, which focus on games, rich media and data-driven applications—all things that are not easy to implement with HTML5 right now. I’m particularly interested in 3D and gaming capabilities that are being built into Flash Player 11, and a demo of the Nissan Juke website—which features an online driving game—shows some good things with the new technology.

Other announcements

  • Adobe Edge, currently in beta, has reached the third preview iteration and has some new features including loops and hyperlinks. The beta has been downloaded over 150,000 times.
  • The new ThemeRoller product was demonstrated, showing how jQuery Mobile themes can be built with a user interface. This is also something that can be built into Dreamweaver, but at this point it looks like it’s generating a lot of CSS code. Until ThemeRoller can generate lean code, web developers will criticize Adobe for bloated code.
  • CSS Shaders was demoed for the crowd. CSS Shaders is a CSS3 module that Adobe has contributed to the W3C for inclusion in the general CSS3 spec, and it leverages current PixelBender technology to bend and warp HTML elements. The presenter had a very nice demo of a live page curl on an HTML element and also on a live video element. CSS3 is where Adobe can provide the most benefit to developers, because CSS is pervasive across the web and it’s not tied to a particular product.
  • Another CSS3 module presented by Adobe is CSS Regions, which uses CSS to generate text columns and live text wrap. This is already implemented in Google’s Chromium (a beta version of Chrome) and Internet Explorer 10.

The last presenter, Epic Games’ CEO Tim Sweeney, showed something that means a lot to me personally: Unreal Tournament 3 running in Flash. I played a lot of Unreal Tournament 2004 years ago and Unreal Engine 3 (UE3) is now able to run on Flash—how cool is that? According to the press release, Flash Player 11 has up to 1,000 times faster 2D and 3D rendering than Flash Player 10, which sounds…unreal. If Flash can gain a foothold as a runtime for top-of-the-line games, Adobe can pivot the technology into a data-centric and graphics-centric product and leave web graphics and rich Internet experiences to HTML5, which is what I think will happen one way or another.

BOOK REVIEW: Eloquent JavaScript Simplifies Scripting For The Web

Marijn Haverbeke’s Eloquent JavaScript: A Modern Introduction to Programming is really about the fundamentals of coding clean JavaScript for websites. In any professional’s career, “fundamentals” are taught early on but can be forgotten or pushed aside in favor of getting projects out the door when deadlines are tight or in favor of new training that do things differently. In any case, fundamentals are usually the foundation of good programming and it’s beneficial to revisit them from time to time.

Eloquent JavaScript does a good job of detailing the fundamentals and explaining concepts like the stack and the environment. This attention to detail is what sets the book apart from other JavaScript books. However, Eloquent JavaScript is a comprehensive JavaScript guide so many features and techniques aren’t discussed. Another downside is the lack of tutorials or step-by-step examples: since the focus is on basic concepts, Marijn only needs basic snippets of code to illustrate his examples. There are a few larger projects used to demonstrate things over the course of a chapter or two, but they’re not really laid out as tutorials.

There are other aspects of JavaScript that aren’t discussed in Eloquent JavaScript, the most glaring of which might be libraries like jQuery. jQuery, Dojo and other JavaScript libraries are commonly used to make coding JavaScript easier, but Eloquent JavaScript mentions them on one page in passing. Again, there are many books out there that cover jQuery—and far more resources and code examples online—but this book is all about understanding JavaScript and knowing how to write elegant code from scratch.

Eloquent JavaScript is a very specialized book for programming purists and web developers who want to write the best code possible. Many developers are happy writing code that simply works, and this book may not be for them—a larger resource like O’Reilly’s JavaScript: The Definitive Guide or a book on jQuery might be a better fit for them. But if you want to grasp all the basic concepts behind JavaScript and write more eloquent code, try Eloquent JavaScript.

Eloquent JavaScript: A Modern Introduction to Programming
Marijn Haverbeke
Published by No Starch Press
US $29.95
Rating: 8/10

buy from amazon

Sometimes It Takes A Detective To Solve CSS

css-detective

It’s probably safe to say that the process of developing a website requires debugging issues that just don’t make sense. Floats don’t clear. Web fonts don’t display. Internet Explorer 6 doesn’t do anything right (at least it’s on its way out). Solutions are sometimes easy to find and apply, but many times a bug doesn’t seem to have a logical solution!

This is why I like the structure and premise of The CSS Detective Guide by Denise R. Jacobs. Bugs can be mysterious and the codebase can look like a crime scene, so why not frame the process with that in mind? The book devotes a couple chapters to general HTML and CSS knowledge and two more to bugs, debugging techniques and things to look for when debugging CSS.

The other six chapters in the book are case studies with real-world code and bugs that Denise walks through and solves with the reader. This is the kind of book that would have benefitted greatly by providing live code that the reader could load on their computer, test and revise, but even though the book has a companion website (www.cssdetectiveguide.com) there is no code to download and work with. It is mentioned that files and live versions of the cases are “coming soon,” but the book was published in April.

HTML and CSS code is published within the book so readers have at least that to go on when learning how to debug the CSS. I thought the case studies were quite good, with several bugs in each—some specific to Internet Explorer but many others that apply to all browsers, or to other browsers like Firefox.

I think many CSS books on the market are more high-level or experimental (Dan Cederholm’s books come to mind) and don’t focus on the nitty-gritty details of CSS bug fixes. Dan’s books are exceptional resources for CSS pros but The CSS Detective Guide is written for those learning CSS or those wanting to improve their debugging techniques. It’s also fun to read thanks to the mystery/detective/crime story angle, which I think is a nice touch in a technical book.

The CSS Detective Guide
Denise R. Jacobs
Published by New Riders
Rating: 9/10

BOOK REVIEW: ActionScript 3.0 Classroom In A Book

as3-classroom

Remember “Training From The Source”? This was the name of Macromedia‘s official line of training books for Dreamweaver, Flash and other design applications. When ActionScript 2.0 was released I bought the book Flash MX 2004 ActionScript Training From The Source to learn that new version of the Flash programming language. I carried that large book through many airports and conferences, chipping away at its pages over the course of a few years.

By the time I was finished with that book, ActionScript had moved forward again to version 3.0, Macromedia was no more (having been acquired by Adobe) and “Training From The Source” was folded into Adobe’s own “Classroom In A Book” series. I thought it fitting to review the series recently with a look at ActionScript 3.0 for Adobe Flash CS4 Professional Classroom In A Book.

Small, compact, solid

Compared to the Training From The Source book, which was a large book in both page count and size, Classroom In A Book is smaller in both respects. I actually appreciate the smaller size because it increases portability. The book design is sharp, with a matte finish cover that is easier to handle and a clear layout design that aids learning. I was surprised the author, Chris Florio, had a laid-back, informal writing style—one would expect a workbook like this to have a no-nonsense tone—but I could appreciate a bit of levity after working on the exercises for hours at a time.

A different approach to ActionScript training

Classroom In A Book has roughly half the pages of its Training From The Source predecessor, so either ActionScript 3.0 is less complex than version 2.0 or the book doesn’t cover everything. It’s actually a combination of three things:

  • ActionScript 3.0 really is less complex than ActionScript 2.0, though it’s more verbose; the distinction is comparable to HTML and the more strict XHTML. Syntax is streamlined and coding skills apply to everything in a more uniform way.
  • Classroom In A Book doesn’t cover everything. Some topics such as CSS aren’t covered at all, while others (like classes) aren’t covered in their entirety. That might be a good thing, since ActionScript has always been a large language with many classes and elements. It seems this book is designed to teach essential ActionScript skills and leave minutiae to other resources.
  • Classroom In A Book is project-oriented, while Training From The Source was skill-oriented. Both books have projects to work on (and ship with a CD-ROM full of good project materials) but Training From The Source focused on skills such as handling text fields, XML, conditional logic, debugging and so on. Classroom In A Book thinks more in terms of building preloaders, loading content, creating quizzes and working with XML and video. Both approaches are good and Classroom In A Book teaches a great deal if one completes the exercises, but it’s not necessarily a compendium of ActionScript knowledge like Training From The Source was. It complements other sources such as the ActionScript 3.0 reference files, accessible directly from Flash.

Conclusion

ActionScript 3.0 for Adobe Flash CS4 Professional Classroom In A Book is worth buying, and particularly helpful for new Flash users who don’t know ActionScript or experienced Flash users who have not yet upgraded their skills to include ActionScript 3.0. The language really has made a sea change from ActionScript 2.0 and learning it requires training. Classroom In A Book is a good place to start.

ActionScript 3.0 for Adobe Flash CS4 Professional Classroom In A Book
Published by Adobe Press
US$54.99
Rating: 9/10