Stuff to click on

Saturday, March 31

Shame



This dishwasher apparently escaped from captivity and met a bad end. This particular species is rarely seen in the wild, but is more often found in suburban kitchens nationwide. I know that sometimes it's nice to let your dishwasher out to get some fresh air. But please, as a responsible dishwasher owner please consider using a leash so that they don't suffer the same fate as the one seen above.

Seen on our hike today, off China Hat Road just south of Bend, OR.

Friday, March 30

Scrapblog

I have found a fun - and potentially addictive - website. It's called Scrapblog. I played with it briefly during a break today... and you can see the results here.



Basically, this is a web-based tool for creating scrapbook-like layouts for your photos. It "talks" to Flickr and other photo sharing websites.

And... it's powered by Adobe Flex. (Excuse me, would someone please pass the Kool-Aid?) Better yet, it sounds like there is an Apollo flavor in the works, which implies that you will be able use it when you aren't connected to the Inter-web and then upload your designs when you go back online.

Thursday, March 29

Cats

For some reason this made me laugh so hard I cried.

Who knew cats were so darn funny?

Wednesday, March 28

Five

Gee, thanks Dave! ;)

Five Things You Don't Know About Me

I have taken up the challenge to complete this meme. I have to list five things about me that I haven't ever revealed in my blog. Here are the rules:
1. Get tagged
2. List five things that have not been revealed on your blog
3. Tag five others.

Here goes...

1. I played violin and viola with my high school orchestra. Poorly.

2. Many years ago I was in a parade at Disneyland. While we were "backstage" waiting for the parade to start I saw Mickey Mouse... without her head on.

3. I am not afraid of heights, but I am afraid to climb. For example, I start to shudder when I step on the second rung of a ladder, but I'm fine once I get to the top!

4. My first job was counting cans and bottles, and cleaning the meat department at Jack's IGA. I lasted five days. I quit because they wanted me to dress up like Mr. Peanut and the costume agitated my claustrophobia.

5. I am a trivia junkie (aka, a "Clavin" after Cliff on Cheers). I once tried out for Jeopardy! and it was the toughest test I have ever taken. When I lived in Salem I was a regular at Mr. Bill's trivia night at Porter's. I miss trivia night.

I'm tagging the following bloggers:
John
Carrie
Elise
Wendy
Cuppa Lovers

Parallels

I heart my MBP.

But there are times when I really need access to a Windows PC. For example - testing cross-browser compatibility for websites. I do have a lovely boat anchor PC on my desk at work... just adding to the clutter. I heard a lot of talk about Parallels so decided to give that a try (there is a free demo on their website if you want to check it out).

