The new Dreamweaver beta: Subversion, show related files, show code sources

A number of folks have already posted about the availability of the new beta version of Dreamweaver (and Fireworks and Soundbooth) on their blogs, but none of the ones I read talked about any of the new features. Even though I use CFEclipse as my main IDE, some of the features in this new version of Dreamweaver sound promising.

I'll quick paraphrase some of the ones I personally found appealing:

  • Integrated Subversion support.
  • "Live View": you can view your page in a WebKit-powered browser window and make changes to it on the fly.
  • "Related View": these days you usually have several pages working in conjunction that produce the final page view. All of those related files are now listed above the top of your document.
  • "Code Navigator": shows you all of the code sources that affect the code you're currently working on. What isn't clear is whether that will work with ColdFusion code.

Table normalization verses long-term data storage

I'm currently working on an application that involves long-term storage of assessment data. Users submit records of their activities and assess their performance, and then reviewers look over those assessments and denote whether they agree or disagree with them. Each assessment database record is related to a reviewer through the unique reviewer id that is part of the assessment record, and I can use that relationship to retrieve the reviewer's name whenever I display the assessment record.

It's a standard example of table normalization. If the reviewer's name was stored within the assessment record itself, and the reviewer changed their name for some reason (marriage, divorce, mid-life crisis, etc.), the application would have to update the name in both the reviewer's record AND the assessment record. But by using the reviewer's id in the assessment record to establish a relationship between the assessment record and the reviewer record, the reviewer's name only needs to be recorded or updated once.

However, this project will entail keeping the assessment data for an undetermined number of years. With the data arrangement I just described, that means I would have to store the assessment records and all of the related reviewer records if I want to be able to keep showing the name of the reviewer when looking at older assessment records. That could result in keeping a lot of extra data about reviewers (addresses, e-mail addresses, logins, passwords, etc.) who are no longer associated with the program simply because we need to keep their name tied to the assessments.

I think this is one of those situations where it makes sense to repeat a little data. Recording the reviewer's name in the assessment records allows me to let the administrative users of the application delete reviewer user accounts without impacting historical data. It means a bit more work in keeping the reviewer's name the same in both records, but in the long run I think it's worth the effort.

Finish the sentence: "I know I'm in a coding zone/groove when..."

"...I correctly write a recursive algorithm involving nested arrays on the first try."

What about you? When do you know you're in a coding groove such that it feels like you're coding by feel/intuition?

Problem: No Drag-and-Drop On The iPhone/iPod Touch. Solution: Click-To-Click Move

As I mentioned in an earlier blog post, the drag-and-drop functions provided by various JavaScript libraries (jQuery, YUI, etc.) won't work in the iPhone/iPod Touch Safari web browser because the dragging gesture is used for scrolling around the web page.

That's a big problem for those of us who use drag-and-drop in our web applications to allow our users to reorder the items in a list, but I've come up with an alternative method for rearranging items using the jQuery JavaScript library that works on the iPhone/iPod browser as well as regular browsers. I call it the "Click-to-Click Move" method (CTCM).

[More]

New YouTube API= Flex Apps To Manage YouTube Videos?

