<?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>Twister&#039;s Fury</title>
	<atom:link href="http://twistersfury.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://twistersfury.com</link>
	<description>This Dance Isn&#039;t Over Yet!</description>
	<lastBuildDate>Tue, 17 Jan 2012 15:15:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Online Customers Randomness</title>
		<link>http://twistersfury.com/tf/2012/01/17/online-customers-randomness/</link>
		<comments>http://twistersfury.com/tf/2012/01/17/online-customers-randomness/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 15:08:47 +0000</pubDate>
		<dc:creator>Fenikkusu</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[Blocks]]></category>

		<guid isPermaLink="false">http://twistersfury.com/?p=22</guid>
		<description><![CDATA[I was recently working on an installation of Magento for a friend of mine when I noticed that on the Online Customers page of the admin, there were 10+ requests for the ./app/etc/local.xml file. Most magento users will know that &#8230; <a href="http://twistersfury.com/tf/2012/01/17/online-customers-randomness/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was recently working on an installation of Magento for a friend of mine when I noticed that on the Online Customers page of the admin, there were 10+ requests for the ./app/etc/local.xml file. Most magento users will know that local.xml is a file that stores some crucial data for magento. My immidiate response was oh crap my site is being hacked. I immediately used htAccess to block the IP from the site in general. After this the pings stopped.</p>
<p>Later I went back and removed the ban just to see it was still happening and it was. After this I ran a trace route on the IP Address and got a curious result. It was my web server pinging my file. This confused me to the point that I sent a support request in to find out more. Unfortunatly they didn&#8217;t know.</p>
<p>After further investigation, I came across a thread on the magento forums (Client denied by server configuration) that shed some light on the issue. It turns out that this is a security check that Magento does new to 1.4. The basics of it is that it try&#8217;s to ping the URL of the ./app/etc/local.xml file to verify it can&#8217;t be reached. If it can be reached a message is displayed on the admin.</p>
<p>This is all fine and dandy but it does have it&#8217;s drawbacks. First up, it does this check on every page in the admin. So no matter what you do, it checks. This can cause delays on the page load that aren&#8217;t really needed. In addition to this, it causes server loads you don&#8217;t really need once everything is set up. The entire core of magento is loaded and processed, when it doesn&#8217;t need to be. This also causes 404 errors in the apache log, in addition to all the entries on the Online Customers page requesting ./app/etc/local.xml. All of this is redundant and thank fully easily fixed.</p>
<p>This check is ran by the Magento block file ./app/code/core/Mage/Adminhtml/Block/Notification/Security.php. While the Client denied thread at the Magento Forums just modifies this file, there is a better way. PLEASE!!! DO NOT MODIFY the magento core files. Try to avoid even copying the file over to the local file. There is generally another way to fix the issue, especially if it&#8217;s a block.</p>
<p>As a general rule, a lot of blocks can be controlled via the XML files in the layout folder of the skin. Since the Admin is a skin (./app/design/adminhtml), this rule applies here as well. If you open the ./app/design/adminhtml/default/default/layout/main.xml, you should see a line that looks like:</p>
<pre>&lt;block type="adminhtml/notification_security" name="notification_security" as="notification_security" template="notification/security.phtml"&gt;&lt;/block&gt;</pre>
<p>This is the line that enables the security block. All you have to do is comment out this line, or remove it. Once removed delete your ./var/cache folder and check the Online Customers page. You should no longer see any calls to the ./app/etc/local.xml file.</p>
<p>Please note that *technically* if you want to be fully correct, you should define your own custom admin skin and override the admin layout and the block that&#8217;s loaded&#8230;but that&#8217;s just a little much in my opinion. You&#8217;re call.</p>
<p><em><strong>Links</strong></em><br />
<a title="Client denied by server configuration" href="http://www.magentocommerce.com/boards/viewthread/213947/#t306425" target="_blank">client denied by server configuration (Magento 1.4.2.0)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://twistersfury.com/tf/2012/01/17/online-customers-randomness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clearing Out Test Data And Resetting Order Numbers</title>
		<link>http://twistersfury.com/tf/2012/01/04/clearing-out-test-data-and-resetting-order-numbers/</link>
		<comments>http://twistersfury.com/tf/2012/01/04/clearing-out-test-data-and-resetting-order-numbers/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 22:34:09 +0000</pubDate>
		<dc:creator>Fenikkusu</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[Clear]]></category>
		<category><![CDATA[Delete]]></category>
		<category><![CDATA[Order Number]]></category>
		<category><![CDATA[Reset]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Test Data]]></category>

		<guid isPermaLink="false">http://twistersfury.com/tf/?p=18</guid>
		<description><![CDATA[To The Code Magento is a powerful eCommerce system. Housing 333+ tables in the database and over 14,000 files, it&#8217;s a big beast that often times is very difficult to work with. One thing I noticed since I started working &#8230; <a href="http://twistersfury.com/tf/2012/01/04/clearing-out-test-data-and-resetting-order-numbers/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a id="Story" href="#Code">To The Code</a></p>
<p>Magento is a powerful eCommerce system. Housing 333+ tables in the database and over 14,000 files, it&#8217;s a big beast that often times is very difficult to work with. One thing I noticed since I started working with it is that it&#8217;s very difficult to reset the database without wiping out key data. While setting it up, we often will create test products and test categories that we later do not need. The same with testing the checkout system to make sure it works. When you&#8217;re done with all the testing, you&#8217;re left with a lot of extra data that is pretty much useless.</p>
<p>Another issue I found was the Order Numbers. By default Magento starts at 10000000001 (or similar &#8211; I forget exactly), which is rather unsightly, and oftentimes clashes with existing order numbers.</p>
<p>Due to a recent project, I knew how to delete all the products and categories. After a bit of Googling, I was able to find the SQL statements to clear out test orders, along with deleting all the products and what not. I found this over at <a title="Wasbism.com (Mangento: Clear All Orders and Customers)" href="http://wabism.com/magento-clear-all-orders-and-customers/" target="_blank">WABISM.COM (Magento: Clear All Orders and Customers)</a>. In addition I found the code to reset the order numbers (in addition to the length) at <a title="Change length of order numbers in Magento" href="http://mactimize.com/magento/change-length-of-order-numbers-in-magento" target="_blank">Mactimize (Change length of order numbers in Magento)</a>. After combining these into a single script, I decided to take it a step further.</p>
<p>Again, in a recent project, there were many times I needed to clear the products, but not the categories, or the groups but not the users. Using the single script that clear all test data didn&#8217;t help as well here, so I ended up with multiple scripts. This became annoying so I ended up creating a single script that will handle all this based off variables defined in the script. What I ended up with is the script listed below. The script generates a few Stored Procedures to be able to process <a title="MySQL IF Statements" href="http://dev.mysql.com/doc/refman/5.0/en/if-statement.html" target="_blank">MySQL IF Statements</a> which are deleted when the script is done with them. IF statements are different from the inline IF() function that is ran on queries and as a result can only be ran within Stored Procedures and Functions.</p>
<p>I then use SET to declare variables that I can easily change to how the script processes. I can easily clear categories and not products, or I can clear orders and not customers, etc. In addition to this, I can reset the Magento order number without any hassle.</p>
<p>What makes it really nice though I don&#8217;t have to worry about it the table prefix. Magento is sometimes installed using a table prefix. Often times you would have to update every SQL Statement with the prefix. With this script, I can clear the test data without having to do that. I&#8217;ve built in the @TABLE_PREFIX variable to handle changing prefixes.</p>
<p>All you have to do is save it as a SQL Dump File (IE: Clear.sql) and then &#8216;Import&#8217; it into the database. In SQLYog this is called &#8216;Restore from SQL Dump&#8230;&#8217;</p>
<p><strong>Make sure to back up your DB before running the Script!!</strong></p>
<p>I&#8217;ve not had the chance to test this on every scenario, so I can&#8217;t say if I&#8217;ve got glitches or not.<br />
<a id="Code" href="#Story">To The Story</a></p>
<pre>-- Control Variables --
-- -Change These To Change The Script Execution- --
SET @TABLE_PREFIX = '';
SET @CLEAR_PRODUCTS = FALSE;
SET @CLEAR_CATEGORIES = FALSE;
SET @CLEAR_CUSTOMERS = FALSE;
SET @CLEAR_GROUPS = FALSE;
SET @CLEAR_ORDERS = FALSE;
SET @STARTING_ORDER = 1;
SET @ORDER_LENGTH = 10;
SET @ORDER_PREFIX = 1;
SET @DEFAULT_GROUP = 1;

/*
==============================================
====================NOTES=====================
This script uses procedures to run. It
creates the procedures due to the IF
statements not being able to be ran outside of
a procedure or function (They are not inline
statements). Once the procedure has been ran
passing the nessicary variable from above,
the procedure is removed. A check is also done
to remove the procedure if already exists.
==
Delimiter Is Used To Change The EOL Symbol(s - Normally Semi-Colon [;])
so the Create Procedures Are Entered as a single Query
==============================================
*/

-- Magento Clear Entries --
-- Removing Checks --
SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT;
SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS;
SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION;
SET NAMES utf8;
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0;

DROP PROCEDURE IF EXISTS clearTable;
DELIMITER //
CREATE PROCEDURE clearTable(strTable VARCHAR(100))
BEGIN
CALL runQuery('TRUNCATE TABLE', strTable, '');
END //
DELIMITER ;

DROP PROCEDURE IF EXISTS runQuery;
DELIMITER //
CREATE PROCEDURE runQuery(strPrefix VARCHAR(100), strTable VARCHAR(100), strSuffix VARCHAR(500))
BEGIN
SET @QUERY = CONCAT(strPrefix, ' `', strTable, '` ', strSuffix, ';');
PREPARE QRY FROM @QUERY;
EXECUTE QRY;
END //
DELIMITER ;

-- Reset Products --
DROP PROCEDURE IF EXISTS clearProducts; -- Error Protection
DELIMITER //
CREATE PROCEDURE clearProducts(blnClear BOOLEAN)
BEGIN
IF blnClear = TRUE THEN
-- Clear Product Tables --
CALL clearTable('catalog_product_bundle_option');
CALL clearTable('catalog_product_bundle_option_value');
CALL clearTable('catalog_product_bundle_selection');
CALL clearTable('catalog_product_entity_datetime');
CALL clearTable('catalog_product_entity_decimal');
CALL clearTable('catalog_product_entity_gallery');
CALL clearTable('catalog_product_entity_int');
CALL clearTable('catalog_product_entity_media_gallery');
CALL clearTable('catalog_product_entity_media_gallery_value');
CALL clearTable('catalog_product_entity_text');
CALL clearTable('catalog_product_entity_tier_price');
CALL clearTable('catalog_product_entity_varchar');
CALL clearTable('catalog_product_link');
CALL clearTable('catalog_product_link_attribute');
CALL clearTable('catalog_product_link_attribute_decimal');
CALL clearTable('catalog_product_link_attribute_int');
CALL clearTable('catalog_product_link_attribute_varchar');
CALL clearTable('catalog_product_link_type');
CALL clearTable('catalog_product_option');
CALL clearTable('catalog_product_option_price');
CALL clearTable('catalog_product_option_title');
CALL clearTable('catalog_product_option_type_price');
CALL clearTable('catalog_product_option_type_title');
CALL clearTable('catalog_product_option_type_value');
CALL clearTable('catalog_product_super_attribute');
CALL clearTable('catalog_product_super_attribute_label');
CALL clearTable('catalog_product_super_attribute_pricing');
CALL clearTable('catalog_product_super_link');
CALL clearTable('catalog_product_enabled_index');
CALL clearTable('catalog_product_website');
CALL clearTable('catalog_product_entity');

-- Clearing Inventory --
CALL clearTable('cataloginventory_stock');
CALL clearTable('cataloginventory_stock_item');
CALL clearTable('cataloginventory_stock_status');

-- Add Magento Required Fields --
CALL runQuery('INSERT INTO', 'catalog_product_link_type', '(`link_type_id`,`code`) VALUES (1,''relation''),(2,''bundle''),(3,''super''),(4,''up_sell''),(5,''cross_sell'')');
-- INSERT INTO `catalog_product_link_type`(`link_type_id`,`code`) VALUES (1,'relation'),(2,'bundle'),(3,'super'),(4,'up_sell'),(5,'cross_sell');
CALL runQuery('INSERT INTO', 'catalog_product_link_attribute', '(`product_link_attribute_id`,`link_type_id`,`product_link_attribute_code`,`data_type`) VALUES (1,2,''qty'',''decimal''),(2,1,''position'',''int''),(3,4,''position'',''int''),(4,5,''position'',''int''),(6,1,''qty'',''decimal''),(7,3,''position'',''int''),(8,3,''qty'',''decimal'')');
-- INSERT INTO `catalog_product_link_attribute`(`product_link_attribute_id`,`link_type_id`,`product_link_attribute_code`,`data_type`) VALUES (1,2,'qty','decimal'),(2,1,'position','int'),(3,4,'position','int'),(4,5,'position','int'),(6,1,'qty','decimal'),(7,3,'position','int'),(8,3,'qty','decimal');
CALL runQuery('INSERT INTO', 'cataloginventory_stock', '(`stock_id`,`stock_name`) VALUES (1,''Default'')');
-- INSERT INTO `cataloginventory_stock`(`stock_id`,`stock_name`) VALUES (1,'Default');
END IF;
END //

DELIMITER ;

CALL clearProducts(@CLEAR_PRODUCTS);
DROP PROCEDURE clearProducts; -- No Longer Needed

-- Reseting Categories --
DROP PROCEDURE IF EXISTS clearCategories; -- Error Protection
DELIMITER //
CREATE PROCEDURE clearCategories(blnClear BOOLEAN)
BEGIN
IF blnClear = TRUE THEN
-- Clear Category Tables --
CALL clearTable('catalog_category_entity');
CALL clearTable('catalog_category_entity_datetime');
CALL clearTable('catalog_category_entity_decimal');
CALL clearTable('catalog_category_entity_int');
CALL clearTable('catalog_category_entity_text');
CALL clearTable('catalog_category_entity_varchar');
CALL clearTable('catalog_category_product');
CALL clearTable('catalog_category_product_index');

-- Inserting Default Category --
CALL runQuery('INSERT INTO', 'catalog_category_entity', "(`entity_id`,`entity_type_id`,`attribute_set_id`,`parent_id`,`created_at`,`updated_at`,`path`,`POSITION`,`level`,`children_count`) VALUES (1,3,0,0,'0000-00-00 00:00:00','2009-02-20 00:25:34','1',1,0,1),(2,3,3,0,'2009-02-20 00:25:34','2009-02-20 00:25:34','1/2',1,1,0)");
END IF;
END //

DELIMITER ;

CALL clearCategories(TRUE);
DROP PROCEDURE clearCategories; -- No Longer Needed

-- Reset Customer Data --
DROP PROCEDURE IF EXISTS clearCustomers; -- Error Protection
DELIMITER //
CREATE PROCEDURE clearCustomers(blnClear BOOLEAN, blnGroups BOOLEAN)
BEGIN
IF blnClear = TRUE THEN
-- Clear Customer Tables --
CALL clearTable('customer_address_entity');
CALL clearTable('customer_address_entity_datetime');
CALL clearTable('customer_address_entity_decimal');
CALL clearTable('customer_address_entity_int');
CALL clearTable('customer_address_entity_text');
CALL clearTable('customer_address_entity_varchar');
CALL clearTable('customer_entity');
CALL clearTable('customer_entity_datetime');
CALL clearTable('customer_entity_decimal');
CALL clearTable('customer_entity_int');
CALL clearTable('customer_entity_text');
CALL clearTable('customer_entity_varchar');

-- Clear Logs --
CALL clearTable('log_customer');
CALL clearTable('log_visitor');
CALL clearTable('log_visitor_info');
ELSEIF blnGroups = TRUE THEN
-- Reset Group IDs If Groups Are Getting Cleared --
CALL runQuery('UPDATE', 'customer_entity', ' SET group_id = @DEFAULT_GROUP');
-- UPDATE customer_entity SET group_id = 0;
END IF;
END //
DELIMITER ;

CALL clearCustomers(@CLEAR_CUSTOMERS, @CLEAR_GROUPS);
DROP PROCEDURE clearCustomers; -- No Longer Needed

-- Clearing Group Data --
DROP PROCEDURE IF EXISTS clearGroups; -- Error Protection
DELIMITER //
CREATE PROCEDURE clearGroups(blnClear BOOLEAN)
BEGIN
IF blnClear = TRUE THEN
-- Clear Group Table --
CALL clearTable('customer_group');

-- Insert Default Groups --
CALL runQuery('INSERT INTO', 'customer_group', '(`customer_group_code`, `tax_class_id`) VALUES (''Member'', 3)');
CALL runQuery('INSERT INTO', 'customer_group', '(`customer_group_code`, `tax_class_id`) VALUES (''NOT LOGGED IN'', 3)');

--RESET 'NOT LOGGED IN' To 0 ID
CALL runQuery('UPDATE', 'customer_group', 'SET customer_group_id = 0 WHERE customer_group_id = 2');
END IF;
END //
DELIMITER ;

CALL clearGroups(@CLEAR_GROUPS);
DROP PROCEDURE clearGroups; -- No Longer Needed

-- Clearing Order Data --
DROP PROCEDURE IF EXISTS clearOrders; -- Error Protection
DELIMITER //
CREATE PROCEDURE clearOrders(blnClear BOOLEAN, blnCustomers BOOLEAN)
BEGIN
IF blnClear = TRUE THEN
CALL clearTable('sales_flat_order');
CALL clearTable('sales_flat_order_address');
CALL clearTable('sales_flat_order_grid');
CALL clearTable('sales_flat_order_item');
CALL clearTable('sales_flat_order_status_history');
CALL clearTable('sales_flat_quote');
CALL clearTable('sales_flat_quote_address');
CALL clearTable('sales_flat_quote_address_item');
CALL clearTable('sales_flat_quote_item');
CALL clearTable('sales_flat_quote_item_option');
CALL clearTable('sales_flat_order_payment');
CALL clearTable('sales_flat_quote_payment');
CALL clearTable('sales_flat_shipment');
CALL clearTable('sales_flat_shipment_item');
CALL clearTable('sales_flat_shipment_grid');
CALL clearTable('sales_flat_invoice');
CALL clearTable('sales_flat_invoice_grid');
CALL clearTable('sales_flat_invoice_item');
CALL clearTable('sendfriend_log');
CALL clearTable('tag');
CALL clearTable('tag_relation');
CALL clearTable('tag_summary');
CALL clearTable('wishlist');
CALL clearTable('log_quote');
CALL clearTable('report_event');

CALL runQuery('UPDATE', 'eav_entity_type', 'SET `increment_pad_length` = (@ORDER_LENGTH - 1) WHERE `entity_type_code` = ''order'' LIMIT 1');
-- UPDATE `eav_entity_type` SET `increment_pad_length` = (@ORDER_LENGTH - 1) WHERE `entity_type_code` = 'order' LIMIT 1 ;
CALL runQuery('UPDATE', 'eav_entity_store', 'SET `increment_last_id` = @ORDER_START, `increment_prefix` = @ORDER_PREFIX WHERE `entity_store_id` = 1 LIMIT 1');
-- UPDATE `eav_entity_store` SET `increment_last_id` = @ORDER_START, `increment_prefix` = @ORDER_PREFIX WHERE `entity_store_id` = 1 LIMIT 1 ;
ELSEIF blnCustomers = TRUE THEN
CALL runQuery('UPDATE', 'sales_flat_order', 'SET `customer_id` = (NULL)');
END IF;
END //
DELIMITER ;

CALL clearOrders(@CLEAR_ORDERS, @CLEAR_CUSTOMERS);
DROP PROCEDURE clearOrders; -- Don't Need It Anymore

DROP PROCEDURE clearTable;
DROP PROCEDURE runQuery;

--Restoring Checks--
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT;
SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS;
SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION;
SET SQL_NOTES=@OLD_SQL_NOTES;</pre>
]]></content:encoded>
			<wfw:commentRss>http://twistersfury.com/tf/2012/01/04/clearing-out-test-data-and-resetting-order-numbers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yu-Gi-Oh LP Damage Calculator</title>
		<link>http://twistersfury.com/tf/2011/08/25/yu-gi-oh-ti-life-point-damage-calculator/</link>
		<comments>http://twistersfury.com/tf/2011/08/25/yu-gi-oh-ti-life-point-damage-calculator/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 22:24:07 +0000</pubDate>
		<dc:creator>Fenikkusu</dc:creator>
				<category><![CDATA[Creations]]></category>
		<category><![CDATA[Life Points]]></category>
		<category><![CDATA[TI-83 Graphing Calculator]]></category>
		<category><![CDATA[Yu-Gi-Oh]]></category>
		<category><![CDATA[Yugioh]]></category>

		<guid isPermaLink="false">http://twistersfury.com/tf/?p=16</guid>
		<description><![CDATA[One of the issues with playing the Yu-Gi-oh TCG (Trading Card Game) is keeping track of life points. It can be pretty rough at times. Half your life points, add 100, half them again, take damage. Etc. It gets to &#8230; <a href="http://twistersfury.com/tf/2011/08/25/yu-gi-oh-ti-life-point-damage-calculator/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of the issues with playing the Yu-Gi-oh TCG (Trading Card Game) is keeping track of life points. It can be pretty rough at times. Half your life points, add 100, half them again, take damage. Etc. It gets to be tough on just a piece of paper. When I was more active in playing, my girlfriend  had a TI-83 Graphing Calculator that she would use to help calculate life points. Eventually, I created an actual program for the calculator specifically for tracking damage calculations when playing Yu-Gi-Oh. Now I&#8217;ve not had the ability to test it on the other Texas Instruments, but I imagine it would work just as well.</p>
<p>It makes tracking points a breeze, in addition to allowing you to track life points for up to 8 people at one time. This comes in handy for Free-For-Alls and team duels. It has the basic options of subtracting, adding, and halving life points. You&#8217;re up and running in seconds. You pull out your TI and Press the &#8216;PRGM&#8217; key and then locate and launch the Damage Calculator. Once running, you&#8217;re presented with a menu to start the game, defaulting to two players. When ever you want to modify the player&#8217;s LP, you hit the number corresponding the that player (IE: 2). This will pull up the second menu where you then press the number of the action (IE: 1 &#8211; Subtract Life). Anyone old enough to own a TI that plays Yu-Gi-Oh should easily figure out how to use the Damage Calculator rather quickly.</p>
<p>Keep in mind this was my first attempt at a TI based program, so it&#8217;s a bit sketchy. I&#8217;m going to update it and clean it up to give it more functionality. I&#8217;ll post the script for it when I do. Also as a fair warning, I just copied this to paper then to the comp directly from the calculator, so I may of fat-fingered some of it.</p>
<p><code><br />
Lbl BG<br />
ClrHome<br />
Menu("MAIN MENU", "NEW GAME", NG, "QUIT" QT)<br />
Lbl QT<br />
Stop<br />
Lbl PO<br />
If LPLP(T) <= 0<br />
Then<br />
	0 -> LPLP(T)<br />
	Output(1,1, "P")<br />
	Output(1, 2, T)<br />
	log(1, 3, " IS OUT OF LIFE.")<br />
	Pause<br />
End<br />
Goto ST<br />
Lbl NG<br />
2 -> P<br />
{8000,8000,8000,8000,8000,8000} -> LPLP<br />
Lbl N2<br />
If P=8<br />
Then<br />
	Menu("NEW GAME", "START GAME", "QUIT", QT)<br />
Else<br />
	Menu("NEW GAME", "START GAME", "ADD Player", AP, "QUIT", QT)<br />
End<br />
Lbl AP<br />
P + 1 -> P<br />
ClrHome<br />
Output(1, 1, "Total Players:")<br />
Output(1, 16, P)<br />
Pause<br />
Goto N2<br />
Lbl ST<br />
ClrHome<br />
For(I, 1, P)<br />
	Output(I, 2, I)<br />
	Output(I, 10, LPLP(I))<br />
End<br />
0 -> T<br />
getKey ->T<br />
While T = 0<br />
	getKey -> T<br />
End<br />
If T = 73<br />
	8 -> T<br />
If T = 72<br />
	7 -> T<br />
If T = 84<br />
	6 -> T<br />
If T = 83<br />
	5 -> T<br />
If T = 82<br />
	4 -> T<br />
If T = 94<br />
	4 -> T<br />
If T = 93<br />
	3 -> T<br />
If T = 92<br />
	1 -> T<br />
If T = 102 or T=45<br />
	0 -> T<br />
Goto ST<br />
If T = 0<br />
Goto BG<br />
Menu("OPTIONS", "SUBTRACT LIFE", SL, "ADD LIFE", AL, "SUBTRACT DIFF", SD, "Half LP", HL, "CANCEL", ST)<br />
Lbl SL<br />
ClrHome<br />
Input "LP Lost: ", L<br />
LPLP(T) - L -> LPLP(T)<br />
Goto PO<br />
Lbl ST<br />
Lbl AL<br />
ClrHome<br />
Input "LP Gained:" L<br />
LPLP (T) + l -> TPLP(T)<br />
Goto PO<br />
Lbl SD<br />
ClrHome<br />
Input "HIGH ATTACK", H<br />
Input "LOW ATTACK", L<br />
LPLP(T) - (H - L) -> LPLP(T)<br />
Goto PO<br />
Lbl HL<br />
LPLP(T) / 2<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://twistersfury.com/tf/2011/08/25/yu-gi-oh-ti-life-point-damage-calculator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excuse The Mess</title>
		<link>http://twistersfury.com/tf/2011/06/06/excuse-the-mess/</link>
		<comments>http://twistersfury.com/tf/2011/06/06/excuse-the-mess/#comments</comments>
		<pubDate>Mon, 06 Jun 2011 13:19:23 +0000</pubDate>
		<dc:creator>Fenikkusu</dc:creator>
				<category><![CDATA[Happenings]]></category>

		<guid isPermaLink="false">http://localhost/tf/?p=13</guid>
		<description><![CDATA[I apologize for the mess around here. I&#8217;m slowly working on getting the site updated. I just don&#8217;t have all the time in the world to do it. I&#8217;ll get everything done in due time. Just bare with me.]]></description>
			<content:encoded><![CDATA[<p>I apologize for the mess around here. I&#8217;m slowly working on getting the site updated. I just don&#8217;t have all the time in the world to do it. I&#8217;ll get everything done in due time. Just bare with me.</p>
]]></content:encoded>
			<wfw:commentRss>http://twistersfury.com/tf/2011/06/06/excuse-the-mess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s May 22, and I&#8217;m still here&#8230;</title>
		<link>http://twistersfury.com/tf/2011/05/22/its-may-22-and-im-still-here/</link>
		<comments>http://twistersfury.com/tf/2011/05/22/its-may-22-and-im-still-here/#comments</comments>
		<pubDate>Sun, 22 May 2011 05:11:39 +0000</pubDate>
		<dc:creator>Fenikkusu</dc:creator>
				<category><![CDATA[Follower's of Christ]]></category>

		<guid isPermaLink="false">http://twistersfury.com/tf/?p=11</guid>
		<description><![CDATA[More than likely, you&#8217;ve heard all the recent hype about May 21, 2011 being the day the Rapture is to occur and the end of the world to start. If you haven&#8217;t, the basics of the concept is that Harold &#8230; <a href="http://twistersfury.com/tf/2011/05/22/its-may-22-and-im-still-here/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>More than likely, you&#8217;ve heard all the recent hype about May 21, 2011 being the day the Rapture is to occur and the end of the world to start. If you haven&#8217;t, the basics of the concept is that Harold Camping, a preacher of some sort, states that using mathematical equations in line with concepts from the Bible, the Rapture was going to occur May 21st at 6PM in every timezone. He also went so far as to say that on October 22, 2011 God was going to destroy the Universe or something to that effect.</p>
<p>Well, it&#8217;s now May 22nd, and I&#8217;m still here. While I certainly agree that I&#8217;m not prefect, nor is there any way I could be, I feel that I am saved, as per the Bible, but I wasn&#8217;t taken. The truth of the matter is that the reports are in and it seems no one was taken&#8230;so&#8230;does this mean I&#8217;m not saved? Certainly not. While certainly true that there are sections of the Bible that are difficult to understand, like the &#8216;abomination of desolation&#8217;, there are other sections that I find quite clear and straight forward. Especially when it comes to the Rapture.</p>
<p>Quite frankly, it&#8217;s people like this guy that piss me off. It&#8217;s people like him that give the true Follower&#8217;s of Christ a bad MO. Any true Christian would of told you he was out of his mind too. Now, certainly there was every chance the Rapture could of occurred, but the more he preached it, the less likely it was to happen. I feel truly sorry for all the people he followed him so blindly too. Reports say that there are many people who sold their house and all other possessions for the sake of advertisement to on the Rapture. Granted, I&#8217;m glad people were told of the Rapture, and perhaps a good number were saved, but you can bet that these people&#8217;s lives are pretty much ruined now. </p>
<p>When we look at the Bible, there are many versus (Some are even duplicated) that tell us that Christ himself did not know when the Rapture would occur. Only God knows. Will someone please explain to me how it is that the most Perfect man in the whole of time didn&#8217;t know when the Rapture is to occur, but this random guy was able to predict it using Christ&#8217;s own words? How the heck does that work? Mathew 24-36 tells us this:</p>
<blockquote><p>But of that day and hour knoweth no man, no, not the angels of heaven, but my Father only</p></blockquote>
<p>That&#8217;s pretty straight forward in my opinion. In fact, we see the same thing again in Mark 13-34:</p>
<blockquote><p>But of that day and hour knoweth no man, no, not the angels which are in heaven, neither the Son, but the Father.</p></blockquote>
<p>The bottom line is that there is no way for any of us to know when it&#8217;ll come, and people like this are why true Christians look so bad. &#8216;False Prophets&#8217; as the Bible calls them. While we can&#8217;t say when the Rapture is to occur, we can still hint at it. However, understand that it is impossible for us to predict a date or a time. The Bible tells us that the Rapture will occur &#8216;Like a thief in the night.&#8217; But we can see hints to it&#8217;s arrival. Granted, this Camping guy did tap into this stuff a bit, just not the right way. Patriotically lets look at what Christ says in Mathew 24:6-8:</p>
<blockquote><p>
And ye shall hear of wars and rumors of wars: see that ye be not troubled: for all these things must come to pass, but the end is not yet. For nation shall rise against nation, kingdom against kingdom: and there shall be famines, and pestilences, and earthquakes, in divers places. All these are the beginning of sorrows.
</p></blockquote>
<p>All the recent wars and earthquakes point us close to the Rapture. Further more, he goes on to talk about the &#8216;abomination of desolation&#8217; and how that signals the beginning of the end. Now, many speculate on what the &#8216;abomination of desolation&#8217; is, but we don&#8217;t have a clear answer. If memory serves me correctly, some believe it to refer to the Anti-Christ. Others believe it to mean when an idol is placed within the Temple of Jerusalem. What it means for sure, I can&#8217;t say. In any case, there are other factors we can look at that just make this whole thing blow up in Camping&#8217;s face.</p>
<p>First off, in addition to the Rapture prediction, he stated that the world would be utterly destroyed by Oct. 22nd. Well, lets jump over to Revelation. I personally don&#8217;t spend much time in Revelation, because I feel it&#8217;s more for those who  aren&#8217;t saved than those who are. However, there are still some key points in there. First up is the defeat of Satan not once, but twice. The second time is when he&#8217;s defeated for good. The first time, however, in Revelation 20: 4 we get this:</p>
<blockquote><p>
&#8230;And they lived and reigned with Christ for a thousand years.
</p></blockquote>
<p>&#8230;Umm&#8230;how can Jesus reign on Earth 1000 years if there is no Earth to reign on? Furthermore, how is the earth going to end in 5 months when Revelation clearly tells us the true end times will take 7 years&#8230;?&#8230;so now apparently the Bible, in all it&#8217;s perfection, is just wrong? I for one find that hard to believe. If memory serves me correctly (Been a while so do excuse me if I recall incorrectly), Revelation also indicates that in the end times, you can only buy food and what not via a &#8216;mark on the right hand&#8217;, also believed by some to be some form of electronic chip in the hand&#8230;I&#8217;m sorry, but while our technology is good, it isn&#8217;t that good. Granted that could be due to the fact that over 3/4 of the earth&#8217;s population is going to die pretty quickly following the start of the Tribulation that this would be possible.</p>
<p>Ultimately, I think it&#8217;s safe to say that the Rapture didn&#8217;t occur. As to when it will, only God knows, but certainly we&#8217;re close. In the mean time, we need to keep living our lives as Christ and God intended: with absolute love for others. Many believe the Bible is about fire and brimstone, but the reality is it&#8217;s about Love. However, people like Camping give us a bad name with stuff like this. Certainly, we should be aware of it and be ready for it&#8217;s coming, but you don&#8217;t have to destroy your life by selling everything to make posters for a day that Christ himself doesn&#8217;t even know. You can preach the Gospel without having to do that. Anyone that thinks they should are being deceived by Satan in an attempt to destroy them.</p>
<p>So for now, I&#8217;m going to wait, watch, and teach the Gospel until such time as the Angels of the Lord truly blow those trumpets. I&#8217;m still here, and I don&#8217;t plan on going anywhere until the true Christ returns, and not just because some guy decides he can outwit Christ.</p>
<p>Peace.</p>
]]></content:encoded>
			<wfw:commentRss>http://twistersfury.com/tf/2011/05/22/its-may-22-and-im-still-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

