<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title>SiteCrafting Blah Blah Blog</title>
		<link>http://www.sitecrafting.com/blog/</link>
		<description>Latest blog entries from staff at SiteCrafting</description>
		<language>en-us</language>
		<pubDate>Thu, 09 Sep 2010 12:29:37 PDT</pubDate>
		<lastBuildDate>Thu, 09 Sep 2010 12:29:37 PDT</lastBuildDate>
		<generator>SiteCrafting, Inc. CMS</generator>

		<item>
			<title>PHP and web services (SOAP, WSDL)</title>
			<link>http://www.sitecrafting.com/blog/php-web-services-soap-wsdl/</link>
			<description>
I've worked with a number of different web services, some define their own XML through DTDs or schema's, some use SOAP, WSDL (Web Services Description Language), or a combination of both. In all cases I prefer working with the XML directly, and if you're working with WSDL, you have to figure out the XML structure for requests/responses. I recently starting using SoapUI-3.5 to help me with this. ... </description>
			<pubDate>Thu, 08 Jul 2010 16:59:00 PDT</pubDate>
		</item>
		<item>
			<title>PHP and Connecting to IBM’s AS/400</title>
			<link>http://www.sitecrafting.com/blog/php-connecting-to-ibms-as/</link>
			<description>
I'm not going to go into details into the hardships I suffered while researching ways to make a PHP database connection to an IBM AS/400 Server and the hundreds of pages and blog postings I read during the process. I'm going to concentrate on what worked for us.

 ... </description>
			<pubDate>Tue, 16 Jun 2009 08:15:00 PDT</pubDate>
		</item>
		<item>
			<title>Mapping folders to Asp.net</title>
			<link>http://www.sitecrafting.com/blog/mapping-folders-to-aspnet/</link>
			<description>
If you need to have an extensionless URL map to ASP.net 2.0, here are three options.     Add a Wildcard mapping in Internet Information Services for your website  3rd party software, such as ISAPI 2.7 or higher  Redirect 404 errors to 404.aspx and use Global.asax to capture the URL that caused the 404 error   Example:Have http://www.mywebsite.com/calendar/ map to http://www.mywebsite.com/calendar.aspx
 ... </description>
			<pubDate>Mon, 02 Mar 2009 11:30:00 PST</pubDate>
		</item>
		<item>
			<title>Visual Studio 2005 and Crystal Reports</title>
			<link>http://www.sitecrafting.com/blog/visual-studio-2005-crystal-reports/</link>
			<description>
When you install Visual Studio 2005 Professional on your development computer, you get everything you need for adding Crystal Reports to your ASP.net 2.0 project or web site. However, your web server does not have Visual Studio 2005 Professional installed on it, which it shouldn't, which means your nice new reports will not work. What should you do?
 ... </description>
			<pubDate>Fri, 02 Jan 2009 10:43:00 PST</pubDate>
		</item>
		<item>
			<title>ASP.net 2.0 and .htm or .html files</title>
			<link>http://www.sitecrafting.com/blog/aspnet-20-or-files/</link>
			<description>
We have a CMS that generates static html files and some of those pages redirect to a different web page. When that occurs the static page has a combination of meta-refresh, javascript, and a paragraph with a link to the redirected page to handle all possible scenarios. Unfortunately, this combination poses some issues, such as a blank page being displayed while the redirection is occurring, if the page is slow loading the user will see the paragraph text, and once the redirection is completed, the back-button will not work in IE. To avoid these issues, here are a couple of solutions for handling those redirects, the first is to have ASP.net serve .htm files, the second is to install ISAPI Rewrite version 2 or 3.
 ... </description>
			<pubDate>Mon, 01 Dec 2008 08:26:00 PST</pubDate>
		</item>
		<item>
			<title>PHP Passes Homeland Security Test</title>
			<link>http://www.sitecrafting.com/blog/php-passes-homeland-security/</link>
			<description>
