<?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>TAZ: TheTAZZone Network &#187; security tutorials</title>
	<atom:link href="http://www.thetazzone.com/category/security-tutorials/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thetazzone.com</link>
	<description>Welcome to Internet Chaos: 960+ Games; Security, Networking, and General Tutorials; IRC Chat; and an Active Forum Community</description>
	<lastBuildDate>Sun, 21 Mar 2010 13:51:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Data structures 1 &#8211; An introduction to data structures</title>
		<link>http://www.thetazzone.com/data-structures-1-an-introduction-to-data-structures/</link>
		<comments>http://www.thetazzone.com/data-structures-1-an-introduction-to-data-structures/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 03:48:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[general tutorials]]></category>
		<category><![CDATA[tutorials]]></category>

		<guid isPermaLink="false">http://www.thetazzone.com/?p=2676</guid>
		<description><![CDATA[When trying desperately to explain data structures to a colleague, I came to the rather shocking realisation that there is very little material out there for beginners to cut their teeth on. So, without further ado, here is my little primer on data structures and how they work. In each post, I will try to [...]]]></description>
			<content:encoded><![CDATA[<p>When trying desperately to explain data structures to a colleague, I came to the rather shocking realisation that there is very little material out there for beginners to cut their teeth on. So, without further ado, here is my little primer on data structures and how they work. In each post, I will try to discuss the general principles and algorithms behind the data structure, and show as little code as possible in any given programming language. Where code is unavoidable, I will attempt to use a form of pseudo-code that should lend itself easily to implementation in most programming languages. Where code is really unavoidable, I’ll use Java.</p>
<p>Let’s start with the basics. What is a data structure? A data structure is essentially a way to store related types of data in a way that performing certain operations on the data is made more convenient. The operations might be as simple as being able to access the data quickly and efficiently on demand or as complex as sorting or searching through the data. The type of data structure used depends both on the type of data and the operation you want to perform on it.</p>
<p>Let’s make this easier with an analogy. Say you want to store notes from lectures or meetings. If the notes are on loose-leaf paper, you’d store it in a binder. The binder would then be one type of data structure. In this case, you can make some assumptions about the data. For example, you know that the paper is thin, and that you’re most likely to use only one size of paper, say A4. Now, if you only have a few pages of notes, it will be very easy for you to find the page you want, you simply go through the pages one at a time sequentially till you find the one you’re looking for. However, as your collection of notes grows, at some point, going through each page will no longer a feasible way of finding the desired page. At this point, you will either put in separators or start numbering the pages and make an index, so you can find what you were looking for quickly. You might even put the notes in different binders depending on their subject.</p>
<p>Now, imagine that you have a box full of balls with numbers on them. If you want to find a particular ball, you would have to randomly pick balls till you find the right one. What would you if you wanted to find the ball numbered 27 quickly? Why not put the balls on a shelf with the numbers clearly visible? In this case, the shelf is clearly the superior data structure when you want to find the quickly. So, the type of data structure that is best for a particular task (binder, box or shelf) depends both on the type of data (loose-leaf paper or balls) and what you want to do with it (just store it, read it through one page at a time, find the page you want quickly or find a ball with a particular number).</p>
<p>The simplest type of data structure is called an array. An array is a data structure that holds a fixed maximum number of a single type of data. In computer memory, an array is stored contiguously. This means that the array is stored as a single piece of memory. The shelf that we made to store the balls is an array. No matter how big the room is (the computer’s memory), the shelf can only store a set number of balls in a row.</p>
<p>Another feature of an array is random access. This means that you can easily access the ith element of an array, simply by knowing the number of the element. In our ball example, if you wanted to access the fifth ball from the left, and you knew the diameter of each ball, and also that the balls were arranged in a row so that each ball touched the next one, even if you weren’t able to see each ball, you would know exactly how far to the right you had to go to find the fifth ball, i.e. 5 x diameter. This is how a computer knows where to find a particular element of an array. It simply takes the size of the data type, multiplies it by the number of the element you want to access and adds the result to the array’s starting location. You can also access arrays sequentially by reading each element in succession.</p>
<p><img src="http://www.datastructures.chinmaykanchi.com/wp-content/uploads/2009/10/Array.png" alt="Image" /><br />
<span style="font-size: 85%; line-height: normal;">An array in computer memory. The array is stored contiguously in memory (all in one go). Notice how the size of each element (the numbered rectangles) is the same. The sizes of each element and of the overall array are fixed. One can access each element of the array by index (the number) and sequentially (by starting at 1 and continuing till <img title="Cool" src="http://tazforum.thetazzone.com/images/smilies/icon_cool.gif" alt="8)" />.</span></p>
<p>So, arrays provide the very best in both random and sequential access. So why not use arrays all the time? You don’t really need to know about any other data structure, right? Wrong. While arrays are convenient and fast, the convenience and speed come with some pretty nasty trade-offs. For one, because arrays are stored contiguously in memory, you have to tell the computer in advance what the maximum size of the array is. What’s worse, if in the middle of your program you decide that you want to increase or decrease the size of the array, you can’t. Furthermore, trying to access an array index that’s beyond the maximum size of your array can lead to program crashes in some languages and complete system lockups in others. So, unless you can guess pretty well how much memory your array is going to use, you’re either going to use lots of memory to store very little data, or end up not having enough space to store it. In our ball example, that would be like building a shelf 50 feet long, only to discover that you only had to store 5 pool balls or building a shelf designed to hold 50 balls, only to discover that some bright spark decided to send you 500.</p>
<p>So, in conclusion, arrays are a potentially very useful basic data structure, provided you can make reasonable assumptions about how much data you want to store. What if you don’t know? Well, that’s what linked lists are for. But I’ll cover those some other time. Next time, we’ll take a more detailed look at arrays.</p>
<p><!-- m --><a href="http://www.datastructures.chinmaykanchi.com/?p=3">http://www.datastructures.chinmaykanchi.com/?p=3</a><!-- m --></p>
<p>Cheers,<br />
cgkanchi</p>
<p>ORIGINALLY POSTED BY CGKANCHI FOR THETAZZONE/TAZFORUM <a href="http://tazforum.thetazzone.com/viewtopic.php?f=31&amp;t=13040" target="_blank">HERE</a></p>
<p>Do not use, republish, in whole or in part, without the consent of the Author. TheTAZZone policy is that Authors retain the rights to the work they submit and/or post…we do not sell, publish, transmit, or have the right to give permission for such…TheTAZZone merely retains the right to use, retain, and publish submitted work within it’s Network</p>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

]]></content:encoded>
			<wfw:commentRss>http://www.thetazzone.com/data-structures-1-an-introduction-to-data-structures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What makes a good Blog?</title>
		<link>http://www.thetazzone.com/what-makes-a-good-blog/</link>
		<comments>http://www.thetazzone.com/what-makes-a-good-blog/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 23:17:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[general tutorials]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[blogs]]></category>
		<category><![CDATA[help]]></category>
		<category><![CDATA[tutorials]]></category>

		<guid isPermaLink="false">http://www.thetazzone.com/?p=2671</guid>
		<description><![CDATA[1. First of all a blog has to look good&#8230;as they say it&#8217;s all in presentation&#8230;first appearances&#8230;
2. but good looks will only keep them around for a short time, you want them to stick around&#8230;so you need good content&#8230;something interesting to read or something for them to do&#8230;
3. to keep them coming back you need [...]]]></description>
			<content:encoded><![CDATA[<p>1. First of all a blog has to look good&#8230;as they say it&#8217;s all in presentation&#8230;first appearances&#8230;</p>
<p>2. but good looks will only keep them around for a short time, you want them to stick around&#8230;so you need good content&#8230;something interesting to read or something for them to do&#8230;</p>
<p>3. to keep them coming back you need to update with new things to read or new things to do</p>
<p>4. then you need to promote promote promote&#8230;like location location location&#8230;on the Internet people need to be able to know you even exist and then need to be able to find you with as little trouble as possible</p>
<p>5. study other people&#8217;s blogs that have the same or a similar subject matter&#8230;to improve your own blog&#8230;especially the ones that are having more success than you are</p>
<p>6. find out what they&#8217;re doing to promote and generate traffic, you might learn something you haven&#8217;t thought about&#8230;don&#8217;t try to reinvent the wheel if you don&#8217;t have to</p>
<p>7. be original, don&#8217;t just copy n&#8217; paste other people&#8217;s work and effort&#8230;your site should be mostly original work</p>
<p>8. don&#8217;t steal&#8230;if you use an article , a picture, someone else&#8217;s work&#8230; provide a link back to their site&#8230;even, if it&#8217;s worth your while, e-mail them that you re-posted it and provide them the link, they might come and check you out and if they like what they see link back to you</p>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

]]></content:encoded>
			<wfw:commentRss>http://www.thetazzone.com/what-makes-a-good-blog/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>How to play backed up Wii games without a mod chip</title>
		<link>http://www.thetazzone.com/how-to-play-backed-up-wii-games-without-a-mod-chip/</link>
		<comments>http://www.thetazzone.com/how-to-play-backed-up-wii-games-without-a-mod-chip/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 14:07:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[general tutorials]]></category>
		<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://www.thetazzone.com/?p=2652</guid>
		<description><![CDATA[This short article will outline the steps needed to install all the software required to play a backup version of any game you own and explain ‘homebrew’ and how to use it.
If you don’t own a copy of the game then obviously you will be breaking the law if you play a version that someone [...]]]></description>
			<content:encoded><![CDATA[<p>This short article will outline the steps needed to install all the software required to play a backup version of any game you own and explain ‘homebrew’ and how to use it.</p>
<p>If you don’t own a copy of the game then obviously you will be breaking the law if you play a version that someone has kindly backed up for you and uploaded to a newsgroup somewhere <img title="Smile" src="http://tazforum.thetazzone.com/images/smilies/icon_smile.gif" alt=":)" /></p>
<p>Before you can do anything you will need the following hardware:</p>
<p>2 GB or less SD Card – not SCHC for the initial steps but once the homebrew is loaded SDHC is fine.<br />
A copy of Zelda &#8211; Twilight Princes<br />
An SD card reader of some kind if your PC/Laptop doesn’t have a native on.</p>
<p>A nice cheap SD card that will work:<br />
<!-- m --><a href="http://www.amazon.co.uk/Sandisk-2GB-Secure-Digital-Card/dp/B000BQ7GW8/ref=sr_1_4?ie=UTF8&amp;s=electronics&amp;qid=1243004422&amp;sr=8-4">http://www.amazon.co.uk/Sandisk-2GB-Sec &#8230; 422&amp;sr=8-4</a><!-- m --></p>
<p>And a nice cheap SD Card reader:<br />
<!-- m --><a href="http://www.amazon.co.uk/Integral-One-SDHC-Card-Reader/dp/B000VY80AM/ref=sr_1_1?ie=UTF8&amp;s=electronics&amp;qid=1243004473&amp;sr=1-1">http://www.amazon.co.uk/Integral-One-SD &#8230; 473&amp;sr=1-1</a><!-- m --></p>
<p>Or for the ultra cheap, market place sellers will sell the following combination for less than buying them separate:<br />
<!-- m --><a href="http://www.amazon.co.uk/2GB-Integral-SD-Card-Reader/dp/B000W7WK4A/ref=sr_1_3?ie=UTF8&amp;s=electronics&amp;qid=1243004473&amp;sr=1-3">http://www.amazon.co.uk/2GB-Integral-SD &#8230; 473&amp;sr=1-3</a><!-- m --></p>
<p>There are many adaptors around, such as mini-SD to SD etc – these will not work, only 2 GB or less SD card will work.</p>
<p>Also, at this point you should check that your Wii has internet connectivity and it will need to download files from the Internet to complte the process.</p>
<p>Ok, now you have the hardware, a brief outline of what homebrew is and how it is used.</p>
<p><span style="text-decoration: underline;"><span style="font-weight: bold;">HOMEBREW:</span></span><br />
Homebrew is simply software written by normal non-commercial folks for the Wii (can be for other stuff too but this concentrates on the Wii) that is not released or supported by Nintendo and comes with no warranty at all &#8211; homebrew application are free and should never be sold commercialy &#8211; if someone tries to sell you a homebrew app, they are ripping you off.</p>
<p>Homebrew encompasses a wide range of applications, from games, emulators, text editors, MP3 players, DVD players and even a Metronome.</p>
<p>Most of the source code is also available along with the applications.<br />
To facilitate the loading of all these homebrew applications, there is a Homebrew Channel; which can be thought of as a framework for collating the homebrew applications, downloading them in a structured manner and launching them.</p>
<p>Within the Homebrew channel there is a utility called the Homebrew Browser, which is used to automatically download and extract the Homebrew application from the internet – this make life a lot easier.</p>
<p>A common misconception is that once you have installed the Homebrew Channel you will be able to play backed up games – this is not true, remember the Homebrew channel is just a framework for the application; you will still need the relevant applications to allow you to play backed up games.</p>
<p><span style="font-weight: bold;">(HOMEBREW IS FREE SO PLEASE DO NOT USE THE MANY WEB SITES THAT TRY TO CHARGE YOU FOR THE SOFTWARE AND A NICE INSTRUCTION BOOK ON HOW TO INSTALL IT. THRE ARE A MULTITUDE OF GUIDES FLOATING AROUND FOR FREE THAT WILL WALK YOU THROUGH DOING IT)</span></p>
<p><span style="text-decoration: underline;"><span style="font-weight: bold;">INSTALLING THE HOMEBRW CHANNEL:</span></span><br />
Obviously Nintendo don’t include functionality to make a few API calls and installs any software a user wants to, so we need to exploit a buffer overflow within a game to allow us to execute the source code for the Homebrew channel and install it.<br />
To do this you will need Zelda Twilight Princess as this is what is exploited to install the code. At the time of this writing this is the only game than can be used to my knowledge but doubtless other games will be found in due course that can also be used. (If you absolutely can’t do this, another option may be to update your Wii to version 4.0 and follow the BannerBomb instructions at the bottom of this post)</p>
<p>To start off with you will need to determine what version IOS your Wii is running. To do this simply start the Wii up, click on the Wii button on the bottom left of the screen, and go to</p>
<p>Wii Settings. One the resulting screen in the very top right hand side you will see the version number – if it is 3.3 or 3.4 (there may be a letter after it but ignore this for now) you will need to download something called the Twilight Hack (named after the Zelda game strongly enough). This can be obtained from here:<br />
<!-- m --><a href="http://hbc.hackmii.com/download/">http://hbc.hackmii.com/download/</a><!-- m --></p>
<p>As the web page says, you will need a different version depending on what version your Wii is running at:</p>
<p><span style="font-style: italic;">3.3 and earlier: twilight-hack-v0.1-beta1.zip<br />
3.4: twilight-hack-v0.1-beta2.zip</span></p>
<p>If you have version 4 then this method will not work but it is still possible – see the bottom of this post for instructions.</p>
<p>So create a folder on your desktop called Wii, in this create a folder called TL, then copy the relevant twilight hack and extract it to the TL folder. You can name the folders anything you want this post will presume you are following the naming standard.</p>
<p>Depending on where in the world you are, you will need a different version of the hack (they are all included in the download). Take a look at your game disc; look on the underside of it and around the centre of the disk (on the shiny bit  ) is some very small writing, such as RVL-RZDP-0A-0 JPN. Make a note of this before you put the disc in the Wii as it will become very important when you chose the version of the twilight hack to use later on.</p>
<p>Now we need to get the Homebrew software, so go here <!-- m --><a href="http://hbc.hackmii.com/download/">http://hbc.hackmii.com/download/</a><!-- m --> and download the Homebrew-Channel.tgz file – marked (DOL (For usage with Twilight Hack &amp; other booting methods))</p>
<p>Copy this to your Wii folder and extract it to Wii\home_channel.</p>
<p>You should now have the twilight hack and the homebrew channel software downloaded.</p>
<p>To play backed-up games you will need a few more homebrew apps – there are a few circulating that will work but for this I will use Backup Auto Launcher 3.0beta by a guy called Wiigator.<br />
<!-- m --><a href="http://www.megaupload.com/?d=OLZZUJSJ">http://www.megaupload.com/?d=OLZZUJSJ</a><!-- m --></p>
<p>(Update, Backup Launcher 3.0gamma is now out &#8211; can be download from here: <!-- m --><a href="http://atkinx.com/files/backuplauncher0.3_gamma.zip">http://atkinx.com/files/backuplauncher0.3_gamma.zip</a><!-- m --> &#8211; the instalation and usage is exactly the same as for the beta one)</p>
<p>Download this and extract it to Wii\Backup.</p>
<p>This should be all the files needed to initially set everything up.</p>
<p><span style="text-decoration: underline;"><span style="font-weight: bold;">TWILIGHT HACK:</span></span></p>
<p>The twilight hack uses a buffer overflow within the Zelda game to obtain arbitrary code execution. It does this by naming the horse with an overly long name.</p>
<p>What does this mean: If you don’t care, skip this part &#8211; if you do read on.<br />
******************************************************************************<br />
All computers and game consoles read program code from memory, this works by the console first reading the code form the disk, placing it into memory and then the CPU executes this code as required.</p>
<p>At the beginning of the Zelda game you are prompted to name the horse &#8211; by doing this a little piece of the console memory is allocated to store the horse’s name that you supply (called a buffer)– should you supply a name that is longer than the piece of memory allocated to hold it, then the name will ‘spill’ over into other parts of the memory, known as a buffer overflow.<br />
The console does not know that this extra data is the horses name and tries to execute it as it would any other code that makes up the game. If the code is invalid, then the console will crash as it won’t know what to do with it – however if it is valid code it will execute it and do what it is told – they guys who come up with the twilight hack, use a saved game that has an overly long horses name in it to cause this overflow and have the Wii execute code that they have supplied – namely to install the Homebrew channel.</p>
<p>All the user has to do, is get to a point of the game where it tries to read the horses name and display it to the screen, as soon as it tries this, the overflow occurs and we get the third party code executed – fortunately this is right at the start of the game, so other than having to sit through the long, depressing and hideously boring start to Zelda you won’t have to do much more.<br />
***************************************************************************</p>
<p>Now we need to get the folders copied to the SD card.</p>
<p>Insert the card and (assuming you are using Windows) browse to My Computer, click once on the SD card and look at the information bar of the right of the Window – if it says File System FAT then you are OK to continue (SD cards should be FAT by default). If it says anything else, right click the icon, select ‘format’ , chose FAT from the drop down menu and click start &#8211; after a few seconds it should finish and you are free to continue.</p>
<p>Go to the Wii \TL folder and copy the directory called “private” to the SD card. Now go to the Wii\Home_channel folder and copy the boot.dol file and the folder named wiiload and also copy these to the SD card. Whilst you are in the SD card window, also create a directory called “apps”.</p>
<p>Your SD card should now look like this:</p>
<p><a href="http://img38.imageshack.us/my.php?image=sdcard.jpg"><img src="http://img38.imageshack.us/img38/7012/sdcard.jpg" alt="Image" width="614" height="325" /></a></p>
<p>So once the SD card is ready, insert the Zelda game disk and start the game, play it for a while and make sure you save the game once – this is imperative or the hack won’t work.</p>
<p>Once you are sure you have a saved game, exit it and come back to the main Wii menu. Insert the SD card and click on the Wii button in the bottom left of the main screen, select Data Management, Save Data, Wii.</p>
<p>Locate the Zelda saved file, click it and erase it (if you have been playing the game for a while you will want to back this up first as otherwise you will lose all of your saved game data). Once this is deleted, click on the SD Card tab in the top right and you will see a few Twilight Hack files.</p>
<p>Copy across the relevant version of the twilight hack for you Wii system version to the Wii memory.<br />
If you have Wii version 3.4 it is important that you do not turn off the system or you will have to start the whole process all over again.</p>
<p>Come back to the main menu and Insert the Zelda game disk, start the game and when prompted to load your save file chose one of the following:</p>
<p>Depending on the writing that was on the underside of your disk select the right save game slot as per this:</p>
<p>RVL-RZDP-0A-0 JPN      -&gt;        Twilight Hack<br />
RVL-RZDJ-0A-0 JPN       -&gt;        Twilight Hack<br />
RVL-RZDE-0A-0 JPN      -&gt;        TwilightHack0<br />
RVL-RZDE-0A-0 USA     -&gt;        TwilightHack0<br />
RVL-RZDE-0A-2 USA     -&gt;        TwilightHack2</p>
<p>Select the relevant one and continue the game, once it loads up walk up to the man in front of you and once he starts talking the buffer overflow will occur.</p>
<p>This is where the Homebrew channel will be installed – if you don’t install this, you will have to go through the twilight hack every time you want to run homebrew.</p>
<p>The installation of the Homebrew channel is very simple and will prompt you with on screen instructions – just follow these steps until it is complete.</p>
<p>You should now have the Homebrew channel installed. To verify it, reset the Wii and in the main window you should have a new channel called The Homebrew Channel, select this and click Start.</p>
<p>Once loaded select the Homebrew Browser – this will connect to the Internet and download a list of the latest homebrew applications, feel free to poke around and install what you want.</p>
<p>Once you get board of this, come out of the homebrew channel, back to the main menu and take out the D card and put in back in your laptop/PC. In the Wii\Backup folder there should be three folders and a read me – copy the cIOS_Installer and Backup_Launcher folder in to the ‘apps’ directory on the SD card.</p>
<p>(This is the easiest way to install and further homebrew applications that cannot be downloaded via the homebrew browser, just put them in a folder within the app folder and if necessary rename the .dol file to be boot.dol – if you don’t do this it will not work)</p>
<p>Now insert the SD card into the Wii and go back to the homebrew channel. You should now see two new icons called cIOS and Backup Launcher – first select the cIOS one and follow the prompts to install it, when it has finished, reset the Wii and go back to the homebrew channel, now select the backup loader application and install this – reset the Wii, insert your copied erm I mean backed up game, go to the homebrew channel, select the Backup Loader application and load your game.<br />
Sometimes you may have issues, if you do go to the config option in the backup loader and change the ‘hook’ to be ‘GC Controller’ and try again.</p>
<p>If you want to have the backup loader be available in a channel box on the main Wii menu you will need to install a WAD Manager and download the Backup Launcher WAD file.</p>
<p>To do this, first get the WAD Manager .wad file from <!-- m --><a href="http://gbatemp.net/index.php?download=3587">http://gbatemp.net/index.php?download=3587</a><!-- m --><br />
But don’t follow the instruction include within the readme or on that site with the method of using homebrew.</p>
<p>Extract the file, and in the ‘apps’ folder on the SD card create a new folder call wad – copy across the WAD-Manager-1.3.dol file in to the apps\wad directory and rename it to boot.dol (as mentioned before this is the way to run other homebrew apps). Now in the root of the SD card create a folder called wad and download this version of Backup Launcher that has been<br />
modified by someone else: <!-- m --><a href="http://www.mediafire.com/file/jzgimmixmmk/BackupLauncher_0.3.rar">http://www.mediafire.com/file/jzgimmixm &#8230; er_0.3.rar</a><!-- m --> (which can be read about here <!-- m --><a href="http://vettacossx.wordpress.com/2008/10/28/auto-boot-for-wiigators-03-beta-backup-launcher-fullspeed-no-lag-how-about-that/">http://vettacossx.wordpress.com/2008/10 &#8230; bout-that/</a><!-- m --> )</p>
<p>Copy the file called HB-BackupLaucner.dol.wad into the wad directory you create in the root of the SD card (not the apps\wad directory).</p>
<p>Once this is done, insert the SD card and get to the homebrew channel, you should have a new option now called /apps/wad/boot.dol (you can alter this via an XML file if you really want to), select this and the application will go to the wad file that is in the root of the SD card and ask you if you want to install any of the WAD there. (If you want to install subsequent wad files, just drop them in here and run the WAD Manager), at the moment there is only one so press the + button on the Wii remote and wait for it to be installed.</p>
<p>When it is finished, reset the Wii and now in the main Wii menu you will have a new channel for the Backup Launcher.</p>
<p>* A lot of people seem to think DVDx is required for this method to work, this is not true, you do not need it to play backed up games via Backup Lancher*</p>
<p>Insert the disk and select this to play.</p>
<p>A word of warning about updates installed on games – if you buy a new gamed (or old one) some of them come packaged with updates for the Wii – obviously we don’t want this to be installed (likewise do not download any updates from Nintendo from now). If you have an ISO and are worried it may have an update, download BrickBlocker from</p>
<p><!-- m --><a href="http://wbb.rockman18.com/?page=home&amp;ln=en">http://wbb.rockman18.com/?page=home&amp;ln=en</a><!-- m --></p>
<p>This is very simple to do, just run the WiiBrickBlocker.exe file and give it the path to your ISO image – it will automatically remove any system updates from the image for you.</p>
<p>Depending on where you got the ISO from you may also need to convert it to be compatible with the soft-mod &#8211; for this you will need a program called backup-creator.exe. This is a application that will modify the ISO for you; however, it was not meant to be made public yet by the author (waninkoko) and was leaked to the general public &#8211; as such the author is no longer working on the project. The download liks come and go constantly as some places take it down out of respect for the author etc &#8211; give it a Google and you will be able to find a download link somewhere &#8211; current it can be obtained from here:<br />
<!-- m --><a href="http://rapidlibrary.com/index.php?q=backup+creator+exe+wii">http://rapidlibrary.com/index.php?q=bac &#8230; or+exe+wii</a><!-- m --> (This is not were I got it from, so I can&#8217;t vouch for the authenticity of the tool).</p>
<p>Once you hae downloaded it, simply run the exe file from a command prompt and give it the name of the ISO, after a short while it will spit out a new ISO named partition.iso &#8211; this is the patched game that you will need to burn.</p>
<p>Now either burn the ISO to a DVD or copy it to a USB hard drive (which ever method you are using) and play as normal.</p>
<p><span style="text-decoration: underline;"><span style="font-weight: bold;">I HAVE WII SYSTEM VERSION 4:</span></span><br />
Luser  <img title="finger" src="http://tazforum.thetazzone.com/images/smilies/finger.gif" alt=":finger:" /></p>
<p>You can still do the above but you will not be able to use the twilight hack you will need to use BannerBomb exploit from here <!-- m --><a href="http://wiibrew.org/wiki/Bannerbomb">http://wiibrew.org/wiki/Bannerbomb</a><!-- m --></p>
<p>I have not done this myself as I don’t have this version Wii but the instructions seem simple enough – the below instructions are copied from the above site and included here for completness:</p>
<p>1.If your SD card has a private directory, rename it temporarily, e.g. to &#8220;privateold&#8221;. Having other saved channels on the same card will screw it up. (Also, if you don&#8217;t have any channels on the SD card already, it&#8217;s possible to skip this step so you can keep saves on your SD card)</p>
<p>2.Copy the Bannerbomb &#8220;private&#8221; folder to the root of your SD card.</p>
<p>3.Take your Wii executable, name it &#8220;boot.dol&#8221; or &#8220;boot.elf&#8221; if it isn&#8217;t already, and save it in the root directory of your SD card.</p>
<p>4.Put your SD card in your Wii and turn it on.</p>
<p>5.Go into Wii Options &#8211;&gt; Data Management &#8211;&gt; Channels &#8211;&gt; SD Card.</p>
<p>6.A message should appear asking to &#8220;load boot.dol/.elf&#8221;. If it freezes or does not appear, download the next .zip file from the Bannerbomb website (<!-- m --><a href="http://bannerbomb.qoid.us/">http://bannerbomb.qoid.us/</a><!-- m -->) and start over.</p>
<p>7.The homebrew on your SD card will load. Enjoy!</p>
<p>8.(Optional) Fill out Comex&#8217;s survey on the Bannerbomb website.</p>
<p>The downside to this is that a large portion of the app do not currently work properly with version 4.0 &#8211; the backup launcher does not; however, once you have the homebrew channel installed you can downgrade the IOS version of the Wii to 3.3 &#8211; I have not had to do that so you&#8217;ll have to Google around for some tutorials on this.</p>
<p>Good luck.</p>
<p><span style="font-weight: bold;">Troubleshooting </span></p>
<p>I can&#8217;t cover many troubleshooting steps and most things went OK for me.</p>
<p>Some issues I did come across though:</p>
<p>Sometimes the game would load via Backup Launcher &#8211; upgrade to the gamma version if necessary (just remove the cIOS_Installer and Backup_Installer files from the SD card and replace them with the new ones &#8211; reinstall the cIOS, then in the backup loader options menu, set the Force PAL / NTSC that is relevant for your country (America and/or American games will be NTSC, UK and most of Europe will be PAL &#8211; I use PAL60), change the hook type to GC Pad, exit out to main backup launcher menu and press B. This will reboot the Wii and make the relevant hooks, now go back to the backup launcher menu and launch the game as normal.</p>
<p>If you still have issues try only changing on option at a time.</p>
<p>If you have burnt your own ISO, try reburning it at the lowest possible speed.</p>
<p>Backup Launcher should play decrypted and normal Wii games, so there is no need to use the backup-creator.exe on the ISO, if you have try reburning the original ISO, and if you didn’t use it you could try reburning a patched ISO.</p>
<p>If you still have issues and all the software is installed correctly and updated, then it is 99% certain that the problem will be the media you are using. Cheap disc&#8217;s may not be read correctly, different formats of DVD can cause issues, i.e DVD-R, DVD+R, DVD-RW, DVD+RW etc, so if you are able to, try using another format and see if the problem goes away. I use DVD-R mainly but some games I have don&#8217;t work on this format but run fine on DVD+R so it is trial and error and no one format is the right one&#8230;</p>
<p>Some games just simply do no work. There is a regulary updated compatibility chart here: <!-- m --><a href="http://wiki.gbatemp.net/wiki/index.php/Backup_Launcher">http://wiki.gbatemp.net/wiki/index.php/Backup_Launcher</a><!-- m --></p>
<p>If you use it, please contribute back and update it with any games you try.</p>
<p>ORIGINALLY POSTED BY HARRY FOR THETAZZONE/TAZFORUM <a href="http://tazforum.thetazzone.com/viewtopic.php?f=31&amp;t=12654">HERE</a></p>
<p>Do not use, republish, in whole or in part, without the consent of the Author. TheTAZZone policy is that Authors retain the rights to the work they submit and/or post…we do not sell, publish, transmit, or have the right to give permission for such…TheTAZZone merely retains the right to use, retain, and publish submitted work within it’s Network</p>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

]]></content:encoded>
			<wfw:commentRss>http://www.thetazzone.com/how-to-play-backed-up-wii-games-without-a-mod-chip/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Virus and Spyware Removal Process</title>
		<link>http://www.thetazzone.com/virus-and-spyware-removal-process/</link>
		<comments>http://www.thetazzone.com/virus-and-spyware-removal-process/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 14:03:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[general tutorials]]></category>
		<category><![CDATA[removal]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[spyware]]></category>
		<category><![CDATA[virus]]></category>

		<guid isPermaLink="false">http://www.thetazzone.com/?p=2649</guid>
		<description><![CDATA[Virus and Spyware Removal Process
Assumptions:
I am assuming that the reader is using a Windows operating system, has administrator rights (is allowed to download and install programs), and knows how to access safe mode. The reader can assume that all recommended software is free for personal use unless specified otherwise.
Forword:
The difficulty of performing a thorough virus [...]]]></description>
			<content:encoded><![CDATA[<div id="postdiv131545"><span style="text-decoration: underline;"><span style="font-weight: bold;">Virus and Spyware Removal Process</span></span></p>
<p><span style="font-style: italic;">Assumptions:</span></p>
<p>I am assuming that the reader is using a Windows operating system, has administrator rights (is allowed to download and install programs), and knows how to access safe mode. The reader can assume that all recommended software is free for personal use unless specified otherwise.</p>
<p><span style="font-style: italic;">Forword:</span></p>
<p>The difficulty of performing a thorough virus removal on a badly infected machine is often underestimated. It tends to require more than simply running a scan with your favourite antivirus program. I’ll attempt to lay out the steps for virus removal in the following steps, but before you begin keep in mind that it is a thorough and time consuming process. The thoroughness is necessitated by the nature of modern infections. If you miss one Trojan horse, your system will quickly arrive at the same level of infection once the malware re-invites all of its buddies.</p>
<p><span style="font-weight: bold;">Step 1: Determine whether or not you have a virus infection. </span></p>
<p>Typical virus behaviour may include the following:</p>
<p>* Frequent system error messages<br />
* Slowness<br />
* Hard drive activity (spinning/writing) for no apparent reason<br />
* Lots of network activity, also for no apparent reason<br />
* Difficulty with programs, especially antivirus programs. For example, you may have difficulty updating your antivirus definitions or the program may not start at all.<br />
* Your browser randomly redirects to another web page without any action on your part.<br />
* Your browser prevents you from accessing certain websites, especially to update your operating system or download an antivirus program.<br />
* You begin seeing pop-up ads frequently.<br />
* New and unfamiliar icons appear in your system tray, indicating new programs are running without your knowledge.<br />
* You are denied permission when working on the computer even though you are an administrator.</p>
<p>Also keep in mind that a computer virus is similar to a roach in that there’s rarely just one. By the time you notice one virus, you probably have several.</p>
<p><span style="font-weight: bold;">Step 2: Determine the severity of the infection.</span></p>
<p>The severity of the infection should reflect to what degree your ability to access the computer normally is impeded. This will help you decide if you should attempt a virus removal at all or if you should simply back up your data and start from scratch with a format/reinstall. If you can do most everything you could normally do, but you know that you have a virus, the severity might rank as a one on a one to ten scale (ten meaning infected on a massive scale). Keep in mind that the worse the infection, the greater the damage caused by ripping the infection out during the removal process. If you cannot even access your computer in safe mode, you might consider the severity to be a ten. In this case, your computer has the equivalent of advanced-stage AIDS and should be formatted.</p>
<p><span style="font-weight: bold;">Step 3: Remove temp files.</span></p>
<p>Spyware often sits in the temp files and you can get rid of lots of malware simply by deleting temp files. More importantly however, you will save yourself tons of time when you scan for viruses because the scanners will not have to trudge through thousands of temporary internet files. When you run five or six scans, the amount of time you save adds up in a hurry. To accomplish this, I recommend running <a href="http://www.ccleaner.com/">CCleaner</a>. If you cannot install this program, you could also clean out the files by navigating to the directory C:\Documents and Settings\YOURUSERNAME\Local Settings\Temporary Internet Files and cleaning out all of the unnecessary stuff. You might also want to run the CCleaner registry cleanup program. Sometimes this will get rid of viral registry keys. Another decent registry cleaner is <a href="http://www.pctools.com/registry-mechanic/">Registry Mechanic</a>, but only the trial version is free.</p>
<p><span style="font-weight: bold;">Step 4: Disable System Restore</span></p>
<p>Some viruses copy themselves into system restore files to avoid deletion. To remove these, it is necessary to disable system restore (which is largely worthless anyway in my opinion). Navigate to Start -&gt; Programs -&gt; Accessories -&gt; System Tools -&gt; System Restore. Disable system restore and make sure all prior restore points are deleted (they should be automatically).</p>
<p><span style="font-weight: bold;">Step 5: Based on the severity of the infection, plan your method of attack.</span></p>
<p>The important thing to keep in mind while planning your attack is that no one antivirus or antispyware program will find every infection. Organizations that are paid to remove viruses will use no less than nine or ten different antimalware programs and every single program will find something different. I’ve seen this personally hundreds of times.</p>
<p><span style="text-decoration: underline;">Scenario 1:</span> If you are able to access the internet while in safe mode.</p>
<p>If you are able to boot into Windows “safe mode” with networking and access the internet, you have the option of installing antivirus/antispyware software, updating the definitions, and scanning from within safe mode. If this is your case, you will choose the various antivirus/antispyware programs you intend to run and update the definitions to prepare for the next step. Select the anti-malware programs you will run from the list below (programs are listed in NO PARTICULAR ORDER). Install the ones that you have selected and go ahead and update all of them.</p>
<p><span style="font-style: italic;">Antispyware:</span></p>
<p><a href="http://www.superantispyware.com/">Super Antispyware</a><br />
<a href="http://www.safer-networking.org/index2.html">Spybot Search &amp; Destroy</a><br />
<a href="http://www.malwarebytes.org/">Malwarebytes</a><br />
<a href="http://www.lavasoft.com/">AdAware</a><br />
<a href="http://www.pctools.com/spyware-doctor/">Spyware Doctor</a><br />
<a href="http://www.combofix.org/">Combofix</a><br />
<a href="http://free.antivirus.com/cwshredder/">CWShredder</a></p>
<p><span style="font-style: italic;">Antivirus:</span></p>
<p><a href="http://free.avg.com/">AVG Antivirus</a><br />
<a href="http://www.avast.com/">Avast</a><br />
<a href="http://www.avira.com/en/pages/index.php">Avira</a><br />
<a href="http://www.softpedia.com/get/Antivirus/McAfee-AVERT-Stinger.shtml">McAfee Stinger</a><br />
<a href="http://www.sophos.com/products/free-tools/sophos-anti-rootkit.html">Sophos AntiRootkit</a></p>
<p><span style="font-style: italic;">Online Antivirus Scanners:</span></p>
<p><a href="http://housecall.trendmicro.com/">TrendMicro Housecall</a><br />
<a href="http://www.pandasecurity.com/homeusers/solutions/activescan/">Panda</a><br />
<a href="http://www.kaspersky.com/virusscanner">Kaspersky</a><br />
<a href="http://www.bitdefender.com/scanner/online/free.html">Bit Defender</a></p>
<p>If you’d like to go the non-free route, I highly recommend Spy Sweeper Antivirus with Antispyware as well as AVG AntiSpyware (formerly Ewido).</p>
<p><span style="text-decoration: underline;">Scenario 2:</span> If you are unable to access the internet while in safe mode.</p>
<p>If you are unable to access the internet even while booted into safe mode, your best option is to use a boot disc such as <a href="http://www.ultimatebootcd.com/">Ultimate Boot CD</a>, <a href="http://www.hirensbootcd.net/">Hiren’s Boot CD</a> (which includes a PE), or <a href="http://www.nu2.nu/pebuilder/">Bart’s PE</a>. If your situation is severe enough to necessitate this option, you might want to run command-line antivirus scanners first, then boot into a PE and run cleaners and antispyware programs to follow up.</p>
<p><span style="font-weight: bold;">Step 6: Run Antimalware</span></p>
<p>Now begins the easiest and yet also the most time consuming part. I recommend selecting two or three of the antivirus programs to run first. If you are working in Windows safe mode, you should run one scanner at a time. If you are working in a PE or with a boot disc, you can run as many as you want simultaneously. Follow up with multiple (preferably all) of the antispyware programs next. Next try running one of the online antivirus scanners. Each scanner should find progressively fewer infections.</p>
<p><span style="font-weight: bold;">Step 7: HijackThis</span></p>
<p><a href="http://download.cnet.com/Trend-Micro-HijackThis/3000-8022_4-10227353.html">HijackThis</a> requires a step of its own. This utility is unlike any of the others because it does not automatically detect and remove infections. Instead, if provides you with a cross-sectional look at your system and is ideal for cleaning up after an infection as well as making sure there are no longer any traces left. Run this utility and post the output in a new Taz thread or in one of the many HijackThis support forums to get feedback on what (if anything) should be removed.</p>
<p><span style="font-weight: bold;">Step 7: Run fixes </span></p>
<p>After your system is clean, it can sometimes be helpful to download and run <a href="http://www.softpedia.com/get/System/System-Miscellaneous/Dial-a-fix.shtml">dial-a-fix</a> to repair many of the things that viruses tend to screw up in Windows. You may also want to run winsock fix. In Windows XP SP2 and later (including Vista) you can simply type “netsh winsock reset” from the command line.</div>
<p>ORIGINALLY POSTED BY KEEZEL FOR THETAZZONE/TAZFORUM <a href="http://tazforum.thetazzone.com/viewtopic.php?f=31&amp;t=12981">HERE</a></p>
<p>Do not use, republish, in whole or in part, without the consent of the Author. TheTAZZone policy is that Authors retain the rights to the work they submit and/or post…we do not sell, publish, transmit, or have the right to give permission for such…TheTAZZone merely retains the right to use, retain, and publish submitted work within it’s Network</p>
<p><span><br />
</span></p>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

]]></content:encoded>
			<wfw:commentRss>http://www.thetazzone.com/virus-and-spyware-removal-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial &#8211; PHP for Newbies 3</title>
		<link>http://www.thetazzone.com/tutorial-php-for-newbies-3/</link>
		<comments>http://www.thetazzone.com/tutorial-php-for-newbies-3/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 14:01:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apache and php tutorials]]></category>
		<category><![CDATA[general tutorials]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutorials]]></category>

		<guid isPermaLink="false">http://www.thetazzone.com/?p=2646</guid>
		<description><![CDATA[Tutorial – PHP for Newbies 3
In this segment, I&#8217;ll be covering a few methods of passing information from one web page to another via a URL, via a session, and via cookies.
Introduction
Before delving too deeply into any of the above, I&#8217;d like to take a moment to introduce you to the predefined methods used in [...]]]></description>
			<content:encoded><![CDATA[<div id="postdiv130580"><span style="text-decoration: underline;"><span style="font-weight: bold;">Tutorial – PHP for Newbies 3</span></span></p>
<p>In this segment, I&#8217;ll be covering a few methods of passing information from one web page to another via a URL, via a session, and via cookies.</p>
<p><span style="font-weight: bold;">Introduction</span></p>
<p>Before delving too deeply into any of the above, I&#8217;d like to take a moment to introduce you to the predefined methods used in PHP to retrieve stored information. Pay special attention to the first five.</p>
<p>$_GET['variablename'] corresponds with the HTML “get” method used in HTML forms (which will be covered in the next tutorial).<br />
$_POST['variablename'] as you can imagine corresponds with the HTML “post” method used in HTML forms.<br />
$_SESSION['variablename'] is used to create and retrieve information stored in PHP sessions.<br />
$_COOKIE['variablename'] is used to create cookies and retrieve information stored within cookies.<br />
$_REQUEST['variablename'] is used to retrieve variables that have been posted using any of the above methods.<br />
$_SERVER['variablename'] is used to retrieve variables from the server.<br />
$_FILES['variablename'] is used to retrieve variables from an uploaded file.<br />
$_ENV['variablename'] is used to retrieve variables assigned from the operating environment.</p>
<p>I will only be utilizing the first five of the above during this and the next few tutorials.</p>
<p><span style="font-weight: bold;">Passing a Variable through a URL</span></p>
<p>Let&#8217;s take a look at a URL first.</p>
<div><strong>Code:</strong></div>
<div>Http://www.mydomain.com/sub/directory/thispage.php?id=12345&amp;desc=AWESOME</div>
<p>The portion all the way through .php simply points to the file. The “?” onward is the part of interest. Notice the “something=value&amp;somethingelse=anothervalue” format. You can assign values to the next page by adding them into the URL as demonstrated above and join multiple together with &amp;. It&#8217;s worth noting that this is the URL the user sees in the browser, therefore this method of passing information from one page to another is completely insecure and fairly cumbersome for the user. That being said, it&#8217;s perfect for simple, short bits of code that you don&#8217;t mind the user seeing. To demonstrate how this works, you will need to create two files this time. Name them infourl1.php and infourl2.php. I&#8217;ll be using &#8220;desc&#8221; short for description (because that&#8217;s how my strange little mind works).</p>
<p>In infourl1.php input the following:</p>
<div><strong>Code:</strong></div>
<div>&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;My Title is Different.&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;?php<br />
echo &#8220;&lt;a href=&#8217;infourl2.php?desc=AWESOME&#8217;&gt;&#8221;;<br />
echo &#8220;Click here!&#8221;;<br />
echo &#8220;&lt;/a&gt;&#8221;;<br />
?&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p>In infourl2.php input the following:</p>
<div><strong>Code:</strong></div>
<div>&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;My Title is &lt;?php echo $REQUEST['desc']; ?&gt;&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;?php<br />
echo &#8220;This page is &#8220;;<br />
echo $_REQUEST['desc'];<br />
echo &#8220;!&lt;br /&gt;&#8221;;<br />
?&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p>Browse to <!-- m --><a href="http://localhost/variableurl1.php">http://localhost/variableurl1.php</a><!-- m -->.</p>
<p>Click on the link and you should be brought to a page that displays the text: “This page is AWESOME!” Keep in mind that in the above example you have not created a variable “$desc”. In fact, you could add the line echo $desc; before the ?&gt; closing tag and nothing would appear. You must refer to ['desc'] with the $REQUEST method, or you can use a different method to define a variable on one page, pass it to another, then refer to that variable. As you can imagine, this is far more useful.</p>
<p>The tricky part about defining a variable and then passing it through the URL is that URLs are extremely particular about characters (like spaces for example), and variables tend to contain characters that do not play nicely with URLs. To address this problem, PHP uses the urlencode() function. Let&#8217;s try this out by editing the same files listed above.</p>
<p>In infourl1.php input the following:</p>
<div><strong>Code:</strong></div>
<div>&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;My Title is different.&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;?php<br />
$desc = urlencode(&#8221;FREAKING RIDICULOUSLY AWESOME&#8221;);<br />
echo &#8220;&lt;a href=&#8217;infourl2.php?desc=$desc&#8217;&gt;&#8221;;<br />
echo &#8220;Click here!&#8221;;<br />
echo &#8220;&lt;/a&gt;&#8221;;<br />
?&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p>For this example, infourl2.php will not change. It will still retrieve desc (not the variable) from the URL, which now contains the <span style="font-style: italic;">variable</span> $desc.  Navigate to <!-- m --><a href="http://localhost/inforurl1.php">http://localhost/inforurl1.php</a><!-- m --> and follow the link to see what happens! As you can imagine, passing a variable from one page to another via the URL is much more useful, but it still adds the entire contents of the variable into the URL, taking up tons of space and is plain for all to see. Note that adding the line</p>
<div><strong>Code:</strong></div>
<div>echo $desc;</div>
<p>to infourl2.php before the ?&gt; closing tag still does not have any effect. You must still use $REQUEST. It&#8217;s also worth noting that using this method may confuse a browser and risks old information coming up when a user presses “back” or visits a cached version of the page.</p>
<p>As you can see, passing a variable through a URL has some obvious drawbacks despite being fairly quick and easy to implement. Next I&#8217;ll show you a better alternative.</p>
<p><span style="font-weight: bold;">Passing a Variable using Sessions</span></p>
<p>Sessions are used to transmit information of a more sensitive nature (such as login information, phone number, address, full name, etc). A session creates a temporary set of variables that that by default disappear when the browser is closed. Sessions are assigned a unique ID. This is necessary for the sake of keeping track of the currently assigned values in the variable array. This ID can be passed through the URL or can be stored in a cookie (which will be discussed later). You begin a session using the function session_start(). To illustrate how sessions transmit information (like a username and password), we will ignore the fact that these are usually input and simply add them into the code ourselves strictly for the purpose of demonstrating the inner workings of a session. Create two files, sessionpractice1.php and sessionpractice2.php.</p>
<p>In sessionpractice1.php input the following:</p>
<div><strong>Code:</strong></div>
<div>&lt;?php<br />
session_start();<br />
$_SESSION['username'] = &#8220;User&#8221;;<br />
$_SESSION['authuser'] = 1;<br />
?&gt;<br />
&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;?php<br />
$genericvariable = urlencode(&#8221;generic text&#8221;);<br />
echo &#8220;&lt;a href=&#8217;sessionpractice2.php?variable=$genericvariable&#8217;&gt;&#8221;;<br />
echo &#8220;Click the link!&#8221; . &#8220;&lt;/a&gt;&#8221;;<br />
?&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p>In sessionpractice2.php input the following:</p>
<div><strong>Code:</strong></div>
<div>&lt;?php<br />
session_start();<br />
//The following will check to see if the user is authenticated<br />
if ($_SESSION['authuser'] != 1)<br />
{<br />
echo &#8220;Sorry, you are not authorized to see this page!&#8221;;<br />
exit();<br />
}<br />
?&gt;<br />
&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;?php<br />
echo &#8220;Welcome to the site, &#8220;;<br />
echo $_SESSION['username'];<br />
echo &#8220;! &lt;br /&gt;&#8221;;<br />
echo &#8220;Check out this neat &#8220;;<br />
echo $_REQUEST['variable'];<br />
echo &#8220;&lt;br /&gt;&#8221;;<br />
?&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p>Notice the PHP script <span style="text-decoration: underline;">before </span>the &lt;html&gt; tag.  <span style="font-style: italic;">This is critical!</span> It is also critical that there are no spaces before this initial script begins. Also note that it is necessary to use the session_start() function on every page that references the session variables. The above will work every time, and you will never see the “Sorry, you are not authorized&#8230;” text because it&#8217;s rigged to always work. To experiment, change the value of authuser to 0 in the first script, save, and then again navigate to<!-- m --> <a href="http://localhost/sessionpractice1.php">http://localhost/sessionpractice1.php</a><!-- m -->. Finally, you may be wondering how to pass the session ID everything is tied to from one page to another. To answer that question, I should explain how cookies work.</p>
<p><span style="font-weight: bold;">C is for Cookie&#8230;</span></p>
<p>Cookies allow you to store information locally on the user&#8217;s computer for a specified length of time. The thing about cookies is they are quite helpful but impossible to rely on for a variety of reasons. Some people disable cookies, and most people clear them out routinely as a part of operating system maintenance. That being said, they are useful for storing information (such as the fields in a form) after the browser has been closed. (Remember that sessions expire when the browser is closed). Cookies are set using the PHP function setcookie(). When you set the cookie, you must specify a cookie name, value, and optionally the expiration timer, and whether or not a secure connection is required. The syntax looks like the following:</p>
<p>setcookie(&#8217;cookiename&#8217;, &#8216;value&#8217;, &#8216;expiration timer&#8217;, &#8217;secure connection&#8217;);</p>
<p>There are other options available for cookies, but are beyond the scope of this tutorial. Let&#8217;s try an example. Create two files, the first named cisforcookie1.php and the second cisforcookie2.php.</p>
<p>Input the following into cisforcookie1.php:</p>
<div><strong>Code:</strong></div>
<div>&lt;?php<br />
setcookie(&#8217;username&#8217;, &#8216;Sprocket&#8217;, time()+60);<br />
?&gt;<br />
&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;?php<br />
$genericvariable = urlencode(&#8221;generic text&#8221;);<br />
echo &#8220;&lt;a href=&#8217;cisforcookie2.php?variable=$genericvariable&#8217;&gt;&#8221;;<br />
echo &#8220;Click the link!&#8221;;<br />
echo &#8220;&lt;/a&gt;&#8221;;<br />
?&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p>Input the following into cisforcookie2.php:</p>
<div><strong>Code:</strong></div>
<div>&lt;?php<br />
session_start();<br />
?&gt;<br />
&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;?php<br />
echo &#8220;Welcome to the site, &#8220;;<br />
echo $_COOKIE['username'];<br />
echo &#8220;! &lt;br /&gt;&#8221;;<br />
echo &#8220;Check out this neat &#8220;;<br />
echo $_REQUEST['variable'];<br />
echo &#8220;. &lt;br /&gt;&#8221;;<br />
?&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p>Now navigate to <!-- m --><a href="http://localhost/cisforcookie1.php">http://localhost/cisforcookie1.php</a><!-- m --> and click on the link.  On the next page, if your browser allows cookies you should see the output:</p>
<p>Welcome to the site, Sprocket!<br />
Check out this neat generic text.</p>
<p><span style="font-weight: bold;">Summary</span></p>
<p>Now you should be able to pass information from one page to another using the URL, using a session, and by setting a cookie. In the next section I&#8217;ll review HTML forms and show how to use these to retrieve information from the user and how to use PHP to pass that information to another page.</p></div>
<p>ORIGINALLY POSTED BY KEEZEL FOR THETAZZONE/TAZFORUM <a href="http://tazforum.thetazzone.com/viewtopic.php?f=31&amp;t=12860">HERE</a></p>
<p>Do not use, republish, in whole or in part, without the consent of the Author. TheTAZZone policy is that Authors retain the rights to the work they submit and/or post…we do not sell, publish, transmit, or have the right to give permission for such…TheTAZZone merely retains the right to use, retain, and publish submitted work within it’s Network</p>
<p><span><br />
</span></p>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

]]></content:encoded>
			<wfw:commentRss>http://www.thetazzone.com/tutorial-php-for-newbies-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial &#8211; PHP for Newbies 2</title>
		<link>http://www.thetazzone.com/tutorial-php-for-newbies-2/</link>
		<comments>http://www.thetazzone.com/tutorial-php-for-newbies-2/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 18:52:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apache and php tutorials]]></category>
		<category><![CDATA[general tutorials]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutorials]]></category>

		<guid isPermaLink="false">http://www.thetazzone.com/?p=2565</guid>
		<description><![CDATA[Tutorial – PHP for Newbies 2
In this section I’ll be discussing PHP loops.
Prerequisites
To follow along in this tutorial, it may be beneficial to install a text editor somewhat more tailored to coding than the basic bland text editor that comes stock with your computer. It will take a bit of research to determine what you [...]]]></description>
			<content:encoded><![CDATA[<p><span style="text-decoration: underline;"><span style="font-weight: bold;">Tutorial – PHP for Newbies 2</span></span></p>
<p>In this section I’ll be discussing PHP loops.</p>
<p><span style="font-weight: bold;">Prerequisites</span></p>
<p>To follow along in this tutorial, it may be beneficial to install a text editor somewhat more tailored to coding than the basic bland text editor that comes stock with your computer. It will take a bit of research to determine what you like best, but you should look for an editor that numbers lines to make finding the source of errors easier, highlights different tags based on syntax, and of course is something you feel comfortable with.</p>
<p><span style="font-weight: bold;">Introduction to Loops</span></p>
<p>A “loop” in PHP causes the same block of code to be executed multiple times until it reaches a predefined point. One practical example might be when you select how many “posts” or “images” or “somethings” you want to display per page while viewing a web page. A PHP loop continues to load blog posts, images, or forum threads until it reaches that threshold.</p>
<p><span style="font-weight: bold;">Various Loops</span></p>
<p><span style="text-decoration: underline;">1)	The “while” loop will continue to execute a block of code until a particular condition is met.</span></p>
<p>Example:</p>
<div><strong>Code:</strong></div>
<div>&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;?php<br />
$counter=1;<br />
while($counter&lt;=5)<br />
{<br />
echo “Number “ . $counter . “&lt;br /&gt;”;<br />
$counter++;<br />
}<br />
?&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p>In the above example, I created the variable $counter and set its value to 1. I then created the while loop which checks the value of $counter, and if it is less than or equal to 5, it initiates the code between the { and }. The code block (everything contained within {}) outputs the string “Number “, concatenates (joins) the current value of $counter, and adds (using concatenation again) the HTML &lt;br /&gt; tag to create a line break on the web page. Finally, it increases the value of $counter by one. Note that the { and } tags create blocks of code that are executed simultaneously instead of one at a time. Save the above into a .php file and you should receive the output:</p>
<p>Number 1<br />
Number 2<br />
Number 3<br />
Number 4<br />
Number 5</p>
<p><span style="text-decoration: underline;">2)	The “do…while” loop performs essentially the same function but can be written differently.</span></p>
<p>Example:</p>
<div><strong>Code:</strong></div>
<div>&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;?php<br />
$counter=1;<br />
do<br />
{<br />
$counter++;<br />
Echo “Number “ . $counter . “&lt;br /&gt;”;<br />
}<br />
while ($counter&lt;=5);<br />
?&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p>The result will be the same on the web page as the previous example.</p>
<p><span style="text-decoration: underline;">3) The “for” loop has a more specific syntax. Inside the parentheses after “for” you must first specify the initial value of the counter, then the condition that is evaluated each interation, and finally the amount to increment the initial value. Each of these is separated by a “;”. </span></p>
<p>Syntax:</p>
<p>for (init; condition; increment)<br />
{<br />
Code;<br />
}</p>
<p>Example:</p>
<div><strong>Code:</strong></div>
<div>&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;?php<br />
For ($counter=1; $counter&lt;=5; $counter++)<br />
{<br />
echo “Number “ . $counter . “&lt;br /&gt;”;<br />
}<br />
?&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p>As you can see, this is a quicker way to accomplish the same end. Also note that the $counter variable can be whatever you like it to be. If you changed the variable to $lolcat it would perform the exact same function in the above scenario. It might be more efficient to use a single letter variable such as $x.</p>
<p><span style="text-decoration: underline;">4) The “foreach” loop is used in conjunction with arrays. For example, if you simply wanted to display (in order) each value saved in an array, you could use this loop.</span></p>
<p>Example:</p>
<div><strong>Code:</strong></div>
<div>&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;?php<br />
$x=array(“1”,”2”,”3”);<br />
Foreach ($x as $y)<br />
{<br />
Echo $y . “&lt;br /&gt;”;<br />
}<br />
?&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p>In the above example, I defined an array ($x), populated it with the values 1, 2, 3 (notice that they are in quotes, which causes them to be text strings instead of numeric values), and then in the foreach loop assigned the current value of $x to $y. I then echo’d the current value of $y and inserted a line break. The resulting output is:<br />
1<br />
2<br />
3</p>
<p>That’s it for the basic loops!</p>
<p>In the next tutorial I’ll start covering the variety of ways one can pass information from one page to another.</p>
<p>ORIGINALLY POSTED BY KEEZEL FOR THETAZZONE/TAZFORUM <a href="http://tazforum.thetazzone.com/viewtopic.php?f=31&amp;t=12858">HERE</a></p>
<p>Do not use, republish, in whole or in part, without the consent of the Author. TheTAZZone policy is that Authors retain the rights to the work they submit and/or post…we do not sell, publish, transmit, or have the right to give permission for such…TheTAZZone merely retains the right to use, retain, and publish submitted work within it’s Network</p>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

]]></content:encoded>
			<wfw:commentRss>http://www.thetazzone.com/tutorial-php-for-newbies-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tutorial &#8211; PHP for Newbies 1</title>
		<link>http://www.thetazzone.com/tutorial-php-for-newbies-1/</link>
		<comments>http://www.thetazzone.com/tutorial-php-for-newbies-1/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 13:53:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apache and php tutorials]]></category>
		<category><![CDATA[general tutorials]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutorials]]></category>

		<guid isPermaLink="false">http://www.thetazzone.com/?p=2562</guid>
		<description><![CDATA[Tutorial – PHP for Newbies 1
This series will be aimed at helping people who are brand new to programming get into PHP. As I’ve researched, I’ve found that good tutorials for people new to programming are few and far between.
Prerequisites
Before we can begin, PHP requires that you have a web server, a database, and the [...]]]></description>
			<content:encoded><![CDATA[<div id="postdiv130569"><span style="text-decoration: underline;"><span style="font-weight: bold;">Tutorial – PHP for Newbies 1</span></span></p>
<p>This series will be aimed at helping people who are brand new to programming get into PHP. As I’ve researched, I’ve found that good tutorials for people new to programming are few and far between.</p>
<p><span style="font-weight: bold;">Prerequisites</span></p>
<p>Before we can begin, PHP requires that you have a web server, a database, and the language itself all running locally. Accomplishing this could be another full tutorial itself, but I’ll attempt to give the crash-course version.</p>
<p>By far the most popular platform for programming using PHP combines Apache (the web server), MySQL (the database), and PHP. In fact this is often abbreviated as “AMP”. When this is installed on a Windows machine it’s called “WAMP” and when installed on a Linux machine it’s referred to as “LAMP”. To install all of these at once on an Ubuntu machine, you have two options. You can either type:</p>
<div><strong>Code:</strong></div>
<div>sudo tasksel install lamp-server</div>
<p>or</p>
<div><strong>Code:</strong></div>
<div>sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server</div>
<p>See also:  <!-- l --><a href="http://tazforum.thetazzone.com/viewtopic.php?f=31&amp;t=11912">viewtopic.php?f=31&amp;t=11912</a><!-- l --></p>
<p>If you want to keep things extremely simple on a Windows machine, try <!-- m --><a href="http://www.easyphp.org/">http://www.easyphp.org</a><!-- m -->. I installed easyphp on a jump drive for when I’m on the go or when working on Windows. Just extract, install, start the program (the .exe file), and you’re good to go. Make sure to save your .php files in the www folder within the easyphp directory (wherever you installed it).</p>
<p>Once you have each installed and somewhat configured, you will save all of your PHP work in the Apache root directory (linux default /var/www) and to display it you will navigate in a browser to<!-- m --> <a href="http://localhost/filename.php">http://localhost/filename.php</a><!-- m -->.</p>
<p><span style="font-weight: bold;">Introduction</span></p>
<p>Unfortunately, learning the basics involves a lot of memorization at first. There’s no way around that, but I’ll try to apply as much of it as possible as I go.</p>
<p><span style="font-weight: bold;">What is PHP?</span></p>
<p>PHP stands for PHP: Hypertext Preprocessor. Yes, it is an acronym contained within another acronym. PHP is a programming language that is most often found integrated with HTML to create dynamic, interactive, and secure web sites. PHP is completely free and open source. PHP is parsed (executed) by a web server and then delivered to the user’s web browser, which serves to hide your code and making it inherently more secure than HTML or Javascript.</p>
<p><span style="font-weight: bold;">What does PHP look like?</span></p>
<p>PHP code usually (but not always) begins with &lt;?php and ends with ?&gt;. Everything contained within these brackets is interpreted as PHP code by the web server. The rest (variables, functions, etc) will be covered later.</p>
<p><span style="font-weight: bold;">How do I go about creating a PHP file and integrate it into a web page?</span></p>
<p>There are a variety of ways, but the easiest to demonstrate is to embed PHP within HTML. PHP is at home embedded within HTML. For example, the following is perfectly legal:</p>
<div><strong>Code:</strong></div>
<div>&lt;html&gt;<br />
&lt;body&gt;</p>
<p>&lt;?php<br />
echo “Hello World”;<br />
?&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</p></div>
<p>You could save the above in a file called helloworld.php inside the web server’s (apache’s) root directory (default is /var/www) and browse to<!-- m --> <a href="http://localhost/helloworld.php">http://localhost/helloworld.php</a><!-- m --> and you should see “Hello World” at the top of the page.</p>
<p><span style="font-weight: bold;">Comments</span></p>
<p>Comments are used inside the &lt;?php ?&gt; brackets to signal to the parser that one or many lines should be ignored. Comments allow you to leave notes for yourself or others. You would denote one line as a comment with // and a block with /* and */ The below examples are all valid comments:</p>
<div><strong>Code:</strong></div>
<div>&lt;html&gt;<br />
&lt;body&gt;</p>
<p>&lt;?php<br />
//This is a comment</p>
<p>/* All of the following is a comment too: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.. */</p>
<p>echo “Hello World”; //This comment is at the end of a line.<br />
?&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</p></div>
<p><span style="font-weight: bold;">Keeping Clean Code</span></p>
<p>Thus far you may have noticed that I tend to break the code up into a lot of different lines. The PHP parser (as well as HTML) treats everything as one single line of code, so it actually makes no difference to the parser if you have zero line returns or a hundred between each word (with the exception of line comments, which require you to comment out each individual line with “//”). The reason I do this is because it’s extremely helpful to the coder to break it up so it is easier to find errors and generally understand the code.</p>
<p><span style="font-weight: bold;">Variables</span></p>
<p>Variables serve as “containers”, much the same as they are in algebra for example. For example, in algebra x may equal 5. In PHP, you could make x = “This sentence” or (8 * 15) + 27. You can define variables to be whatever you want them to be, so long as PHP syntax is not broken. PHP variables are denoted by placing a $ in front of the name of the variable you are assigning. Variables names can be anything so long as they begin with a letter or an underscore “_”, contain only letters (upper or lowercase), numbers, and underscores. They cannot contain spaces. An example might be $My_Variable. Variables are case sensitive, so $My_Variable is not the same as $My_variable. For example, it would be perfectly legal for $My_Variable to equal the number 7 and $My_variable to equal the number 57 (or a bunch of text, or pretty much whatever you want). This is useful because when programming you often refer back to the same thing over and over again, so to save keystrokes you can simply assign something to a variable and then type the variable in its place.</p>
<p>Example:</p>
<div><strong>Code:</strong></div>
<div>&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;?php<br />
$variable=”Hello World…again!”;<br />
echo $variable;<br />
?&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p><span style="font-weight: bold;">Constants</span></p>
<p>I&#8217;ll not delve into these much here, but constants perform the same function as variables except they are usually written in all capital letters and cannot be changed once they have been defined.</p>
<p>Save this as variablehelloworld.php (or something) and browse to <!-- m --><a href="http://localhost/variablehelloworld.php">http://localhost/variablehelloworld.php</a><!-- m --> and you should again see “Hello World…again!” at the top of the page just as before.</p>
<p><span style="font-weight: bold;">Strings</span></p>
<p>The word “string” is another word for “text”. Anything contained within quotes “ “ is considered by the parser as regular text as opposed to an integer (or…anything else). Let’s modify our recent example to demonstrate:</p>
<div><strong>Code:</strong></div>
<div>&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;?php<br />
$variable=”Hello World…again!”;<br />
echo $variable;<br />
echo “$variable”;<br />
?&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p>You would see in your browser the following: Hello world…again!$variable Let me explain. Although in the php code echo $variable and echo “$variable” were on separate lines, the parser treats everything as one single line (as I said before). This explains why there are no spaces or line breaks in what you see displayed in the browser. Also, “$variable” is a string and $variable is a variable referencing another string. The difference may only be quotation marks to the human eye, but it makes all the difference to the parser.</p>
<p><span style="font-weight: bold;">Concatenation</span></p>
<p>Bonus points if you were able to pronounce the word on the first try. Concatenation is a big word for “join together”. The concatenation operator in PHP is a “.” (a period). When you need to join two separate things together, you would use a “.”. For an example, we will again edit our previous example.</p>
<div><strong>Code:</strong></div>
<div>&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;?php<br />
$variable=”Hello World”;<br />
$variable2=”…again!”;<br />
echo $variable . $variable2<br />
?&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p>When displayed in the browser, you will see: Hello World…again!</p>
<p><span style="font-weight: bold;">Operators</span></p>
<p>These are generally used to perform mathematical functions.  The basic operators are the following:<br />
•	+ : addition<br />
•	- : subtraction<br />
•	* : multiplication<br />
•	/ : division<br />
•	% : modulus (division remainder)<br />
•	++ : increment (adds one)<br />
•	&#8211; : decrement (subtracts one)<br />
•	= : same as<br />
•	== : is equal to<br />
•	=== : is exactly equal to (including type, ex: string, Boolean, integer, etc)<br />
•	!= : is not equal to<br />
•	&gt; : is greater than<br />
•	&lt; : is less than<br />
•	&gt;= : is greater than or equal to<br />
•	&lt;= : is less than or equal to<br />
•	&amp;&amp; : and<br />
•	|| : or<br />
•	! : not</p>
<p>I should give an example…but you might cry from boredom.</p>
<p><span style="font-weight: bold;">Conditional Statements</span></p>
<p>if : use this statement to execute code only if the specified condition is true.<br />
if / else : use this when you want to allow an alternative in case the condition is not true.<br />
If /elseif /else : use this when you have more than one alternative. These commands are case sensitive. The syntax is as follows:</p>
<p>if (condition)<br />
code to execute if condition is true;<br />
elseif (condition)<br />
code to be executed if second condition is true;<br />
else<br />
code to be executed if condition is false;</p>
<p>Example:</p>
<div><strong>Code:</strong></div>
<div>&lt;html&gt;<br />
&lt;body&gt;</p>
<p>&lt;?php<br />
$variable = 1;<br />
if ($variable===”1”)<br />
echo “The variable is a string!”;<br />
elseif ($variable===1)<br />
echo “This variable is a number!”;<br />
else<br />
echo “This variable is dysfunctional!”;<br />
?&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</p></div>
<p>Note that the “===” is actually three “=”.  Save that as a .php and navigate to the page and see what happens.</p>
<p><span style="font-weight: bold;">Arrays</span></p>
<p>Arrays store and arrange multiple variables. For example, you can name an array $planets and have entry $planets[0] be “Mercury”, $planets[1] be “Venus”, etc. You again use the $ prior to the name as you would for variables. Arrays always number beginning with “0”, which is important to remember because if you have five arrayed values, the last one of the five would be [4]. Example:</p>
<div><strong>Code:</strong></div>
<div>&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;?php<br />
$planets=array(“Mercury”, “Venus”, “Earth”, “Mars”);<br />
Echo $planets[0] . “ and “ . $planets[1] . “are the two nearest planets to the sun!”;<br />
?&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p><span style="font-weight: bold;">Wrap up</span></p>
<p>The above is intended simply to be an introduction to PHP. Unfortunately the basics are boring and useless for the most part. Tune in to part two for some more useful stuff you can do using PHP! Part two will cover loops, and subsequent tutorials will cover various methods of passing information from one web page to another, HTML forms, and simple (non-secure) authentication.</p></div>
<p>ORIGINALLY POSTED BY KEEZEL FOR THETAZZONE/TAZFORUM <a href="http://tazforum.thetazzone.com/viewtopic.php?f=31&amp;t=12857">HERE</a></p>
<p>Do not use, republish, in whole or in part, without the consent of the Author. TheTAZZone policy is that Authors retain the rights to the work they submit and/or post…we do not sell, publish, transmit, or have the right to give permission for such…TheTAZZone merely retains the right to use, retain, and publish submitted work within it’s Network</p>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

]]></content:encoded>
			<wfw:commentRss>http://www.thetazzone.com/tutorial-php-for-newbies-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tcl Tutorial</title>
		<link>http://www.thetazzone.com/tcl-tutorial/</link>
		<comments>http://www.thetazzone.com/tcl-tutorial/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 02:22:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[general tutorials]]></category>

		<guid isPermaLink="false">http://www.thetazzone.com/?p=842</guid>
		<description><![CDATA[ORIGINALLY POSTED BY ACIDTONE FOR THETAZZONE/TAZFORUM HERE
Do not use, republish, in whole or in part, without the consent of the Author. TheTAZZone policy is that Authors retain the rights to the work they submit and/or post…we do not sell, publish, transmit, or have the right to give permission for such…TheTAZZone merely retains the right to [...]]]></description>
			<content:encoded><![CDATA[<p>ORIGINALLY POSTED BY ACIDTONE FOR THETAZZONE/TAZFORUM <a href="http://tazforum.thetazzone.com/viewtopic.php?f=31&amp;t=2016">HERE</a></p>
<p>Do not use, republish, in whole or in part, without the consent of the Author. TheTAZZone policy is that Authors retain the rights to the work they submit and/or post…we do not sell, publish, transmit, or have the right to give permission for such…TheTAZZone merely retains the right to use, retain, and publish submitted work within it’s Network</p>
<p>[b][u]Tcl Tutorial[/u][/b]</p>
<p>[b]Introduction[/b]</p>
<p>This is a very short introduction to the Tcl script language. If you just can&#8217;t wait, I hope this will make you able to read and to understand simple Tcl code. </p>
<p>In many points, Tcl is similar to C, especially for loop structures, function definitions and mathematical or conditional expressions. In other points, such as expression evaluation and list data structures, you will notice that Tcl has inherited from the benefits of the Scheme language. </p>
<p>In Tcl, all data is represented as strings. </p>
<p>[b]Commands evaluation[/b]</p>
<p>Each Tcl command call is a sentence of the form : command arg1 arg2 arg3 &#8230; </p>
<p>The Tcl evaluator take each word of this sentence and evaluate it. After evaluation of each word, the first word (command) is considered to be a function name and this function is executed with as arguments the following words. </p>
<p>To evaluate a word, the interpretor has to do the following substitutions in the word string :<br />
[list]<br />
If the word is surrounded by &#8221; &#8220;, this word may contain spaces, but substitution is still applicable inside the quotations. Inside the quotation, there may be spaces and carriage returns. </p>
<p>If a word is surrounded by { }, this word is unaffected (substitution is thus not applicable on this word). Inside the braces, there may be spaces and carriage returns. Moreover, the { } braces may be nested. </p>
<p>If a part of the word is surrounded by [ ], this part is considered as a command sentence : the text within the brackets is evaluated as a Tcl command and replaced with the result. </p>
<p>where substitution is applicable, every string beginning with $ is replaced with the variable represented by this string. This string is ended by a space, a &#8216;-&#8217; or a &#8216;,&#8217;.<br />
[/list]</p>
<p>[b]Examples[/b]<br />
set a &#8220;World !&#8221;<br />
In the evaluation of the 3 words &#8217;set&#8217;, &#8216;a&#8217; and &#8216;&#8221;World !&#8221;&#8216;, no substitution has to be done, only the &#8221; &#8221; are removed. The command &#8217;set&#8217; is then executed with as parameters &#8216;a&#8217; and &#8216;World !&#8217;. This command tell Tcl to define a new variable &#8216;a&#8217; (if not already defined) and to set its value to &#8216;World !&#8217;. </p>
<p>set b &#8220;Hello $a&#8221;<br />
Set the variable &#8216;b&#8217; to &#8216;Hello World !&#8217;. Here, the variable substitution has occurred inside the second parameter where the variable &#8216;a&#8217; is replaced by its value. </p>
<p>set c [string range $b 0 3]<br />
Set the variable c to &#8216;Hell&#8217;, which is the 4 first letters of &#8216;Hello World !&#8217;. In this case, The part between [ ] has been executed as a command </p>
<p>If you want to break a command sentence in lines you can only do it inside the { } brace or in the &#8221; &#8221; quotation or you can break the line with a &#8216;\&#8217; at the end of any break line. </p>
<p>[b]Example[/b]<br />
[code]<br />
if {$c == "Hell"} {<br />
   puts "Oh god !"<br />
} else {<br />
   puts "Peace !"<br />
}<br />
[/code]</p>
<p>This test the value of the variable c. If it is the string &#8216;Hell&#8217; it prints &#8216;Oh god !&#8217; on screen, otherwise, it prints &#8216;Peace !&#8217;. In this sentence, Tcl see 5 words :<br />
[list]<br />
&#8216;if&#8217; is the first : nothing to be evaluated.<br />
&#8216;$c == &#8220;Hell&#8221;&#8216; is the second : because of the surrounding curly braces, there is no further evaluation on this word.<br />
&#8216;puts &#8220;Oh god !&#8221;&#8216; : for the same reason, no further evaluation<br />
&#8216;else&#8217; : nothing to do.<br />
&#8216;puts &#8220;Peace !&#8221;&#8216; : no further evaluation.<br />
[/list]</p>
<p>The first word, &#8216;if&#8217; is seen as the command and this command is executed with as parameters the 4 following words. That is later that the condition &#8216;$c == &#8220;Hell&#8221;&#8216; is evaluated, during the execution of the if command. </p>
<p>Notice where we placed the line breaks (inside the { }). </p>
<p>[b]Strings and Lists[/b]</p>
<p>Under Tcl, the value of each variable is stored as a string. Even if you want to save a number in a variable, this number is transformed into a string. </p>
<p>As a special type of string, the list deserve a special attention in data representation in Tcl. The list is nothing more than a string with, as elements separator, the space. A list may contains sublists. </p>
<p>[b]Example[/b]<br />
[code]<br />
% set list {12 {78 5} 45 "Im a not a number"}<br />
12 {78 5} 45 "Im a not a number"<br />
% set sublist1 [lindex $list 1]<br />
78 5<br />
% set sublist2 [lindex $list 3]<br />
Im a not a number<br />
% lindex $sublist2 2<br />
not<br />
[/code]</p>
<p>[b]Mathematics expression.[/b]</p>
<p>Whereas all variables are of type string, the mathematical operations internally uses float and integer number representation to produce their results. The command that calculate mathematical expression is &#8216;expr&#8217;. </p>
<p>[b]Example[/b]<br />
[code]<br />
% set result [expr (4+6)/4]<br />
2<br />
% set result [expr (4.0+6)/4]<br />
2.5<br />
[/code]</p>
<p>In the first calculation, the interpretor has used the integer number representation. In the second, it has used the float number representation. </p>
<p>[b]How to display something ?[/b]</p>
<p>To display a string, you can use the command &#8216;puts&#8217; </p>
<p>[b]Example[/b]<br />
[code]<br />
% set variable 255<br />
% puts "The number $variable"<br />
The number 255<br />
% puts [format "The number %d is equal to 0x%02X" \<br />
  $variable $variable]<br />
The number 255 is equal to 0xFF<br />
[/code]</p>
<p>As it can be seen in the previous example, the command format is very similar to the C command &#8216;printf&#8217;. </p>
<p>[b]Control flow[/b]</p>
<p>The following commands are similar to the C equivalent. Only &#8216;foreach&#8217; has no C equivalent (have a look at the example to see what it do).<br />
if {&#8230;condition&#8230;} {&#8230;body&#8230;}<br />
while {&#8230;condition&#8230;} {body}<br />
for {&#8230; init &#8230;} {&#8230;condition&#8230;} {&#8230;increment&#8230;} {&#8230;body&#8230;}<br />
foreach varnames {&#8230;list&#8230;} {&#8230;body&#8230;}<br />
the &#8216;&#8230;condition&#8230;&#8217; is evaluated in the same way that it should be with command &#8216;expr&#8217;. </p>
<p>[b]Examples[/b]<br />
[code]<br />
while </p>
<p>% while {$i<4} {<br />
> puts "$i*$i is [expr $i*$i]"<br />
> incr i<br />
> }<br />
0*0 is 0<br />
1*1 is 1<br />
2*2 is 4<br />
3*3 is 9<br />
for </p>
<p>% for {set i 0} {$i<4} {incr i} {<br />
> puts "$i*$i is [expr $i*$i]"<br />
> }<br />
0*0 is 0<br />
1*1 is 1<br />
2*2 is 4<br />
3*3 is 9<br />
foreach </p>
<p>% set observations \<br />
  {Bruxelles 15 22 London 12 19 Paris 18 27}<br />
Bruxelles 15 22 London 12 19 Paris 18 27<br />
% foreach {town Tmin Tmax} $observations {<br />
> set Tavg [expr ($Tmin+$Tmax)/2.0]<br />
> puts "$town $Tavg"<br />
> }<br />
Bruxelles 18.5<br />
London 15.5<br />
Paris 22.5<br />
[/code]</p>
<p>[b]Array[/b]</p>
<p>Arrays are always unidimensional but the index is a string. If you use a separator in the index string (such as &#8216;,&#8217;, &#8216;-&#8217;), you can get the same effect than with a multidimensional array in other languages. </p>
<p>[b]Example[/b]<br />
[code]<br />
% set observations \<br />
  {Bruxelles 15 22 London 12 19 Paris 18 27}<br />
Bruxelles 15 22 London 12 19 Paris 18 27<br />
% foreach {town Tmin Tmax} $observations {<br />
set obs($town-min) $Tmin<br />
set obs($town-max) $Tmax<br />
}<br />
% parray obs<br />
obs(Bruxelles-max) = 22<br />
obs(Bruxelles-min) = 15<br />
obs(London-max)    = 19<br />
obs(London-min)    = 12<br />
obs(Paris-max)     = 27<br />
obs(Paris-min)     = 18<br />
Procedures<br />
[/code]<br />
Procedures are the equivalent of the C functions. </p>
<p>[b]Example[/b]<br />
[code]<br />
% proc sum2 {a b} {<br />
>  return [expr $a+$b]<br />
> }<br />
[/code]</p>
<p>if a procedure does not contain any &#8216;return&#8217; statement, the default return value is the return value of the last evaluated function in this procedure. So the following script is perfectly equivalent :<br />
[code]<br />
% proc sum2 {a b} {<br />
>   expr $a + $b<br />
> }<br />
[/code]<br />
To call the &#8217;sum2&#8242; function, we do the following :<br />
[code]<br />
% sum2 12 5<br />
17<br />
[/code]<br />
The special argument name &#8216;args&#8217; contains a list with the rest of the arguments </p>
<p>[b]Example[/b]<br />
[code]<br />
% proc sum {args} {<br />
>   set result 0<br />
>   foreach n $args {<br />
>      set result [expr $result+$n]<br />
>   }<br />
>   return $result<br />
> }<br />
% sum 12 9 6 4<br />
31<br />
[/code]<br />
it is also possible to specify default parameters. So, if you don&#8217;t specify the last parameters, the default values will be substituted. </p>
<p>[b]Example.[/b]<br />
[code]<br />
% proc count {start end {step 1}} {<br />
>   for {set i $start} {$i<=$end} {incr i $step} {<br />
>     puts $i<br />
>   }<br />
> }<br />
% count 1 3<br />
1<br />
2<br />
3<br />
% count 1 5 2<br />
1<br />
3<br />
5<br />
[/code]<br />
If you want to use global variables in a function, you have to declare it as global. </p>
<p>[b]Example[/b]<br />
[code]<br />
% set global_counter 3<br />
% proc incr_counter {} {<br />
>    global global_counter<br />
>    incr global_counter<br />
> }<br />
% incr_counter<br />
4<br />
% set global_counter<br />
4<br />
[/code]<br />
You can also declare a table as global. </p>
<p>[b]Example.[/b]<br />
[code]<br />
% set counter(value) 3<br />
% set counter(active) 1<br />
% proc incr_counter {} {<br />
>    global counter<br />
>    if {$counter(active)} {<br />
>       incr counter(value)<br />
>    }<br />
> }<br />
% incr_counter<br />
4<br />
% set counter(active) 0<br />
0<br />
% incr_counter<br />
4<br />
[/code]</p>
<p>[b]Eval[/b]</p>
<p>The &#8216;eval&#8217; command<br />
concatenate all its arguments in one string<br />
splits this string using spaces as separators<br />
evaluate the command sentence formed by all the substrings </p>
<p>In the following example, we used the function &#8217;sum&#8217; that we have already defined. </p>
<p>[b]Example[/b]<br />
[code]<br />
%  proc average {args} {<br />
>     return [expr [eval sum $args] / [llength $args]]<br />
>  }<br />
% average 45.0 65.0 78.0 55.0<br />
60.75<br />
[/code]</p>
<p>If you had omitted the &#8216;eval&#8217; command in the previous example, the &#8217;sum&#8217; procedure would have returned an error because &#8217;sum&#8217; should be called with only one string argument (in the previous example, this argument would have been &#8216;45.0 65.0 78.0 55.0&#8242;) while &#8217;sum&#8217; is expecting numerical arguments.<br />
uplevel, upvar</p>
<p>With the &#8216;upvar&#8217; command, you can access a variable which belongs to a higher level of the procedure call stack. </p>
<p>[b]Example [/b]<br />
[code]<br />
% proc decr {n steps} {<br />
>   upvar $n upa<br />
>   set upa [expr $upa - $steps]<br />
> }<br />
% set nb 12<br />
12<br />
% decr nb 3<br />
9<br />
% puts $nb<br />
9<br />
[/code]</p>
<p>In the previous example, the parameter &#8216;n&#8217; gets the value &#8216;nb&#8217; (the string &#8216;nb&#8217; !) if we type &#8216;decr nb 3&#8242;. The command &#8216;upvar $n upa&#8217; means that the variable &#8216;upa&#8217; becomes a synonym to the variable &#8216;nb&#8217; (coming from a higher level of the stack). </p>
<p>With the &#8216;uplevel&#8217; command, you can evaluate something on higher level in the stack. </p>
<p>[b]Example[/b]<br />
[code]<br />
% proc do {todo condition} {<br />
>   set ok 1<br />
>   while {$ok} {<br />
>     uplevel $todo<br />
>     if {[uplevel "expr $condition"]==0} {set ok 0}<br />
>   }<br />
> }<br />
% set i 0<br />
0<br />
% do {<br />
puts $i<br />
incr i<br />
} {$i<4}<br />
0<br />
1<br />
2<br />
3<br />
[/code]<br />
Inside the procedure 'do', the evaluation of the script 'todo' and the conditional 'condition' has to made on a higher level of stack (in the same way that if they were evaluated from out of 'do').<br />
error and catch</p>
<p>If you insert an 'error' command in your code, this command will stop the execution of your script and return the error message that follow the 'error' command. With the command 'catch', you can also intercept a error to avoid that your script stops on an error. </p>
<p>If 'catch' return 0, it means that no error occurred while evaluating the script send as parameter of catch. If 'catch' return 1, it means that an error occurred. </p>
<p>[b]Example.[/b]<br />
[code]<br />
% proc div {a b} {<br />
>   if {$b==0} {<br />
>      error "divided by zero"<br />
>   } else {<br />
>      return [expr $a/$b]<br />
>   }<br />
> }<br />
% div 8 3<br />
2<br />
% div 8 0<br />
divide by zero<br />
% catch {div 8 3}<br />
0<br />
% catch {div 8 0}<br />
1<br />
% catch {set result [div 8 3]}<br />
0<br />
% catch {set result [div 8 0]}<br />
1<br />
[/code]</p>
<p>The last call is completely equivalent to<br />
[code]<br />
catch {div 8 3} result<br />
[/code]</p>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

]]></content:encoded>
			<wfw:commentRss>http://www.thetazzone.com/tcl-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Started with Counter-Strike:Source</title>
		<link>http://www.thetazzone.com/getting-started-with-counter-strikesource/</link>
		<comments>http://www.thetazzone.com/getting-started-with-counter-strikesource/#comments</comments>
		<pubDate>Fri, 25 Dec 2009 02:20:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[general tutorials]]></category>

		<guid isPermaLink="false">http://www.thetazzone.com/?p=840</guid>
		<description><![CDATA[ORIGINALLY POSTED BY J_K9 FOR THETAZZONE/TAZFORUM HERE
Do not use, republish, in whole or in part, without the consent of the Author. TheTAZZone policy is that Authors retain the rights to the work they submit and/or post…we do not sell, publish, transmit, or have the right to give permission for such…TheTAZZone merely retains the right to [...]]]></description>
			<content:encoded><![CDATA[<p>ORIGINALLY POSTED BY J_K9 FOR THETAZZONE/TAZFORUM <a href="http://tazforum.thetazzone.com/viewtopic.php?f=31&amp;t=1784">HERE</a></p>
<p>Do not use, republish, in whole or in part, without the consent of the Author. TheTAZZone policy is that Authors retain the rights to the work they submit and/or post…we do not sell, publish, transmit, or have the right to give permission for such…TheTAZZone merely retains the right to use, retain, and publish submitted work within it’s Network</p>
<p>I have tried to outline the basics of CS:Source in the following tutorial. You will find most of the information you need to get started in this tut.. The rest, you will have to learn by playing the game <img title="Wink" src="http://tazforum.thetazzone.com/images/smilies/icon_wink.gif" alt="I'm gagging for a shag" /></p>
<p>Let&#8217;s start with the out of game topics &#8211; what you need to know before playing the game.</p>
<p><span style="font-size: 117%; line-height: 116%;"><span style="font-weight: bold;">Buying CS:Source</span></span></p>
<p>There are two ways of buying Counter-Strike:Source. I recommend going for the first option if you have fairly slow broadband (&lt;1Mbps), as the files could take a while to download. However, option 2 may be more suitable depending on your situation, especially if you live in a country where this game is difficult to find (e.g. Belgium).</p>
<p><span style="color: red;"><span style="font-weight: bold;">1.</span></span> Look around the game shops in town. One will most probably have a copy of Counter-Strike:Source, whether it is being sold separately, or being sold <span style="font-weight: bold;">with Half Life 2</span>. Please make sure you check on the back of the box to verify that Counter-Strike:Source is included &#8211; but most (if not all) copies of Half Life 2 bring it anyway.</p>
<p>If the local game shops don&#8217;t have it, try looking on an online shop, like <a class="postlink" href="http://amazon.com/">Amazon</a>. Amazon sells a copy of Counter-Strike:Source &#8211; <a class="postlink" href="http://www.amazon.co.uk/exec/obidos/ASIN/B000B8XQHK/qid=1147538459/sr=8-1/ref=pd_ka_1/202-6587514-0125435">here</a> is a copy available from Amazon for a discounted £15. Not bad!</p>
<p><span style="color: red;"><span style="font-weight: bold;">2.</span></span> Go to <a class="postlink" href="http://steampowered.com/">Steam</a>&#8217;s homepage and download the <span style="font-weight: bold;">Steam Client</span>. Install it on your computer.</p>
<p>Once it has been installed, start Steam. You can now register your own Steam account, which you can use to play several different games and mods, and which holds its own Steam ID.<br />
Once you&#8217;re in, go to the Games tab, and look for <span style="font-weight: bold;">Counter-Strike:Source</span>. Make sure you select it and not one of the older versions! From there, you will be able to purchase a copy, and that will automatically become available to your new account. Then, it&#8217;s simply the case of downloading all the Counter-Strike:Source files (which may take quite a long time, depending on your connection speed), and then you can play!</p>
<p><span style="font-weight: bold;"><span style="font-size: 117%; line-height: 116%;">Settings</span></span></p>
<p>First of all, let&#8217;s get you the right settings. It will decrease the amount of lag, and will allow you to make the most of the server&#8217;s resources. Instructions follow.</p>
<p><span style="color: red;"><span style="font-weight: bold;">1.</span></span> Make sure Counter-Strike:Source is closed. Exit Steam as well just to make sure.</p>
<p><span style="color: red;"><span style="font-weight: bold;">2.</span></span> Open your favourite text editor (preferably one that DOESN&#8217;T add an extension automatically) and type in the following lines:</p>
<p><span style="color: indigo;">cl_updaterate 66<br />
cl_cmdrate 66<br />
rate 20000</span></p>
<p><span style="color: red;"><span style="font-weight: bold;">3.</span></span> Choose &#8216;Save As&#8217;, call the file &#8216;autoexec.cfg&#8217;, and save it in the C:\Program Files\Valve\Steam\SteamApps\~username\counter-strike source\cstrike\cfg\ directory.</p>
<p><span style="color: red;"><span style="font-weight: bold;">4.</span></span> Start CS:Source, and join a server.</p>
<p>Anothing thing you should do is enable the developer console. To do this, make sure CS:Source is open (you do not have to be connected to a server), and do the following:<br />
<span style="font-weight: bold;">Options -&gt; Keyboard tab -&gt; Advanced -&gt; Enable developer console (tick the box)</span></p>
<p><span style="font-weight: bold;"><span style="font-size: 117%; line-height: 116%;">XFire</span></span></p>
<p>Time&#8217;s up, get off CS:S! We need to set up something else. <img title="Wink" src="http://tazforum.thetazzone.com/images/smilies/icon_wink.gif" alt="I'm gagging for a shag" /></p>
<p>Run along to <a class="postlink" href="http://xfire.com/">XFire</a> and download the <span style="font-weight: bold;">XFire client</span>. Also <span style="font-weight: bold;">create an account</span> on the website while it is downloading! Remember the username and password, as that is what you will be using to log into XFire.</p>
<p>Once you have downloaded and installed the client, log in using the details you just registered with. You should be in by now &#8211; this is the master of all game-related chat programs. It will recognise almost every game you have installed, allow you to browse servers for the games you have and even place a shortcut to be able to join your favourite server (*cough*TAZServer) straight from the app. It also helps you keep tabs with your friends, and will tell you not only what game they are playing, but how long they have played that game, and who their own friends are! That is class, my dear friend. <img title="Wink" src="http://tazforum.thetazzone.com/images/smilies/icon_wink.gif" alt="I'm gagging for a shag" /></p>
<p>And don&#8217;t forget to add me. My username is:  lancerr</p>
<p><span style="font-weight: bold;"><span style="font-size: 117%; line-height: 116%;">TeamSpeak</span></span></p>
<p>Here is a quick description of TeamSpeak, quoted from their own website:</p>
<blockquote class="uncited">
<div><a class="postlink" href="http://goteamspeak.com/">TeamSpeak</a> is a quality, scalable application which enables people to speak with one another over the Internet.</div>
</blockquote>
<p>And the best thing is that it&#8217;s perfect to use with CS:Source! What a coincidence.<br />
Ok, now go over to <a class="postlink" href="http://goteamspeak.com/">TeamSpeak&#8217;s website</a> and download the latest version of the <span style="font-weight: bold;">TeamSpeak 2 Client</span>. The usual downloading and installing, and you&#8217;ll end up with a pretty shortcut on your desktop if -<br />
a. You haven&#8217;t done anything wrong, or<br />
b. You haven&#8217;t chosen not to put the shortcut on your desktop.</p>
<p><img title="Wink" src="http://tazforum.thetazzone.com/images/smilies/icon_wink.gif" alt="I'm gagging for a shag" /></p>
<p>Now that my small bit of wry humour is over, we can continue with setting up TeamSpeak. The default settings are good, so all you need to do is go to <span style="font-weight: bold;">&#8216;File -&gt; Quick Connect&#8217;</span> and type in the following details:</p>
<p>Server IP: <span style="color: indigo;">195.20.109.78</span><br />
Port: <span style="color: indigo;">9026</span></p>
<p>Give yourself a funky nickname, and log in. There&#8217;s a world of things you can do with TeamSpeak, but I&#8217;ll leave that to its own documentation (on the website)! Hehe..</p>
<p><span style="font-weight: bold;">Note:</span> If TeamSpeak is laggy while you are playing, exit CS:Source and change the codec to &#8216;Wave&#8217; in the <span style="font-weight: bold;">Settings</span> window. Now it should work better! I advise you disable the inbuilt CS:Source chat feature, or set it to an obscure key, because if not the situation might get a bit confusing. <img title="Wink" src="http://tazforum.thetazzone.com/images/smilies/icon_wink.gif" alt="I'm gagging for a shag" /></p>
<p>Set it to begin transferring via MIC as soon as the volume reaches a certain level, and check the bar to see if it&#8217;s at the right level for your voice.</p>
<p>Oh, and (sadly) having cute babies in the room doesn&#8217;t help either &#8211; if your poor young one starts crying in the middle of a CS:Source match, the other TeamSpeakers won&#8217;t be too happy <img title="Laughing" src="http://tazforum.thetazzone.com/images/smilies/icon_lol.gif" alt=":lol:" /></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Now, we move on to the fun stuff. <span style="font-style: italic;">Playing</span> the game <img title="Wink" src="http://tazforum.thetazzone.com/images/smilies/icon_wink.gif" alt="I'm gagging for a shag" /><br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p><span style="font-weight: bold;"><span style="font-size: 117%; line-height: 116%;">Keys</span></span></p>
<p><span style="text-decoration: underline;">Keys 1 &#8211; 9</span></p>
<p>These keys are your weapons.<br />
The primary weapon is assigned key &#8216;1&#8242;. A primary weapon is any SMG (Sub-Machine Gun), rifle, or other large gun. That is, anything which is not a pistol or an accessory.<br />
The secondary weapon is assigned key &#8216;2&#8242;. A secondary weapon is a pistol. You are supplied with one automatically at the beginning of the round, but with a clip and only 2 extra clips for ammo.<br />
Key &#8216;3&#8242; is used for your knife. You cannot get rid of the knife &#8211; you are supplied with one automatically.<br />
Key &#8216;4&#8242; is used for all grenades, which you can purchase.<br />
Key &#8216;5&#8242; is used for the bomb. Note that this is only available to the Terrorist team &#8211; the Terrorist who picks up the bomb.</p>
<p><span style="text-decoration: underline;">Key B</span></p>
<p>This is the BUY key. By pressing it, you will be taken to a graphical menu. From this graphical menu, you can purchase every weapon in the game. However, pressing &#8216;B&#8217; and following it by a sequence of numbers to select your choices is far quicker. You will become more accustomed to using the numbers the more you use the game.</p>
<p><span style="text-decoration: underline;">Key R</span></p>
<p>The reload key. Use this tactically! You don&#8217;t want to reload when an enemy is coming round the corner <img title="Wink" src="http://tazforum.thetazzone.com/images/smilies/icon_wink.gif" alt="I'm gagging for a shag" /></p>
<p><span style="text-decoration: underline;">Key E</span></p>
<p>This is the USE key. This key is used to open doors, instruct hostages to follow you, defuse a bomb (this only applies to the Counter-Terrorist team), and other things that may need to be &#8216;USEd&#8217;.</p>
<p><span style="text-decoration: underline;">Keys Z, X and C</span></p>
<p>These three keys are used to chat to your teammates. This is to say things like &#8216;Go, go, go!&#8217;, &#8216;Storm the front&#8217;, &#8216;Affirmative&#8217; and many other useful commands. Play around with them &#8211; that is the best way to learn what they do.</p>
<p><span style="text-decoration: underline;">Key G</span></p>
<p>This key is used to drop your current weapon. Please note that only primary and secondary weapons, and the bomb (Terrorists only) can be dropped. You cannot drop your knife, nor grenades. All your weapons will automatically be dropped if you die or disconnect from the server.</p>
<p>You can pick up another gun by walking over or near it. So, if you want to switch from an Uzi to an AK47, all you have to do is look away, press G, and then run up to the AK47.</p>
<p><span style="text-decoration: underline;">Keys , and .</span></p>
<p>The , key will buy a clip of primary ammo, and the . key will buy a clip of secondary ammo. This may not be too clear to begin with, but try them out &#8211; you will soon see what I mean.</p>
<p><span style="text-decoration: underline;">Key Q</span></p>
<p>This is the quick switch key. This will switch from your current weapon to the last one you used if you press it, and back again if you press it again. When every round starts and I buy a primary weapon, I always select my secondary one immediately after. This allows me to switch between my primary and secondary weapons very rapidly.</p>
<p>This key can also be used to help you snipe, because it allows you to &#8217;skip&#8217; the reload (on the awp, this is faster), and it also allows you to look around to check that nobody is sneaking up behind you. A valuable skill <img title="Smile" src="http://tazforum.thetazzone.com/images/smilies/icon_smile.gif" alt=":)" /></p>
<p><span style="text-decoration: underline;">Keys Y and U</span></p>
<p>Press the Y key to talk to everyone. Press it, then type in your message (which will be displayed at the bottom-left corner of the screen) and hit Enter to send it. Hit Escape if you wish to cancel it.</p>
<p>The U key does the same, but you will only say the message to your teammates. The opposite team will not be able to see your message.</p>
<p><span style="text-decoration: underline;">Key F</span></p>
<p>This is your Flashlight button. Press it once to turn your flashlight/torch on, press it again to turn it off. Could it be easier?</p>
<p><span style="text-decoration: underline;">Key T</span></p>
<p>Use this key to spray an image. You can set which image to spray by going to &#8216;Options -&gt; Multiplayer tab&#8217; and changing your spray. The standard image types are all allowed, so you should be able to choose your favourite image. Beware of the larger images, as they may look distorted when you resize them! 256&#215;256 pixels is a good spray size.</p>
<p>Oh, and if you&#8217;re interested in creating a transparent effect (and you know your way around a powerful imaging tool like Photoshop), then you can make an even cooler spray by following either of these tutorials: <a class="postlink" href="http://homepage.ntlworld.com/craigweb2k/Spray_Tut/">click here</a> or <a class="postlink" href="http://sprays.hlgaming.com/tutorials-transparency.php">here</a>.<br />
For more information about sprays, see <a class="postlink" href="http://www.cstrike-planet.com/tutorial/2/3">this tutorial</a>.</p>
<p><span style="text-decoration: underline;">Key M</span></p>
<p>Use this key to change teams, or to become a spectator (if it is allowed). Try it out &#8211; you will soon become familiar with it.</p>
<p><span style="text-decoration: underline;">Ctrl key</span></p>
<p>Use this key to crouch &#8211; this will make your firing more accurate, can protect you if you&#8217;re hiding behind a box (note that wooden boxes can be shot through), and makes you more difficult to hit. Try crouching every time you see an enemy and firing at them &#8211; you should notice a difference.</p>
<p><span style="text-decoration: underline;">Spacebar key</span></p>
<p>Jump. Jump more. Jump a bit more. Jump.</p>
<p>Oh, and to jump higher, use this in conjunction with Ctrl and the key for the direction of movement. Another valuable skill!</p>
<p><span style="text-decoration: underline;">F5 Key</span></p>
<p>By default, this key is the screenshot key. All screenshots will be saved to your C:\Program Files\Valve\Steam\SteamApps\~username\counter-strike source\cstrike\screenshots folder.</p>
<p>Truth be told, I always change the screenshot key to &#8216;V&#8217;. It makes taking screenshots much easier on the hand.</p>
<p><span style="text-decoration: underline;">Key ~ or `</span></p>
<p>This is the key to bring up the console, which we enabled earlier. The console can be used to alter settings, remotely administer the server, and do a myriad of other things. Press the ~ or ` key (this depends on your keyboard) once to bring up the console, and press it again to minimise it.</p>
<p><span style="text-decoration: underline;">W, A, S, D Keys &amp; Mouse</span></p>
<p>These are the standard movement keys found in almost every FPS. And most other games <img title="Wink" src="http://tazforum.thetazzone.com/images/smilies/icon_wink.gif" alt="I'm gagging for a shag" /></p>
<p>W = Forwards<br />
A = Left<br />
S = Backwards<br />
D = Right</p>
<p>Move mouse = Look around<br />
Left mouse button = Fire<br />
Right mouse button = Secondary action. E.g. Adding a silencer, looking down the scope, etc.</p>
<p>Thanks for reading this tutorial. I might make a tactics one later on&#8230; Time will tell <img title="Wink" src="http://tazforum.thetazzone.com/images/smilies/icon_wink.gif" alt="I'm gagging for a shag" /></p>
<p>[edit] You can also use an application called <a class="postlink" href="http://sprayr.scumhunter.net/index.html">SprayR</a> to convert standard images into CS:Source sprays. However, it isn&#8217;t quite perfect yet.. So we will have to wait and see if future releases fix the problem <img title="Smile" src="http://tazforum.thetazzone.com/images/smilies/icon_smile.gif" alt=":)" /></p>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

]]></content:encoded>
			<wfw:commentRss>http://www.thetazzone.com/getting-started-with-counter-strikesource/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brief BF2 tactics tutorial</title>
		<link>http://www.thetazzone.com/brief-bf2-tactics-tutorial/</link>
		<comments>http://www.thetazzone.com/brief-bf2-tactics-tutorial/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 02:18:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[general tutorials]]></category>

		<guid isPermaLink="false">http://www.thetazzone.com/?p=838</guid>
		<description><![CDATA[ORIGINALLY POSTED BY ELSPARROW FOR THETAZZONE/TAZFORUM HERE
Do not use, republish, in whole or in part, without the consent of the Author. TheTAZZone policy is that Authors retain the rights to the work they submit and/or post…we do not sell, publish, transmit, or have the right to give permission for such…TheTAZZone merely retains the right to [...]]]></description>
			<content:encoded><![CDATA[<p>ORIGINALLY POSTED BY ELSPARROW FOR THETAZZONE/TAZFORUM <a href="http://tazforum.thetazzone.com/viewtopic.php?f=31&amp;t=1782">HERE</a></p>
<p>Do not use, republish, in whole or in part, without the consent of the Author. TheTAZZone policy is that Authors retain the rights to the work they submit and/or post…we do not sell, publish, transmit, or have the right to give permission for such…TheTAZZone merely retains the right to use, retain, and publish submitted work within it’s Network</p>
<p>Well BF2 is probably one of the most popular MMOFPS games in its genre, and truth be told one of the most buggered up (thanks EA!!).</p>
<p>But of course we all want to get the win and points to advance through rank and unlock weapons and to look cool <img title="Cool" src="http://tazforum.thetazzone.com/images/smilies/icon_cool.gif" alt="8)" /></p>
<p>The aim of this brief tutorial is to provide some basic tactics to keep your K/D ratio down and your points up:</p>
<p><span style="font-weight: bold;">Squads</span></p>
<p>The main sort of squad I operate under is a 2 man squad. This part covers any size. Squads work best when you play with people you know as they will more likely work with you and listen to the leader.</p>
<p>Now at least 1 person in the squad should be a medic. Reason? Well the medic can revive the other members and heal them as well as heal themselves. Generally Squad Leader should not be medic as this allows your medic to spawn on you and is slightly better tactics wise. The recommended gun for any medic is the L85A1. Its scope is good, and both on single shot and automatic it packs good punch. Only use automatic in bursts at medium range and flat out at point blank. Single shot on scope works best on long range.</p>
<p>The Squad Leader can choose any kit he wishes. I generally go as a Spec Ops and once you unlock the Scar-L then you will be pretty well kitted out as I feel it packs a tad more punch than the G36C and the M4.</p>
<p>Of course the best squads carry a mix of personelle in it.  Of course 2 or 3 men limits your combinations.</p>
<p>However with a full 6 man squad I would probably go with the following line out:</p>
<p>-2 Spec Ops (for blowing shit up such as tanks, artillery)<br />
-Assault (the underslung grenade launcher can be used to good effect for removing a sniper or group of soldiers)<br />
-Support (can provide suppressing fire especially with a PKM, and can top up other player&#8217;s ammo)<br />
-2 Medics (to heal and revive comrades. Using 2 medics means if one dies the other can get them back in the action and also helps keep K/D ratios down on the medic side)</p>
<p>The main trick with squads is to use a good leader who can get the UAV on crucial areas needed to pick out enemies and has respect from the squad members. Further more use cover for the whole squad. Don&#8217;t all leg it through the open. If you go 50/50 then 1 half provides covering fire till the 2nd lot reach their objective and can provide cover for you. Walls and corners make effective cover to hide a squad behind while you leader scouts at the area.</p>
<p><span style="font-weight: bold;">Offensive or Defensive?</span></p>
<p>With the aggression of the squad you need to determine which works best for your squad. I personally am of the view Offensive is better. An aggressive 2 man squad can easily storm and capture a CP in my experience. I believe that people struggle to cope with a group that is pushing forwards and activly hunting them down as it forces them to go defensive and can cause confidence to drop.</p>
<p>However if you are defending a CP offense works just as well here as capturing. Waiting for the enemy to come to you gives them more time to plan their attack. If you start going after them, they have less time to plan what to do and they become easier to pick off.</p>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

]]></content:encoded>
			<wfw:commentRss>http://www.thetazzone.com/brief-bf2-tactics-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
