<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>Attention Please - Web Programming</title>
			<link>http://www.attentionplease.com/index.cfm</link>
			<description>Custom ecommerce, yellowpages, community and publishing web programming.</description>
			<language>en-us</language>
			<pubDate>Tue, 07 Sep 2010 13:38:23-0400</pubDate>
			<lastBuildDate>Thu, 16 Jul 2009 07:13:56-0400</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>michael@Attentionplease.com</managingEditor>
			<webMaster>michael@Attentionplease.com</webMaster>
			
			
			
			
			
			<item>
				<title>Thickbox Update</title>
				<link>http://www.attentionplease.com/index.cfm/2009/7/16/Thickbox-Update</link>
				<description>
				
				Thickbox 3.1 breaks with the latest versions of JQuery. I&apos;m writing this post to have the fix handy when I come across this again.&lt;p&gt;After a bit of searching around I found out that what&apos;s needed is on line 79 of the existing thickbox file you need to change the line&lt;/p&gt; &lt;dl class=&quot;code&quot;&gt;&lt;dt&gt;Existing Thickbox Code&lt;/dt&gt;&lt;dd&gt; &lt;ol&gt;&lt;li&gt;TB_TempArray = $(&quot;a[@rel=&quot;+imageGroup+&quot;]&quot;).get(); &lt;/li&gt;&lt;/ol&gt; &lt;/dd&gt;&lt;/dl&gt; &lt;p&gt;to not include the @ sign in it ie.&lt;/p&gt; &lt;dl class=&quot;code&quot;&gt;&lt;dt&gt;New Thickbox Code&lt;/dt&gt;&lt;dd&gt; &lt;ol&gt;&lt;li&gt;TB_TempArray = $(&quot;a[rel=&quot;+imageGroup+&quot;]&quot;).get(); &lt;/li&gt;&lt;/ol&gt; &lt;/dd&gt;&lt;/dl&gt; &lt;br /&gt;&lt;br /&gt;
				
				</description>
						
				
				<category>Web Programming</category>				
				
				<pubDate>Thu, 16 Jul 2009 07:13:56-0400</pubDate>
				<guid>http://www.attentionplease.com/index.cfm/2009/7/16/Thickbox-Update</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Pesky IE float issue</title>
				<link>http://www.attentionplease.com/index.cfm/2009/3/16/Pesky-IE-float-issue</link>
				<description>
				
				Every once in a while I have an IE issue where a floated div will break out of its containing div.

Here is the solution from: http://netweaver.com.au/floatHouse/

Briefly:

Use overflow: hidden or overflow: auto on the parent container. 

Probably the safest is to stick in a non floated child with a style=&quot;clear:both;&quot; on it after the floats. That makes the parent sit up and listen even for IE6. I say safest because I have seen occasional situations in IE6 where the parent does not grow height naturally for its floated
children and it will not be forced to do so by overflow instruction.
				
				</description>
						
				
				<category>Web Programming</category>				
				
				<pubDate>Mon, 16 Mar 2009 09:16:00-0400</pubDate>
				<guid>http://www.attentionplease.com/index.cfm/2009/3/16/Pesky-IE-float-issue</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Security utilities</title>
				<link>http://www.attentionplease.com/index.cfm/2008/7/9/Security-utilities</link>
				<description>
				
				http://content.zdnet.com/2346-12691_22-95490.html&lt;br /&gt;
				
				</description>
						
				
				<category>Web Programming</category>				
				
				<pubDate>Wed, 09 Jul 2008 06:42:39-0400</pubDate>
				<guid>http://www.attentionplease.com/index.cfm/2008/7/9/Security-utilities</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>How to hack on Google Maps</title>
				<link>http://www.attentionplease.com/index.cfm/2008/4/9/How-to-hack-on-Google-Maps</link>
				<description>
				
				Unobfuscating Google Maps javascript isn&apos;t that hard. First, I copied two of Google&apos;s scripts to my server. You need the first one they have you link to, and also the script that the first one loads (this is the one in the upper-right box on Mapki). Using my text editor, I added line breaks to both after semicolons and end-braces. The first script isn&apos;t actually obfuscated, just minified, and it&apos;s not that long, so I actually went on to format the whole thing. Once I could read the first script, I only had to make two changes to it in order for both scripts to work from my server: I had to tweak the call to the second script from the first so it pointed to my version (in GLoadMapsScript at the bottom), and I had to comment out the key validation check (in GLoad). Then I linked to my version of the first script from my HTML page, and it worked like normal! Blam.

