<charlie griefer>

*tap*tap*tap* is this thing on?

follow me on the amcomtech blog

october 9, 2008 at 3:07pm in ColdFusion, general

over at amcom the boss has been asking us developer types to make use of the amcom technology blog a bit more than we had been. ok, a bit more than *i* had been (jon messer's been an animal posting about coldbox and transitioning from procedural to OO and is in the midst of a yet-to-be-published flex entry (rhymes with 'whizz')).

i've posted my first two entries, and will likely start transitioning to posting more frequently over there. if you're subscribed here, feel free to subscribe over there to follow me, jon, tariq, and the rest of the team.

comment moderation is now on :(

october 8, 2008 at 11:43pm in general

as much as i hate to do this, i'm getting tired of the loser(s) posting WoW spam links in the comments. i don't particularly mind cleaning 'em up... but for the 3 or 4 people that actually cared enough to subscribe to the blog... i really don't like the thought of them getting the spam in return.

at some point, i may look into incorporating jake munson's cfformProtect or some other measure to try and eliminate the spam. but for now, between work and a couple of side jobs that i'm desperately trying to finish up, i simply don't have the time.

if anyone's interested, the spammer in question posted from the following IP addresses. feel free to add 'em to your blacklist:

122.234.50.22
122.234.49.8
85.26.161.48
122.234.52.25
125.120.151.48

awesome customer service - java4less

september 19, 2008 at 10:25am in ColdFusion, general

on one of my current projects, i needed to barcode a document (via CF) and subsequently read the barcode (again, via CF). the documents would be sent via fax and rerouted to the CF server.

because of its durability, my client wanted to use a data matrix barcode. as luck would have it, ryan stille had already gone through the trouble of putting together a CFC for reading and generating data matrix barcodes (thanks, ryan!).

the CFC is a wrapper for some java libraries that read and write barcodes. in the docs for the CFC, ryan suggests a company called Java4Less.com. i grabbed evaluation versions of the appropriate libraries to ensure they'd work, which they did. i then instructed my client to go ahead and make the purchase and told him which 2 libraries we needed. now, Java4Less offer up a few components and i've been a bit sleep deprived and long story short, one of the libraries that i told the client to purchase was not the correct library.

the purchase process involves making a payment, and then receiving a link where you can access the product(s) that you've purchased. payment was made... and shortly thereafter we got an email from one of the Java4Less guys double checking to make sure that we were ordering the right components (we weren't). i'm guessing that the incorrect component we requested didn't quite "fit" well with the other one, and sent up a red flag. but it was very cool that the company noticed that red flag, and acted on it.

i responded, explaining what we were looking to do and got a confirmation back that we had definitely ordered the wrong item, and that they'd make sure the right components were in place at the download link.

the customer service didn't end there.

the other night i was implementing the barcoding, and got errors while instantiating the reader. java errors. not being a java guy, i immediately panicked. fired an email off to Java4Less with the error message (big old cfdump), our JVM version, and anything else i could think of that would help them to isolate the issue. less than a day later, i got an email response that i was missing a jar file. one of the components (which come zipped) had 2 jar files. apparently i had only extracted one. disaster averted.

it's really been a while since i've seen that kind of customer service. both proactive (in the case of our incorrect order) and reactive (in the case of me being an idiot). if you find yourself in the market for one of the following products, you can definitely buy from Java4Less with confidence.

cfajaxproxy - the other white meat

september 18, 2008 at 12:41pm in ColdFusion

over the past few weeks, i've had the opportunity to start playing around with some of the AJAX functionality built into ColdFusion 8. cfajaxproxy makes me happy.

in a nutshell, cfajaxproxy creates a "bridge" between client side javascript and a ColdFusion CFC. it's nowhere near the full blown AJAX framwork that jQuery is, but rather reminds me of JSMX, which is a very lightweight AJAX framework that does little beside facilitating communication between client and server. while it allowed you to pass data from the client to the server, and receive data back, it assumed that you would write the corresponding code to manipulate the client based on the data that was sent back from the server. i'm pretty comfortable with javascript, so i was ok with that. cfajaxproxy is essentially the same thing. no bells-and-whistles per se, but as far as i'm concerned, that's perfectly ok.

remembering

september 11, 2008 at 10:46am in general

google's chrome... it still doesn't suck

september 3, 2008 at 1:56pm in general

day 2 with chrome, and i'm still liking it quite a bit.

no, it doesn't necessarily "rule" (as stated by t. fleming in the comments on yesterday's post), but it's off to a very decent start.

