It is nearly the time when our calendar flips over to another year. The days are filled with people frantically trying to tie up loose ends and preparing to look to the future. It's also a time when many people are looking back to see exactly what it was they accomplished. As editor of the Web development zone on developerWorks, I took a little time to look back at everything we have shared with you this year. Some of it was designed to let you get your hands dirty and start working with code immediately. Some of it was designed to get you thinking about the big picture and how the changing landscape of development will shape the future of your applications.
We all get so busy getting the work done, that there isn't always time to see everything that we should. I'm here to be your "ghost of developerWorks past," to point out some items that we had this year that I hope you didn't miss. It's a very subjective list, based on my own personal opinion. However, if someone was asking me for a list of what he or she should have read this year, this would be the one. I hope you enjoy it and that you will continue to find developerWorks to be a useful resource as we enter into 2010.
Building a 21st century user interface, Part 1: Your app's competition... isn't who you think
Brett D. McLaughlin and I had a conversation about what influences application design. We agreed that it's more than just the particular business application. It's the entire environment of everything that users do, from watching television, to driving their car to playing video games. That conversation gave Brett the idea for a series of articles about how users may perceive the world and how developers can benefit from broadening their view when thinking about design. This article published in January of 2009, and then Brett became unavailable for a while. The good news is that the other two articles are now on their way, so you can get ready for them by re-reading Part 1.
I just think that Mashups are a great use of technology. I've heard many lofty presentations about services and such, but it all boils down to taking functions that you want and putting them together to do what you need. I've seen some very creative uses of open resources like maps. If you are a flight simulator enthusiast you've seen what some people are doing with things like live weather and airport data. It's just amazing. However, any time that you use information from other sources like that it's important to have some levels of security to make sure that you are not harmed by what you thought was a simple mashup function. This article looks at some of those issues and gives you things to think about.
Creating mashups with JavaFX
People tend to think about things like Flex when they talk about Rich Internet Applications (RIAs). Yet richness is about the look, feel, and functionality, and there are many ways to approach that. JavaFX is another approach to providing these sorts of engaging application experiences that can run in places where Java can run... which is sometimes a place where Flex cannot! I'm a huge fan of having many tools in the toolbox and choosing the right one for the right job rather than using just one because it's the only one that you know. I'll spare you the carpentry analogies. If you haven't really looked at JavaFX, take a look.
Michael Galpin, Software architect, eBay
Summary: Are you a Java developer who wants to leverage the open Web to create Rich Internet Applications (RIAs)? You are in luck. Now JavaFX empowers developers to leverage the Java platform to create RIAs. In this article, learn how you can use JavaFX to create mashups. See how JavaFX lets you tap into popular Web services such as Flickr and how you can use it to create interactive user interfaces. Along the way, get a taste of the new capabilities that JavaFX brings to client-side development.
Scalable vector graphics and bitmap rendering using Flex
My favorite thing about this article is not the SVG rendering... though that's good stuff. My favorite part is something that happened with the author during the writing of this article. Sandeep had always worked with Adobe products for generating his SVG files. During the writing stages I recommended that he take a look at the open source Inkscape, which does SVG. I use it all the time and like it a lot. He hadn't heard of it, but said he'd take a look at it. Not only did he discover that Inkscape did what he needed, he found it could be a useful tool for development because it produced good, standard SVG files. I've always been fascinated by vector graphics and the scalability that they offer. Properly used they could provide more flexibility in an application and a little less traffic on the Internet. If you missed it, it's worth a read.
Working with jQuery series
I enjoy seeing a series that takes you from a basic concept all the way through to a usable skill. Obviously, three articles are not going to teach you everything you could want to know about creating JQuery plugins, but these articles do a pretty good job of giving you the basics and helping you make practical use of what you learn. Follow along with the examples, and I'll bet you start playing with your own versions pretty quickly.
Using steganography to avoid observation
I just love this sort of secret agent side to computing: Encryption, obfuscation, hiding things in plain sight. They make me think of watching James Bond and The Man From U.N.C.L.E. when I was a kid. The best part is it's not fiction. This stuff really works, and it's really accessible. If you've never played with steganography (hiding data within graphical elements), then this article gives you a basic overview. It also introduces a couple of tools that are worth playing with. Alright! Your boss may not be demanding that you hide the secret plans to the battle station on the front page of your Web app where they are safe from the Imperial Forces, but you have to admit this stuff is pretty cool. As the world becomes more complicated and our privacy becomes less certain, this sort of technique may actually come in handy.
Create Web applications using IBM WebSphere sMash DE
IBM puts some serious effort into its tools. Often these things come at a price. I think it's a real treat when an IBM tool comes along that's free of charge. It's even better when it's a tool that does cool things like help you build Mashup applications. If you haven't seen WebSphere sMash Developer Edition, this is a good place to get started.
Accessibility in Web 2.0 technology
As someone with responsibilities about content that goes out to a global audience, I have to be concerned about accessibility. I thought I knew what that meant, but between the requirements that I have to meet and the friends I know who have accessibility issues, I've gotten an entirely different perspective on what is important for a Web application. If you haven't given any thought to how a blind person, or someone who cannot use a traditional mouse, might use your site, it's pretty interesting stuff. Incorporating these techniques to make your application usable to everyone just makes good business sense. Whose money don't you want?
Implement a real-time server push in Ajax applications using socket-based RIA technologies
I've been frustrated myself by the sort of one-sided nature of Ajax applications. In the march toward Web applications providing the same functionality as desktop applications, we really need good solutions for server pushes—especially real-time. Some interesting approaches are explored in this article, which gives you a few starting places to find what fits your needs.
PHP bees and audio honey: Accessible agent-based audio alerts and feedback
I hadn't thought much about sound in a Web application, but this article really made me think. While the author didn't specifically discuss accessibility issues as a theme, I think the information covered could have some real implications for accessibility. Audio is simply an under-utilized tool for Web applications. This one will get you thinking.
Configuring Tomcat and Wireshark to capture and decode SSL communications
I remember the first time I ever saw a packet sniffer. It was a sleek computer carried by a very expensive consultant who used it to peer into our network like a wizard peering into a bowl of inky water. At the time there was just no way for someone at my level to have access to expensive technology like that. Thank you open source! Wireshark lets you look at interesting information on your network. This article shows you how to use that capability with a few other tools to test the integrity of your SSL communication. I love it!
Create optimized Dojo builds for your custom Dojo artifacts
If you're only working with jQuery, you're missing some of the fun. Dojo has been around for a while and has some good qualities. However, any time that you work with frameworks like this you can end up with some bloat where parts of the framework become entangled with your custom code, making artifacts that are larger than they need to be. This article specifically looks at ways to cut the fat and make your widgets lean and mean. I always like it when developers think about making something efficient rather than just filling up my hard drive and bandwidth.
Of course there were many other topics that were covered during the year. In fact this year we celebrated ten years of developerWorks. That's a lot of information! Thanks for being a part of our community. Without you there wouldn't be much point to this stuff. I'll look forward to seeing you in 2010.
- Have you thought of being a developerWorks author? Share a favorite technique or lesson learned from your application development. You can find more information on the developerWorks author page. Once you're ready with your idea you can send it using our online submission tool.
- Is there something you like? don't like? want to see? You can always submit feedback to developerWorks. Your editors are interested to hear what works for you and what kind of content you are looking for.
- Join the community of My developerWorks and interact with other developers facing your challenges. Communities work better when you get involved.