With Google&apos;s scripts under the reigns, Firebug&apos;s debugger made it trivial to isolate the function I wanted. I triggered a call to the function in a third script, and placed Firebug&apos;s special debugger keyword before the function call. That gave me a runtime debugger with which to simply step into Google&apos;s function. And with the script on my own server, I could then isolate the function in my text editor, format it, and poke it until it made sense. 

http://javascript.about.com/library/blformat.htm
				
				</description>
						
				
				<category>Web Programming</category>				
				
				<pubDate>Wed, 09 Apr 2008 21:38:00-0400</pubDate>
				<guid>http://www.attentionplease.com/index.cfm/2008/4/9/How-to-hack-on-Google-Maps</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Highslide JS  - Javascript thumbnail viewer</title>
				<link>http://www.attentionplease.com/index.cfm/2008/4/9/Highslide-JS---Javascript-thumbnail-viewer</link>
				<description>
				
				I&apos;m pretty dedicated to jquery, but I would consider using this slick javascript viewer in a future project.

http://vikjavev.no/highslide/
				
				</description>
						
				
				<category>Web Programming</category>				
				
				<pubDate>Wed, 09 Apr 2008 20:29:00-0400</pubDate>
				<guid>http://www.attentionplease.com/index.cfm/2008/4/9/Highslide-JS---Javascript-thumbnail-viewer</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Google Map API Tutorial</title>
				<link>http://www.attentionplease.com/index.cfm/2008/3/30/Google-Map-API-Tutorial</link>
				<description>
				
				Here is a Google Maps tutorial that I have found very helpful over the last couple years:

http://econym.googlepages.com/index.htm
				
				</description>
						
				
				<category>Web Programming</category>				
				
				<pubDate>Sun, 30 Mar 2008 09:13:00-0400</pubDate>
				<guid>http://www.attentionplease.com/index.cfm/2008/3/30/Google-Map-API-Tutorial</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Remote scripting with hidden Frames</title>
				<link>http://www.attentionplease.com/index.cfm/2008/3/19/Remote-scripting-with-hidden-Frames</link>
				<description>
				
				Ajax is a nice feature, for instance when only some part of a page must be changed, one can populate some internal DIV instead of reloading the entire page.

One solution is not to use Ajax. Use the &quot;Remote scripting with hidden Frames&quot; instead.

In your main template
------------------------
1. add an iframe in your main page, that will not display ie:

    &lt;iframe name=&quot;historyFrame&quot; id=&quot;historyFrame&quot; width=0 height=0
       src=&quot;put your initial template here&quot;
       style=&quot;visibility: hidden; inline: none;&quot;&gt;
     &lt;/iframe&gt;

2. target every link that will call a sub-page to the hidden iframe, ie:

     &lt;A HREF=&quot;subPage.cfm&quot; TARGET=&quot;historyFrame&quot;&gt;

3. have some empty DIV that will receive the content for all sub pages:

     &lt;DIV ID=&quot;subPage&quot;&gt;&lt;/DIV&gt;

4. just have this script in your main template:

    &lt;SCRIPT&gt; function historyFrameLoaded (historyFrame)   {   document.getElementById(&apos;subPage&apos;).innerHTML = historyFrame.document.body.innerHTML;   }


