<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>Tom Mollerus&apos; Weblog</title>
   <link rel="alternate" type="text/html" href="http://www.mollerus.net/tom/blog/" />
   <link rel="self" type="application/atom+xml" href="http://www.mollerus.net/tom/blog/atom.xml" />
   <id>tag:www.mollerus.net,2008:/tom/blog/1</id>
   <updated>2008-07-21T13:10:46Z</updated>
   <subtitle>Web Security, Usability, CSS/XHTML, ColdFusion, and PHP</subtitle>
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type Publishing Platform 4.01</generator>


<entry>
   <title>Always use server-side data validation</title>
   <link rel="alternate" type="text/html" href="http://www.mollerus.net/tom/blog/2008/07/always_use_serverside_data_validation.html" />
   <id>tag:www.mollerus.net,2008:/tom/blog//1.155</id>
   
   <published>2008-07-21T12:56:37Z</published>
   <updated>2008-07-21T13:10:46Z</updated>
   
   <summary>I&apos;ve just come back from an CommonSpot Advanced Developer&apos;s Training class, where some people expressed the thought that server-side validation wasn&apos;t required as long as you have sufficient client-side validation through JavaScript. Then this morning I read Mark Kruger&apos;s excellent...</summary>
   <author>
      <name>Tom Mollerus</name>
      <uri>http://www.mollerus.net/tom/blog/</uri>
   </author>
   
      <category term="Databases/SQL Code" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="Security" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.mollerus.net/tom/blog/">
      <![CDATA[<p>I've just come back from an <a href="http://www.paperthin.com/products/index.cfm">CommonSpot</a> Advanced Developer's Training class, where some people expressed the thought that server-side validation wasn't required as long as you have sufficient client-side validation through JavaScript.  Then this morning I read Mark Kruger's excellent (if rather unfortunate) example of <a href="http://www.coldfusionmuse.com/index.cfm/2008/7/18/Injection-Using-CAST-And-ASCII">why you should always implement server-side data validation</a> in your applications. Always remember that users, whether friendly or malicious, can submit anything they please via form submissions, URL query strings, or even cookies.</p>]]>
      
   </content>
</entry>