When meeting with prospective new clients, we tell them that SiteCrafting uses PHP and MySQL as the development platform. Invariably this leads some of them to ask us what PHP and MySQL are and if they are safe and fast. Sometimes, this can lead to interesting conversations, where we explain to them why we think PHP and MySQL are safe and fast. Occasionally, there's a client who remembers reading an article 4 or 5 years ago about PHP 3 having some security issues. We refer them to current articles on PHP and mention our own experiences, but the latter argument can come across as &quot;Because we say so,&quot; which isn't a good way to get the point across.
 ... </description>
			<pubDate>Wed, 09 Jan 2008 15:51:00 PST</pubDate>
		</item>
		<item>
			<title>Why is AOL denying email?</title>
			<link>http://www.sitecrafting.com/blog/aol-denying-email/</link>
			<description>
  Email debugging is often frustrating and time consuming. There could be numerous reasons why the email you attempted to send out through your code fails: routing issues, firewalls, company servers blacklisting or blocking incoming emails, spam filters, bad DNS records, and email header requirements. The last one can definetely lead to infinite frustration, as I have experienced in the past, and was recently the cause of why AOL was denying emails generated by the php mail() function.
 ... </description>
			<pubDate>Fri, 30 Nov 2007 13:05:00 PST</pubDate>
		</item>
		<item>
			<title>Star Wars IV Animated ASCII Art</title>
			<link>http://www.sitecrafting.com/blog/star-wars-iv-animated-ascii/</link>
			<description>
  In a recent The Code Project Insider email newsletter, there was a link to an animated ASCII art for Star Wars IV, A New Hope. This brought back fond memories of a bygone era, where I cruised the ASCII based bulletin boards on my trusty Color Computer, the CoCo, and played ASCII art games, such as Voyage of the Valkyries (a game written by my Keithley Jr HS teacher Mr. Leo Christopherson*) and Star Trek, on my school's TRS-80 Model 4, trash 80. I also had the experience of entering the code for several ASCII art games from a book, where I learned that the GOTO statement is very dangerous, especially if you put in the wrong line number.
 ... </description>
			<pubDate>Wed, 28 Nov 2007 16:16:00 PST</pubDate>
		</item>
		<item>
			<title>AJAX &amp; IE Caching Issues</title>
			<link>http://www.sitecrafting.com/blog/ajax-ie-caching-issues/</link>
			<description>
I've been working on a project that involves using the jQuery javascript library and the Ajax methods. I've been happily using the Ajax jQuery.get() method to handle simple calls, such as a link that allows a user to view a list of words based on their selection, getting the contents of a tab when the user selects a tab, and finally getting the current weather after the person enters a new zip code, which is then saved to the database.  For the last operation, I got the JavaScript working great on Firefox and I thought it was working in Internet Explorer. However, after some testing, I noticed that the same weather data was being returned, even after a new zip code on the opposite coast was selected. Mmmm, I was rather baffled, especially since I've been using this jQuery.get() on the other functions, and encountered no problems like this.
 ... </description>
			<pubDate>Wed, 12 Sep 2007 16:52:00 PDT</pubDate>
		</item>
		<item>
			<title>Getting the Client’s IP Address</title>
			<link>http://www.sitecrafting.com/blog/getting-clients-ip-address/</link>
			<description>
There are a number of reasons why you may want to capture a  web user's IP address. You may want to only allow certain IP addresses to view  your website, to allow only one vote per IP address, track unique clicks on  links and buttons, a location of web users on Google Maps using MASHUP, and whatever else you can think of.Below are a couple of examples to get the client's IP address in PHP and ASP.net, along with a couple of things to watch for.
 ... </description>
			<pubDate>Thu, 09 Aug 2007 16:14:00 PDT</pubDate>
		</item>
		<item>
			<title>PHP Code in The Background Part 2</title>
			<link>http://www.sitecrafting.com/blog/php-code-in-background-part/</link>
			<description>