In all subpage templates:
---------------------------------
&lt;BODY onload=&quot;parent.historyFrameLoaded(this)&quot;&gt; ... any HTML goes here... &lt;/BODY&gt;


THAT&apos;S IT! - only 2 lines of Javascript. - works with ANY browser. - back and forward buttons fully supported
				
				</description>
						
				
				<category>Web Programming</category>				
				
				<pubDate>Wed, 19 Mar 2008 07:31:00-0400</pubDate>
				<guid>http://www.attentionplease.com/index.cfm/2008/3/19/Remote-scripting-with-hidden-Frames</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Jquery Plugins</title>
				<link>http://www.attentionplease.com/index.cfm/2007/10/2/Jquery-Plugins</link>
				<description>
				
				I use JQuery as my JavaScript library and find myself constantly searching to find my favorite widgets. I thought I&apos;d create a quick reference to help me find them in the future:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Standard&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ClueTip - http://plugins.learningjquery.com/cluetip/demo/&lt;/li&gt;&lt;li&gt;Heartbeat - http://jquery.com/plugins/project/Heartbeat&lt;/li&gt;&lt;li&gt;Toggle Elements - &lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;http://jquery.andreaseberhard.de/toggleElements/&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Expander - http://dev.jquery.com/wiki/Plugins/Xpander&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;Layout:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;News Scroll - http://jdsharp.us/jQuery/plugins/jdNewsScroll/&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Thickbox&lt;/li&gt;&lt;ul&gt;&lt;li&gt;code - http://jquery.com/demo/thickbox/&lt;br /&gt;&lt;/li&gt;&lt;li&gt;improvements - http://www.stilbuero.de/2006/11/06/a-smoother-thickbox-with-less-code/&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Accordion - http://bassistance.de/jquery-plugins/jquery-plugin-accordion/ &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Tables&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Table Sorter - http://tablesorter.com/docs/&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Menu&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Pull down/out - http://users.tpg.com.au/j_birch/plugins/superfish/&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tabs - http://www.stilbuero.de/jquery/tabs/&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tree View - http://bassistance.de/jquery-plugins/jquery-plugin-treeview/&lt;/li&gt;&lt;li&gt;Fisheye menu - http://interface.eyecon.ro/docs/fisheye&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Forms:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Autocomplete&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;http://www.dyve.net/jquery/?autocomplete&lt;/li&gt;&lt;li&gt;http://jquery.bassistance.de/autocomplete/&lt;/li&gt;&lt;li&gt;http://interface.eyecon.ro/demos/autocompleter.html - nice!&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Time Picker - http://code.google.com/p/jquery-timepicker/&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Widgets&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Slideshow - http://interface.eyecon.ro/demos/slideshow.html&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Other fun stuff:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;fastfind menu - http://labs.activespotlight.net/jQuery/menu_demo.html# - very cool&lt;/li&gt;&lt;li&gt;Carousel - http://www.activespotlight.com/?src=LABS_FF&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Horizontal Accordion - http://dev.portalzine.de/index?/Horizontal_Accordion--print&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;
				
				</description>
						
				
				<category>Web Programming</category>				
				
				<pubDate>Tue, 02 Oct 2007 05:27:45-0400</pubDate>
				<guid>http://www.attentionplease.com/index.cfm/2007/10/2/Jquery-Plugins</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>SWFUpload</title>
				<link>http://www.attentionplease.com/index.cfm/2007/8/17/SWFUpload</link>
				<description>
				
				I&apos;ve been searching for quite some time for a really good photo upload utility. I have a really great multi-file upload for use in creating photo galleries. What I&apos;m missing is a widget I can use for public pages that will upload a single photo and display it inline.
				 [More]
				</description>
						
				
				<category>Web Programming</category>				
				
				<pubDate>Fri, 17 Aug 2007 09:25:00-0400</pubDate>
				<guid>http://www.attentionplease.com/index.cfm/2007/8/17/SWFUpload</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Blueprint CSS framework</title>
				<link>http://www.attentionplease.com/index.cfm/2007/8/10/Blueprint-CSS-framework</link>
				<description>
				
				Blueprint is a CSS framework to produce easy, flexible grid layouts. Since it is still quite new there is no information on how well it stands up across browsers yet. However, it looks really interesting.&lt;br /&gt;&lt;br /&gt;http://code.google.com/p/blueprintcss/&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;http://bjorkoy.com/blueprint/&lt;br /&gt;
				
				</description>
						
				
				<category>Web Programming</category>				
				
				<pubDate>Fri, 10 Aug 2007 09:26:39-0400</pubDate>
				<guid>http://www.attentionplease.com/index.cfm/2007/8/10/Blueprint-CSS-framework</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>StripHTML()</title>
				<link>http://www.attentionplease.com/index.cfm/2007/8/1/StripHTML</link>
				<description>
				
				&lt;br /&gt;&amp;lt;code&amp;gt;&lt;br /&gt;REReplaceNoCase(str,&quot;(&amp;lt;|^)[^&amp;gt;]*(&amp;gt;|$)&quot;,&quot;&quot;,&quot;ALL&quot;)&lt;br /&gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
				
				</description>
						
				
				<category>Web Programming</category>				
				
				<pubDate>Wed, 01 Aug 2007 23:59:14-0400</pubDate>
				<guid>http://www.attentionplease.com/index.cfm/2007/8/1/StripHTML</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Geocode by IP</title>
				<link>http://www.attentionplease.com/index.cfm/2007/7/8/Country-by-IP-using-GeoLite</link>
				<description>
				
				Several of my web programs require knowing (guessing) a person&apos;s location based on their IP address. My Dating and Community sites have been getting hit hard lately by those spammers from Africa and parts of Asia and I would like the option of banning specific countries. I think it would also be nice if my Classified Ads and Yellowpages Directory program would default to show actual local listings to the visitor immediately.