YouTube announced the release of a new set of APIs today that (from what I've read so far) allow you to use YouTube as a web service. You can use API calls to log into YouTube, upload videos, list videos, edit the metadata about videos, and more.

Flex is obviously well-positioned to make use of these new APIs, given that the videos themselves are done in Flash. I wonder what apps will come out of this new development?

Here's the link to the main YouTube API page:

http://code.google.com/apis/youtube/overview.html

Internet Explorer 8's Webslices Feature: Widgetizing Pieces of Web Pages?

The first public beta of Internet Explorer 8 was released today. In addition to supposedly being fully web standards-compliant, IE 8 comes with two new...well, capabilites: Activities and Webslices.

Curious (and admittedly a bit bored with what I was currently doing), I did a Google search and came up with a page that does a pretty good job of explaining Activities and Webslices:

IE8 Beta Is Out And With It Some Slices & Activities

The Activities capability allows web developers to provide XML code that will add contextual menu options to certain page content when you right-click on that content, allowing you to send that content to another web page or service, like sending an address on the page to a mapping service like Google Maps.

The Webslices capability is even more interesting (if I understand it correctly): using CSS, web developers can tag a piece of the web page as being a slice. End-users can then save this slice in IE, and IE will periodically check that slice for any changes. If the content is changed, the end-user is notified and they can pull up just that part of that web page as a pop-up widget in the browser.

I don't quite know what to make of it...it's like they've made it possible to send a request to a webservice from the page (Activities) and to make part of the page a webservice (Webslices).

It's an interesting idea, but what will the other browsers do with this stuff?

Adobe Open Source Website

This may get missed in the news about the release of AIR and Flex, but apparently Adobe released a new website dedicated to the open source projects they're involved with (Flex, BlazeDS, Tamarin, etc.):

Adobe Open Source

...Fortunately it didn't escape Nick Tong's attention (I read about it on his blog). Good catch, Nick.

Thoughts on Future Trends in Computing

At our staff meeting today, my manager told us our director was looking for input on emerging "21st century" technologies and technology trends, and to send him our thoughts so he could pass them along. Here's what I sent:

  • The introduction of applications that have both a web and and desktop front-end to access server-side data, with the desktop application provide offline functionality and data storage that can then be synchronized with the back-end data. Examples of this upcoming movement are Adobe AIR, Google Gears, and the Mozilla Prism project.
  • Increased portability of programming languages to other platforms. It's now possible to code .NET or Java application in dynamic languages such as Python or Ruby.
  • Increasing development of RIAs (Rich Internet Applications) based on AJAX, Adobe Flex, Microsoft Silverlight, and JavaFX. RIAs allow for more engaging and more powerful user interfaces and (in the case of the latter 3 technologies) make it easier to integrate audio-visual material into applications.
  • The continued growth of "cloud computing," where organizations store their non-critical data on external servers maintained by a third party but controlled and accessed by the organization over the Internet. The chief example of this is Amazon's S3 data service.
  • The continued trend of exposing the social (people-based) connections between data started by the social networking sites. The social networks themselves may stop growing, but the idea of using a person as a focal point for otherwise unrelated data is going to stick around.

...Hardly earth-shattering predictions, but other than within my particular unit, my organization isn't that hip to web trends.

Some Design Considerations When Building A Web App for iPhone/iPod Use

I recently finished a small project that involved optimizing some simple web applications for use on an iPhone/iPod Touch.

I won't bore you with the specifics of the project (unless someone asks) but here are some things I learned during the experience:

  • There is no touch analog for click-and-drag (probably because dragging is an action reserved for moving around the page), so drag-and-drops will not work and you cannot select text for copying, cutting or pasting. This means the dragging tools/effects implemented in the various JavaScript libraries (jQuery, Yahoo YUI, etc.) won't work.

  • There's really no way to "hover" over an element with your finger, so any CSS style initiated by hovering will not come into play.

  • Because fingers are less precise than a mouse cursor, you have to make sure there is enough space between different clickable elements (links, checkboxes, etc.) so that the user can easily click only on what they want to click on. So if you have a vertical list of hyperlinks, you may want to put at least one line of space between them.

  • When you click on a text field, textarea, or select box, the page zooms in and either a keyboard or a list of drop-down choices appears at the bottom of the screen. Once you make your choice/enter your text and tap the "Done" button, the zoom doesn't reverse, so you end up still focused on the input element. That means if you have a submit button off to the left or right, you have to tap and scroll the page to it in order to tap it. If your application is designed to be viewable in the iPhone/iPod without the need for zooming, you might be able to negate this effect by disallowing all zooming (haven't tried this yet).

  • Selecting a choice from a drop-down box does not fire off the onChange JavaScript event for that box, probably because the action is intercepted in order to allow the iPhone/iPod to do the actions described in the previous bullet. The onChange event for text boxes might be similarly affected.

The End of Netscape

I just read an announcement that our help desk, which provides technical support for all of the university, is ending support for all Netscape web browsers and e-mail clients on February 1st, the same date that Netscape itself is ending support for those products.

The announcement surprised me a bit: usually we're not that quick to cut off support for a product. But it makes sense: with spyware and other malware being such a big user support problem, having folks using a browser that's no longer being updated or patched to deal with such malicious programs would only add to the pain.

For me, that means less browser to code for when building internal apps (though pages that rendered correctly in FireFox and IE almost always rendered properly in Netscape as well).

Goodbye Netscape!

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.1.004.