<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>cpradio's tidbits of information &#187; PHP</title>
	<atom:link href="http://cpradio.org/categories/code/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://cpradio.org</link>
	<description>my life experience and information that may help others find what they need</description>
	<lastBuildDate>Sat, 05 Sep 2009 12:38:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>JSON versus XML</title>
		<link>http://cpradio.org/work/json-versus-xml/</link>
		<comments>http://cpradio.org/work/json-versus-xml/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 00:01:00 +0000</pubDate>
		<dc:creator>cpradio</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://cpradio.org/work/json-versus-xml/</guid>
		<description><![CDATA[There has been much debate on using XML or JSON with your AJAX, but in my mind, the debate is pointless.  Both are nice, one is quicker, one is slower.  However, when it comes to development pick what you know best and what you can implement/maintain easiest.
If you do this, you are guaranteed [...]]]></description>
			<content:encoded><![CDATA[<p>There has been much debate on using XML or JSON with your AJAX, but in my mind, the debate is pointless.  Both are nice, one is quicker, one is slower.  However, when it comes to development pick what you know best and what you can implement/maintain easiest.</p>
<p>If you do this, you are guaranteed the following:</p>
<ol>
<li>It is easy to maintain and understand the code you wrote months later</li>
<li>Chances are your application will not be the quickest in response</li>
<li>You will make use of techniques you fully understand than trying to adapt ones that you are unfamiliar with and may implement wrong</li>
</ol>
<p>So how does JSON differ from returning XML in your AJAX requests?  Lets first look at the advantages of XML.</p>
<ol>
<li>Standardized and easily serialized into via .NET</li>
<li>The XML is easy to read all within itself</li>
<li>You can make use of XSLT, DTDs, etc</li>
</ol>
<p>How about disadvantages of XML?</p>
<ol>
<li>It is slow in comparison to JSON</li>
<li>It can be clumsy when not designed properly</li>
</ol>
<p>Now for the advantages of JSON:</p>
<ol>
<li>It is faster than XML to parse in JavaScript</li>
<li>There are addin&#8217;s you can install in .NET or a library in PHP to serialize a JSON string from an object</li>
<li>It is hard to make this clumsy as it is based on the Object Design</li>
</ol>
<p>And the disadvantages of JSON:</p>
<ol>
<li>It is harder to read the serialized output</li>
<li>You can&#8217;t use XSLT, DTDs, or something of the sort to validate or style the request</li>
</ol>
<p>As for myself, I am a JSON person.  I didn&#8217;t used to be though.  My original AJAX applications were focused around XML primarily because I could make use of an XSLT and I always validated against a schema.  However, JSON has won me over due to speed.  JSON&#8217;s speed is just ridiculously fast and it showed when I converted a major application over to it.  I saved nearly a third of the time it took to do a fairly simple task.</p>
<p>However, pick the poison that you understand most, otherwise, it could have detrimental affects.</p>
]]></content:encoded>
			<wfw:commentRss>http://cpradio.org/work/json-versus-xml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Refactoring &#8211; What a time-saver</title>
		<link>http://cpradio.org/work/refactoring-saves-you-time-in-many-ways/</link>
		<comments>http://cpradio.org/work/refactoring-saves-you-time-in-many-ways/#comments</comments>
		<pubDate>Mon, 17 Sep 2007 02:52:52 +0000</pubDate>
		<dc:creator>cpradio</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[kiosk]]></category>

		<guid isPermaLink="false">http://cpradio.org/work/refactoring-saves-you-time-in-many-ways/</guid>
		<description><![CDATA[This weekend has been a nice relaxing weekend for me and so when I got back home this afternoon (on Sunday the 16th), I was in a great mood to refactor some of my kiosk code base.  Now, I should start by saying, I decided to refactor code instead of write new code tonight [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend has been a nice relaxing weekend for me and so when I got back home this afternoon (on Sunday the 16th), I was in a great mood to refactor some of my kiosk code base.  Now, I should start by saying, I decided to refactor code instead of write new code tonight because I wanted to lessen the number of files that needed to load in the Ajax functionality.</p>
<p>Kiosk, uses Ajax in interesting ways to provide a better experience, but with that, the Ajax applications were built as each page was assembled.  This caused functionality across pages to get a bit messy or functionality shared across pages to get thrown into individual files.  Well the problem with individual files, is that is yet another file for the browser to download.</p>
<p>So before I get any further, let me discuss refactoring and how it can solve many performance binds your application may be experiencing.</p>
<p>To start off, refactoring is taking common code, or code that is used across pages or frequently and moving it to a more global location so it can be called easier and the code only has to be written once.</p>
<p>So where can this help?</p>
<ul>
<li>First of all, by refactoring code into a single global file, you can limit the number of HTTP requests if that file is accessible via the web.  Since your common code is in a single file, the browser only has to fetch that code once, and will then likely cache that file for each page after, giving you even better performance.</li>
<li>Secondly, by placing the common code in a global method/function, you are writing less code.  As now when you need to call that code on your second page, it is already written, so just call the function.  Otherwise, you would need to write the code all over again.</li>
<li>Thirdly, less code equals smaller files.  By refactoring your code, you can have smaller file sizes and in turn that is quicker to download, quicker to parse, and quicker to execute.</li>
</ul>
<p>Now in my situation, I took about 4 JavaScript files and combined them into a single file adequately named &#8220;general.js&#8221;.  The file contained code to automatically log the user out after a set amount of inactivity in the UI (User Interface).  Secondly, it contained the version checking mechanism calls that see if they are running the latest version of the software.  Unfortunately, those are the only two things it does right now, but as the project progresses, I am sure more utilities will get added in this file.</p>
<p>My next task is to refactor the Data Grid functionality so it is 1) XHTML, 2) easy to build complex columns with complex rows, 3) customizable by identifying StyleSheet classes for the columns and rows.  Hopefully, I can get my head around this idea and get it working with little trouble to the programmer.</p>
<p>So what can you think of that you need to refactor?  What performance gains do you suspect you will achieve with the refactoring you do?  Any performance markers?</p>
]]></content:encoded>
			<wfw:commentRss>http://cpradio.org/work/refactoring-saves-you-time-in-many-ways/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax versus Socket Connections</title>
		<link>http://cpradio.org/code/javascript/ajax-versus-socket-connections/</link>
		<comments>http://cpradio.org/code/javascript/ajax-versus-socket-connections/#comments</comments>
		<pubDate>Wed, 15 Aug 2007 23:55:02 +0000</pubDate>
		<dc:creator>cpradio</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://cpradio.org/code/javascript/ajax-versus-socket-connections/</guid>
		<description><![CDATA[Ever have to argue Ajax versus Socket Connections?  Me either.  Today, I had the chance to talk about the differences, their advantages and their disadvantages.
Ajax has many advantages.  You do not have to parse content/page headers, you can parse XML, you can build objects out of JSON serializations, and above all there [...]]]></description>
			<content:encoded><![CDATA[<p>Ever have to argue Ajax versus Socket Connections?  Me either.  Today, I had the chance to talk about the differences, their advantages and their disadvantages.</p>
<p>Ajax has many advantages.  You do not have to parse content/page headers, you can parse XML, you can build objects out of JSON serializations, and above all there are a lot of frameworks that are cross-browser friendly so you do not have to worry about writing the framework yourself.</p>
<p>A Socket Connections&#8217; advantages are much smaller in my opinion.  There is no browser limitations, which is a major advantage, keeping it browser independent.  It can support any type of response content, JSON serializations, XML, HTML, strings, etc.</p>
<p>So what about the disadvantages?  Ajax has the complications of cross-browser friendliness, but that has been removed by frameworks doing all that hard work for us.  Ajax&#8217;s biggest disadvantage is probably the lack of JavaScript standards being followed by each browser.  Though this is removed by using popular frameworks, it matters for the rest of your JavaScript code to setup the Ajax event.</p>
<p>So how about Socket Connections?  Socket Connection have the complication of trying to figure out where the response data starts and where the response headers end.  Secondly, they are language dependent.  Not all languages support sockets and some may make it very complicated to use them though, whereas, Ajax is getting easier and easier to use.</p>
<p>What are your thoughts?</p>
]]></content:encoded>
			<wfw:commentRss>http://cpradio.org/code/javascript/ajax-versus-socket-connections/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Consolidate or to Not Consolidate your Projects</title>
		<link>http://cpradio.org/work/consolidate-or-to-not-consolidate-your-projects/</link>
		<comments>http://cpradio.org/work/consolidate-or-to-not-consolidate-your-projects/#comments</comments>
		<pubDate>Mon, 06 Aug 2007 21:39:40 +0000</pubDate>
		<dc:creator>cpradio</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://cpradio.org/work/consolidate-or-to-not-consolidate-your-projects/</guid>
		<description><![CDATA[Today we had a meeting going over a few future projects and it was brought up we could integrate the new project into an existing project that had 80% the same functionality.  However, there comes a lot more complication with this short of merge.
For example, what happens if two people are working in the [...]]]></description>
			<content:encoded><![CDATA[<p>Today we had a meeting going over a few future projects and it was brought up we could integrate the new project into an existing project that had 80% the same functionality.  However, there comes a lot more complication with this short of merge.</p>
<p>For example, what happens if two people are working in the same project on two different pieces.  The first person is finished with their piece and checks it in happy as can be, while the second person finishes later and his change needs to go in ASAP, while the first person&#8217;s change can&#8217;t go in till the end of the month.  Now what?</p>
<p>Now in a perfect world, one would state that the first person shouldn&#8217;t check in their code till it can go in, or person two would get the previous version of the first person&#8217;s code.</p>
<p>At work we decided to keep the projects separate and not consolidate them even though it would share 80% of the functionality for the UI.  But in the end, it allows us to not step on each others toes.</p>
<p>So my question is, how do you handle this?</p>
]]></content:encoded>
			<wfw:commentRss>http://cpradio.org/work/consolidate-or-to-not-consolidate-your-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>File/Project Naming</title>
		<link>http://cpradio.org/code/javascript/fileproject-naming/</link>
		<comments>http://cpradio.org/code/javascript/fileproject-naming/#comments</comments>
		<pubDate>Tue, 31 Jul 2007 01:38:04 +0000</pubDate>
		<dc:creator>cpradio</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://cpradio.org/code/javascript/fileproject-naming/</guid>
		<description><![CDATA[File and project naming has been a massive debate at work lately as we teach newer employees the greatness of OOP.  On my way home, I had an epiphany, and so I just had to write it out.  So here is the best file naming reason/description you will ever read:
Your file names should [...]]]></description>
			<content:encoded><![CDATA[<p>File and project naming has been a massive debate at work lately as we teach newer employees the greatness of OOP.  On my way home, I had an epiphany, and so I just had to write it out.  So here is the best file naming reason/description you will ever read:</p>
<p>Your file names should describe your work without the developer having to open it to figure out what it does.  In OOP, you should define your parts/pieces first, and then your object in individual classes.  For example, you may find a class for Driver, Vehicle, Liabilities, and then one for Quote that incorporate the previous three.  The names are meaningful and you do not need to even see the code to understand what is in them.</p>
<p>Now that file naming is covered, how about project naming?  In all honesty, I am less concerned with project names than file names.  But, they are important none-the-less.  Your projects should describe your collection of classes in as few words as you can muster together.  For example, the above files might be under the project name &#8220;QuoteEngine&#8221;.  Why?  Cause they are the pieces that allow a quote to process and are likely to include the methods for actually submitting a quote as well.</p>
<p>Should your projects include acronyms such as DABL (Data Access/Business Layer)?  I personally do not think so.  If you have to physically describe it is the (Data Access/Business Layer) then your tiers are not neatly organized enough and you need to separate them better, or better define your classes to help resemble which layer you are in.</p>
<p>Well that is my two cents for the evening.</p>
]]></content:encoded>
			<wfw:commentRss>http://cpradio.org/code/javascript/fileproject-naming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Analyze and Re-Analyze.</title>
		<link>http://cpradio.org/code/net/analyze-and-re-analyze/</link>
		<comments>http://cpradio.org/code/net/analyze-and-re-analyze/#comments</comments>
		<pubDate>Wed, 18 Jul 2007 22:01:40 +0000</pubDate>
		<dc:creator>cpradio</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://cpradio.org/code/net/analyze-and-re-analyze/</guid>
		<description><![CDATA[Today, like most days, my day was spent solving problems that were not mine to begin with, but became either too complex or the person just needs someone to hash it out with.  Either way, I enjoy these opportunities.
The majority of problems start with the lack of analysis, or the complication the analysis turns [...]]]></description>
			<content:encoded><![CDATA[<p>Today, like most days, my day was spent solving problems that were not mine to begin with, but became either too complex or the person just needs someone to hash it out with.  Either way, I enjoy these opportunities.</p>
<p>The majority of problems start with the lack of analysis, or the complication the analysis turns up.  This afternoon, I was meeting with one of our tech system guys going over a support issue we received when a co-worker dropped by to hash out his new issue, which brings me to this blog post.</p>
<p>Analyze, Analyze, and then Analyze again!  Analysis is a major part of every project and it something that should be taken seriously and completely is at Central (where I work).  My co-worker had done quite a bit but had major questions about the project and the path he found best so far, primarily, would the data set he wanted to achieve be too large to handle efficiently.  So, considering one of our tech system guys was already at my desk, and I am a bit of a SQL genius myself, we hashed it out.</p>
<p>We estimated that in the worst case scenario we would be approaching 15 MB of data, which is fairly large.  However, during our discussion <em><strong>we also established that the data would only need to be pulled out of the database once per day.</strong></em>  Now that is very important!  Think about it, 15 MB is nothing if all you need it is one time.  If you have to call it 25 times a day, that makes a hell of a difference.</p>
<p>However, the code path my co-worker choose would have made him pull out the data 25 times.  Analysis with others, or re-analyzing your project due to the questions you are left with should be taken seriously.  If the data your application is going to use will never change for 24 hours, then program it so it take advantage of this tidbit.  Persist that data outside of your storage solution to reuse throughout the day so you do not have to hit up the server to retrieve that data over and over again (in a sense, cache it).</p>
<p>If the data might exceed a decent size to cache (ie: 15 MB), then write it to a flat file and open, read, and close immediately thereafter.  That way, you still only pull the data from SQL Server once, and for the remainder of the day you work with the flat file.</p>
<p>By all means, keep your co-workers informed and when questions arise, talk out your solution with them to see if they have any better ideas, or agree with your approach.</p>
]]></content:encoded>
			<wfw:commentRss>http://cpradio.org/code/net/analyze-and-re-analyze/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Separate Design and Code!</title>
		<link>http://cpradio.org/code/net/separate-design-and-code/</link>
		<comments>http://cpradio.org/code/net/separate-design-and-code/#comments</comments>
		<pubDate>Sat, 14 Jul 2007 02:39:51 +0000</pubDate>
		<dc:creator>cpradio</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://cpradio.org/code/net/separate-design-and-code/</guid>
		<description><![CDATA[I can&#8217;t say this often enough, SEPARATE YOUR DESIGN AND YOUR CODE!  If you want easy maintenance, if you want to be able to change your design and not have to recode a LOT of things, SEPARATE THEM!
This evening Mark and I were having a bit of a debate, he was asking how to [...]]]></description>
			<content:encoded><![CDATA[<p>I can&#8217;t say this often enough, SEPARATE YOUR DESIGN AND YOUR CODE!  If you want easy maintenance, if you want to be able to change your design and not have to recode a LOT of things, SEPARATE THEM!</p>
<p>This evening Mark and I were having a bit of a debate, he was asking how to execute .NET code in the HTML designer, and I personally wanted to say &#8220;It&#8217;s not possible&#8221;, but went ahead and told  him to use < % code here %>.   Of course, I then proceeded to warn him of the danger that will present in the future and the fact that it is bad practice to do such.</p>
<p>So let me explain to everyone why it is necessary to separate code and design.</p>
<ol>
<li><strong>Reusability</strong><br />
Let me present fact number one, by separating design and code, you are forced to write code in a more reusable manner.  For example, with the separation you are likely to write a placeholder on your page, that you will use the CodeBehind page to write the output (or for PHP, in a class you call).  </p>
<p>Now the idea is to build an object for your data, something that can be reused by numerous applications.  Yes, I know what you are thinking, this data will never need to be reused, why can&#8217;t I just write the code in the design?  You say it can&#8217;t be reused now, but just give it a few months and when someone asks how to access your data, you will feel pitiful.  ALWAYS write your code as if everyone would want to use it!  Anyways, you have your object of data, and then it is up to each application to determine how they wish to display it.  Thus, if you do not incorporate it directly into the design, it is entirely reusable in any fashion, form, design, etc.  Thus point number 1.</li>
<li><strong>Maintenance &#8211; Updating</strong><br />
By placing your code in a separate file from your design, you can achieve easy maintenance and updating of the design without having to rewrite significant pieces of code.  How site designs has your company been through?  Are they looking into going into Web 2.0?  Will they likely rebrand if bought?  Will users complain about the complexity of the design and seek an alternate way of access their data?  All these are things to consider at design time and at code time.  </p>
<p>How cool would it be if all you had to do was alter the CSS and the HTML to implement the new design, all of this is possible when you separate Code and Design.  At work, our sites are made just like that, and I am damn proud about it too.  The fact I can just a few lines in the stylesheet and show off an entirely new looking site just rocks!  Unfortunately, very few know this and every so often write code that doesn&#8217;t quite flow with what I try to achieve.</li>
<li><strong>It&#8217;s Easy!</strong><br />
Why not separate design and code?  If you are using Visual Studio for .NET, you are an IDIOT not to separate them.  Visual Studio makes it easy!  Binding objects, datasets, etc to just about every possible control you can think of, and you aren&#8217;t doing this.  You think it is overkill?  Well its&#8217; not.  It was designed this way intentionally to ensure the practice of separating design and code get utilized into your coding lifestyle.  So if you feel it is overkill, GOOD.  You are doing exactly what the developers of Visual Studio wanted you to do.</li>
</ol>
<p>There are many more reasons, and everyone typically has a personal reason for separating code and design, what are yours?  Why do you do it, or not do it? </p>
]]></content:encoded>
			<wfw:commentRss>http://cpradio.org/code/net/separate-design-and-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fun with Kiosk</title>
		<link>http://cpradio.org/code/ajax/fun-with-kiosk/</link>
		<comments>http://cpradio.org/code/ajax/fun-with-kiosk/#comments</comments>
		<pubDate>Sat, 10 Feb 2007 17:20:20 +0000</pubDate>
		<dc:creator>cpradio</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[kiosk]]></category>

		<guid isPermaLink="false">http://cpradio.org/code/ajax/fun-with-kiosk/</guid>
		<description><![CDATA[I am having a blast writing some of the things in kiosk.  I have put in a few things, I am fairly certain no one has done before.  The use of AJAX is completely written throughout the application and it has allowed the application to be placed on a level like no other.
For [...]]]></description>
			<content:encoded><![CDATA[<p>I am having a blast writing some of the things in <a href="http://kiosk.cpradio.org/">kiosk</a>.  I have put in a few things, I am fairly certain no one has done before.  The use of AJAX is completely written throughout the application and it has allowed the application to be placed on a level like no other.</p>
<p>For example, imagine having the ability to upload 1000 images for all of your products using <a href="http://cpcommerce.cpradio.org/">cpCommerce</a> or a different cart variant.  You would have to upload them individually.  Now, take a look at how <a href="http://kiosk.cpradio.org/">kiosk</a> handles it.</p>
<div><a href="http://cpradio.org/images/kiosk_image_area.jpg"><img src="http://cpradio.org/images/th_kiosk_image_area.jpg" alt="Kiosk Image Area" title="Kiosk Image Area" style="border: 1px solid #000000; margin-right: 10px;" align="left" width="300" height="199" /></a> Let&#8217;s take a look at the Kiosk Image Area located in the Administration Area.  This area has many options, but look at the intriguing &#8220;Find FTP&#8217;d Images&#8221;.  Now that is what I am talking about!</div>
<p><br clear="both" /></p>
<div><img src="http://cpradio.org/images/kiosk_image_folder.jpg" alt="Kiosk Image Folder" title="Kiosk Image Folder" style="border: 1px solid #000000; margin-left: 10px;" align="right" width="300" height="199" /> Now, this is the folder where the images are stored in Kiosk.  Look carefully, and you will see a folder named &#8220;FTP&#8221;.  This is the folder where your 1000 images should be uploaded to.</div>
<p><br clear="both" /></p>
<div><a href="http://cpradio.org/images/kiosk_image_folder_with_images.jpg"><img src="http://cpradio.org/images/th_kiosk_image_folder_with_images.jpg" alt="Kiosk Image Folder With Images" title="Kiosk Image Folder With Images" style="border: 1px solid #000000; margin-right: 10px;" align="left" width="300" height="199" /></a> To show you that this works, I have placed over 600 images in the folder!  I realize that isn&#8217;t exactly 1000, but it should be enough to prove it will work with 1000 as well.  Now, that I have the images placed, I need to head back to the Administration Area to complete this process.</div>
<p><br clear="both" /></p>
<div><a href="http://cpradio.org/images/kiosk_image_inserting_images.jpg"><img src="http://cpradio.org/images/th_kiosk_image_inserting_images.jpg" alt="Kiosk Image Inserting the Images" title="Kiosk Image Inserting the Images" style="border: 1px solid #000000; margin-left: 10px;" align="right" width="300" height="199" /></a> Back in the Images Administration Area, I clicked on the &#8220;Find FTP&#8217;d Images&#8221; and this is what you will be presented with!  <em>Now realize, only one process of this is able to run at a time.  So if you have 4 people updating the store, when one person runs this command, it will prevent the other 3 from running it too.</em>  With that said, the process also checks to see where in the process it is.  For example, it checks every few seconds to see if it is finished inserting the images, or if it is still running.  Now, I know what you are thinking.  What about the Time Out Limit in PHP?  How do you get around that?  Well that is my secret and you can&#8217;t figure it out unless you pull down the <a href="http://kiosk.cpradio.org/kiosksvn/">Source Code from the SVN Repository</a>.</div>
<p><br clear="both" /></p>
<div><a href="http://cpradio.org/images/kiosk_image_inserting_images_complete.jpg"><img src="http://cpradio.org/images/th_kiosk_image_inserting_images_complete.jpg" alt="Kiosk Image Inserting the Images Complete" title="Kiosk Image Inserting the Images Complete" style="border: 1px solid #000000; margin-right: 10px;" align="left" width="300" height="199" /></a> Finally, when it is all said and done, you the user are prompted with this final screen.  The process is complete. </div>
<p><br clear="both" /></p>
<div><a href="http://cpradio.org/images/kiosk_image_listing.jpg"><img src="http://cpradio.org/images/th_kiosk_image_listing.jpg" alt="Kiosk Image Listing" title="Kiosk Image Listing" style="border: 1px solid #000000; margin-left: 10px;" align="right" width="300" height="199" /></a> Upon clicking on &#8220;Close&#8221; it will reload the page to show all of your images now listed within the application.  That&#8217;s it!  It doesn&#8217;t get any easier than that!  Feel free to comment and leave your remarks, as this is going to make <a href="http://kiosk.cpradio.org/">kiosk</a> stand out from Joe Smoe and you got my word on that!</div>
<p><br clear="both" /></p>
]]></content:encoded>
			<wfw:commentRss>http://cpradio.org/code/ajax/fun-with-kiosk/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>kiosk Development</title>
		<link>http://cpradio.org/code/javascript/kiosk-development/</link>
		<comments>http://cpradio.org/code/javascript/kiosk-development/#comments</comments>
		<pubDate>Thu, 01 Feb 2007 11:52:08 +0000</pubDate>
		<dc:creator>cpradio</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[kiosk]]></category>

		<guid isPermaLink="false">http://cpradio.org/code/javascript/kiosk-development/</guid>
		<description><![CDATA[kiosk is progressing very well.  I have started the programming some of the more significant portions of the project, such as, uploading Image, and creating Categories.  Unlike cpCommerce images will not be handled during the Category, Product, Manufacturer, etc. creation.  Instead, it is its&#8217; own section.  Why?  This way you [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://kiosk.cpradio.org/">kiosk</a> is progressing very well.  I have started the programming some of the more significant portions of the project, such as, uploading Image, and creating Categories.  Unlike <a href="http://cpcommerce.cpradio.org/">cpCommerce</a> images will not be handled during the Category, Product, Manufacturer, etc. creation.  Instead, it is its&#8217; own section.  Why?  This way you can upload all of your images via FTP, click a nice little link stating &#8220;Find Uploaded Images&#8221; and it will insert them into your database for you.  Then all you have to do is assign them to a Product, Category, Manufacturer, or Both, or All Three!</p>
<p>Images are entirely reusable.  So if you want to show a Product&#8217;s Image as the Category Image too, YOU CAN!  And you can do it without uploading another file!  I like to think <a href="http://kiosk.cpradio.org/">kiosk</a> is taking what <a href="http://cpcommerce.cpradio.org/">cpCommerce</a> started and taking it to a whole new level learning from its&#8217; mistakes, and hopefully you all agree.</p>
<p>Well that is enough on that for now, I will update everyone once again, when I have these sections entirely done.  Then you can pull it from the <a href="http://kiosk.cpradio.org/kiosksvn/">kiosk subversion repository</a> and give it a try yourself.</p>
]]></content:encoded>
			<wfw:commentRss>http://cpradio.org/code/javascript/kiosk-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax Search is Over</title>
		<link>http://cpradio.org/code/javascript/ajax-search-is-over/</link>
		<comments>http://cpradio.org/code/javascript/ajax-search-is-over/#comments</comments>
		<pubDate>Sun, 28 Jan 2007 03:36:08 +0000</pubDate>
		<dc:creator>cpradio</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[kiosk]]></category>

		<guid isPermaLink="false">http://cpradio.org/code/javascript/ajax-search-is-over/</guid>
		<description><![CDATA[I have settled on ASP.NET AJAX 1.0.  Why you ask?  Well for many reasons!  One, it is written well.  Lacks all the visual effects, but seriously, who needs those?  It is fast, as it uses JSON, and that is a MAJOR surprise, as I figured M$ would be all over [...]]]></description>
			<content:encoded><![CDATA[<p>I have settled on <a href="http://weblogs.asp.net/scottgu/archive/2007/01/23/asp-net-ajax-1-0-released.aspx">ASP.NET AJAX 1.0</a>.  Why you ask?  Well for many reasons!  One, it is written well.  Lacks all the visual effects, but seriously, who needs those?  It is fast, as it uses JSON, and that is a MAJOR surprise, as I figured M$ would be all over using XML.  Secondly, if you pair it up with <a href="http://codeplex.com/phpmsajax">PHP for Microsoft AJAX</a> it just flat out works nicely and costs little effort to write scripts for!</p>
<p>I wrote a few sample scripts using it in less than 5 minutes!  5 minutes!!  I cannot stress that enough.  I was amazed at the type of complexity I could write in just a few minutes of using it.  Now, I am not a &#8220;big&#8221; M$ fan, but I am willing to give credit when due, and they deserve credit for this.  I am truly pleased with the fact it works in Firefox, it works in IE, and it probably works in Opera (though I haven&#8217;t tested it).  It has files for all languages, to handle currencies, dates, etc.  Totally amazing.</p>
<p>I have so many plans on how to use this to perform more advance functionality in several of my applications and best of all, I didn&#8217;t have to write my own XmlHttpRequest methods.</p>
]]></content:encoded>
			<wfw:commentRss>http://cpradio.org/code/javascript/ajax-search-is-over/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.292 seconds -->
