Contact Doug!
Learn About Doug!
View Doug Boude's online resume
updated 11/18/2009

View Doug Boude's profile on LinkedIn
Link to me!

Follow Doug Boude on Twitter
Follow me!

Be Doug's friend on Facebook
Befriend me!
(I promise not to follow you home)
OO Lexicon
Chat with Doug!
Recent Entries
You may also be interested in...
Florida web site design



Czech your Page Rank!
Check Page Rank of any web site pages instantly:
This free page rank checking tool is powered by Page Rank Checker service
Surf's Up!
Visit Egosurf.org and massage YOUR web ego!
My Score: 9,001
Doug's Books

Read (and recommend)

  • Men are from Mars, Women are from Venus
  • The Wisdom of Crowds: Why the Many Are Smarter Than the Few and How Collective Wisdom Shapes Business, Economies, Societies and Nations
  • Blink: The Power of Thinking Without Thinking
  • Head First Design Patterns
  • Transact-SQL Programming
  • What's So Amazing About Grace?
  • Just So Stories (Rudyard Kipling collection)

Reading

  • Prayer: Does it Make Any Difference?
  • Data Mining (Practical Machine Learning Tools and Techniques)
<< October, 2008 >>
SMTWTFS
1234
567891011
12131415161718
19202122232425
262728293031
Search Blog

Recent Comments
Categories
Archives
Photo Albums
Funnies (5)
Family (3)
RSS

Powered by
BlogCFM v1.11

24 October 2008
iPhone - Mac programmer wanted for telecommute work

Hi all. Just a quick post to see if anybody IS or KNOWS a Mac/iPhone programmer. I realize those can be two very different animals, but if you are aware of an individual who might be interested in some freelance work in that arena please drop me a line via my "Email Doug" link. The work will be telecommute and probably long term, but I'm only helping a local company here find some good contractors so am not privy to a lot of the project details.

Thanks!

Doug  :0)

Posted by dougboude at 6:39 PM | PRINT THIS POST! | Link | 1 comment



13 October 2008
Sneaking Spiders Past Security

The Scenario
You've created a web site that is secured, but you want the search engine spiders to be able to crawl the content. Okay, in this case it's not secured in the sense of needing a username and password, but is secured by requiring that the visitor first acknowledge some terms and conditions before they can access any other portion of the site. This initial requirement of a button click seems to stop all web spiders in their tracks, and thus your site's content never gets added to that search engine's indexes. 

I posted a question regarding this situation on HouseofFusion and did get one interesting answer, but it didn't really address my dilemma. The answer I received was that it is possible to configure Google Analytics to be able to log in to your site in its efforts to index content, but in investigating this further I found that it is only for the purposes of serving ads contextually, not search engine results. Since this site isn't serving any ads and my goal is to help people find their way to the site's front door based on the content BEHIND the door, I needed another answer. Here's what I ended up doing:

In my application.cfc, I have code in the onRequestStart method that checks to see if the user had already acknowledged the disclaimer (by looking at a session variable set to 'true' when they do). If true, allow the original request to go through; if false, redirect to the disclaimer.  I then created an additional, private method in my application.cfc that I called "isSpider" that checks the cgi.http_user_agent against a list of known spider agents, returning either true or false. So, before I check my session variable's value, I first call the isSpider method. If the visitor IS a spider, I set the session variable to true before I do the redirection check against it. Here are the relevant methods:

<cffunction name="onRequestStart" returntype="void" output="false">
 <cfif isSpider()>
  <cfset session.acknowledged = true />
 </cfif>
 <cfif not session.acknowledged>
  <cflocation url="acknowledgeDisclaimer.cfm" addtoken="no" />
 </cfif>
</cffunction>

 

 

<cffunction name="isSpider" access="private" returntype="boolean" hint="I check the user agent string for the occurrence of any of the known spider user agent values">
 <cfloop index="s" list="#application.spiderlist#">
  <cfif findnocase(s,cgi.http_user_agent) gt 0>
   <cfreturn true />
  </cfif>
 </cfloop>
 <cfreturn false />
</cffunction>

 

 


In my onApplicationStart, I create the string of partial spider user agent values:

<cfset application.spiderlist = "Googlebot,Yahoo,msnbot,AOL,Ask Jeeves,Lycos" />

 