Parallels allows you to create Virtual Machines (VM's) - enabling Mac users to run Windows simultaneously with their Mac OS X on any Intel-powered iMac, Mac mini, MacBook, MacBook Pro, and Mac Pro Towers. (From the Parallels website.) The attractive feature for me is that you don't have to reboot to access the Windows OS, it runs like an application window.

The Windows XP install went off without a hitch. Parallels includes a Windows silent installation wizard that works beautifully... for Windows XP. It didn't work at all for Vista. I eventually got everything working though... here is a brain dump of what I learned!

Multiple VM's
This was pretty easy. From the Parallels Desktop menu click "File, New..." to relaunch the installation wizard.

Installing Windows XP
They went to Staples and got an Easy Button for this one. From the "operating system installation mode" window choose Windows Express. Enter your product key, name, and company. Insert the CD... and everything goes on autopilot. Woot-a-riffic!

Installing Vista
From the "operating system installation mode" window do not choose Windows Express. Instead, choose Typical. Yes, you will have to answer more questions and all of the normal "noisy" Windows install prompts. (You only have one HD. Which one would you like to install Windows onto?) But, here's the catch... Vista will actually successfully install! Pretty cool stuff, eh?

Ooops...
What, your Vista install didn't work on the first try? You must have ignored my advice and tried the Windows Express route! It's OK... and it's really easy to get rid of that failed copy. Highlight the control window with the FUBAR'd virtual machine. Then from the Parallels Desktop menu click "File, Delete". You still need to move the (automatically created) alias on your OSX desktop to the trash, though.

Please insert Windows Installation Disc X
This dialog gave me pause. When Parallels "captures" mounted volumes, they are unavailable on the OSX desktop. Since I have an MBP there is no shiny "eject" button for the CD drive, and the Eject button on the keyboard didn't work. It took a few moments poking around, and then I found the solution.
  • Click the little CD icon at the bottom of the Parallels window.
  • From the pop-up menu click "Disconnect".
  • The mounted CD will reappear on the OSX desktop, and you can eject it normally.
  • Insert the next CD, and wait for it to appear on the OSX desktop.
  • Click the same little CD icon at the bottom of the Parallels window (it will now have a little red X over it to show that it's disconnected).
  • From the pop-up menu click "Connect to default CD/DVD-ROM drive" (or the name of your drive) and wait for the session to recapture the CD.
Now you can click "OK" in the Windows installation screen and the installer will continue to copy files.

Capturing the mouse and keyboard
This was a little confusing. It's easy enough to "capture" your mouse and keyboard into a Parallels session - simply click anywhere on the VM desktop. But the hinting within Parallels says to "Press Ctrl+Alt to release keyboard and mouse". On a Mac, this translates to the Control and Option keys.

Note: I am using Virtue Desktops and I noticed that when I used the keyboard to switch between desktops the keyboard and mouse were released automatically.

Connecting to a network in XP
Everything worked automatically. There was nothing to configure, and the first time I launched the browser I got onto the Internet. Another big Easy Button for this one!

Connecting to a network in Vista
Well, despite the hype I definitely still felt like I was wrestling with Windows when I got to this point. My built-in Ethernet adapter didn't install automatically. (Note: I generally keep the AirPort powered off when I am in the office, so this just applies to the wired adapter.)

First I played "name that device driver" with Windows. I had some flashbacks to a recent Apple commercial ("Mac is issuing a salutation; accept or decline?") because every time I launched the Device Manager from the Control Panel I was prompted to approve that yes, I actually wanted to run the application that I just double-clicked. (Grrr... how cranky am I about that?!)

Finally I found one that worked. So... now I should be able to connect to the network, right?

Wrong.

Vista still showed that it was not connected to the network. I moused over the network status icon (in the Windows tray) and a context menu appeared. It restated (in rather large letters) that the computer is not connected to a network. I clicked on the link to "Connect to a network". According to this window, "Windows cannot find any networks" so I clicked on the link to "Diagnose why Windows can't find any networks". And gives the reason (drumroll, anyone?) This computer does not have a wireless adapter installed and configured.

But... I didn't want to use the wireless adapter. I wanted to use the WIRED adapter. And it was configured (or at least said it was), but Vista thinks the cable is disconnected. Huh??

Finally, after a lot of drama and hair-pulling I discovered that you need to install Parallels Tools first. This option is found on the Actions menu, and it just takes a couple of minutes once you have the VM started and are logged in. Once I did this, Vista restarted and then immediately connected to the network and everything went smoothly.

It was truly a "duh" moment for me. ("You are coming to a sad realization; accept or decline?") I guess this would be obvious to anyone that is vaguely familiar with Parallels, but as a n00b I didn't notice the Tools (or lack thereof) and it wasn't really obvious that this was a critical step. They installed automatically on the XP VM so no worries there. The moral of the story is don't fight with Vista over this, just install the Tools. Trust me on this. :)

More information
Parallels website
Here is another good resource with information about installing Vista on Parallels.

Monday, March 26

Notes

Via Andrea's Monday Mission...

Home 3.07 Release Notes



What's new in version 3.07?
  • Patches
  • Chores
  • Flex
  • Yard
  • MBP
Downloading
Downloads not available to the general public. Please contact the Home project coordinator to obtain access to the most current version. Note, all slots for the current version are sold out. New participants are not currently being sought.

Compatibility concerns
Continuing to experience intermittent compatibility issues between J.J. 12.3 (formerly known as the Butthead module), Stinky 11.6, and Boo 8.2. Resolution expected to take approximately 10 years (on or about when they mature from modules to independent application status).

Introduction of Patches 1.1 has been causing minor disruption to the functionality and dependability of Divot 0.5.

The aforementioned compatibility concerns have contributed to the developments of Migraine 36.5, Beer 24.7, and Sighing 4.20 in order to keep legacy modules (Scott and Jen, version numbers unknown) from crashing.

New features
Patches
Although unnecessary, the Patches module has been a positive introduction and we are proud to announce that this feature has been fully integrated. Main functions include sleeping, purring, eating and cuddling. Patches has assumed control of Sofa 2.1 and Windowsill 5.2.

Chores
Chores module been restructured and implemented in such a way to streamline the functionality and interaction between the J.J., Stinky, and Boo modules. As far as we can tell so far the introduction of the Chores module does not have a negative impact on the Homework feature and no Dishes options have experienced a crash so far.

Flex
This feature has contributed to the Jen module's interest and curiosity in Work 5.8.

Yard
Overlooked during the TooDarnColdSeason 7.2 updates, Yard 2.1 is finally getting the attention it deserves in this release. In this version you can expect to see Flowers 3.2 and Footpaths 2.1. Planned updates also include Shrubs 7.2, Roses 3.1, and MiscPlantings 12.3.

MBP
Primarily implemented to enhance the productivity of the Jen module.

Enhancements and bugfixes
Performance inhibitors have been removed with the addition of the Chores module and the Allowance feature.

Services no longer supported
Whining 3.2, Arguing 7.3, and DirtyLooks 1.3 have been deprecated. Any modules displaying these behaviors will need be taken offline and rebooted immediately to avoid further systems interruption.

Sunday, March 25

J.J.

The kid formerly known as "Butthead" now wishes to be known as "J.J." She assures me that she does not plan to stop acting like a butthead though.

Outside

Got some yard work done today, with Stinky's help. I weeded the top part of the yard; the border around the grass where I planted the tulips & daffodils last fall. Stinky added some plant food to the ones that are coming up. We have lots of baby tulips and a couple of daffodils are finally poking through too. He also planted some seeds (mostly wildflowers and lobelia). I don't expect much to come of the seeds but they were free seeds and it gave him something to do.

It rained a bit this morning so the soil was warm and moist!

Planted some more bulbs (dahlias & lilies) in containers for the front porch - so we can bring them inside if it gets too cold. And some herb seeds in smaller pots for inside. Stinky is keeping the basil in his room so he can track the growth. I also have rosemary, cilantro, and nasturtiums - in the kitchen window with Boo's fairy garden.

Now that I have done all that work it will probably snow... since that seems to be the way things work!

Friday, March 23

COWPU - SEO with Andre Jensen

My notes and scratchings from Andre's great talk on SEO at this month's COWPU meeting. Nothing is in a particular order!

Slides are not currently available; if they are posted then I will link them!

Google's algorithm for indexing and weighting results... complex is an understatement. :)

Meta tags
  • Google does not index keywords and description, but sometimes displays information from the description in search results.

  • Yahoo! does index description.


It is very important to have a block of text links to your main pages somewhere on all pages (i.e. a common footer).

Use words that plainly describe the information contained on the target page, and that you want to have indexed (i.e. "eFile" for tax company).

New version of Google Toolbar has "keyword insight" function - how and where the hints are generated is currently not known.

You can use tools like SEO Elite to determine link popularity; information about inbound links, anchor text, keywords.

The redirect type 301 is preferred by search engines. Any time you set up a redirect use type 301 (including URL misspellings). Always redirect to the same URL.

Google sees the following URL's as completely different pages:
  • http://www.foo.com

  • http://www.foo.com/

  • http://www.foo.com/index.html

  • http://foo.com

  • http://foo.com/

  • http://foo.com/index.html

So always link consistently to avoid diluting link popularity. Updated 3/27: more information about this was posted on Matt Cutts' blog today!

Javascript navigation and cookies stop search engine spiders in their tracks.

Duplicate content can create a scoring penalty, so instead of having 2 pages with the same content setup a 301 redirect on one of the pages, that points to the other page with the content.

If using session management screen the client type and don't manage spider sessions.

Put disclaimers and long text in images.

Put javascript and CSS into include files.

Search engines prefer hyphens to underscores (will treat this-is-a-string as 4 words to index, for example).

Create custom 404 pages that contain links to your main sections.

Recommended keyword research tools: Wordtracker & KeywordDiscovery

Mini Google dances occur from time to time - for example at the first of the year it was optimized for tax season.

Thursday, March 22

Patches

Introducing... Patches!



We met Patches at the vet, where he was a foster kitty. A real lovey, we decided to adopt him if no one else had by the time we returned from Mexico. Turns out he was meant to be part of the family! We brought him home on Monday. He and Divot are getting along fine.

Photo taken with the iSight camera built into my MBP, using PhotoBooth. Just in case you were wondering.

Peachy

I like ice cream... a lot. So whenever Ben & Jerry's is on sale I usually try to stock up on a few pints. One of the newest is "Willie Nelson's Country Peach Cobbler" and I couldn't resist picking it up a few weeks ago.

There has been a bit of news about this flavor over the last couple of days. Some of the pints were recalled because one of the ingredients, wheat flour, was left off the label... including the one I purchased. While I understand that this could potentially cause a problem with wheat allergy sufferers that was not going to come between me and my ice cream!

I found it... peachy! The ice cream has a bit of cinnamon flavor. The bits of peach are small but tasty. The shortbread pieces (containing wheat flour) are just a tiny bit crunchy - not tooth-busters.

Next up will be "Cinnamon Buns"... which also contains wheat flour, but it's clearly stated on the label. Just in case you were wondering.

Wednesday, March 21

Pics

Buenos dias!


Mexico pics are up! Click here to take a look.

The photo viewer does require Flash Player 9. If you don't have the latest version visit Adobe's website to download and install this software.

Geeky stuff:

I am continuing to tweak the photo player, just as a side project "for fun" and trying to further my Flex development skills. The original application was written by Ely Greenfield. The core animation, reflection, and navigation were built by him, not me. I already added the photo titles and plan to add navigation buttons, XML feed support (right now the descriptions and the photo file names are in hard-coded arrays), and ability to switch between more than one "album". I will probably "skin" the viewer eventually so that the colors are a bit more "me". So if you have any feedback as I develop this please let me know! Also the code is open source so if you are trying to learn Flex and want to take a look please visit Ely's site. With his permission I will probably make my source available after I make my changes as well.

Monday, March 19

Fun-o-meter

Via Andrea's Monday Mission... my vacation displayed in the form of a chart.



1 - Getting up at 3am
2 - 3 hr layover in LAX
3 - Landing in Manzanillo
4 - Driving to Perla Negra
5 - Drinking cerveza
6 - Walking on the beach at sunset
7 - Drinking more cerveza
8 - Shopping at the Mercado
9 - Drinking Coca Cola "hecho en Mexico"
10 - Wandering el Centro
11 - Drinking cerveza
12 - Walking on the beach at sunset
13 - Checking out the Tortugas
14 - Boat ride through the mangroves
15 - Sitting on the beach in Cuyutlan
16 - Ceviche and cerveza - mas fina!
17 - Trying to find the Las Hadas golf course
18 - Shopping at Soriana
19 - Mole! (and Coca Cola)
20 - Fishing trip - hour one
21 - Fishing trip - hour five
22 - Fishing trip - dolphins!
23 - Fishing trip - hour seven
24 - I finally caught a fish!
25 - Walking on the beach at sunset
26 - Flying home with Montezuma's revenge
27 - Sitting in LAX
28 - Landing at Redmond airport
29 - Sleeping in my own bed
30 - Seeing my kids again!!

Home!

Mexico was great... but it's also nice to be home. Looking forward to seeing my kids, my dog... and picking up our new kitty!

More on the trip later, after I catch up on email & twitter, and have a chance to put some photos on flickr.

Tuesday, March 13

Ole!

Heading to Mexico for some R&R... back soon!

Probably a little too soon... ;)

Monday, March 12

Press

Via Andrea's Monday Mission... a slice of life written in the form of a press release. Yah, I know it's pretty pathetic. I am not too inspired today.

Toast Identity Revealed

Bend, OR -- March 11, 2007

The Fiveforefun household was recently stricken with a confusion over the classifications of different types of toast.

Recently one of the shorter members of the household asked if they could make "French Toast". Upon further discussion, and description of the toast-making process it was determined that the short person did not want to make "French Toast" but actually wanted to make "Buttered Toast".

Our findings:

French toast is sliced bread battered with an egg mixture and grilled until lightly browned on both sides. It is topped with butter, powdered sugar, maple syrup (an elvish favorite), and sometimes berries. French toast is delicious.

Buttered toast (sometimes known as just "toast") is sliced bread inserted into a machine called a "toaster". When activated, the machine burns the bread, making it barely edible. The burnt bread is then slathered in butter and sometimes jam or honey. Toast is rarely delicious and usually only eaten when the taller members of the household shirk their grocery shopping duties and there are no other snacks available.

An important distinction is that "toast" is not served with maple syrup. But maybe it should be.

--End--

Sunday, March 11

Baseball

It's a sign of the season to come...

Boo and Butthead are off to the parks & rec baseball camp for the afternoon. (Stinky has been sick, but also didn't seem interested this year, so wasn't registered anyways.)

It was an adventure, finding everyone's gear! Where is your glove? Does it still fit? Where are your pants? Do they still fit? Shoes? Hats? Shirts? Socks?

Neither of the girls found their batting gloves. We had to rearrange the shoe situation to accommodate growing feet. Butthead is actually wearing Stinky's football cleats from two summers ago (it was a very short-lived football career)... hopefully they won't make her feet fall off from the cooties.

As they went out the door their differences in personality was reflected by their appearance. Butthead looked ready to play baseball - shirt untucked, hat slightly askew, no two pieces of clothing quite matching. Boo looked ready to pose for a baseball catalog - pigtails poking out above visor, shirt neatly tucked in, hoodie & pigtail holders selected to match the stripes on her socks.

But I am sure they will both have equal fun!

Updated at 5pm: They did!

Friday, March 9

Exhale

I am back from 360Flex... what a great week! I am a little slow getting rolling again and almost afraid to get back into the office routine since I am heading out again on Wednesday. Finally got home at 10pm last night as the Sherpa and I were bumped from our original flight. (It's all good - now I have an airline ticket that will get me to MAX 2007, 360Flex 2008... or somewhere sunny!)

Shout out's... It was fun to see familiar faces (Sim, Tom, Becky, Jared, Jennifer, Ben) and put faces to names (John, Ryan Stewart (yes, he has TWO blogs), Jesse, Mary, Drew, "the" polyGeek, Philip, Matt). I missed a couple of people I was trying to meet up with (Ann, Curt, Laura)... but I guess that is just how things go!

As far as conferences go... this had to be one of the best I have attended. The sessions were great, the attendees were there to work & play hard, and the food was AMAZING (gimme some more of those meatballs, please!). There are always hitches when you invite 400 of your closest friends to come to a party... and there were hitches... but our hosts and our venue (the eBay Town Hall Conference Center) were great and I will definitely be watching for the next event!

Play time is almost equally important at these events - and 360Flex was good for that as well. San Jose's night life scene is a little questionable, but we did manage to find some good hangouts. On Sunday night the Sherpa and I caught the CAKE show at Bimbo's in San Francisco. Monday night was the social at eBay (beer and snacks... yummm) followed by sushi at Sushi Zen. Tuesday was another social (Sim and I suggested Rogue Dead Guy Ale... and it magically appeared on tap!) followed by a fabulous "Swirled Margarita" at Aqui, then watching the boys be boys at the Blue Monkey. I confiscated laptops, Flash-enabled cell phones, PDA's, and blacklisted words including: "Flex" "Coldfusion" "FlashLite" "compile" and "API". I was holding strong with a one-drink-per-night maximum so I also became the cab driver (which was my pleasure). Everyone made it safely to the conference (if not the 8:30am keynote) on Wednesday morning, which made me proud! Wednesday was a little more low key - a lot of folks had left already or were hitting the sack early - so the Sherpa let me tag along to meet up with an old friend of his.

So... what did I get out of this experience? Got the word out about COWPU (check that spelling, John!). Came home with my backpack, laptop, brain fully loaded with books, information, software, more information, sneak peeks (not necessarily in that order)... And best of all made some new friends.

Most definitely worth the price of admission. I can't wait for next year!

Sold

Thanks to Andre for passing this along...
Neo@Ogilvy Acquires Global Strategies


The article is pretty vague, and doesn't indicate whether GSI's presence in Bend will change. Any thoughts?

Wednesday, March 7

360flex - Wednesday keynote

Started off with a talk about the Adobe development team for AmGen - a bicycle race tracking application. It incorporates live video, flickr content, and GPS tracking integrated with Yahoo! Maps.

This app was built by 3 people in 6 weeks. (Note: this is an incredibly short turnover. Impressive!)

Talked to their development cycle and some best practices, and recommendations for iterative application dev cycle.

Next Flex

I think this is what everyone came to see - what's coming up in the next version of Flex? Codenamed "Moxie" and "Borneo", release dates will be in 2007. Since it's still in development not all of the features are guaranteed to find their way into the final release.

Creative Suite 3 includes Flash, Fireworks, Illustrator, and Photoshop. All of these products will be tightly integrated with Flex.

Fireworks has a Common Library that includes Flex Components. This gives designers the ability to build comps - including Panels, scrollbars, and other elements - apply colors and styles - and export to MXML. (File, Export, MXML & Images) The resulting code can be pasted into new or existing Flex projects.

Borneo

The upcoming version of Flex Data Services is code-named Borneo. It will include better scalability, LiveCycle integration, and web services.

Moxie

The upcoming version of Flex Builder is code-named Moxie. Better language intelligence, profiling, design view enhancements, data integration, enhanced datagrid and list functions... just a few things that were done well in FB2 are going to be even better... or were overlooked... are high on the list of priorities.

There is a "rename function" option; go to an instance of use and in the background FB will parse your application and rename all other instances. This works for methods, variables, etc.

Code mapping includes the ability to search for all instances of usage for an element name - cross class!

Memory optimization options including variable space tracking.

Flex & Apollo

An Eclipse plug-in for Flex is coming soon. Apollo camp will be 3/16 at the Adobe campus (hint, hint).

Extending Flex

A lot of work is being done outside Adobe. Private companies (ESRI, Farata, and Yahoo!) and the community (flexlib) are working to extend the capabilities of Flex.
  • ESRI demo'd a mapping app
  • Farata demo'd a business reporting app
  • Yahoo! term extraction application was shown
  • flexlib is a great open source repository on Google Code. See sample components here


Flex API Posters

Soon these will be available online. They are working with distributors who will have the ability to drop ship them directly when orders are placed. Linkage coming soon!

What's next?

Interest for another 3-day Flex conference (360Flex) in August is high.

Possible usergroup tour for 1-day Flex trainings (120Flex) - perhaps 101 or 201 level?

Big thanks to everyone that made 360flex possible, and a huge success!

eBay Stuff

eBay is hiring. Wanna build cool Flex and Apollo apps for eBay, working from their campus in San Jose?

Hosting an eBay developer conference in Boston later this year.

Libraries for eBay/AS3 BETA are being released... NOW! Go to Adobe Labs to download the good stuff!

Tuesday, March 6

Twitter

Have you tried Twitter yet? It's like IM, only cooler and less invasive.

Little known fact... if you break Twitter you get a kitten! (Not literally, but the picture is darn cute...)

360flex - Flex with ColdFusion

presented by Ben Forta

(Note: he has a really cool logo on the preso title screen, with the Flex and ColdFusion logos morphing together. Cheezy happy moment!)

Brain dump stuff

Talking thru various Flex and CF integration good stuff, including FDS integration with CF.

CF and Flex were designed to work together so they compliment each other.

Flash remoting, FDS adapter, messaging gateway (CF enterprise edition only) ... all part of the CF integration package.

RDS integration includes file system, data source, sql query builder, and service browser goodies.

CF and FDS2 are both Java apps running on the J2EE Server.

Try Flex online at http://www.tryflex.org !!

Flash Remoting

Flash remoting (required for CF/Flex integration) is built into CFMX 7.0.2 with no plug in's or extras to install.

Use RemoteObject to access your CFC's. Please. :) More efficient because of the binary protocol used (AMF3) and there is no FDS required.

The CF application wizard in FB2 is really slick. There is a lot of good info about using this on the Adobe website and Ben's blog so I won't post details here. If you are starting to use CF and Flex together this is a great way to go!

CFC and AS class must have the same properties, so use the tag in your CFC. Use the full path to the CFC with a fully qualified dot notation path. AS object needs to be associated with the CFC - use the [RemoteClass] with the fully qualified path to the CFC. Or... things may work... or not. Remember that even though CF is case insensitive, AS is case sensitive ... so spelling and case (and day of the week and the current ambient temperature) all matter because AS is picky. :)

Flex Messaging

Server initiated communication (as opposed to client request). Publish & subscribe to "push" data to anyone monitoring a "channel".

Uses RMI Registry (must enable FDS via CF server admin first) to connect CF to the messaging gateway.

It is really slick - the push is immediate and doesn't depend on polling or waiting. All initiated by the server, a la "hey all you sessions that are listening, here is the new data you need to display". Cool!

Configured as an Event gateway in CF admin, just needs to be running and connected.

All this integration is really easy with Flex and CF. Connection with Java, PHP, any other backends will require more work!! (So.. another benefit to using CF!)

Security

By default, Flex and CF will only accept connections from the same box.

You can configure a list of allowed IP addresses for both sides if CF and FDS are on different boxes.

FDS Data Sync

Eliminates data versioning problems - the "whomever saves last, wins!" scenario. Server will detect a conflict and raise an alert giving developer ability to code message box to allow the client to decide what to do - or deal with the conflict programmatically.

UNFORTUNATELY HAD TO LEAVE EARLY DUE TO FAMILY ISSUE :(

360flex - E4X

presented by Danny Patterson

New XML classes in AS3
  • all old functions from AS2 still available
  • XMLList - if there is only one item in the list it will act like the type of that item
  • QName
  • Namespace


Creating XML Objects
  • Parse XML Strings - pass a string into a constructor
  • Use a literal
  • Create an XMLList


Using the language

Property accessors
  • Everything is an XMLObject, from the children and the data contained in them... even comments!!
  • Two dots returns all items, regardless of their level in the XML schema (to retrieve nested children)
  • Wildcards (*) - gets all elements under the catalog, so you don't have to know the child or element names
  • @* - gets all the attributes of a child, useful if you don't know the schema but want to see what's available


Filtering
  • can set conditional statements in variable assignments of type XMLList (i.e.
  • @id==0 will get element(s) where id value is 0
  • price<5 will get elements where value of price is less than 5
  • price>=35 && price <=50 will get elements where value of price is between 35 and 50
  • desc="toaster" will get elements where value of desc is toaster (type string)


Iterating (fancy word for "looping")
  • "for" loops similar to other PL's but in var declaration, useful for totaling columns
  • "for..in" loops
  • Neither of these are recommended methods... so try one of these instead!
  • "for each..in" loops


Namespaces (how to group related objects) - extends Sprite
  • Create an envelope with soap namespace and then create a body element
  • Create a variable of type Namespace that points to the soap and add to the body
  • Use a default xml namespace and add to the body


Sending and Loading
  • No longer a part of the XML object
  • URLRequest
  • URLLoader

360flex - Flex Builder Secrets

presented by ">David Zuckerman

There were some audio difficulties during this preso, so hopefully I caught everything correctly!

Some of the items they are working on for the new version are "find all references", "refactoring" and "language intelligence".

Some tips and tricks that you might not know about Flex Builder:

Importing types
  • When using code insight, if you accept a suggestion the "import" statement will be added to the document.
  • This also works when you type through and complete a tag.
  • In addition, when adding event listeners and other functions tag insight will prompt all relevant actions.


Context and braces
  • bracket highlighting in code to help you find matching braces. Great for nested statements
  • Ctrl(Apple)-Shift-P will jump the cursor to the closing bracket!
  • When an opening brace is typed, a closing brace is automatically inserted on the following line.


Keyboard shortcuts
  • Ctrl(Apple)-Shift-T "open type" list of all types used and available in your current project.
  • Ctrl(Apple)-mouse click on any identifier will jump you to the file & location where it is declared.
  • Ctrl(Apple)-O search for declaration to jump to a location in your code


Tags are automatically closed when the ">" character is typed. Line breaks are created only if appropriate (i.e. mx:String is closed on the same line).

Script blocks are automatically populated with a closing tag and the appropriate CDATA information for AS.

Integrated help
  • Apple-? or Ctrl-1 opens help tag to the side with information relevant to the cursor location.
  • Additional clicks causes the help screen to update. Will show the selected object and any containers.
  • Shift-F2 will open full help window for selected object.
  • Hover over an object for additional information, data type hinting, return type of function, etc.


ASDoc
  • Ctrl-Shift-D (or Source, Add ASDoc)
  • Introspects and adds documentation (comment) block with parameter information


Ctrl-Shift-O removes any unneeded import statements from the current scope.

Versioning and check in
  • Checks in every time you save
  • right click on file and view local history to view file changes
  • can roll back files from local history
  • In Prefs, Workspace, Local history you can set parms for what info to keep


Hacking Flex Builder - do this at your own risk and be careful. Backups are good. The help desk will not help you if you break FB2 with this. Hacks might not work in future versions.

Code coloring
  • settings in an XML file
  • backup your jar
  • open in WinZip (no Mac process)
  • edit colors.xml
  • key values should be fairly self explanatory
  • some may exist but be no-op's (i.e. identifiers)
  • "Sort of" works in FB3/Moxie but the file location is changing


David's mom is in the FB2 credits because she baked them cookies and sent them from Michigan. :)

Graphical Property Inspector (GPI)
  • in design mode, there is a GUI property inspector
  • three main sections: common, style, and size
  • built from XML file so if you create a custom component you can create a GPI for it :)
  • Also works with built in controls, if there is something you use frequently. Cool!


What do you call a fish with no eyes? Fsh. (Crickets chirping...) Hahaa...

Any time a JAR file is changed you need to restart for changes to take effect.

Extending Flex Builder in Java - OK I am gonna try to hang in there for the Java stuff. ;) Looks like I am needing to learn me some Java goodness on top of Flash goodness. My brain is getting full.

FB2 is built on Eclipse so it is extendable. You can add actions to the FB editor. (I am pretty sure I messed up something in this process so please don't take my notes as gospel for this section!
  • create extension point
  • add needed FB IDs
  • change the Eclipse class to trigger


The precursor to FB2 was code named Monk. It was scrapped when the team decided to move to the Eclipse platform. The original was written in C++!

Code model projects allow you to find the parse tree for a given file and access language indices. Supports block level scoping which is at odds with AS3.

One of the FB directors used to be a fairly well know techno DJ in Detroit.

Good information and demos... will definitely need to make myself a cheat sheet with the keyboard shortcuts as these are things I regularly do "the long way". :)

360flex - Enterprise Apps

presented by Anatole Tartakovsky

When developing enterprise apps, particularly for outside customers, there are many considerations. Users may not know about "UI" or "Flex" or other buzz words but they DO know how they get their job done today. They will want to figure out ways to make things comfortable - by exporting to Excel or other familiar platforms. Your goal should be to design the enterprise app to empower users and keep it simple and maintainable so they do not try to circumvent the app. It should be customizable and extensible in real time

The demo code and information from this session are available on Adobe Developer Exchange.

DAOFlex - completely automates manual Java coding for CRUD tasks.

This is really for Java developers (which I am not)!

Monday, March 5

360flex - Yahoo! AS3 and Flex 2 Libraries - Part

presented by the Yahoo! Flash platform team

A bit of background about the Flash platform team. They are the "evangelists" for projects that should be coded on the Flash platform. They develop corporate implementation, code, library, and component standards. Some of the projects with API's available include: Weather, Answers, and Search. (Other API's will be covered tomorrow!)

