Friday, December 31, 2010

2010 Accomplishments & Highlights

Listed in very rough chronological order:

- started my first ColdFusion hosted blog (a la Mango)

- survived "Snomageddon 2010"

- attended NCDevCon conference, and CFUnited conference

- got the downstairs half-bath in my townhouse completely remodeled

- started using Blueprint CSS for more polished looking web apps (grids, fonts, etc.)

- improved my online security with Lastpass toolbar, using random, unique passwords for each site I join (p.s. - thanks, Gawker, for the final push to change my old passwords!)

- finally started using Dropbox

- wrote two plugins for open source projects (Active Directory plugin for CFWheels, and noprint plugin for Blueprint CSS)

- dealt with demands from my Civic Associations (some reasonable, some *very* unreasonable)

- became proficient in Xenu Stealth Link checker

- found out why our organization's web server returns 200/OK instead of 404/Not Found for missing web pages (I wonder if anyone else will care enough to fix it?)

- created my professional first Intranet app using an application framework (CFWheels)

- gained better understanding of and deeper appreciation for jQuery

- turned in my resignation notice to start my own consulting/training company

Saturday, December 11, 2010

Failed Bluetooth transfer turns LG Xenon Off/On?

Transferring pictures from your cell phone to your computer via Bluetooth is cool, but the really cool part is file transfers can be bi-directional.  In other words, if I download podcasts (e.g. CFHour, Buzz Out Loud, etc.) to my computer in iTunes/Juice/whatever, I can send them to my phone wirelessly and then listen to them on my Bluetooth earpiece during my commute.  Podcasts are MP3 files, which are larger than pictures usually, so they take longer-- but at 120-150KB/sec, it works great.

Except, of course, when it doesn't.  ;)

Today, for example, I downloaded a backlog of nine podcasts, and when I tried to transfer them, something odd happened. About 12KB of the first file transferred, and then suddenly my phone "rebooted."  Naturally, the file transfer timed out, so I waited until my phone was back to its main screen and tried again. Same result.  So I tried transferring only the first file individually, and that worked-- so I knew it wasn't something corrupt in the data of the first file that was causing the issue.

It turns out that if the storage card I have in my phone (which is where I have my various pictures, music files and such stored) has less free space available than what I am trying to send, my phone just "reboots" itself.  If I delete some old podcasts and make room, everything works smoothly again.

I figure other folks are probably experiencing the same thing and scratching their heads, so maybe this post will help them out.

Saturday, November 6, 2010

Opening HTML files in Mac OS X TextEdit

Q. I can open a webpage in Notepad to make a trivial HTML changes on my Windows PC. When I try to do the same with TextEdit on Mac OS X, it opens . . . but I cannot see the "raw" HTML. What gives?

A. Although Notepad is a plain text editor, TextEdit supports Rich Text Format (RTF) and a few other file formats, which makes it more similar to WordPad than Notepad.  When you open HTML files in TextEdit, it tries to interpret Rich Text commands and display the page "visually" rather than the "raw" HTML text.

There is a way to tell TextEdit to open HTML files as plain text documents, however.

In TextEdit's Preferences dialog box, click on the "Open and Save" tab near the top,  remove the checkmark beside "Ignore rich text commands in HTML files" and close the dialog box. From now on whenever you open a webpage with TextEdit, you'll see the "raw" HTML code.

Saturday, September 4, 2010

Interesting Glitch Between Photoshop CS 3 and Network Printer Drivers

I use Dreamweaver far more than Photoshop. Beyond resizing and/or optimizing the occasional graphic for websites, the rest of my job doesn't require much image editing.  I'm a developer, not a designer-- or at least, that is how it was until recently.  This week, I found myself faced with converting a design comp into a bare bones Dreamweaver template and ran face-first into a glitch with Photoshop CS 3 for Windows.

Resizing or optimizing a single graphic for a page usually means I have only one file open at a time. But the workflow for slicing up a reference graphic into regions of a webpage is different; you'll probably select and copy a piece (e.g. the header, the footer, the sidebar, etc.) and create a new, separate file for each segment.  You can imagine my surprise when I create a new/second image, and Photoshop crashes completely with this cryptic error message: The instruction at "0x7c91b21a" referenced memory at "0x00000010." The memory could not be "written." 