It is true that there are literally hundreds of other spiders running around out there, but I chose to select only the top six that show up in my site analytics as being the ones most people find my other sites by rather than attempt to validate all possible indexers. I also opted to simply check the user agent for any occurrence of a specific substring rather than match against the entire string, for efficiency's sake, since each particular search engine can have several different user agents (and those could change at any time!). For instance, Google has (to the best of my knowledge) the following User Agent values for its spiders:

  • Googlebot-Image/1.0 ( http://www.googlebot.com/bot.html)
  • Googlebot/2.1 ( http://www.google.com/bot.html)
  • Googlebot/2.1 ( http://www.googlebot.com/bot.html)
  • Googlebot/Test ( http://www.googlebot.com/bot.html)

Hence, my choice to simply search the user agent for the string "Googlebot" in order to determine if it was a Google spider or not.

I found what appears to be a VERY comprehensive list of spider user agent values (and other metadata) at this url: http://www.user-agents.org/index.shtml . They also offer RSS and XML feeds if anybody wants to do something really cool with the data.

I also used the following spider simulation site in order to test my code changes: http://tools.summitmedia.co.uk/spider/
Their user agent value looks like the following: "K2-Summit (+http://tools.summitmedia.co.uk/spider/) leond@summitmedia.co.uk" , so I just added the value "K2-Summit" to my spiderlist variable in order to let them bypass the disclaimer acknowledgement.

Though the site I based this post on doesn't require username and password authentication, I do believe it would be a simple matter to apply the same principle to a site secured in that manner; when a known spider arrives (one that YOU want crawling your site), simply issue them a visitors pass in the form of manually set credentials and let them do their job!
 
I am by no means a search engine guru, so if anybody out there knows a better way, sees any gaping, dangerous holes in my solution, or just has any suggestions or comments, please do share!

Doug out.

Posted by dougboude at 3:22 AM | PRINT THIS POST! | Link | 2 comments
08 October 2008
Is Your ColdFusion User Group Lame?

For the last several months it has been my distinct opinion that the ColdFusion user group down here in San Antonio is, to put it frankly, lame. Attendance is high when we have more than three people show up (including the manager and co manager), the agenda is non-existent really, and all of our best meetings are held at the Flying Saucer (local college hangout with hundreds of kinds of beer) or TGIs (killer apple tinis). It's important that you understand I am not casting blame or pointing fingers...I believe our manager really does care and puts forth the effort needed. Nevertheless, this has been my personal assessment.

Last night was our September meeting. The manager called me and asked me to make sure and be there early because he was stuck in jury duty and wasn't sure when he would be out. So, I arrived at our regular meeting place (a training facility) only to find the room we always use occupied by a class. The sign that's usually taped to the door pointing the way to the meeting room wasn't there either. So I hung out in the lobby and waited for any other members to show up so we could discuss options. Eventually two guys walked in looking for the user group meeting. They were new faces, had never been to one of our meetings, and were interested in the topic of Flex that our manager had sent out as something we were going to talk about. I explained the situation to them, and for the next 45 minutes had an incredibly deep conversation revolving around Action Script 3 and Flash development, the forte of both of these guys. Our manager arrived soon after and we all went to the Flying Saucer where we spent the next two and a half hours geeking out (I say that affectionately), discussing specifics about projects we were working on, experiences we've had, and our own technical autobiographies. Some good connections were made on several levels, and I know that something positive will come from having gotten to know these guys over a few barley wines.

The real purpose of this post comes now and has to do with an epiphany I had on the way home. I obviously have been of the opinion that my user group is lame, most of that stemming from the fact that NOBODY hardly ever shows up for it. Up until last night, somewhere inside of me I harbored a kind of grudge against those others in this city who I KNOW use Coldfusion on a daily basis yet do not bother to show up and take part in the improvement of our craft as a whole. When I would try and understand why they so very often choose not to be there, I would always think "it must be because they don't get anything from our meetings", and would put my mind to coming up with ways to make the meetings more useful in a practical sense. Last night, though...it was a very small group, 5 in total (another guy joined us later after I called and invited him); yet the meeting was SO GOOD! And no, it wasn't just the barley wine. It was the dynamic of the conversations...I was LEARNING from these guys, I was being sharpened and improved simply by partaking of their experiences and sharing, and I was contributing like things from my own areas of expertise. So, boys and girls, here are my thoughts post-epiphany on the subject of user group meetings now...

If the reason you don't attend your user group meeting is because you don't think you're going to get anything from it...then shame, shame on you. The audacity one must have to believe that the user group is there solely for his or her benefit and partaking! Au contraire mon frere, au contraire. The user group is only as good as its members, bottom line. If you want it to be useful to you, then contribute to it in the form of BEING there and SHARING what you have learned! It's the manifestation of the old saying, you reap what you sow. If you want to gain something from the user group, then man, GIVE something to the user group! As I shared, our meeting last night was so inspiring and enlightening, opening my mind up to things I've not yet exposed it to and showing me the possibilities in these other avenues; but it was not solely because I sat idly by and just listened...I participated.  Your user group will only ever be as good as the members who support it, so if you, like I have done for so long, believe your user group is lame, then stop pointing fingers or casting blame! Attend the meetings and make them what you want them to be. Offer to give presentations, offer feedback and ideas to your managers, be outspoken and a participant rather than a spectator. In a nutshell, either do your part or stop complaining (even if its only to yourself).

And to those of you who DO attend your meetings but tend to worry over the fact that many others do not: stop worrying about it. Simple truth is, you probably are better off without the dead weight anyway.

Just my take.

Doug out.

Posted by dougboude at 2:16 PM | PRINT THIS POST! | Link | 6 comments
05 October 2008
The 42 Year Old (Political) Virgin

I can't help but relate to the 40 Year Old Virgin, as I myself am 42 and for whatever reason (I have no good explanation for it), THIS year is the VERY FIRST TIME politics has ever attracted my interest. It's almost like I've just now hit political puberty or something (I mean, I KNEW that changes were taking place inside of me but I was confused about them and didn't know what they meant!). Every single election year, I've turned away from anything political, not caring about who won, not believing I really had anything to say about it anyway, and utterly abhorring anything that reeked of arse kissing or mud slinging. I've just flat out never cared and considered those who did get caught up in the waves as "one of the herd" who mindlessly followed around their favorite animal banner (ass or elephant).

 But this year, it's different. I don't think I have really changed all that much...I still see the multitudes as members of a herd, I still believe that I'm fairly insignificant in the grand scheme of things. But what I believe may be happening now is that I feel a distinct vibration in the air that this year, this election isn't just going to result in either gas that's a few cents higher or lower; this election feels like a major, major crossroads in the history of civilization to me. Call it intuition, or rather call it an overwhelming sense of foreboding, but I do believe that what happens THIS November 4th is going to be the beginning of major major changes, for good or bad. Knowing this, it scares me. I'm late in the game, but right now I'm trying to catch up on the two opposing sides...get a sense of who they are, what they truly represent, who I can trust. For the first time in my life, I watched a debate on TV because I was truly interested in getting to know these people (Biden/Palin). I heard double talk, I heard honesty, I heard real people, I heard fake people. I heard original thoughts, I heard rehearsed thoughts, I heard stances and viewpoints, and in the entire process of taking it in and digesting it, I was in a constant state of comparing what they said, thought, and believed with what I think and believe. Some of Palin's points I had to give a single handed high five to; some of Biden's points, I did the same. I saw parts of him I could live under, I saw parts of her I could live under. I thought to myself, "why can't THOSE two be running on the same ticket? Then I wouldn't have any question about who to vote for". My good friend compelled me to listen to Obama's acceptance speech, which I did. I related to him in many aspects. My other good friend compelled me to do the same with McCain and again, I could see myself living under the man's government. So in the end, dang it, they ALL have points I totally concur with, and they all have points I totally disagree with. So then, how does a 42 year old virgin go about making the right decision for himself?

I truly believe that the answer begins inside of me first. Before I can ever make a rational, good choice between candidates, I have to know what my OWN beliefs are, know what my OWN philosophy on a given subject is, and most importantly, I have to have those beliefs and philosophies prioritized. Until I do that, I  will always find myself what they call "on the fence". I don't believe that a person is on the fence because all of the candidates are just such good choices; I believe (after seeing this in my own self) that a person is "on the fence" because they have NOT taken the time to first understand their own selves well enough; they've not examined what their OWN beliefs truly are and prioritized them.  Once I did that...listed mentally or otherwise which of my personal beliefs and needs were most important to me, the choice became much, much easier. Since I (and every individual) see the world from my own particular place in it, no candidate is ever going to think exactly like me; but I can choose the one whose top priorities are most aligned with MY top priorities. If I stop spending so much time trying to understand every single thing each candidate believes and stands for and just focus on the ones that matter most to me, it isn't nearly as difficult a task to make a decision. 

As I stated earlier, I feel it...there's something about this election, this time in our history, this place that the world finds itself in that is foreboding and frightening. The world's on the brink of so many things, some amazingly good, some amazingly horrifying. For this reason, and because (though I may be but a single drop in the ocean) my presence, however miniscule, DOES count, I have registered to vote and will do so for the first time in my life this coming November. Feel free to contact me on or off line if you would like to me to share more of my personal political evolution, if you think it might help someone else you know evolve as well and give up their political virginity! 

Thanks for listening.

Posted by dougboude at 5:14 PM | PRINT THIS POST! | Link | 2 comments
04 October 2008
On Being Sorry...
General Rules for Life
"Sorry", the word itself,  is so very often misused and abused. 99% of the time, "sorry" is thrown out in the midst of a disagreement more as a mockery and gesture of pure loathing for the other person rather than the healing, fulfilling word that it was intended to be. Though no expert on the subject, living life and being observant along the way has resulted in some relevant insight, so I thought I'd take a few minutes to share some of my personal philosophy on the matter. Feel free to adopt it as your own.

"Sorry" by itself NEVER constitutes an apology, so don't go deceiving yourself into thinking you fixed what you broke when all you said was "sorry"; uh-uh, that ain't gonna cut it Bud. Delivered all alone, it is an empty, meaningless word without context or connotation, and does absolutely NOTHING for the other party involved to begin the healing process. If you truly are sorry for something, there's a little bit of homework that has to be done before true mending can take place.

First of all, you MUST understand exactly what it is that you did to hurt, offend, or wrong the other person. To gain this insight takes something that I fear too many people lack: introspection, or self-examination. In many senses of the word, you have to step outside yourself and the situation and look at it from a new perspective to really size up the deeds and damage. One tip that tends to work well is to simply imagine that the exact scenario had taken place between two friends or relatives of yours. If THEY had gone through the exact same situation, how would YOU judge the matter? However you would judge it between two other parties, that's exactly how you should judge yourself. Call the Spade a Spade, man, don't be sugar coating it.

Once you understand what precisely your wrong was, you must then don a mindset of humility. Pride won't allow you to be sorry, but man, humility will promote the sincerity and repentance that the other party must see in order to have a hope of forgiving you. So humble yourself down, dude(tte), eat a little crow pie, and be determined that if you're gonna do this that you're gonna do it right.

Now, deliver the apology. Beg (not literally) an audience with the other party, and in all the true humility and sincerity you can muster, you tell them exactly what you did wrong and how truly sorry you are. If you want to make it really complete, share a little bit of what you learned during self-examination and tell them what fault in you actually precipitated the misdeed. By doing this, they will be getting one of the vital pieces they need to grant forgiveness, and that is the knowledge that you really do understand the harm you caused. Speaking of forgiveness, asking for this is also a necessary part of the apology. I did say ASK, not demand. You don't have the RIGHT to EXPECT forgiveness...that in itself is a gift granted at their discretion, not yours. They may or may not grant it, but the truly repentant person will remain so regardless.

If you happen to be the person who was wronged (aren't we all?), there are some things you can do to help the other person achieve repentance. As with forgiveness, repentance and true sorrow can only be achieved by the individual and there's no magic button to push that makes it occur. You can, however, do things to help break down their main barrier to making it right (their pride). This may sound a little strange or off the wall, but I know for an absolute fact that it is true and it does work with even the hardest, coldest of individuals: be soft. That's right, soft. Speak gently, not harshly or provokingly; show kindness even though you know (and most importantly THEY know) that no kindness is warranted; break down your OWN pride and put on an air of humility. It is nearly impossible for an individual to maintain a posture of defensiveness and pride when their opponent (friend, better half, other) is doing absolutely nothing to fuel such things. We tend to mirror one another, ever notice that? You be nice to me, I tend to be nice to you. You smile at me, I smile at you. You frown at me, I frown back at you. What you are doing in many ways is showing them the behavior they themselves ought to mimic toward you, and lo and behold, they most likely will! Once their pride is down, that dark self-destructive veil, THEN they will be able to see their own true colors clearly and get on with the business of fixing what they broke.

Hope this helps!

Doug out.

Posted by dougboude at 12:34 PM | PRINT THIS POST! | Link | 1 comment