Kent Beck of Three Rivers Institute on the RailsConf 2008 stage. “…I still had to navigate to each JavaScript issue manually. This is a huge pain, something that I haven’t done since my earliest days as a developer, before I learned about Emacs’ next error functionality. NetBeans also has a really nice “Next Error” function that automatically navigates the user to the next error detected by the compiler. Unfortunately, NetBeans didn’t recognize the native output of JSLint. This got me thinking about building a custom wrapper around JSLint so I can transform the output to whatever NetBeans would be happy with.” This article leads to jslint4java.

“Netbeans, JavaScript, Ant, Hudson, and JSLint: Oh my!”

Ari Shamash: “…there is a lot developers can do to make the experience with JavaScript a whole lot better. Don’t get me wrong, JavaScript can be amazing, but it can also be a nightmare. Part of the nightmare is that the development environments and tools for JavaScript are not yet on par with other environments. My current project involves writing a whole lot of JavaScript. We’ve gone through the usual JavaScript cycles—we’ve been burned by both programming errors as well as deployment errors. …This blog entry describes how we’ve integrated JSLint into our Continuous Build/Integration environment, so we can better control the code that we write.” This little investigation of mine leads to a case where Mozilla’s Rhino is actually useful to me.

“Manifesto for Agile Software Development”

The Poetry of Kent Beck and Company:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

Magneto VintageMagento is an Open Source ecommerce web application launched on March 31, 2008. It was created by Varien, building on components of the Zend Framework. Magento is available under the Open Software License version 3.0. Since version 1.1.7 some parts are licensed under the Academic Free License version 3.0. Magento Enterprise Edition, a paid for version of Magento aimed at larger companies, was launched on April 15, 2009…”

MariaDB “What is the goal of MariaDB? To provide a community developed, stable, and always Free branch of MySQL that is, on the user level, compatible with the main version. We strive for total interoperability with our upstreams and our own community.”


Moblin, short for mobile Linux, is an open source project focused on developing software for Mobile Internet Devices (MIDs) and other new categories of devices such as netbooks and nettops. Intel launched the site in July 2007 and significantly updated the site in April 2008 with the launch of the Intel Atom processor family at the Intel Developer Forum in Shanghai. A custom SDK is also available on the site. The Moblin 2 OS was specifically designed to run on an Intel Atom processor in a netbook. In April 2009 Intel turned Moblin over to the Linux Foundation.”

“Why I Switched from Eclipse PDT to NetBeans IDE”

chad: “Regardless of the server-side languages an IDE supports, it must also provide robust support for writing JavaScript. It must also provide support for today’s popular JavaScript frameworks, including dojo, jQuery, and YUI. Currently, Eclipse’s JSDT plugin does not support these libraries… I didn’t need a tutorial to install and configure NetBeans to match my Eclipse environment. NetBeans came with everything I needed out of the box. Here are the hightlights.”

“ASP.NET 4.0 Webforms Enhancements”

Mike Ormond’s Blog: “Yes indeed. Now you can have your cake and eat it—almost. We give you control over the ClientIDs generated by server controls. ASP.NET does an excellent job of avoiding naming conflicts in the HTML document through the use of naming containers that guarantee uniqueness for a certain context. The result though, can be lengthy, complex and (importantly) difficult to predict ClientIDs. …This can make life a misery if you’re doing DOM manipulation in Javascript as you typically revert to some inline code to extract the ClientID. You’ll find littered all over the place. Given the surge in popularity of AJAX and client frameworks like jQuery, the pain caused by this “guarantee of safety” is becoming more acute.”

“ASP.NET 2.0 Tips, Tricks, Recipes and Gotchas”

scottgu: “Tip/Trick: Optimizing ASP.NET 2.0 Web Project Build Performance with VS 2005”; “Tip/Trick: Changing the default browser used in VS 2005 and Visual Web Developer”; “Tip/Trick: Creating Packaged ASP.NET Setup Programs with VS 2005” ; “Recipe: Using VS 2005 Web Deployment Projects”; “Tip/Trick: Spell Checker Plug-in for VS 2005 for ASP.NET and HTML Pages”; “Recipe: Paging through lots of data efficiently (and in an Ajax way) with ASP.NET 2.0”; “Recipe: Efficient Data Paging with the ASP.NET 2.0 DataList Control and ObjectDataSource”; “Recipe: Enabling Windows Authentication within an Intranet ASP.NET Web application”; “Tip/Trick: Disk Based Output Caching Feature Now Available for ASP.NET 2.0”; “VS 2008 Multi-Targeting Support

Buy this book at!