it doesn't "rule" yet, because it's been available to the public for all of a day. it's in its infancy. it won't compete with firefox until such time that plugins are available (but i understand that's on the roadmap). there are some options that are lacking, or not at all available (or so hard to find that i'm under the impression that they're not at all available). how can i tell chrome to check for newer versions of the page with each page request? don't think i can. i'd also like a more robust means of organizing my bookmarks. oh, and i did manage to crash it earlier today. not even sure what happened... it just... crashed.

in spite of these "issues", i still like the browser. just like the gtalk client when it was first introduced (anyone remember... no file transfer options, no voice chat options...), it seems to be laser focused on doing what it's meant to do. browse web sites. i'm fairly confident that the additional "bells and whistles" will follow.

of course, the biggest issue surrounding chrome right now seems to be the EULA, which indicates that by using chrome, you're granting google permanent and irrevocable rights to your content, data, photos, and children. i'd been waiting to see someone at google step up and address this, and earlier today someone finally did. i'm sure there are those for whom this won't be "enough", and there still exists some paranoia about one company having such a far-reaching grasp. i remain of the mindset that, until they do something evil, something that gives me a reason to not trust them... if they're putting out a good product, there's really no reason for me to not try it. i won't try and convince anyone who feels differently... we're all entitled to our opinions, and i respect that. i'm simply stating mine.

some notes from day 2... liking the fact that it still doesn't crash as often as firefox, or seem to consume as much memory. noted that highlighting text on a web page and right-clicking gives you the ability to search google for that highlighted text (neat!). dragging a tab out of a browser window creates a new window. built in javascript debugger/console (that i've not yet had the opportunity to play around with).

still a fan, and looking forward to seeing what enhancements are added to this still very young product. yes, it's still rough around the edges... but there's very little denying that for a product this young to be as solid as it is points to a potentially very sweet mature browser in the (hopefully near) future.

google's chrome... it doesn't suck

september 2, 2008 at 1:25pm in general

the blogosphere and twitter are both ablaze today with talk of google's foray into the browser market with chrome. my first impressions, and some accompanying screenshots...

up until it was actually available, i'd not been following the story too much, so i hadn't seen screenshots or read about any specific features. my first impression upon loading it up was, "wow... there's like... no chrome". i haven't messed around yet with configuration options, but there's no status bar. no toolbar. it's literally just an address bar (which seems to also serve as an integrated search bar), and tabs. it's minimalistic in it's look, as is standard with most things google, but i like it. it's uncluttered, but i'm not sure the general public will see it as such. the plain design that i see as a plus could easily be seen as... well, plain.

which raises an interesting point. i'm not sure what market google is after. are they trying to be a mainstream browser and compete directly with IE and firefox? i don't know that i see that happening. but given some of the features that they've implemented, i definitely see them competing for the affections of techie geeks.

most web developers that i know generally use firefox for testing during development. why? the firebug plugin. this plugin is far and away one of the most useful tools ever created for debugging a web page's display and behavior in a browser window. out of the box, chrome provides a tool that will allow you to introspect any page element, and its functionality certainly rivals firebug's... as far as CSS goes. as far as i can tell, there is not (yet) any functionality to debug scripts or to monitor network traffic (useful for debugging AJAX calls). still, for core functionality, it's very slick for what it does.

in further appealing to the geek, right-clicking above the address bar brings up a "task manager" window. the window shows you how many tabs you've got open, as well as what resources (memory, CPU, network) each tab is utilizing. should you run into any issues with a particular tab, you can end that specific process. i haven't had the opportunity to test that yet, but if it works, that'd be a pleasant change from firefox, which generally crashes as an application if a single tab locks up. to further support my theory that google is targeting the geek audience, the task manager window contains a link entitled "Stats for nerds", which displays some fairly detailed data about the browser's memory usage.

overall web pages seemed to load noticeably faster than in other browsers. of course, gmail seems to work a treat, which is nice as i'd sort of gotten used to gmail crashing firefox (to be fair, this hasn't happened in firefox since the latest update. w00t!). i haven't done extensive testing, but some cursory browsing seems to indicate that both javascript and css look as i'd expect them to look.

bottom line is... i like it. i actually like it a lot. it's sleek, it's fast, and it's got some nice built-in tools to satisfy your inner geek. have you tried it? i know that a lot of folks seem to be hesitant, taking this as a sign of google's further intent to dominate all things web (which is not inherently a bad thing folks, if they do it right and continue to not be evil), but i think it's certainly worthwhile to give it a glance and judge it based on its own merits, rather than only a perception of the company that provides it.

*update* it was just brought to my attention that CTRL-SHIFT-N will launch the browser in "incognito mode". and yes, i can think of a situation or two where that could come in handy

 

click on the thumbnails below to embiggen 'em:

more cfwindow fun (model-glue, too!)

august 6, 2008 at 1:19am in model-glue, ColdFusion

working on a model-glue application, i found myself in a situation where a <cfwindow> would come in handy. it's on a page that displays a list of items that belong to a user. for each item, the user can add a "journal entry". this is simply a plain text field and a time/date stamp. each entry displayed on the page has a link for "journal" that pops up a cfwindow that shows all of that item's journal entries, along with a form (a simple textarea) allowing the user to add a new entry.