Saturday, August 28, 2010

The Papergeist Dream Story

Back in March 2008, I dreamt about a mischievous spirit in an old attic that physically manifested as a tiny tornado of blowing, whirling papers.  One part poltergeist + one part paper = "papergeist."  I wrote the wordplay and trivial story bit in my stagnating writing log, but never got around to doing anything with it.

Fortunately, someone else had the same wordplay idea and followed through with it.  As it turns out, there is a papergeist website.  They take old book covers and recycle them into unique works of art that are functional as sketchbooks, journals, etc.  Although I like the journals best, I think the undated appointment books are clever.  The store portion of the website is built in Coldfusion.

So basically, I can honestly say I found this website because of a dream I had.  How neat is that?

Sunday, August 1, 2010

Unicorn

An interesting announcement came out from the World Wide Web Consortium while I was away at CFUnited:
"W3C is pleased to announce the release of Unicorn, a one-stop tool to help people improve the quality of their Web pages."

Tuesday, July 13, 2010

Don't Be A "Warren."

I think it's a bad idea to write blog entries about one's current job.  However, that does not mean I am unwilling to pass along anecdotal wisdom gained from previous employers.  This is one such anecdote.

Like many of us in the tech industry, I provided technical support & assistance for clients by many communications avenues, including email.  One morning, I get an urgent email from "Warren" asking me to perform a routine task in a short time frame for an urgent deadline.  I also noticed he's carbon copied others in his office on that same email.  I take his request out of sequence, complete the task, and "Reply All" to let him and his colleagues know the request has been completed so they can do what they need to do.

About three minutes later, "Warren" calls me on my direct line and chews me out. "How dare you  include my supervisor . . ." on the email reply.  When I explained I hit reply all to notify all parties included on the original message of the completed status of the task, he cut me off and told me that he was the only person allowed to email his supervisor, period. 

Here's the point: All these years later, I don't remember anyone else's name from that office. I couldn't tell you what they did, or if they even did their jobs competently. They could have been the foremost in their field, but all I will ever remember is "Warren" and his pathetic macho bullshit attitude.  That is how powerfully cancerous to your organization's reputation one asshat like "Warren" can be.

Tuesday, July 6, 2010

LG Xenon, AT&T and the .jar/.jad issue

Once upon a time, I wanted to be able to read electronic books on my cell phone.  This sounds like a simple thing, especially when you consider that my LG Xenon supports Java midlets.  All I should have to do is locate an ebook reader program on a site such as getjar.com, and download and install it on to my phone, right?

Sure. If it were that simple, I wouldn't have written a blog entry about it now, would I?

So, I go to getjar.com, and scan through the half dozen or so offerings of book readers and test drive one or two of the most promising.  Although I'm able to install them, they do not seem to actually allow me to open any text files stored on my phone.  The only ones that do work are the ones that embed a book/text file inside the actual .jar (java archive) file itself. I do some research, locate the stats on my phone, and sure enough, it is supposed to support a file system API that allows programs to access the phone's file system.  That's JSR 75, if you want to know the Java programmer jargon for it.

The long and short of it is that AT&T does something to the firmware of the phones they provide which prevents third party programs from accessing the filesystem.  I get it-- it's for "security purposes."  You don't want just any old program being able to access the file system or the GPS interface, otherwise nefarious people might start using it to do bad things to your customers.  The part that galls me is that if a third-party developer goes out and spends serious coin ($200/year) on a certificate from someone like Verisign or Thawte, to validate their work as legitimate and unmodified, AT&T still denies them access to JSR 75.  You basically have to go through AT&T's internal verification process, which coincidentally will cost you more serious coin, and will not do anything towards making your "write once/run anywhere" program work with other cell phone vendors either.

It's sad, but my interest and enthusiasm in learning how to write Java midlets for cell phones just kinda died.

Sunday, July 4, 2010

How to check a solved Sudoku puzzle