Adobe—Developer Center: “If you’re a Linux administrator, you know all too well the tedium of logging on to your remote server with Secure Shell (SSH), changing directories a dozen times, then finally opening and editing a configuration file with vi or nano. If only there were some sleek, cross-platform tool for easily editing these files! Well, there is. The Adobe AIR desktop development platform, coupled with PHP through AMFPHP, creates a full-featured, triple-operating system toolbox for all your administration needs. …The ability to use PHP methods from Adobe Flash opens a whole universe of functionality and a whole universe of security concerns. Do not try this in a production environment without locking it down completely. You can make AMFPHP secure, but that’s outside the scope of this article…”

“Vim made easy: how to get your favorite IDE features in Vim”

Ars Technica: “I often get e-mail from readers who are looking for ways to make Vim more developer-friendly. A common complaint is that the editor doesn’t come with standard IDE features out of the box and it’s not always clear how to configure it to provide equivalent functionality. The secret to unlocking Vim’s real magic is to take advantage of its powerful plugin system and the large ecosystem of third-party scripts that offer editor augmentations for various tasks. To get you started, I have compiled a short list of useful tips and programming plugins for Vim that will make IDE refugees feel right at home.”

“AS3 Arcade ‘Space Invaders’ Intel 8080 Emulation”

Thibault Imbert: “This CPU has been designed to run at 2Mhz and is a good start for getting started with CPU cause each operation code is stored in a single byte. By reading a few documents related to emulation programming I noticed that the "Hello World" seems to be the Space Invaders emulation in the emulation programming scene. I found this great tutorial in VB about emulating Space Invaders and decided to try it in AS3. It would have been cool to have a byte and short type in addition to int to avoid byte overflow, but well, I read that Darron and Claus had the same problem with FC64 and had to do the checking manually too.”

“NetBeans 6.5 review”

CodeUtopia: “The formatter of Netbeans is a real joke, it indents and that is basically all it does… I really hope they add features to the formatter as I think it’s one of the strengths of ZSE.”

Buy this Book at! So this question came to me last year, “Can you help me make a menu in Flash?” I have not worked with Flash for so many years I forgot how to properly answer this question. The adventurous female designer that asked me this question was clearly impressed with another’s Macromedia/Adobe Flash site. But admiring someone’s Flash site is like admiring the imperial grandeur of a sparkling city: when you never know about how many innocent people were killed to “fund” the project, you can get lost in admiration without really understanding the cost of implementation. Flash is, at its heart, an animation tool. This means that it was not originally designed to save labor as much as being a cel-by-cel digitizer for illustrators who are used to painstaking.

So my answer to the question, “Can you help me make a menu in Flash?,” is (annoyingly) another question: Do you know what a MovieClip is? The reason why I ask this question is because whatever menu you are going to build in Flash it is going to be in a MovieClip symbol. So you can’t even get started without understanding what this Flash symbol is. Hint: think of a MovieClip like a folder inside of a folder—a Flash animation inside of an animation.

After years of baking in Visual Studio, NetBeans and Eclipse, I had literally forgotten that you can’t make a menu in the “new” version of Flash by just dragging something out of some palette onto the Stage. My first clue is that Yahoo! would not waste their precious time building Menu and MenuBar components in Astra when Adobe already had them. My second clue is the sad-but-active third-party market of Flash component sellers hawking menu components. My third clue was that this stack of books about Flash does not have a “menu” topic in the table of contents and/or the index:

  • Macromedia Flash 8 Bible: Robert Reinhardt, Snow Dowd
  • Flash Hacks: 100 Industrial-Strength Tips & Tools: Sham Bhangal
  • Adobe Flash CS4 Professional Classroom in a Book: Adobe Creative Team
  • Foundation Flash CS3 for Designers: Tom Green, David Stiller
  • Adobe Flash CS3 Professional How-Tos: 100 Essential Techniques: Mark Schaeffer
  • How to Cheat in Flash CS3: The art of design and animation in Adobe Flash CS3: Chris Georgenes

The most effective explanations for this missing information about menus are:

  • Menus are MovieClip symbols with a bunch of buttons in them. It follows that the “menu” concept would be filed under “button symbols.”
  • Menu structures are preferred in the container hosting Flash—not within Flash itself. This is a design that I prefer because on the Web I like to use as much AJAX as possible—which subordinates Flash on the page (which is why Macromedia was not be motivated to feature my work back in the day when it mattered).
  • A serious interaction designer would take the concept of the “menu” to a new level. From my experience, a site like really did (through hard work) take the concept of the menu to a new level—back in the late 1990s.

Eventually I found a book that reserved an entire section on “pull-down” menus (filed under “buttons symbols”), Macromedia Flash 8 Advanced for Windows and Macintosh: Visual QuickPro Guide by Russell Chun. This was one of the few times when buying a brand-new book about obsolete software in a bricks-and-mortar bookstore actually made sense to me. The Flash developers like my adventurous female designer are not going appreciate my code-centric work in Adobe Flex (which is yet another way not to get noticed). These adventurers demand the intense labor of working with timelines, sprinkling in just a little bit of code here and there. The next time I get a question like this, I’ll be ready (because, even with Flash CS4, these adventurers will still be using Flash-8-style techniques to avoid coding horrors).