Yahoo! Weather is a coordinated effort with the Weather Channel to supply detailed meteorological data, forecasts, and other info. Data is updated hourly. This library is the simplest.

Yahoo! Answers is a community driven resource, and is the largest Q&A site on the web. It was launched in Dec 2005 and already has >90% of the market share. This library is a bit more complicated, but still is pretty elegant.

Important: You will need to register for a free API key in order to access these services. I noticed that they don't have a listing for a Coldfusion developer center... but there is a sample app for the Search API that was written in Coldfusion so hopefully that is coming soon. ;)

The team demo'd some cool applications built using Flex: an Answers GUI, a Weather GUI with Answers "hints" based on current conditions. All of the apps were built in under a day, using the API's. Pretty neat stuff!

Yahoo! Search can find images, video, audio, song downloads, album info... tons of other stuff! This is the simplest API of all... just bind the data provider for your control to the results of the service! A simple example was demo'd where the user can enter a search string and present the results in a SWF. They added a couple of different states for different search types (i.e. display image thumbnails in an image search).

Tomorrow... more AS3 libraries, upcoming.org, maps & pipes!

360flex - Component Development in Flex

presented by Chafic Kazoun

A bit of a history lesson, a few years ago the expectations were very different. The bar is being set higher for good UI and business rules. Because of this we as developers need to carefully consider the architecture of Flex applications.

