March 11, 2010

Pages


Search Site


Subscribe

...to receive future posts via email.

Topics



Archives

Entries Tagged as 'CFUnited'

CFUnited 2010: Vote for me!

February 12 2010 by Adam

This year I finally worked up the courage to submit a couple of topics for CFUnited:

  1. FlexUnit: From Zero to… Something Greater than Zero! — A beginners guide to unit testing in Flex with FlexUnit.
  2. Pragmatic Version Control Using Git — An introduction to Git with a pragmatic approach.

Voting is open to the public, so if you would like to learn more about these topics, and potentially witness a grown man pee his pants, please go vote for them!

I'll be there regardless — this will be my 3rd time in the last 4 years — but it would be pretty cool to be a speaker.

Posted in CFUnited | 1 comments

CFUnited 2010

September 08 2009 by Adam

I registered for CFUnited 2010 over the weekend. Unfortunately, I wasn't able to attend CFUnited 2009 last month, but I'll be there next year! If you're planning on going, I would encourage you to register now.

The price is as low as it's going to get: $499 for the 3-day package, and "a special gift will be also be added to each of the first 200 registered attendees" (quoted from the CFUnited newsletter).

See you there!

Posted in CFUnited | 0 comments

CFUnited: Adam Lehman — Writing your first RIA with CF and Flex

June 20 2008 by Adam

Having never done anything with Flex before, I hope to get a fairly basic intro — how to get started — but at the same time, see an overview of the neat stuff you can do with Flex, in order to get some inspiration to learn it. We'll see how it goes…

  • Adam says that the hardest part was just getting up and getting here this early (8:30am). It should all be downhill from here.
  • "Flex is just a framework for writing ActionScript."
  • Rather than HTML, we use MXML (Macromedia XML Markup Language — they really though that one through!) and ActionScript.
  • Can communicate via SOAP, HHTP/S, AMF/S (Flash Remoting), RTMP/S. AMF is binary, so really fast.
  • Flex SDK is the compiler: command line, free. 
  • Flex Builder: Nice UI for Flex SDK. Professional eddition for charting, advanced data grid/OLAP, and performance profiling. Very nominally priced at $250-$700! 
  • LiveCycle Data Services seems like ADO.NET data management. Enables their equivalent of "disconnected mode" with offline work & re-sync when you come back online — but somehow, seems even easier! 
  • BlazeDS: is a free, open source product, very similar but not as full featured as LCDS. Offers real time data push to clients!
  • Data Services is not required for Flex.
  • Flash Remoting is baked in and has been available since CF 7.01.
  • Flex uses {} as CF uses ##.
  • Use <mx:RemoteObject …> to create an object that will communicate with CF.
  • Flex's <mx:Application applicationComplete=""> is like HTML's <body onLoad=""> "mate" (pronounced "mah-tay") is Adam's recommended Flex Framework.

Posted in CFUnited |

CFUnited: (LiveBlog) Joe Rinehart — What's New in Model-Glue 3

June 19 2008 by Adam

Start at the bottom of this post and work your way up.

3:44: I just realized that I got the numbering different from Joe's presentation. I don't know what, if anything, I missed. Whoops!

3:40: #8: Remoting. Available for Flex, etc. Not all requests have to come in from index.cfm, they can come through the remote CFC. I guess this would make more sense to me if I ever did anything with Flex.

3:36: #7: Formats! Various view-styles (HTML, XML, JSON, partial pages, etc) without duplicating events. All within one event-handler tag! Building web services within an MVC application in CF has never been so easy.

3:27: #6: Content cache. <event-handler name="page.home" cache="true"> I asked if you can setup the cache to be "disabled" in development mode even with caching turned on in the XML (so this doesn't have to be changed between production and dev environments) Joe says no (but interesting idea!), but a workaround would be to set the cache timeout to 0 in development. Programatic access to the cache manager is available, but the cache adapter provided is intended to be dead simple. If you need more than time-based caching, you're encouraged to implement your own.

3:25: Bean Injection! Yay! Auto-wiring without all of the manual labor. <cfcomponent beans="someDAO">

3:21: #5: Helpers. Works for both .cfm and .cfc. Easy way to inject UDFs or a library of them into your application, in a special scope (variable) called "helpers." Usage: #helpers.dateLib.daysTilXmas(now())#

3:15: #4: SES Urls baked in and a URL Manager. The component that handles this is wired in with ColdSpring, so it's easily replaceable if you don't like the default URL format or need something custom. URL manager now means linking is as simple as: #event.linkTo("myEvent")#

3:12: Third new feature? Application.cfc integration: onSessionStart/End, onApplicationStart, etc.

