<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-5863512096903732023</id><updated>2009-11-02T12:43:42.005+08:00</updated><title type='text'>Vic2x Programming Tutorials Portal</title><subtitle type='html'>Vic2x Programming portal, a blog aimed at gathering programmers all throughout the world to&lt;br&gt;share their computer programming knowledge and prowess to everyone. With different levels&lt;br&gt;of skills, ranging from beginning programmers to experts in the field, all will be united for the&lt;br&gt;sole purpose of freeing information to the world. This will also served as a programming&lt;br&gt;tutorial site.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vic2x-programming.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default'/><link rel='alternate' type='text/html' href='http://vic2x-programming.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>NegOcc</name><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5863512096903732023.post-7469131975631403343</id><published>2009-10-20T11:37:00.003+08:00</published><updated>2009-10-20T11:39:17.830+08:00</updated><title type='text'>Web Scrapers and PHP Curl Stuff</title><content type='html'>If you need some web scraping and curl tips using PHP, you may check this site,&lt;br /&gt;&lt;br /&gt;&lt;a href="http://joemarie-aliling.com/category/php-programming/"&gt;Joemarie Aliling Tech Blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5863512096903732023-7469131975631403343?l=vic2x-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vic2x-programming.blogspot.com/feeds/7469131975631403343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5863512096903732023&amp;postID=7469131975631403343' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/7469131975631403343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/7469131975631403343'/><link rel='alternate' type='text/html' href='http://vic2x-programming.blogspot.com/2009/10/web-scrapers-and-php-curl-stuff.html' title='Web Scrapers and PHP Curl Stuff'/><author><name>NegOcc</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15389057718177341830'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5863512096903732023.post-161311856993399511</id><published>2008-12-05T04:08:00.002+08:00</published><updated>2008-12-05T04:22:10.120+08:00</updated><title type='text'>Running more Threads on Linux</title><content type='html'>Have you wondered sometimes you can't put on more threads for your scripts on Linux? Well the answer is simple. The Default settings for per-thread stack size is 10240 and the maximum number of processes the user can invoke is as large as 71680(this may vary from system to system). These defaults are responsible for limiting the number of threads that you can use in your programs. So reducing these values will allow you to use more threads. The commands you will use for this case is &lt;span style="font-weight: bold;"&gt;ulimit &lt;/span&gt;which shows or sets the resources for a Linux process. Based on my experience, I usually use these values by typing on the prompt:&lt;br /&gt;&lt;br /&gt;ulimit -s 2048 --&gt; I got 2gig of RAM, so for bigger RAM try to use larger values like 4096&lt;br /&gt;ulimit -u 8068&lt;br /&gt;&lt;br /&gt;There you go! Now you can play with more threads on your scripts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5863512096903732023-161311856993399511?l=vic2x-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vic2x-programming.blogspot.com/feeds/161311856993399511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5863512096903732023&amp;postID=161311856993399511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/161311856993399511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/161311856993399511'/><link rel='alternate' type='text/html' href='http://vic2x-programming.blogspot.com/2008/12/running-more-threads-on-linux.html' title='Running more Threads on Linux'/><author><name>NegOcc</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15389057718177341830'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5863512096903732023.post-4674137454856335247</id><published>2008-12-05T03:58:00.003+08:00</published><updated>2008-12-05T04:08:28.800+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='phpmyadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='import.php'/><category scheme='http://www.blogger.com/atom/ns#' term='missing parameters'/><title type='text'>phpMyAdmin: problem with missing parameters</title><content type='html'>I just had a terrible experience when I was developing scripts on Linux, everything was working so fine a couple of days ago and suddenly phpMyAdmin is acting so weird. I can browse the records, but when I tried to use the SQL Query box and submit my queries, I got this message,&lt;br /&gt;&lt;br /&gt;import.php Missing parameters&lt;br /&gt;&lt;br /&gt;well, more or less like that. It really sucks and I spent almost an hour figuring out what happened to phpMyAdmin, I even installed another new version of it, yet, the same thing happened, that is, my queries seemed rejected by phpMyAdmin.&lt;br /&gt;&lt;br /&gt;Fortunately, I found out that the hard-disk space of our box is running out of space and 100% has been exhausted. That's suspicious! Then I finally recycled most spaces of our box's hd space, and tried doing my stuff again on phpMyAdmina and voila! Everything is back to normal! Too bad the FAQ of phpMyAdmin didn't help at all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5863512096903732023-4674137454856335247?l=vic2x-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vic2x-programming.blogspot.com/feeds/4674137454856335247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5863512096903732023&amp;postID=4674137454856335247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/4674137454856335247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/4674137454856335247'/><link rel='alternate' type='text/html' href='http://vic2x-programming.blogspot.com/2008/12/phpmyadmin-problem-with-missing.html' title='phpMyAdmin: problem with missing parameters'/><author><name>NegOcc</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15389057718177341830'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5863512096903732023.post-4469410856808040075</id><published>2007-08-01T01:45:00.001+08:00</published><updated>2009-10-20T12:12:37.835+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Demystified'/><category scheme='http://www.blogger.com/atom/ns#' term='Programs'/><category scheme='http://www.blogger.com/atom/ns#' term='PHPMailer'/><category scheme='http://www.blogger.com/atom/ns#' term='philippines'/><category scheme='http://www.blogger.com/atom/ns#' term='Helper Class'/><title type='text'>PHPMailer Helper Class Demystified</title><content type='html'>&lt;div style="text-align: left;"&gt;Hi, welcome to another episode of my programming tutorial here on Vic2x Programming Tutorials Portal. This is about the famous PHP class used commonly in most PHP mail applications. It's called PHPMailer, you can download the thing from &lt;a href="http://phpmailer.sourceforge.net/"&gt;http://phpmailer.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At first, upon looking at the manual on how to use PHPMailer class, I was telling myself, this will be another get-a-headache. But, sometimes, we just need to crack codes for our survival, the deadlines are always fast approaching. What I did, I studied the class on how to initialize its member variables and what member functions to call before sending a mail or set of emails. I noticed however, that by just doing the initialization and calling several member functions, would take some time to make unless you just copy-paste your previous work using the PHPMailer Class. I decided to make a &lt;span style="font-weight: bold;"&gt;helper clas&lt;/span&gt;s to do the tedious initializations and calling member functions just to send an email. &lt;span style="font-weight: bold;"&gt;Helper class&lt;/span&gt; for beginners' sake, are simply helper class! Just kidding. Ok, seriously, a helper class will simply make your life easier. Most of the time, you will only have small number of lines in your programs to call some complicated functions or classes, in our case, the &lt;span style="font-weight: bold;"&gt;PHPMailer&lt;/span&gt;. That means, if you need to have 15 lines of codes just to send an email using PHPMailer class, using a helper class will lessen the lines of codes. Ok, I know what you're talking, let me give you the listings:&lt;br /&gt;&lt;br /&gt;Prerequisites:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;You must have downloaded the PHPMailer class. The filename is class.phpmailer.php&lt;br /&gt;Simply extract that file in the folder where the following PHP files reside. Mine, I copied all of   them to my htdocs folder, which is the root of your PHP engine.&lt;/li&gt;&lt;li&gt;Once again, the following PHP scripts below should be located in the same folder as your class.phpmailer.php&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Listing 1.&lt;/span&gt; Name your this PHP file as, &lt;span style="font-weight: bold;"&gt;sender.php&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;   require_once('xmail.php');&lt;br /&gt;   $myMailer = new XMail("Test Subjet", "yourEmail@domain.com", "Juan Dela Cruz");&lt;br /&gt;   $emailAdds = "joemarie.aliling@gmail.com,joemarie.aliling@gmail.com";&lt;br /&gt;   $emailBody = "&amp;lt;h1&amp;gt;This is a test message&amp;lt;/h1&amp;gt;";&lt;br /&gt;   if($myMailer-&gt;send($emailAdds, $emailBody)){&lt;br /&gt;       echo 'Mail has been sent.';&lt;br /&gt;   }else{&lt;br /&gt;       echo 'Failed to send mail.';&lt;br /&gt;   }&lt;br /&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Listing 2.&lt;/span&gt; This is the helper class, the XMail class, name this as &lt;span style="font-weight: bold;"&gt;xmail.php&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;require_once 'class.phpmailer.php';&lt;br /&gt;class XMail{&lt;br /&gt;var $objMail;&lt;br /&gt;function XMail($subj='',$frmEmail='',$frmName=''){&lt;br /&gt;    objMail = new PHPMailer();           //instantiate our PHPMailer object&lt;br /&gt;    $this-&gt;objMail-&gt;From     = $frmEmail;&lt;br /&gt;    $this-&gt;objMail-&gt;FromName = $frmName;&lt;br /&gt;    $this-&gt;objMail-&gt;isMail();          //we'll use the php core mail function&lt;br /&gt;    $this-&gt;objMail-&gt;Subject = $subj;&lt;br /&gt;    $this-&gt;objMail-&gt;isHTML(true);     //we'll be sending an HTML email format..&lt;br /&gt;}&lt;br /&gt;function send($mailID, $mailBody){&lt;br /&gt;    $this-&gt;objMail-&gt;Body = $mailBody;&lt;br /&gt;    $arr = explode(",", $mailID);             //separate the comma separated emails..&lt;br /&gt;    foreach($arr as $key =&gt; $value){          //loop through all addresses..&lt;br /&gt;        $this-&gt;objMail-&gt;AddAddress($value,"Recipient");  //set the recepient's address..&lt;br /&gt;        if(!$this-&gt;objMail-&gt;send()) return false;  //exit with failure..&lt;br /&gt;    }&lt;br /&gt;    return true;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sorry, I made the listings' font size smaller so as to make it fit on the page.&lt;br /&gt;&lt;br /&gt;There you are.. Simply execute the sender.php on your browser. But take note, it must be run on a server with mail delivery engine so that you can test the real action of the code. The code is easy to understand, take a while to read it, I commented all that need to be explained. You can use the XMail class for single email address or multiple addresses recipients. Just use comma to separate each email address. The mailer used in the XMail is simply the PHP's mail function. You can also set that to SMTP based one. Just go to the site of PHPMailer and see the documents on how to use SMTP delivery with the PHPMailer. If you have questions on the code, drop me a comment here, alright!&lt;br /&gt;&lt;br /&gt;The codes presented here are free to use, reverse-engineer and use them in your applications&lt;br /&gt;I hope, I have given you some insights on how Helper Classes or functions can help your programming tasks easier. Well, well, well, there you have it, PHPMailer Helper Class Demystified!&lt;br /&gt;&lt;br /&gt;I would like to acknowledge the PHPMailer Team, thanks for the source! More power to you all!&lt;br /&gt;&lt;br /&gt;If you need some Web Scraping and Curl Tips using PHP, check this site, &lt;a href="http://joemarie-aliling.com/category/php-programming/"&gt;Web Scraping and Curl&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;-Author, Philippines&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5863512096903732023-4469410856808040075?l=vic2x-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vic2x-programming.blogspot.com/feeds/4469410856808040075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5863512096903732023&amp;postID=4469410856808040075' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/4469410856808040075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/4469410856808040075'/><link rel='alternate' type='text/html' href='http://vic2x-programming.blogspot.com/2007/08/phpmailer-helper-class-demystified.html' title='PHPMailer Helper Class Demystified'/><author><name>NegOcc</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15389057718177341830'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5863512096903732023.post-5751222237385152280</id><published>2007-07-31T04:40:00.000+08:00</published><updated>2007-07-31T12:59:50.691+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Coding Conventions'/><category scheme='http://www.blogger.com/atom/ns#' term='Comments'/><category scheme='http://www.blogger.com/atom/ns#' term='Commenting'/><category scheme='http://www.blogger.com/atom/ns#' term='Coding Tip'/><category scheme='http://www.blogger.com/atom/ns#' term='Indenting'/><category scheme='http://www.blogger.com/atom/ns#' term='Variable Naming'/><title type='text'>Programming Tutorial Portal Tip 1</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Coding Conventions Tutorial&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Naming Variables&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Always use meaningful variables in your program. Don't use num1 if that variable represents the average result. Worst still you would use the variable x for this. In programming, always bear in mind that you are programming for yourself and at the same time for others to clearly read it. That's need later if you are working as a team. Use variable names like these,&lt;br /&gt;&lt;br /&gt;ave                - to represent the average or you can simply use the word average itself.&lt;br /&gt;x, y                - for x and y coordinates.&lt;br /&gt;subTota     l  - for the temporary result of a particular addition.&lt;br /&gt;i, j, k, l, cntr  - are usually common in loops.&lt;br /&gt;payPerView,studPerRoom  - this is the professional style of naming variables..&lt;br /&gt;&lt;br /&gt;You see? The variables speak for themselves! Seeing these variables, the programming could immediately surmise what's the use of that variable.&lt;br /&gt;&lt;br /&gt;Another form used by professionals is to precede the variable name with the data type of that variable. Example:&lt;br /&gt;&lt;br /&gt;char chrLetter          -- we precede Letter with chr to mean it's a character.&lt;br /&gt;&lt;br /&gt;char strName[20]   -- as you can see? Name is a string, we simply put str to make it stand&lt;br /&gt;                                 -- that it's a string.&lt;br /&gt;int   nAge                   -- Age is usually an integer, we don't have 1.5 age right? and the commonly&lt;br /&gt;                                 -- used prefix is n or int will do&lt;br /&gt;&lt;br /&gt;double dblLightYears -- for double numbers used dbl as your prefix&lt;br /&gt;&lt;br /&gt;float     fVolume           -- usually f is being used to represent float&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Comments&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;In order to make a program understandable, you should include some explanatory notes at key places in the program. Most programming languages have provisions for putting comments in your programs. I myself have witnessed to the idea of not having comments in my program. I wrote a program a long time ago and what's unique about it is my reaction when I saw my uncommented source code. My reaction is simply, wow! Who wrote this program? Ahmmm? I really forgot the algorithm I used on it and it made me think it's not mine. Therefore, to save your time banging your head figuring out what a particular line does, simply use comments.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;distance = speed * time; //Computes the distance traveled.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Indenting&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One signature of a beginner's program is the way the source was laid out. Typically you will see, everything seems sticking to the left part of the monitor. It's like that the instruction codes are very afraid to touch the right side of the screen. I don't know what are they afraid of. If your a beginner in programming, you better practice your habit of indenting your source code as much as possible. Here's a typical style I prefer to use, take note this can also be applied to any other languages:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;int main(){&lt;br /&gt;        int nAge;&lt;br /&gt;        printf("Enter your age: ");&lt;br /&gt;        scanf("%d", &amp;nAge);&lt;br /&gt;&lt;br /&gt;       if(nAge &lt; style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Neat isn't it? You see the hierarchy? It would take sometime to make it habit though. If you want to have your style of indenting, just remember, be CONSISTENT every time.&lt;br /&gt;&lt;br /&gt;That's all for now.. Till the next Tip!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5863512096903732023-5751222237385152280?l=vic2x-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vic2x-programming.blogspot.com/feeds/5751222237385152280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5863512096903732023&amp;postID=5751222237385152280' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/5751222237385152280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/5751222237385152280'/><link rel='alternate' type='text/html' href='http://vic2x-programming.blogspot.com/2007/07/programming-tutorial-blog-tip-1.html' title='Programming Tutorial Portal Tip 1'/><author><name>NegOcc</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15389057718177341830'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5863512096903732023.post-7229105625111346448</id><published>2007-07-31T02:32:00.000+08:00</published><updated>2007-07-31T02:58:40.063+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Run-Time Errors'/><category scheme='http://www.blogger.com/atom/ns#' term='Kinds of Errors'/><category scheme='http://www.blogger.com/atom/ns#' term='C++ Language'/><category scheme='http://www.blogger.com/atom/ns#' term='Logic Errors'/><category scheme='http://www.blogger.com/atom/ns#' term='Programs'/><category scheme='http://www.blogger.com/atom/ns#' term='Program Errors'/><category scheme='http://www.blogger.com/atom/ns#' term='Language'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming Errors'/><title type='text'>Kinds of Program Errors</title><content type='html'>Ever wonder what are the common kinds of program errors and what do they mean?&lt;br /&gt;Here's an explanation about them..&lt;br /&gt;&lt;br /&gt;The compiler will catch certain kinds of mistakes and will write out an error message when it finds a mistake. It will detect what are called &lt;span style="font-weight: bold;"&gt;syntax errors&lt;/span&gt; since they are, by and large, violation of the syntax or simply the grammar of the programming language, like omitting the semicolon in C or C++.&lt;br /&gt;&lt;br /&gt;If the compiler discovers that your program contains a syntax error, it will tell you where the error is likely to be and what kind of error it is likely to be. If the compiler says your program contains a syntax error, you can be confident that it does. However, the compiler may be incorrect about either the location or the nature of the error. It does of determining the location of an error, to within a line or two, than it does of determining the source of the error. This is because the compiler is guessing at what you meant to write down and can easily guess wrong. After all, the compiler cannot read your mind. Error messages subsequent to the first one have a higher likelihood of being incorrect with respect to either the location or the nature of the error. Again, this is because the compiler must guess your meaning. If the compiler's first guess was incorrect, this will affect its analysis of future mistakes, since the analysis will be based on a false assumption.&lt;br /&gt;&lt;br /&gt;If your program contains something that is a direct violation of the syntax rules for your programming language, the compiler will give you an &lt;span style="font-weight: bold;"&gt;error message.&lt;/span&gt; However, sometimes the compiler will give you only a &lt;span style="font-weight: bold;"&gt;warning message&lt;/span&gt;, which indicates that you have done something that is not, technically speaking, a violation of the programming language syntax rules, but that is unusual enough to indicate a likely mistake.  When you get a warning message, the compiler is saying, "Are you sure you mean this?" At this stage of your development, you should treat every warning as if it were an error until your instructor approves ignoring the warning.&lt;br /&gt;&lt;br /&gt;There are certain kinds of errors that the computer system can detect only when a program is run. Appropriately enough, these are called &lt;span style="font-weight: bold;"&gt;run-time errors.&lt;/span&gt; Most computer systems will detect certain run-time errors and output an appropriate error message. Many run-time errors have to do with numeric calculations. For example, if the computer attempts to divide a number by zero, that is normally a run-time error.&lt;br /&gt;&lt;br /&gt;If the compiler approved of your program and the program ran once with no run-time error messages, this does not guarantee that your program is correct. Remember, the compiler will only tell you if you wrote a syntactically correct program. It will not tell you whether the program does what you want it to do. Mistakes in the underlying algorithm or in translating the algorithm into the C++ language are called &lt;span style="font-weight: bold;"&gt;logic errors.&lt;/span&gt; Example of this is, instead of having the symbol + for your addition of two variables, you use * instead, which is for multiplication. This will simply yield an erroneous result. If the compiler approves of your program and there are no run-time errors, but the program does not perform properly, then undoubtedly your program contains a logic error. Logic errors are the hardest kind to diagnose, because the computer gives you no error messages to help find the error. It cannot reasonably be expected to give any error messages. For all the computer knows, you may have meant what you wrote.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;TIP:&lt;br /&gt;&lt;br /&gt;If you want to test your program for Logic Errors, you should try as much as possible, all representative data for your inputs and see their effect on your program. This way, in every generation of your testing, you will finally fine-tune your program and you'll become more confident with its execution. The only way to justify confidence in a program is to program carefully and so avoid most errors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5863512096903732023-7229105625111346448?l=vic2x-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vic2x-programming.blogspot.com/feeds/7229105625111346448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5863512096903732023&amp;postID=7229105625111346448' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/7229105625111346448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/7229105625111346448'/><link rel='alternate' type='text/html' href='http://vic2x-programming.blogspot.com/2007/07/kinds-of-program-errors.html' title='Kinds of Program Errors'/><author><name>NegOcc</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15389057718177341830'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5863512096903732023.post-7533132664419738958</id><published>2007-07-30T17:03:00.001+08:00</published><updated>2007-08-03T00:05:58.393+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Logical Expressions'/><category scheme='http://www.blogger.com/atom/ns#' term='Sample Programs in C'/><category scheme='http://www.blogger.com/atom/ns#' term='Short-Circuit'/><category scheme='http://www.blogger.com/atom/ns#' term='Evaluation'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming Languages'/><category scheme='http://www.blogger.com/atom/ns#' term='Looping'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming C'/><category scheme='http://www.blogger.com/atom/ns#' term='Conditional Statements'/><title type='text'>Programming Languages Short-Circuit</title><content type='html'>Have you heard about the thing as Short-Circuit in Programming? Sounds strange since it can be only applied to electrical concepts right? It is also considered as a fault in an electrical device. But the term is used often in programming languages way of evaluating logical expressions or conditional statements. Without an understanding about Short-Circuits in Programming languages, sometimes mysterious things do happen and you simply say that there's a bug in C! Also, without this knowledge about short-circuits in your program's logic could lead to a disaster. Programs crashing in  the middle of it's execution. So, let's join hands and conquer the idea behind Short-Circuit in Programming Language&lt;br /&gt;&lt;br /&gt;Here's a typical program written in C:&lt;br /&gt;&lt;br /&gt;#include&amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include&amp;lt;conio.h&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;int main(){&lt;br /&gt;    int i;&lt;br /&gt;    clrscr();&lt;br /&gt;    char str[8] = "monopono"; //assign our string with this text..&lt;br /&gt;    i = 0;&lt;br /&gt;    while((str[i] != 0x0) &amp;&amp; (i &amp;lt; 8)){ //the 0x0 means null and is usually found&lt;br /&gt;                                       //after at the end of a string.&lt;br /&gt;        printf("%d %c ", i, str[i]);   //simply output the variables values..&lt;br /&gt;        i++;&lt;br /&gt;    }&lt;br /&gt;    getch();&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ok, let's try to analyze this very complicated program. Let's jump directly to the looping statement, our while statement.. So this can read this way, Repeat the following statements WHILE i is less than 8 AND the current character being pointed to by i in our string str is not yet null or 0x0.. Are you with me? If you cannot understand it, read it again..&lt;br /&gt;&lt;br /&gt;Considering the conditions given ,((str[i] != 0x0) &amp;&amp; (i &amp;lt; 8)), our loop will simply iterate the statements inside if our i is less than 8 AND at the same time we haven't found a null character yet in our string.. Ok the crucial part is when the loop has iterated 8 times already. Can you guess what's the value of the variable i once the loop has finished? Hope you guessed it right, it's 8! If you don't agree with me, try it on.. &lt;br /&gt;&lt;br /&gt;So that's the danger, the value 8 itself! Take note we alloted 8 characters for our string right? And our C language starts counting from zero, especially in arrays such as our variable declaration of our string str[8] above. So that means the last character of our string should be referenced as str[7] since the first character is str[0], agree?&lt;br /&gt;&lt;br /&gt;Ok back to the loop, let's assume that the loop has repeated 8 times already, so the current value for our i is 7, so replacing, the condition now looks like this,&lt;br /&gt;&lt;br /&gt;((str[7] != 0x0) &amp;&amp; (7 &amp;lt; 8))&lt;br /&gt;&lt;br /&gt;still with me? So the condition for our loop is still true, the str[7] contains the character 'o' and IT IS NOT EQUAL to 0x0 right? And our variable i is still 7 which is still LESS THAN 8, so that means, we'll have another loop remaining and the loop will simply execute the statements inside including the last part the i++ and this time our variable i will have a value of 8 since it's been incremented by 1. Now is the moment of truth, variable i having a value of 8 and our next execution goes to our conditional statement,&lt;br /&gt;&lt;br /&gt;((str[i] != 0x0) &amp;&amp; (i &amp;lt; 8))&lt;br /&gt;&lt;br /&gt;so replacing i with 8&lt;br /&gt;&lt;br /&gt;((str[8] != 0x0) &amp;&amp; (8 &amp;lt; 8))&lt;br /&gt;&lt;br /&gt;That's the danger in every programming languages especially the C or C++ since there's no bound-checking being implemented.. So in this case our string str[8] is pointing to the 9th character which we have not defined in our variable declaration, that means we are accessing areas of memory which are not meant to be accessed by our program. In some case, repeatedly running your programs like this might crash your computer depending on the OS you're using. Mine before I was using Win 98 and I had terrible experiences about this error.&lt;br /&gt;&lt;br /&gt;So what's the trick? That's where Short-Circuit comes in, you simply swap the two logical expressions like this,&lt;br /&gt;&lt;br /&gt;((8 &amp;lt; 8) &amp;&amp; (str[8] != 0x0))&lt;br /&gt;&lt;br /&gt;Short-Circuit will save you from this undocumented error. Typically, programming languages evaluate logical expressions from left to right and once they find out that a single logical expression has become the traitor among other logical expressions, which means it's the only ONE which has not satisfied a certain condition, immediately the evaluation of other logical expressions will be postponed. In our case, once the (8 &amp;lt; 8) has been evaluated which has now become false, and since we are having the &amp;&amp; operator which means every condition must be true for the our loop to stay alive, the program flow will immediately cut the evaluation of the remaining logical expression which is the (str[8] != 0x0) and the whole loop will come to an end finally.&lt;br /&gt;&lt;br /&gt;I hope you have added this simple information to your plethora of programming theories. If you have questions on this post, kindly post a comment and I will really &lt;br /&gt;and truly appreciate it.&lt;br /&gt;&lt;br /&gt;Till the next stuff, see ya!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5863512096903732023-7533132664419738958?l=vic2x-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vic2x-programming.blogspot.com/feeds/7533132664419738958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5863512096903732023&amp;postID=7533132664419738958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/7533132664419738958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/7533132664419738958'/><link rel='alternate' type='text/html' href='http://vic2x-programming.blogspot.com/2007/07/programming-languages-short-circuit_30.html' title='Programming Languages Short-Circuit'/><author><name>NegOcc</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15389057718177341830'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5863512096903732023.post-8403057092026426824</id><published>2007-07-29T23:50:00.000+08:00</published><updated>2007-07-30T11:34:21.982+08:00</updated><title type='text'>Programming tutorials sites useful for beginners</title><content type='html'>&lt;a href="http://www.programmersheaven.com/"&gt;Programmers Heaven&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.planetsourcecode.com/"&gt;Planet Source Code&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gamedev.net/"&gt;Game Development&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.php.net"&gt;PHP Net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.w3schools.com"&gt;PHP Tutorials&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For sources of free e-books, I recommend going to this site:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://betah.co.il/"&gt;Betah.co.il&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5863512096903732023-8403057092026426824?l=vic2x-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vic2x-programming.blogspot.com/feeds/8403057092026426824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5863512096903732023&amp;postID=8403057092026426824' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/8403057092026426824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/8403057092026426824'/><link rel='alternate' type='text/html' href='http://vic2x-programming.blogspot.com/2007/07/programming-tutorials-sites-useful-for.html' title='Programming tutorials sites useful for beginners'/><author><name>NegOcc</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15389057718177341830'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5863512096903732023.post-6154586870624787389</id><published>2007-07-29T21:12:00.000+08:00</published><updated>2007-07-29T21:28:36.745+08:00</updated><title type='text'>Star Field Simulation Written in Turbo C</title><content type='html'>Ever wonder if you could create a starfield simulation like that of the screensaver of windows? Here's the program I wrote last 7 years ago. It's a Dos-based application  so don't run it in Visual C++. I used Turbo C++ for Dos. If you want to run this, you can simply copy-paste the source code and you have to edit the comments since it's not really formatted here properly on this site. So don't blame me if you found a lot of errors.. Anyway, if you have question about this program, just post a comment here on this blog. Take note, the code presented here is quite advanced, so you may find some cryptic syntax around.. Don't be scared though, there are a lot of things you can learn from the code itself. So go ahead, and reverse-engineer it if you like.&lt;br /&gt;&lt;br /&gt;By the way, you can press the arrow keys once it's already running and to exit the program, simply press Esc.&lt;br /&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;lt;conio.h&amp;gt;&lt;br /&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;#include &amp;lt;dos.h&amp;gt;&lt;br /&gt;&lt;br /&gt;const Maxstars = 1056;   //Determine the number of stars&lt;br /&gt;&lt;br /&gt;const RIGHTARROW =  77;    //    {Right Coursr Key}&lt;br /&gt;const LEFTARROW  =  75;  //  {Left Coursr Key}&lt;br /&gt;const UPARROW    =  72;    //    {Up Coursr Key}&lt;br /&gt;const DOWNARROW  =  80;    //    {Down Coursr Key}&lt;br /&gt;const ESCAPE     =   1;&lt;br /&gt;&lt;br /&gt;typedef unsigned char byte;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;byte keystruck[128];&lt;br /&gt;&lt;br /&gt;void interrupt (* oldInt9)(...); //oldInt9 is a pointer to an interrupt handlr&lt;br /&gt;&lt;br /&gt;typedef unsigned char byte;&lt;br /&gt;typedef  struct star_id&lt;br /&gt;  {&lt;br /&gt;       int     x ;&lt;br /&gt;       int    y  ;&lt;br /&gt;       int    z  ;&lt;br /&gt;       int speed ;&lt;br /&gt;       int color ;&lt;br /&gt;  } star_ID;&lt;br /&gt;&lt;br /&gt;star_ID  star[Maxstars] ;&lt;br /&gt;int          loop, Zoff ;&lt;br /&gt;int      Screen_X[Maxstars], Screen_Y[Maxstars] ;&lt;br /&gt;int      color, cntr ;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;void interrupt newInt9(...)&lt;br /&gt;{ //This is the new interrupt 9.&lt;br /&gt;  //It will determine if a key is being pressed or released;&lt;br /&gt; byte key;&lt;br /&gt; key = inp(0x60) % 128 ; //Get the byte at port 60h&lt;br /&gt; //if the byte returned is &amp;lt; 128 then return TRUE else FALSE;&lt;br /&gt; keystruck[key] = (inp(0x60) &amp;lt; 128);&lt;br /&gt;&lt;br /&gt; asm pushf;   //Push all flags&lt;br /&gt;&lt;br /&gt; oldInt9(); //Call the old interrupt 9&lt;br /&gt; //Move the Tail to HEAD to Empty the keyboard buffer&lt;br /&gt; pokeb(0x40,0x1A,peekb(0x40,0x1C));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void WaitRetrace()&lt;br /&gt;{&lt;br /&gt;//  {  This waits for a vertical retrace to reduce snow on the screen }&lt;br /&gt;byte signal;&lt;br /&gt;    signal = inp(0x3DA); //Get the status byte of the CRT&lt;br /&gt;    signal &amp;= 8;&lt;br /&gt;    while(signal &amp;gt; 0) //Loop while signal is high&lt;br /&gt;    {&lt;br /&gt;        signal = inp(0x3DA);&lt;br /&gt;        signal &amp;= 8;&lt;br /&gt;    }&lt;br /&gt;    signal = inp(0x3DA); //Get the status byte of the CRT&lt;br /&gt;    signal &amp;= 8;&lt;br /&gt;    while(signal == 0) //Loop while signal is low&lt;br /&gt;    {&lt;br /&gt;        signal = inp(0x3DA);&lt;br /&gt;        signal &amp;= 8;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;void init()&lt;br /&gt;{&lt;br /&gt; oldInt9 = getvect(0x9);&lt;br /&gt; setvect(0x9,newInt9);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void restore()&lt;br /&gt;{&lt;br /&gt;      setvect(0x9,oldInt9);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;void pal(byte color, byte R, byte G, byte B)&lt;br /&gt;{ //Set the background(0) palette;&lt;br /&gt;  asm{&lt;br /&gt;      mov al, color&lt;br /&gt;      mov dx, 0x3c8&lt;br /&gt;      out dx, al&lt;br /&gt;      inc dx&lt;br /&gt;      mov al, R&lt;br /&gt;      out dx, al&lt;br /&gt;      mov al, G&lt;br /&gt;      out dx, al&lt;br /&gt;      mov al, B&lt;br /&gt;      out dx, al&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void Putpixel (int X,int Y, byte Col)&lt;br /&gt;/*{ This putpixel was originally written by Denthor of ASPHIXIA,&lt;br /&gt;  modified by me for maximum optimisation. This is faster than&lt;br /&gt;  the BGI's Putpixel}&lt;br /&gt;  This puts a pixel on the screen by writing directly to memory. }&lt;br /&gt;  Optimized by J.V.A. */&lt;br /&gt;{&lt;br /&gt;   asm {&lt;br /&gt;&lt;br /&gt;    mov     ax, 0xa000  // Load the memory segment address&lt;br /&gt;    mov     es,ax       // to es                           { 8  }&lt;br /&gt;    mov     bx,X        // Store X to bx                   { 8  }&lt;br /&gt;    mov     dx,Y        // Store Y to dx                   { 8  }&lt;br /&gt;    mov     di,bx       // Copy X to di                    { 2  }&lt;br /&gt;    mov     bx, dx      // Copy Y to bx                    { 2  }&lt;br /&gt;    shl     dx, 8       // Multiply Y by 256               { 8  }&lt;br /&gt;    shl     bx, 6       // Multiply temp.Y by 64           { 8  }&lt;br /&gt;    add     dx, bx      // Add both product to get Y*320   { 3  }&lt;br /&gt;    add     di, dx      // Final location(X+Y)             { 3  }&lt;br /&gt;    mov     al,Col      // Store the color                 { 8  }&lt;br /&gt;    mov     es:[di],al  // Put the color on this address   { 10 }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void dPutPixel(int x, int y, byte drawcolor) {&lt;br /&gt;/*&lt;br /&gt;   _AH = 0x0C;&lt;br /&gt;   _AL = drawcolor;&lt;br /&gt;   _CX = x;&lt;br /&gt;   _DX = y;&lt;br /&gt;   _BX = 0x01;&lt;br /&gt;   geninterrupt (0x10);*/&lt;br /&gt;   asm{&lt;br /&gt;      mov ax, y&lt;br /&gt;      mov bx, x&lt;br /&gt;      mov cx, 640&lt;br /&gt;      mul cx&lt;br /&gt;      add bx, ax&lt;br /&gt;      adc dx, 0&lt;br /&gt;      mov ax, 0xa000&lt;br /&gt;      mov es, ax&lt;br /&gt;      push bx&lt;br /&gt;      mov bx, 1&lt;br /&gt;      mov ax, 0x4f05&lt;br /&gt;      int 0x10&lt;br /&gt;      pop bx&lt;br /&gt;      mov al, drawcolor&lt;br /&gt;      mov es:[bx], al&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;void SetMCGA()&lt;br /&gt;{&lt;br /&gt;  asm{&lt;br /&gt;     mov ax, 0x013&lt;br /&gt;     int 0x10&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;void GoTextMode()&lt;br /&gt;{&lt;br /&gt;  asm{&lt;br /&gt;     mov ax,0x3&lt;br /&gt;     int 0x10&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void InitStars(int I)&lt;br /&gt;{&lt;br /&gt;  int temp ;&lt;br /&gt;  byte sign ;&lt;br /&gt;&lt;br /&gt;    star[I].x = random(160)+1;  //      {Set the initial x of the star}&lt;br /&gt;    star[I].y = random(100)+1;  //      {Set the initial y of the star}&lt;br /&gt;    star[I].z = 256;            //    {Set the z to default, the depth}&lt;br /&gt;    star[I].speed = random(5) + 3; // {This is to adjust the speed of a star}&lt;br /&gt;    star[I].color = 0;&lt;br /&gt;    sign = random(2);&lt;br /&gt;    switch (sign) {                  //    {Make some random stuff}&lt;br /&gt; case 1 :     star[I].x = -star[I].x; break;&lt;br /&gt; case 2 :     star[I].x = star[I].x; break;&lt;br /&gt;    }&lt;br /&gt;    sign = random(2);&lt;br /&gt;    switch (sign) {&lt;br /&gt; case 1 :     star[I].y = -star[I].y; break;&lt;br /&gt; case 2 :     star[I].y = star[I].y;  break;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void InitStarsD(int K)&lt;br /&gt;{&lt;br /&gt;  int  temp ;&lt;br /&gt;  int  sign ;&lt;br /&gt;&lt;br /&gt;    star[K].x = random(160)+1;     //   {Set the x of the star}&lt;br /&gt;    star[K].y = random(100)+1;     //   {Set the y of the star}&lt;br /&gt;    star[K].z = random(256) + 1;   //             {Set the z to default}&lt;br /&gt;    star[K].speed = random(5) + 3;//  {This is to adjust the speed of a star}&lt;br /&gt;    star[K].color = BLACK; //Starting color of star is black&lt;br /&gt;    sign = random(2);&lt;br /&gt;    switch (sign) {            //          {Make some random stuff}&lt;br /&gt;  case 1 :     star[K].x = -star[K].x; break;&lt;br /&gt;  case 2 :     star[K].x = star[K].x; break;&lt;br /&gt;    }&lt;br /&gt;    sign = random(2);&lt;br /&gt;    switch (sign) {&lt;br /&gt;  case 1 :     star[K].y = -star[K].y; break;&lt;br /&gt;  case 2 :     star[K].y = star[K].y;  break;&lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;     long viewx, viewy;&lt;br /&gt;     init();&lt;br /&gt;     SetMCGA();&lt;br /&gt;     randomize();&lt;br /&gt;     //Set the drawing palette of the stars&lt;br /&gt;     for (loop = 0;loop &amp;lt;= 255; loop++)&lt;br /&gt; pal(loop,loop % 63,loop % 63,loop % 63);&lt;br /&gt;&lt;br /&gt;     for (loop = 0;loop &amp;lt; Maxstars;loop++)&lt;br /&gt;     InitStarsD(loop);           //{ Initialize all stars }&lt;br /&gt;&lt;br /&gt;     viewx = 160;&lt;br /&gt;     viewy = 100;&lt;br /&gt;  while (!keystruck[ESCAPE])&lt;br /&gt;  {&lt;br /&gt;     for (loop = 0; loop &amp;lt; Maxstars; loop++)//Process each stars&lt;br /&gt;     {&lt;br /&gt;   //Convert the 3D coordinates to 2D coordinates;&lt;br /&gt;   Screen_X[loop] = ((star[loop].x * 256 / star[loop].z ) + viewx);&lt;br /&gt;   Screen_Y [loop] = ((star[loop].y * 256 / star[loop].z ) + viewy);&lt;br /&gt;&lt;br /&gt;   //Check of Stars are beyond the screen area, if not then draw them&lt;br /&gt;   if ((Screen_X[loop] &amp;gt; 1) &amp;&amp; (Screen_X[loop] &amp;lt; 319) &amp;&amp; (Screen_Y[loop] &amp;gt; 1)&lt;br /&gt;      &amp;&amp; (Screen_Y[loop] &amp;lt; 199))&lt;br /&gt;      {&lt;br /&gt;   Putpixel(Screen_X[loop],Screen_Y[loop],star[loop].color % 256);&lt;br /&gt;&lt;br /&gt;      }&lt;br /&gt;      //If stars are beyond the view, create new one&lt;br /&gt;      if (star[loop].z &amp;lt;= 8)&lt;br /&gt;         InitStars(loop); // Create new star&lt;br /&gt;&lt;br /&gt;      //Move the stars towards the viewer.&lt;br /&gt;     star[loop].z = star[loop].z - star[loop].speed;&lt;br /&gt;     //Change the palette;&lt;br /&gt;     star[loop].color = star[loop].color + 1;&lt;br /&gt;&lt;br /&gt;     }&lt;br /&gt;     if (keystruck[LEFTARROW])&lt;br /&gt;        viewx -= 3;&lt;br /&gt;     if (keystruck[RIGHTARROW])&lt;br /&gt;        viewx += 3;&lt;br /&gt;     if (keystruck[UPARROW])&lt;br /&gt;        viewy -= 3;&lt;br /&gt;     if (keystruck[DOWNARROW])&lt;br /&gt;        viewy += 3;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;     delay(30);&lt;br /&gt;     //Erase the stars after drawing them&lt;br /&gt;     for (loop = 0;loop &amp;lt; Maxstars; loop++)&lt;br /&gt;     {&lt;br /&gt;  Putpixel(Screen_X[loop],Screen_Y[loop],BLACK);&lt;br /&gt;     }&lt;br /&gt;   }&lt;br /&gt;    restore();&lt;br /&gt;    GoTextMode();&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5863512096903732023-6154586870624787389?l=vic2x-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vic2x-programming.blogspot.com/feeds/6154586870624787389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5863512096903732023&amp;postID=6154586870624787389' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/6154586870624787389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/6154586870624787389'/><link rel='alternate' type='text/html' href='http://vic2x-programming.blogspot.com/2007/07/star-field-simulation-written-in-turbo.html' title='Star Field Simulation Written in Turbo C'/><author><name>NegOcc</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15389057718177341830'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5863512096903732023.post-8063707920388134054</id><published>2007-07-28T14:59:00.000+08:00</published><updated>2007-07-28T15:21:46.135+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vic2x programming tutorials portal'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming Author'/><category scheme='http://www.blogger.com/atom/ns#' term='philippines'/><title type='text'>Do you want to be an Author of this Blog?</title><content type='html'>If you want to share your knowledge and ideas about programming just post a comment.&lt;br /&gt;&lt;br /&gt;No money required. Spammers go to hell..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5863512096903732023-8063707920388134054?l=vic2x-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vic2x-programming.blogspot.com/feeds/8063707920388134054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5863512096903732023&amp;postID=8063707920388134054' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/8063707920388134054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/8063707920388134054'/><link rel='alternate' type='text/html' href='http://vic2x-programming.blogspot.com/2007/07/do-you-want-to-be-author-of-this-blog.html' title='Do you want to be an Author of this Blog?'/><author><name>NegOcc</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15389057718177341830'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5863512096903732023.post-4149565305721514498</id><published>2007-07-28T14:18:00.000+08:00</published><updated>2007-07-28T15:44:05.806+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cout'/><category scheme='http://www.blogger.com/atom/ns#' term='vic2x programming tutorials portal'/><category scheme='http://www.blogger.com/atom/ns#' term='iostream.h'/><category scheme='http://www.blogger.com/atom/ns#' term='setting decimal digits'/><category scheme='http://www.blogger.com/atom/ns#' term='showpoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ios'/><category scheme='http://www.blogger.com/atom/ns#' term='decimal points'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Setting the Number  Digits after the Decimal Points in C++ using cout</title><content type='html'>Without a good book to grasp on how to control the way cout outputs numbers especially floating point numbers could be a misery at times. Here's a brief tips on how to do this:&lt;br /&gt;&lt;br /&gt;Fig. 1:&lt;br /&gt;&lt;br /&gt;#include&lt;iostream.h&gt;     // we include iostream since we'll be using cout, since it's definition&lt;br /&gt;                                           // is located in iostream.h file&lt;br /&gt;&lt;br /&gt;int main(){&lt;br /&gt;   float num = 14.2345;  //we directly assign a value to our float num for this example..&lt;br /&gt;&lt;br /&gt;   cout.setf(ios::showpoint); //this means even if there are no digits after the decimal&lt;br /&gt;                                                  // point, just put zeroes&lt;br /&gt;&lt;br /&gt;   cout.precision(2);                //set the number of digits after the decimal point.&lt;br /&gt;   cout &lt;&lt; "The Number now is " &lt;&lt; num &lt;&lt; endl;    //output the number now..&lt;br /&gt;&lt;br /&gt;   return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That's all.. Try it.. By the way, be reminded that subsequent use of cout once you called&lt;br /&gt;the two lines for setting the number of digits after the decimal points, will be affected, so that means if you have another variable shall we say, myNum and assign it a value of 3.141516&lt;br /&gt;and then you do,&lt;br /&gt;&lt;br /&gt;cout &lt;&lt; myNum &lt;&lt; endl;&lt;br /&gt;&lt;br /&gt;it's output will be,&lt;br /&gt;&lt;br /&gt;3.14&lt;br /&gt;&lt;br /&gt;it will still have the adjustment from the previous settings. So if you don't want it to get affected by the settings for 2-digit decimal point, simply do this,&lt;br /&gt;&lt;br /&gt;cout.unsetf(ios::showpoint);   //this means reset the original setting  of cout's way of outputting&lt;br /&gt;                                                   //floating numbers..&lt;br /&gt;cout.precision(0);                     //&lt;br /&gt;&lt;br /&gt;cout &lt;&lt; myNum &lt;&lt; endl;&lt;br /&gt;&lt;br /&gt;the output will be,&lt;br /&gt;&lt;br /&gt;3.141516&lt;br /&gt;&lt;br /&gt;and it's back to the original setting..&lt;br /&gt;&lt;br /&gt;Compared to the printf edition, remember to set the number of digits after the decimal point we simply do something like this,&lt;br /&gt;&lt;br /&gt;printf("%0.2f", num);&lt;br /&gt;&lt;br /&gt;and everything is set up for us. So in C++ using cout, we'll need to have a bit more toggling before we can set the output for floating numbers according to our needs.&lt;br /&gt;&lt;br /&gt;For now, don't mind of those cryptic syntax, the ios::showpoint thing, just stick to the meaning of their purpose first, then once you have a good grasp of the C++, then it's time to be more technical, alright? Trust me, it will save some neurons in your brain.&lt;br /&gt;&lt;br /&gt;Take note, this info is for beginners only. So don't flame me you gurus out there.&lt;br /&gt;&lt;br /&gt;Till the next tutorials..&lt;/iostream.h&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5863512096903732023-4149565305721514498?l=vic2x-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vic2x-programming.blogspot.com/feeds/4149565305721514498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5863512096903732023&amp;postID=4149565305721514498' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/4149565305721514498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/4149565305721514498'/><link rel='alternate' type='text/html' href='http://vic2x-programming.blogspot.com/2007/07/setting-number-of-decimal-points-in-c.html' title='Setting the Number  Digits after the Decimal Points in C++ using cout'/><author><name>NegOcc</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15389057718177341830'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5863512096903732023.post-824254795592079587</id><published>2007-07-27T23:41:00.000+08:00</published><updated>2007-07-31T22:44:19.399+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Learning Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming Language'/><category scheme='http://www.blogger.com/atom/ns#' term='Difficulties in Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming Interests'/><category scheme='http://www.blogger.com/atom/ns#' term='Inspirational thoughts about Programming'/><title type='text'>Beginner Programmers'  Mindsets</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;This post is for the beginners and wannabes who want to delve into the thrill of programming. If you seek answers to questions you have been asking yourselves, you may want to read on.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's been a long time I happened to have met different persons who are digging into the intricacies of programming and at the early stage of their learning curve, they gave up because of the difficulties they had during their exploration of programming. They easily bewildered when a programming problem seemed impossible to be solved. Even to the easiest type of problem seems hell to them. Some simply sit around the corner, and forget the idea of pursuing. Some diverted to games, others just sticked to the conventional and use their PCs as mere personal stuffs like household appliances laying static in one corner of the house, just doing single purpose. Others would simply let knowledgeable friends do the job. They simply gave up. That's the greatest and seamless action they could give, Give Up!&lt;br /&gt;&lt;br /&gt;Well, you better read on. Let me save the last drop of interest you might still have. First thing's first. You have to evaluate yourself. Yeah, that's the root of everything. Know your strength. This means, if you believe you're an in-born programmer, then go and pick a good book or search the internet for tutorials and read and read and express your knowledge through hands-on. But, if you just happened to be not having the breed, yet you felt there's a little spark of interest inside you, then go find someone who can be your mentor or adviser. You simply need a role-model, an inspiration in other words. Be careful however of your tendency to become dependent on him/her. Take note, first-hand information is still the best. That means, learning that comes from you, is better than the one which comes from others. Learning should start inside you. I have a friend, who's a B.S. Psychology, yet, because of his unwavering interest in programming, he's now a successful web developer and currently doing advanced programming chores. So nobody can tell me that it depends on intelligence, mind you, it's in the INTEREST!&lt;br /&gt;&lt;br /&gt;Once you have the interest, I believe, no one can stop you from learning, especially programming. Others have a lot of reasons to cover up their tracks. One said, "I don't have any PC at home, how can I learn?" Well, I only had myself a programming book and a unit of my imagination before. There's also one hacker I remember, he was living somewhere in Alaska, no electricity, no telephones and of course no computers, yet, his eagerness to learn the mystery of computers cannot stop these factors. Now, he's one of the respected hackers of the U.S. That's all it takes. Believe me, the important thing is to boost your interest first and sharpen it until it's needle-like. Once it has reached its peak, then nothing is impossible.&lt;br /&gt;&lt;br /&gt;Somebody asked me before, what do you get from programming your PC? Well, I told him, have you seen a bike daredevil? It's the same feeling, once this guy reached the other end out of danger, he felt satisfied, he felt something has replenished his deepest soul, he felt that he owns something which others cannot own. That's the feeling of having solved mind-boggling programs. Having skills in programming sets you apart from others. You can express your thoughts in a language that only fellow programmers can understand. Isn't that unique?&lt;br /&gt;&lt;br /&gt;Beginners, who are just new to the scene and most probably those who are just taking B.S. in Computer Science or other related fields, listen and open up your ears. The earth is still young and you still have a lot of time to catch up with the ever-changing computer technology. My words for you, just learn all the fundamentals of programming as much as you can. Focus only on one language first, preferably C or C++ as these two are the most popular languages being used in any other languages, Java, PHP, C#, etc. which are commonly used in building the Internet infrastructure. Your Windows was written in C, C++ and I believe Assembly, so that would be enough background to know their capabilities. Next, buy a book, those Idiot's guides are good but they're quite expensive. If you can't afford, then go for the Internet. Use Google, and only Google! It's fast! For example, you can search for: C++ Tutorials    then go and find the links that you think are easier to understand. If you have some friends who are good in programming, stick to them, they can save your butt most of the time. Don't forget to ask. It's not humiliation, it's curiosity. Mr. Einstein once said, "Don't loose the Holy Curiosity!".&lt;br /&gt;&lt;br /&gt;Lastly, if you want shortcuts, questions about your programming problems, go to this blog spot, and I'll be open for questions.&lt;br /&gt;&lt;br /&gt;That's all for now!  Make this site alive!&lt;br /&gt;&lt;br /&gt;-Author&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;!--&lt;br /&gt;google_ad_client = "pub-9511396109409543";&lt;br /&gt;google_ad_width = 468;&lt;br /&gt;google_ad_height = 60;&lt;br /&gt;google_ad_format = "468x60_as";&lt;br /&gt;google_ad_type = "text";&lt;br /&gt;//2007-07-31: vic2x-4&lt;br /&gt;google_ad_channel = "6729150902";&lt;br /&gt;google_color_border = "5f6f67";&lt;br /&gt;google_color_bg = "5f6f67";&lt;br /&gt;google_color_link = "32527A";&lt;br /&gt;google_color_text = "cceedd";&lt;br /&gt;google_color_url = "A9501B";&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&lt;br /&gt;  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5863512096903732023-824254795592079587?l=vic2x-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vic2x-programming.blogspot.com/feeds/824254795592079587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5863512096903732023&amp;postID=824254795592079587' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/824254795592079587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/824254795592079587'/><link rel='alternate' type='text/html' href='http://vic2x-programming.blogspot.com/2007/07/beginner-programmers-mindsets.html' title='Beginner Programmers&apos;  Mindsets'/><author><name>NegOcc</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15389057718177341830'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5863512096903732023.post-8064208900273293946</id><published>2007-07-27T20:37:00.000+08:00</published><updated>2007-07-27T21:39:32.755+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Advices'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming Language'/><category scheme='http://www.blogger.com/atom/ns#' term='Assembly'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmers'/><category scheme='http://www.blogger.com/atom/ns#' term='Pascal'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Scripting Languages'/><category scheme='http://www.blogger.com/atom/ns#' term='QBasic'/><category scheme='http://www.blogger.com/atom/ns#' term='Solutions'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming Techniques'/><title type='text'>Introduction from the Author</title><content type='html'>Welcome!&lt;br /&gt;&lt;br /&gt;You have just come to the right place where all beginning programmers, wannabes, computer tech gurus,  programmers, designers, teachers, hobbyists, and knowledgeable people meet finally on this portal. We all know that the Internet as of now has affected the era of informational books. If you want to know something, just type your thoughts on a search engine and it will give you vast amount of information, mostly updated. We, in the third-world country, are happy about this, since we cannot afford expensive books to support our learning process especially in the fields of computers. I myself, a programmer have bought several books before I finally considered myself professional, but those are all having the basics and fundamentals to guide me where should I go first. Usually, as you might agree with me, the ideas written inside those bulky stuffs are considered as for "textbook" only situations and commonly not for the real-world scenarios. What has saved me from the requirements of the fast-evolving computer era is the Internet itself. Currently, if you have a project, shall we say, a website which should be written in ASP.NET, and you are a PHP programmer, what would you do? No time to have a crash course right? The bosses and the managements don't like to wait for you. Time is gold as they say. So, what you should most probably do is search the Internet about ASP.NET and voila! You just have yourselves several keys unlocking all the secrets about the language and you  simply translate your knowledge in PHP into the language of ASP.NET and that's how it works. This is the main purpose of the site, to contribute something to the tree of knowledge, the Internet, where information about computer languages, programming techniques, programming solutions will be shared freely to all aspiring to become better programmers.&lt;br /&gt;&lt;br /&gt;Let me give you my background if you don't mind...&lt;br /&gt;&lt;br /&gt;I, as the author of this site, have been doing a lot of programming tasks since I had my first 286 Mhz PC, running with 20MB Harddisk and 16MB RAM.. The first language I used to play with was QBasic, and then later, I had manage to have a copy of Pascal compiler and then I eventually converted all my programs from QBasic to Pascal. Pascal, is one of the easiest to learn and I'm a witness to that idea. This was also when I realized the difference between an interpreted and  compiled programs (QBasic as an interpreted language and Pascal was  implemented as compiled language).  Compiled languages are faster compared to interpreted ones. Read it from textbooks. At that point of my life, I simply did a lot of programs. While reading my textbook and found a programming problem, I immediately compose my thoughts and express them to my computer. Once I solve the problem, I could feel the adrenaline rush and it makes my day. If I fail, I simply analyze the problem several times and try it again and again and again. That's my cycle. Then I read another book to learn new programming styles and concepts. Up to this days, I just can't stop doing this cycle, until my thirst is relieved, I won't stop. Of course I'm not saying that 100% of the problems I encountered, I succeeded. When I finally reach my limits, then it's the time I need to learn from other programmers who are better than me. Search the Internet and find some good tutorials, download the program's source codes, and then reverse-engineering them to understand what actually happens inside. No man is an island. It's true, you can't survive if you "cannot" learn from others. Don't humiliate yourselves, most programmers who consider themselves experts also came from these cycles. But take note, sometimes, you might not get what you want. You then need to listen to your instincts. Search some more, until you find it.&lt;br /&gt;&lt;br /&gt;This is quite long already. Let me once again welcome you to another blog site of computer programming. Here you will find advices, solutions and ideas not only the common ones but complicated programming chores and problems. Join me in helping the computer enthusiasts unfold the mystery of computer programming.&lt;br /&gt;&lt;br /&gt;-Author&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5863512096903732023-8064208900273293946?l=vic2x-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vic2x-programming.blogspot.com/feeds/8064208900273293946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5863512096903732023&amp;postID=8064208900273293946' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/8064208900273293946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5863512096903732023/posts/default/8064208900273293946'/><link rel='alternate' type='text/html' href='http://vic2x-programming.blogspot.com/2007/07/introduction-from-author.html' title='Introduction from the Author'/><author><name>NegOcc</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15389057718177341830'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry></feed>