Break the application into smaller components. Allow yourself to focus on one component at a time. Since everything in Flex is a component, it allows reuse of code... AND a 3rd party market for components is now feasible. This is a strength over AJAX-based applications since they are javascript based.

What are application components? Higher level information. For example, a datagrid list of names (not editable). Decide what will be a component, then create the component, decide and implement the API. Don't overthink things - it doesn't have to be perfect. It's OK to go back and make changes during the dev cycle.

Layout the component as if it is a standalone application and save. Then import the file as a namespace [i.e. xmlns:pf2="com.subfolder.views.*] in your main application MXML file, and invoke the file. Congrats! You just wrote your first component.

Best practices... Remember that the component should be a "black box". That is, the application should never "reach inside" the component. This is especially important as you start to reuse components! Use the Inspectable meta tag to provide insight for enumerations. Use the Bindable meta tag to make the getter and setter accessible. Use dispatching and event listeners (add the event info to a meta data tag in the component).

Don't go too crazy and go to a lot of depth... try to keep things simple. For example... don't put styles into your component, do that at the application level.

What are custom components? You can create complex/advanced components, at a commercial level. Can be distributed or shared among other developers. Recommended to develop them in AS3, not Flex. An important difference is that for custom components you must author the validation steps. This step is not necessary for application components... and if your application component is that complicated you should consider writing it as a custom component!

Always check to see if there is already an instance of your component. This is especially important because someone could write a component to extend your component, and you wouldn't want them to fight one another.

From here we get into a lot of technical detail that I don't quite understand yet. ;) But I am pretty sure that as I use this stuff it will make sense. (At least, I hope so!) The lifecycle of a custom component is fairly complicated, and the steps of invalidation, commitment, measurement and validation have to be coded properly. In ActionScript. Again... I need to learn me some Flash goodness.

360flex - Flex Hearts Flash

presented by Grant Skinner, who finally found eBay after a half hour walk thru beautiful San Jose. ;)