3:10: Second new feature? Event Types. This was discussed on the Model-Glue mailing list a bit, and some folks were unhappy about the implementation being in CFCs, as it is kind of configuration information; and then we'd have config in both XML and CFCs. Several people chimed in and asked for an implementation as XML. Joe says that it was committed yesterday (no documentation yet) so now we have either option. Awesome! Event types are almost like AOP, but more like decorators; you can add a before or after set of code for any event type. Cool stuff, I can't wait to play with this!

3:02: First new feature? Streamlined Workflow. Wiring is necessary, but predictable. When running in development mode, with the feature explicitly enabled, Model Glue will generate events for you. This is somewhat old news, but still just as exciting. Event Generation will also add CFCUnit/CFUnit test stubs. Cool!

2:57: Looks like we're almost through the history of Model-Glue, and about ready to get into new features. I seem to remember Joe writing somewhere that he would announce something as of yet unannounced here at CFUnited. I hope I'm right. :)

2:53: Joe asked if there were any Mach-II developers in the room, and decided he wasn't at too much risk of being hurt for things he would say. Snicker.

2:50: It looks like his preso will be mostly building on the "Roadshow" PDF that comes packaged with the v3 release candidates.

2:47: Here we go! (Can you tell I'm a little excited about this one?)

2:40: I thought Michael Dinowitz would never shut up! I'm pretty sure he went way-over his time for his Google Webmaster Tools preso. He's out now though, and folks are starting to pile in for Joe's Model-Glue preso.

Posted in CFUnited |

CFUnited: Rachel Lehman — AJAX Usability

June 19 2008 by Adam

This session isn't just about AJAX, it also applies to using DHTML to change pages — More appropriately: Non-Flash RIA's. Just like OO, design patterns can apply with usability too. UI design patters are starting to emerge.

Top AJAX Usability issues:

  • Breaks the back-button
  • Use fragments (#) to change URLs as actions are taken (See: Gmail url's changing while you navigate around your email)
  • Use a library with history management
  • Offer an undo option

"New-Fangled Web" – Brand new conventions

  • It takes years for a nidea to become a convention
  • Follow established design patterns: shift-select (traditionally found in lists) can be used for checkboxes and possibly elsewhere.
  • Provide contextual guidance: use icons, hover elements, etc, to indicate in-place editing available.
  • Provide a traditional alternative (in addition to neat things like sliders or date choosers, allow standard text input as well)

"Whats this thingamajig?" – use things people are familiar with.

  • Users may struggle with: sliders,
  • Provide a standard input in addition
  • Use a large hit area

"Did that just work?"

  • Give the user visual feedback
  • When there's a wait (progress bars, spinner, etc)
  • When something changes (can be too fast!)
  • Judiciously use animation
  • Add contrast, color, and highlighting
  • The "yellow fade technique" – draw attention to changed information or messages, and then fade back to normal (I hear this should be a piece of cake with jQuery!)

Distratction vs. Frustration

  • Don't distract the users focus with too much too fast
  • Don't frustrate the user with slow response times
  • Watch auto-suggest/type ahead delay
  • Give generous delays on hover menus
  • Optimize performance, load smart

It's not you, it's the site!

  • Think out the interactions and test, test, test!
  • Compensate for different environments (other browsers, resolutions, etc)
  • Use a tried and tested framework
  • If you can't do it right, don't do it! (Don't reinvent the wheel)

I'm not seeing it…

  • AJAX may be heavily mouse-dependent and visual
  • Non-standard controls aren't supported by assistive devices
  • Screen readers can't tell when a page changes
  • Use semantic markup with progressive enhancement
  • Alternative content may be necessary
  • Screen readers are getting better (W3C-ARIA)

Good, Better, Best

  • Make it work without AJAX first
  • Then add AJAX enhancements – unobtrusive design: add JS functionality with JS so that non-JS supporting browsers and devices still function
  • have keyboard-navigable alternatives to rich controls
  • keep mobile in mind!

Avoid AJAX as an afterthought

  • Make rich interaction a key part of the design process
  • Add it to solve problems, not just to add "sizzle"
  • AJAX changes traditional design paradigms

Designing for Rich Interaction Applications vs. Sites Websites: The user's primary task is to move around an information space and read its content.

Applications: The user's primary task is to change … (She moved too fast through this slide and I couldn't get all of it…)

Great example: Flickr — browsing someone's photos acts like a website, managing/organizing your photos acts like an application Using AJAX to improve usability

  • Eliminate circular flow
  • Provide instant feedback for errors and validation
  • Auto-save (sometimes — use drafts where appropriate. Examples: GMail, WordPress)
  • Show contextual help/menus
  • Streamline data entry (auto-suggest, type-ahead)
  • Enable direct manipulation
  • Look up the pattern!

More information:

Posted in CFUnited |