When you solve a Sudoku puzzle, you should *always* verify your solution is correct.  That sounds simple, right?  You would proofread an email before hitting the send button, but . . . how exactly do you verify a Sudoku puzzle?

There are many Sudoku solver websites-- so you could, in theory, enter the puzzle manually into the site, have it solve the puzzle and then compare your solution with the solution generated by the Sudoku solver site.  But honestly, it's such a simple process that using a solver website is overkill.  If you can count to nine eighteen times in a row, you can check a Sudoku puzzle.

  1. Focusing on the first row alone, find and count the numbers from 1 to 9.  If you are missing any numbers, you have an error (either a blank or a duplicated number) in this row.  You should mark errors for future reference to be corrected.
  2. Repeat the process used in step 1 for all the remaining rows.
  3. Focusing on the first column alone, find and count the numbers from 1 to 9.  If you are missing any numbers, you have an error in this row.
  4. Repeat step 3 for the remainder of the columns.
  5. If you have checked all the columns and rows for the numbers 1 through 9, and no numbers are missing, then your solution is valid.

Note: You must check both the rows AND the columns.  It is possible for all rows to be correct, and still have a problem in one or more columns-- or vice versa.

Wednesday, June 30, 2010

CFUnited 2010

As you've most likely seen elsewhere, this will be the final year for the CFUnited conference.  I know many people are feeling sad or nostalgic, which is understandable.  CFUnited has been a part of the Coldfusion community for several years now, and many wonderful people have given their talents and efforts to make this event a continued, recurring success.

As a latecomer to the entire Coldfusion conference scene (CFUnited 2009 was my first Coldfusion conference), it's hard to express how I feel about this news without feeling hypocritical.  The nearest analogy I can come up with is that "loud and scary" uncle you see once a year at the family summer reunion picnics.  By the time you grow up enough to see that uncle isn't truly scary and has some amazing stories to share-- he's gone.  It's not a profound and personal loss, but more of a missed opportunity to learn beyond my own personal limits.


My metaphorical point being-- this will not be the last family reunion picnic, but future picnics will almost certainly be different.  Make the most of this one.  Find that "loud and scary uncle" and ask him to tell you about serving as a Flying Tiger during World War II.  It's a metaphor, indulge me.  (Go out of your way to say hello and introduce yourself to people. Take a chance on a session you might not normally take. Exchange contact information so you can keep in touch.)

Tuesday, May 18, 2010

My NCDevCon Picks

NCDevCon 2010

5/22/2010

  • 8-9 AM                 
    • Registration
  • 9-10 AM               
    • The Not A Keynote Session, Adam Lehman
  • 10-11 AM             
    • Component Lifecycle, Andy Powell
  • 11-12 Noon         
    • Database Tips and Tricks for Programmers
      I'm tempted to make a snarky remark about being a "big fish in a little pond", because I've worked with SQL Server, Access and Filemaker Pro . . . while some folks I've worked with consider Excel to be a database. But the truth is, you can never have too many database tricks up your sleeves.
  • 12-1 PM               
    • Lunch
      Try to eat without completely embarrassing myself by gawking & gaping at all the CF celebs. (OMG! Is that Sean Corfield?!)
      Go ahead and laugh, but you know you've done it too.
  • 1-2 PM                  
    • Understanding Security in Adobe AIR applications, Jason Dean
      I don't even write AIR applications (yet!), but Jason's blog entries over at 12Robots.com have been so informative and interesting, that I'd kick myself if I missed this session.
  • 2-3 PM                  
    • Getting Started with Coldfusion 9 ORM
  • 3-5PM                   
    • Hands on coldfusion session 3, Daria Norris
      I've learned more about and used Application.cfc and CFCs since CFUnited 2009, and even dabbled a little bit with UDFs and custom tags, but everything's been piecemeal from blogs and documentation on an as needed basis. I'm looking forward to a live, structured presentation of information to help fill the gaps in my conceptual understanding.