Does Flex love Flash? From the POV of an ActionScript (not Flash) developer...

Embed... you can get rich contact into Flex apps via metadata, directives, or styles [i.e. @Embed(source='myfolder/myfile.png') in the MXML]. The 4 non-flash data types you can embed are images, audio, fonts & binary.
  • Images: supports formats jpg, png, gif, etc; no compression (native); complex formats not supported [i.e. SVG files with animations]; compiler is smart enough to recognize the same asset if embedded more than once

  • Audio: supports formats mp3, etc

  • Fonts: trueType, in short - don't do it. It's a really big pain in the tookus. But it's available "mileage may vary"; system, just like it sounds - reference by system name not the file name, more compatible with CSS and web standards; Resource hog if not controlled with Unicode ranges [i.e. in declarations include 'UnicodeRange=englishRange' - as long as the language range is set up in the flex-config.xml]; no support for bitmap fonts.

  • Binary: supports formats octet stream, swf, etc.; can decompress files; "shake & bake" swf's (a la Talladega Nights)


BUT... sometimes it's easier to just do all this in Flash. It does a much better job of prepping and managing assets (library). Note that symbols must be set to "Export for ActionScript". It centralizes embed statements instead of sprinkling them thru your code. Access is straightforward dot notation. Disadvantage is that it's easier to have dead assets... resource hog.

