<?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>James Tombs &#187; windows</title>
	<atom:link href="http://jamestombs.co.uk/tag/windows/feed" rel="self" type="application/rss+xml" />
	<link>http://jamestombs.co.uk</link>
	<description>Development blog from James Tombs about PHP, XHTML + CSS and Drupal</description>
	<lastBuildDate>Wed, 25 Aug 2010 21:51:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Top free applications to aid in web design and development</title>
		<link>http://jamestombs.co.uk/2009-03-19/top-free-applications-to-aid-in-web-design-and-development/998</link>
		<comments>http://jamestombs.co.uk/2009-03-19/top-free-applications-to-aid-in-web-design-and-development/998#comments</comments>
		<pubDate>Thu, 19 Mar 2009 19:45:14 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://jamestombs.co.uk/?p=998</guid>
		<description><![CDATA[FileZilla FTP Client &#8211; http://filezilla-project.org/ A FTP client to upload documents from your computer to your web server. Also supports SFTP for secure transfering of files. xampp &#8211; http://www.apachefriends.org/ A bundled installer of Apache, PHP, MySQL and a few other programs. This allows you to set up a server on your computer accessible through http://localhost [...]]]></description>
			<content:encoded><![CDATA[<p>FileZilla FTP Client &#8211; <a href="http://filezilla-project.org/">http://filezilla-project.org/</a><br />
A FTP client to upload documents from your computer to your web server. Also supports SFTP for secure transfering of files.</p>
<p>xampp &#8211; <a href="http://www.apachefriends.org/en/xampp.html">http://www.apachefriends.org/</a><br />
A bundled installer of Apache, PHP, MySQL and a few other programs.  This allows you to set up a server on your computer accessible through http://localhost which saves you having to upload the files to a server during development.</p>
<p>Notepad++ &#8211; <a href="http://notepad-plus.sourceforge.net/uk/site.htm">http://notepad-plus.sourceforge.net/</a><br />
An extension of notepad in Windows with more features including syntax highlight for PHP, HTML, javascript and many more languages.</p>
<p>GIMP (GNU Image Maninpulation Program) &#8211; <a href="http://www.gimp.org/">http://www.gimp.org/</a><br />
A worthy alternative to the hugely expensive Photoshop.</p>
<p>Paint.net &#8211; <a href="http://www.paint.net/">http://www.paint.net/</a><br />
Based on the simplicity of MS Paint, Paint.net takes this a lot further with the introduction of many tools that are present in GIMP and Photoshop.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2009-03-19/top-free-applications-to-aid-in-web-design-and-development/998/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Vista x64 to Windows 7 Beta</title>
		<link>http://jamestombs.co.uk/2009-01-13/windows-vista-x64-to-windows-7-beta/959</link>
		<comments>http://jamestombs.co.uk/2009-01-13/windows-vista-x64-to-windows-7-beta/959#comments</comments>
		<pubDate>Tue, 13 Jan 2009 20:42:13 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://jamestombs.co.uk/2009-01-13/windows-vista-x64-to-windows-7-beta/959</guid>
		<description><![CDATA[With the new Windows 7 beta out from Microsoft, I decided to try to upgrade an existing Windows Vista x64 which has been very stable and not had a problem, has a fair few applications installed and lots of documents.&#160; I wasn’t putting up much hope, but backed up all the Documents and proceeded to [...]]]></description>
			<content:encoded><![CDATA[<p>With the new Windows 7 beta out from Microsoft, I decided to try to upgrade an existing Windows Vista x64 which has been very stable and not had a problem, has a fair few applications installed and lots of documents.&#160; I wasn’t putting up much hope, but backed up all the Documents and proceeded to upgrade the Vista installation as opposed to a new installation.</p>
<p>The installation started properly with no issues from within Windows Vista, then the PC required a restart, so restarted and the installation continued.</p>
<p>A message then came up during installation that “a required driver could not be found”.&#160; This could be a problem, once the error had been closed, the window on screen said that all changes made would be reverted to how they were.&#160; So my thoughts here were that it would restart back to Windows Vista like it was before with a heap of temporary installation files on the C drive.</p>
<p> <span id="more-959"></span>
<p>On restarting, Windows failed to boot.&#160; The error message was a simple “BOOTMGR cannot be found” (something like that can’t remember it off by heart).</p>
<p>So I took the 7 DVD out and put the Vista DVD in to do a repair, although I am sure the 7 DVD would of been able to do it.</p>
<p>Upon booting up using the Vista DVD I selected the repair option at which stage it prompted me that there was a problem with the installation.&#160; Well I knew that, so I decided to try it and pressed the Repair and restart button and let it load up from the hard drive. After the restart the same message appeared.</p>
<p>So I booted back to the Vista DVD and selected repair again.&#160; This time I wasn’t asked if I wanted to repair automatically.&#160; I then chose the repair start up errors option (the one at the top).&#160; After this had completed (took around 10 seconds), I restarted and left it to it’s own devices.&#160; This time the computer went past the error message and I was greeted with Windows 7.&#160; It had installed properly despite the error, although in all likeliness that is what caused the BOOTMGR problem.</p>
<p>Windows 7 finished configuring itself and eventually asked me for a username and password.&#160; I thought this was a bit strange as it should of pulled out my previous accounts, but carried on with the instructions anyway.</p>
<p>Long story short, Windows 7 installed, but without any of the applications installed or documents.</p>
<p>But the application files and documents were present but had been moved in to other folders.&#160; I can only assume that the files would of been moved back in to the main folders rather than the newly created folders if the installation had completed successfully.</p>
<p>Graphics drivers were already installed as was the network drivers. The only drivers that weren’t installed were the X-Fi drivers from Creative.&#160; So I went to their website and downloaded their latest drivers for Vista.</p>
<p>On attempting installation I was greeted with a message saying that the OS was incompatible with the drivers and that I would need to upgrade my OS. Obviously a bad search within the drivers installer, so I set the installer to run in compatibility mode for Windows Vista. This time the installation proceeded without a problem.</p>
<p>I deleted the old application files which weren’t needed any more and was able to back up all the documents back to the rightful place.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2009-01-13/windows-vista-x64-to-windows-7-beta/959/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTPC software configuration using MediaPortal</title>
		<link>http://jamestombs.co.uk/2008-12-11/htpc-software-configuration-using-mediaportal/955</link>
		<comments>http://jamestombs.co.uk/2008-12-11/htpc-software-configuration-using-mediaportal/955#comments</comments>
		<pubDate>Thu, 11 Dec 2008 12:41:53 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://jamestombs.co.uk/?p=955</guid>
		<description><![CDATA[For my HTPC, I now have configured most things up, so it is all working just like it should be. It took a few OS reinstalls to get it exactly where I wanted it, but I more or less have it, just have to sort out Blu-ray &#038; HDDVD playback sorted first. Here is a [...]]]></description>
			<content:encoded><![CDATA[<p>For my <a href="http://jamestombs.co.uk/2008-10-26/built-my-first-htpc-home-theatre-personal-computer/938">HTPC</a>, I now have configured most things up, so it is all working just like it should be.  It took a few OS reinstalls to get it exactly where I wanted it, but I more or less have it, just have to sort out Blu-ray &#038; HDDVD playback sorted first.</p>
<p>Here is a list of what I was aiming for:</p>
<ol>
<li>Be able to play backed up DVD, Blu-ray &#038; HDDVD videos in either .avi, .mkv (H.264) or WMV</li>
<li>Central bit of software to cover everything</li>
<li>Able to play off network shares</li>
<li>Be able to play back Blu-ray and HDDVD easily</li>
</ol>
<p>For my software I am using the following:</p>
<ul>
<li>Microsoft Windows Vista x64 Ultimate Edition</li>
<li>MediaPortal v1.0 (with TVSeries 2.0 plugin and Monochrome 2.2 skin)</li>
<li>iMon 7.2</li>
</ul>
<p>I did try using Ubuntu over Vista but found that Blu-ray support was a bit limited in the way you basically had to manually dump each film on to the harddrive stripping out the DRM.</p>
<p>So I ended up using Vista which has been very reliable.  I have turned off Aero to give a small performance increase in playing 1080p MKV files and have disabled UAC for the obvious reason; it&#8217;s annoying.</p>
<p>Although the integrated Windows Media Centre that comes with Windows Vista is good, it can be a bit of a chore to get set up correctly to play any video format.  So I am using MediaPortal which is a free bit of software which is simply fantastic.</p>
<p>I followed this <a href="http://www.projecthtpc.co.uk/htpc_software08.html">guide</a> from <a href="http://www.projecthtpc.co.uk/">ProjectHTPC</a> on setting up MediaPortal which is an easy to understand guide and tells you exactly what you need to know.</p>
<p>I then followed this <a href="http://www.castle-grounds.co.uk/htpc/software_skin.htm">guide</a> on getting the Monochrome skin on Media Portal and getting the sound through to my sound system playing proper DTS.  Following on from that guide, I came across a plugin for MediaPortal called TVSeries.  It&#8217;s fantasic.  I followed this <a href="http://www.castle-grounds.co.uk/htpc/software_tv.htm">guide</a>  and have all my TV series on my computer set up with fan art, which has now given me an excuse to get all my box sets on to the harddrive to have them as easy to access as possible.</p>
<p>Media Portal plays off network shares which has ticked off number 3 and allows me to continue on my search to get a NAS set up with a lot of storage to store all my DVDs etc on.</p>
<p>The only problem I still have to overcome is getting Blu-ray and HDDVD to play through MediaPortal properly, which should be OK once I get around to getting PowerDVD 7 or hacking PowerDVD 8 which removed any trace of HDDVD.</p>
<p>iMon has been a pain though, my case came with a CD with it on which I have now misplaced while moving house and have found myself downloading the latest version off the SoundGraph website extremely slowly.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2008-12-11/htpc-software-configuration-using-mediaportal/955/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Built my first HTPC (Home Theatre Personal Computer)</title>
		<link>http://jamestombs.co.uk/2008-10-26/built-my-first-htpc-home-theatre-personal-computer/938</link>
		<comments>http://jamestombs.co.uk/2008-10-26/built-my-first-htpc-home-theatre-personal-computer/938#comments</comments>
		<pubDate>Sun, 26 Oct 2008 11:31:02 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[PCs]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://jamestombs.co.uk/?p=938</guid>
		<description><![CDATA[The idea of an HTPC is to have a PC that can fit in with your amplifier/receiver underneath your TV which will act as a DVD player but with more features. Hardware wise it is identical to a normal PC with CPU, RAM, motherboard etc etc but generally put in to more stylish cases specially [...]]]></description>
			<content:encoded><![CDATA[<p>The idea of an HTPC is to have a PC that can fit in with your amplifier/receiver underneath your TV which will act as a DVD player but with more features.</p>
<p>Hardware wise it is identical to a normal PC with CPU, RAM, motherboard etc etc but generally put in to more stylish cases specially built to fit in most TV stands.</p>
<div class="amazon"><a href="http://www.amazon.co.uk/Antec-VERIS-Fusion-Remote-Black/dp/B001F10526%3FSubscriptionId%3D02E5W5871AJF7PMMMS82%26tag%3Djamestombs-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB001F10526"><img src="http://ecx.images-amazon.com/images/I/2170tLUiMcL._SL75_.jpg" /></a></div>
<p><strong>Case</strong></p>
<p>I opted for an <a href="http://www.antec.com/usa/productDetails.php?lan=us&#038;id=15739">Antec Fusion Black HTPC</a> case which is a fairly nice case, although it can be seen as quite costly at around £100 without a PSU. The case is steal with an aluminium front but even so it doesn&#8217;t weigh alot.  There is space for 2 hard drives which are secured with rubber grommets to stop vibration and 2 5.25&#8243; slots with one of these slots being used for the LCD display that comes built with the case, but can be taken out. The case has a few ventilation holes around to keep components cool but only has 2 120mm fans which are located on the side of the case near where the CPU will be.  Both of these fans are Antec Tri-Cools and as such have the 3 way setting for fan speed, low, medium, high.  I have mine set to low which gives off a little bit of noise and gives more than adequate cooling for the rest of the components.</p>
<div class="amazon">
<a href="http://www.amazon.co.uk/Gigabyte-GA-MA78GM-S2H-780G-Sockel-AM2/dp/B0015IXBG6%3FSubscriptionId%3D02E5W5871AJF7PMMMS82%26tag%3Djamestombs-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0015IXBG6"><img src="http://ecx.images-amazon.com/images/I/315ToqpBOrL._SL75_.jpg" /></a></div>
<p><strong>Motherboard</strong></p>
<p>After reading many good reviews I bought the <a href="http://www.gigabyte.com.tw/Products/Motherboard/Products_Overview.aspx?ProductID=2758">Gigabyte GA-MA78GM-S2H AMD 780G Micro-ATX</a>.  The GA-MA78GM-S2H uses the AMD 780G chipset which has onboard audio and graphics.  The onboard audio is a Realtek chip with your standard analogue in and outs but also has a digital out.  The onboard graphics is called the Radeon HD 3200 which is said to be equal in performance to the Radeon HD 3450.  The HD 3200 has AVIVO and allows for full hardware acceleration if the software supports it.  The HD 3200 gives you VGA, DVI and HDMI which also carries sound. The motherboard also has a feature called Hybrid Graphics Technology. This allows you to put in another graphics card in to the PCI-e 2.0 slot which will be used in a crossfire like situation although AMD refuses to call it crossfire due to the performance levels not being the same. Unfortunately you can just shove any card in there and get this performance.  It is obviously limited to AMD/ATi cards only and even then it will only use the power equivalent to the onboard graphics.  In this case the best card to put in would be the HD 3450.</p>
<div class="amazon">
<a href="http://www.amazon.co.uk/AMD-Athlon-Efficient-Dual-Core-Processor/dp/B0017K9F44%3FSubscriptionId%3D02E5W5871AJF7PMMMS82%26tag%3Djamestombs-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0017K9F44"><img src="http://ecx.images-amazon.com/images/I/31kGNZEA7VL._SL75_.jpg" /></a>
</div>
<p><strong>CPU</strong></p>
<p>Keeping to an all AMD affair, I got the AMD Athlon X2 4850e which is a low power CPU said to consume only 45W.  This also reduces heat which is a top priority in an HTPC as it means you don&#8217;t need a noisy fan on it, and this CPU is more than capable of processing any HD media or x264 rips.</p>
<div class="amazon"><a href="http://www.amazon.co.uk/Corsair-XMS2-Xtreme-Performance-PC2-6400/dp/B000EMP2MU%3FSubscriptionId%3D02E5W5871AJF7PMMMS82%26tag%3Djamestombs-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB000EMP2MU"><img src="http://ecx.images-amazon.com/images/I/21ATDADE8ML._SL75_.jpg" /></a></div>
<p><strong>RAM</strong></p>
<p>RAM isn&#8217;t used that much in an HTPC compared to a gaming PC so I just got 2GB (2x 1GB sticks) of <a href="http://www.corsairmemory.com/products/xms2.aspx">Corsair DDR2 XMS2 PC2-6400C5 TwinX</a>.  Of course you can easily change this to 4GB if you want.</p>
<div class="amazon"><a href="http://www.amazon.co.uk/Corsair-EPS12V-Modular-Version-CMPSU-520HXUK/dp/B000RW8SJ6%3FSubscriptionId%3D02E5W5871AJF7PMMMS82%26tag%3Djamestombs-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB000RW8SJ6"><img src="http://ecx.images-amazon.com/images/I/51SCyNwFFYL._SL75_.jpg" /></a></div>
<p><strong>PSU</strong></p>
<p>As I was happy with my current Corsair PSU in my gaming PC I chose to keep my loyalty and got the Corsair CX400W which is more than capable of powering the HTPC with room to spare if I ever wanted to add a new sound card or new graphics card.</p>
<div class="amazon"><a href="http://www.amazon.co.uk/Samsung-Spinpoint-500GB-7200RPM-SATA300/dp/B00187WT44%3FSubscriptionId%3D02E5W5871AJF7PMMMS82%26tag%3Djamestombs-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00187WT44"><img src="http://ecx.images-amazon.com/images/I/41MOJH0hshL._SL75_.jpg" /></a></div>
<p><strong>Hard drive</strong></p>
<p>Being a Samsung fan due to the low noise from their Spinpoint harddrives, I bought another Samsung SpinPoint F1 500GB to join my growing collection of them.  This drive isn&#8217;t particularly slow, but obviously won&#8217;t keep up with a Western Digital Raptor but is a hell of a lot quieter.  This only used up 1 slot, so I still have another slot spare to add another drive in the future if I wanted to.</p>
<div class="amazon"><a href="http://www.amazon.co.uk/LG-GGC-H20L-DVDRW-DVD-ROM-retail/dp/B000XH402E%3FSubscriptionId%3D02E5W5871AJF7PMMMS82%26tag%3Djamestombs-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB000XH402E"><img src="http://ecx.images-amazon.com/images/I/31zC89zoj5L._SL75_.jpg" /></a></div>
<p><strong>DVD Drive</strong></p>
<p>Originally I was just going to buy a £20 DVD drive. But then I saw the <a href="http://uk.lge.com/products/model/detail/bluray_ggch20l.jhtml">LG GGC-H20L Blu-Ray Reader &#038; HD-DVD ROM</a>. For only £45 more I now have the ability to play Blu-Ray and HD-DVD. Although HD-DVD has been beaten by Blu-Ray there is still a lot of HD-DVD stock out there with stores trying to get rid of it.  So when you have the choice of getting HD films for as little as £3 it seemed obvious to get a dual player.  The only thing I forgot to check about this drive before purchasing was the noise, but I was gladly surprised with in once it was installed.  Although not quiet, it wasn&#8217;t too noticeable, so when you have a film on you are unlikely to hear it.</p>
<div class="amazon"><a href="http://www.amazon.co.uk/Vista-Home-Premium-SP1-64-bit/dp/B0015CCFLE%3FSubscriptionId%3D02E5W5871AJF7PMMMS82%26tag%3Djamestombs-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0015CCFLE"><img src="http://ecx.images-amazon.com/images/I/519c9W3WY-L._SL75_.jpg" /></a></div>
<p><strong>Software</strong></p>
<p>At the moment, I don&#8217;t have any dedicated software for my HTPC but I have got Windows Vista Home Premium 64-bit to install, then I can test with further software to expand the HTPC to be the optimum it can be.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2008-10-26/built-my-first-htpc-home-theatre-personal-computer/938/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[PHP + MySQL] Making a basic product database &#8211; Part 1</title>
		<link>http://jamestombs.co.uk/2008-10-12/php-mysql-making-a-basic-product-database-part-1/705</link>
		<comments>http://jamestombs.co.uk/2008-10-12/php-mysql-making-a-basic-product-database-part-1/705#comments</comments>
		<pubDate>Sun, 12 Oct 2008 18:29:11 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://jamestombs.co.uk/?p=705</guid>
		<description><![CDATA[Firstly you need a server which supports PHP and Mysql. If you haven&#8217;t got one, you can set up your computer as a local web server. If you are on Windows, you can follow this guide to help you Set up your PC as a test environment using Apache, PHP and MySQL. Create the database [...]]]></description>
			<content:encoded><![CDATA[<div class="amazon"><a href="http://www.amazon.co.uk/PHP-Easy-Steps-Colour/dp/184078282X%3FSubscriptionId%3D02E5W5871AJF7PMMMS82%26tag%3Djamestombs-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D184078282X"><img src="http://ecx.images-amazon.com/images/I/413WS8031EL._SL75_.jpg" /></a></div>
<p>Firstly you need a server which supports PHP and Mysql. If you haven&#8217;t got one, you can set up your computer as a local web server. If you are on Windows, you can follow this guide to help you <a href="http://jamestombs.co.uk/2008-09-22/set-up-your-pc-as-a-test-environment-using-apache-php-and-mysql/634">Set up your PC as a test environment using Apache, PHP and MySQL</a>.</p>
<h2>Create the database and tables</h2>
<p>Open up your database management tool (PHPMyAdmin or command prompt or MySQL Query Browser) and create a new database, I will call mine product_db.</p>
<p>Then we want to create 3 tables. Product, companies and ownership.</p>
<p>The products table will contain 3 fields:</p>
<p>pid &#8211; A unique ID that is automatically generated for us.<br />
name &#8211; The name of the product.<br />
weight &#8211; The weight of the product.</p>
<p>This is the SQL for the table I am creating:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">TABLE</span> products <span style="color: #FF00FF;">&#40;</span>
pid <span style="color: #999900; font-weight: bold;">INT</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span> <span style="color: #FF9900; font-weight: bold;">AUTO_INCREMENT</span> <span style="color: #990099; font-weight: bold;">PRIMARY KEY</span> <span style="color: #000033;">,</span>
name <span style="color: #999900; font-weight: bold;">VARCHAR</span><span style="color: #FF00FF;">&#40;</span> <span style="color: #008080;">100</span> <span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span> <span style="color: #000033;">,</span>
weight <span style="color: #999900; font-weight: bold;">FLOAT</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span>
<span style="color: #FF00FF;">&#41;</span></pre></div></div>

<p>Next up is the companies table which will contain 3 fields.</p>
<p>cid &#8211; A unique ID that is automatically generated for us.<br />
name &#8211; The name of the company.<br />
email &#8211; A contact email address for the company.</p>
<p>This is the SQL for the table I am creating:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">TABLE</span> companies <span style="color: #FF00FF;">&#40;</span>
cid <span style="color: #999900; font-weight: bold;">INT</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span> <span style="color: #FF9900; font-weight: bold;">AUTO_INCREMENT</span> <span style="color: #990099; font-weight: bold;">PRIMARY KEY</span> <span style="color: #000033;">,</span>
name <span style="color: #999900; font-weight: bold;">VARCHAR</span><span style="color: #FF00FF;">&#40;</span> <span style="color: #008080;">100</span> <span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span> <span style="color: #000033;">,</span>
email <span style="color: #999900; font-weight: bold;">VARCHAR</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span>
<span style="color: #FF00FF;">&#41;</span></pre></div></div>

<p>The 3rd table is the ownership table which will link up products to companies.</p>
<p>This will contain 2 fields, pid and cid which relate to the automatic ID of the 2 other tables.</p>
<p>This is the SQL for the table I am creating:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">TABLE</span> ownership <span style="color: #FF00FF;">&#40;</span>
cid <span style="color: #999900; font-weight: bold;">INT</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
pid <span style="color: #999900; font-weight: bold;">INT</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span>
<span style="color: #FF00FF;">&#41;</span></pre></div></div>

<p>Now that we have the tables set up we can write the PHP to interact with the tables.</p>
<h2>Connecting to the database using PHP</h2>
<p>In your web folder, create a file and call it db_config.php.</p>
<p>In this file we will make the connection to the database.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$db_host</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'localhost'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$db_user</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'root'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$db_pass</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'password'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$db_name</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'product_db'</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mysql_connect</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$db_host</span><span style="color: #339933;">,</span><span style="color: #000088;">$db_user</span><span style="color: #339933;">,</span><span style="color: #000088;">$db_pass</span><span style="color: #009900;">&#41;</span> or <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">mysql_error</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mysql_select_db</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$db_name</span><span style="color: #009900;">&#41;</span> or <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">mysql_error</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Change the $db_xxxx variables to your database settings.</p>
<p>Save the file and load it up in your browser.  If you get a blank white screen, everything is OK.</p>
<h3>Possible Errors</h3>
<p>Some possible errors you may get are&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">Unknown database 'product1_db'</pre></div></div>

<p>This will be because $db_name is wrong.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">Warning: mysql_connect() [function.mysql-connect]: Unknown MySQL server host 'loc1alhost' (11001) in D:\xampp\htdocs\product\db_config.php on line 3
Unknown MySQL server host 'loc1alhost' (11001)</pre></div></div>

<p>This is because the $db_host is wrong.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ro1ot'@'localhost' (using password: YES) in D:\xampp\htdocs\product\db_config.php on line 3
Access denied for user 'ro1ot'@'localhost' (using password: YES)</pre></div></div>

<p>This could be because $db_user is wrong or $db_pass is wrong.</p>
<h2>Inserting new products in to the database</h2>
<p>Create a new file and call it index.php and put it in the same location as the db_config.php file and paste the following code in it:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'db_config.php'</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Previewing the page should result in a blank white page. This means that everything is OK.</p>
<p>Now we will create a function which will used for all our modifying database interactions such as inserting data, updating data and deleting data.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> db_action<span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'action'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'insert'</span><span style="color: #339933;">:</span>
			<span style="color: #000088;">$keys</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$values</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$keys</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$key</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$values</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$value</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000088;">$keys</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">', '</span><span style="color: #339933;">,</span> <span style="color: #000088;">$keys</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$values</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">', '</span><span style="color: #339933;">,</span> <span style="color: #000088;">$values</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;INSERT INTO &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'table'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; (&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$keys</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;) VALUES (&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$values</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'update'</span><span style="color: #339933;">:</span>
			<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;UPDATE &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'table'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; SET &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$values</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; WHERE &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$key</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; = &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'delete'</span><span style="color: #339933;">:</span>
			<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;DELETE FROM &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'table'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; WHERE &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$key</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; = &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>This is set up for inserting data only at the moment, both update and delete would fail at the moment, unless the data was passed on properly.</p>
<p>To insert data into the database we will pass all the information the db_function needs in an array like the one below.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$array</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
  <span style="color: #0000ff;">'action'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'insert'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'table'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'products'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'data'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
    <span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Product Name'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'weight'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'12.5'</span><span style="color: #339933;">,</span>
  <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>By looking at the db_action function you can see that the action part of the array defines what we want to do in the database (insert, update or delete), then we have the table name (products, companies, ownership) and a data array which is in the format of the key (column name in the database) and the value we want to put in to the database.</p>
<p>We draw this data out the array in to a workable format using the following code:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$keys</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$values</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$keys</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$key</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$values</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$value</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>This goes through the data array within our main array and spits out the $keys and $values that we will use for the database.</p>
<p>Once we have the $keys and $values arrays we need to organise these in a way that MySQL will know to insert correctly.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$keys</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">', '</span><span style="color: #339933;">,</span> <span style="color: #000088;">$keys</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$values</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">', '</span><span style="color: #339933;">,</span> <span style="color: #000088;">$values</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>This sets the arrays in to strings with each field separated with a comma.  Perfect for MySQL.</p>
<p>We then insert the data in to the database using the following code.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;INSERT INTO &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'table'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; (&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$keys</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;) VALUES (&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$values</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>From the above array, the information sent to MySQL would be:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">INSERT</span> <span style="color: #990099; font-weight: bold;">INTO</span> products <span style="color: #FF00FF;">&#40;</span>name<span style="color: #000033;">,</span> weight<span style="color: #FF00FF;">&#41;</span> <span style="color: #990099; font-weight: bold;">VALUES</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'Product Name'</span><span style="color: #000033;">,</span> <span style="color: #008000;">'12.5'</span><span style="color: #FF00FF;">&#41;</span></pre></div></div>

<h2>Inserting new companies in to the database</h2>
<p>By changing the array we can completely change the data that is going in to the database.  Now lets modify the array to insert a new company.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$array</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
  <span style="color: #0000ff;">'action'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'insert'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'table'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'companies'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'data'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
    <span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Something Enterprise'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'email'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'info@somethingenterprise.com'</span><span style="color: #339933;">,</span>
  <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>So with the following code, by viewing the page we will insert data in to both tables.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'db_config.php'</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$action</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'action'</span><span style="color: #009900;">&#93;</span> ? <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'action'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'action'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pid</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pid'</span><span style="color: #009900;">&#93;</span> ? <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pid'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pid'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$cid</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'cid'</span><span style="color: #009900;">&#93;</span> ? <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'cid'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'cid'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> db_action<span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'action'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'insert'</span><span style="color: #339933;">:</span>
			<span style="color: #000088;">$keys</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$values</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$keys</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$key</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$values</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$value</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000088;">$keys</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">', '</span><span style="color: #339933;">,</span> <span style="color: #000088;">$keys</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$values</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">', '</span><span style="color: #339933;">,</span> <span style="color: #000088;">$values</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;INSERT INTO &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'table'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; (&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$keys</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;) VALUES (&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$values</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'update'</span><span style="color: #339933;">:</span>
			<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;UPDATE &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'table'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; SET &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$values</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; WHERE &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$key</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; = &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'delete'</span><span style="color: #339933;">:</span>
			<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;DELETE FROM &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'table'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; WHERE &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$key</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; = &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000088;">$product</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="color: #0000ff;">'action'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'insert'</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'table'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'products'</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'data'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Product Name'</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'weight'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'12.5'</span><span style="color: #339933;">,</span>
	<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$company</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="color: #0000ff;">'action'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'insert'</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'table'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'companies'</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'data'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Something Enterprise'</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'email'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'info@somethingenterprise.com'</span><span style="color: #339933;">,</span>
	<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
db_action<span style="color: #009900;">&#40;</span><span style="color: #000088;">$product</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
db_action<span style="color: #009900;">&#40;</span><span style="color: #000088;">$company</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<h2>Inserting new ownership in to the database</h2>
<p>Now that we have both a company and a product we can try linking them together. Although we will automate this later, check your database, both the product and company should have an ID of 1.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$ownership</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="color: #0000ff;">'action'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'insert'</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'table'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'ownership'</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'data'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="color: #0000ff;">'pid'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'cid'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span>
	<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Then by running</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">db_action<span style="color: #009900;">&#40;</span><span style="color: #000088;">$ownership</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>  We have the entry added to the ownership table.</p>
<h2>Updating existing data</h2>
<p>To update data we just need to modify our function a little to get the data in the right format and we can update with ease.</p>
<p>To do this we update the &#8216;update&#8217; case in our switch statement to the following:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'update'</span><span style="color: #339933;">:</span>
			<span style="color: #000088;">$items</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$items</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">' = &quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$value</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;'</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000088;">$values</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">' , '</span><span style="color: #339933;">,</span> <span style="color: #000088;">$items</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$key</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'key'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$id</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
			<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;UPDATE &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'table'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; SET &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$values</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; WHERE &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$key</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; = &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span></pre></div></div>

<p>We are using a similar foreach statement but have changed the 2 arrays into 1 array as the SQL format for UPDATE is different to INSERT.</p>
<p>For the update statement to work we need to pass on the values for the WHERE statement. After a minor change to our array we have the following:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$updateproduct</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="color: #0000ff;">'action'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'update'</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'table'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'products'</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'data'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'New Product Name'</span><span style="color: #339933;">,</span>
	<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'key'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'pid'</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'id'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>We have changed the action and added 2 new array keys, 1 called key which is the column name that we will use in our SQL statement and the id which is the cid or pid that needs to be updated.</p>
<h2>Deleting data</h2>
<p>The DELETE case in our function is even easier than our UPDATE as we don&#8217;t need to much around with any data.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'delete'</span><span style="color: #339933;">:</span>
			<span style="color: #000088;">$key</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'key'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$id</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
			<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;DELETE FROM &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'table'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; WHERE &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$key</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; = &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span></pre></div></div>

<p>Our DELETE array is almost identical to our UPDATE array.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$deleteproduct</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="color: #0000ff;">'action'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'delete'</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'table'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'products'</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'key'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'pid'</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'id'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>All we need is the key and id as no data is needed to delete a row.</p>
<p>In part 2 we will create the HTML to do our functions.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2008-10-12/php-mysql-making-a-basic-product-database-part-1/705/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Chrome annoyances</title>
		<link>http://jamestombs.co.uk/2008-10-09/google-chrome-annoyances/840</link>
		<comments>http://jamestombs.co.uk/2008-10-09/google-chrome-annoyances/840#comments</comments>
		<pubDate>Thu, 09 Oct 2008 21:31:31 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://jamestombs.co.uk/?p=840</guid>
		<description><![CDATA[It has been over a month now since Google released Chrome to the world and quite a few annoyances have appeared over that time. Closing multiple tabs The huge flaw that is extremely irritating is no warning of closing multiple tabs. If you have 10 tabs open and accidentally close the main window at the [...]]]></description>
			<content:encoded><![CDATA[<p>It has been over a month now since Google released Chrome to the world and quite a few annoyances have appeared over that time.</p>
<h2>Closing multiple tabs</h2>
<div class="amazon"><a href="http://www.amazon.co.uk/Advanced-Web-Metrics-Google-Analytics/dp/0470253126%3FSubscriptionId%3D02E5W5871AJF7PMMMS82%26tag%3Djamestombs-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0470253126"><img src="http://ecx.images-amazon.com/images/I/31FxgP1j2ML._SL75_.jpg" /></a></div>
<p>The huge flaw that is extremely irritating is no warning of closing multiple tabs.</p>
<p>If you have 10 tabs open and accidentally close the main window at the top right rather than the tab close button.  Goodbye tabs.</p>
<p>You can have the sessions enabled to get it back once you open Chrome again but that isn&#8217;t very helpful if you had active downloads going when you accidentally closed the browser.</p>
<p><img src="http://jamestombs.co.uk/wp-content/uploads/2008/10/chrome.jpg" alt="" title="chrome" width="315" height="119" class="alignnone size-full wp-image-916" /></p>
<p>Earlier today I was download <a href="http://www.portalprelude.com/">Portal: Prelude</a>, an expansion modification for the game Portal.  After download 550MB of the 775MB file, I accidentally closed Chrome forgetting that I had the download going.</p>
<p>IE and FF would of both stopped this from happening as they both open downloads in separate windows rather than the main browser, so if you close the main browser the downloads continue.  Chrome does not.</p>
<p>I wasted that time and bandwidth downloading 550MB to be lost in the ether and having to download it again, because something so trivial was missed out of Chrome.</p>
<p>It doesn&#8217;t take a lot of common sense to know this is could be a problem, Mozilla, Microsoft and Opera all have implementations in place to stop this happening.  The fact that Google took the best parts of all the other browsers in to 1 then deciding that a rather important feature wasn&#8217;t in their users best interest is worrying.  How many other problems are there going to be under the surface?</p>
<h2>Downloads</h2>
<div class="amazon"><a href="http://www.amazon.co.uk/Get-into-Bed-Google-Optimisation/dp/1905940491%3FSubscriptionId%3D02E5W5871AJF7PMMMS82%26tag%3Djamestombs-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1905940491"><img src="http://ecx.images-amazon.com/images/I/518ZzFqR-oL._SL75_.jpg" /></a></div>
<p>I have found that on many user initiated downloads that they just fail to start full stop on my Chrome installation at work and some downloads on my Chrome installation at home.</p>
<p>By clicking a download button the file will appear at the bottom of the browser and have &#8216;starting&#8230;&#8217; next to it but never progress past this stage.  Right clicking the file and selecting Save as&#8230; works for all anchor links, but any downloads that are done through a form button are impossible to download which results in my opening up Firefox to download files.</p>
<h2>Dictionary</h2>
<div class="amazon">
<a href="http://www.amazon.co.uk/Get-Top-Google-Techniques-There/dp/1857885023%3FSubscriptionId%3D02E5W5871AJF7PMMMS82%26tag%3Djamestombs-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1857885023"><img src="http://ecx.images-amazon.com/images/I/514dxqz4whL._SL75_.jpg" /></a>
</div>
<p>You don&#8217;t seem to have the ability to add new words to the dictionary in Chrome which is rather strange.  In Firefox you can and it is helpful when you type in something quite a lot and it isn&#8217;t in the dictionary, that little red line becomes annoying.</p>
<p>While writing this post, there are 2 words with red lines underneath them.  The first is Firefox. Fair enough, it isn&#8217;t an actual word in the dictionary but still, Google do give a lot of money to the Mozilla foundation (which is in the dictionary).  But the 2nd underlined word is an odd one indeed.  It is Google. The company who have made the browser haven&#8217;t even put their name in the dictionary, instead suggesting that I meant to type goggle.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2008-10-09/google-chrome-annoyances/840/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[MySQL] Using MySQL to analyze web usage from Windows ISA logs</title>
		<link>http://jamestombs.co.uk/2008-09-22/mysql-using-mysql-to-analyze-web-usage-from-windows-isa-logs/614</link>
		<comments>http://jamestombs.co.uk/2008-09-22/mysql-using-mysql-to-analyze-web-usage-from-windows-isa-logs/614#comments</comments>
		<pubDate>Mon, 22 Sep 2008 12:57:33 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://jamestombs.co.uk/?p=614</guid>
		<description><![CDATA[This tutorial will teach you how to import a tab delimited file in to a MySQL database. I built a program to do this for Windows ISA Server logs which contained over 500,000 lines which was way too many for Microsoft Excel to handle and too much for notepad to handle properly. What MySQL functions [...]]]></description>
			<content:encoded><![CDATA[<p>This tutorial will teach you how to import a tab delimited file in to a MySQL database. I built a program to do this for Windows ISA Server logs which contained over 500,000 lines which was way too many for Microsoft Excel to handle and too much for notepad to handle properly. What MySQL functions will we be using:</p>
<ul>
<li>Load Date Local Infile</li>
<li>Select</li>
<li>Delete</li>
<li>Drop</li>
</ul>
<p>Firstly I will show you how to put a tab delimited log from Windows ISA Server in to the MySQL database. With the logs that I have been working with a days worth of information has been between 500,000 and 700,000 which is around 150-200MB in size alone.</p>
<p>You will find that if you use the default PHP timeout settings that you will timeout with large operations such as importing such a large file in to MySQL. </p>
<p>I suggest that you open a command prompt and run through the process below to import the file and see how long it takes to import. If you have previous logs, choose the biggest one so you can get a worst case scenario. </p>
<p>Before we can import the data into a MySQL database we need a database and table to import the data in to. I am not going to go in to much depth for this as it is quite simple to do using PHPMyAdmin or a similar program.</p>
<p>For the ISA log table you can use my code that I have here:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">TABLE</span> <span style="color: #008000;">`tbl<span style="color: #008080; font-weight: bold;">_</span>log1`</span> <span style="color: #FF00FF;">&#40;</span>
<span style="color: #008000;">`id`</span> <span style="color: #999900; font-weight: bold;">int</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">11</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span> <span style="color: #FF9900; font-weight: bold;">auto_increment</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`ip`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`username`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`browser`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`date`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`time`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`isa`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`blank`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`proxy`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`proxyip`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`proxyport`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`num1`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`num2`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`num3`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`protocol`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`method`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`url`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">255</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`type`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #008000;">`num4`</span> <span style="color: #999900; font-weight: bold;">varchar</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">100</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099; font-weight: bold;">collate</span> latin1_general_ci <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">,</span>
<span style="color: #990099; font-weight: bold;">PRIMARY KEY</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">`id`</span><span style="color: #FF00FF;">&#41;</span>
<span style="color: #FF00FF;">&#41;</span> <span style="color: #990099; font-weight: bold;">ENGINE</span><span style="color: #CC0099;">=</span>MyISAM <span style="color: #990099; font-weight: bold;">DEFAULT</span> <span style="color: #FF9900; font-weight: bold;">CHARSET</span><span style="color: #CC0099;">=</span>latin1 <span style="color: #CC0099; font-weight: bold;">COLLATE</span><span style="color: #CC0099;">=</span>latin1_general_ci </pre></div></div>

<p>Feel free to change the encoding type if you wish. </p>
<p>Now for the code. To import the data we will use the Load Data Local Infile ability of MySQL. This will load a file that is locally on the machine to the MySQL database given the right parameters.</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">load</span> <span style="color: #990099; font-weight: bold;">data</span> <span style="color: #990099; font-weight: bold;">local</span> <span style="color: #990099; font-weight: bold;">infile</span> <span style="color: #008000;">'C:<span style="color: #004000; font-weight: bold;">\\</span>logfile.log'</span>
<span style="color: #990099; font-weight: bold;">into</span> <span style="color: #990099; font-weight: bold;">table</span> tbl_log1
<span style="color: #990099; font-weight: bold;">fields</span> <span style="color: #990099; font-weight: bold;">terminated by</span> <span style="color: #008000;">'<span style="color: #004000; font-weight: bold;">\t</span>'</span>
<span style="color: #990099; font-weight: bold;">lines</span> <span style="color: #990099; font-weight: bold;">terminated by</span> <span style="color: #008000;">'<span style="color: #004000; font-weight: bold;">\n</span>'</span>
<span style="color: #FF00FF;">&#40;</span>ip<span style="color: #000033;">,</span>username<span style="color: #000033;">,</span>browser<span style="color: #000033;">,</span><span style="color: #999900; font-weight: bold;">date</span><span style="color: #000033;">,</span><span style="color: #999900; font-weight: bold;">time</span><span style="color: #000033;">,</span>isa<span style="color: #000033;">,</span>blank<span style="color: #000033;">,</span>proxy<span style="color: #000033;">,</span>proxyip<span style="color: #000033;">,</span>proxyport<span style="color: #000033;">,</span>num1<span style="color: #000033;">,</span>num2<span style="color: #000033;">,</span>num3<span style="color: #000033;">,</span>protocol<span style="color: #000033;">,</span>method<span style="color: #000033;">,</span>url<span style="color: #000033;">,</span><span style="color: #990099; font-weight: bold;">type</span><span style="color: #000033;">,</span>num4<span style="color: #FF00FF;">&#41;</span></pre></div></div>

<p>The last line is a list of the columns in order that are in the log. The only columns we really want are username, date, time and url, although you may want ip as well if you are monitoring network activity on static IP address so you can see where most of the bandwidth is being used. If you are importing a different file then change the columns to the names of your columns in your delimited file. The names of the columns within the brackets are the names that you gave them in the table. </p>
<p>For example if you have a list of usernames, passwords and emails you will want 3 columns and a last line looking like this:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #FF00FF;">&#40;</span>username<span style="color: #000033;">,</span><span style="color: #000099;">password</span><span style="color: #000033;">,</span>email<span style="color: #FF00FF;">&#41;</span></pre></div></div>

<p>The column names have to be in order. If email is the first column in the file then make it the first word within the brackets. </p>
<p>The 1st line should be the same for everyone except for the location of the file. Of course using the load data local infile function the file has to be on the machine itself and can not be done through the network. Also note the 2 backward slashes, the first backslash is to espace the following backslash.</p>
<p>The 2nd line is the table that we are importing to, make sure you have set up a table for your data to go in to. </p>
<p>The 3rd line sets the delimiter type. \t is the delimiter for tab and \r is for a space. I am unaware of what the others are so if anyone knows please let me know.</p>
<p>The 4th line sets the delimiter for the end of the line. In this case each line was a new row on the file in excel so this is \n for new line.</p>
<p>The 5th line is the list of columns that we are importing into. </p>
<p>The only problem is if you are importing a large log file like I was. What I had to do was cut out all the rubbish that I didn&#8217;t need to make the databases faster for queries and the like.</p>
<p>First of all I deleted all the columns I didn&#8217;t need.</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">ALTER</span> <span style="color: #990099; font-weight: bold;">TABLE</span> <span style="color: #008000;">`tbl<span style="color: #008080; font-weight: bold;">_</span>log1`</span>
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #008000;">`ip`</span><span style="color: #000033;">,</span>
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #008000;">`browser`</span><span style="color: #000033;">,</span>
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #008000;">`isa`</span><span style="color: #000033;">,</span>
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #008000;">`blank`</span><span style="color: #000033;">,</span>
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #008000;">`proxy`</span><span style="color: #000033;">,</span>
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #008000;">`proxyip`</span><span style="color: #000033;">,</span>
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #008000;">`proxyport`</span><span style="color: #000033;">,</span>
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #008000;">`num1`</span><span style="color: #000033;">,</span>
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #008000;">`num2`</span><span style="color: #000033;">,</span>
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #008000;">`num3`</span><span style="color: #000033;">,</span>
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #008000;">`protocol`</span><span style="color: #000033;">,</span>
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #008000;">`method`</span><span style="color: #000033;">,</span>
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #008000;">`type`</span><span style="color: #000033;">,</span>
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #008000;">`num4`</span> </pre></div></div>

<p>This took out all of the columns I didn&#8217;t need and brought the size of the file down quite a bit.</p>
<p>The second thing was that the log I had, had a lot of anonymous results in it, roughly around a third of the rows. So I ran this little bit of code to remove all the anonymous results.</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">DELETE</span> <span style="color: #990099; font-weight: bold;">FROM</span> tbl_log1 <span style="color: #990099; font-weight: bold;">WHERE</span> username <span style="color: #CC0099; font-weight: bold;">like</span> <span style="color: #008000;">&quot;<span style="color: #008080; font-weight: bold;">%</span>anonymous<span style="color: #008080; font-weight: bold;">%</span>&quot;</span> </pre></div></div>

<p>The problem with this is removed a lot of these results leaves a lot of overhead in the database. So you can either optimize the table after each delete query or you can run it at the end once you start searching. </p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">OPTIMIZE</span> <span style="color: #990099; font-weight: bold;">TABLE</span> tbl_log1</pre></div></div>

<p>This will remove the overhead on the table and will decrease the query times. </p>
<p>You can now use queries to search for users internet usage or a certain websites users. You will find a lot of websites in the list, if a user typed in www.microsoft.com it wouldn&#8217;t just say www.microsoft.com in the log, it would have the url of every image that the user downloaded, every CSS file, every page&#8230;.everything. </p>
<p>You may also want to set up other queries to remove certain websites that you know are safe and don&#8217;t mind about such as www.microsoft.com:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">DELETE</span> <span style="color: #990099; font-weight: bold;">FROM</span> tbl_log1 <span style="color: #990099; font-weight: bold;">WHERE</span> url <span style="color: #CC0099; font-weight: bold;">like</span> <span style="color: #008000;">&quot;<span style="color: #008080; font-weight: bold;">%</span>.microsoft.<span style="color: #008080; font-weight: bold;">%</span>&quot;</span> </pre></div></div>

<p>To search for anyone going on the BBC website you could type the following:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span> username <span style="color: #990099; font-weight: bold;">FROM</span> tbl_log1 <span style="color: #990099; font-weight: bold;">WHERE</span> url <span style="color: #CC0099; font-weight: bold;">like</span> <span style="color: #008000;">&quot;<span style="color: #008080; font-weight: bold;">%</span>bbc.co.uk<span style="color: #008080; font-weight: bold;">%</span>&quot;</span> </pre></div></div>

<p>This will display a list of users that have been on BBC. But this will come up with multiple duplicates of the usernames due to the issue stated above. To stop this we can add the GROUP BY parameter to our query to group the usernames together so we only have a single result from each user. </p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span> username <span style="color: #990099; font-weight: bold;">FROM</span> tbl_log1 <span style="color: #990099; font-weight: bold;">WHERE</span> url <span style="color: #CC0099; font-weight: bold;">like</span> <span style="color: #008000;">&quot;<span style="color: #008080; font-weight: bold;">%</span>bbc.co.uk<span style="color: #008080; font-weight: bold;">%</span>&quot;</span> <span style="color: #990099; font-weight: bold;">GROUP BY</span> username</pre></div></div>

<p>This tutorial was originally posted on <a href="http://skeletorscorpse.com/joomla/content/view/177/139/">Skeletorscorpse.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2008-09-22/mysql-using-mysql-to-analyze-web-usage-from-windows-isa-logs/614/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome really Safari in disguise?</title>
		<link>http://jamestombs.co.uk/2008-09-02/google-chrome-really-safari-in-disguise/574</link>
		<comments>http://jamestombs.co.uk/2008-09-02/google-chrome-really-safari-in-disguise/574#comments</comments>
		<pubDate>Tue, 02 Sep 2008 20:29:40 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[PCs]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.p4th3t1c.co.uk/?p=623</guid>
		<description><![CDATA[While enabling Google Gears from within the newly released Google Chrome, I noticed something odd about the wording. In Firefox and IE, you get the same text: Make note of the first paragraph. Now if you open up the same javascript window within Google Chrome, you get this: Once again, note the first paragraph again.&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>While enabling <a href="http://gears.google.com/">Google Gears</a> from within the newly released <a href="http://www.google.com/chrome">Google Chrome</a>, I noticed something odd about the wording.</p>
<p>In Firefox and IE, you get the same text:</p>
<p><a href="http://jamestombs.co.uk/wp-content/uploads/2008/09/firefox.jpg" rel="shadowbox[post-574];player=img;"><img class="alignnone size-full wp-image-624" title="firefox" alt="" src="http://jamestombs.co.uk/wp-content/uploads/2008/09/firefox.jpg" width="420" height="288" /></a></p>
<p>Make note of the first paragraph. Now if you open up the same javascript window within Google Chrome, you get this:</p>
<p><a href="http://jamestombs.co.uk/wp-content/uploads/2008/09/google_chrome.jpg" rel="shadowbox[post-574];player=img;"><img class="alignnone size-full wp-image-625" title="google_chrome" alt="" src="http://jamestombs.co.uk/wp-content/uploads/2008/09/google_chrome.jpg" width="420" height="288" /></a></p>
<p>Once again, note the first paragraph again.&#160; Within Google Chrome it mentions the Safari menu. Safari is not installed on this computer so there is no reason for Safari to appear there other than Google Chrome being related to Safari in some way.</p>
<p>Also take note that yesterday, typing Google Chrome in to Google search, the results were very different.&#160; In less than 1 day Google appears to have got it&#8217;s Chrome site to #1.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2008-09-02/google-chrome-really-safari-in-disguise/574/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ford Mondeo MK4 (2007 – onwards) leaking boot problem</title>
		<link>http://jamestombs.co.uk/2008-08-11/ford-mondeo-mk4-2007-%e2%80%93-onwards-leaking-boot-problem/563</link>
		<comments>http://jamestombs.co.uk/2008-08-11/ford-mondeo-mk4-2007-%e2%80%93-onwards-leaking-boot-problem/563#comments</comments>
		<pubDate>Mon, 11 Aug 2008 20:09:56 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Cars]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.p4th3t1c.co.uk/2008-08-11/ford-mondeo-mk4-2007-%e2%80%93-onwards-leaking-boot-problem/614</guid>
		<description><![CDATA[There is a problem on all Mondeo’s from 2007 until early 2008 I believe which is after heavy rain when you open the boot, you get wet as does everything in the boot. There is a fix for this and is on all current Mondeo’s been made. The fix is a rubber seal going all [...]]]></description>
			<content:encoded><![CDATA[<p>There is a problem on all Mondeo’s from 2007 until early 2008 I believe which is after heavy rain when you open the boot, you get wet as does everything in the boot.</p>
<p>There is a fix for this and is on all current Mondeo’s been made. The fix is a rubber seal going all the way round the boot.  All the water that sits at the bottom of the window now floods down the sides of the window and drops a short distance at the top of the boot and flows down the side gutters.<span id="more-563"></span></p>
<p><img style="border: 0px initial initial;" title="4445-03" src="http://jamestombs.co.uk/wp-content/uploads/2008/08/444503.jpg" border="0" alt="4445-03" width="528" height="357" /></p>
<p>Unfortunately everyone who bought a Mondeo before this was fitted is in a situation where they are getting wet.  This is a design flaw and as such should be fixed free of charge by Ford.  But no.  Ford seem very reluctant to do anything about it.</p>
<p>The problem is the rubber seal can’t be retro fitted.  The part in question is a whole new rear windscreen.  A brick through your rear windscreen would get your a new part at your expense.</p>
<p>All Ford Mondeo owners should phone Ford Customer Relation Centre on 0845 841 1111.</p>
<p>The dealers don’t care or want to know about the problem and the Ford CRC just want to push everyone to their dealer.  Poor service from Ford especially as it was a problem on some of the hatchback Focus’ too.</p>
<p><img style="border: 0px initial initial;" title="mk4_030_nagy" src="http://jamestombs.co.uk/wp-content/uploads/2008/08/mk4-030-nagy.jpg" border="0" alt="mk4_030_nagy" width="528" height="340" /></p>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2008-08-11/ford-mondeo-mk4-2007-%e2%80%93-onwards-leaking-boot-problem/563/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>[How to] Convert AVCHD ISO to MKV</title>
		<link>http://jamestombs.co.uk/2008-07-20/how-to-convert-avchd-iso-to-mkv/535</link>
		<comments>http://jamestombs.co.uk/2008-07-20/how-to-convert-avchd-iso-to-mkv/535#comments</comments>
		<pubDate>Sun, 20 Jul 2008 20:36:33 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.p4th3t1c.co.uk/?p=570</guid>
		<description><![CDATA[These steps will help you convert an AVCHD ISO to MKV so it is playable on your PC. After some searching after my previous post. I have found the answer on the AfterDawn forums. The only difference being that IsoMagic failed to open up the ISO at all.  Instead I used IsoBuster created by Smart [...]]]></description>
			<content:encoded><![CDATA[<p>These steps will help you convert an AVCHD ISO to MKV so it is playable on your PC.</p>
<p>After some searching after my previous <a href="http://jamestombs.co.uk/2008-07-09/how-do-you-play-ps3-avchd-iso-files-on-windows/565">post</a>.</p>
<p>I have found the answer on the <a href="http://forums.afterdawn.com/thread_view.cfm/680982">AfterDawn forums</a>.</p>
<p>The only difference being that IsoMagic failed to open up the ISO at all.  Instead I used <a href="http://www.isobuster.com/">IsoBuster </a>created by <a href="http://www.smart-projects.net/">Smart Projects</a>.</p>
<p>The software you will need is:</p>
<ul>
<li><a href="http://www.isobuster.com/">IsoBuster</a> &#8211; (You will need to purchase, as free trial does not allow ability to extract.)</li>
<li><a href="http://forum.doom9.org/showthread.php?t=134104">tsMuxeR </a>- Freeware.</li>
<li><a href="http://www.bunkus.org/videotools/mkvtoolnix/downloads.html">mkvtoolnix</a> &#8211; Freeware (Windows download at the bottom.)</li>
</ul>
<p><span id="more-535"></span></p>
<p>Here are the steps:</p>
<ol>
<li>Open the ISO in IsoBuster.  Navigate to the BDMV folder then the STREAM folder.</li>
<li>In this folder you should find a the video called 00000.mts or 00001.mts or something similar.</li>
<li>Extract this to somewhere on your harddrive.</li>
<li>Once the file has finally finished extracting to the hard drive, open up tsMuxeR.</li>
<li>Add the file you just extracted, you should have a window like the following:<br />
<a href="http://jamestombs.co.uk/wp-content/uploads/2008/07/tsmuxer.jpg" rel="shadowbox[post-535];player=img;"><img class="alignnone size-full wp-image-571" title="tsmuxer" src="http://jamestombs.co.uk/wp-content/uploads/2008/07/tsmuxer.jpg" alt="" width="500" height="613" /></a></li>
<li>Press Start demuxing. This will take a few minutes depending on the size of the file and your computer.</li>
<li>The outcome of this is that we will have seperate audio and video files which we will now merge together using a great tool called mkvmerge.</li>
<li>In mkvmerge, we want to select the .ac3 file and the .264 file, so go to Add at the top right and select both these files.</li>
<li>mkvmerge will correctly detect what sort of file they are, but you will need to manually set the fps of the video as mkvmerge won&#8217;t be able to detect it.  The output from tsMuxeR will tell you the fps, then all you need to do now is select where you want to save the finished MKV and press Start Muxing.<br />
<a href="http://jamestombs.co.uk/wp-content/uploads/2008/07/mkvmerge.jpg" rel="shadowbox[post-535];player=img;"><img class="alignnone size-full wp-image-572" title="mkvmerge" src="http://jamestombs.co.uk/wp-content/uploads/2008/07/mkvmerge.jpg" alt="" width="500" height="566" /></a></li>
<li>Like the demux this will take a while depending on the files and the hardware in your PC, once complete you can play the MKV in your media player.</li>
</ol>
<p>Job done.  Let me know in the comments if this worked for you.</p>
<p><strong>Edit:</strong> See comments if you are getting an out of sync problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2008-07-20/how-to-convert-avchd-iso-to-mkv/535/feed</wfw:commentRss>
		<slash:comments>47</slash:comments>
		</item>
		<item>
		<title>How do you play PS3 AVCHD ISO files on Windows?</title>
		<link>http://jamestombs.co.uk/2008-07-09/how-do-you-play-ps3-avchd-iso-files-on-windows/527</link>
		<comments>http://jamestombs.co.uk/2008-07-09/how-do-you-play-ps3-avchd-iso-files-on-windows/527#comments</comments>
		<pubDate>Wed, 09 Jul 2008 17:12:05 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[PCs]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.p4th3t1c.co.uk/2008-07-09/how-do-you-play-ps3-avchd-iso-files-on-windows/565</guid>
		<description><![CDATA[Does anyone know how to play these files on Windows? WMP, SMPlayer, VLC, PowerDVD 7 and PowerDVD 8 fail to play it. Opening the ISO in WinRAR displays an empty file. EDIT: I found out away in my post [How to] Convert AVCHD ISO to MKV.]]></description>
			<content:encoded><![CDATA[<p>Does anyone know how to play these files on Windows?</p>
<p>WMP, SMPlayer, VLC, PowerDVD 7 and PowerDVD 8 fail to play it.</p>
<p>Opening the ISO in WinRAR displays an empty file.</p>
<p><strong>EDIT: I found out away in my post <a title="Permanent Link: [How to] Convert AVCHD ISO to MKV" rel="bookmark" href="../2008-07-20/how-to-convert-avchd-iso-to-mkv/570">[How to] Convert AVCHD ISO to MKV.</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2008-07-09/how-do-you-play-ps3-avchd-iso-files-on-windows/527/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>[FIX] &#8211; the volume control program is not installed</title>
		<link>http://jamestombs.co.uk/2008-03-04/the-volume-control-program-is-not-installed/270</link>
		<comments>http://jamestombs.co.uk/2008-03-04/the-volume-control-program-is-not-installed/270#comments</comments>
		<pubDate>Tue, 04 Mar 2008 22:06:53 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.p4th3t1c.co.uk/2008-03-04/the-volume-control-program-is-not-installed/283</guid>
		<description><![CDATA[If you get the above message it is because you have for some reason lost your sndvol32.exe file from %WIN_DIR%\SYSTEM32. If you do have this problem is is likely that you do not have access to the first Advanced button, which will be greyed out and you will get the error message about the volume [...]]]></description>
			<content:encoded><![CDATA[<p>If you get the above message it is because you have for some reason lost your sndvol32.exe file from %WIN_DIR%\SYSTEM32.</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://jamestombs.co.uk/wp-content/uploads/2008/03/soundproperties1.jpg" border="0" alt="soundproperties" width="387" height="475" /></p>
<p>If you do have this problem is is likely that you do not have access to the first Advanced button, which will be greyed out and you will get the error message about the volume control program when you tick the box &#8220;Place the volume icon in the taskbar&#8221;.</p>
<p>And here is how you get it back:</p>
<p><span id="more-270"></span></p>
<h4>Option 1 &#8211; If you have access to another computer running the same Operating System:</h4>
<p>Go to another computer running the same version operating system. If you are using Windows XP SP1, go on to another XP SP1 computer, or if you are using a Windows XP SP2 machine go to to another XP SP2 machine etc.</p>
<p>Go to the C:\Windows\System32 folder (this folder may be different for you, the letter at the beginning should be your drive letter). Find a file called sndvol32.exe. Copy this to a network share, CD or a USB memory stick.</p>
<p>Now on the PC with the problem copy this file over to C:\Windows\System32 folder (this folder may be different for you, the letter at the beginning should be your drive letter) and that should fix the problem.</p>
<h4>Option 2 &#8211; If you don&#8217;t have access to another computer but you have your original Windows CD (note: not a restore CD):</h4>
<p>Browse the CD and locate the I386 folder. In here find sndvol32.ex_. Copy this to your C: (I said C: because it is a lot easier to type in to a command prompt than a long directory).</p>
<p>Open a command prompt (Start &gt; Run &gt; type in cmd and press OK.)</p>
<p><a href="http://jamestombs.co.uk/wp-content/uploads/2008/07/cmd1.jpg" rel="shadowbox[post-270];player=img;"><img class="alignnone size-full wp-image-555" title="cmd1" src="http://jamestombs.co.uk/wp-content/uploads/2008/07/cmd1.jpg" alt="" width="500" height="259" /></a></p>
<p>Use the command <strong>expand</strong> followed by <strong>SNDVOL32.EX_ SNDVOL32.EXE</strong>. In Explorer copy the SNDVOL32.EXE from the C: to C:\Windows\System32. Problem should be fixed.</p>
<p>Alternatively you can copy it over straight away from the CD using the expand command:</p>
<p><strong>d:<br />
cd i386<br />
expand sndvol32.ex_ c:\windows\system32\sndvol32.exe</strong></p>
<p>Where D: is your CD/DVD drive.</p>
<h4>Option 3 &#8211; If you don&#8217;t have another computer or your Windows CD:</h4>
<p>You can download the file from <a href="http://rapidshare.com/files/30935411/sndvol32.zip" target="_blank">RapidShare</a>. Extract the zip and copy the file to your C:\Windows\System32 folder. Problem should be fixed.</p>
<p>I am not sure if this will work for all XP setups. I am sure it should work OK on Home or Professional but I am not sure how interchangeable it is between service packs. But the file hasn&#8217;t been modified since 2001, so it should be OK for all service packs, but it hasn&#8217;t been tested.</p>
<p>Microsoft know about this problem. You can read more about it in <a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q319095" target="_blank">KB319095</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2008-03-04/the-volume-control-program-is-not-installed/270/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Creative continue to release poor drivers &#8211; No shock there then</title>
		<link>http://jamestombs.co.uk/2008-03-04/creative-continue-to-release-poor-drivers-no-shock-there-then/265</link>
		<comments>http://jamestombs.co.uk/2008-03-04/creative-continue-to-release-poor-drivers-no-shock-there-then/265#comments</comments>
		<pubDate>Tue, 04 Mar 2008 21:51:23 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[PCs]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.p4th3t1c.co.uk/2008-03-04/creative-continue-to-release-poor-drivers-no-shock-there-then/278</guid>
		<description><![CDATA[Creative continue to release absolutely shitty drivers for the X-Fi range and I am sure their other ranges as well. After finding certain parts of the audio configuration weren&#8217;t available I decided to reinstall the drivers. While reinstalling I checked the Creative website and found there was a new beta driver out from January 08. [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="63" alt="Creative Logo" src="http://jamestombs.co.uk/wp-content/uploads/2008/03/creative.jpg" width="177" align="left" border="0"/> Creative continue to release absolutely shitty drivers for the X-Fi range and I am sure their other ranges as well.  After finding certain parts of the audio configuration weren&#8217;t available I decided to reinstall the drivers.  While reinstalling I checked the Creative website and found there was a new beta driver out from January 08.</p>
<p>I thought there can&#8217;t be that much wrong with them, I am sure they can&#8217;t be any worse than the old drivers.</p>
<p>Ha ha ha.  I really am stupid.</p>
<p><span id="more-265"></span></p>
<p>The beta drivers really are shit.  They are even worse than the &#8220;stable&#8221; yes I said stable about Creative&#8217;s drivers.  And after 3 BSOD&#8217;s from various DLL&#8217;s from the new beta drivers I thought it was time to stop trying to install them.  That&#8217;s right, I hadn&#8217;t even got to the point where I could fully install them.</p>
<p>So a couple of restarts later and a little bit of help from the good old Driver Cleaner Pro, I was able to reinstall the old Creative drivers which in some ways work&#8230;well I can hear sound.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2008-03-04/creative-continue-to-release-poor-drivers-no-shock-there-then/265/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Burning FLAC files to Audio CD using Nero 8</title>
		<link>http://jamestombs.co.uk/2008-01-12/burning-flac-files-to-audio-cd-using-nero-8/228</link>
		<comments>http://jamestombs.co.uk/2008-01-12/burning-flac-files-to-audio-cd-using-nero-8/228#comments</comments>
		<pubDate>Sat, 12 Jan 2008 09:44:22 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.p4th3t1c.co.uk/2008-01-12/burning-flac-files-to-audio-cd-using-nero-8/238</guid>
		<description><![CDATA[By default Nero 8 does not include a decoder for FLAC (Free Lossless Audio Codec) files. This should also work in prior versions of Nero as well. This is tested and working in Windows XP and Windows Vista. Edit: From the comments, it appears that this only works when opening Nero through Nero Express or [...]]]></description>
			<content:encoded><![CDATA[<p>By default Nero 8 does not include a decoder for FLAC (<a href="http://en.wikipedia.org/wiki/FLAC">Free Lossless Audio Codec</a>) files. This should also work in prior versions of Nero as well.</p>
<p>This is tested and working in Windows XP and Windows Vista.</p>
<p><span id="more-228"></span></p>
<p><strong>Edit:</strong><em> From the comments, it appears that this only works when opening Nero through Nero Express or Nero Burning Rom. If you go through StartSmart, it may not work.  I can&#8217;t test this because I don&#8217;t use StartSmart, it is bloated crap for the less IT inclined people to use.</em></p>
<ol>
<li>First of course you will need Nero installed.</li>
<li>Open <strong>Nero Burning Rom</strong>.</li>
<li>Cancel the first window, then go to File &gt; Options</li>
<li>Select the Audio tab.</li>
<li>Make note of the Plug-in directory.</li>
<li>Close Nero.</li>
<li>Then make your way to <a href="http://www.bitburners.com/category/software/audio/nero-audio-plugins/">bitburners.com</a> and download the plugins you wish. If you are just doing FLAC files then all you need is the FLAC plug-in, not FAAC.</li>
<li>Save the zip file to your desktop.</li>
<li>Using your zip extration program of your choice, get the DLL file out of the zip.</li>
<li>Copy the DLL to your Plug-in directory that you found out in Nero.</li>
<li>Now restart Nero Burning Rom.</li>
<li>Go to File &gt; Options and press the Audio tab.</li>
<li>This time press the Options button.</li>
<li>You will see a list of all the plugins installed in Nero.<br />
<a href="http://jamestombs.co.uk/wp-content/uploads/2008/01/image.png" rel="shadowbox[post-228];player=img;"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://jamestombs.co.uk/wp-content/uploads/2008/01/image-thumb.png" border="0" alt="image" width="500" height="310" /></a></li>
<li>Now when you try and burn a file using Nero you will be able to add FLAC files to your CD.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2008-01-12/burning-flac-files-to-audio-cd-using-nero-8/228/feed</wfw:commentRss>
		<slash:comments>69</slash:comments>
		</item>
		<item>
		<title>How to add games to the Games panel of Windows Vista</title>
		<link>http://jamestombs.co.uk/2008-01-06/how-to-add-games-to-the-games-panel-of-windows-vista/225</link>
		<comments>http://jamestombs.co.uk/2008-01-06/how-to-add-games-to-the-games-panel-of-windows-vista/225#comments</comments>
		<pubDate>Sun, 06 Jan 2008 17:00:14 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.p4th3t1c.co.uk/2008-01-06/how-to-add-games-to-the-games-panel-of-windows-vista/235</guid>
		<description><![CDATA[This tutorial will show you how to add a game in to the Games panel in Windows Vista. For this tutorial I will be adding Call of Duty 4 to the Games panel which is not put on automatically. Adding a new game Go to your start menu and right click on the game you [...]]]></description>
			<content:encoded><![CDATA[</p>
<p>This tutorial will show you how to add a game in to the Games panel in Windows Vista.</p>
<p>For this tutorial I will be adding Call of Duty 4 to the Games panel which is not put on automatically. </p>
<p><a href="http://jamestombs.co.uk/wp-content/uploads/2008/01/gamesoriginal.jpg" rel="shadowbox[post-225];player=img;"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="368" alt="gamesoriginal" src="http://jamestombs.co.uk/wp-content/uploads/2008/01/gamesoriginal-thumb.jpg" width="500" border="0" /></a> </p>
<p><span id="more-225"></span></p>
<h3>Adding a new game</h3>
<ol>
<li>Go to your start menu and right click on the game you want to add to the list.  For this I went to the Activision folder on the start menu and copied the multiplayer shortcut to my desktop.</li>
<li>With the shortcut selected, press F2.  Now rename the shortcut to fit the game, I chose Call of Duty 4.</li>
<li>Once you have given it the name you want to give it, right click the shortcut and chose Copy.</li>
<li>Now in the Games panel, right click an empty area and select Paste.</li>
<li>You will now have a shortcut to Call of Duty 4 or the game you chose in your Games panel.     <br /> <a href="http://jamestombs.co.uk/wp-content/uploads/2008/01/games-cod4.jpg" rel="shadowbox[post-225];player=img;"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="346" alt="games-cod4" src="http://jamestombs.co.uk/wp-content/uploads/2008/01/games-cod4-thumb.jpg" width="470" border="0" /></a> </li>
<li>Right click the new game and select Customize.     <br /><a href="http://jamestombs.co.uk/wp-content/uploads/2008/01/customize.jpg" rel="shadowbox[post-225];player=img;"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="customize" src="http://jamestombs.co.uk/wp-content/uploads/2008/01/customize-thumb.jpg" width="440" border="0" /></a> </li>
<li>You will have a new window with the option of adding new options to the shortcut. You can have a maximum of 6 options on each game.  By default you will have a simple <strong>Play</strong> option.</li>
<li>Select <strong>Play</strong> and press <strong>Edit</strong>.</li>
<li>Go to the <strong>General</strong> tab and type in <em>Multiplayer</em>. This is where the default points to for my shortcut.  If I double click the shortcut it will open Call of Duty 4 Multiplayer.</li>
<li>Select <strong>Play Command 1</strong>. Press <strong>Add</strong>.</li>
<li>Now browse to the location of the game, this time I chose the Singleplayer exe. Press <strong>Next</strong>.</li>
<li>I typed in <em>Singleplayer</em>.  But you can type what you want.</li>
<li>Now if you want to play Mulitplayer you can double click the icon, or if you want to play Singleplayer just right click and select Singleplayer.  If you want to make Singleplayer the default, select Singleplayer and press Move Up.  The top most command is the default double click command.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2008-01-06/how-to-add-games-to-the-games-panel-of-windows-vista/225/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crysis &#8211; 32bit vs 64bit on Windows Vista x64</title>
		<link>http://jamestombs.co.uk/2007-12-23/crysis-32bit-vs-64bit-on-windows-vista-x64/210</link>
		<comments>http://jamestombs.co.uk/2007-12-23/crysis-32bit-vs-64bit-on-windows-vista-x64/210#comments</comments>
		<pubDate>Sun, 23 Dec 2007 11:46:51 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[PCs]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.p4th3t1c.co.uk/2007-12-23/crysis-32bit-vs-64bit-on-windows-vista-x64/220</guid>
		<description><![CDATA[After finding out the performance of Crysis on a Windows Vista x64 machine running in x64 mode in DX10, I wondered about how much different it made over 32-bit. 32 Bit DX10 Windows Vista x64 Low Medium High Very High 800&#215;600 79.64 50.71 27.70 20.01 1024&#215;768 78.97 46.31 22.36 14.01 1280&#215;960 76.65 37.87 15.30 9.83 [...]]]></description>
			<content:encoded><![CDATA[<p>After finding out the performance of <a href="http://jamestombs.co.uk/2007-12-13/crysis-benchmark-dx10-vista-x64/211">Crysis on a Windows Vista x64 machine running in x64 mode in DX10</a>, I wondered about how much different it made over 32-bit.</p>
<p><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/crysis-graphics-screenshot.jpg" rel="shadowbox[post-210];player=img;"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="324" alt="crysis-graphics-screenshot" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/crysis-graphics-screenshot-thumb.jpg" width="500" border="0"/></a> </p>
<p><span id="more-210"></span></p>
<h4> </h4>
<h4>32 Bit DX10 Windows Vista x64</h4>
</p>
<table cellspacing="0" cellpadding="2" width="480" border="1">
<tbody>
<tr>
<td valign="top" width="96"> </td>
<td valign="top" width="96"><strong>Low</strong></td>
<td valign="top" width="96"><strong>Medium</strong></td>
<td valign="top" width="96"><strong>High</strong></td>
<td valign="top" width="96"><strong>Very High</strong></td>
</tr>
<tr>
<td valign="top" width="96"><strong>800&#215;600</strong></td>
<td valign="top" width="96">79.64</td>
<td valign="top" width="96">50.71</td>
<td valign="top" width="96">27.70</td>
<td valign="top" width="96">20.01</td>
</tr>
<tr>
<td valign="top" width="96"><strong>1024&#215;768</strong></td>
<td valign="top" width="96">78.97</td>
<td valign="top" width="96">46.31</td>
<td valign="top" width="96">22.36</td>
<td valign="top" width="96">14.01</td>
</tr>
<tr>
<td valign="top" width="96"><strong>1280&#215;960</strong></td>
<td valign="top" width="96">76.65</td>
<td valign="top" width="96">37.87</td>
<td valign="top" width="96">15.30</td>
<td valign="top" width="96">9.83</td>
</tr>
<tr>
<td valign="top" width="96"><strong>1680&#215;1050</strong></td>
<td valign="top" width="96">69.06</td>
<td valign="top" width="96">28.59</td>
<td valign="top" width="96">10.40</td>
<td valign="top" width="96">6.17</td>
</tr>
<tr>
<td valign="top" width="96"><strong>1900&#215;1200</strong></td>
<td valign="top" width="96">51.25</td>
<td valign="top" width="96">26.17</td>
<td valign="top" width="96">7.26</td>
<td valign="top" width="96">2.76</td>
</tr>
</tbody>
</table>
<p><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/crysis32bit.png" rel="shadowbox[post-210];player=img;"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="318" alt="Crysis 32 Bit Performance" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/crysis32bit-thumb.png" width="500" border="0"/></a> </p>
<h4> </h4>
<h4>64 Bit DX10 Windows Vista x64</h4>
</p>
<table cellspacing="0" cellpadding="2" width="482" border="1">
<tbody>
<tr>
<td valign="top" width="96"> </td>
<td valign="top" width="96"><strong>Low</strong></td>
<td valign="top" width="96"><strong>Medium</strong></td>
<td valign="top" width="96"><strong>High</strong></td>
<td valign="top" width="96"><strong>Very High</strong></td>
</tr>
<tr>
<td valign="top" width="96"><strong>800&#215;600</strong></td>
<td valign="top" width="96">71.79</td>
<td valign="top" width="96">46.67</td>
<td valign="top" width="96">29.05</td>
<td valign="top" width="96">18.25</td>
</tr>
<tr>
<td valign="top" width="96"><strong>1024&#215;768</strong></td>
<td valign="top" width="96">70.16</td>
<td valign="top" width="96">43.32</td>
<td valign="top" width="96">19.79</td>
<td valign="top" width="96">13.34</td>
</tr>
<tr>
<td valign="top" width="96"><strong>1280&#215;960</strong></td>
<td valign="top" width="96">68.71</td>
<td valign="top" width="96">36.36</td>
<td valign="top" width="96">15.01</td>
<td valign="top" width="96">8.94</td>
</tr>
<tr>
<td valign="top" width="96"><strong>1680&#215;1050</strong></td>
<td valign="top" width="96">64.38</td>
<td valign="top" width="96">28.32</td>
<td valign="top" width="96">10.44</td>
<td valign="top" width="96">6.4</td>
</tr>
<tr>
<td valign="top" width="96"><strong>1900&#215;1200</strong></td>
<td valign="top" width="96">52.43</td>
<td valign="top" width="96">25.89</td>
<td valign="top" width="96">7.29</td>
<td valign="top" width="96">2.32</td>
</tr>
</tbody>
</table>
<p><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/crysis64bit.png" rel="shadowbox[post-210];player=img;"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="318" alt="crysis64bit" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/crysis64bit-thumb.png" width="500" border="0"/></a> </p>
<p>As you can see from the figures look very similar between the 2 and no correlation seems to appear from any of the results.  I could look further in to this and come up with some shitty reason why which no one would care to read or understand, but I would say that they just run around the same as each other and they both have standard variance that you will get everytime you play it.</p>
<h4>A Direct Comparison</h4>
<p>The following graph shows the performance of 32 bit Crysis over the 64 bit Crysis.  64 bit Crysis is set to 100% on each setting. The resuts take in to account the average FPS throughout the whole of the benchmark, not the min or max.</p>
<p><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/crysis32bitvs64bit.png" rel="shadowbox[post-210];player=img;"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="298" alt="crysis32bitvs64bit" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/crysis32bitvs64bit-thumb.png" width="500" border="0"/></a> </p>
<h4>Conclusion</h4>
<p>Well there isn&#8217;t one.  They look identical in game, performance is roughly the same.  The game isn&#8217;t made any more playable at any setting with either modes so use which ever one you want.</p>
<p>If you have problems with 64 bit Crysis running, you shouldn&#8217;t find any performance problems dropping to the 32 bit client.  If anything you may see a slight increase in performance, but nothing to write home about.</p>
<p>I won&#8217;t do a comparison of DX9 vs DX10, because I think virtually every other website already has.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2007-12-23/crysis-32bit-vs-64bit-on-windows-vista-x64/210/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Crysis Benchmark &#8211; DX10 Vista x64</title>
		<link>http://jamestombs.co.uk/2007-12-13/crysis-benchmark-dx10-vista-x64/203</link>
		<comments>http://jamestombs.co.uk/2007-12-13/crysis-benchmark-dx10-vista-x64/203#comments</comments>
		<pubDate>Thu, 13 Dec 2007 20:12:05 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[PCs]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.p4th3t1c.co.uk/2007-12-13/crysis-benchmark-dx10-vista-x64/211</guid>
		<description><![CDATA[Here are some benchmark results for a medium-high spec PC running Crysis on Microsoft Windows Vista x64. The PC in question is the following specification: Intel Core2Duo E6750 overclocked to 3.2GHz 4GB DDR2 PC6400 RAM 250GB SATA 7200RPM HDD Nvidia 8800GTS 320MB overclocked to 560MHz core, 850MHz memory This including case and PSU etc, excluding [...]]]></description>
			<content:encoded><![CDATA[<p>Here are some benchmark results for a medium-high spec PC running Crysis on Microsoft Windows Vista x64.</p>
<p>The PC in question is the following specification:</p>
<ul>
<li>Intel Core2Duo E6750 overclocked to 3.2GHz </li>
<li>4GB DDR2 PC6400 RAM </li>
<li>250GB SATA 7200RPM HDD </li>
<li>Nvidia 8800GTS 320MB overclocked to 560MHz core, 850MHz memory </li>
</ul>
<p>This including case and PSU etc, excluding monitor and speakers can be bought for around £700-£750, which isn&#8217;t really a lot, bringing it around £1000-£1200 with speakers and 22&#8243; widescreen monitor.</p>
<p>The benchmark was carried out on <a href="http://www.microsoft.com/windows/products/windowsvista/editions/64bit.mspx">Windows Vista 64-bit</a> edition in <a href="http://www.gamesforwindows.com/en-US/AboutGFW/Pages/directx10-a.aspx">DirectX 10</a> mode.</p>
<p>The benchmark tool used was the <a href="http://crymod.com/filebase.php?fileid=280">Crysis Benchmark Tool</a> made by the team at <a href="http://crymod.com">Crymod</a> and can be downloaded from <a href="http://crymod.com/filebase.php?fileid=280">Crymod</a> or <a href="http://downloads.guru3d.com/download.php?det=1791">Guru3D</a>.</p>
<p><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/benchmarktool.jpg" rel="shadowbox[post-203];player=img;"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="474" alt="benchmarktool" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/benchmarktool-thumb.jpg" width="500" border="0" /></a> </p>
<p><span id="more-203"></span></p>
<p>I ran the benchmark using the 4 different quality settings; low, medium, high and very high.</p>
<p>And at 5 different resolutions; 800&#215;600, 1024&#215;768, 1280&#215;960, 1680&#215;1050 and 1900&#215;1200.</p>
<p>All tests were run in 64-bit mode and Vsync was disabled.  No AA was set and the time of day was set to 15:00 (3:00PM).</p>
<table cellspacing="0" cellpadding="2" width="480" border="1">
<tbody>
<tr>
<td valign="top" width="80"> </td>
<td valign="top" width="80">800&#215;600</td>
<td valign="top" width="80">1024&#215;768</td>
<td valign="top" width="80">1280&#215;960</td>
<td valign="top" width="80">1680&#215;1050</td>
<td valign="top" width="80">1920&#215;1200</td>
</tr>
<tr>
<td valign="top" width="80">Low</td>
<td valign="top" width="80">71.79</td>
<td valign="top" width="80">70.16</td>
<td valign="top" width="80">68.71</td>
<td valign="top" width="80">64.38</td>
<td valign="top" width="80">52.43</td>
</tr>
<tr>
<td valign="top" width="80">Medium</td>
<td valign="top" width="80">46.67</td>
<td valign="top" width="80">43.32</td>
<td valign="top" width="80">36.36</td>
<td valign="top" width="80">28.32</td>
<td valign="top" width="80">25.89</td>
</tr>
<tr>
<td valign="top" width="80">High</td>
<td valign="top" width="80">29.02</td>
<td valign="top" width="80">19.79</td>
<td valign="top" width="80">15.01</td>
<td valign="top" width="80">10.44</td>
<td valign="top" width="80">7.29</td>
</tr>
<tr>
<td valign="top" width="80">Very High</td>
<td valign="top" width="80">18.25</td>
<td valign="top" width="80">13.34</td>
<td valign="top" width="80">8.94</td>
<td valign="top" width="80">6.40</td>
<td valign="top" width="80">2.32</td>
</tr>
</tbody>
</table>
<h4>Screenshots:</h4>
<h5>Low</h5>
<p><strong>800&#215;600      <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/low8003.jpg" rel="shadowbox[post-203];player=img;"><strong></strong></a><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/low8003.jpg" rel="shadowbox[post-203];player=img;"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="low800" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/low800-thumb.jpg" width="260" border="0" /></a><strong> </strong></p>
<p><strong>1024&#215;768      <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/low10243.jpg" rel="shadowbox[post-203];player=img;"><strong></strong></a><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/low10243.jpg" rel="shadowbox[post-203];player=img;"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="low1024" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/low1024-thumb.jpg" width="260" border="0" /></a><strong> </strong></p>
<p><strong>1280&#215;960      <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/low12803.jpg" rel="shadowbox[post-203];player=img;"><strong></strong></a><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/low12803.jpg" rel="shadowbox[post-203];player=img;"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="low1280" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/low1280-thumb.jpg" width="260" border="0" /></a><strong> </strong></p>
<p><strong>1680&#215;1050      <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/low16803.jpg" rel="shadowbox[post-203];player=img;"><strong></strong></a><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/low16803.jpg" rel="shadowbox[post-203];player=img;"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="170" alt="low1680" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/low1680-thumb.jpg" width="260" border="0" /></a><strong> </strong></p>
<p><strong>1900&#215;1200      <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/low19003.jpg" rel="shadowbox[post-203];player=img;"><strong></strong></a><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/low19003.jpg" rel="shadowbox[post-203];player=img;"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="172" alt="low1900" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/low1900-thumb.jpg" width="260" border="0" /></a> </p>
<h5>Medium</h5>
<p><strong>800&#215;600      <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/med8003.jpg" rel="shadowbox[post-203];player=img;"><strong></strong></a><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/med8003.jpg" rel="shadowbox[post-203];player=img;"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="med800" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/med800-thumb.jpg" width="260" border="0" /></a></p>
<p><strong>1024&#215;768      <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/med10243.jpg" rel="shadowbox[post-203];player=img;"><strong></strong></a><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/med10243.jpg" rel="shadowbox[post-203];player=img;"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="med1024" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/med1024-thumb.jpg" width="260" border="0" /></a><strong>  </strong></p>
<p><strong>1280&#215;960      <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/med12803.jpg" rel="shadowbox[post-203];player=img;"><strong></strong></a><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/med12803.jpg" rel="shadowbox[post-203];player=img;"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="med1280" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/med1280-thumb.jpg" width="260" border="0" /></a><strong> </strong></p>
<p><strong>1680&#215;1050      <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/med16803.jpg" rel="shadowbox[post-203];player=img;"><strong></strong></a><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/med16803.jpg" rel="shadowbox[post-203];player=img;"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="170" alt="med1680" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/med1680-thumb.jpg" width="260" border="0" /></a><strong> </strong></p>
<p><strong>1900&#215;1200      <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/med19003.jpg" rel="shadowbox[post-203];player=img;"><strong></strong></a><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/med19003.jpg" rel="shadowbox[post-203];player=img;"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="172" alt="med1900" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/med1900-thumb.jpg" width="260" border="0" /></a> </p>
<h5>High</h5>
<p><strong>800&#215;600     <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/high800.jpg" rel="shadowbox[post-203];player=img;"><strong><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="200" alt="high800" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/high800-thumb.jpg" width="260" border="0" /></strong></a><strong> </strong></p>
<p><strong>1024&#215;768     <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/high1024.jpg" rel="shadowbox[post-203];player=img;"><strong><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="200" alt="high1024" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/high1024-thumb.jpg" width="260" border="0" /></strong></a><strong> </strong></p>
<p><strong>1280&#215;960     <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/high1280.jpg" rel="shadowbox[post-203];player=img;"><strong><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="200" alt="high1280" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/high1280-thumb.jpg" width="260" border="0" /></strong></a><strong> </strong></p>
<p><strong>1680&#215;1050     <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/high1680.jpg" rel="shadowbox[post-203];player=img;"><strong><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="170" alt="high1680" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/high1680-thumb.jpg" width="260" border="0" /></strong></a><strong> </strong></p>
<p><strong>1900&#215;1200     <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/high1900.jpg" rel="shadowbox[post-203];player=img;"><strong><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="172" alt="high1900" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/high1900-thumb.jpg" width="260" border="0" /></strong></a><strong> </strong></p>
<h5>Very High</h5>
<p><strong>800&#215;600     <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/vhigh800.jpg" rel="shadowbox[post-203];player=img;"><strong><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="200" alt="vhigh800" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/vhigh800-thumb.jpg" width="260" border="0" /></strong></a><strong> </strong></p>
<p><strong>1024&#215;768     <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/vhigh1024.jpg" rel="shadowbox[post-203];player=img;"><strong><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="200" alt="vhigh1024" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/vhigh1024-thumb.jpg" width="260" border="0" /></strong></a><strong> </strong></p>
<p><strong>1280&#215;960     <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/vhigh1280.jpg" rel="shadowbox[post-203];player=img;"><strong><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="200" alt="vhigh1280" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/vhigh1280-thumb.jpg" width="260" border="0" /></strong></a><strong> </strong></p>
<p><strong>1680&#215;1050     <br /></strong><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/vhigh1680.jpg" rel="shadowbox[post-203];player=img;"><strong><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="170" alt="vhigh1680" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/vhigh1680-thumb.jpg" width="260" border="0" /></strong></a><strong> </strong></p>
<p><strong>1900&#215;1200</strong></p>
<p>I don&#8217;t know what happened to this one.  For some reason the tool didn&#8217;t make a screenshot.  I imagine it was because it was so slow.</p>
</p>
<h4>Benchmarks:</h4>
<p><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/crysisbar.jpg" rel="shadowbox[post-203];player=img;"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="344" alt="crysisbar" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/crysisbar-thumb.jpg" width="500" border="0" /></a> </p>
<p><a href="http://jamestombs.co.uk/wp-content/uploads/2007/12/crysisline1.jpg" rel="shadowbox[post-203];player=img;"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="344" alt="crysisline1" src="http://jamestombs.co.uk/wp-content/uploads/2007/12/crysisline1-thumb.jpg" width="500" border="0" /></a> </p>
<h4> </h4>
<h4>Conclusion:</h4>
<p>You are going to have to spend more than £1000 for your whole computer to be able to play this game on High at anything above 800&#215;600.  If you are going to spending that much on a computer you won&#8217;t be playing at 800&#215;600 anyway.  If you were playing on a computer only capable of low settings you are likely to be playing at a low resolution so it doesn&#8217;t really matter than it drops in performance a lot when the settings are changed to 1900&#215;1200 on very high.</p>
<p>If you have a similar system or are looking for a similar system then you will be fine for playing on Medium settings and that is all you should look at playing.  High will need an SLi or Crossfire setup and even then you have to hope it scales properly.</p>
<p>At the moment Nvidia and ATi (AMD) have brought out new graphics cards on to the market which offer better value then the 8800GTS 320MB.  If you are looking for a new graphics card, I would point you in the direction of 3 cards:</p>
<ul>
<li>ATi HD 3870 512MB or 1024MB</li>
<li>Nvidia 8800GT 512MB</li>
<li>Nvidia 8800GTS 512MB</li>
</ul>
<p><em>Note: The second Nvidia 8800GTS I have put down is the new 512MB version not the old 320MB or 640MB versions.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2007-12-13/crysis-benchmark-dx10-vista-x64/203/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Opera accuses Microsoft of anti-competitive behaviour</title>
		<link>http://jamestombs.co.uk/2007-12-13/opera-accuses-microsoft-of-anti-competitive-behaviour/758</link>
		<comments>http://jamestombs.co.uk/2007-12-13/opera-accuses-microsoft-of-anti-competitive-behaviour/758#comments</comments>
		<pubDate>Thu, 13 Dec 2007 18:06:17 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.p4th3t1c.co.uk/2007-12-13/opera-accuses-microsoft-of-anti-competitive-behaviour/129</guid>
		<description><![CDATA[Microsoft has once more come under fire for allegedly anti-competitive behaviour &#8211; this time from software rival Opera. The Norwegian company, which makes an internet browser of the same name, has filed a complaint with European Union officials accusing Microsoft of stifling competition.Opera, which has around 12 million users worldwide, said today that Microsoft had [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Microsoft has once more come under fire for allegedly anti-competitive behaviour &#8211; this time from software rival Opera. The Norwegian company, which makes an internet browser of the same name, has filed a complaint with European Union officials accusing Microsoft of stifling competition.Opera, which has around 12 million users worldwide, said today that Microsoft had been acting anti-competitively by bundling its Internet Explorer program with the Windows operating system.</p>
<p>&#8220;We are filing this complaint on behalf of all consumers who are tired of having a monopolist make choices for them,&#8221; said Jon von Tetzchner, the chief executive of Opera. &#8220;We cannot rest until we&#8217;ve brought fair and equitable options to consumers worldwide.&#8221;</p>
<p>The company said it was looking for a series of measures from European officials, including forcing Microsoft to unbundle Internet Explorer or allowing rival products to be preinstalled in Windows, and compelling Microsoft to follow design guidelines issued by web standards groups.</p></blockquote>
<p>Source: <a href="http://www.guardian.co.uk/technology/2007/dec/13/microsoft.opera.bundling">Guardian</a></p>
<p>Microsoft is once again most likely going to have legal action simliar to that of the Windows Media Player antitrust suit in which the EU fined Microsoft  €280M.</p>
<p><span id="more-758"></span>Opera is now asking the EU to file and antitrust suit for Internet Explorer.  Computer users with some intelligence tend to use Firefox or Opera over Microsofts Internet Explorer claiming them to be both faster and more secure, and in some ways that is true so you can&#8217;t really complain.</p>
<p>Why is Opera only just bringing up this now?  They have been down in the browser rankings for a long time and are trailing behind Mozilla&#8217;s Firefox as well as Apple&#8217;s Safari.  It is most likely because they have a minature stake in the market but feel that they need more as making their software free didn&#8217;t help at all.</p>
<p>In my opinion Microsoft have every right to put Internet Explorer in with Windows.  Why not?  There is nothing stopping the user from getting another browser from elsewhere.  There isn&#8217;t a message saying to access the Internet you must use Internet Explorer.  Apple bundle Safari with OSX do they not?  Why aren&#8217;t Opera filing an antitrust suit against Apple?  Probably because they will get sod all out of it.  Microsoft is a much better target and the EU seem to love taking money out of Microsoft.  Where they money goes no one really knows for sure.</p>
<p>Back to the case of Windows Media Player, there is nothing making you use Windows Media Player, you can get new media players.  Apple also bundle Quicktime and iTunes with their OS, but no complaints or antitrust suits against them.</p>
<p>If Microsoft released their next OS with no browser and no media player there will be outrage and everyone will acuse Microsoft of slacking and delivering a product which isn&#8217;t fit for purpose, so they really have no way of getting around this.</p>
<p>If they didn&#8217;t include a browser and media player, it will be down to the OEMs to decide which software to put on with all their other shit they like to install.</p>
<p>Why don&#8217;t we see any complaints about messenger programs?</p>
<p>Why aren&#8217;t Adobe coming out complaining about MS Paint being included with Windows?  Or some maths software company about the built in Calculator.</p>
<p>Hell, Apple don&#8217;t even allow OEMs to build or sell their computers.  That in my eyes is monopolisation.</p>
<p>When you install Firefox or Opera does Windows tell you not to install it and that Internet Explorer is the only way on to the Internet? No.</p>
<p>So to the people at Opera shut up and carry on making your browser better so that the general public may give a shit about what you are making and pay you some attention.  Then change your name so it isn&#8217;t the same as a genre of music and sound the same as some daft overpaid women on US television.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2007-12-13/opera-accuses-microsoft-of-anti-competitive-behaviour/758/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Flaming</title>
		<link>http://jamestombs.co.uk/2007-06-19/microsoft-flaming/747</link>
		<comments>http://jamestombs.co.uk/2007-06-19/microsoft-flaming/747#comments</comments>
		<pubDate>Tue, 19 Jun 2007 17:21:29 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.p4th3t1c.com/2007-06-19/microsoft-flaming/30</guid>
		<description><![CDATA[Why is flaming Microsoft so common around the Internet now? I know people have always said Windows is shit and Microsoft are a bunch of evil cunts but it seems everything is wrong with Microsoft. Most references on community forums commonally abreviate Microsoft as M$ or Micro$oft. So what are you trying to say? Microsoft [...]]]></description>
			<content:encoded><![CDATA[<p>Why is flaming Microsoft so common around the Internet now?  I know people have always said Windows is shit and Microsoft are a bunch of evil cunts but it seems everything is wrong with Microsoft.  Most references on community forums commonally abreviate Microsoft as M$ or Micro$oft.</p>
<p>So what are you trying to say?  Microsoft have lots of money?  Yes they do, they have a hell of a lot more than you.</p>
<p>I can only assume that money is the reason everyone flames Microsoft.  I think deep down everyone wishes they were in Gates shoes.  If you say you don&#8217;t, then you are lying.</p>
<p>Let&#8217;s ignore the money factor for the time being and look at other reasons that people may flame Microsoft.</p>
<p><span id="more-747"></span>Windows is often critised for its bugs and crashes.  I am sure if you are reading this you know what a BSOD is.</p>
<p>How many BSODs can you say were 100% down to Windows?  The vast majority of BSODs are created because of hardware problems, not software problems.  And the BSODs that are caused by software are normally because manufactures have made shitty drivers.</p>
<p>Fed up of the BSODs in Windows?  Well install OSX on your Athlon&#8230;oh no can&#8217;t do that.  Install Linux on it, well you can do, but you will still be in the same situation with your BSODs if it was hardware causing the problem.  If it was software the problem will probably disappear as you won&#8217;t be able to find any drivers for the Linux platform.</p>
<p>Microsoft are making an operating system that has to cater for every single person on the planet.  That is a pretty fucking big job when you consider how many people use computers.  You have to cater for every single persons taste.  Of course not everyone is going to like having the XP or Vista themes on but the vast majority do.  Initially with computers I built I put Windows Classic on as the default theme.  Every single one of them asked for the XP theme on.  They liked it.</p>
<p>It seems the majority of people that dislike Microsoft for whatever reason is because of Windows.  Who dislikes Windows?  Computer enthusiasts.  The general computer user at home adores Windows.  It works.  They don&#8217;t overclock their PC and moan at Microsoft at Windows not being stable because they didn&#8217;t test for stability.   The average users that do complain about Windows have often been brainwashed by some twat who thinks they should push their bitter opinions on others because they are stuck in a dead end job.</p>
<p><strong>STOP FLAMING MICROSOFT </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://jamestombs.co.uk/2007-06-19/microsoft-flaming/747/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