The blog entry How To Run PHP Code In The Background discussed how to run a php file through the command line using php's exec() command.&amp;nbsp; Recently, I needed to pass a querystring to the php file, but this is not possible through the command line. If you try to pass a querystring, the exec() command will fail.Fortunately, after some googling, I came across a forum post that mentioned how the global array $_SERVER[&quot;argv&quot;] can be used to get arguments being passed through php. I then followed the link on that page to Chapter 43. Using PHP from the command line on&amp;nbsp; the php.net website. Under the user contributed notes, I found a nice little function for getting the arguments and placing them into an array, similar to $_GET, $_POST, and $_REQUEST.
 ... </description>
			<pubDate>Fri, 27 Jul 2007 14:56:00 PDT</pubDate>
		</item>
		<item>
			<title>ASP.net 2.0 Gridview vs. Custom Coding</title>
			<link>http://www.sitecrafting.com/blog/aspnet-20-gridview-vs-custom/</link>
			<description>
I recently decided to try the Gridview control in asp.net 2.0. I read some documentation and decided that it would be very easy to implement. I started by following a step-by-step tutorial on creating a table using the Gridview control, which uses the SqlDataSource control. This step-by-step tutorial included details on how to add paging, column sorting, updating a record, and deleting a record. The tutorial can be found here. I was actually excited when I got this to work and how easy it was to do. It would only take a few minutes to create a simple, paged, sortable table where a user can delete and update records right on the page. Please note that simple is the operative word here.
 ... </description>
			<pubDate>Mon, 23 Jul 2007 17:29:00 PDT</pubDate>
		</item>
		<item>
			<title>ASP.NET 2.0 Tips - Shared Functions</title>
			<link>http://www.sitecrafting.com/blog/aspnet-20-tips-shared-functions/</link>
			<description>
When developing a recent project for ASP.NET, there was a need to migrate a large number of generic functions that were created in PHP into the .net web project. For .net 1.0, you were able to add a code page that could be used for creating a bunch of functions. However, in .net 2.0, you still had the ability to add a code page, but it had to be a class. This meant placing all of our migrated functions as methods inside a class. To use a generic function, such as generateNewPassword(), you would have to first create a new object for the class and then call the method.
 ... </description>
			<pubDate>Mon, 04 Jun 2007 11:31:00 PDT</pubDate>
		</item>
		<item>
			<title>PHP PEAR and include_path</title>
			<link>http://www.sitecrafting.com/blog/php-pear-includepath/</link>
			<description>
        When attempting to use the SMTP library from PEAR for a project, I was having problems with including the file. I kept getting a file stream error for this code:    	require 'Net/SMTP.php';I figured the problem had to be related to the include_path setting in the configuration file.
 ... </description>
			<pubDate>Wed, 18 Apr 2007 13:08:00 PDT</pubDate>
		</item>
		<item>
			<title>How To Run PHP Code In The Background</title>
			<link>http://www.sitecrafting.com/blog/to-run-php-code-in/</link>
			<description>
If you have php code that would take longer than 5 minutes to run, what would you do? You could update the configuration file for apache, or whatever web server you're running, to increase the amount of time a script page is allowed to run&amp;nbsp; and then use php's ini_set(&quot;max_execution_time&quot;, seconds) to increase the amount of time php will allow a script to run.Or you could use a session variable to mark the last position of the script and then use meta-refresh to start the script at the last position.Or you could try an asynchronous call by using php's exec command.
 ... </description>
			<pubDate>Fri, 13 Apr 2007 14:19:00 PDT</pubDate>
		</item>
		<item>
			<title>PHP cURL and SSL Connection Timeout</title>
			<link>http://www.sitecrafting.com/blog/php-curl-ssl-connection-timeout/</link>
			<description>