There is a "Create Flex Asset Library" tool to assist with this process. It autogenerates files and puts assets in the correct locations. Generated code is pretty clean, with little waste. Subsequent instances of running the tool, the form fields are pre-filled to the last settings so you don't have to remember the settings.

Flash 9 also has better integration with designer tools, so it's easier to bring in collateral from files created with Photoshop (for example). It can bring in vector data (or can flatten to bitmap). Text is text. Compression settings can be tweaked. It helps you import the designer elements pretty intelligently and looks like it will work well!

Fonts are still a little tricky. Flash gives bitmap fonts an auto-assigned name that you have to use (which will be similar to "Arial_12pt_st").

Here's where things get interesting...

Embedded symbols are stripped of all ActionScript.

So... how to get around this?
  • Shake N Bake: Embed the SWF as an octet stream, use loadBytes and getDefinition to access classes and symbols. No code hinting and no strong typing

At least... until Flash 9 comes out
  • Then use FlashCS3 SWCs. Code hinting is supported. However you cannot directly specify a location for a SWC. Bummer dude.


Since the Flex framework only "likes" Flex-y display objects, there are a couple of work arounds that "avoid" this issue. But since there isn't any intelligence... do it right the first time please. Better idea would be to write a class to extend the UIComponent to deal with the asset properly. (Ack... I am not even going to try to cover the details here!) In short, I need to learn me some Flash goodness.