using <cfform> allows the form submission to stay within the <cfwindow>, which worked great. a standard post allowed the page to refresh after the form was submitted (and the record inserted into the database), so it seemed to be a pretty user-friendly way to allow multiple journal entries to be added to an item. when the user was done adding entries, simply close the cfwindow.

here's where things got funked up... the first form submission worked great. the form's action page called an event-handler that did the insert, and added a named result to the event to redirect back to the journal.viewJournal event, which (obviously) displayed the contents of the journal. the event needed the concept of a transactionID, so i used the append attribute of the result tag as follows:

  1. <result name="success" do="journal.viewJournal" redirect="true" append="transactionID" />

when i went to add a second entry, however, the cfwindow tried to reload into the main/parent window. no matter how many times i tried, the first submission would work (the form submitted to the cfwindow), but the second submission would break (the form submitted to the parent window). realizing i needed the big guns, i whipped out firebug.

it seemed the original submission (the one that worked consistently) had a few parameters that would appear to have been added by CF:

  • _cf_clientid
  • _cf_containerID
  • _cf_nocache
  • _cf_nodebug
  • _cf_rc

so, i tried adding them to the append attribute of the result tag as follows:

  1. <result name="success" do="journal.viewJournal" redirect="true" append="transactionID,_cf_clientid,_cf_containerID,_cf_nocache, _cf_nodebug,_cf_rc" />

fixed things right up. i could do submission after submission after submission, and they all worked within the cfwindow. not being the type of person who believes in overkill, and out of a bit of curiosity, i did try whittling down the list. seems all i really needed was the _cf_containerID (makes sense, since it was the concept of the container that was being lost). so, the code ultimately turned out to be:

  1. <result name="success" do="journal.viewJournal" redirect="true" append="transactionID,_cf_containerID" />

and with that... i'll call it an evening.

cfwindow and javascript gotcha

august 5, 2008 at 5:34pm in ColdFusion

ok i'll be honest, this is straight out of the docs, but i figure there may be one or two people out there that don't read the docs, so it might be worth passing along.

today i needed to create a <cfwindow> (a tag that i do like, in spite of being on the fence as to whether or not i think the AJAX bits really belong in CF... but that's another post). the source was a page that already existed in another part of the site i was working on. this page made some pretty heavy use of javascript, and not surprisingly, my first efforts to display it resulted in dismal failure.

the error occurred on the following 3 lines of js:

  1. function Output() { }
  2. function Proxy() { }
  3. function Handler() { }

a quick check of the aforementioned docs turned up the following:

If the source attribute specifies a page that defines JavaScript functions, the function definitions on that page must have the following format:

functionName = function(arguments) {function body}

Function definitions that use the following format may not work:

function functionName (arguments) {function body}

so the fix was thankfully much simpler than i had expected it would be. the 3 lines of js above simply needed to be changed to:

  1. Output = function() { }
  2. Proxy = function() { }
  3. Handler = function() { }

...and everything was up and running and worked a treat. hope that might save somebody a few extra minutes of debugging. of course, if you want to walk away with a moral to the story... read the docs. be the docs. love the docs.:)

tom cruise + scientology = bad. sea cruise + coldfusion = more gooder

july 31, 2008 at 10:46am in ColdFusion, flex, general, conferences

yeah, that was a stretch. serves me right for trying to come up with a witty title before i've had my full morning dose of caffeine.

this made the rounds a while back, but since then things have been relatively quiet and i'm afraid it may have fallen off of most folks' radars. joshua cyr is organizing a "non-conference" cruise. what's that mean? it means the best part of the average conference... you know, after the sessions, alcohol in hand, hanging out at the bar with your fellow developers sharing war stories and talking shop... without the pesky sessions getting in the way.

and the best part? it's on a boat. a big boat that sails from miami to the bahamas (and back). food? check. drink? check (um... gotta pay for those tho). white sandy beaches and inviting blue waters? check. people you talk to online but have yet to meet in person (or don't meet often enough)? yup.

i think it's a great idea and i applaud josh's efforts for putting it together and coordinating the effort. i'd love to attend, but living on the left coast means paying for cross-country airfare for a family of 5... and that alone would run me about 4x the cost of the cruise itself. but i'd like to see this succeed. i'd like to think that it'll be so successful that it'll be an annual event, and that maybe i can make it in 2010.

what about you? what are you doing feb 9-13th of 2009? check out http://www.riadventure.com/ for all the details.



 
© 1953-2008, charlie griefer - design based on *Limelight* by www.mitchinson.net
blogCFC was created by raymond camden. this blog is running version 5.9.002.

CSS | XHTML