I've been working on a web site that uses cURL for request/response transactions and I was encountering a number of problems with empty responses from the server. This caused some frustrations, since these empty responses caused entire sections of a web page to be empty, especially on searches. Well, I couldn't have that, since people using the website would be confused on why a search for an item only worked occasionally. Trust in the web application would drop dramatically.
 ... </description>
			<pubDate>Mon, 02 Apr 2007 14:36:00 PDT</pubDate>
		</item>
		<item>
			<title>Optimizing GROUP BY  with Multiple LEFT JOINS</title>
			<link>http://www.sitecrafting.com/blog/optimizing-group-by-multiple-left/</link>
			<description>
At SiteCrafting, I enjoy working with a large number of different projects, each with their own requirements, technology, and problems to be solved, unfortunately, I sometimes forget about past solutions, until after I have finished writing a piece of code. Such is the case with a query that was eating up some serious processing time.The problem was with a GROUP BY query with LEFT JOINs to several other tables and summing up totals from those joined tables. This query was taking about 4 minutes 45 seconds to run, and worse yet, it was affecting searches which had nothing to do with that query, and probably also eating up precious memory and cpu resources. ... </description>
			<pubDate>Tue, 20 Feb 2007 14:53:00 PST</pubDate>
		</item>
		<item>
			<title>Emulating Form POST in PHP</title>
			<link>http://www.sitecrafting.com/blog/emulating-form-post-in-php-1/</link>
			<description>
Recently, I had a need to POST a form, using PHP script, to a remote url.&amp;nbsp; As I started to research a solution, I soon realized there were very few limited options.
 ... </description>
			<pubDate>Fri, 19 Jan 2007 16:52:00 PST</pubDate>
		</item>
		<item>
			<title>How To Full-Text Search</title>
			<link>http://www.sitecrafting.com/blog/to-full-search/</link>
			<description>
Here's a quick how-to on implementing Full-Text Searching using Microsoft SQL Server 2005. Originally, I planned on just using LIKE statements in the WHERE clause of an sql query, however, this would not be possible since, as I posted earlier in MS SQL Server 2005 text and ntext, that string functions do not work on text and ntext data types.That's when I remembered Joe's blog entry about Cross Table Content Search, which he also mentioned in the office a couple of times before his entry. After that, I've been wanting to implement the Cross Table Content Search, and did not get the opportunity until developing the search page for the Pierce County Library. 
 ... </description>
			<pubDate>Fri, 03 Nov 2006 10:51:00 PST</pubDate>
		</item>
		<item>
			<title>MS SQL Server 2005 text and ntext</title>
			<link>http://www.sitecrafting.com/blog/ms-sql-server-2005-ntext-1/</link>
			<description>
How I discovered that text, ntext, and image data types have been deprecated and replaced by varchar(max), ntext(max), and varbinary(max).Recently, I needed to perform a query to update a number of links for the Pierce Count Library website. I thought I could use a simple REPLACE() string function, unfortunately, this turned out not to be the case. In order to update text and ntext datatypes using a query you're limited to a few functions, in my case I would be forced to use SUBSTRING() or UPDATETEXT().
 ... </description>
			<pubDate>Fri, 27 Oct 2006 11:25:00 PDT</pubDate>
		</item>
		<item>
			<title>Group By Queries for MS SQL Server</title>
			<link>http://www.sitecrafting.com/blog/group-by-queries-ms-sql/</link>
			<description>
Back in the day, we worked on developing a specialty application that was basically a lead generation system with a database that stored over 200,000 records, with a potential for a lot more. The web application displayed numerous reports that calculated totals from disparate sources. We discovered that once our client began adding all their data that those reports were running slower and slower and slower. The problem was that we had one primary query to pull the records out, then, as the code looped through each record, several other queries were needed to calculate the disparate totals. That resulted in numerous database calls that slowed the entire web application. That's when Mike discovered MySQL Wizardry, that used the SUM(IF()) and the GROUP BY clause, problem solved.
 ... </description>
			<pubDate>Tue, 24 Oct 2006 09:41:00 PDT</pubDate>
		</item>
	</channel>
</rss>