Here are a few ways I am using to determine location:


&lt;h3&gt;WEB SERVICE&lt;/h3&gt;

http://www.hostip.info provides a web service to determine country and potentially city, state, and lon/lat. I&apos;m not sure how well it works, but it may be worth a try.

Just pass a http request:
  http://api.hostip.info/get_html.php?ip=12.215.42.19&amp;position=true

to get:

  Country: UNITED STATES (US)
  City: Sugar Grove, IL
  Latitude: 41.7696
  Longitude: -88.4588



&lt;h3&gt;DATABASE LOOKUP&lt;/h3&gt;

You can use an internal database lookup to determine a user&apos;s country by their IP address using the free geoIP database that Maxmind publishes on a monthly basies.

First download the &lt;a href=&quot;http://www.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip&quot; target=&quot;_blank&quot;&gt;geoIP Lite datbase from Maxmind&lt;/a&gt;. (CSV format)

Name the table &quot;geoip&quot; and the columns &quot;Begin_IP,End_IP,Begin_Num,End_Num,CountryCode,Country&quot;. If you are using MSSQL that the _num columns are of datatype BIGINT.

After that copy/paste the following component and save this as geoip.cfc

&lt;code&gt;
&lt;cfcomponent&gt;
    &lt;cffunction name=&quot;ip2country&quot; access=&quot;remote&quot; returntype=&quot;query&quot;&gt;
        &lt;cfargument name=&quot;ip&quot; required=&quot;yes&quot; type=&quot;string&quot;&gt;
        &lt;cfset var q = &quot;&quot;&gt;

        &lt;cfset Aip = ListToArray(arguments.ip,&apos;.&apos;)&gt;
        &lt;cfset Aip = ((Aip[1] * 16777216) + (Aip[2] * 65536) + (Aip[3] * 256) + (Aip[4]))&gt;

        &lt;cfquery name=&quot;q&quot; datasource=&quot;-- YOUR DSN ---&quot;&gt;
            SELECT CountryCode,Name
            FROM geoip
            WHERE begin_num &lt;= &lt;cfqueryparam cfsqltype=&quot;CF_SQL_BIGINT&quot; value=&quot;#Aip#&quot;&gt;
            AND end_num &gt;= &lt;cfqueryparam cfsqltype=&quot;CF_SQL_BIGINT&quot; value=&quot;#Aip#&quot;&gt;
        &lt;/cfquery&gt;
       
        &lt;cfreturn q&gt;
    &lt;/cffunction&gt;