5/23/2010

  • 8-9 AM                 
    • Registration
  • 9-10 AM               
    • Pecha Kucha
      I actually tried my hand at a Pecha Kucha presentation three years ago, after reading Daniel Pink's "A Whole New Mind." The topic was "Writing Valid Webpages" and it had lots of pop culture references and visuals to drive the points home. I was hoping it might change the "death by Powerpoint" culture of our organization. Maybe this session means we are approaching a tipping point? 
  • 10-12 Noon         
    • Building a Website in Mura CMS (in 2 hours or less), Sean Schroeder
      I hear very good things about this particular CMS, but every time I've tried it out, it's been a case of getting it installed and then, "Now what?" I'm hoping a live demonstration will get me over that hump.
  • 12-1 PM               
    • Lunch
      Feed my face and cool down my overloaded brain cells
      ;)
  • 1-2 PM                  
    • MVC for the Rest of Use, Dennis Clark *OR* 
    • CSS Frameworks: Faster Layout, Consistent Results
      It happens at every conference.  There are always two really good sessions happening at the same time. I can't decide between these two. Crap. I may have to see if something comparable is being offered at CFUnited to help me break this tie.

  • 2-3 PM                  
    • Confessions of a Crackberry Addict, Jerry Lankford
      This is my "leap of faith." I know nothing about Jerry Lankford, and I can only speculate what the content of his presentation may be-- but with a title like that, I have a hunch it's going to be lively and entertaining. Simon Free's my backup choice here, because I know he's presenting at CFUnited in about two months.

Saturday, April 24, 2010

A square drawn with thick, black lines on a white page

When I was a child, I had an activity book called "The Anti-Coloring Book." It featured puzzles, games and activities designed to engage children in multiple ways beyond a simple coloring book. One of the "puzzle tricks" I remember was based on the (perhaps incorrectly named?) "persistence of vision" phenomenon. I'm not a retina specialist; I'll continue my story and leave the debate over the proper terminology to others.

The way this trick worked was you were to stare at, for example, a square with thick, black lines on an otherwise empty white page for 60 seconds, and then look away to another white surface, such as a wall. You would see an "after image" of the square when you looked away from the page. Bear in mind, I was a child with next to no understanding of vision and the human eye at the time, so this sounded nothing short of magical to me-- with something from a book jumping off onto the wall next to me!

The only problem was, I could never make it work. I'd stare at the page "forever", only to look away and see nothing. I actually wondered at one point if my eyes might be "broken" or "different" because I couldn't "see" the trick. (I still feel that way about those infuriating Magic Eye puzzles, but that's a story for another day!) I even remember talking to my parents to see if I was somehow doing it wrong.

I mention this childhood memory now, because as I have gotten older my eyes/retinas seem to have the afterimage phenomenon in excess. When I wake in the morning, if I look over at my dresser and mirror for only a few seconds, and then look away from it, I can see the "afterimage" of the mirror's thick black frame on the ceiling for a duration of several seconds. When this happens, I can't help but recall "The Anti-Coloring Book" and how I used to worry a little bit that I wasn't able to make that afterimage trick work.

Maybe I'll give those Magic Eye puzzles another go . . . after I turn 60. ;)

Saturday, February 13, 2010

Macromedia Contribute and psapi.dll

Problem: When I use the Microsoft Terminal Services client to remotely connect to my computer and start Macromedia Contribute 3.x, I get the following error message: "The procedure entry point GetProcessImageFileNameW could not be located in the dynamic link library PSAPI.DLL." I hit the OK button repeatedly (about six times), and the program starts to load, begins to process templates, and then crashes and disappears.

Issue: The dynamic link library, PSAPI.DLL, that ships with Macromedia Contribute is an older version of that dynamic link library. The version in Windows XP's system folder is the newer, more advanced version.

Solution:

1) Locate and rename Contribute's PSAPI.DLL file (usually found in c:\Program Files\Macromedia\Contribute 3) to PSAPI.DLL.old.

2) Find Windows XP's version of PSAPI.DLL (usually found in c:\windows\system32), and then COPY AND PASTE it into your Contribute 3 folder. (Do *NOT* remove PSAPI.DLL from the System32 folder, or bad things will happen.)

3) Restart your Terminal Services connection, remotely connect to the computer, and test the Macromedia Contribute application to make sure it is working properly.