<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1670252685898016604</id><updated>2012-01-27T04:47:42.032-05:00</updated><category term='Adobe'/><category term='coldfusion coldspring'/><category term='business'/><category term='conferences cfobjective coldfusion adobe frameworks'/><category term='SQL'/><category term='IDE&apos;s'/><category term='news'/><category term='patterns'/><category term='ajax'/><category term='the internet'/><category term='random'/><category term='ActionScript'/><category term='printing'/><category term='advertising'/><category term='PhotoShop'/><category term='Air'/><category term='Dreamweaver'/><category term='flex'/><category term='browsers'/><category term='seo'/><category term='creativity'/><category term='creative suite'/><category term='Book Reviews'/><category term='Flash'/><category term='accessibility'/><category term='coldfusion model-glue frameworks cfug presentations'/><category term='css'/><category term='cfunited'/><category term='software'/><category term='tips'/><category term='marketing'/><category term='Model Glue'/><category term='design'/><category term='ColdFusion'/><category term='usability'/><category term='conferences'/><category term='Illustrator'/><category term='google'/><category term='presentations'/><title type='text'>Rae's Blog</title><subtitle type='html'>Journeys of a designer/developer.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>69</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-4730512542961167825</id><published>2008-09-11T20:25:00.004-05:00</published><updated>2009-06-30T17:28:56.255-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coldfusion coldspring'/><title type='text'>New ColdSpringFramework.org Site Launched</title><content type='html'>The eagerly awaited, fresh new &lt;a href="http://www.coldspringframework.org/"&gt;ColdSpringFramework.org&lt;/a&gt; site is now online! It was somewhere around CFObjective this year that I heard the ColdSpring team was being pestered for a new site (well, long before that - but that's when I got serious about it) so I finally hunkered down and did the design I had promised &lt;a href="http://cdscott.blogspot.com/"&gt;Chris&lt;/a&gt; long ago, then finished the HTML/CSS at CFUnited. &lt;a href="http://www.wiersmablog.com/"&gt;Kurt Weirsma&lt;/a&gt; did a fabulous job implementing the site in record time, and &lt;a href="http://www.briankotek.com/"&gt;Briak Kotek&lt;/a&gt; has been furiously working away at documentation as well as gently prodding the rest of us to get our parts done :). Those ColdSpring guys are amazingly productive...  the new site has an exciting future with a lot of great new things planned, and it's been a real team effort to get it online. I hope I can now say that ColdSpring has a site that does the framework justice. &lt;a href="http://www.coldspringframework.org/"&gt;Check it out&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-4730512542961167825?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/4730512542961167825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=4730512542961167825' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4730512542961167825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4730512542961167825'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2008/09/new-coldspringorg-site-launched.html' title='New ColdSpringFramework.org Site Launched'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-656483316987765126</id><published>2008-06-10T21:49:00.002-05:00</published><updated>2008-06-10T21:55:50.221-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coldfusion model-glue frameworks cfug presentations'/><title type='text'>Introduction to Model-Glue Presentation from MD CFUG</title><content type='html'>Thanks to everyone who attended my Introduction to Model-Glue presentation tonight at the MD ColdFusion User Group. It was nice to see some familiar faces there!&lt;br /&gt;&lt;br /&gt;As promised, here is the latest version of my presentation and some of the code samples we looked at.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://share.acrobat.com/adc/document.do?docid=990e55a4-58b7-4349-b975-06ca911828f6"&gt;Presentation PDF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://share.acrobat.com/adc/document.do?docid=7fcf109c-3b9d-4600-b420-5e6ad7a8df15"&gt;Sample Application - CF Art Gallery&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm sorry we ran out of time and didn't get to look at the Art Gallery in more detail - I usually cut my presentations too short and I guess this time I overshot it! If you have any questions about what was discussed, feel free to contact me at raelehman [at] gmail.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-656483316987765126?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/656483316987765126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=656483316987765126' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/656483316987765126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/656483316987765126'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2008/06/introduction-to-model-glue-presentation.html' title='Introduction to Model-Glue Presentation from MD CFUG'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-5776055643823229856</id><published>2008-05-14T15:03:00.003-05:00</published><updated>2008-05-14T15:34:15.230-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='creativity'/><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>To BES, or not to BES?</title><content type='html'>Today, I draw the line at learning Blackberry development.&lt;br /&gt;&lt;br /&gt;This blog is about being a designer and a developer. And as the only person in my Marketing department, I do the jobs of at least three distinct positions, if not more. I'm not saying I do the work of three people, they keep me busy, but not that busy! However I am the sole person responsible for internal applications development (barring IT/systems admin support for server and database management, and most reporting), marketing strategies and tactics, and graphic design/creative direction. In these varied roles I find myself making distinct "hat switches" from day to day: Monday I design and mail a few thousand postcards, Tuesday I upgrade our dashboard application, Wednesday I coordinate trade shows. And so it varies.&lt;br /&gt;&lt;br /&gt;It's just too much of a shift to spend the first part of my day planning a direct mail campaign, and the second half programming Flex and CF. Sure, I've done it. But I find I am more productive if I put on one hat and wear it all day, than if I jump around between tasks. I'm not sure if I get more done that way, but it feels like I do! I design better if I'm not thinking "but how will I program this?." I program better if I stay knee deep in code once I'm there. I open my mind to develop marketing strategies better if my mind isn't cluttered with thoughts of design patterns and syntax.&lt;br /&gt;&lt;br /&gt;This generally works, but I feel I could be a lot better at any one of the three, if I just focused on it all the time. Extra hours of experience aside, never having to think about the other roles would help me focus and specialize. I've struggled with this a lot lately, thinking that I need to specialize my skill set (way before Seth made &lt;a href="http://sethgodin.typepad.com/seths_blog/2008/05/we-specialize-i.html"&gt;this post&lt;/a&gt;). And I've wondered...where &lt;em&gt;do&lt;/em&gt; I draw the line in learning new skills? Should I?&lt;br /&gt;&lt;br /&gt;My company recently moved from hosted Blackberry service to our own BES, and the opportunity of deploying our own applications and themes has excited management. Since I do all of our internal applications development, I will theoretically be writing any Blackberry applications we develop. I read up on basic Blackberry development a few months ago when this prospect first arose, and got to understand the basics, but somehow I cannot get behind forcing myself to take on Blackberry development, nor do I see a lot of need for us to develop BB applications.&lt;br /&gt;&lt;br /&gt;I will always learn what technology is required to do my job, and I certainly never plan to just "stop" learning new skills because my brain is full, or such nonsense. However, I do feel like venturing into BB is unnecessarily broadening my already ridiculously general skill set. As the Director of Marketing, do I "pull title" and tell the IT guys they're on their own? I'm thinking now would be a good time to do that.&lt;br /&gt;&lt;br /&gt;Technical learning curve aside, I might feel different about this if I saw a real need for a custom BB application within our organization. But none of our core systems (the ones that would really be valuable if they were mobile-accessible) have any type of open API that would allow proper integration (read: I would have to directly connect to an undocumented legacy database, and probably violate our software license), so anything I build would be a total band-aid solution, mobile "just because we can". Hardly worth learning a new skill for that.&lt;br /&gt;&lt;br /&gt;Despite my goal of being a lifelong learner, I feel like at some point I have to say: "let someone else deal with it!" So ends the rant of this designer-developer, and I'll put this out there to all the other generalists: where do you draw the line? How do you decide NOT to learn something? How do you juggle different roles?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-5776055643823229856?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/5776055643823229856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=5776055643823229856' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/5776055643823229856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/5776055643823229856'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2008/05/to-bes-or-not-to-bes.html' title='To BES, or not to BES?'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-4828307491260055967</id><published>2008-05-08T08:08:00.005-05:00</published><updated>2008-05-08T08:37:59.166-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conferences cfobjective coldfusion adobe frameworks'/><title type='text'>CF.Objective() 2008, #3 Come and Gone</title><content type='html'>Well...another year has passed for the CF.Objective() conference! It's hard to believe that the first one was three years ago.&lt;br /&gt;&lt;br /&gt;Funny story about that... when I first heard about it -- the rumored "advanced" ColdFusion conference -- I thought, "there's no need for me to go to that, I'm not really that advanced." But it was over a weekend, so I tagged along with Adam and told him to tell Jared (Rypka-Hauer, the organizer) that if he needed any help running the registration desk or anything, I'd be happy to donate my years of experience running conferences.&lt;br /&gt;&lt;br /&gt;As it turned out, they did need my help. I worked the desk, hand-scrawled signs to post outside the meeting room doors, and most importantly: got to meet just about every one of the 100 guru developers that were there. And as I worked it, I realized that the session schedule looked totally awesome, and that there were things I could learn there, so I was very happy to find out that it was happening again. The next year, I returned as an actual attendee (and also designed that "E for Enterprise" t-shirt you may have seen).&lt;br /&gt;&lt;br /&gt;For the past two years I've been sort of their "designer on the side", helping out with various graphic needs of the conference, and this year I was honored to get a special "VIP" badge - as they put it - "anyone who cuts their honeymoon short to attend a conference deserves a VIP Badge"! Well, we didn't exactly cut the honeymoon &lt;span style="font-style: italic;"&gt;short&lt;/span&gt;, but we did go straight there because we simply did not want to miss such an excellent conference.&lt;br /&gt;&lt;br /&gt;This year's conference was better than ever. Best Meetings, Inc &amp;amp; Jim Lewis, the conference planners, did a great job - things have come a long way since that first year where we didn't even have signage. The downtown St. Paul Crowne Plaza hotel location was great, within walking distance of several restaurants and conveniences. I saw several excellent sessions, covering a preview of Model-Glue:Gesture from Joe Rinehart, Developing Flex Without a Framework (heresy? no!) by Max Porges, Adding Chat with BlazeDS by Tom Jordahl... those were some of my favorites, but every session I attended was really great.&lt;br /&gt;&lt;br /&gt;A lot of the conference buzz was about the new frameworks - &lt;a href="http://mate.asfusion.com/"&gt;Mate&lt;/a&gt;, the Flex Framework from AsFusion which really impressed the crowd, including Chris Scott who has been working on a Flex framework of his own - &lt;a href="http://code.google.com/p/swizframework/"&gt;Swiz&lt;/a&gt;. Then there was &lt;a href="http://www.model-glue.com/coldfusion.cfm"&gt;Model-Glue: Gesture (3),&lt;/a&gt; now in Alpha.&lt;br /&gt;The Adobe team held a BOF (Birds-of-a-Feather) discussion of ColdFusion 9, which I thought went really well - many great ideas, and mostly constructive discussion. The Adobe guys kept really open minds, despite the consistently difficult challenges this community throws at them!&lt;br /&gt;&lt;br /&gt;A lot of the talk there was about ActionScript on the server (to supplement or replace CFScript, and using AS Objects as a replacement for CFC objects) - plenty of controversy and counterpoints there, and I will leave it to &lt;a href="http://www.cfinsider.com"&gt;the&lt;/a&gt; &lt;a href="http://www.adrocknaphobia.com"&gt;experts&lt;/a&gt; to &lt;a href="http://tjordahl.blogspot.com/"&gt;cover&lt;/a&gt; that in detail! There were several other new or improved feature suggestions, many having to do with server administration. The demand for a real CF IDE was as high as ever.&lt;br /&gt;&lt;br /&gt;I was still on Hawaii time so I had a rough time getting up in the morning for the early sessions (I did miss one slot - bummer!) but I was able to actually stay awake late to hang out with everyone at the hotel bar afterwards so there was an upside... We had a blast, as always - met lots of people, caught up with friends. No, this wrap-up is not technical, more like a ringing endorsement for my favorite CF conference! I am already looking forward to next year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-4828307491260055967?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/4828307491260055967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=4828307491260055967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4828307491260055967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4828307491260055967'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2008/05/cfobjective-2008-3-come-and-gone.html' title='CF.Objective() 2008, #3 Come and Gone'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-2639865307036371201</id><published>2008-05-08T08:01:00.003-05:00</published><updated>2008-05-08T08:07:57.321-05:00</updated><title type='text'>Speaking on Model-Glue at MD CFUG June 10</title><content type='html'>If you're in the Washington DC area, I'll be speaking at the Maryland ColdFusion (Adobe) User Group in Rockville, Tuesday June 10, 6:30 pm to 9:00 pm. My topic will be "&lt;span style="font-weight: bold;"&gt;Getting Started with Model-Glue&lt;/span&gt;", and there will also be another presenter, Jeremy Kadlec, talking about "SQL Server 2008" which I am looking forward to seeing!&lt;br /&gt;&lt;br /&gt;For meeting details, visit the MD CFUG website:&lt;br /&gt;&lt;a href="http://www.mdcfug.org/"&gt;http://www.mdcfug.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My talk will cover the powerful but simple MVC (Model-View-Controller) framework for ColdFusion. If you're new to developing with a framework, or just want to find out more about Model-Glue, this presentation will help you take the plunge. We'll cover installation, setup, and creation of a new application. Then we'll demonstrate how to accomplish some of the most frequently required tasks in building web applications with Model-Glue, and finish with some highlights of the upcoming Model-Glue: Gesture Alpha.&lt;br /&gt;&lt;br /&gt;If you've been considering giving Model-Glue or frameworks in general a try some time, this is your opportunity - sometimes seeing it demonstrated in person can be a big help. Also I can personally attest to the the Model-Glue mantra - "MVC for you and me" - it's a wonderfully simple framework that &lt;span style="font-style: italic;"&gt;just works&lt;/span&gt; and will really help speed up and improve your development. No pre-existing 1337 skillz required! I've been using it for a little over a year now, and I've never looked back. Hope to see you there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-2639865307036371201?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/2639865307036371201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=2639865307036371201' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/2639865307036371201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/2639865307036371201'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2008/05/speaking-on-model-glue-at-md-cfug-june.html' title='Speaking on Model-Glue at MD CFUG June 10'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-3057278828190887505</id><published>2008-04-21T16:43:00.001-05:00</published><updated>2008-04-21T17:00:45.176-05:00</updated><title type='text'>It's Finally Over, and It's Just Beginning!</title><content type='html'>Well Adam and I finally tied the knot yesterday, and we are incredibly happy and relieved to have the whole thing done! The wedding was a blast, though insanely stressful beforehand. Our amazing family and friends managed to pull off whatever we couldn't (there's nothing worse than not having any control or being able to do anything for yourself during the event when you've planned it for a year!) - they came through for us in so many ways. We have the best friends ever!&lt;br /&gt;&lt;br /&gt;I have to mention certain vendors we worked with who really deserve accolades for doing an exceptional job: Timpano's in Rockville for the swank reception, Balducci's in Bethesda for the gorgeous and tasty Cake, and the Pooks Hill Marriott for the awesome suites and hosting of the after-party at their lounge. Brookside Gardens was very accommodating in helping us move the ceremony inside at the last minute during the forecasted torrential downpour.  The rain didn't stop my friend and photographer &lt;a href="http://liaphotos.com/"&gt;Lia Moschonas&lt;/a&gt; and her fiance Jim from being great sports, soaked through and still shooting what I'm sure are going to be adorable photos of us under an umbrella! &lt;br /&gt;&lt;br /&gt;Needless to say we're going to disconnect as much as possible (from computers, phones and the interweb - not eachother) for the next two weeks as we finally take our dream vacation-honeymoon to Hawaii.&lt;br /&gt;&lt;br /&gt;There will be pictures on Flickr as soon as we can get them up there...and if you have some, please contribute to the pool!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-3057278828190887505?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/3057278828190887505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=3057278828190887505' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3057278828190887505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3057278828190887505'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2008/04/its-finally-over-or-its.html' title='It&apos;s Finally Over, and It&apos;s Just Beginning!'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-2844668341280670532</id><published>2008-04-09T18:55:00.004-05:00</published><updated>2008-06-13T15:17:48.855-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE&apos;s'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>My  CF IDE Wish List</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style="font-style: italic;"&gt;I drafted this awhile ago and never published it ... but as I was cleaning out some comment spam I came across it and thought I should put it out there. So here goes!&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;[In response to a a community-published survey about a ColdFusion IDE]  I appreciate the reasons for doing a survey, but I really don't see the value in this particular survey or its predecessor from Adobe. My answers were basically... Yes. All of that. Important. Happy to pay for it. What else?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The features listed are basically what's available to us now, although not in a single IDE and perhaps at varying levels of quality. Although it would be a big improvement to see those things done right in a single environment, I think there are a lot of additional features that would really make the IDE worthwhile. Some things I would like to see – pie in the sky – are…&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Integrated support for CF Reports – not a separate development IDE – it may or may not be a good idea from a performance standpoint, but it sure would be convenient! Or alternatively, opening up the CF Report format (CFR) into an xml-type language that can be generated by any number of tools - either community created, or perhaps, if I may be absolutely ridiculous, InDesign?! Reporting IDEs across the board are atrocious, but a single one, done right, could be revolutionary.&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Integrate the server into the IDE so that the CFML you write is being actively compiled/interpreted sort of like it is in FlexBuilder. Then I can catch errors and typos as they are written – when I’ve mistyped a method name or not included a dependency. I believe this is a really complicated thing to do, but it would truly enhance productivity.&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Improve support for SQL code. I know this was mentioned, but I want to emphasize it. I think the current workflow most developers use for writing SQL sucks. I don’t want to have to switch to my database IDE – that does nothing for me when I’m writing dynamic queries. The RDS Dataview query builder in FlexBuilder is ok, but limited – it doesn’t understand complex queries and is not intuitive for use with parameters/variables. And I want SQL syntax highlighting within my CF IDE.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I think the CF Extensions for FlexBuilder for generating CFCs are nice, a good start, and I’d like to see them enhanced and customizable. The XSLT or CFML approach that Brian Rinaldi uses for &lt;a href="http://code.google.com/p/cfcgenerator/"&gt;Illudium PU-36 CFC Generator&lt;/a&gt; templates works well for me. In fact, I really like Illudium, but if it was all within the CF IDE, even better. I'd also like to see some options to generate CRUD forms based on database tables. I realize you can sort of do this with the application wizards, but I'd rather be able to do it in small pieces, which I can then easily integrate into my application or site, instead of having to build the whole shebang, extract out the small parts I need, and then modify it so heavily I may as well have written it from scratch.  In other words, I'm sick and tired of hand coding forms...&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I think this one should be simple…fast access to CFIDE/Admin console from the IDE! Maybe sort of like the RDS approach – list all the CF instances you can connect to, and then click once to get to that particular admin. Or be able to browse admin settings right within the IDE.&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;This may make some hard core developers squirm or perhaps vomit…but I think having some well written “starter” applications bundled with CF would be useful. Sort of like Access comes with database templates for several common types of applications – contact management, inventory, project management, issues database, survey, blog, simple CMS… the same idea, but web-enabled. One key factor: have a well designed model that can be ported to various frameworks with minimal effort. It would be difficult to choose one particular framework, but if it was done right, it could be easily customized.&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I understand there are probably good reasons to not do many of these things, but I’m just saying, as a developer/designer, these things would make my life a lot easier, and that’s what CF is all about, right?&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-2844668341280670532?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/2844668341280670532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=2844668341280670532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/2844668341280670532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/2844668341280670532'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2008/04/my-cf-ide-wish-list.html' title='My  CF IDE Wish List'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-4757686824207837455</id><published>2008-03-24T13:02:00.003-05:00</published><updated>2008-03-24T13:22:41.416-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='cfunited'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Speaking on AJAX Usability at CFUnited</title><content type='html'>I've attended &lt;a href="http://cfunited.com/"&gt;CFUnited&lt;/a&gt; since it was called "CFUN" and held in a single room (how it has grown!), and I'm excited to say that I will also be a speaker this year. I will be speaking on &lt;span style="font-weight: bold;"&gt;AJAX Usability&lt;/span&gt;. My talk, as of this writing, will be on Tuesday June 19th at 9:30 am.&lt;br /&gt;&lt;br /&gt;A little bit about my talk...&lt;br /&gt;&lt;br /&gt;When AJAX first became widespread, several usability gurus aired concerns about how this new power could be abused, and we've seen no shortage of AJAX usability mistakes on the web.   Thankfully, many design patterns and best practices have also emerged, and following these guidelines can help you avoid those pitfalls. In my session, I will cover some of the top usability issues you should be aware of when using AJAX, and show practical examples of how to overcome them.&lt;br /&gt;&lt;br /&gt;Because there are so many AJAX libraries and toolkits the code can vary greatly, my session will focus more on the usability principles and design of the interaction, rather than code snippets. Where possible I &lt;span style="font-weight: bold;"&gt;will&lt;/span&gt; recommend specific libraries or resources that help address these issues. If there is time (still working on the presentation!), I will also touch on how you tweak your design workflow to better incorporate rich interaction.&lt;br /&gt;&lt;br /&gt;This session will target the intermediate UI designer. I will assume you have designed websites in the past and have studied basic usability, but you do not need to be a guru. If you are a developer with limited design experience who uses AJAX, this session is for you. If you are a designer who is now expected to design applications that incorporate AJAX, and you want to be sure your usability knowledge is up to date, this session is for you. If you think your AJAX applications are "as usable as they need to be", this session is for you! (Because there is no such thing as too usable!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-4757686824207837455?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/4757686824207837455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=4757686824207837455' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4757686824207837455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4757686824207837455'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2008/03/speaking-on-ajax-usability-at-cfunited.html' title='Speaking on AJAX Usability at CFUnited'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-1905840939778420389</id><published>2008-03-05T10:30:00.003-05:00</published><updated>2008-03-05T10:33:55.646-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='creativity'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>On Creativity - Andy Rutledge Read My Mind</title><content type='html'>I wish I could have written this! This article on ALA says--far better than I ever could--so many things that have been on my mind as I come to terms with my own sense of creativity.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.alistapart.com/articles/oncreativity/"&gt;http://www.alistapart.com/articles/oncreativity/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-1905840939778420389?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/1905840939778420389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=1905840939778420389' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/1905840939778420389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/1905840939778420389'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2008/03/on-creativity-andy-rutledge-read-my.html' title='On Creativity - Andy Rutledge Read My Mind'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-4426148942580505951</id><published>2008-02-29T15:38:00.001-05:00</published><updated>2008-02-29T15:40:07.182-05:00</updated><title type='text'>I *might* just have to buy an iPhone</title><content type='html'>I've been waiting patiently for years to be able to pay my tab via a tabletop or wireless device, and this is one ingenious step closer!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.genoco.com/link/interactive_quickOrder.html"&gt;Order Starbucks With Your iPhone&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-4426148942580505951?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/4426148942580505951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=4426148942580505951' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4426148942580505951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4426148942580505951'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2008/02/i-might-just-have-to-buy-iphone.html' title='I *might* just have to buy an iPhone'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-6949540261204342284</id><published>2008-02-28T15:33:00.003-05:00</published><updated>2008-02-29T15:50:42.050-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Effective and Usable Validation for Long Term Data Entry and Workflow</title><content type='html'>This topic sure sounds droll! But I've been thinking about it a lot as we've dealt with these issues at my company, so I thought I'd do a brain dump.&lt;br /&gt;&lt;br /&gt;In large applications that store complex data, validation of form input is likely going to be more involved than just checking the fields' existence and format on submit. Many times the data comes in in bits and pieces, over a long period of time, and is entered by several different users, before the form is "complete". The validation rules may also have too many exceptions and special cases to really enforce them. This probably comes back to poor process and application design, but it certainly exists and you may just have to live with it. However, some type of validation needs to be in place to maintain data integrity - whether its for reporting, data mining, or simple assurance that the information in the database is accurate.&lt;br /&gt;&lt;br /&gt;One approach for validating this "long term" data entry is to attack it in stages or tiers, with each progressive stage becoming more stringent, until the final step at which everything must be complete before (figuratively) closing the file. Here's an example.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Stage 1 - Alerting the user to data that is needed.&lt;br /&gt;&lt;/span&gt;Non obtrusive alerts serve to bring the user's attention to parts of the form that they "may want to fill out" before moving to the next screen. This warning should be clear in its purpose, to essentially let them know, "at this stage in the process, you usually want these fields to be complete". This might be some type of border, icon or label combination that indicates important fields. The warnings will only apply to this particular step of the workflow. There may also be different levels of warnings - such as "information alert", then "warning", then "critical error" - with different rules as to whether or not the workflow can continue with their presence. If future steps in the workflow are dependent on the existence of certain data, that would usually mean that it's a "critical error".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 2 - Warning the user that data is needed.&lt;br /&gt;&lt;/span&gt;Now the user is attempting to move forward in the workflow, and data is still missing. When the user hits the button to send the form on to the next stage in the Workflow, they will see a validation warning - a pop up window or screen - that says "these fields should be filled out before moving to the next stage". The missing fields should also be highlighted in such a way that the user can easily see what's missing, perhaps with an error message next to them. At this point, you may want to prevent them from moving forward until the data is complete, or allow them after they acknowledge the warning. This depends on the situation and the stage in the process. The warnings usually only apply to the current section in the workflow, and may also follow a scale of severity.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 3 - Preflight before closure&lt;br /&gt;&lt;/span&gt;When the file is approaching closure, as the final step, there is a preflight stage, where a list of exceptions or warnings is presented to the user before closing the file. Up until now, the only warnings shown apply to the current step in workflow. Now the preflight "issues list" will show exceptions from every stage, organized by stage, and ideally give the user a single, simple place to fix these issues (such as a custom wizard/form that walks them through completing each field step by step) before proceeding. As with the other errors, the preflight will show exceptions on a severity scale, from "information" to "warning" to "critical error". You can decide how to handle each level of warning, but typically warnings "should" be fixed, and "critical errors" will prevent the file from closing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 4 - Post close audit&lt;br /&gt;&lt;/span&gt;Depending on your business rules, files may have closed with information still missing. Therefore, you will want to have an audit report (really, it should be available at any step in the process) that will show each exception allowing errors or missing data to be easily found and corrected. You may also wish to display this information with the individual users at each step in the workflow, so that you can tell who sent this file to the next stage with incomplete data.&lt;br /&gt;&lt;br /&gt;A good working example of this type of validation is consumer tax preparation software such as TurboTax. Building flexibility into the data entry process, and allowing the user to move forward even with incomplete data can dramatically improve usability - required fields are the user's enemy - but there need to be checks and balances to ensure data integrity is maintained.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-6949540261204342284?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/6949540261204342284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=6949540261204342284' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/6949540261204342284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/6949540261204342284'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2008/02/effective-and-usable-validation-for.html' title='Effective and Usable Validation for Long Term Data Entry and Workflow'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-3248257056659831170</id><published>2008-02-22T17:17:00.003-05:00</published><updated>2008-02-22T17:53:55.199-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='printing'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>Business Card Printing Round-Up</title><content type='html'>Business cards. Everyone needs em. And now with online printers and digital printing's coming of age, everyone offers them. So where's the best place to get them? Often with printing, the selection is driven by budget. Many businesses will order cards from whoever offers the cheapest price.&lt;br /&gt;&lt;br /&gt;However, there are often substantial differences between all the millions of printers out there, and some businesses are discriminating about quality, especially when it comes to their stationery. They may demand special print methods, colors, and paper. Large businesses want someone who can produce their business cards reliably, cost effectively and consistently - in large volumes, with frequent orders, and a simple ordering process (online) that doesn't burden the HR department who typically handles business card orders. Then there are plenty of small time side workers, independent contractors, or individuals who need business cards, not very many, not very often, not very expensive, but want something better than micro-perf cards they can print at home on their inkjet.&lt;br /&gt;&lt;br /&gt;Ultimately, the printer you select for business cards really depends on your business's situation. I always have directed clients and companies I've worked with to various printers depending on the job. In my current situation, the driver was, as usual, price. Not that my current printer was charging too much. Ok they were. They are good, I use them for a lot of things, but the prices I was getting on business cards was at least double what I was seeing online, and seeing how much of my marketing budget gets eaten by stationery, I was determined to get a lower rate. I had previous discussions with my printer brainstorming how we could produce our business cards more cost effectively. I know that printing is a very competitive business, and I appreciate good work, so I did not want to push them to simply lower their rates.&lt;br /&gt;&lt;br /&gt;I asked about their options for shells - that's where you pre print high quantities of templates with logos and other standard marks, and then you just imprint the individual person's contact info on top of it - often with a single color - in smaller batches, reducing the total cost per set. I asked about batch orders - printing several cards at once. I contemplated changing specs (we'd already gone from three to two color), and determined that the best option would be to submit orders in batches.&lt;br /&gt;&lt;br /&gt;So I carefully managed my batch orders (time consuming!), sending as many at a time as possible, often with the effect of forcing people to wait longer for their cards than I would want them to - and forcing me to print temporary cards on our laser printer until the orders could be placed. Having worked with batch runs on this job and shells in previous jobs, I have experienced all of their drawbacks, and in today's world, on demand is really a superior option. So my requirements in locating a better business card printer - if there was one to be had - were these.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Meet or exceed the quality and appearance of our current cards, so that no one would even notice (or only notice improvement in) the difference in the new cards&lt;/li&gt;&lt;li&gt;Closely match the other stationery we have, from other printers&lt;/li&gt;&lt;li&gt;Easier ordering process, preferably all online rather than email-and-call-and-email...&lt;/li&gt;&lt;li&gt;Pricing low enough that on demand orders were realistic&lt;/li&gt;&lt;li&gt;Overall savings on our business card costs&lt;/li&gt;&lt;/ul&gt;I tried four printers during this process (yes we order that many business cards!), they were:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1)&lt;/span&gt; Local Business Printing Franchise who I will not name specifically - I don't want to hurt their reputation, and my experience with them has been no better or worse than a variety of similar printers I've worked with - the pros and cons are the same.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2)&lt;/span&gt; &lt;a href="http://www.48hourprint.com/"&gt;48HourPrint.com&lt;/a&gt; - up and coming online printer, their name says it all - fast, quality printing is their promise.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3)&lt;/span&gt; &lt;a href="http://www.printingforless.com/"&gt;PrintingForLess.com&lt;/a&gt; - one of the "original' budget online printers, popular and successful - low cost, quality printing is their deal.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4) &lt;/span&gt;&lt;a href="http://www.vistaprint.com/"&gt;VistaPrint.com&lt;/a&gt; - another popular online budget printer, who focuses a lot on the consumer market, and boasts some of the lowest prices anywhere&lt;br /&gt;&lt;br /&gt;Two other printers that I had on the list for consideration if none of the above worked out were&lt;br /&gt;a) &lt;a href="http://www.modernpostcard.com/"&gt;ModernPostcard.com&lt;/a&gt; - an online printer specializing in direct mail (that's what I've used them for and they were good), who also offers a few other standard print products&lt;br /&gt;b) &lt;a href="http://www.psprint.com/"&gt;PSPrint.com&lt;/a&gt; - an online printer specializing in standard products at low prices. I've used them for greeting cards and they came out great.&lt;br /&gt;&lt;br /&gt;I did not start with these because the options they offered were more limited, and would not allow me to exactly duplicate the specs I was currently working with.&lt;br /&gt;&lt;br /&gt;Lastly - there's always the "high end" lithography/engraving/specialty etc printer who will tell you they're happy to do business cards, and the results will be stunning (if it matters) - but you will pay a boat load and they will push you to print large runs and batches to make it more cost effective. They're only an option if money is no object, and ideal if distinctive quality is essential. Better to let them handle your annual report.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Specs&lt;/span&gt;&lt;br /&gt;My specs were for a quantity of 500, single sided, two or four color (whatever options available), no bleeds (that's where the color goes off the edge of the paper), uncoated matte white cover stock, 100# + in weight or 12-14pt in thickness.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Here are the results:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#1&lt;/span&gt; - Local Business Printer&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pros:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Flexibility in specs&lt;/li&gt;&lt;li&gt;Attractive results (the standard by which others were measured)&lt;/li&gt;&lt;li&gt;Relationship&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Cons:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Expensive&lt;/li&gt;&lt;li&gt;Manual ordering process&lt;/li&gt;&lt;li&gt;Slow timing&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Cost:&lt;/span&gt;&lt;br /&gt;158.50 printing&lt;br /&gt;17.06 shipping and fees (averaged from several orders)&lt;br /&gt;&lt;br /&gt;The local printer runs every business card as a custom print job - just as if it were a brochure or a flyer or stationery. I got to pick the inks and papers - we were printing with spot color, which is often a necessity on business cards to get crisp text and intense color, as well as perfect corporate color matching. The paper was a popular stationery stock, in a nice bright white, a heavy 110# cover weight, and smooth finish. I also have a relationship with this printer, so they are never more than a call away, and they "know" me - the paper we use, they have our logo and fonts on file, and we can work together well.&lt;br /&gt;&lt;br /&gt;The problem was, their pricing was different for each run, depending on how many different names we ran. It sort of bothers me that their pricing is something of a mystery - perhaps I could figure it out if I crunched the numbers every time, but who has time for that? So I felt in the dark. Every order was charged setup and washup fees, regardless of how many were ordered. Even with my discussions with them about printing in batches, I found that the savings was not substantial in the batch sizes we were printing.&lt;br /&gt;&lt;br /&gt;Also, to make their own lives easier, the printer was reproducing the print-ready files I was sending them (I asked them not to, and offered to change the way I was designing the files if necessary, but they seemed to do it anyway) and as we all know, every time that happens there's the chance to introduce errors. None of the errors they introduced made it to print, but it did make me lose some confidence in them, and scrutinize every proof from them in detail. The timing was also slow, both because we had to batch the order, and because they were a typical small printer with probably a single press - maybe two! They would always expedite orders if I requested it, but I think rushing every order can damage the relationship with a printer, and cost you more, so I did not want to do when it was not absolutely necessary.&lt;br /&gt;&lt;br /&gt;#2 - 48HourPrint.com&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pros:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Beautiful results&lt;/li&gt;&lt;li&gt;Great price&lt;/li&gt;&lt;li&gt;Sent overruns &lt;/li&gt;&lt;li&gt;Fast turnaround&lt;/li&gt;&lt;li&gt;Streamlined, simple, automated ordering process on very nice website&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Cons:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Limited paper options.&lt;/li&gt;&lt;li&gt;No spot color offered&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Cost:&lt;/span&gt;&lt;br /&gt;50.00 printing&lt;br /&gt;12.86 shipping &amp;amp; fees&lt;br /&gt;&lt;br /&gt;I had used 48HourPrint for flyers and had good results, so I gave them a shot for business cards. True to the name, the cards came back in 2 days + shipping time, faster than #1 whose typical turnaround was 2 weeks. The results were beautiful, with crisp printing and nice intensity - even from 4 color printing. The paper options were limited to coated only, although a dull option was available so I ordered that. Two of the three recipients raved about the dull coated paper (in comparison to the original cards - the other guy just didn't care because he'd never seen the old ones), but the CEO preferred our original uncoated vellum so that canceled them out! Also the brightness of the paper was noticeably lower than that of our original stock.&lt;br /&gt;&lt;br /&gt;Their minimum quantity was twice what I normally order, which is fine since the cost was still low. They also sent overruns, probably 25% worth, at no charge (this is where they print extras by nature of how the art is imposed on a sheet - most printers throw these out, or add a "plus overruns" fee to their pricing and charge you extra for them) . Overruns were not really necessary since I was already ordering more than I needed, but a nice gesture. If the paper had been a little brighter white, I probably would have considered talking our CEO into liking the new paper!&lt;br /&gt;&lt;br /&gt;#3 - PrintingForLess.com&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pros&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Offered uncoated paper&lt;/li&gt;&lt;li&gt;Can do custom options for paper and color upon request&lt;/li&gt;&lt;li&gt;Personal attention&lt;/li&gt;&lt;li&gt;Nice results - the ultimate winner&lt;/li&gt;&lt;li&gt;Great pricing, low shipping, increased discounts for larger orders&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Cons:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;UI on website is showing its age&lt;/li&gt;&lt;li&gt;Normal turnaround is not as fast as 48HourPrint, although they gave me a free upgrade to 3-day shipping for my first order&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Cost:&lt;/span&gt;&lt;br /&gt;49.95 printing&lt;br /&gt;9.95 shipping and fees&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.printingforless.com/"&gt;PrintingForLess.com&lt;/a&gt; is very prominent on the web, and for good reason. Although their website looks dated and the UI has not changed in years (meaning it's rather kludgy - but works reliably), they make up for lack of slickness with service. It's unusual to see an online printer that actually tells you the name of the technicians working on your order, to get personal emails from them (and not for problems - just letting you know that they are available if you need them), as well as a follow up call to make sure we were happy with the results. And we were.&lt;br /&gt;&lt;br /&gt;The result was the closest of any to the original I wanted to duplicate. I did order four color from them as a first try, and was pretty pleased with the color. I got a quote for using spot color, the cost was more, but still less than what I'm currently paying. I felt like the four color was close enough that I didn't need to pay extra for the spot color. The turnaround was fast, but not quite as fast as 48HourPrint. PrintingForLess does offer rush pricing and shipping in varying degrees, allowing you to conveniently pay exactly what the timing is worth to you. I hear that's actually where they make most of their money - on rush orders. But as a side, since becoming my own "director of marketing" I've all but eliminatated "rush order" from my vocabulary - planning ahead and proactivity are my preferred style!&lt;br /&gt;&lt;br /&gt;#4 - VistaPrint.com&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pros:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Inexpensive&lt;/li&gt;&lt;li&gt;Nice color intensity&lt;/li&gt;&lt;li&gt;Brightest paper, nicest feel&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Cons:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Imperfect Registration&lt;/li&gt;&lt;li&gt;Card size is non standard&lt;/li&gt;&lt;li&gt;Fees for everything&lt;/li&gt;&lt;li&gt;Slower service&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Cost &lt;/span&gt;&lt;br /&gt;42.98 printing (including paper upgrade)&lt;br /&gt;14.45 shipping and fees (including upload and proof fees, which no one else charged)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vistaprint.com/"&gt;VistaPrint&lt;/a&gt; is another prominent online printer. They target the budget market quite effectively, even offering "free" products (albeit with their name printed all over the back). Their advertised prices are so low it seems too good to be true, and it is. They upcharge you for every little detail: even an automatic PDF proof is $1.99 extra. By the time you're done adding it all up, the price is close to - maybe a bit lower than - the competition. They seem to push users to order with their predesigned templates, which are downright god-awful (ok I'm a snob), and charge you extra per file to upload your own design. Sorry, I'm a real designer here, I do it all myself. They charged extra for non-coated paper as well. Their pricing includes bleeds, but at the cost of reducing the overall cards size by about 1/16" which just bothered me. I'm sure their logic is that most would not notice and it allows them to print bleeds without using extra paper, but I do - especially when I hold it up to other business cards. And I didn't even order bleeds, yet I had to get them trimmed to the smaller size anyway.&lt;br /&gt;&lt;br /&gt;On the upside, the card itself looked quite nice, with the brightest, heaviest paper of all of the printers (even better than the original). But the registration was ever so slightly off, giving the text that "halo" effect which, at a distance, made it look less than sharp. Not bad enough to complain about, but noticeable. Their turnaround was slow considering they are an online printer, many of whom make speed their value proposition - their "priority" turnaround was 7 days. Bottom line? I would use them for personal postcards or business cards even, for occasions or holiday printing, etc... But not for business. Also, although this order went smoothly, in the past I have contacted their customer service with quality issues and received no response whatsoever. This does not give me a lot of confidence in trusting them with all of my business cards - something that should be a simple non-issue.&lt;br /&gt;&lt;br /&gt;In closing, PrintingForLess won out because they were superior on most points. Pricing, turnaround, quality and service were all excellent. I also liked that they gave me the option of doing custom jobs, which most online printers won't do. 48HourPrint was a close second, held back only by their limited paper options. My local printer came in third, because their price was just too high, despite their good quality. VistaPrint came in last, because I just do not feel they are a professional caliber printer - even if they are inexpensive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-3248257056659831170?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/3248257056659831170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=3248257056659831170' title='31 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3248257056659831170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3248257056659831170'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2008/02/business-card-printing-round-up.html' title='Business Card Printing Round-Up'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>31</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-4241607735735610223</id><published>2008-02-12T10:23:00.002-05:00</published><updated>2008-03-28T12:39:27.468-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='accessibility'/><category scheme='http://www.blogger.com/atom/ns#' term='usability'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Usability is not Accessibility (all the time)</title><content type='html'>I have had many discussions, seen many talks, read many blog posts about Usability...that all somehow devolve to issues of Accessibilty. While the two are intertwined in some ways, they are two very different sets of problems, and it bothers me that so many people seem to confuse them.&lt;br /&gt;&lt;br /&gt;Case In Point: "AJAX Usability". You hear a lot about how AJAX is unusable. Sure, in the wrong hands, such a powerful tool can yield unusable results. But AJAX came about as a usability SOLUTION. Eliminating screen refreshes, intuitive drag and drop interfaces, natural-movement animation, subtle highlight effects, editing in place, live validation, sorting and filtering ... They were all created to give smoother, better cues and more responsive interfaces to the user. The most usable sites on the web today use AJAX heavily (hello, 37Signals!).&lt;br /&gt;&lt;br /&gt;On the other hand, AJAX Accessibility issues are a different can of worms: The fact that a lot of the visual cues are useless if you can't see them, that JavaScript support is essential, that navigating AJAX interfaces with a keyboard can be a nightmare. The biggest cross-over issue I can think of is back button breakage, which is becoming less and less of an issue as usability techniques are developed to prevent its necessity, while simulatenously AJAX libraries are improving to cope with the back button.  (And wasn't it just a few years ago that usability gurus admonished that no one knew about the back button? Funny how things change!)&lt;br /&gt;&lt;br /&gt;Why does the difference matter? Because you have to understand the problem before you can solve it. It's possible for someone to be a usability expert, but not know much at all about accessibility. And vice versa - I have seen some really accessible sites with terrible usability. Perhaps the need for accessibility trumps any argument for usability, but not always. That's where progressive enhancement comes in to play. (Screen readers also need to step up to the plate and deal with RIAs, because that's where the web is going.)&lt;br /&gt;&lt;br /&gt;So maybe in dealing with one you often have to deal with the other, but hey, I'm a web developer, it's my job to obsess over semantics :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-4241607735735610223?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/4241607735735610223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=4241607735735610223' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4241607735735610223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4241607735735610223'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2008/02/usability-is-not-accessibility-all-time.html' title='Usability is not Accessibility (all the time)'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-7893301735946885882</id><published>2008-02-06T10:43:00.000-05:00</published><updated>2008-02-06T11:01:35.863-05:00</updated><title type='text'>Marketing Messages - More Science Than Art?</title><content type='html'>In my days working in a corporate marketing department, we did a lot of group brainstorming to think about what our marketing messages should be. Headlines, campaign concepts, visuals. I always sort of hated these meetings, because I felt stupefied in them. Which sounds totally wrong because I'm the "creative" type who should love brainstorming and idea generation. And I do. But there was something missing from these brainstorming sessions: basic facts and research. So when it came time to "brainstorm", I felt like we were just pulling ideas out of our ass, and inevitably that led to others shooting down our ass-brained ideas. Not much fun.&lt;br /&gt;&lt;br /&gt;I'm not trying to launch into criticism of our process, I'm just pointing out that many times in business, whoever is responsible for marketing is expected to generate these genius ideas that will win over customers and make a so-so company look world class. But they often try to do that with few facts, and little research as a basis.&lt;br /&gt;&lt;br /&gt;The more I learn about marketing, the more I study it, the more I come to the realization that brilliant marketing is never achieved without facts, research and testing. Nobody knows it all, no marketer has such a level of intuition that they can create these concepts that will be embraced by millions. The marketer's genius is their ability to distill facts and research into an attractive and compelling message. And even then, in all the huge companies recognized for their marketing, that message is tested and tried and vetted to ensure that it is received well, before it's broadcast to the world. Yes, there is expense involved, but what's more expensive than research? A failed campaign.&lt;br /&gt;&lt;br /&gt;Case in point: &lt;a href="http://www.nytimes.com/2008/02/06/business/media/06adco.html?pagewanted=1&amp;amp;_r=1&amp;amp;ref=media"&gt;the horrible SalesGenie Panda Ad run during the  SuperBowl &lt;/a&gt;vs the always popular Budweiser ads. Who has a better track record? Salesgenie has their CEO writing the ad from his own intuition (according to this article, anyway). No doubt, as CEO of InfoUSA this guy knows something, but apparently not market research. Budweiser spends months testing and their ads are always among the best.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-7893301735946885882?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/7893301735946885882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=7893301735946885882' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/7893301735946885882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/7893301735946885882'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2008/02/marketing-messages-more-science-than.html' title='Marketing Messages - More Science Than Art?'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-7752273406290909091</id><published>2008-01-23T15:14:00.001-05:00</published><updated>2008-02-29T15:51:23.072-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usability'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Is your software less usable because it's "for developers"?</title><content type='html'>In looking at some usability differences between two different products from the same company (one far more user friendly than the other), it struck me how one seemed to be held to a much higher standard of usability and stability than the other. Now I know this could be due to different product teams, different budgets, product maturity, etc, but I also found it interesting that the less usable one was for developers, and the more usable one was for designers. And I wondered why the company would be willing put their brand on two products of such disparate quality. I know that if any designer encountered the issues that were prominent in the developer tool, without the software savvy of a developer (and that innate desire developers have to understand how things work), they would be far less tolerant of these issues.&lt;br /&gt;&lt;br /&gt;And then I started thinking of other examples of websites and applications and other software that illustrates how so often, tools targeted at more savvy users are less usable. But developers (or experts of any nature) need usability too! Of course, advanced tools are often more complex and require more learning curve, but there is a difference between usability (efficient and streamlined user experience) and learnability (low learning curve). Advanced users don't need the learnability: the wizards, the step by step walkthroughs. But they most certainly still need and value the usability; and often demand efficiency, for which a streamlined user experience is imperative. They may understand the cryptic errors, but that doesn't make them like them any more!&lt;br /&gt;&lt;br /&gt;I know I have been guilty of shortcutting usability on an application because I know the users can "figure it out". But that's WRONG, WRONG, WRONG. Your advanced users are as likely as anyone to appreciate, and even expect the attention to usability.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-7752273406290909091?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/7752273406290909091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=7752273406290909091' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/7752273406290909091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/7752273406290909091'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2008/01/is-your-software-less-usable-because.html' title='Is your software less usable because it&apos;s &quot;for developers&quot;?'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-3636382018773711458</id><published>2007-12-20T22:41:00.000-05:00</published><updated>2007-12-20T23:12:31.689-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>CSS Inadequacies x Poor Browser Support = Hell</title><content type='html'>I don't spend as much time as most web designers probably do, creating CSS and XHTML layout from scratch. As a "corporate" designer, most of my time is spent maintaining an existing site. I only have to do substantial CSS and markup work when I redesign the site or add a substantial portion of content to it. So when I am tasked with creating a new CSS layout, I am always reminded of how I hate so many of the problems that exist with CSS and the browser support for it; especially in contrast with Flex (which I've been working with a lot lately). Although Flex has its own set of CSS and layout issues none are as severe as those with XHTML/CSS.&lt;br /&gt;&lt;br /&gt;This post sums up a lot of the problems:&lt;br /&gt;&lt;a href="http://blog.iconara.net/2007/09/21/the-failure-of-css/"&gt;http://blog.iconara.net/2007/09/21/the-failure-of-css/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm not a n00b to CSS. I've been working with it since Netscape 4 barely supported CSS text formatting, and I was doing CSS-P well before most of my designer / developer peers were. But I still struggle with it for many reasons.&lt;br /&gt;&lt;br /&gt;It's nearly impossible to create a complex layout without resigning to at least one of the following: employing hacks, giving in to div-itis, compromising your design, or breaking in anything but the most bleeding edge, standards-supporting browsers.&lt;br /&gt;&lt;br /&gt;How often does separating content from presentation really work so well that you don't have to change your markup? I know, CSS Zen Garden does it. But that's ONE PAGE. If I have a site of 100+ pages, and maybe 5 or so different layouts (and possibly a mobile version) with umpteen variations in content, and I have to redesign, I have a lot more work cut out for me than just rewriting a style sheet and slicing some new images. Let the DRY approach belong to the programming, and use the "include" and layout rendering features of dynamic development languages. I'm going to be putting all my presentational markup in a couple CF templates anyhow. Semantic and clean markup is still good, and will prevent too much markup rewriting, but the bottom line is that you will still have to rework it.&lt;br /&gt;&lt;br /&gt;The C in CSS should stand for Crap. The Cascade does not work. Oh, I know it "works." But more often than not, it gets in the way because it's not supported well enough to rely on it, but it works just enough to create random trickle-down issues. Dreamweaver actually created the "Relevant CSS" panel just to demystify the Cascade. If you can't get better control of where you're inheriting from, and what's relevant, then it just creates inheritance headaches.&lt;br /&gt;&lt;br /&gt;I want to create a code-clean, reliably cross-browser compatible hack-free elastic layout without compromising my design or missing my deadline. Is that too much to ask? Apparently so.&lt;br /&gt;&lt;br /&gt;End this war, impeach CSS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-3636382018773711458?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/3636382018773711458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=3636382018773711458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3636382018773711458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3636382018773711458'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/12/css-inadequacies-x-poor-browser-support.html' title='CSS Inadequacies x Poor Browser Support = Hell'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-6749782524604177813</id><published>2007-12-17T12:03:00.000-05:00</published><updated>2007-12-17T13:27:13.221-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><title type='text'>Extending the Flex Currency Formatter</title><content type='html'>I was faced with a puzzling challenge this week on a Flex app I've been working on. I have a Flex DataGrid that is showing financial metrics - projected vs actual and the variance...a very common sales type of report.  It breaks these metrics down by year, quarter and month.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_VMFmmwj_Ir8/R2atXCfthPI/AAAAAAAAADo/id2SS05tbq0/s1600-h/datagrid_metrics_before.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_VMFmmwj_Ir8/R2atXCfthPI/AAAAAAAAADo/id2SS05tbq0/s400/datagrid_metrics_before.jpg" alt="" id="BLOGGER_PHOTO_ID_5144990235635844338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Imagine it's September. Now you'll see in the grid above that October through December show 0's for the actual column, and a negative variance, but they are just months that haven't happened yet. One requirement we had for how these metrics display was that for time periods that haven't happened yet this year (IE next month, next quarter), we show a dash in the grid instead of a 0. It's all about the psychology of not making the report look overly negative :)&lt;br /&gt;&lt;br /&gt;The challenge was that the way these numbers are displaying within the grid is via an ItemRenderer with a CurrencyFormatter. From within that item renderer, I don't have any access to data columns outside the immediate column. For instance, I could not refer to the Month column. Moreover, if I ever returned a value for that column that was a string and not numeric (I'm using a CFC on the back end), I couldn't use the CurrencyFormatter to nicely format my numbers with dollar signs and thousands separators.&lt;br /&gt;&lt;br /&gt;I mulled over several evil sounding ways to make this work, and as I went to implement one of them, a much simpler solution struck me.&lt;br /&gt;&lt;br /&gt;1. Within the CFC where I'm creating a collection of objects, I have access to other columns of data within the grid. Thus I can evaluate if the time period is in the future with a just a line of code.&lt;br /&gt;2. Rather than returning the actual character I want to display (which won't work with the formatter), I replace the actual value of the "future" data with -1. This way, the data is still numeric, but it's not a number that will ever happen naturally. This seems to be a common programming trick - using negative numbers for "non-real" values. But because it's numeric, I can still use the currency formatter on the front end.&lt;br /&gt;3. I create a custom ActionScript formatter on the front end which extends the CurrencyFormatter class. This formatter has two extra properties: replaceValue and replaceChar. replaceValue is the "fake" value I'm looking to replace, replaceChar is the character I want to replace it with . That way I can customize it at any time if say, we decide we want an x instead of a dash. Then within the formatter, I just compare the actual value with the replaceValue, and if they're equal, I return the replaceChar instead of the formatted string. Otherwise, I return the normal formatted string.&lt;br /&gt;&lt;br /&gt;Here's the completed code for my ForecastCurrencyFormatter solution.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ColdFusion/Back End&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;cfif dateOfMetric GT month(now())&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cfset actualAmount = -1&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cfset varianceAmount = -1&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/cfif&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style="font-weight: bold;"&gt;Flex Formatter&lt;/p&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;//ForecastCurrencyFormatter.as&lt;br /&gt;&lt;br /&gt;package com.myFormatters {&lt;br /&gt;&lt;br /&gt;    import mx.formatters.CurrencyFormatter;&lt;br /&gt;  public class ForecastCurrencyFormatter extends CurrencyFormatter {&lt;br /&gt;&lt;br /&gt;         /*value to replace - defaults to -1*/&lt;br /&gt;&lt;br /&gt;         public var replaceValue:Number = -1;&lt;br /&gt;&lt;br /&gt;         /*character to replace with - defaults to a dash*/&lt;br /&gt;&lt;br /&gt;         public var replaceChar:String = '-';&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    public function ForecastCurrencyFormatter() {&lt;br /&gt;&lt;br /&gt;         super();&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    //override the format method with my custom formatting&lt;br /&gt;&lt;br /&gt;    override public function format(value:Object):String {&lt;br /&gt;&lt;br /&gt;         /*if the number value is the value to replace, return the replacement character instead*/&lt;br /&gt;&lt;br /&gt;         if (value == replaceValue) {&lt;br /&gt;&lt;br /&gt;              return replaceChar;&lt;br /&gt;&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;         /*otherwise just format according to the standard currency formatter*/&lt;br /&gt;&lt;br /&gt;         else {&lt;br /&gt;&lt;br /&gt;              return super.format(value);&lt;br /&gt;&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style="font-weight: bold;"&gt;Using the Formatter&lt;/p&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;!-- at the root, declare a namespace for the formatter components --&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"&lt;br /&gt;xmlns:fm="com.myFormatters.*"&amp;gt;&lt;br /&gt;&amp;lt;!-- this is just one column within my datagrid, showing use of the formatter --&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;mx:DataGridColumn textAlign="right" headerText="Actual" sortable="false" dataField="actual"&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;mx:itemRenderer&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;mx:Component&amp;gt;&lt;br /&gt;&lt;br /&gt;              &amp;lt;mx:VBox clipContent="false"&amp;gt;&lt;br /&gt;&lt;br /&gt;                   &amp;lt;fm:ForecastCurrencyFormatter replaceValue="-1" replaceChar="-" id="fcf" precision="0" thousandsSeparatorTo="," currencySymbol="$" alignSymbol="left" /&amp;gt;&lt;br /&gt;&lt;br /&gt;                   &amp;lt;mx:Text width="100%" text="{fcf.format(data.actual)}" /&amp;gt;&lt;br /&gt;&lt;br /&gt;              &amp;lt;/mx:VBox&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;/mx:Component&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/mx:itemRenderer&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/mx:DataGridColumn&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;p&gt;That's about it. We now have a formatter that behaves just like the standard currency formatter, but with an additional formatting option.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_VMFmmwj_Ir8/R2a_cSfthQI/AAAAAAAAADw/bYaBAs5_ka8/s1600-h/datagrid_metrics_after.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_VMFmmwj_Ir8/R2a_cSfthQI/AAAAAAAAADw/bYaBAs5_ka8/s400/datagrid_metrics_after.jpg" alt="" id="BLOGGER_PHOTO_ID_5145010117039457538" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-6749782524604177813?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/6749782524604177813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=6749782524604177813' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/6749782524604177813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/6749782524604177813'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/12/extending-flex-currency-formatter.html' title='Extending the Flex Currency Formatter'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_VMFmmwj_Ir8/R2atXCfthPI/AAAAAAAAADo/id2SS05tbq0/s72-c/datagrid_metrics_before.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-7134005407075979181</id><published>2007-12-03T17:07:00.000-05:00</published><updated>2007-12-03T17:10:24.104-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>People Who Inspire Action</title><content type='html'>In my day to day work, I deal with a variety of people of varying personalities and "working styles." I can be a real procrastinator when it comes to making and returning phone calls from these people because it requires putting down my work to make a call to someone who may not be there, to play phone tag, to end up on the phone with them for longer than necessary while they whine about a list of things they need from me resulting in hours of work on my part. Not necessarily something I'm motivated to do. Ok, not every exchange is like this, but in a support role such as that I'm in, it's very often the case.&lt;br /&gt;&lt;br /&gt;However there are a few people I will always call back right away, and it's not because they never ask for anything (in fact many of them ask for a lot). The reason I'm motivated to call these people back? They have a positive attitude (it's not going to be a complainy conversation). They are willing to work together to get things done, and not try to shove all the work onto me. They keep it short and sweet. They are usually there when I call, or return my call within a few minutes. And when I give them what they ask for, they are appreciative and make me feel like the work I do is valuable. Working with - and calling these people is always a pleasure.&lt;br /&gt;&lt;br /&gt;So...just a word of advice from my experience. If you want to inspire immediate action, develop a rapport with people such that they know you won't waste their time, and have an attitude that makes you pleasant to work with. It makes all the difference in your ability to get what you need from other people.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-7134005407075979181?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/7134005407075979181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=7134005407075979181' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/7134005407075979181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/7134005407075979181'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/12/people-who-inspire-action.html' title='People Who Inspire Action'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-4848924883881777819</id><published>2007-11-30T07:36:00.000-05:00</published><updated>2007-11-30T07:43:37.428-05:00</updated><title type='text'>Sys-Con Does it Again</title><content type='html'>I never subscribed to CFDJ under my own name. I never signed up for a thing on their site (in fact I avoid going there at all costs). To my knowledge, I have never once given anyone there my email. Yet somehow, I got this email yesterday:&lt;br /&gt;&lt;br /&gt;Dear Rachel,&lt;br /&gt;&lt;br /&gt;Thank you for subscribing to ColdFusion Developer's Journal, published by&lt;br /&gt;SYS-CON Media. ColdFusion Developer's Journal's commitment is to keep, by&lt;br /&gt;email, its subscribers current on products and services from third party&lt;br /&gt;advertisers that might be of interest to them.  Each email message will&lt;br /&gt;be preceded by the name of the company offering the product or service,&lt;br /&gt;so that you know the source and purpose of the email before opening it.&lt;br /&gt;&lt;br /&gt;If you do not wish to receive these informative emails, please follow&lt;br /&gt;this link {removed} &lt;a href="http://sysconmedia.sy10.net/o/?ZXD=4.7785550.1458341" target="_blank"&gt;&lt;/a&gt;  It will not affect your customer status in any manner.&lt;br /&gt;&lt;br /&gt;Thank you,&lt;br /&gt;&lt;span style="color:#888888;"&gt;&lt;br /&gt;SYS-CON Media&lt;br /&gt;577 Chestnut Ridge Road&lt;br /&gt;Woodcliff Lake, NJ 07677-8409&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Soooo.... not only have they falsely accused me of subscribing to CFDJ, but they're basically notifying me I've been added to their spam list. Great. Now I've got to click a link to be removed, confirming the validity of my email address for their future spam efforts.&lt;br /&gt;&lt;br /&gt;I have no idea how they got my email... I hope for their own sake (ok, I really don't care about them all that much) they aren't harvesting emails off of community sites or other questionable sources.&lt;br /&gt;&lt;br /&gt;Unbelievable.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-4848924883881777819?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/4848924883881777819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=4848924883881777819' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4848924883881777819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4848924883881777819'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/11/sys-con-does-it-again.html' title='Sys-Con Does it Again'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-4544952019408411306</id><published>2007-11-19T19:33:00.001-05:00</published><updated>2007-11-19T19:38:45.980-05:00</updated><title type='text'>I never thought I'd say this but...THANK YOU, Microsoft</title><content type='html'>Microsoft Announces that "click to activate" will be removed from IE effective April, 2008.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/ieupdate/"&gt;http://msdn.microsoft.com/ieupdate/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've only wasted countless hours over 2 years of my life bothering with this stupid patent lawsuit fallout issue, and now that the general public of mediocre web designers have finally figured out what they need to do (or upgraded Dreamweaver) to get around it, it's not a necessity any more. Bah.&lt;br /&gt;&lt;br /&gt;Nevertheless, it's nice to see M$ making a good choice. And I found it a little humorous that the reason they cite for making this change is "&lt;span style="color: rgb(0, 0, 0);"&gt;As a result of recent technology licenses acquired." Haha, I can just imagine the back office conversation: "What, they want to sue us for supporting embedded objects? Hell, just buy the damn company already!"&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-4544952019408411306?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/4544952019408411306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=4544952019408411306' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4544952019408411306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4544952019408411306'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/11/i-never-thought-id-say-this-butthank.html' title='I never thought I&apos;d say this but...THANK YOU, Microsoft'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-5894576720773380443</id><published>2007-11-14T11:26:00.000-05:00</published><updated>2007-11-14T11:42:18.487-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><title type='text'>Blog.setFocus()</title><content type='html'>Sorry about the super geek-cliche title. I just wanted to make a quick post about the fact that my blog will soon have a point! I've been wallowing about posting on random topics over the past few months, hoping that a theme would emerge. I've drafted several posts and not actually posted them, because I was trying to decide if they are relevant to the purpose my blog does not yet have. Well, now I can say that with some thinking and Adam's strong urging, I've decided that my primary focus will be on the designer-developer, something I am intimately familiar with.&lt;br /&gt;&lt;br /&gt;Being a designer and a developer, a front-to-back website or application creator is fun and challenging. I've asked myself many times if I should focus on one more heavily than the other, but it's so hard to choose. Ultimately, I think that being able to do both can be of immense value in many situations (at least my current employer seems to think so), so I'm going to work to promote a diverse skill set and to provide resources that help designer-developers grow in both directions.&lt;br /&gt;&lt;br /&gt;Stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-5894576720773380443?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/5894576720773380443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=5894576720773380443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/5894576720773380443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/5894576720773380443'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/11/blogsetfocus.html' title='Blog.setFocus()'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-5216083285582161257</id><published>2007-10-31T11:55:00.000-05:00</published><updated>2007-10-31T13:26:18.073-05:00</updated><title type='text'>You Too, Can be an AIR Developer!</title><content type='html'>Mozilla recently announced &lt;a href="http://labs.mozilla.com/2007/10/prism/"&gt;Prism&lt;/a&gt;, a tool for bringing web applications to the desktop. One of their first comments is comparing it to Adobe AIR and Silverlight, in an almost ignorant fashion:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"Unlike Adobe AIR and Microsoft Silverlight, we’re not building a proprietary platform to replace the web. We think the web is a powerful and open platform for this sort of innovation, so our goal is to identify and facilitate the development of enhancements that bring the advantages of desktop apps to the web platform."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's a cool idea, clearly they see the need and are jumping on the bandwagon. But I think they, like many others, really misunderstand AIR. I'm surprised how many times I've seen Adobe AIR called a "proprietary" or closed technology platform lately, and how tightly its reputation is coupled to Flex and Flash. So many standardista/open source fanboys &amp;amp; girls are chasing alternatives because they think that AIR requires an investment in Flex and that you have to maintain a separate code base between AIR applications and "regular" web applications. Many confused developers think they need to learn something new to build apps for AIR. That is simply not the case! So I would like to point out a few facts:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;AIR development does not require a specialized IDE or cost a thing to get started&lt;br /&gt;(&lt;a href="http://labs.adobe.com/downloads/airsdk.html"&gt;download the free SDK&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;AIR development can be done with any combination of static HTML, JavaScript, AJAX, dynamic HTML (IE server back end such as ColdFusion, ASP, PHP, Ruby...) AND Flash and Flex&lt;br /&gt;(&lt;a href="http://labs.adobe.com/technologies/air/"&gt;About AIR&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Creating an AIR application out of an existing applications (or a new one) only requires configuration of a simple XML file. There are plugins for Dreamweaver and FlexBuilder to make it even easier.&lt;br /&gt;(&lt;a href="http://livedocs.adobe.com/labs/air/1/devappshtml/help.html?content=getting_started_1.html"&gt;getting started&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The FlexBuilder IDE which has a super simple AIR app wizard is available as a free public beta, and is also free for educational use&lt;br /&gt;(&lt;a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200710/102407adobeflexedu.html"&gt;the education announcement&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The Flex SDK is STILL FREE if you want to develop for AIR in Flex and for some reason can't use FlexBuilder&lt;br /&gt;(&lt;a href="http://www.adobe.com/products/flex/sdk/"&gt;&lt;span style="text-decoration: underline;"&gt;download the free&lt;/span&gt; SDK&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Over and over, Adobe makes the point that they have designed AIR in such a way that developers can use their &lt;span style="font-style: italic;"&gt;existing skills&lt;/span&gt; to develop desktop applications.&lt;br /&gt;(&lt;a href="http://labs.adobe.com/technologies/air/"&gt;right on the AIR home page&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Prism does have the unique and interesting feature to give the user the choice to move an app to their desktop (IE Gmail),  but does not yet include the &lt;a href="http://livedocs.adobe.com/labs/air/1/devappshtml/help.html?content=dg_part_11_1.html"&gt;first-class&lt;/a&gt; &lt;a href="http://livedocs.adobe.com/labs/air/1/devappshtml/help.html?content=dg_part_11_1.html"&gt;desktop&lt;/a&gt; &lt;a href="http://livedocs.adobe.com/labs/air/1/devappshtml/help.html?content=QuickStart_Simple_SQL_Database_HTML_1.html"&gt;presence&lt;/a&gt; or &lt;a href="http://livedocs.adobe.com/labs/air/1/devappshtml/help.html?content=QuickStart_Simple_SQL_Database_HTML_1.html"&gt;local data storage&lt;/a&gt; that AIR does.  AIR, although in Beta, is really much farther along that Prism.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;There you have it. There are no excuses to not learn AIR and start using it today. Adobe is not some evil mega-software company, they are creating kick-a** tools for developers that will become (or already are) incredibly valuable in our daily jobs.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Bonus:&lt;/span&gt;&lt;br /&gt;Other web-to-desktop platforms sweating AIR's style:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/apis/gears/"&gt;Google Gears&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.3d3r.com/bubbles/"&gt;Bubbles&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-5216083285582161257?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/5216083285582161257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=5216083285582161257' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/5216083285582161257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/5216083285582161257'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/10/you-too-can-be-air-developer.html' title='You Too, Can be an AIR Developer!'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-7017033242129450575</id><published>2007-10-19T19:13:00.001-05:00</published><updated>2007-10-19T19:13:48.171-05:00</updated><title type='text'>My Hero</title><content type='html'>I hate Comcast. &lt;a href="http://www.washingtonpost.com/wp-dyn/content/article/2007/10/17/AR2007101702359.html"&gt;I love this woman&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-7017033242129450575?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/7017033242129450575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=7017033242129450575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/7017033242129450575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/7017033242129450575'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/10/my-hero.html' title='My Hero'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-639323720246698539</id><published>2007-10-14T09:42:00.000-05:00</published><updated>2007-11-14T11:42:47.039-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Practical Implementation of User Centered Design and Customer Focused Business</title><content type='html'>Last week I attended Adobe MAX in Chicago, which was by and large an excellent conference. You can see some of the many "wrap up" posts online for the good, bad and the ugly so I won't get into that. But I will talk about a few things that stuck out to me while I was there.&lt;br /&gt;&lt;br /&gt;There was a track called "Inspire," which were several sessions given by gurus of various disciplines, speaking at a loftier, more theoretical level than most, designed to do as their name suggests. That and the inspire sessions had extra big projection screens and color changing stage lights (I kid you not). Actually, two of the Inspire sessions I attended left me feeling they were the best sessions of the conference, because I did come away inspired - and when you've seen it all from the technical sessions, inspiration is the best thing you can hope to get at these events. Along with a couple of these sessions I attended, there seemed to be a strong movement at the conference and among the people I spent time with there towards User Centered Design, and its marketing cousin Customer Focused Business.&lt;br /&gt;&lt;br /&gt;You may say this is nothing new, but I have seen a deeper level of understanding and a higher level of awareness come to a predominantly developer audience than in previous years. And this is not limited to MAX, I'm seeing it everywhere. Every blog-reading, conference-attending, best-practicing, self-respecting web developer/designer knows that the purpose of design is not merely to "make it pretty" but rather to "make it usable", moreso than ever before. And this is great. But what bothers me is that if you ask most of these people for examples, or try to get into a deeper discussion with them, the conversation turns to the worn out examples of the iPod and the Wii, and also about how none of their bosses or project managers understand these things or will allow them time to accomplish them, and how they know how it should be done but it's somehow not happening in their job. What's more, I know from personally seeing the vast amount of crap on the web, that most of these designer-developers are not practicing the theory they are so passionate about.&lt;br /&gt;&lt;br /&gt;When this really hit me was reflecting on my own work and attempting to measure to what extent I was practicing these principles I found so inspiring (yet not at all new). I somberly realized that I was probably not doing as good a job at this as I believe I have the capability to do. And why? I have a lot of the same excuses: I create a design that's centered around my understanding of what the users want, but when a boss comes along and says "I think we need to give more attention to this element" with no user-centered grounds for doing so (it's always a company objective), I diligently make the change and rarely argue. Usually under the guise of picking my battles. But what would really give me the confidence to argue against such a change is more experience, more practical knowledge and more history under my belt with such design.&lt;br /&gt;And that's where I meander to my point. There is a plethora of information in this industry about the importance of user centered design and customer focused business, but &lt;span style="font-weight: bold;"&gt;so little&lt;/span&gt; information about the practical implementation of it!&lt;br /&gt;&lt;br /&gt;Designers have all the forces of traditional businesses and non-web-savvy clients pushing them in the opposite direction, and it's going to be years until most businesses catch up with Apple and Target and Nintendo and Land's End. We need to be told step by step how to start such a movement from our lowly production positions and how to make it work, proving results, so that it can continue.&lt;br /&gt;&lt;br /&gt;In parts 2 and 3, I will discuss my experience and thoughts on the practical aspects of User Centered Design and Customer Focused Business (because it so often ties into design).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-639323720246698539?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/639323720246698539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=639323720246698539' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/639323720246698539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/639323720246698539'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/10/practical-implementation-of-user.html' title='Practical Implementation of User Centered Design and Customer Focused Business'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-3171298044945044043</id><published>2007-09-18T15:54:00.000-05:00</published><updated>2007-09-18T16:09:26.883-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='marketing'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>Is it better to please everyone, or just the ones that matter?</title><content type='html'>A few different blog posts I've read today have somehow converged in my mind to make this point.&lt;br /&gt;&lt;br /&gt;First is Seth Godin's &lt;a href="http://www.typepad.com/t/trackback/2123/21713381"&gt;Mean vs Median&lt;/a&gt;. This is a very important distinction that I first made a few years ago in analyzing statistics. Mainly, that Mean (average) means almost nothing. That's a blanket statement, but as far as analyzing marketing data, website statistics, etc, &lt;span style="font-style: italic;"&gt;especially&lt;/span&gt; when your database is small, looking at the Median can give you a much clearer picture than looking at the Mean. The Median often gives you much more polarizing information.&lt;br /&gt;&lt;br /&gt;Which brings me to my second point. Jason Delmore &lt;a href="http://www.cfinsider.com/index.cfm/2007/9/14/What-do-YOU-want-next-for-ColdFusion"&gt;asked what people wanted&lt;/a&gt; from the next version of CF. He got a huge variety of disparate answers,  they were all over the map.  John Nack announced &lt;a href="http://blogs.adobe.com/jnack/2007/09/photoshop_gets.html"&gt;the new PhotoShop logo&lt;/a&gt; (which, by the way, I think is excellent - maybe I'll get around to writing more details about why) and got a hundred acid responses from designers about how their 3-year old nephew could have done better.&lt;br /&gt;&lt;br /&gt;My point here? You can't please all the people, all of the time, and really - why would you want to? Pick who matters, pick the audience who is going to affect your bottom line, and do what they want. To hell with what &lt;span style="font-weight: bold;"&gt;everyone&lt;/span&gt; else wants. Be prepared to be unpopular, be prepared to be reviled. As long as those who hate you aren't the ones you're trying to please. I've worked in too many situations where people are afraid of polarizing opinions. But really that's the information that is most useful, because it gives you a very clear picture of what you need to do to improve. The worst feedback you can get is "average, so-so, 5 out of 10..." - how does that help? A product/service/widget that is only measured against an average can only ever be, well...average!&lt;br /&gt;&lt;br /&gt;More on the importance of polarization in  marketing:&lt;br /&gt;&lt;a href="http://www.zeldman.com/2007/06/20/remove-maybe-from-invitation-systems/"&gt;Jeffrey Zeldman - "Maybe is one option too many" &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-3171298044945044043?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/3171298044945044043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=3171298044945044043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3171298044945044043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3171298044945044043'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/09/is-it-better-to-please-everyone-or-just.html' title='Is it better to please everyone, or just the ones that matter?'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-6057695657264532213</id><published>2007-09-10T10:32:00.000-05:00</published><updated>2007-09-10T10:35:41.941-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Long Time Coming, Death of CFDJ</title><content type='html'>I think enough has been said about this &lt;a href="http://corfield.org/blog/index.cfm/do/blog.entry/entry/Hurrah_CFDJ_is_dead"&gt;on&lt;/a&gt; &lt;a href="http://www.blogoffusion.com/index.cfm/2007/9/8/syscon-drops-coldfusion-for-silverlight"&gt;other&lt;/a&gt; &lt;a href="http://www.mattwoodward.com/blog/index.cfm?event=showEntry&amp;amp;entryId=EB7E2E94-A490-7C40-A55F0387D40F7483"&gt;blogs&lt;/a&gt; that adequately express my feelings on the subject, but I just love this blooper that Cliff caught...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://histos.typepad.com/histos/2007/09/cfdj-pwnz-itsel.html"&gt;http://histos.typepad.com/histos/2007/09/cfdj-pwnz-itsel.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Great find!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-6057695657264532213?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/6057695657264532213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=6057695657264532213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/6057695657264532213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/6057695657264532213'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/09/long-time-coming-death-of-cfdj.html' title='Long Time Coming, Death of CFDJ'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-2935483521695569908</id><published>2007-08-21T10:38:00.000-05:00</published><updated>2007-08-21T10:49:20.833-05:00</updated><title type='text'>Hosting, the Happy Ending</title><content type='html'>Last weekend I completed the process of moving my site to Edge Web Hosting. It was the quickest, easiest, smoothest host move I've ever experienced. While in large part I believe this is actually due to my use of the ModelGlue framework which resulted in centralized configuration that takes minutes to update, I also have Edge to thank for getting my database moved before I even had my files uploaded.&lt;br /&gt;&lt;br /&gt;I'm already liking several things about my new host. For one, their emails don't get automatically blocked by our office email firewall (more our mail host issue than the web host, but convenient nonetheless). They are also less restrictive on site settings - they configure the server for CFMAIL from the sandbox so I don't have to pass a server or password within my CFMAIL tags. Nice! The only tags they limit are CFREGISTRY and CFEXECUTE. At any rate, they have completely absolved me of any hesitation or anxiety that I had about moving off HostMySite.&lt;br /&gt;&lt;br /&gt;Yesterday while attending the &lt;a href="http://onair.adobe.com"&gt;Air Tour&lt;/a&gt; I got an email notification from HostMySite that they would be upgrading my (new) CF7 Server (the one they moved me to given the issues we had) to CF8 this week. Instead of panicking, I just breathed a big sigh of relief that our site was moved and hell would not be repeating itself this week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-2935483521695569908?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/2935483521695569908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=2935483521695569908' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/2935483521695569908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/2935483521695569908'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/08/hosting-happy-ending.html' title='Hosting, the Happy Ending'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-8029995263148424542</id><published>2007-08-17T15:50:00.001-05:00</published><updated>2007-08-17T16:26:06.499-05:00</updated><title type='text'>Hosting, Continued</title><content type='html'>So after spending the better part of my day (and night) working on getting my site back online, It was finally fully operational again around 7 this morning.&lt;br /&gt;&lt;br /&gt;HostMySite's support was good - although I was talking to so many different people it was hard to keep track and I don't think they were talking much amongst themselves. At my pleading (around 4pm yesterday when it still wasn't online), they set me up with a new account on a different, CF 7 server. So I put the site to that server, and everything worked fine, with the exception of a few settings, DSN's and the like that had to be transferred too. Because they set up the new server with my same Control Panel login info, when I would log into the Control Panel to make changes, it would only affect the old site. I had to request all those updates directly from support, requests which they promptly (I was getting emails throughout the night) took care of.&lt;br /&gt;&lt;br /&gt;However, the thing that has bothered me most about this ordeal is that with the last round of emails before I moved servers, support told me "it appears the timeout is happening at this CFLOOP tag, so why don't you try optimizing that section of the code and then it should run".  Now, I hadn't uploaded anything to the site in days that should cause this sudden slowdown, and there is no part of my site that's complex enough (it's all basic database interaction, mostly selects, with small data sets) to bring a server to its knees like that. So after I took a few deep breaths, I emailed my rebuttal.&lt;br /&gt;&lt;br /&gt;First off, the error I'm getting is inconsistent. It's always the same 500 - request timeout error. But the CFLOOP and line of code in the stack trace that it references varies between several different places. I've seen at least three different locations. They are all within the ModelGlue core, and once I saw an error within the ColdSpring core. Now I'm not saying anyone is exempt from bugs, but I just could not buy the idea that ModelGlue and ColdSpring are taking the server out with an infinite loop or such nonsense. These frameworks are used by hundreds of developers in major applications without such issues. And with all the talent and brains that's gone into developing them, the chance that the framework code, of all the code on my site, is what's causing the problem is about...oh...well...IMPOSSIBLE! No, the problem is that the server chokes at the first somewhat intense processing it comes across while loading the site, and the frameworks just happen to load first.&lt;br /&gt;&lt;br /&gt;This is essentially what I told HMS, along with providing some screen shots of the different stack traces I was getting. Then I begged them - if there's any way they can explain how my code is causing the problem, and provide me with some more details (using the handy dandy CF server monitor that they should have), then I would be more than happy to investigate and fix whatever the problem is. Because I certainly don't want the problem to come back after I switch servers. &lt;br /&gt;&lt;br /&gt;However the answer I got was "I can see what you are saying from the random errors however that was not what I experienced when attempting to troubleshoot the errors.&lt;br /&gt;&lt;br /&gt;Please let us know when you have moved the site to the CF7 Server and we will do some comparing to see if we cannot narrow down the exact problem in the code and possibly even fix it."&lt;br /&gt;&lt;br /&gt;So they've kindly offered to help, but still haven't provided me with any more details. If you ask me my personal opinion, I'd really like to stick with them on this. They have been (mostly) helpful and have catered to my demands.  I'm sure that upgrading to CF8 has not been an easy thing for them, and I know they were offering beta hosting way back when, so they have probably tested the hell out of it. But then business decisions come into play, and my boss (CEO) and IT Director don't have the rapport with them that I do. So I have to make a tough decision to switch hosts.&lt;br /&gt;&lt;br /&gt;I was not feeling very comfortable with the idea (I wanted to be sure the problem was not my code or CF8, rather than their server). But I talked to &lt;a href="http://www.edgewebhosting.com"&gt;Edge Web Hosting&lt;/a&gt;, and they helped me feel a little better about it. Ok, I talked to a salesperson. But he definitely knew what he was talking about. They have an uptime guarantee that isn't limited to the network and hardware (after some investigation I saw that HMS only limits their guarantee to these items), and they have a maximum of 60 sites/users on any server at once with their Master CF plan. They seem more focused on quality than price, so it's more expensive. But it's still not a bad deal.&lt;br /&gt;&lt;br /&gt;Is it just showing "action" without purpose to switch? Maybe. But I do feel like I'm getting a better plan with Edge. And it's not like I'll never go back to HMS. I'm still going to use CF 7 for the time being, just because I'm a little gun shy about jumping on the upgrade bandwagon before the host can prove they're ready, and I don't have an immediate need to switch to CF8 on the website.&lt;br /&gt;&lt;br /&gt;To be sure that I wasn't going to have these same problems with a new host, and to confirm in my own mind that I'm not holding the host responsible for my errors, I played around with the old site on HMS' server and tried running some CFDUMPs without loading a framework. Voila, they worked. I tried just loading the application and framework but then aborting...500 error/timeout. Now a couple dumps are hardly enough to take down a server under heavy load, but I found it sort of disturbing that I simply could not get a framework to load, but was able to run CF without the frameworks just fine. My best guess is that the server is just really overloaded, and it can handle a couple variables but not say, parsing an xml file.  I am determined to find out why my Model Glue site won't run on their CF8 server.&lt;br /&gt;&lt;br /&gt;But I'll probably still spend my weekend moving hosts. Argh. I'll keep updating as I figure this out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-8029995263148424542?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/8029995263148424542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=8029995263148424542' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/8029995263148424542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/8029995263148424542'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/08/hosting-continued.html' title='Hosting, Continued'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-1799478188707234026</id><published>2007-08-16T16:45:00.000-05:00</published><updated>2007-08-16T17:05:23.068-05:00</updated><title type='text'>WTF, HMS?</title><content type='html'>You can now add me to the never-ending list of bloggers and commenters on the topic of "my once-trusty web host is failing me, who do you recommend?"&lt;br /&gt;&lt;br /&gt;I've used HostMySite for years with multiple sites at multiple companies. They have always been outstanding. Never a problem, never unscheduled downtime, great support and communication. But last week, they upgraded to CF8, and in the process, seem to have fubar'd the server my site is on (the problem is not CF, it's a configuration issue). Since last week, my company's site has been completely down (as in server error 500) for at least 13 hours &lt;span style="font-style: italic;"&gt;during business hours&lt;/span&gt; (that I have been counting, who knows what happens while I sleep).  It's also been sluggish on several occasions.  I'd like to stick it out with HMS because of their history of quality, and even as I search for alternatives, it seems no one can say enough about how great they are. It's just too bad that I'm not having the same experience with them anymore.&lt;br /&gt;&lt;br /&gt;I've used CrystalTech, which I would rate "merely ok" - mostly because their control panel sucked (this was a few years ago - CF6.1 era - it's probably improved since then), and because their SQL Server was totally overloaded (it would take 30 minutes to load the list of databases on the server in to Enterprise Manager). I might consider going back, but considering HMS gets far better reviews, I have a hard time believing that CrystalTech would be a step up.&lt;br /&gt;&lt;br /&gt;I've looked at CFDynamics but they are too limited in capabilities, and their bandwidth and storage limits are puny for the price (compared to HMS and CT).&lt;br /&gt;&lt;br /&gt;Now I'm looking at Alentus, an Adobe-recommended host that also seems to get some good reviews. They do seem a little more expensive for the space. I'm not opposed to paying more than I do at HMS, although I don't feel our site is quite at a point where we need dedicated hosting. Mostly I just want to be sure that if I'm paying the higher prices, that the service level is better. Alentus does offer 99.999% uptime, compared to HostMySite's "99.9+" (as they list it on their site - what does + mean, anyway?!), and those last two 9's are looking mighty nice to me right now, since my current uptime (depending on how you calculate it) is around 99.98%. I'm not going to get into the whole BS-of-the-99.99%-claim... right now.&lt;br /&gt;&lt;br /&gt;I'd give HMS another chance, except right now I'm looking like a big fat idiot to the other folks at my company who I sold on the switch to HMS when I started (because we were moving to CF)...and with my boss tossing out "99% uptime" bla bla bla's, I can't afford to tolerate a vendor that doesn't deliver.&lt;br /&gt;&lt;br /&gt;Anyway, if anyone can recommend a fantabulous CF host or has experience with Alentus, I'd love to hear it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-1799478188707234026?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/1799478188707234026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=1799478188707234026' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/1799478188707234026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/1799478188707234026'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/08/wtf-hms.html' title='WTF, HMS?'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-8336229206941894749</id><published>2007-08-06T16:24:00.001-05:00</published><updated>2007-08-16T17:06:36.150-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='marketing'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>The Value of a Good Brand &amp; Reputation</title><content type='html'>One of the best little hole in the wall restaurants in this area was closed and then &lt;a href="http://www.nbc4.com/news/13831715/detail.html?rss=dc&amp;psp=news"&gt;recently reopened&lt;/a&gt; when the owners were indicted on numerous charges of laundering money, embezzling and employing illegal immigrants.&lt;br /&gt;&lt;br /&gt;Here's the thing. If you read this news story, on their first day of reopening, customers were &lt;span style="font-style: italic;"&gt;lined up&lt;/span&gt; outside the restaurant &lt;span style="font-style: italic;"&gt;before&lt;/span&gt; it opened, and it was packed all day. Perhaps some were there to show support for this favorite char broil-chicken joint, but I am willing to be the majority were there just for the great food.&lt;br /&gt;&lt;br /&gt;You see, every time I've been to this restaurant, no matter what time of day or what day of the week, there is a line out the door. But it's not for service, the workers there speak little to no english and aren't particularly friendly (they seem to care more about speed, and serving the line as quickly as possible). And it's not for atmosphere; the restaurant is basically a dump and even if you could find an empty table, it would be dirty from the last person to sit there. No, the people go there because it is simply the best chicken you will ever eat, and you'll pay the same price you would at any other limited service/carry out restaurant - around $8 for a generous entree with a side.&lt;br /&gt;&lt;br /&gt;Why am I making a big deal out of this? Because your product, your reputation, your brand, has to be truly amazing to have this sort of a comeback after the way this places was shut down a few weeks ago. I can say with some certainty that any other restaurant in the county would be gone for good if something like this happened to them.&lt;br /&gt;&lt;br /&gt;Think what you want about the fact that the owners broke the law in so many ways, you have to congratulate them for having such an outstanding product.  We'll see how things go in the longer term (who knows if they will be able to remain open when the law suit pans out), but just remember that if your business' product is really remarkable, the benefits can be beyond measure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-8336229206941894749?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/8336229206941894749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=8336229206941894749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/8336229206941894749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/8336229206941894749'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/08/value-of-good-brand-reputation.html' title='The Value of a Good Brand &amp; Reputation'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-6267580408692368309</id><published>2007-07-10T10:16:00.001-05:00</published><updated>2008-02-29T15:50:11.848-05:00</updated><title type='text'>Free AIR! (e-book)</title><content type='html'>&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;The Adobe AIR team has made their O'Reilly book, &lt;span style="font-style: italic; font-weight: bold;"&gt;Adobe AIR for JavaScript Developers&lt;/span&gt; available for free under Creative Commons License:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ajaxian.com/archives/adobe-air-free-book-download"&gt;Download the Free AIR Book&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I understand you can also get a free print version by visiting one of the AIR bus tour events. Thanks, AIR team!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-6267580408692368309?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/6267580408692368309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=6267580408692368309' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/6267580408692368309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/6267580408692368309'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/07/free-air-e-book.html' title='Free AIR! (e-book)'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-948610938151010173</id><published>2007-07-06T15:54:00.000-05:00</published><updated>2007-11-27T09:00:24.619-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Create a custom Excel color palette</title><content type='html'>Microsoft Excel was never meant to be a graphic layout tool, but that doesn't eliminate the need for Excel documents to look nice. I work for a financial firm, so naturally we do a LOT with Excel, and I'm always being sent Excel files to "make pretty", or given spreadsheets for reports and presentations that must look nice. After getting really tired of manually tweaking Excel colors to match company colors and de-uglify spreadsheets, I finally put together a complete custom palette that incorporates our company colors, logo colors, and coordinating colors of various hues.&lt;br /&gt;&lt;br /&gt;Did you know that you can actually customize every color available in the Excel palette, and then apply it to any spreadsheet? Here's how to design a custom Excel color palette so you can define your colors once and never have to worry about them again...and easily apply your color variations to existing spreadsheet.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Plan the palette&lt;/span&gt;&lt;br /&gt;Take a look at the standard Excel color palette. It contains black, white, a range of grays and then several primary colors in varying tints. In other words, a selection of primary colors and tings and shades of those colors. When you design your own color palette, consider how your company color palette maps to these swatches. So if your company color is green, you probably want to replace all the greens in the Excel palette with tints (lighter) and shades (darker) of your company's green color. Most likely you also have other colors you frequently use, so in your custom palette you'll want to place these colors in the location that's closest to that color.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_VMFmmwj_Ir8/RpP4okIUcyI/AAAAAAAAADY/sop_ptYPRVo/s1600-h/ExcelPalettes_sample.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_VMFmmwj_Ir8/RpP4okIUcyI/AAAAAAAAADY/sop_ptYPRVo/s320/ExcelPalettes_sample.png" alt="" id="BLOGGER_PHOTO_ID_5085681780008448802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Keeping your custom colors in the closest possible palette location to their equivalent in the standard Excel palette ensures that when you apply your palette to a document with colors already used, that the colors stay relatively the same, but with the proper shades assigned.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Set up the document&lt;/span&gt;&lt;br /&gt;The way I went about designing my custom palette was to create a series of square blocks in Illustrator (you can also use PhotoShop or any good graphics tool with color capabilities, but you'll see in a minute why Illustrator is great for this), 8 blocks wide and 5 blocks high. This replicates the number and location of the swatches in Excel.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Set up the document - notice I've pasted a screen shot of the Excel color menu for a reference&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_VMFmmwj_Ir8/RpP1vUIUctI/AAAAAAAAACw/AI7a-X46_PY/s1600-h/ExcelPalettes_0_setUpDoc.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_VMFmmwj_Ir8/RpP1vUIUctI/AAAAAAAAACw/AI7a-X46_PY/s320/ExcelPalettes_0_setUpDoc.png" alt="" id="BLOGGER_PHOTO_ID_5085678597437682386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Define the colors you know you'll need&lt;/span&gt;&lt;br /&gt;Then, I colored the blocks corresponding to their location on the palette with the colors I knew I wanted - black, white, grays, and my company's main logo color, picking the location on the grid that was closest to my custom color. This left me with about 75% of my blocks still uncolored. Then I used Illustrator's &lt;a href="http://www.adobe.com/products/illustrator/features/"&gt;Color Guide palette&lt;/a&gt; and Live Color dialog to expand on these colors (which makes it super fast and easy to create complete palettes - hence the reason for using Illustrator!).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;These were my starting colors - colors from our existing palette.&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_VMFmmwj_Ir8/RpP2F0IUcuI/AAAAAAAAAC4/mTkH_oxm39w/s1600-h/ExcelPalettes_1_startColors.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_VMFmmwj_Ir8/RpP2F0IUcuI/AAAAAAAAAC4/mTkH_oxm39w/s320/ExcelPalettes_1_startColors.png" alt="" id="BLOGGER_PHOTO_ID_5085678983984739042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4.Fill in any missing color spots with a coordinating equivalent&lt;/span&gt;&lt;br /&gt;The color guide can show lots of variations on the selected color, by tint/shade or vivid/muted, so most of the work of creating new shades of my primary colors was already done for me, it was just a matter of picking what looked good. I added lighter tints and darker shades of my starting colors. Then I picked a coordinating color from each hue in the spectrum (red, orange, yellow, green, blue and purple) to be my "base" colors. I put these colors in the second row from the top, which seemed to be the closest hue/value match for them.&lt;br /&gt;&lt;br /&gt;For the blocks directly below those colors (lighter shades of those colors), I created a discreet series of tints, starting with 80%, then 60%, 40%, and 20%. This created a nice variation of tints that should work for many uses. After this there were a couple blocks left over, so I filled those with neutral browns and tans.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;My complete Palette, in Illustrator&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_VMFmmwj_Ir8/RpP2r0IUcvI/AAAAAAAAADA/qV02YdyVBd8/s1600-h/ExcelPalettes_2_fullColors.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_VMFmmwj_Ir8/RpP2r0IUcvI/AAAAAAAAADA/qV02YdyVBd8/s320/ExcelPalettes_2_fullColors.png" alt="" id="BLOGGER_PHOTO_ID_5085679636819768050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5. Bring your palette into Excel&lt;/span&gt;&lt;br /&gt;Now I had a complete color palette, which I needed to bring into Excel. This was the "there's no way around it" un-fun part. Open a blank spreadsheet, go to Tools &gt; Options and pick the Color tab. Here you can select each color in the palette and hit the "Modify" button to change it. If you go to the custom tab in the Modify dialog, you can type in custom RGB values. Go back to Illustrator, and get the RGB value of each color block, and transfer it to Excel. Having the color palette open and displaying the RGB values for the selected color in Illustrator makes this easier. Manually go through every color in the Excel palette and change it to your custom color. Don't forget to save the document early on so it starts auto saving, because this takes awhile and God forbid you lose this work!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_VMFmmwj_Ir8/RpP3NUIUcwI/AAAAAAAAADI/2zywcHIEqog/s1600-h/ExcelPalettes_3_importToExcep.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_VMFmmwj_Ir8/RpP3NUIUcwI/AAAAAAAAADI/2zywcHIEqog/s320/ExcelPalettes_3_importToExcep.png" alt="" id="BLOGGER_PHOTO_ID_5085680212345385730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6. Use the palette&lt;/span&gt;&lt;br /&gt;Once you've assigned all your colors, save the document in a place you'll remember. Then to use it, open up both your color palette spreadsheet and the document you want to colorize. Go to Tools &gt; Options in your working document, and go to the Colors tab. You'll see at the bottom of this dialog there is a drop down of all open documents, with an option to "Copy colors from" (see figure above). Select your palette document, and hit OK, which copies the colors from it to your new document. Viola, your custom colors are now available in your new document! If there were colors already assigned in your new spreadsheet, they should have shifted to match your new palette.&lt;br /&gt;&lt;br /&gt;I also colored the cells in the first sheet of my custom palette spreadsheet with one cell corresponding to each color in the palette, just so it was obvious what was in that document (since the color settings are not initially invisible) and so you can get a bigger preview of all the colors for future modifications. This is also helpful for when you share the sheet with others. You may also want to try printing your swatches just to be sure they still look good when printed.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_VMFmmwj_Ir8/RpP3mEIUcxI/AAAAAAAAADQ/qIR7YtdwBuk/s1600-h/ExcelPalettes_4_sampleSwatches.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_VMFmmwj_Ir8/RpP3mEIUcxI/AAAAAAAAADQ/qIR7YtdwBuk/s320/ExcelPalettes_4_sampleSwatches.png" alt="" id="BLOGGER_PHOTO_ID_5085680637547148050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Update: if you'd like a copy of this palette, you can download it from the link below, via Adobe SHARE!&lt;br /&gt;&lt;br /&gt;&lt;a href="https://share.adobe.com/adc/document.do?docid=d683d417-9cf0-11dc-8fe2-d702873d34e2"&gt;https://share.adobe.com/adc/document.do?docid=d683d417-9cf0-11dc-8fe2-d702873d34e2&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-948610938151010173?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/948610938151010173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=948610938151010173' title='32 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/948610938151010173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/948610938151010173'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/07/create-custom-excel-color-palette.html' title='Create a custom Excel color palette'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_VMFmmwj_Ir8/RpP4okIUcyI/AAAAAAAAADY/sop_ptYPRVo/s72-c/ExcelPalettes_sample.png' height='72' width='72'/><thr:total>32</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-785578267517282935</id><published>2007-07-03T10:33:00.001-05:00</published><updated>2007-07-03T10:53:23.074-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>Amateur Alert: "site designed by..."</title><content type='html'>One of my favorite "mean things to do on the web" is to click on those little links some web design firms put on their clients' sites that say "site designed by" or "powered by" (insert company name and link here)...then I visit the designer's site and point and laugh. Better than flaming someone, right?&lt;br /&gt;&lt;br /&gt;Don't I sound horrible and cruel? But seriously, I don't know that I've &lt;span style="font-style: italic;"&gt;ever&lt;/span&gt; seen this "stamp" on a well-designed, professional site. If your site looks like &lt;a href="http://www.miba.net/"&gt;this&lt;/a&gt;, the last thing you want to do is draw attention to the fact that it's your work. Some may claim that their clients don't mind this, but I don't buy that. When I started at my first company, the first think they asked me to do to their website was to remove all references to the design company that created it. They did not realize that they had a choice in whether to put it there in the first place.&lt;br /&gt;&lt;br /&gt;Putting your name on a client's site is rarely an acceptable practice. The one case where I really think it's ok to add a credit is if you have volunteered design services for say, an open source or community site. Then, you've probably donated the design and perhaps you deserve a link. But still, the more professional way to handle it is to mention your company as a news item or press release on the new site when it launches. For example, "we're pleased to announce the launch of our new site, designed by XYZ Web Design".&lt;br /&gt;&lt;br /&gt;Or you could take it a little farther and spin it as a "partnership" project between your company and the client, with some nice quotes about how you worked together to develop an innovative site. If you constrain your "credit" to the launch of the site, it also limits your implied responsibility for the design of the site years down the road when it's horribly outdated and your work has drastically improved!&lt;br /&gt;&lt;br /&gt;Just putting your name and link on your client's site (no matter how small or out of the way) because it's part of your contract and that's how you intend to spread your name is simply &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; professional. Your work should speak for itself. If your client is truly happy, they will spread your name on their own. People will compliment their site and the client will say "thanks, I had this great little company develop it..."&lt;br /&gt;&lt;br /&gt;Instead, use your portfolio on your own website, and show off your client sites there &lt;span style="font-style: italic;"&gt;with actual links&lt;/span&gt;  to demonstrate that the site is still being used and it works, and that it's not student work or spec work. A quote from the client can also validate this. And nothing looks worse than when you show a pixel-perfect mock-up in your portfolio, but if you actually visit the site it's a mess. You can't fake good work.&lt;br /&gt;&lt;br /&gt;Let your work speak louder than a link that some client was forced to put on their site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-785578267517282935?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/785578267517282935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=785578267517282935' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/785578267517282935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/785578267517282935'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/07/amateur-alert-site-designed-by.html' title='Amateur Alert: &quot;site designed by...&quot;'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-1069593745030392811</id><published>2007-06-20T14:40:00.001-05:00</published><updated>2007-06-20T15:03:16.689-05:00</updated><title type='text'>Web/HTML editors that won't die</title><content type='html'>I may be a little late to the party in discussing this, but I just came across some info on the MS Office website about &lt;a href="http://office.microsoft.com/en-us/frontpage/FX100743231033.aspx"&gt;FrontPage going away&lt;/a&gt;. It's not surprising with the release of &lt;a href="http://www.microsoft.com/expression/"&gt;MS Expression Web&lt;/a&gt;,  but it's been around for so long I thought it would never go away. After all, Adobe recently released a new version of &lt;a href="http://www.adobe.com/products/golive/index.html"&gt;GoLive&lt;/a&gt;! (I will never understand.) However, MS appears to be reincarnating FrontPage as &lt;a href="http://office.microsoft.com/en-us/sharepointdesigner/FX100487631033.aspx"&gt;SharePoint Designer&lt;/a&gt;, the new tool for designing and customizing SharePoint pages.&lt;br /&gt;&lt;br /&gt;For those who haven't had the joy of working with SharePoint, you have to use Front Page to edit Sharepoint pages (beyond the built in tools) because of how everything is stored in the database. "Normal" web editor tools don't understand SharePoint-ese. SharePoint is the only reason I had FrontPage on my computer at my last job.&lt;br /&gt;&lt;br /&gt;As much as I &lt;3 Sharepoint, it sort of irks me that I have to buy a separate tool to modify HTML and CSS for it when I have thousands of dollars worth of other software designed just for that already on my machine. (Speaking of which, after about 3 days of use, I have determined that SharePoint 3.0 rocks.)&lt;br /&gt;&lt;br /&gt;I was never much of a FrontPage fan otherwise (as soon as I had to write any substantial amount of HTML I snagged myself some Dreamweaver 3.0), but I thought I would never see the day that FrontPage dies, and here we are... where are the tears?&lt;br /&gt;&lt;br /&gt;Speaking of dead software, &lt;a href="http://rahulnarula.blogspot.com/2007/06/macromedia-coldfusion-mx-61.html"&gt;CFMX 6.1 has been EOL'd&lt;/a&gt;...how about that?! That actually seemed soon to me, but then again I'm not sure how long they typically keep these products around. From what I have read it seems to be a very good decision. I always like being on the bleeding edge of software versions, and I hate to think of all the time that goes to maintaining old versions that could be put towards new features. Or those poor developers who work on products that have been replaced by newer and better products within the same company...&lt;br /&gt;&lt;br /&gt;So here's to euthanizing old software!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-1069593745030392811?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/1069593745030392811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=1069593745030392811' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/1069593745030392811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/1069593745030392811'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/06/webhtml-editors-that-wont-die.html' title='Web/HTML editors that won&apos;t die'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-4193546965357489477</id><published>2007-06-11T08:23:00.000-05:00</published><updated>2007-06-15T09:32:21.651-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Air'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><title type='text'>Apollo is Now AIR (and in Beta!)</title><content type='html'>Last week I finally got around to poking around in Apollo, and I'm really excited about it. I went back today, and it's now called Air, and in Beta! Super Cool.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://labs.adobe.com/technologies/air/"&gt;Air&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm going to use it to deploy a Flex application to desktop at my company. This particular application was originally "dreamed" to be everyone's desktop. Not ON everyone's desktop, but their actual desktop (the vision was that everyone would have it open all the time). Being able to have it on the desktop without a browser is going to be great for us. My users have also requested system tray notifications, so I'm looking forward to learning more about that with Air. I'll make updates as I figure it out :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-4193546965357489477?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/4193546965357489477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=4193546965357489477' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4193546965357489477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4193546965357489477'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/06/apollo-is-now-air-and-in-beta.html' title='Apollo is Now AIR (and in Beta!)'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-8054059270040665839</id><published>2007-05-31T13:14:00.000-05:00</published><updated>2007-05-31T13:18:27.432-05:00</updated><title type='text'>Microsoft Surface: BA Interface</title><content type='html'>If you haven't seen this yet, you have to check out Microsoft Surface:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.popularmechanics.com/technology/industry/4217348.html"&gt;http://www.popularmechanics.com/technology/industry/4217348.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When someone else told me about it, I was kind of ho-hum on the idea. But seeing it in action with this video makes it look really bad ass! The surface of the table-computer is multi-touch, so you can manipulate the screen at multiple points, such as for interacting with images, video, and maps. One really cool feature is how it recognizes objects that you set on it, such as wireless devices, so it can read images and files that are stored in the device. Place a digital camera on the surface, and it pulls up all the images on the camera. I want one, now!&lt;br /&gt;&lt;br /&gt;This is quite possibly the coolest thing I have seen Microsoft do. I hope it runs on a somewhat standard Windows OS because it's a prime candidate for Flash/Flex interfaces (or as MS sees it, for Silverlight...).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-8054059270040665839?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/8054059270040665839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=8054059270040665839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/8054059270040665839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/8054059270040665839'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/05/microsoft-surface-ba-interface.html' title='Microsoft Surface: BA Interface'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-661802260957860841</id><published>2007-05-18T08:33:00.000-05:00</published><updated>2007-05-18T09:03:17.421-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='marketing'/><category scheme='http://www.blogger.com/atom/ns#' term='Book Reviews'/><title type='text'>Book Review: Pop!</title><content type='html'>I knew when I started this blog that doing book reviews would be a frequent topic, but I have yet to write one. I guess things have been pretty busy over the past couple months and I haven't read as many books as usual. But I am indeed a bookworm, and reading tech books has probably exponentially multiplied the number of pages I will read in my life. So with this, I am to share some of that bookwormedness with the world.&lt;br /&gt;&lt;br /&gt;This review is for the book &lt;a href="http://www.amazon.com/Pop-Stand-Out-Any-Crowd/dp/0399532765/ref=pd_bbs_sr_1/002-4556397-3450415?ie=UTF8&amp;s=books&amp;amp;qid=1179495402&amp;sr=8-1"&gt;POP! Stand Out in Any Crowd&lt;/a&gt;, by Sam Horn. It may seem redundant to review this book when it's getting such great reviews on Amazon, but I really enjoyed it.&lt;br /&gt;&lt;br /&gt;The topic of POP is just what it sounds like from the title. The interesting thing is that it's not just about business, or design, or marketing. The principles can apply in almost any circumstances where standing out is important. Which is everywhere.&lt;br /&gt;&lt;br /&gt;POP stands for "Purposeful", "Original" and "Pithy". The book covers, in a very methodical way (great for analytical people like me), several processes, methods and inspiration sources for creating original ideas and "buzz" to surround them. So you've got a great idea? How do you make it exciting and unique to the rest of the world?&lt;br /&gt;&lt;br /&gt;Purposeful, the first P, is for "accurately articulating the essence of you and your offering."   Your message must have meaning. O is for Original, because "no matter what you are saying or selling, you are one of many" and you need to distinguish yourself. Pithy is short - it must be concise so that people remember and it "sticks". No one has a long attention span these days, so your message must be conveyable in just a few words. Being purposeful (focused) helps here too.&lt;br /&gt;&lt;br /&gt;Beginning with Purposeful, it goes into a very in-depth, soul-searching analysis of your subject, whether it is your product, business, or yourself - and forces you to define its meaning and purpose. Sam has you create what she calls a "W9" form. That terminology bugged me a little (I have been known to argue semantics...) as the "W9" form in the book has nothing to do with IRS forms (which had also been on my mind because of the HR kit we're developing at work, and the recent tax season). But get past the choice of title, and the W9 is something every business needs. The W9 is a series of 9 questions, all beginning with W.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;What am I offering?&lt;/li&gt;&lt;li&gt;What problem does my idea solve?&lt;/li&gt;&lt;li&gt;Why is it worth trying and buying?&lt;/li&gt;&lt;li&gt;Who is my target audience?&lt;/li&gt;&lt;li&gt;Who am I and what are my credentials?&lt;/li&gt;&lt;li&gt;Who are my competitors and how am I different from them?&lt;/li&gt;&lt;li&gt;What resistance or objections will people have to this?&lt;/li&gt;&lt;li&gt;What is the purpose of my pitch?&lt;/li&gt;&lt;li&gt;When, where and how do I want people to take action?&lt;/li&gt;&lt;/ol&gt;Now if you've read other books about branding, these will sound familiar, and probably feel a little regurgitated. But what follows in the book are excellent examples and definitions of &lt;span style="font-style: italic;"&gt;how&lt;/span&gt;  to answer these questions that is quite different from what you might come up with if you only read that list. Trust me, I've been through this exercise with my employer(s) too many times to count, and I got so tired of hearing the same old automatic responses that we always spouted, none of which were, well, POP! But the way the author teaches you to explore these questions can and will yield much better results than you thought possible. In fact, I did it for a project I was working on at the time, and I've probably never been happier with the results.&lt;br /&gt;&lt;br /&gt;The writing of the W9 leads to a list of "core words" that are related to your product, which then become a resource for the rest of the book: techniques for creating interesting phrases, terms and ideas relating to your product.&lt;br /&gt;&lt;br /&gt;Some of these techniques you probably already employ in your brainstorming, many are "old standbys" but there are also some new and different ones. And most importantly, they are all here, explained and exemplified and in one place. In addition, completing the first section of the book with the W9 and Core Words before trying these techniques will make you more productive than ever in using these techniques. So even if you have used them before, they will yield new results given your new focus.  By the time you exhaust these techniques with your list of core words, if you've really tried, you WILL have come up with some real breakthroughs.&lt;br /&gt;&lt;br /&gt;Along the way, the book gives some good advice for presenting and pitching, and connecting better with your audience. Overall, I found this book to be very useful with "real" benefits, unlike many branding books that are fun to read but don't ultimately get you anywhere. I would recommend this book, whether or not your job involves marketing and branding. It will help you discover creativity you didn't know you had!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-661802260957860841?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/661802260957860841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=661802260957860841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/661802260957860841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/661802260957860841'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/05/book-review-pop.html' title='Book Review: Pop!'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-8174276903295698229</id><published>2007-05-15T16:52:00.000-05:00</published><updated>2007-05-16T09:00:28.931-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Calculate Business Days with ActionScript</title><content type='html'>Here's a quick function for calculating business days with ActionScript 3. I've found similar functions in other languages but there doesn't seem to be anything out there yet for AS3...so here ya go!&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public static const millisecondsPerDay:int = 1000 * 60 * 60 * 24;&lt;br /&gt;&lt;br /&gt;public function businessDaysElapsed(date1:Date,date2:Date):int {&lt;br /&gt;            var numberOfDays:int = 0;&lt;br /&gt;           &lt;br /&gt;            while (date1 &lt; date2) {&lt;br /&gt;                //increment date by a day&lt;br /&gt;                date1.setTime(date1.getTime() +  millisecondsPerDay);&lt;br /&gt;                //if day is between monday and friday, add one day&lt;br /&gt;                if (date1.day &gt;= 1 &amp;&amp;amp; date1.day &lt;=5) {&lt;br /&gt;                    numberOfDays ++&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            return numberOfDays;&lt;br /&gt;        }&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-8174276903295698229?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/8174276903295698229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=8174276903295698229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/8174276903295698229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/8174276903295698229'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/05/calculate-business-days-with.html' title='Calculate Business Days with ActionScript'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-3925841389406802128</id><published>2007-05-11T08:02:00.000-05:00</published><updated>2007-05-11T08:29:04.904-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><category scheme='http://www.blogger.com/atom/ns#' term='conferences'/><title type='text'>Belated CF Objective Wrap Up</title><content type='html'>I'm finally starting to get my head back above water at work after returning from CF.Objective(), so I thought I'd share some of my experience. The conference was great! A huge improvement over last year, which itself was excellent, and what high quality content. I can't say enough.&lt;br /&gt;&lt;br /&gt;The big topics at the conference this year were Scorpio and ColdSpring. Maybe I say ColdSpring because about half the sessions I attended at least mentioned it, or maybe because I was hanging out with Adam (ColdSpring's self-appointed agent) , &lt;a href="http://cdscott.blogspot.com/"&gt;Chris&lt;/a&gt; and &lt;a href="http://www.d-ross.org"&gt;Dave&lt;/a&gt;. But since I've been using ColdSpring and MG:Unity, without really understanding ColdSpring all that well, I thought I should get to know it a little better. Hey, I'm a designer - it takes me awhile to grasp these things!&lt;br /&gt;&lt;br /&gt;And of course, what everyone wants to hear...what's coming with Scorpio? I'm really excited about several things that were announced&lt;br /&gt;&lt;ul&gt;&lt;li&gt;AJAX tags - there are 12 new ones! Not just new UI widgets using the YUI library while wrapping it up into the ever-simple CF syntax; but also JSON serialization for CFCs, data binding, error handling, and a JavaScript debugger. A lot of the concepts seem to echo Flex, so if you've done any work with Flex these features will come very naturally. This is just one more step towards my life goal of never having to write JavaScript again :)&lt;/li&gt;&lt;li&gt;PDF tags - not just improvements to &lt;cfdocument&gt;, but &lt;cfpdf&gt; which allows you to manipulate PDFs in dozens of ways (combining docs, watermarking, rotating pages, etc), and process Acrobat Forms. The functionality is taken from LiveCycle, and from what I hear, we should all be very appreciative of the power that's being added to CF at a fraction of what it would cost to get LiveCycle. A very SMALL fraction. A few people grumbled that you won't be able to &lt;span style="font-style: italic;"&gt;create&lt;/span&gt; PDF forms with CF, but I say to those people, just wait and I think you will find out that you really don't need that functionality. If you need to create a dynamic form so badly, ever heard of...ahem...HTML? Or how about that thing they call Flex?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Geek features - I didn't attend the Scorpio 1337 session (features only geeks could love) because there was something else on the schedule I wanted to see at the same time (although that seemed to happen every time slot, there were so many great topics). But there were promises of some very geeky features like Interfaces, the debugger, and well, I don't remember them all because I didn't attend this session, but I'm sure if you are a geek there will be lots of things for you to appreciate.&lt;/li&gt;&lt;li&gt;The new CFAdmin interface and server monitoring features are sweet. You can drill down into every connection and request on your site, to see where the load is and what exactly is going on at any moment in time (right down to the values of variables in various scopes), along with completely customizable alerts (you can even write a CFC to do your own alert handling). It's really amazing that you can find out so much about what's happening on your server in such a simple way.&lt;/li&gt;&lt;li&gt;There's lots more, but this post is getting long.&lt;/li&gt;&lt;/ul&gt;It's not common that I leave a conference with no complaints. In comparison to CFObjective,  other conferences are too long (by the last day I'm not interested or up to seeing any more sessions), don't have enough good content (all three sessions I want to see will inevitably be at the same time, while there are entire afternoons full of nothing I want to see), have too many sales pitches, have crappy food (hey, details matter), have bouncers working the door at every session to ensure no unwanted guests get in (bad vibes), or cost too much (something you begin to question when you go to an extravagant social even that's actually kinda lame, and realize that half your registration fee went to pay for that one night).  Great job Jared, Steven, Jim and team...I'm looking forward to next year!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-3925841389406802128?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/3925841389406802128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=3925841389406802128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3925841389406802128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3925841389406802128'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/05/belated-cf-objective-wrap-up.html' title='Belated CF Objective Wrap Up'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-6778872695186989292</id><published>2007-05-11T07:47:00.000-05:00</published><updated>2007-05-11T08:00:21.650-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>New Google Analytics</title><content type='html'>A new version of Google Analytics is coming:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://analytics.blogspot.com/2007/05/new-version-of-google-analytics.html"&gt;http://analytics.blogspot.com/2007/05/new-version-of-google-analytics.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Google Analytics is already a great tool, but this new version seems to still be an improvement. The features being promised for the new GA are much needed - scheduled email of reports, custom dashboard, and better trends-over-time. I hope they can also get the Site Overlay feature working better on CSS-based layouts. Maybe it's not really that useful, but it sure looks cool!&lt;br /&gt;&lt;br /&gt;The interface looks simpler also, to which I say "it's about time!" So many web analytics tools, for so long, have used such non-intuitive, cryptic menus and language for their interfaces. Granted, I've never been fortunate enough to use WebTrends, which I hear is great, but LiveStats, SmarterStats and Urchin/Google Analytics, despite improvement over the years, still don't &lt;span style="font-style: italic;"&gt;quite&lt;/span&gt; give me the information I'm looking for, and they all require pulling multiple reports just to see what you'd think should be the same information every webmaster wants to see! Not only that, it's difficult to understand exactly what you're looking at, sometimes the explanations about the reports don't really provide any helpful information. Maybe that's why Mint gets such rave reviews, but I can't use it because it's LAMP. So, yay for better, more usable web analytics tools!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-6778872695186989292?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/6778872695186989292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=6778872695186989292' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/6778872695186989292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/6778872695186989292'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/05/new-google-analytics.html' title='New Google Analytics'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-5647402210695132348</id><published>2007-05-03T13:29:00.000-05:00</published><updated>2007-05-03T13:42:13.678-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Adobe Stock Photos is teh kewl</title><content type='html'>I didn't really use Adobe stock photos before now, I pretty much used Getty and a couple alternates when I couldn't find what I need on Getty, and that was it. I somehow felt like I would not get as good a deal if I didn't go through the manufacturer.&lt;br /&gt;&lt;br /&gt;However, over the past year or two, I've seen a lot of excellent new royalty-free stock photography houses blossoming. There's the trend towards all-you-can-download pricing (&lt;a href="http://www.shutterstock.com"&gt;Shutterstock&lt;/a&gt;, &lt;a href="http://www.liquidlibrary.com"&gt;LiquidLibrary&lt;/a&gt;), and the super-inexpensive, community-based sites (&lt;a href="http://www.iStockPhoto.com"&gt;iStockPhoto&lt;/a&gt;). These have turned out to be a real boon for me when I needed simple, generic images. Need a picture of a plain old book? Or just a smiling dude? You'll find hundreds.&lt;br /&gt;&lt;br /&gt;But when it comes to a large campaign with a 15000-piece print run, maybe you want something more unique. In those cases, I've moved away from the majors (&lt;a href="http://www.Gettyimages.com"&gt;Getty&lt;/a&gt; and &lt;a href="http://www.Corbisimages.com"&gt;Corbis&lt;/a&gt;) because they are not only expensive, but they are so popular there is a good chance that someone else will have used your image. &lt;a href="http://www.veer.com"&gt;Veer&lt;/a&gt; and &lt;a href="http://www.Creatas.com"&gt;Creatas&lt;/a&gt; are popular with a lot of designers, and they do tend to carry more unique images, but with a smaller selection.&lt;br /&gt;&lt;br /&gt;After awhile, all this searching among several sites gets tedious. And some stock websites are considerably better than others - pricing at your fingertips, convenient comps and zoomed views, as well as how painful it is to page through 1100 images...the amenities vary widely from site to site. I find myself sometimes wishing one site had the xyz feature of another.&lt;br /&gt;&lt;br /&gt;Enter Adobe Stock Photos. A convenient, robust, fast and slick interface that brings together the selection of dozens of stock houses, with fairly consistent and reasonable pricing. The only other thing I can ask for would be the ability to search for disks of images, or find the disk associated with an image if available (if I find one I really like, chances are there are others from the same photographer or shoot). And perhaps some additional "smart" search tools, but really when the interface works this well I don't mind looking through a few more images. I just bought my first three photos there, and I'm really pleased!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-5647402210695132348?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/5647402210695132348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=5647402210695132348' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/5647402210695132348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/5647402210695132348'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/05/adobe-stock-photos-is-teh-kewl.html' title='Adobe Stock Photos is teh kewl'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-8542669152881921557</id><published>2007-05-03T13:24:00.000-05:00</published><updated>2007-05-03T13:26:55.829-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><category scheme='http://www.blogger.com/atom/ns#' term='conferences'/><title type='text'>Off to CF.Objective!</title><content type='html'>I'm about to sign out and leave for the airport to head to Minneapolis for the 2nd ever CF.Objective() conference. From what I've heard about this year's conference so far, it sounds like it's going to be great and I'm excited! I'll try to blog some talks I attend if I'm not too distracted...if you're going too, see you there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-8542669152881921557?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/8542669152881921557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=8542669152881921557' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/8542669152881921557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/8542669152881921557'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/05/off-to-cfobjective.html' title='Off to CF.Objective!'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-3734192905775187483</id><published>2007-04-30T07:36:00.000-05:00</published><updated>2007-04-30T07:39:03.126-05:00</updated><title type='text'>Grow up, web design field!</title><content type='html'>&lt;a href="http://www.alistapart.com"&gt;ALA&lt;/a&gt; is conducting a Web Design/Development Survey...I'm interested to see the results. In a small way, it's a sign of the industry (slowly) maturing, something  ALA has done a great deal to push forward.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://alistapart.com/articles/webdesignsurvey"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_VMFmmwj_Ir8/RjXjRhfzvZI/AAAAAAAAACo/RWzQp8z5QIk/s200/i-took-the-2007-survey.gif" alt="" id="BLOGGER_PHOTO_ID_5059199646609685906" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-3734192905775187483?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/3734192905775187483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=3734192905775187483' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3734192905775187483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3734192905775187483'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/04/grow-up-web-design-field.html' title='Grow up, web design field!'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_VMFmmwj_Ir8/RjXjRhfzvZI/AAAAAAAAACo/RWzQp8z5QIk/s72-c/i-took-the-2007-survey.gif' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-4619623874937991996</id><published>2007-04-26T15:49:00.000-05:00</published><updated>2007-04-26T16:10:58.877-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='creative suite'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><title type='text'>Upgrading to Creative Suite 3? Use caution!</title><content type='html'>Just a word of advice from someone who did this upgrade in a much more painful manner than necessary! Make sure you understand what you are buying!&lt;br /&gt;&lt;br /&gt;Last summer, I started my job at my current company, and got an entirely new computer with all new software. Naturally I needed all my Adobe goodies. This was shortly after the completion of the Adobe/Macromedia merger, so I was able to get it all by purchasing the Creative Suite Web Bundle, which included Creative Suite 2 Premium and Studio 8 Pro.&lt;br /&gt;&lt;br /&gt;When CS3 came out I was all in a tizzy about upgrading as quickly as possible, because I had been on the PhotoShop and Fireworks CS3 betas and was already addicted. I checked out all the new suite options, and decided that Master wasn't for me - I didn't need all the video apps. And Design Premium didn't include Fireworks or Contribute. &lt;br /&gt;&lt;br /&gt;I bought Web Premium, which I thought had everything I needed. I failed to notice that InDesign was not part of Web Premium. I think it was a mixture of my hurry and excitement to purchase (bad idea), and my assumption that anything called "Creative Suite" would include InDesign because it always has. Again, "to assume just makes an ass of u and me"...&lt;br /&gt;&lt;br /&gt;Well, as I was going through my installation woes with CS3 Web Premium, I discovered the missing InDesign upgrade, and went on Adobe's site to see what I missed. I looked at the cost of upgrading InDesign alone, and figured that's what I was going to have to do. The "upgrade eligibility" page on the site was ambiguous - it said I could upgrade if I owned InDesign CS2, which I do.  I wasn't sure if that would be allowed, so I chatted online with a customer service rep who told me it would work. Cool.  So I bought the inDesign upgrade, and installed it, but when it came time to register, it would not accept my previous serial number for the upgrade or locate my previous installation. Argh.&lt;br /&gt;&lt;br /&gt;I called support for like the 10th time in the past 2 days and was told that in fact that upgrade could not be done, I couldn't upgrade twice off the same product. Yeah, I get it, I understand, I see their point when they put it that way. But think about it, I OWN the previous version! I have done nothing shady or illegal here, I just want the shiny new versions of everything that I've already bought!&lt;br /&gt;&lt;br /&gt;So, now I'm in a position where none of the suite products allow me to upgrade my previous purchase in full without purchasing another product as a standalone.&lt;br /&gt;&lt;br /&gt;I ended up having to return CS3 Web Premium to get CS3 Design Premium, and forego Fireworks, because it's not as essential to my workflow (I was looking forward to some of its Flex comping and skinning features...too bad) . I can't bring myself to pay full price for a full version of a product I don't use that much &lt;span style="font-style: italic;"&gt;that I already own&lt;/span&gt;. CS3 is also very pricey, my company has put $1700 into this suite so far!  I'm disappointed in this oversight of Adobe's, at the lack of clarity on the website, and at the lack of education of the customer service rep I chatted with online. &lt;br /&gt;&lt;br /&gt;I'm sure a lot of this has to do with the merger. I know Adobe can't be expected support infinite variations of their suites. I'm probably an edge case. But I still feel a little shafted here.&lt;br /&gt;&lt;br /&gt;On the flip side, the new versions of everything in CS3 are fantastic, you should buy them...just watch what you're doing before you do!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-4619623874937991996?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/4619623874937991996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=4619623874937991996' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4619623874937991996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4619623874937991996'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/04/upgrading-to-creative-suite-3-use.html' title='Upgrading to Creative Suite 3? Use caution!'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-801931150117904914</id><published>2007-04-26T07:49:00.000-05:00</published><updated>2007-04-26T07:57:59.504-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><title type='text'>Adobe to Open Source Flex</title><content type='html'>Wow, this is big news! Adobe has just announced that they will be releasing Flex under the Mozilla Public License. If you think about it, it's not that big of a jump since the Flex SDK is already available for free, they are just releasing additional developer resources, docs and build information...and enabling outside developers to contribute.&lt;br /&gt;&lt;br /&gt;The press release: &lt;a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200704/042607Flex.html"&gt;http://www.adobe.com/aboutadobe/pressroom/pressreleases/200704/042607Flex.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;FAQ:&lt;br /&gt;&lt;a href="http://labs.adobe.com/wiki/index.php/Flex:Open_Source"&gt;http://labs.adobe.com/wiki/index.php/Flex:Open_Source&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This seems like a smart move to me for many reasons. First off, it's hugely positive PR. The public loves open source. Adobe has gotten a bad rap for the cost of some of their enterprise products, despite the fact that they have contributed to many open source products and released their own (Tamarin). This is a big step towards broad acceptance of Flex by the web development community, and it's going to have a great impact on the success of Apollo. If Adobe wants to rule the web, this is how they are going to do it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-801931150117904914?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/801931150117904914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=801931150117904914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/801931150117904914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/801931150117904914'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/04/adobe-to-open-source-flex.html' title='Adobe to Open Source Flex'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-2812349496048600595</id><published>2007-04-25T14:11:00.000-05:00</published><updated>2007-04-25T14:12:59.503-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><title type='text'>CS3 Blues</title><content type='html'>&lt;span style="font-style: italic;"&gt;(To any blues tune)&lt;br /&gt;&lt;br /&gt;Da na na na nuh…&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I’ve got the blues&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Da na na na nuh…&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The CS3 blues&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I can’t install!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I can’t activate …&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Watched the progress bar creep&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I just sit and wait&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Support got it working…&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;With a magical code&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Is this a light&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;At the end of the road?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Finally running&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Got nothing done today…&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Adobe why…&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;do you hurt me this way?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I’ve paid lots of money&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Used your software for years&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;For my excitement I get&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Inconvenience and tears&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-2812349496048600595?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/2812349496048600595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=2812349496048600595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/2812349496048600595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/2812349496048600595'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/04/cs3-blues.html' title='CS3 Blues'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-4374075827378266821</id><published>2007-04-20T09:30:00.000-05:00</published><updated>2007-04-20T09:53:36.430-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='Illustrator'/><title type='text'>Drawing Maps with Illustrator</title><content type='html'>I did a fun little project this week that I’ve done a few times before, but this time I thought I’d write up a little tutorial on it to share. I’ve you’ve done any amount of graphic design, you’ve probably had to draw maps, maybe as directions to an event or office. Illustrator has some cool features that come in handy for this type of illustrated map. The map I’m doing here is pretty simple, but using these techniques, you can go as fancy and stylized as you want. Maybe when I have time I’ll update these images to show alternate styles.    &lt;p class="MsoNormal"&gt;Find your source map – a real map that you can trace. (cough*google*cough) &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Scan it, or grab a screen shot and paste it into your Illustrator document as a template. Place it where you want it, and lock the layer.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_VMFmmwj_Ir8/RijQZRuM0oI/AAAAAAAAAAw/zz_hOqGOwOI/s1600-h/source+map.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_VMFmmwj_Ir8/RijQZRuM0oI/AAAAAAAAAAw/zz_hOqGOwOI/s400/source+map.jpg" alt="" id="BLOGGER_PHOTO_ID_5055519714395869826" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Create a new layer for your roads. You may want to have a couple layers, one for major roads, one for minor roads, one for highways, etc. Trace the roads you want to show on this layer, using the line and pen tools. It helps to draw these paths in a color that contrasts with your map so you don’t give yourself a headache looking at all those lines.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Tip&lt;/span&gt; – to make it easier when you add the labels to these roads, pay mind to the direction you draw them in. Start to the left and work your way towards right. This will make your path go in the direction your text should go. Draw your strokes down the center of where the road should be. Pay attention to street names you’re tracing and try to use one path per street, this will make it easier to label them later. If you draw multiple streets with a single path, you’ll have to break them up later.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_VMFmmwj_Ir8/RijQkhuM0pI/AAAAAAAAAA4/HBZHy15gex0/s1600-h/draw+major+roads.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_VMFmmwj_Ir8/RijQkhuM0pI/AAAAAAAAAA4/HBZHy15gex0/s400/draw+major+roads.jpg" alt="" id="BLOGGER_PHOTO_ID_5055519907669398162" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;If you’re tracing several roads, you may want to style them differently. Once you have your major roads traced, lock the layer, and create another for minor roads. You will probably want this one under your major roads layer. Keep each set of roads on its own layer for easy access.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_VMFmmwj_Ir8/RijQqxuM0qI/AAAAAAAAABA/AJFsymSW_6A/s1600-h/draw+minor+roads.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_VMFmmwj_Ir8/RijQqxuM0qI/AAAAAAAAABA/AJFsymSW_6A/s400/draw+minor+roads.jpg" alt="" id="BLOGGER_PHOTO_ID_5055520015043580578" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;You can style the roads a couple ways. Brushes work well for complex styles. To define a custom brush, draw the shape you want to represent your road, select it, and then hit the “new brush” button in the brushes palette, or drag it into the brushes Palette. Choose “Art Brush” as the type of brush. This will tell Illustrator to stretch the shape you’ve drawn over the length of the path. You can also adjust the scale of it later if you decide you want your roads wider. Because we’ve separated our major and minor roads onto different layers, you can define separate brushes for each.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_VMFmmwj_Ir8/RijQ0RuM0rI/AAAAAAAAABI/hwyOvz9DjDU/s1600-h/define+brushes.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_VMFmmwj_Ir8/RijQ0RuM0rI/AAAAAAAAABI/hwyOvz9DjDU/s400/define+brushes.jpg" alt="" id="BLOGGER_PHOTO_ID_5055520178252337842" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;An alternate way to style the roads is to customize the stroke for the road – make it wider and apply a color. You don’t have as much flexibility or styling options as you do with creating a brush, but this makes it easier to flatten the roads later. After you're done, you’ll want to expand the appearance of the brushes, or strokes. Another reason we made a backup of those layers!&lt;/p&gt;&lt;p class="MsoNormal"&gt;Make the stroke wide as you wish the road to be:&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_VMFmmwj_Ir8/RijQ9xuM0sI/AAAAAAAAABQ/DBOagzshbhs/s1600-h/wide+strokes.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_VMFmmwj_Ir8/RijQ9xuM0sI/AAAAAAAAABQ/DBOagzshbhs/s400/wide+strokes.jpg" alt="" id="BLOGGER_PHOTO_ID_5055520341461095106" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Color it to match the road:&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_VMFmmwj_Ir8/RijRHRuM0tI/AAAAAAAAABY/7Nl91lt8zko/s1600-h/wide+stroke+colors.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_VMFmmwj_Ir8/RijRHRuM0tI/AAAAAAAAABY/7Nl91lt8zko/s400/wide+stroke+colors.jpg" alt="" id="BLOGGER_PHOTO_ID_5055520504669852370" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Expand the path:&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_VMFmmwj_Ir8/RijRPRuM0uI/AAAAAAAAABg/K_Yw73nWuvA/s1600-h/expand+stroke.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_VMFmmwj_Ir8/RijRPRuM0uI/AAAAAAAAABg/K_Yw73nWuvA/s400/expand+stroke.jpg" alt="" id="BLOGGER_PHOTO_ID_5055520642108805858" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Add desired borders:&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_VMFmmwj_Ir8/RijRThuM0vI/AAAAAAAAABo/aEJWYk4VbOw/s1600-h/add+border+to+expanded+stroke.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_VMFmmwj_Ir8/RijRThuM0vI/AAAAAAAAABo/aEJWYk4VbOw/s400/add+border+to+expanded+stroke.jpg" alt="" id="BLOGGER_PHOTO_ID_5055520715123249906" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Duplicate your first road layer to keep a backup (you’ll need it later - lock it and turn its visibility off to get it out of the way), then apply the brush you created for major roads to those paths, or style those paths with your desired strokes. Do the same for all other road layers – keeping a copy of the original paths for each. You can turn the visibility of your traced template layer on and off to see how it looks.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Once you’re done, you may notice that the intersections of the roads may look a little funky from your brushes or strokes, and that any borders around the road lines cross over eachother rather than intersecting.&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_VMFmmwj_Ir8/RijR8BuM0wI/AAAAAAAAABw/G3SBjSPu8Ds/s1600-h/intersection.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_VMFmmwj_Ir8/RijR8BuM0wI/AAAAAAAAABw/G3SBjSPu8Ds/s400/intersection.jpg" alt="" id="BLOGGER_PHOTO_ID_5055521410907951874" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;To fix this, we'll use the Pathfinder to add the shapes together for the desired effect. This is much simpler with strokes than it is with brushes, another reason to use a stroke if you can. With strokes, you can select all of the expanded strokes, hit the “add” button, and you’re done. With brushes you’ll have to carefully expand the appearance of each, and add them together one at a time.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_VMFmmwj_Ir8/RijSWBuM0yI/AAAAAAAAACA/5BnLFjWKQLs/s1600-h/pathfinder+add.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_VMFmmwj_Ir8/RijSWBuM0yI/AAAAAAAAACA/5BnLFjWKQLs/s400/pathfinder+add.jpg" alt="" id="BLOGGER_PHOTO_ID_5055521857584550690" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Much better!&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_VMFmmwj_Ir8/RijSRBuM0xI/AAAAAAAAAB4/YhMEKfPhR3g/s1600-h/added+paths.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_VMFmmwj_Ir8/RijSRBuM0xI/AAAAAAAAAB4/YhMEKfPhR3g/s400/added+paths.jpg" alt="" id="BLOGGER_PHOTO_ID_5055521771685204754" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Now we’re going to add labels. Create another copy of your backed up road path layers, this one will be where we add the text labels. Using the text tool, add street names to each road path. You can use the baseline adjustment on the Character palette to align the text it where you’d like it to appear in relation to the road path. Drag the slider handles around the text with the arrow tool to position the text where you want it, or flip it to the opposite side of the path.&lt;/p&gt;Insert text along the path:&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_VMFmmwj_Ir8/RijSpxuM0zI/AAAAAAAAACI/7ntDMjfmYKo/s1600-h/add+text+to+path.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_VMFmmwj_Ir8/RijSpxuM0zI/AAAAAAAAACI/7ntDMjfmYKo/s400/add+text+to+path.jpg" alt="" id="BLOGGER_PHOTO_ID_5055522196886967090" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Adjust the text style and baseline:&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_VMFmmwj_Ir8/RijStRuM00I/AAAAAAAAACQ/lpqMGE442KE/s1600-h/adjust+text.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_VMFmmwj_Ir8/RijStRuM00I/AAAAAAAAACQ/lpqMGE442KE/s400/adjust+text.jpg" alt="" id="BLOGGER_PHOTO_ID_5055522257016509250" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Drag the text to the desired location:&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_VMFmmwj_Ir8/RijS8RuM01I/AAAAAAAAACY/6LpOUFNFirs/s1600-h/adjust+location+of+text.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_VMFmmwj_Ir8/RijS8RuM01I/AAAAAAAAACY/6LpOUFNFirs/s400/adjust+location+of+text.jpg" alt="" id="BLOGGER_PHOTO_ID_5055522514714547026" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;As you can see from these screen shots, I'm turning the visibility of the template on for reference and off for clarity.&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Once all of your roads are labeled, you can draw in icons, placemarks, pushpins and landmarks. These all go on separate layers for convenience. If you want to use lots of cute little landmark or interstate icons, create symbols from your icons for easy duplication and editing.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Here’s my finished map…directions to my office! Now I know this article was cool, please try to refrain from stalking me.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_VMFmmwj_Ir8/RijTOhuM02I/AAAAAAAAACg/S5YGrw6AFQ4/s1600-h/with+landmarks+and+markup.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_VMFmmwj_Ir8/RijTOhuM02I/AAAAAAAAACg/S5YGrw6AFQ4/s400/with+landmarks+and+markup.jpg" alt="" id="BLOGGER_PHOTO_ID_5055522828247159650" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-4374075827378266821?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/4374075827378266821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=4374075827378266821' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4374075827378266821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4374075827378266821'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/04/drawing-maps-with-illustrator.html' title='Drawing Maps with Illustrator'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_VMFmmwj_Ir8/RijQZRuM0oI/AAAAAAAAAAw/zz_hOqGOwOI/s72-c/source+map.jpg' height='72' width='72'/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-5409099412580443453</id><published>2007-04-19T20:17:00.000-05:00</published><updated>2007-04-20T07:04:30.114-05:00</updated><title type='text'>cf_drama and fake Prada bags</title><content type='html'>There's been a lot of buzz in the blogosphere this week having to do with sniping between Adobe and New Atlanta/BlueDragon. I'm getting really sick of hearing about it, particularly because I'm very close to one side of the argument (if you know me, you already know who). I've followed along and sided with Adobe because, well, my entire career revolves around using Adobe products, I love them, I love ColdFusion and I hate imitations. Frankly I don't know how some people at New Atlanta can sleep at night when their flagship product is a rip off. But seriously folks, all this ranting is not worth it.&lt;br /&gt;&lt;br /&gt;Do you think that Prada cares about the street vendors peddling knock-offs of their bags?&lt;br /&gt;As a successful and well respected brand, they continue to produce innovative and sophisticated fashion without looking over their shoulder at a tiny portion of the market share that's going to some random guy on the street (or some overseas producer of such products). Sure, a Prada designer might not like walking down the street and seeing a cheap imitation of a bag they designed last year selling for $30, but they aren't worried for their livelihood. Besides, anyone who buys one of those fake bags probably wasn't in the market for a real one to begin with.&lt;br /&gt;&lt;br /&gt;The last nail in the coffin that made me waste &lt;span style="font-style: italic;"&gt;my&lt;/span&gt; time posting a blog entry about this was reading the article that is being attributed as the source of much of this drama: &lt;a href="http://www.gcn.com/print/26_08/43522-1.html"&gt;http://www.gcn.com/print/26_08/43522-1.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What a totally lame article! It was barely coherent. What hostility some disreputable reporter attempted to conjure up was just an attempt to turn vapor-rumors into a good story. Since said reporter utterly failed on that, had we all left it alone, the only time wasted would have been his own. The media does it again.&lt;br /&gt;&lt;br /&gt;PS. For the record, I believe that Adrock's (honk if you don't know who that is)  statement drawing similarities between buyers of BD and buyers of  fOakleys was scarily true. Think about it.&lt;br /&gt;&lt;br /&gt;PSS. Sorry for making such a useless post. I had fun writing it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-5409099412580443453?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/5409099412580443453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=5409099412580443453' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/5409099412580443453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/5409099412580443453'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/04/cfdrama-and-fake-prada-bags.html' title='cf_drama and fake Prada bags'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-7122767837604134157</id><published>2007-04-10T15:44:00.000-05:00</published><updated>2007-04-10T15:49:44.381-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Model Glue'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Launch of MSL.com, my latest project</title><content type='html'>I'm pleased to announce the launch of my company's new website:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.msl.com"&gt;http://www.msl.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's been in the works for awhile, but since I'm the lone wolf doing all the content, design and development, it's taken awhile. Needless to say I'm happy it's done and quite pleased with the results. Of course, it's never really done! I had to hold back on many of the features I wanted to build, because we really just needed to move away from our old, static HTML tag-soup site. However like all sites, it's a work in progress and will continue to change over the coming months.&lt;br /&gt;&lt;br /&gt;For the geeks, it's built with ColdFusion 7 and utilizing the Model-Glue framework. It also uses YUI for the menus and some of the layout, and SPRY for some of the other AJAX/DHTML stuff. The markup is XHTML/CSS, it did validate at one point but the YUI menus don't validate...bummer. Oh well! I've never been that sort of standardista...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-7122767837604134157?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/7122767837604134157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=7122767837604134157' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/7122767837604134157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/7122767837604134157'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/04/launch-of-mslcom-my-latest-project.html' title='Launch of MSL.com, my latest project'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-8571198637880615930</id><published>2007-04-06T12:19:00.000-05:00</published><updated>2007-04-06T12:26:58.817-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Model Glue'/><category scheme='http://www.blogger.com/atom/ns#' term='Dreamweaver'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Dreamweaver Extensions for Model-Glue XML (and FB and M-ii)</title><content type='html'>On a couple of occasions I have thought that someone needs to write a Dreamweaver extension for ModelGlue, as well as the other frameworks, especially a tag library (and a file browser/inspector wouldn't hurt - those ModelGlue.xml files can get long...).  I can't tell you how many times I've habitually hit ENTER after typing "na..." to add a name attribute, which auto-completes in CF but not for XML.&lt;br /&gt;&lt;br /&gt;Well at least there is a solution to my first desire! The ever-productive Massimo Foti has a series of Dreamweaver tag libraries for the popular frameworks. They can be found on &lt;a href="http://www.massimocorner.com/"&gt;www.massimocorner.com&lt;/a&gt;. The site seems to have a thing against deep linking, but you can find the .mxp file downloads under the Dreamweaver  &gt; ColdFusion section.&lt;br /&gt;&lt;br /&gt;Thank you, Massimo!&lt;br /&gt;&lt;br /&gt;(now I just need to find a file inspector, perhaps any good XML one would work...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-8571198637880615930?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/8571198637880615930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=8571198637880615930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/8571198637880615930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/8571198637880615930'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/04/dreamweaver-extensions-for-model-glue.html' title='Dreamweaver Extensions for Model-Glue XML (and FB and M-ii)'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-3334512270912436154</id><published>2007-04-02T16:05:00.000-05:00</published><updated>2007-04-02T19:55:40.481-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Model Glue'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Serving a Downloadable File with ColdFusion in Model Glue</title><content type='html'>I thought maybe it's time for another "real" blog post. I learned a little something today (with some help from Adam) so now I'll share. A hyperlink to download a PDF file - seems simple and straightforward enough. But I've been building this site using the Model Glue framework (and learning MG in the process -- so far so good!), and I wanted to serve the file with &amp;lt;cfcontent&amp;gt;, not just a plain hyperlink, so it wasn't as straightforward as just &amp;lt;a href="myfile.pdf"&amp;gt;Download It&amp;lt;/a&amp;gt;...&lt;br /&gt;&lt;br /&gt;Here's my solution, I'd be interested to hear how others have done this. It seemed like a little bit overkill as I was writing it, but I also realized that I would never need to write this snippet of code again, so that kind of makes up for the long-windedness of it.&lt;br /&gt;&lt;br /&gt;The solution is composed of all the standard files and snippets in a Model Glue application.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the "model" CFC - in this case, a simple object&lt;/li&gt;&lt;li&gt;a .cfm view file where the "cfcontent" resides&lt;/li&gt;&lt;li&gt;a function in the Controller.cfc to create the download object and add it to the event&lt;br /&gt;&lt;/li&gt;&lt;li&gt;a message broadcast, listener, and event handler in the ModelGlue.xml file&lt;/li&gt;&lt;li&gt;all the views, which compose my page and contain the links to download the file&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;First, let's look at the "Download" Bean CFC: Download.cfc represents my "file" object that stores my file information. It basically just stores values for the file name, file path, and mime type of the file I'm serving for download. It lives in my "model" folder.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;!--- Download.cfc ---&amp;gt;&lt;br /&gt;&amp;lt;cfcomponent displayname="Download" hint="retrieves a file for download to be served with cfcontent"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!--- init() ---&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cffunction name="init" access="public" returntype="any"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cfargument name="fileName" type="string" required="yes" hint="name of file once downloaded"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cfargument name="filePath" type="string" required="yes" hint="full path of file to be served"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cfargument name="fileType" type="string" required="yes" hint="mime type of file"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cfset filename =" ARGUMENTS.fileName"&amp;gt;&lt;br /&gt;&amp;lt;cfset &lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;filepath =" ExpandPath(ARGUMENTS.filePath)"&amp;gt;&lt;br /&gt;&amp;lt;cfset &lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;filetype =" ARGUMENTS.fileType"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cfreturn this&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/cffunction&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!--- getters ---&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cffunction name="getFilename" returntype="string" access="public" output="false"&amp;gt;&lt;br /&gt;&amp;lt;cfreturn filename&amp;gt;&lt;br /&gt;&amp;lt;/cffunction&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cffunction name="getFilePath" returntype="string" access="public" output="false"&amp;gt;&lt;br /&gt;&amp;lt;cfreturn filepath&amp;gt;&lt;br /&gt;&amp;lt;/cffunction&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cffunction name="getFileType" returntype="string" access="public" output="false"&amp;gt;&lt;br /&gt;&amp;lt;cfreturn fileType&amp;gt;&lt;br /&gt;&amp;lt;/cffunction&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/cfcomponent&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Notice that the CFC uses ExpandPath() so that a relative url can be passed in as the location of the file, which is much easier when it comes time to build your link, and then the app is not server-dependent. Yes, I could write setters and use those setters to construct the CFC, but I'm never going to build these objects to say, insert into a database, so I didn't bother.&lt;br /&gt;&lt;br /&gt;Then I have the actual "download" include. It's called _download.cfm because the underscore preceding the filename is a common convention for files that should not be called directly, but need to be included in another file, it also differentiates it clearly from your "template" view files.&lt;br /&gt;&lt;br /&gt;This file gets dynamically included on the page when the "download" viewState value is present. It also only serves the file if it's not a simple value (to ensure the values we need are there). It lives in the "views" folder. Notice there are separate values for the file path and the file name. The file name is what the user sees when they download the file, the file path tells CF where to locate the file. Being able to set the file name in the header is nice because you can use a short, sweet and simple file name for the end user, but your own convoluted, datestamped , purpose-coded file naming convention for the actual file (ok maybe that's just me).&lt;br /&gt;&lt;br /&gt;Also we use the http header so that the user will be prompted with the browser "download" dialog, rather than leaving it to the browser to try and open the file directly. It prevents us from having to list some weird instructions like "right-click and choose Save Target As" for the less-savvy users (arent' they all).&lt;code&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--- _download.cfm ---&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cfset download =" viewState.getValue('download')"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cfif NOT isSimpleValue(download)&amp;gt;&lt;br /&gt;&amp;lt;cfheader name="Content-Disposition" value="attachment; filename=#download.getFileName()#"&amp;gt;&lt;br /&gt;&amp;lt;cfcontent type="#download.getfiletype()#" file="#download.getfilePath()#" deletefile="no"&amp;gt;&lt;br /&gt;&amp;lt;/cfif&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;My Model Glue Controller.cfc contains this function to build the Download object. It just calls the Download.cfc, creates the "download" object, and then adds the instance of said object to the event so it can be found when the page is rendered.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;!--- Controller.cfc ---&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cffunction name="getMyDoc" access="public" returntype="void" output="false"&amp;gt;&lt;br /&gt;&amp;lt;cfargument name="event" type="any" required="yes"&amp;gt;&lt;br /&gt;&amp;lt;cfset fileDownload = createObject("component","model.Download").init('MyDoc.pdf','assets/docs/MyDoc_123.pdf','application/pdf')&amp;gt;&lt;br /&gt;&amp;lt;cfset arguments.event.setValue("download", fileDownload)&amp;gt;&lt;br /&gt;&amp;lt;/cffunction&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In My ModelGlue.xml file, I hook my application into the above function with this XML snippet.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;message-listener message="getMyDoc" function="getMyDoc" /&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The event handler for that message is...&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;event-handler name="download.mydoc"&amp;gt;&lt;br /&gt;&amp;lt;broadcasts&amp;gt;&lt;br /&gt;&amp;lt;message name="getMyDoc" /&amp;gt;&lt;br /&gt;&amp;lt;/broadcasts&amp;gt;&lt;br /&gt;&amp;lt;results&amp;gt;&lt;br /&gt;&amp;lt;result do="page.mydoc" /&amp;gt;&lt;br /&gt;&amp;lt;/results&amp;gt;&lt;br /&gt;&amp;lt;/event-handler&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The broadcast, obviously, requests the download object via the Controller.cfc.  The result - "do" is the same page that my link is on - so the user does not leave that page when they click the "download" link, they are just served the file. Lastly, on the page where I want the link that is clicked to download this file, this is the &amp;lt;a&amp;gt; tag:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;a href="#viewState.getValue('myself')#download.mydoc"&amp;gt;Download My Doc&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Nice. That's all there is to it.&lt;br /&gt;&lt;br /&gt;Of course this sample doesn't show any security or anything, this would only be appropriate for a public download. Sorry if the spacing and indentation is ugly, Blogger's code formatting is a pain! Hope you find it helpful!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-3334512270912436154?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/3334512270912436154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=3334512270912436154' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3334512270912436154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3334512270912436154'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/04/serving-downloadable-file-with.html' title='Serving a Downloadable File with ColdFusion in Model Glue'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-2046661943796404698</id><published>2007-03-19T08:46:00.000-05:00</published><updated>2007-03-19T08:47:30.893-05:00</updated><title type='text'>Apollo on Labs!</title><content type='html'>The long-awaited Apollo pre-release Alpha is now available on Adobe Labs! Download it here...&lt;br /&gt;&lt;a href="http://labs.adobe.com/technologies/apollo/"&gt;http://labs.adobe.com/technologies/apollo/ &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Totally exciting!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-2046661943796404698?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/2046661943796404698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=2046661943796404698' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/2046661943796404698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/2046661943796404698'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/03/apollo-on-labs.html' title='Apollo on Labs!'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-3468880690355713772</id><published>2007-02-28T16:53:00.000-05:00</published><updated>2007-02-28T16:56:25.431-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><title type='text'>Flexlib: Much Needed and Improved Flex Components</title><content type='html'>An open source Flex library has been released with some great extended and improved components for Flex. I'm particularly interested in the buttonScrollingCanvas and dragScrollingCanvas - they solve some interface issues I've been dealing with in my "baby" Flex app that I was dreading having to write myself.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/flexlib/"&gt;http://code.google.com/p/flexlib/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks to the team who wrote it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-3468880690355713772?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/3468880690355713772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=3468880690355713772' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3468880690355713772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3468880690355713772'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/02/flexlib-much-needed-and-improved-flex.html' title='Flexlib: Much Needed and Improved Flex Components'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-3668249972781143982</id><published>2007-02-28T14:28:00.000-05:00</published><updated>2007-02-28T14:34:41.100-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='conferences'/><title type='text'>MAX 07 - Windy City - Be There!</title><content type='html'>Adobe has announced the dates for MAX this year!&lt;br /&gt;&lt;br /&gt;North America MAX 2007 - September 30-October 3, 2007 - McCormick Place West, Chicago&lt;br /&gt;&lt;br /&gt;Cool! I SO guessed it would be Chicago, and I think it's a great choice of location. I've attended (even organized) conferences in Chicago and the experience has been positive (outside flying into O'Hare). Lots to do, a beautiful city and a nice convention center. At the time of year weather will be nice too. Rock!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-3668249972781143982?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/3668249972781143982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=3668249972781143982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3668249972781143982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3668249972781143982'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/02/max-07-windy-city-be-there.html' title='MAX 07 - Windy City - Be There!'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-4835819809558280547</id><published>2007-02-23T11:28:00.000-05:00</published><updated>2007-02-23T11:47:05.732-05:00</updated><title type='text'>Email styling with foreground and background colors</title><content type='html'>I was working on a few email designs recently when I came across an issue with the color of the text when the email was forwarded. The solution is pretty simple, it just takes a little planning.&lt;br /&gt;&lt;br /&gt;Say you have an email with a dark body background color, say, dark gray. Then the content of your email (a table or a div) has a lighter background (white), with dark text. Then you want to add a footer or a header to the email (an unsubscribe link), outside that body, with the dark background, so you make the text color light. You end up with a style rule something like this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;body {&lt;br /&gt;  background-color: #666666;&lt;br /&gt;  color: #FFFFFF;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;div#main {&lt;br /&gt;  background-color: #FFFFFF;&lt;br /&gt;  color: #000000;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Everything looks dandy, until you send that email, and someone replies or forwards the email. Many mail clients such as Outlook will mangle the original css when the message gets forwarded, and use the "body" style for the text throughout, so suddenly none of the text within your "main" div is readable, because it's white on white. Simple fix? Set the foreground color in the body style to your desired (dark) default text color, and then override it for the footer.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;body {&lt;br /&gt;  background-color: #666666;&lt;br /&gt;  color: #000000;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;div#main {&lt;br /&gt;  background-color: #FFFFFF;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;div#footer {&lt;br /&gt;  color: #FFFFFF;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-4835819809558280547?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/4835819809558280547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=4835819809558280547' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4835819809558280547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4835819809558280547'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/02/email-styling-with-foreground-and.html' title='Email styling with foreground and background colors'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-6023631172141867529</id><published>2007-02-23T10:15:00.000-05:00</published><updated>2007-02-23T10:18:27.120-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>IE 7 CSS: Dotted borders...woo!</title><content type='html'>A little happy feeling just washed over me when I noticed this morning that dotted borders actually show up dotted in IE 7. It's trivial. And I'm pretty much over the  dotted-borders-ad-nauseam look anyway. But after all these years of having to either graphically add a dotted border (which always made me think twice before using one) or swallow the ugly dashes that IE 6 substituted, it's nice to see them working.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-6023631172141867529?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/6023631172141867529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=6023631172141867529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/6023631172141867529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/6023631172141867529'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/02/ie-7-css-dotted-borderswoo.html' title='IE 7 CSS: Dotted borders...woo!'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-3760507839850260009</id><published>2007-02-20T11:00:00.000-05:00</published><updated>2007-02-20T11:19:59.923-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Design is a living process</title><content type='html'>I'm a big fan of &lt;a href="http://www.campaignmonitor.com/"&gt;Campaign Monitor&lt;/a&gt;, both as a site and as a tool. One of the things I really admire about their design is how they have designed every detail. If you dissect the design, it's simple, and straightforward, and not unusual. There's no "one thing" about the design that makes it exceptional. What makes it exceptional is the fact that every single character and pixel has been thought out and carefully designed. It's a great work of usability.&lt;br /&gt;&lt;br /&gt;They didn't just design a "frame" for the site, they designed the content as well. This is what I believe truly separates the "ok" designs from the great ones.&lt;br /&gt;&lt;br /&gt;Some examples of how they have designed  the details:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the headings of their tables (data grids) have a subtle, attractive gradient background and a subtle banded scheme with a nice hover/highlight effect&lt;/li&gt;&lt;li&gt;every screen shot (features, resources pages) is attractive and neatly cropped&lt;/li&gt;&lt;li&gt;the "price tag" on their pricing page is impossible to miss, yet matches the site perfectly&lt;/li&gt;&lt;li&gt;the icons are used consistently throughout the site&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I also like their clear and friendly writing style, writing is too often overlooked on an otherwise well-designed site.&lt;br /&gt;&lt;br /&gt;The method I use to inject quality design at every level of a site, is to design (with whatever  tool you prefer) several pages in addition to the home page and sub page. This requires a great deal of preparation. You have to know what content you are going to have, and where it will go. You have to think the content over thoroughly during the design phase.  Often it's hard to visualize content without actually having a site design, so I find it's something of a back-and-forth process. Work on the main site design, develop a look; then go design the content pages, go back and adjust your layout...&lt;br /&gt;&lt;br /&gt;Design is a living process, it can never all be done "up front", and there is no such thing as taking a template and running with it forever and ever. I'm not trying to create job security for myself, but I do know that well designed sites like CampaignMonitor don't happen by accident.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-3760507839850260009?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/3760507839850260009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=3760507839850260009' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3760507839850260009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3760507839850260009'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/02/design-is-living-process.html' title='Design is a living process'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-3543885354765521953</id><published>2007-02-20T09:52:00.001-05:00</published><updated>2008-05-30T07:06:49.238-05:00</updated><title type='text'>Tag cloud for Blogger</title><content type='html'>When I first saw them, I thought tag clouds were a little silly and rather ugly, but now that I'm used to them I've done a 180.  Seems they are a better use of space and they sure beat one long list of links, so I decided I had to have one! I found this one for Blogger that worked well, the only thing I had to change was the color settings to get it to match. Cool!&lt;br /&gt;&lt;a href="http://phydeaux3.blogspot.com/2006/09/code-for-beta-blogger-label-cloud.html"&gt;&lt;br /&gt;http://phydeaux3.blogspot.com/2006/09/code-for-beta-blogger-label-cloud.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-3543885354765521953?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/3543885354765521953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=3543885354765521953' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3543885354765521953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3543885354765521953'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/02/tag-cloud-for-blogger.html' title='Tag cloud for Blogger'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-6094710757965654775</id><published>2007-02-18T19:23:00.000-05:00</published><updated>2007-02-18T20:08:51.728-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><title type='text'>Puppy growing pains</title><content type='html'>My intention for this blog isn't to talk too much about my dog, but over the past week we've been through some interesting (and occasionally upsetting) experiences with our 7-month old Chesapeake Bay Retriever puppy Kenshin, so I thought I'd share.&lt;br /&gt;&lt;br /&gt;About two weeks ago when I took him to obedience class (if we're going to have an 85 lb dog he darn well is gonna learn to be obedient), he seemed to be less energetic than usual. I knew this because the prior week he pretty much embarrassed the hell out of me by being entirely out of control. But at this most recent class, he was  calm and behaved much more like his good little self at home (as opposed to going crazy as he tends to do in class). He also seemed tired, he wanted to sit or lay down when he wasn't actively engaged, and I even had to coax him to get up at times. Deep down I was relieved and pleased that he was being so relaxed, but I wondered if something was wrong.&lt;br /&gt;&lt;br /&gt;As the week progressed he seemed to be more sleepy than usual. He also didn't seem terribly interested in food, which, in Kenshin's case, is a definite sign that something's wrong. We couldn't tell if he was just being picky, because for about a week before he had been eating raw meats and vegetables when we ran out of kibble, so we figured he wasn't too happy switching back to the kibble. We took him with us to Adam's parents for the weekend, where he seemed to have plenty of energy, but then again, his girlfriend Ruby the Golden pup always makes him perk up. He still didn't want to eat kibble, although we convinced him to eat some table scraps.&lt;br /&gt;&lt;br /&gt;By the beginning of the last week I was decidedly concerned about his lack of appetite, and he was getting more lethargic. No vomiting or diarrhea, though. Weird. We took him to his Holistic Vet (meh), who said he looked fabulous and was perfectly healthy, and that we should keep giving him lemon zest and pepper to "strengthen his stomach chi," and that we should just keep him on a &lt;a href="http://www.google.com/search?q=BARF+diet"&gt;BARF diet&lt;/a&gt; and stop with the kibble if he wouldn't eat the kibble. It didn't help that the morning before he went, he had eaten a full meal, so we were still uncertain if anything was really wrong. I think the vet thought we were being alarmists.&lt;br /&gt;&lt;br /&gt;The next day, he was even worse. His entire demeanor was different. He was not happy, he looked miserable. He didn't want to play, or eat, he just wanted to lay around and sleep. Very unusual. The real cause for concern was that he refused to walk up the stairs, and appeared to be favoring his hind legs. Now it was looking really bad. Adam scheduled an appointment with the vet in PA that his parents swear by, a non-holistic vet who professed to be familiar with holistic practices (so we wouldn't catch crap for treating our dog's chi with pepper...that's a story unto itself).&lt;br /&gt;&lt;br /&gt;It was encouraging that this other vet did not dismiss any of our concerns and seemed very knowledgeable in diagnosing the problem. Within minutes he had found some specfic sore spots (something the prior vet did not do) on Kenshin's spine that explained the pain in his hind legs. We had done our own Googling and developed a few theories as to what could be wrong, so to allay our concerns the vet did a battery of tests. However the ultimate outcome was that poor little Kenshin was in a lot of pain, most likely due to a bone disease called &lt;a href="http://www.peteducation.com/article.cfm?cls=2&amp;cat=1561&amp;amp;articleid=466"&gt;Pano&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Pano affects young dogs during rapid growth periods, and can last for weeks, causing inflammation and pain, shifting around to various limbs. The good news is that there are rarely any serious ill effects after the disease runs its course, and the treatment is simple pain killers. The vet gave Kenshin a double dose of pain medicine to get things started, and sent us home with a couple additional medications that we could have on hand in case one of his other tests came back positive (lyme disease being a particular concern given our location). By the time Adam and Kenshin got back from PA, Kenshin was closer to his usual self than I'd seen him in over a week. He greeted me with excitement, he was 100% more alert, and he finally started eating again.&lt;br /&gt;&lt;br /&gt;His appetite isn't quite back to his usual voracity, but he's eating regularly now. He's happy and alert, and plays with his toys (although he's prohibited from rough play and tug-of-war, his favorite game). He occasionally shows sensitivity in his back legs, usually when it's time to take more pain medication. He thinks his pain pills are treats.  We'll find out tomorrow if any other tests came back positive (the initial bloodwork was a-ok), but we're pretty sure at this point that Pano was the problem. I feel much better knowing that he's not in pain any more, and I'm relieved that it wasn't something more serious.&lt;br /&gt;&lt;br /&gt;I found it interesting as I researched the disease that a lot of the recommendations our breeder gave us about feeing him coincided perfectly with how to prevent Pano. Although there's no specific known cause, or specific prevention, most of the recommendations I read about were things we already do (give him a vitamin C supplement, feed him adult formula food rather than puppy food). I had a lot of confidence already in our breeder's experience (although she did start Kenshin on the whole Holistic thing...), and my findings seem to support that.&lt;br /&gt;&lt;br /&gt;Suffice to say, if you're ever in doubt about what any vet (or doctor) says, get a second opinion. If it seems like all your vet does in a check up is play with your puppy, it's probably true! A 3-hour drive and $500 is well worth it to prevent weeks of pain and misery in a poor puppy who can't tell you where it hurts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-6094710757965654775?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/6094710757965654775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=6094710757965654775' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/6094710757965654775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/6094710757965654775'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/02/puppy-growing-pains.html' title='Puppy growing pains'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-4229108675714296803</id><published>2007-02-16T14:39:00.000-05:00</published><updated>2007-02-16T14:59:09.105-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Using Clip Art, Sin-Free</title><content type='html'>Clip art is typically thought of by many, particularly in the Design community, as something to be avoided like the plague. “Designers who use clip art are not designers.”&lt;br /&gt;&lt;br /&gt;While I have seen many really ugly designs that use clip art, I think the problem still comes back to poor design, not bad clip art. In fact, a lot of the clip art illustrations out there are quite good. Yes, there’s bad clip art, and it should be avoided, but there is also clip art that can be carefully used to your advantage with effective results.&lt;br /&gt;&lt;br /&gt;Often clip art is a good solution when you have little or no budget for proper imagery, but there are ways to prevent it from looking cheap. Especially if you’re willing to put a little elbow grease into it.&lt;br /&gt;&lt;br /&gt;Here are some tips to keep your design looking good when you are forced to use clip art.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Size and Proportion Still Matters&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is probably the biggest flaw I see with most clip art use. Because it’s being designed by someone with little design knowledge (knowing MS Publisher does not count as design knowledge!), basic rules of size, proportion and alignment are broken.&lt;br /&gt;&lt;br /&gt;The most common thing I would change? Make it bigger! But, you ask, why would you want to make ugly clip art bigger? Because most of the time the design has used insufficient white space, and there is generally not enough room on the page, so the clip art gets reduced to minute icon-like sizes to enable everything else to fit. Then there are a few different clips, all too small, sprinkled throughout the page.&lt;br /&gt;&lt;br /&gt;Better to pick one or two of the best clips and make them bigger, which will add some visual tension to the design. The clip then becomes an anchor or focal point of the design, rather than another extra element on the page. (While you’re at it, shorten the copy and add some negative space!)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Control the Color&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Usually the user of the clip art takes it as it is and uses it. But sometimes the color palette in the clip is simply atrocious. Sometimes the color is close but not a perfect match for other color on the page. Sometimes the clip just doesn’t match at all. Red flag!&lt;br /&gt;&lt;br /&gt;It requires some extra work, but if you edit the clip (usually in Illustrator) so that the color scheme is better, or so that the reds in the clip match the rest of the red on the page, or so the clip coordinates better with the style of the design, it will look nicely integrated into your design rather than popping out and saying “my designer is a loser.”&lt;br /&gt;&lt;br /&gt;Get thee a color wheel (or visit &lt;a href="http://kuler.adobe.com/"&gt;Kuler&lt;/a&gt;), and come up with a new scheme for the clip. Learn to use the Illustrator commands like Select &gt; Same &gt; Fill Color/Stroke to replace colors in a few easy steps.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Don’t Mix Themes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Clip art often comes in convenient stylistic collections or themes. You’ll see series’ of clips revolving around say, Sports or Plants or Food that share similar design characteristics, color scheme and look. They’re great used together. They look terrible when they’re mixed. If you’re really good, you can modify one to match the style of another theme, but in general, avoid using clips from different themes together. And make sure that the theme matches the overall look of your document.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Don’t Use Clichés&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Design clichés are bad no matter the form, whether it’s stock photography or clip art or typography. Run from &lt;a href="http://www.google.com/search?q=Screen+Beans"&gt;Screen Beans&lt;/a&gt;. In general, make sure what you are showing with Clip art is a well thought out use of the image. Beware, clip art collections are chock full of clichés, because most people who use clip art want exactly that (although they may not realize it). Try to think of an out-of-the-box use for the image, and don’t use the just-plain-terrible clichés, like Screen Beans.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Use it as a Starting Point&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Perhaps you’re not a skilled enough illustrator to draw a printer from scratch (I'm not...), but you can surely find a bazillion clips of printers. Pick a few that are close to what you like, and trace them, cut up, stretch, and recombine them, or just use them as a reference to create your own, original illustration. Remember, you don’t have to use clip art as-is!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Trace a Photo or Drawing&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you need a clip-art like image but can’t find one that isn’t fugly, try tracing a photo. Illustrator’s Live Trace feature can produce some really nice results in just a few minutes. Trace the photo, tweak the color to your liking, remove backgrounds and stray points, maybe add some brushes to the strokes; and you’ve got your own, original clip art.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Easy Icons&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You have to design a set of icons for something completely random, and you can’t find (or afford) what you need from &lt;a href="http://www.iconbuffet.com/"&gt;IconBuffet&lt;/a&gt;. You can use clip art as a starting point to help you design your own. It will usually require some simplification, but at least you won’t be starting from scratch. Take similar, simple illustrations which provide an outline structure. Then use that base, and simplify, shrink, restyle, and rework until you have your desired icon. A lot of what makes an icon set work well is consistency in style and treatment - color, stroke, fill, shape - apply the same features consistently to several clips and you've got icons.&lt;br /&gt;&lt;br /&gt;And lastly...&lt;br /&gt;&lt;br /&gt;Here are some Clip Art sources that you probably already have available to you:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    Microsoft Office Clip art and Clip art Online&lt;/li&gt;&lt;li&gt;    Illustrator’s packaged clip art (look on your hard drive for Adobe\Resources and Extras\Goodies\Illustrator CS2\Clip Art and Stock Photos)&lt;/li&gt;&lt;li&gt;     Illustrator’s packaged symbols and brushes (Window &gt; {various} Libraries)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Happy clipping!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-4229108675714296803?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/4229108675714296803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=4229108675714296803' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4229108675714296803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4229108675714296803'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/02/using-clip-art-sin-free.html' title='Using Clip Art, Sin-Free'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-740259105820502360</id><published>2007-02-15T16:40:00.000-05:00</published><updated>2007-02-15T16:50:17.663-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seo'/><category scheme='http://www.blogger.com/atom/ns#' term='marketing'/><title type='text'>It's not BS when he says SEO is BS</title><content type='html'>A loud "Amen" and a tip of my hat to this guy:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.calacanis.com/2007/02/07/why-people-hate-seo-and-why-smo-is-bulls-t"&gt;http://www.calacanis.com/2007/02/07/why-people-hate-seo-and-why-smo-is-bulls-t&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;At my old company, there was a big huge to-do about getting our site in the top 3 results on Google for an extremely ambiguous and competitive search term. While it would have been nice and I don't think it was undeserved, these expectations were unrealistic.&lt;br /&gt;&lt;br /&gt;I spent hours in meetings trying to explain to my coworkers and managers that paying an "SEO" firm to optimize our site was not going to help us, not to mention that I did not want some idiot blackhat SEO scumbag riffling through our carefully crafted XHTML. The thought of the keyword stuffing that some were suggesting just made me ill.  And everyone we talked to who'd ever managed a website thought &lt;span style="font-style: italic;"&gt;they&lt;/span&gt; knew everything about SEO.&lt;br /&gt;&lt;br /&gt;Fortunately my whining worked, and at least while I was there, no one ever did any SEO on the site except my team. We started to see our results getting better simply because the content producers were actually &lt;span style="font-style: italic;"&gt;paying attention&lt;/span&gt; to what they wrote, which had been our biggest problem to begin with. If your pages do not contain the exact search phrase, you cannot expect get into the top of the results.&lt;br /&gt;&lt;br /&gt;Yes, there are "good," honest and well-meaning SEO firms out there, but they aren't easy to find... and if you ain't got it already, they aren't going to be able to get it for you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-740259105820502360?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/740259105820502360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=740259105820502360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/740259105820502360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/740259105820502360'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/02/its-not-bs-when-he-says-seo-is-bs.html' title='It&apos;s not BS when he says SEO is BS'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-7264412220745885188</id><published>2007-02-15T12:14:00.000-05:00</published><updated>2007-02-15T12:16:56.765-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='the internet'/><title type='text'>An introduction to the web today</title><content type='html'>Show this to your manager if they ask you about Web 2.0:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=6gmP4nk0EOE"&gt;http://www.youtube.com/watch?v=6gmP4nk0EOE &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(You are probably sick of hearing about Web 2.0, in fact I want to stab myself for mentioning it on this blog, but I actually enjoyed this video, it's worthwhile!)&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://www.fortymedia.com/blog"&gt;Forty&lt;/a&gt; for bringing this to my attention!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-7264412220745885188?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/7264412220745885188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=7264412220745885188' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/7264412220745885188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/7264412220745885188'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/02/introduction-to-web-today.html' title='An introduction to the web today'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-1155688665324805934</id><published>2007-02-07T09:55:00.000-05:00</published><updated>2007-02-07T10:11:32.506-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Design Patterns for Designers</title><content type='html'>A few years ago I got &lt;a href="http://www.amazon.com/Design-Sites-Principles-Customer-Centered-Experience/dp/020172149X/sr=8-1/qid=1170860368/ref=pd_bbs_1/104-4859550-5647132?ie=UTF8&amp;amp;s=books"&gt;this book&lt;/a&gt; on design patterns for web design -  graphics, html and visuals. It was a really interesting book, it collected a few years worth of web design best practices in a single place, covering everything from navigation (tabs, breadcrumbs, drill-down, etc) to shopping carts. It talked about the popular-thus-familiar ways the best patterns worked, and some pitfalls to avoid when using them. It also showed a lot of screen shots of the design in action. I hadn't seen any other book like it, so I ate it up. I highly recommend it, I believe there is a newer edition out now.&lt;br /&gt;&lt;br /&gt;Today I discovered that the always interesting Yahoo Developer Network has a  &lt;a href="http://com2.devnet.scd.yahoo.com/ypatterns/index.php"&gt;Design Patterns section&lt;/a&gt;, and it seems to have a lot of cutting edge patterns. I'm very pleased to see design patterns for web design becoming more mainstream - it's kind of a sign of the industry maturing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-1155688665324805934?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/1155688665324805934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=1155688665324805934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/1155688665324805934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/1155688665324805934'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/02/design-patterns-for-designers.html' title='Design Patterns for Designers'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-1413420009187819774</id><published>2007-02-05T11:03:00.000-05:00</published><updated>2007-02-05T11:18:11.175-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='advertising'/><category scheme='http://www.blogger.com/atom/ns#' term='marketing'/><title type='text'>Super Bowl Commercial Favorites</title><content type='html'>This would not be a marketer's blog without a recap of Super Bowl ads! The beer commercials were as funny as ever, but I still found the commercials overall to be a little disappointing. I liked the Bud "slap" ad, it was just plain funny. &lt;br /&gt;&lt;br /&gt;My favorites this year were still the CareerBuilder.com ads (good follow up to last year's monkeys - I still laugh at those), they hit home and are still entertaining, especially the "promotions pit". Surprisingly absent were the Movie trailers, I think there was only one or two (at least that I caught). &lt;br /&gt;&lt;br /&gt;Some of the better-produced ads (like the Coca Cola one) were old and have been seen plenty before, so they weren't of much interest. The people at my Super Bowl party collectively gagged over the Ford commericals - how many car-parts-coming-together ads do you need? &lt;br /&gt;&lt;br /&gt;The Snickers one that seems to be creating a lot of controversy or disgust was not nearly as disgusting to me as the Doritos checkout-line ad. Speaking of Dorito's, I thought their better one was the fan-produced "live the flavor" ad. It seemed rough around the edges, and later I found out why, but still a very good commercial. &lt;br /&gt;&lt;br /&gt;Carlos Mencia's Bud ad was mildly funny, but I just don't like Carlos Mencia that much. Taco Bell's Steak Grilled Taquitos with the lions was pretty random. The K-Fed Nationwide ad would have been a lot funnier if I hadn't already seen it! As much as I can't stand the guy, I have to give him credit for doing it.&lt;br /&gt;&lt;br /&gt;I hear that Revlon put a lot on the line buying an entire 60 second block for their Colorist commerical, which was rather anti-climactic, entertainment-wise. Still, it made me think again about using off the shelf hair color, so perhaps it might have worked. There's always that debate - sure it's entertaining, but will it work? I'd be interested in hearing their results.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://youtube.com/browse?s=sb"&gt;See them all here.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-1413420009187819774?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/1413420009187819774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=1413420009187819774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/1413420009187819774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/1413420009187819774'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/02/super-bowl-commercial-favorites.html' title='Super Bowl Commercial Favorites'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-3776071398072602582</id><published>2007-01-31T11:58:00.000-05:00</published><updated>2007-01-31T12:06:38.408-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>How internet communities have changed publishing</title><content type='html'>I was reading this &lt;a href="http://www.theonion.com/content/news/meth_addicts_demand_government"&gt;very funny article&lt;/a&gt; that Bret sent me and when I got to the bottom of the screen, the link bar at the bottom caught my eye. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_VMFmmwj_Ir8/RcDLZCXd7cI/AAAAAAAAAAU/1t0i2jFPU_s/s1600-h/DistributionLinks.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_VMFmmwj_Ir8/RcDLZCXd7cI/AAAAAAAAAAU/1t0i2jFPU_s/s400/DistributionLinks.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5026240815137942978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Remember the days when the only links news websites put next to their articles were "email to a friend" and possibly "printer friendly"? Now it appears there's an entire list of imperative links, for we must maximize our blog coverage and viral distribution as much as possible. The only think missing from this &lt;a href="http://www.theonion.com"&gt;Onion&lt;/a&gt; footer is "add to del.icio.us". &lt;br /&gt;&lt;br /&gt;Well, it worked for me, although I didn't blog the article because I am a meth addict afraid of spiders, nor did I use their "blog this" link. For some reason I'm afraid of those things.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-3776071398072602582?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/3776071398072602582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=3776071398072602582' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3776071398072602582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3776071398072602582'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/01/how-internet-communities-have-changed.html' title='How internet communities have changed publishing'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_VMFmmwj_Ir8/RcDLZCXd7cI/AAAAAAAAAAU/1t0i2jFPU_s/s72-c/DistributionLinks.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-8174527999977912098</id><published>2007-01-30T13:25:00.000-05:00</published><updated>2007-01-30T13:40:30.006-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PhotoShop'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><title type='text'>What's to love about PhotoShop CS3 (beta)</title><content type='html'>Well, I've been using the PhotoShop CS3 beta since the day after it came out, and I have to say I am really pleased with it. I definitely can't go back to CS2 now, Adobe's strategy to make me upgrade sooner has worked!&lt;br /&gt;&lt;br /&gt;I felt a noticeable improvement in performance with the new version, which was a pleasant surprise as I was expecting a new version would have more features and be slower to run, as is usual with upgrades. But startup time and general processing time is definitely better.&lt;br /&gt;&lt;br /&gt;I was a little uncertain about the interface changes at first, mostly out of unfamiliarity, but now that I'm used to it, the collapsing palettes are awesome. My screen is so much cleaner! I work with two monitors, so in the past I always had my workspace set up to have my palettes on one screen and my work area on the other. Now I can pretty comfortably work with everything on one screen, thanks to the handy collapsible palettes. Sometimes I still use both, but it is definitely better use of the screen real estate.&lt;br /&gt;&lt;br /&gt;The new curves editor is sweet - you can see each color channel's curve and edit them all from the initial screen, and the curves are laid over a histogram making it really easy to see what adjustments need to be made.&lt;br /&gt;&lt;br /&gt;The smart object editing has improved too, opening and placing PhotoShop documents into others is convenient.&lt;br /&gt;&lt;br /&gt;I haven't had the opportunity to use the "Device Central" but I plan to check it out since I might be doing some Blackberry development soon (oh joy). The new version of Bridge is better, they seem to have gotten rid of or moved that annoying Bridge Center dashboard (it never worked as well as it should have). The integration with Acrobat Connect looks promising.&lt;br /&gt;&lt;br /&gt;One feature I am hesitant to try? VersionCue. After my woes with the last version (HOURS of lost time recovering/fixing corrupted projects, general frustration), I plan to let someone else figure out the issues first.&lt;br /&gt;&lt;br /&gt;If you have not downloaded the Betat yet, I'd say it's definitely worth a try. I haven't had any problems with stability or bugs, but check the Beta forums to see if there are known issues with your setup.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-8174527999977912098?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/8174527999977912098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=8174527999977912098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/8174527999977912098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/8174527999977912098'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/01/whats-to-love-about-photoshop-cs3-beta.html' title='What&apos;s to love about PhotoShop CS3 (beta)'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-3084418035494142846</id><published>2007-01-29T14:32:00.000-05:00</published><updated>2007-01-29T14:56:11.942-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE&apos;s'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>CFEclipse Tips: Line Numbers, Updating to 1.3</title><content type='html'>I started using CFEclipse a few months ago when I got FlexBuilder, it just made sense for a CF/Flex project. It was definitely an adjustment after years of using Dreamweaver and there were immediately some things I liked, but also some annoyances that I took for granted in DW. One of those annoyances was that line numbers never show up by Default for CF files...however I dug around in the preferences a bit and found that there is indeed an option to turn on line numbers permanently, so they will always show when you edit CF files. &lt;br /&gt;&lt;br /&gt;Go to Window &gt; Preferences &gt; CFEclipse &gt; Editor and check the "Show line numbers" option.&lt;br /&gt;&lt;br /&gt;May be obvious to some, but for someone just getting into CFEclipse I was very happy to find this setting!&lt;br /&gt;&lt;br /&gt;Tip #2 is an issue I ran into when I updated to version 1.3. I ran the updater from the "Find Updates" feature, and restarted just to be safe, but I started getting all sorts of errors when I tried to open CF files. &lt;br /&gt;&lt;br /&gt;On a hunch I went in to Help &gt; Software Updates &gt; Manage Configuration, expanded the tree and noticed that 1.2 was still listed in addition to 1.3. I disabled 1.2, and the problems went away. Makes sense that having two versions running simultaneously would make Eclipse very unhappy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-3084418035494142846?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/3084418035494142846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=3084418035494142846' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3084418035494142846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/3084418035494142846'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/01/cfeclipse-tip-line-numbers.html' title='CFEclipse Tips: Line Numbers, Updating to 1.3'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-2146501926750094269</id><published>2007-01-29T09:36:00.000-05:00</published><updated>2007-01-29T14:11:07.319-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>SQL "IN" Clauses, and CF Single-Quotes</title><content type='html'>I firmly believe that problems can always teach you something, it's sometimes just not that fun of a "learning process." So last week I had this really annoying problem trying to pass a comma-delimited list to a SQL "IN" clause. In the past I've solved the dynamic IN clause issue with code that looks something like this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;AND (&lt;br /&gt;&lt;br /&gt;&amp;lt;cfloop list=&amp;quot;#myList#&amp;quot; delimiters=&amp;quot;,&amp;quot; index=&amp;quot;i&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;(myTable.myCol = '#i#')&lt;br /&gt;&lt;br /&gt;&amp;lt;cfif i IS NOT ListLast(#myList#)&amp;gt;&lt;br /&gt;&lt;br /&gt;OR&lt;br /&gt;&lt;br /&gt;&amp;lt;/cfif&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/cfloop&amp;gt;&lt;br /&gt;&lt;br /&gt;)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I always felt it was kind of ugly but never bothered to learn a better way. I should have looked it up sooner! I knew I could use an IN clause but the problem was wrapping the IN clause list with quotes. Doing that manually seemed worse than just looping over the list. The real problem with the above code arose when the list contained multiple list items of the same value. In that case, the ListLast function did not produce the desired result, and the resulting SQL was invalid.&lt;br /&gt;&lt;br /&gt;I started out looking for some type of function that would remove duplicates from a list. I then stumbled across ListQualify(list, wrap character, delimiter, scope), which turned out to be a super-handy function. Pass it a list, a character, a delimiter and a scope and it will wrap each list item in the desired character - you can even choose to only wrap characters, or all list items. So I could wrap my list values in single quotes, and then use the SQL IN clause. Yay!&lt;br /&gt;&lt;br /&gt;As a side note, I ran into a very annoying but rather funny issue with CFEclipse's auto-correct feature. I dare you to try typing this string in CFEclipse: "'"  (that's double-quote, single-quote, double-quote). Yeah, not happening. I had to type it in Notepad and then paste it in. Sometimes you just feel like the world is against you!&lt;br /&gt;&lt;br /&gt;I was ready for that ugly error to finally be gone when I refreshed the page, but lo and behold, a new error. Apparently each single quote mark in my list was being doubled. I did not know that CF automatically escapes these characters in such a situation. That's when Adam reminded me of the PreserveSingleQuotes() function, which does just what it sounds like, and viola, no more error.&lt;br /&gt;&lt;br /&gt;In addition to learning something new, it's sure nice to have someone who knows everything about CF right at home!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-2146501926750094269?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/2146501926750094269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=2146501926750094269' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/2146501926750094269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/2146501926750094269'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/01/sql-in-clauses-and-cf-single-quotes.html' title='SQL &quot;IN&quot; Clauses, and CF Single-Quotes'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1670252685898016604.post-4406521268016766615</id><published>2007-01-28T20:19:00.000-05:00</published><updated>2007-01-28T20:25:50.603-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><title type='text'>Pink Like My Drink</title><content type='html'>So... I've waited long enough to start this blog. Like most web developers/designers (I would guess), for a long time I thought it was silly or even wrong to not code my blog myself. Shouldn't it be my personal code and graphic playground? But about a year after first thinking that I should start a blog (late to the trend party as always--but never late for anything else), I still haven't written a lick of code, and a few feeble design beginnings sit idly in My Documents.&lt;br /&gt;&lt;br /&gt;Then I remember that I do this all day, every day, at work...so why would I want to come home and do it on my personal time too? Sure, I read big fat tech books and even have been known to do some work after hours, so it's not entirely out of character. But for now, this most excellent pre-fab blogging tool will do just fine, and eventually I might get around to writing some of my own code. Someday.&lt;br /&gt;&lt;br /&gt;Adam will get over his hurt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1670252685898016604-4406521268016766615?l=rmaxim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmaxim.blogspot.com/feeds/4406521268016766615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1670252685898016604&amp;postID=4406521268016766615' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4406521268016766615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1670252685898016604/posts/default/4406521268016766615'/><link rel='alternate' type='text/html' href='http://rmaxim.blogspot.com/2007/01/pink-like-my-drink.html' title='Pink Like My Drink'/><author><name>Rae</name><uri>http://www.blogger.com/profile/05844223371538832222</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