Side note - Grant has been trying to build a rhythmic gymnastic "ribbon" game for the Wii in Flash, using gestures from the WiiMote. I heart geeks.

360flex - 5 minute CRUD with FDS

presented by Kevin Hoyt

FDS = Flex Data Services - a server side product from Adobe
CRUD = create - read - update - delete

Kevin's background is in Sales, but prides himself in knowing the Flex product. Background in C programming, Java, RPG, AS/400 and more... so please don't be afraid and run away.

We've made things look nice... but now we need to actually work with the data. We have to get the data from where it resides (db, XML, whatever), present it to users, and allow users to change the data simultaneously.

SOAP and REST are great... but scalability becomes an issue quickly. How do we write an application to keep everything in check, and make sure it's scalable?

That's what Adobe is trying to do with Flex Data Services (and LiveCycle). In fact, as this technology generalizes it is starting to be known as LiveCycle Data Services. There are adapters for CF, Java, and other backends. Data management and messaging "push" technologies are key.

Going into the code... will hopefully post linkage to demo later! :)

360flex - Monday keynote

Good morning from the 360flex Conference, at the eBay Town Hall in San Jose, CA!

Mark Anders @ Adobe is presenting the keynote this morning.

How many Flash developers? A few. Mark used to work at M$... glad to hear that he is now with Adobe! He is talking about trying to develop web biz apps in Flash. Ouch! Lots of respect for the Flash developers who were/are able to make that work.