<entry>
   <title>Boston CFUG meeting tonight at Adobe&apos;s offices</title>
   <link rel="alternate" type="text/html" href="http://www.mollerus.net/tom/blog/2008/07/boston_cfug_meeting_tonight_at_adobes_offices.html" />
   <id>tag:www.mollerus.net,2008:/tom/blog//1.154</id>
   
   <published>2008-07-16T13:15:56Z</published>
   <updated>2008-07-16T13:21:26Z</updated>
   
   <summary>For those of you in the Boston area, you&apos;ll really enjoy the Boston ColdFusion User Group&apos;s meeting tonight at Adobe&apos;s offices in Newton. Luis Majano will be presenting his ColdBox framework-- it&apos;s a great, easy way to get introduced to...</summary>
   <author>
      <name>Tom Mollerus</name>
      <uri>http://www.mollerus.net/tom/blog/</uri>
   </author>
   
      <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.mollerus.net/tom/blog/">
      <![CDATA[<p>For those of you in the Boston area, you'll really enjoy the <a href="http://www.bostoncfug.org/index.cfm">Boston ColdFusion User Group's</a> meeting tonight at Adobe's offices in Newton. Luis Majano will be presenting his ColdBox framework-- it's a great, easy way to get introduced to OOP programming. Make sure to come!</p>

<p><a href="http://www.bostoncfug.org/index.cfm?event=showMeeting&meetingID=CA04FA80-D61B-FA8C-8A343B03A53B5745" title="View the details of the Boston CFUG meeting where Luis Majano will discuss his ColdBox framework">http://www.bostoncfug.org/index.cfm?event=showMeeting&meetingID=CA04FA80-D61B-FA8C-8A343B03A53B5745</a></p>]]>
      
   </content>
</entry>

<entry>
   <title>I&apos;m now a co-manager of the Boston CFUG</title>
   <link rel="alternate" type="text/html" href="http://www.mollerus.net/tom/blog/2008/07/im_now_a_comanager_of_the_boston_cfug.html" />
   <id>tag:www.mollerus.net,2008:/tom/blog//1.153</id>
   
   <published>2008-07-02T14:54:22Z</published>
   <updated>2008-07-02T15:00:33Z</updated>
   
   <summary>I&apos;m pleased to say that Brian Rinaldi recently offered for me to be his co-manager for the Boston Coldfusion User Group, and I happily (and immediately) accepted. I&apos;ll be helping Brian with some of the management activities that he&apos;s always...</summary>
   <author>
      <name>Tom Mollerus</name>
      <uri>http://www.mollerus.net/tom/blog/</uri>
   </author>
   
      <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.mollerus.net/tom/blog/">
      <![CDATA[<p>I'm pleased to say that Brian Rinaldi recently offered for me to be his co-manager for the <a href="http://www.bostoncfug.org/index.cfm">Boston Coldfusion User Group</a>, and I happily (and immediately) accepted. I'll be helping Brian with some of the management activities that he's always wanted to do but hasn't had time for, and I hope that it gives me the chance to meet more people in the community and to spread the word about ColdFusion to new users who are interested in seeing what it's about.</p>

<p>For those of you in the Boston area, we'd love to see you at the meetings. We've got some <a href="http://www.bostoncfug.org/index.cfm?event=showMeetings">great ones lined up</a> in the near future!</p>]]>
      
   </content>
</entry>

<entry>
   <title>Adobe MAX 2008 has an interactive background</title>
   <link rel="alternate" type="text/html" href="http://www.mollerus.net/tom/blog/2008/06/adobe_max_2008_has_an_interactive_background.html" />
   <id>tag:www.mollerus.net,2008:/tom/blog//1.151</id>
   
   <published>2008-07-01T02:24:29Z</published>
   <updated>2008-07-01T02:36:19Z</updated>
   
   <summary>I visited the Adobe MAX 2008 site after reading Ben Forta&apos;s blog post about the ColdFusion &quot;unconference&quot; behind held during MAX. After noticing a little animation in the very-grayed-out background, I clicked to see if anything would happen. It turns...</summary>
   <author>
      <name>Tom Mollerus</name>
      <uri>http://www.mollerus.net/tom/blog/</uri>
   </author>
   
      <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.mollerus.net/tom/blog/">
      <![CDATA[<p>I visited the <a href="http://max.adobe.com/na/experience/#?s=0&p=0">Adobe MAX 2008 site</a> after reading <a href="http://www.forta.com/blog/index.cfm/2008/6/30/Ray-Camden-To-Lead-MAX-CF-Unconference">Ben Forta's blog post about the ColdFusion "unconference"</a> behind held during MAX.</p>

<p>After noticing a little animation in the very-grayed-out background, I clicked to see if anything would happen. It turns out that there are three adjacent mini-worlds, each with its own short puzzle for you to solve, which lead to one easter egg apiece. They're pretty fun. Follow the link above to MAX if you want to see for yourself, or read more if you want to know the easter eggs that I found.</p>]]>
      <![CDATA[<p>Here are the three easter eggs that I found:

<ul>
     <li>In the jungle landscape, I managed to build the totem that the explorer was looking for;</li>
     <li>In the artic seascape, I found the Big Spaceship easter egg;</li>
     <li>In the desert landscape, I found the hidden logo (I'm not familiar with the company and can't remember their name, though).</li>
</ul>

Did anyone else find any others that I missed?</p>]]>
   </content>
</entry>

<entry>
   <title>Getting Windows applications into your MacOSX dock</title>
   <link rel="alternate" type="text/html" href="http://www.mollerus.net/tom/blog/2008/06/getting_windows_applications_into_your_macosx_dock.html" />
   <id>tag:www.mollerus.net,2008:/tom/blog//1.150</id>
   
   <published>2008-06-11T21:15:31Z</published>
   <updated>2008-06-12T02:42:07Z</updated>
   
   <summary>I just discovered a neat little trick with VMWare on my MacBook Pro. I still need to QA against IE/Win, and I still love using Homesite+. Up until now, to use either of them I&apos;ve launched VMWare, launched those programs,...</summary>
   <author>
      <name>Tom Mollerus</name>
      <uri>http://www.mollerus.net/tom/blog/</uri>
   </author>
   
      <category term="Office Life" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="Web Development" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.mollerus.net/tom/blog/">
      <![CDATA[<p>I just discovered a neat little trick with VMWare on my MacBook Pro. I  still need to QA against IE/Win, and I still love using Homesite+. Up until now, to use either of them I've launched VMWare, launched those programs, then switched to Unity mode. The next day, I would have to do the same thing all over again.  But with less than 5 minutes of work, you can get your favorite old Windows apps to appear on and launch from the Dock.  It works like this: if you switch your Windows VM to "Unity" mode so that the applications you have open appear each in their own window, their icons will appear on the right side of the Dock (note the Windows Remote Desktop and Firefox icons):</p>

<p><span class="mt-enclosure mt-enclosure-image"><img alt="temporary-doc-icons.jpg" src="http://www.mollerus.net/tom/blog/images/temporary-doc-icons.jpg" width="240" height="56" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;"/></span></p>

<p>Now if you click-and-drag those icons from the right side of the Dock to the left side, they'll stay there permanently (note the Internet Explorer and Homesite+ icons):</p>

<p><span class="mt-enclosure mt-enclosure-image"><img alt="permanent-dock-icons.jpg" src="http://www.mollerus.net/tom/blog/images/permanent-dock-icons.jpg" width="262" height="57" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;"/></span></p>

<p>And whenever you click on these icons, VMWare will start up and bring up the application for you-- in Unity mode! It's just like... no, it really <em>is</em> having your favorite Windows apps available to you just like any other MacOS app. Awesomeness, no extra charge.</p>]]>
      
   </content>
</entry>

<entry>
   <title>Open letter to Hillary Clinton</title>
   <link rel="alternate" type="text/html" href="http://www.mollerus.net/tom/blog/2008/06/open_letter_to_hillary_clinton.html" />
   <id>tag:www.mollerus.net,2008:/tom/blog//1.149</id>
   
   <published>2008-06-04T03:37:55Z</published>
   <updated>2008-06-04T04:18:44Z</updated>
   
   <summary>Dear Hillary, In your speech after the South Dakota primary tonight you asked for suggestions from the public on what to do about your campaign. Here is my response to your call for advice. Tonight, you chose not to confirm...</summary>
   <author>
      <name>Tom Mollerus</name>
      <uri>http://www.mollerus.net/tom/blog/</uri>
   </author>
   
      <category term="Life" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.mollerus.net/tom/blog/">
      <![CDATA[<p><em>Dear Hillary,</em></p>

<p><em>In your speech after the South Dakota primary tonight you asked for suggestions from the public on what to do about your campaign. Here is my response to your call for advice.</p>

<p>Tonight, you chose not to confirm Senator Obama's clear victory in amassing the delegates needed to claim the Democratic nomination, and in doing so you withheld support from him when he could have used it the most.</p>

<p>You insulted the American public by not acknowledging his historic victory when he became the first minority nominee. You chose to sacrifice the strength of the Democratic Party in order to guard your pride and your political leverage. If you continue to do so, you will only damage and diminish your own reputation.</em></p>

<p><em>Suspend your campaign.</em></p>]]>
      
   </content>
</entry>

<entry>
   <title>Boston CFUG Subversion presentation follow-up</title>
   <link rel="alternate" type="text/html" href="http://www.mollerus.net/tom/blog/2008/05/boston_cfug_subversion_presentation_followup.html" />
   <id>tag:www.mollerus.net,2008:/tom/blog//1.148</id>
   
   <published>2008-05-28T03:08:34Z</published>
   <updated>2008-05-28T03:11:43Z</updated>
   
   <summary>Thanks to everyone who attended tonight&apos;s Boston CFUG presentation on using Subversion. If I can help anyone get set up with the server or a client, just let me know....</summary>
   <author>
      <name>Tom Mollerus</name>
      <uri>http://www.mollerus.net/tom/blog/</uri>
   </author>
   
      <category term="Code Building\Versioning" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="Web Development" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.mollerus.net/tom/blog/">
      <![CDATA[<p>Thanks to everyone who attended tonight's <a href="http://www.bostoncfug.org/index.cfm?event=showMeeting&meetingID=CDD54882-D61B-FA8C-80CA554D0D405245">Boston CFUG presentation on using Subversion</a>. If I can help anyone get set up with the server or a client, just <a href="http://www.mollerus.net/tom/contact/">let me know</a>.</p>]]>
      
   </content>
</entry>

<entry>
   <title>So, you think there&apos;s no worthy Subversion client for the Mac?</title>
   <link rel="alternate" type="text/html" href="http://www.mollerus.net/tom/blog/2008/05/so_you_think_theres_no_worthy_subversion_client_fo.html" />
   <id>tag:www.mollerus.net,2008:/tom/blog//1.147</id>
   
   <published>2008-05-16T23:51:23Z</published>
   <updated>2008-05-17T00:14:02Z</updated>
   
   <summary>Wow. Between a new job with Ping Identity and attending the cf.Objective() conference, it&apos;s been at least 3 weeks since my last posting. Well, one of the things I learned at the conference came after asking a presenter for his...</summary>
   <author>
      <name>Tom Mollerus</name>
      <uri>http://www.mollerus.net/tom/blog/</uri>
   </author>
   
      <category term="Code Building\Versioning" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="Web Development" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.mollerus.net/tom/blog/">
      <![CDATA[<p>Wow. Between a <a href="http://www.mollerus.net/tom/blog/2008/04/new_job_today.html">new job with Ping Identity</a> and attending the <a href="http://www.cfobjective.com/">cf.Objective() conference</a>, it's been at least 3 weeks since my last posting. Well, one of the things I learned at the conference came after asking a presenter for his opinion on whether there was <em>any</em> Subversion client for Macintosh that was worth using. The Finder plugin is a great idea, since it's like TortoiseSVN, but it's not full-featured and doesn't always show status overlays correctly; and other clients keep views of working folders and repositories in separate windows. Finally, other clients don't have a built-in diff program. The presenter didn't think that any Mac client was worth using either.</p>

<p>But someone from the end of my row in the audience told me to speak to him after the session was over, and he told me about <a href="http://www.syncrosvnclient.com/">Syncro SVN</a>. It has everything you could want in a client-- an integrated view of your repositories, working directories, a great diff viewer, and session log. Plus, it has all of the features you might want, such as the ability to relocate working directories between repositories. If you're not satisfied with other Subversion clients on the Macintosh, I'd suggest you give Syncro SVN a look.</p>]]>
      
   </content>
</entry>

<entry>
   <title>New job today</title>
   <link rel="alternate" type="text/html" href="http://www.mollerus.net/tom/blog/2008/04/new_job_today.html" />
   <id>tag:www.mollerus.net,2008:/tom/blog//1.146</id>
   
   <published>2008-04-23T20:40:50Z</published>
   <updated>2008-04-24T03:25:11Z</updated>
   
   <summary>I&apos;m in a new position today, as Senior Web Developer at the leading secure single sign-on provider, PingIdentity. They&apos;ve set me up with a sweet 30&quot; Macintosh HD screen, plus a nice, light MacBook Pro. The fridge is even stocked...</summary>
   <author>
      <name>Tom Mollerus</name>
      <uri>http://www.mollerus.net/tom/blog/</uri>
   </author>
   
      <category term="Life" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="Office Life" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.mollerus.net/tom/blog/">
      <![CDATA[<p>I'm in a new position today, as Senior Web Developer at the <a href="http://www.pingidentity.com">leading secure single sign-on provider, PingIdentity.</a> They've set me up with a sweet 30" Macintosh HD screen, plus a nice, light MacBook Pro. The fridge is even stocked with Cokes.  I think I may just sleep here.</p>]]>
      
   </content>
</entry>

<entry>
   <title>You know, I don&apos;t mind this web ad-- I love it</title>
   <link rel="alternate" type="text/html" href="http://www.mollerus.net/tom/blog/2008/04/you_know_i_dont_mind_this_web_ad_i_love_it.html" />
   <id>tag:www.mollerus.net,2008:/tom/blog//1.145</id>
   
   <published>2008-04-22T02:04:32Z</published>
   <updated>2008-04-22T02:58:50Z</updated>
   
   <summary>While browsing the web tonight my wife came across what is the first enjoyable advertisement I&apos;ve ever seen on the web (those fun Orbitz games don&apos;t count-- while I like to play with the baseball or putt-putt golf widgets, I...</summary>
   <author>
      <name>Tom Mollerus</name>
      <uri>http://www.mollerus.net/tom/blog/</uri>
   </author>
   
      <category term="Humor" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="Web Marketing" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.mollerus.net/tom/blog/">
      <![CDATA[<p>While browsing the web tonight my wife came across what is the first enjoyable advertisement I've ever seen on the web (those fun Orbitz games don't count-- while I like to play with the baseball or putt-putt golf widgets, I didn't like the ads themselves). And the great thing about it is that it's more than just an interactive game and more than a running commercial-- it's an entertaining combination of both, almost like an example of that semi-mythical idea of "interactive TV" that pundits have written about for the last decade.</p>

<p>On <a href="http://www.hgtv.com">HGTV</a>'s web site, a Flash ad showed up for Sears showing a static picture of some guy dressed up as a dandelion. Beneath him there's a button requesting that you "Roll over the weed". If you do, that's when the commercial gets hilarious.</p>

<span class="mt-enclosure mt-enclosure-image"><img alt="sears-no-audio.jpg" src="http://www.mollerus.net/tom/blog/images/sears-no-audio.jpg" width="280" height="203" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;"/></span>]]>
      <![CDATA[<p>When you first roll over it, the ad expands to twice its previous width so that you can see a selection of Sears yard tools. But the ad's audio controls in the upper-right-hand corner are still set to mute, which is considerate on the part of the advertiser. And the guy in the dandelion getup? He's furiously gesturing and miming to you to turn on the sound. He also looks smug and acts annoyed with you, just like you'd expect a lawn weed to act if you could speak to them.</p>

<p>Once you turn on the sound is when the real fun starts. The dandelion is hilarious, introducing himself as "wisecrack weed. You know what weeds are really good at?  Being annoying. [Makes a noise like Curly of the <em>Three Stooges</em>]".  Then he practically dares you to "whack" him with one of the Sears tools. The great thing is that as you look over the tools to choose one, he manages to makes sarcastic comments to you while talking up the tools. I just love how the video "reacts" to your own actions. When you finally select a tool, there's a final bit of great video where the weed and the yard tool fight interspersed with cries of "Ow, I want to have kids someday!" or "Thanks, I could use a massage. Ok, that's a little hard." (you can guess who wins).</p>

<p>I don't know how long the ad will be hosted over at HGTV or on Pointroll's network. Give it a play, I think you'll like it as much as I did!</p>

<span class="mt-enclosure mt-enclosure-image"><img alt="sears-choose-your-weapon.jpg" src="http://www.mollerus.net/tom/blog/images/sears-choose-your-weapon.jpg" width="500" height="248" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;"/></span>]]>
   </content>
</entry>

<entry>
   <title>Unit testing (and beers) with the Boston CFUG</title>
   <link rel="alternate" type="text/html" href="http://www.mollerus.net/tom/blog/2008/04/beers_with_the_boston_cfug.html" />
   <id>tag:www.mollerus.net,2008:/tom/blog//1.143</id>
   
   <published>2008-04-16T02:26:22Z</published>
   <updated>2008-04-16T02:29:59Z</updated>
   
   <summary>If you&apos;re in the Boston area and didn&apos;t make it to the ColdFusion User&apos;s Group meeting tonight on unit testing with MXUnit, you missed a good time. Marc Esher and Bill Shelton gave us an intro to unit testing, and...</summary>
   <author>
      <name>Tom Mollerus</name>
      <uri>http://www.mollerus.net/tom/blog/</uri>
   </author>
   
      <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="Office Life" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.mollerus.net/tom/blog/">
      <![CDATA[<p>If you're in the Boston area and didn't make it to the <a href="http://www.bostoncfug.org/index.cfm">ColdFusion User's Group</a> meeting tonight on <a href="http://www.bostoncfug.org/index.cfm?event=showMeeting&meetingID=ADD6C48A-D61B-FA8C-87C331C527E86067">unit testing with MXUnit</a>, you missed a good time. Marc Esher and Bill Shelton gave us an intro to unit testing, and a few of us went out afterwards to <a href="http://dunngaherins.com/">Dunn-Gaherin's</a> to toss a few back with our visiting ColdFusion evangelist, Adam Lehman. Adam kindly said a few words about Adobe's current efforts with CF, and also raffled off a copy of ColdFusion Server.</p>

<p>Be sure to make it to the next meeting, when yours truly will be presenting on version-tracking your code with Subversion.  I'll be raffling off a free copy of Subversion.  ;)</p>

<p><em>P.S. So that no one misses the joke, then shows up expecting a chance at free software and gets angry at me: I'm kidding. Subversion is already a free download.</em></p>]]>
      
   </content>
</entry>

<entry>
   <title>Spam/RBL lookup added to EmailParse.CFC</title>
   <link rel="alternate" type="text/html" href="http://www.mollerus.net/tom/blog/2008/04/rbllookup_added_to_emailparsecfc.html" />
   <id>tag:www.mollerus.net,2008:/tom/blog//1.142</id>
   
   <published>2008-04-14T15:25:28Z</published>
   <updated>2008-04-14T15:36:11Z</updated>
   
   <summary>I made yet another update to EmailParse.CFC last week while I was working in the code for other reasons: I&apos;ve added spam lookup on the sender&apos;s IP address courtesy of SpamHaus.org....</summary>
   <author>
      <name>Tom Mollerus</name>
      <uri>http://www.mollerus.net/tom/blog/</uri>
   </author>
   
      <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="Web Development" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.mollerus.net/tom/blog/">
      <![CDATA[<p>I made yet another update to EmailParse.CFC last week while I was <a href="http://www.mollerus.net/tom/blog/2008/04/updates_to_emailparsecfc_quotedprintable_parsing_a.html">working in the code for other reasons</a>: I've added spam lookup on the sender's IP address courtesy of SpamHaus.org.</p>]]>
      <![CDATA[<p>There are two parts to the functionality which performs the RBL lookup. First, we look through the Received: headers to find the earliest one which contains a sending IP.  Second, we take that IP address, reformat it a little, and send it off to zen.spamhaus.org to see if it's listed in their RBL.</p>

<p>Each of these steps is encapsulated in two functions:

<pre>
<code>
&lt;cffunction name="senderIPIsBlacklisted" output="true" hint="Checks an IP address against blacklist services"&gt;
	&lt;cfargument name="BLServer" default="zen.spamhaus.org" required="no" /&gt;
	&lt;cfset var index = '' /&gt;
	&lt;cfset var thisHeader = '' /&gt;
	&lt;cfset var REIPString = '(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?))' /&gt;
	&lt;cfset var IPAddress = '' /&gt;
	
	&lt;!--- Extract the sending IP from the email headers ---&gt;
	&lt;cfloop index="index" from="#ListLen(this.received, '|')#" to="1" step="-1"&gt;
		&lt;cfset thisHeader = ListGetAt(this.received, index, '|') /&gt;
		&lt;cfif thisHeader contains 'from' and thisHeader contains 'by' and ReFind(REIPString, thisHeader)&gt;
			&lt;cfset IPAddress = ReMatch(REIPString, thisHeader) /&gt;
			&lt;cfset IPAddress = IPAddress[1] /&gt;
			&lt;cfbreak /&gt;
		&lt;/cfif&gt;
	&lt;/cfloop&gt;
	
	&lt;cfreturn checkBL(IPAddress, ARGUMENTS.BLServer) /&gt;
&lt;/cffunction&gt;

&lt;cffunction name="checkBL" output="true" hint="Checks an IP address against blacklist services"&gt;
	&lt;cfargument name="IPAddress" required="yes" /&gt;
	&lt;cfargument name="BLServer" default="zen.spamhaus.org" required="no" /&gt;
	&lt;cfset var index = '' /&gt;
	&lt;cfset var IPPayload = '' /&gt;
	&lt;cfset var oBLCheck = '' /&gt;
	
	&lt;!--- Reverse the IP address and prepend it to the BL Server ---&gt;
	&lt;cfloop index="index" from="#ListLen(ARGUMENTS.IPAddress, '.')#" to="1" step="-1"&gt;
		&lt;cfset IPPayload = IPPayload & ListGetAt(ARGUMENTS.IPAddress, index, '.') & '.' /&gt;
	&lt;/cfloop&gt;
	&lt;cfset IPPayload = IPPayload & ARGUMENTS.BLServer /&gt;
	
	&lt;!--- Test the value against the blacklist ---&gt;
	&lt;cfset oBLCheck = CreateObject("java", "java.net.InetAddress") /&gt;
	&lt;cftry&gt;
		&lt;cfset oBLCheck = oBLCheck.getByName(IPPayload) /&gt;
		&lt;cfif Len(oBLCheck.getHostName())&gt;
			&lt;cfreturn true /&gt;
		&lt;cfelse&gt;
			&lt;cfreturn false /&gt;
		&lt;/cfif&gt;
		&lt;!--- If there's an error, it's probably because the IP isn't listed on the BL ---&gt;
		&lt;cfcatch&gt;&lt;cfreturn false /&gt;&lt;/cfcatch&gt;
	&lt;/cftry&gt;
	
&lt;/cffunction>
</code>
</pre>
</p>

<p>As always, you can <a href="http://www.mollerus.net/tom/projects/emailParseCFC/">download EmailParse.CFC</a> from my <a href="http://www.mollerus.net/tom/projects/">projects section</a>.]]>
   </content>
</entry>

<entry>
   <title>Updates to EmailParse.CFC: Quoted-printable parsing and Received header</title>
   <link rel="alternate" type="text/html" href="http://www.mollerus.net/tom/blog/2008/04/updates_to_emailparsecfc_quotedprintable_parsing_a.html" />
   <id>tag:www.mollerus.net,2008:/tom/blog//1.141</id>
   
   <published>2008-04-11T16:04:22Z</published>
   <updated>2008-04-11T16:15:55Z</updated>
   
   <summary>I&apos;ve posted an update and a fix to my EmailParse.CFC today: The quoted-printable parsing for text and html body parts has been corrected. When you use EmailParse.CFC to forward an email, you can&apos;t tell CF that a mailpart is encoded...</summary>
   <author>
      <name>Tom Mollerus</name>
      <uri>http://www.mollerus.net/tom/blog/</uri>
   </author>
   
      <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="Email Marketing" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.mollerus.net/tom/blog/">
      <![CDATA[<p>I've posted an update and a fix to my EmailParse.CFC today:

<ul>
     <li>The quoted-printable parsing for text and html body parts has been corrected.  When you use EmailParse.CFC to forward an email, you can't tell CF that a mailpart is encoded with quoted-printable or Base-64. So, these mailparts need to be converted back to text in order to forward them correctly.<br /><br /></li>
     <li>The parsing mechanism has been updated so that the values of the "Received" header, which often is often repeated several times in one email head, are aggregated in one property of the component. Previously, each instance of the Received header would overwrite the previous one, leaving only the last one for you to work with once the parsing was done.</li>
</ul>
</p>

<p>You can read more about my email-parsing code for ColdFusion in the <a href="http://www.mollerus.net/tom/projects/emailParseCFC/">EmailParse.CFC Project area.</a></p>]]>
      
   </content>
</entry>

<entry>
   <title>How to upgrade to CF 8.0.1 on Linux</title>
   <link rel="alternate" type="text/html" href="http://www.mollerus.net/tom/blog/2008/04/how_to_upgrade_to_cf_801_on_linux.html" />
   <id>tag:www.mollerus.net,2008:/tom/blog//1.140</id>
   
   <published>2008-04-07T14:38:05Z</published>
   <updated>2008-04-07T14:50:05Z</updated>
   
   <summary>In my previous post, I wrote about the trouble I had trying to install the CF 8.0.1 Updater for Linux. Thanks to a few good tips from Brian and Todd, I now know how to install the Updater without a...</summary>
   <author>
      <name>Tom Mollerus</name>
      <uri>http://www.mollerus.net/tom/blog/</uri>
   </author>
   
      <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.mollerus.net/tom/blog/">
      <![CDATA[<p>In my previous post, I <a href="http://www.mollerus.net/tom/blog/2008/04/problems_with_cf8_updater_for_linux.html">wrote about the trouble I had</a> trying to install the <a href="http://www.adobe.com/support/coldfusion/downloads_updates.html#cf8">CF 8.0.1 Updater for Linux</a>.  Thanks to a few good tips from Brian and Todd, I now know how to install the Updater without a problem-- but I think that I might as well post the solution since Adobe doesn't seem to realize that it may not be obvious to everyone.</p>

<p>Because the Updater has a .zip extension, I took it for a zip file. Without <em>any</em> other direction from Adobe, that seems like a reasonable course of action to me. But when you try to unzip the updater, you get errors. The solution is pretty simple: just download the updater file, change its extension from .sh to .bin, make it executable, and then call it directly:</p>

<pre><code>
# wget http://download.macromedia.com/pub/coldfusion/updates/801/coldfusion-801-lin_updater.zip
# mv coldfusion-801-lin_updater.zip coldfusion-801-lin_updater.bin
# chmod 755 coldfusion-801-lin_updater.bin
# ./coldfusion-801-lin_updater.bin
</code></pre>

<p>That will start the Updater quite nicely. Oh, and one other thing-- when the Updater finished and I went to view my site, I got a 500 error from the webserver.  A simple stop-and-start of the coldfusion_8 service did the trick:</p>

<pre><code>
# service coldfusion_8 stop
Stopping ColdFusion 8, please wait
Stopping coldfusion server..stopped
ColdFusion 8 has been stopped
# service coldfusion_8 start
Starting ColdFusion 8...
The ColdFusion 8 server is starting up and will be available shortly.
======================================================================
ColdFusion 8 has been started.
ColdFusion 8 will write logs to /opt/coldfusion8/logs/cfserver.log
======================================================================
#
</code></pre>]]>
      
   </content>
</entry>

<entry>
   <title>Problems with CF8 Updater for Linux?</title>
   <link rel="alternate" type="text/html" href="http://www.mollerus.net/tom/blog/2008/04/problems_with_cf8_updater_for_linux.html" />
   <id>tag:www.mollerus.net,2008:/tom/blog//1.139</id>
   
   <published>2008-04-04T21:15:56Z</published>
   <updated>2008-04-04T21:21:50Z</updated>
   
   <summary>I&apos;ve written in to Adobe Support about it, but I want to know if anyone else has experienced the same problem that I have with the ColdFusion 8 Updater. Whenever I download the Linux version of the Updater and try...</summary>
   <author>
      <name>Tom Mollerus</name>
      <uri>http://www.mollerus.net/tom/blog/</uri>
   </author>
   
      <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://www.mollerus.net/tom/blog/">
      <![CDATA[<p>I've written in to Adobe Support about it, but I want to know if anyone else has experienced the same problem that I have with the <a href="http://www.adobe.com/support/coldfusion/downloads_updates.html#cf8">ColdFusion 8 Updater</a>.  Whenever I download the Linux version of the Updater and try to unzip it, I see the following issue:</p>

<pre><code>
[root@elmcedar src]# unzip coldfusion-801-lin_updater.zip
Archive:  coldfusion-801-lin_updater.zip
warning [coldfusion-801-lin_updater.zip]:  69730304 extra bytes at beginning or within zipfile
  (attempting to process anyway)
 extracting: Z_/installers/LiveCycleDataservice/flex-for-cf.zip  
 extracting: Z_/installers/JNBridge/JNBridge.jar  
   ...
</code>
</pre>

<p>When I download the same file to a Windows machine, I'm told that the archive is corrupt and I don't see any files. Has anyone else experienced a similar problem, or has anyone else successfully unzipped and installed the Updater for Linux?</p>]]>
      
   </content>
</entry>

</feed>