An honorable mention goes out to Todd Perkins, his book, Adobe Flash CS3 Professional Hands-On Training, mentions menus on page 311—so gets proper credit!

Buy this book at! I have not updated my résumé in years. I have been doing time in the same W2 labor camp for almost ten years. Since I’ve known me for quite some time, I can tell that I am interested in summarizing my skills because my damn-near ten years of ‘exile’ has produced a revised and improved view of my personal technology plan. This writing here is like a little fire drill to exercise my ability to succinctly communicate the scope of my information technology concerns.

My IT Concerns by Operating System

There are two operating systems that are used for my development work: Microsoft Windows and Ubuntu Linux. Microsoft Windows is required because of its native support for the .NET Framework and Microsoft Office file formats. Ubuntu Linux is required because of its friendly relationships with the Java Runtime and the Apache HTTP Server. It is extremely important to emphasize that these operating systems are maintained by organizations that encourage and discourage technologies. In the “real world” of the IT business we must pick our “battles” wisely and not recklessly “fight” such organizations by using technologies that are not “approved.”

Buy this book at!My IT Concerns by Software Environment

There are three major ‘software environments’ that are of my concern: the .NET Framework, the “Standard Edition” of Java with its associated runtime and the XAMPP ‘stack’—a grab bag of traditional Linux technologies featuring Apache, MySQL and PHP (supplemented by my use of the Zend Framework and YUI).

My IT Concerns by Shell Language

There are two ‘shell’ languages that are of my concern: bash scripting and PowerShell. My bash efforts drive directly into PHP-related file management (featuring rsync) and the Java runtime for console applications (featuring JAXP solutions). My PowerShell efforts are currently very minimal with a few XCopy deployments for Visual Studio.

My IT Concerns by General-Purpose Software Language

These are the general-purpose software languages that are of my concern: C# and Java. These two languages are the preferred choice after working through BASIC, FORTRAN and Visual Basic (which implies I am familiar with Visual Basic .NET—and very familiar with VBA). A future language to explore might be F#.

Buy this book at!My IT Concerns by Domain Specific Software Language

These are the domain-specific languages of my concern: t-SQL, JavaScript (under AJAX), PHP, XSLT and XAML. These result from working through MS-SQL (for Microsoft Access) and ASP (for Microsoft Internet Information Server). Currently, there are no plans to explore new domain-specific languages outside of ones based on XML.

My IT Concerns by HTTP Server

There are two HTTP Servers of my concern: Apache HTTP Server and Microsoft Internet Information Server (IIS). Do note the glaring omission of any Java-based server technologies. Also the presence of IIS here—coupled with my concern for .NET—implies that I am actively using ASP.NET.

My IT Concerns by Database Management System (DBMS)

There are two DBMS products of my concern: Microsoft SQL Server and MySQL. It is not technically accurate to include SQLite in this list but it is definitely worth mentioning because I also use this database frequently!

Buy this book at!My IT Concerns by Client-Interface Technology

There are three client-interface technologies of my active concern: AJAX-based HTTP clients, XAML-based HTTP clients and Adobe-Flex-based HTTP clients. All of these concerns share HTTP as the means of transporting data for human-readable viewing.

It important to emphasize that I also divide these concerns into two use categories: clients for intense data editing and clients for mostly-read-only scenarios. The mostly-read-only clients needs to be available to a wide audience—this implies that AJAX and Flex work well here. In my considered opinion, the intense-data-editing client is suited for XAML technologies like Windows Presentation Foundation (WPF) and Silverlight 2. This means that I intend to produce data-editing tools for a small, specialized set of users (supporting a mostly-read-only audience through a decoupled publishing system). This position is not in agreement with the current trend of social, “Web 2.0” applications where “everyone” can be reader and writer.

It is also important to mention that since my commitment to building clients exists, this means that I have working knowledge of traditional design software products like Adobe Photoshop and Adobe Illustrator. I am also quite skillful in the field of sound design but this area leaves the scope of this writ.

My IT Concerns by Integrated Development Environment (IDE)

There are three IDE products that are of my concern: Microsoft Visual Studio, Eclipse Foundation Eclipse and Sun Microsystems NetBeans. I prefer to work with Eclipse and NetBeans in a Linux-based graphical user interface like Gnome or KDE.

Did I miss anything?

What would be really strange (for me) is to take the time here to set healthy boundaries only to find out that there is this whole other world of crap that I do in IT that I am unaware of… that would be literally unprofessional. My intent here is to capture and control my behavior and find out exactly what I am doing so that actually can profess and produce with potency.