&lt;/cfcomponent&gt;
&lt;/code&gt;

To test:

&lt;code&gt;
&lt;cfinvoke component=&quot;geoip&quot; method=&quot;ip2country&quot; returnvariable=&quot;qCountry&quot;&gt;
    &lt;cfinvokeargument name=&quot;ip&quot; value=&quot;#cgi.remote_addr#&quot; /&gt;
&lt;/cfinvoke&gt;

&lt;cfdump var=&quot;#qCountry#&quot;&gt;
&lt;/code&gt;


Thanks to  http://www.mximize.com/getting-country-by-ip-based-on-geolite
				
				</description>
						
				
				<category>Web Programming</category>				
				
				<pubDate>Sun, 08 Jul 2007 09:42:00-0400</pubDate>
				<guid>http://www.attentionplease.com/index.cfm/2007/7/8/Country-by-IP-using-GeoLite</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>StoreBuilder26.com, more than just an ecommerce solution!</title>
				<link>http://www.attentionplease.com/index.cfm/2007/6/13/StoreBuilder26com-more-than-just-an-ecommerce-solution</link>
				<description>
				
				&lt;a href=&quot;http://www.StoreBuilder26.com&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://www.attentionplease.com/images/storebuilder26_screen.jpg&quot; hspace=&quot;6&quot; align=&quot;left&quot;&gt;&lt;/a&gt;Our e-commerce program has a new web site -- &lt;a href=&quot;http://www.StoreBuilder26.com&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;www.StoreBulilder26.com&lt;/b&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
StoreBuilder26 is the result of developing hundreds of custom e-commerce web sites over the last 8 years. Its features go WAY beyond a standard shopping cart and catalog system.&lt;br&gt;
&lt;br&gt;
Although complete store customization is available, the StoreBuilder26.com is specifically designed for web site owners who are looking for a low-cost e-commerce solution that allows them to open their store very quickly and inexpensively without sacrificing advanced features.&lt;br&gt;
&lt;br&gt; 
StoreBuilder26 has many features found in almost no other e-commerce solutions in this price range. First, it has an incredible set of Search Engine Optimization (SEO) features built right in along with a complete web site publishing system. Stores with additional rich content get much better search engine rankings! It has full support for drop shippers, recurring membership sales, product reviews, multi-language, multi-currency, gift registries, side-by-side product comparisons, etc.&lt;br&gt; 
&lt;br&gt; 
What sets StoreBuilder26 apart from all the competition is that it comes with great support. Most low cost store solutions are completely self-serve. Setting up any web store can be a time consuming and difficult task. The StoreBuilder26 staff will work with you to customize the look of your store, set everything up and train you on how to use the product.&lt;br&gt;
&lt;br&gt;
If you are looking to open an ecommerce site or upgrade your current store, please call David at 954-495-8898 to find out more about StoreBuilder26.com&lt;br&gt;
				
				</description>
						
				
				<category>Web Programming</category>				
				
				<pubDate>Wed, 13 Jun 2007 07:52:00-0400</pubDate>
				<guid>http://www.attentionplease.com/index.cfm/2007/6/13/StoreBuilder26com-more-than-just-an-ecommerce-solution</guid>
				
			</item>
			
		 	
			</channel></rss>