Flex was designed for developing biz apps on Flex. It leverages the best of two worlds: HTML and Flash. Flex uses MXML markup language. It's XML based, describes the UI and ties to AS for heavy lifting.

Some code... heavy stuff on Monday morning.

Talking about components and composition. Some good components and apps in the community:
- Taking a peek at the fisheye component from the quietly scheming blog - Ely Greenfield.
- LightTable (which was demo'd at the last COWPU meeting) also being shown off
- Picnic.com is a cool Flex app for photo editing!
- Virtual Ubiquity (login required) - web based word processor. (The dev team for this project is sitting behind me) Image and text alignment. Zoom. Typography. Table editing with sizing handles and guides. List Handling. (Take that, AJAX!!)

Bottom line... Flex is Flash! Cool stuff!!

Talking about AS2 vs AS3, power and speed between the two versions. Using the Ring of Fire applet to demo. (Linkage?) AS2 looks like, well, random orange blobs. AS3 actually looks like a fiery blast on the screen (don't melt the LCD panel). It renders that much faster!!

Mike Downey - Senior Product Manager for Apollo. This is the new cross platform environment for RIA's. Some of the great features coming with Apollo include local file access, offline/online detection and events, drag and drop between the local system and RIA, clipboard access, background processing, multiple window support, custom chrome and more...

An example in development is the "gTimer" calendar for organizing tasks. Sounds simple - but there are some really powerful features for the presentation management and repurposing of code.

Combining AJAX with Flex, another team created "Maptacular". You can import vCards into the app, and drag a "pin" to a Google map. It automatically shows you the pin location from the vCard on the map. That's not all... if you drag a second pin to the map it shows the location and generates driving directions. Very cool!

The next version of Flex (version 3, code named "Moxie") is coming soon, and now we get to hear more! :) One of the main themes is the designer/developer workflow - Enhancing the tie ins with other Adobe products. Working with data and connecting Flex to backends should become even easier. The ability to generate Apollo apps will also be built-in. (Woot!) Debugging and productivity are also of high importance. Mark doesn't get to show us anything today... but we will get to see more later this week. We can expect Flex 3 "Moxie", Apollo 1.0, and Creative Suite 3 ("Philo") all to ship in the second half of 2007. (hmmm... MAX?)

Recipe

Via Andrea's Monday Mission... one of life's little moments written in the form of a recipe.

CAKE

1 - sherpa
2 - flights on United
1 - rental car
1 - hotel room (a suite with 2 - bedrooms!)
1 - beautiful twilight drive into San Francisco
1 - sweet parking spot
1 - Guinness
2 - Extra dry ciders
2 - orders fish & chips
2 - small green tickets
1 - indelible blue ink handstamp
1 - really steep hill

Combine all ingredients and shake well, for one long day and an incredibly fun evening!

Braindumb

I am currently attending the 360flex conference in San Jose, CA. Most of my posts over the next few days will pertain to the conference and the sessions I am attending. They will be titled "360flex" and the session name.

Most of the info is braindump and notes for personal use - but I am publishing them to the blog in case visitors also find the info useful. Let me know if you have any questions about the conference or the info, and I will try to answer your questions.

Saturday, March 3

Away

The bags are packed...

The downloads are downloaded...

Music and movie for the trip are queued up...

I'm ready!

Really wishing this was my "off to Mexico" post... but not yet. First I am off to the 360Flex conference at eBay in San Jose, CA. I will be getting "Flex-y" with 399 of my closest web geek buddies! This should be a good trip - I am getting more comfortable with the "community" of developers that attend these shows. There should be a lot to learn and plenty of networking opportunities.

As a bonus I am looking forward to having dinner with some old friends from the Gannett days, on Wednesday night.

And... If traveling all goes smoothly and we arrive in time, the Sherpa (as the Troll is now known) and I will catch a show in San Francisco tomorrow night!

Thursday, March 1

MBP

It's here! My Mac Book Pro arrived this morning. I have been busy downloading updates, reinstalling applications, and copying files. A new laptop is exciting, but a bit of a pain and a lot of work. I am looking forward to having everything set up again!

I am not a big fan of the option to re-import all the settings from my old system. I still prefer the old school way ... copying things little by little. (Though, it's much easier now that I have a USB memory stick!) The way I see it, moving to the new computer is kind of like moving to a new house. You move some stuff directly over, move other stuff putting it in a slightly different place.

And the rest just goes to the dump!