<?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"
	>

<channel>
	<title>diy-computing.com</title>
	<atom:link href="http://diy-computing.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://diy-computing.com</link>
	<description>Articles, Tutorials and more &#124; Coding, Systems, Networks, Mobile Computing</description>
	<pubDate>Thu, 04 Feb 2010 21:04:14 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>What is a network gateway?</title>
		<link>http://diy-computing.com/what-is-a-network-gateway/</link>
		<comments>http://diy-computing.com/what-is-a-network-gateway/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 17:31:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[networking]]></category>

		<guid isPermaLink="false">http://diy-computing.com/?p=40</guid>
		<description><![CDATA[In several places I have seen explanations of the term gateway, in reference to network gateways, which do not appear to explain the meaning of this term clearly.
A gateway component provides an encapsulation of other services provided within the network (ie &#8216;behind the gateway&#8217;, so is acts as an intermediary, imposed or required by the [...]]]></description>
			<content:encoded><![CDATA[<p>In several places I have seen explanations of the term gateway, in reference to network gateways, which do not appear to explain the meaning of this term clearly.</p>
<p>A gateway component provides an encapsulation of other services provided within the network (ie &#8216;behind the gateway&#8217;, so is acts as an intermediary, imposed or required by the network. The gateway may then provide data translation or security facilities. The term &#8216;reverse proxy&#8217; can be used to help explain the notion of the gateway action. [The term 'proxy' will be discussed in another seperate post.]</p>
<p>Also, one of the clear differences between a proxy and a gateway is that the decision as to whether a proxy will be used is made at the client end of the communication path.</p>
]]></content:encoded>
			<wfw:commentRss>http://diy-computing.com/what-is-a-network-gateway/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SCRUM Basics</title>
		<link>http://diy-computing.com/scrum-basics/</link>
		<comments>http://diy-computing.com/scrum-basics/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 17:06:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Project Management]]></category>

		<guid isPermaLink="false">http://diy-computing.com/?p=39</guid>
		<description><![CDATA[Basic concepts of SCRUM include:
1. Product Backlog or Project Backlog
Every project has a list of items that have to be accomplished, as these items are not yet complete, they will be known as the &#8220;Product Backlog&#8221;. This is a list of every feature or facet of the product; we could also refer to this as [...]]]></description>
			<content:encoded><![CDATA[<h1>Basic concepts of SCRUM include:</h1>
<h3>1. Product Backlog or Project Backlog</h3>
<p>Every project has a list of items that have to be accomplished, as these items are not yet complete, they will be known as the &#8220;Product Backlog&#8221;. This is a list of every feature or facet of the product; we could also refer to this as the product wishlist.</p>
<h3>2. Allocating a priority to each item in the product backlog.</h3>
<h3>3. Sprints, or &#8216;work chunk iterations&#8217;</h3>
<p>In order to achieve all items in the product backlog, these will be allocated to team members, in an iterative, cyclic manner. Each iteration is called a Sprint.</p>
<p>This idea is not new; iterative cycles, that we will now call sprints, have been essential components of project achievement for all time.</p>
<p>One difference is that in Scrum, each iteration or sprint will focus on those items assigned to it with the express purpose of competing those items to a workable state, hence the term - ship working software.</p>
<p><strong>Multiple sprints for each Product Release</strong><br />
For any particular product release, there will usually be a number of sprints defined.<br />
The shorter the product release cycle, the shorter the sprint duration.</p>
<p>Sprint iterations are kept fairly short, and typically may vary from approx. three days to a fortnight in length. I prefer the idea of shorter sprints, which manageable chunks of work allocated to teams during these time intervals.</p>
<h3>4. Sprint backlog - the items allocated to be achieved during the sprint.</h3>
<p>Typically, only a handful of items are assigned to each sprint, according to a pre-determined priority. It is probably a good idea to prioritise the items to be fully completed within each sprint. These priorities may be based on:-<br />
(a) dependencies between components of the project, and<br />
(b) the importance of features that these items are related to.</p>
<h3>5. Monitoring the Project Burn Down</h3>
<p>To keep track of current status of the project, add up all the estimated hours of work currently remaining and compare the total to previous days to make sure it is consistently decreasing at a rate that is in accordance with the project expectations and will meet business goals. This is known as the &#8220;Burn Down&#8221;, and calculating the rate of this project burn down is a major aspect of &#8216;Scrum&#8217;.</p>
<h3>6. Charting the Project Burn Down</h3>
<p>Maintain a Project Burn Down Chart as a visual display of the project &#8220;Burn Down.&#8221;</p>
<p>Charting the burn down information is an effective way to visualize the projects&#8217; progress.</p>
<h3>7. Defect Backlog</h3>
<p>Maintain a defect backlog that is similar to your features backlog but focuses on<br />
bugs rather than features.</p>
<p>For each release of your product, have at least one or two sprints that are dedicated to addressing the top items in your defect backlog.</p>
<h3>8. Defect Burndown</h3>
<p>In the same way as for the main &#8220;Project Backlog&#8221;, maintain a chart of the &#8220;Defect Burn Down Rate&#8221;</p>
<h2>Summary</h2>
<p>By applying these concepts, any team can implement Scrum successfully and benefit from an efficient software development process.</p>
]]></content:encoded>
			<wfw:commentRss>http://diy-computing.com/scrum-basics/feed/</wfw:commentRss>
		</item>
		<item>
		<title>AJAX Introduction</title>
		<link>http://diy-computing.com/ajax-introduction/</link>
		<comments>http://diy-computing.com/ajax-introduction/#comments</comments>
		<pubDate>Thu, 21 May 2009 12:19:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[AJAX]]></category>

		<category><![CDATA[web application development]]></category>

		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://diy-computing.com/?p=35</guid>
		<description><![CDATA[AJAX or Asynchronous JavaScript and XML is a very useful tool for web programming, allowing you to create rich, dynamic web site components.
Typically one characteristic of web applications has been that, for a web application to function, a whole web page file would have to be loaded across the web.  This made dynamic browser [...]]]></description>
			<content:encoded><![CDATA[<p>AJAX or Asynchronous JavaScript and XML is a very useful tool for web programming, allowing you to create rich, dynamic web site components.</p>
<p>Typically one characteristic of web applications has been that, for a web application to function, a whole web page file would have to be loaded across the web.  This made dynamic browser based applications perform very slowly, with limited levels of interactivity.</p>
<p>AJAX was developed with the view to overcome this, by allowing of sections of a web page displayed in a browser window to be modified /refreshed without a complete web page access.</p>
<p>AJAX is actually a number of technologies working together:<br />
(a) Javascript</p>
<p>(b) XML - which is a markup language that can define a set of languages for use with structured data.<br />
Any developer can create an XML-based language with its own set of markup tags, to suit the particular application.</p>
<p>(c) Cascading Style Sheets [CSS], which is a W3C standard providing web developers with greater control over how web pages are displayed in browsers. CSS supports the concept of the seperation of content from code, with CSS formatting script usually installed in .css files, saved together with, but seperated from the actual xHTML pages.</p>
]]></content:encoded>
			<wfw:commentRss>http://diy-computing.com/ajax-introduction/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Developing Facebook Applications</title>
		<link>http://diy-computing.com/developing-facebook-applications/</link>
		<comments>http://diy-computing.com/developing-facebook-applications/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 06:41:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[web applications]]></category>

		<guid isPermaLink="false">http://diy-computing.com/?p=27</guid>
		<description><![CDATA[
I&#8217;ve worked on several Facebook Applications since the beginning of the year and although none of them have been massively successful hits, I&#8217;ve learned a couple of things about developing Facebook Applications. Hopefully, I can share some of what I&#8217;ve learned and experienced. I&#8217;m not going to talk much about the technical development process but [...]]]></description>
			<content:encoded><![CDATA[<div id="body">
<p>I&#8217;ve worked on several Facebook Applications since the beginning of the year and although none of them have been massively successful hits, I&#8217;ve learned a couple of things about developing Facebook Applications. Hopefully, I can share some of what I&#8217;ve learned and experienced. I&#8217;m not going to talk much about the technical development process but instead, more of the marketing and business aspects. I&#8217;m also going to try to not make broad assumptive conclusions based on my experiences but instead, share my experiences and give conclusions that I&#8217;m pretty confident in. Some of us are making applications because we want to share our great ideas with the world but, all of us would like to monetize our ideas&#8211;don&#8217;t lie, you know you do. :)</p>
<p>Facebook launched their application platform in the middle of 2007 and it has done very well since. Thousands of people have made applications for it and some businesses have sprouted from it. I was generally cautious of the Facebook Platform and did not look into it until mid-January of 2008. As of today, I have four active Facebook Applications that were developed solely by me and one other that I worked on. My applications aren&#8217;t drawing any significant number of daily active users&#8211;I don&#8217;t even have an application that has 1000 installs yet. The total combined user base of all my applications probably falls in around 1500 - 2000 installs. It isn&#8217;t impressive but, keep reading.</p>
<p>I haven&#8217;t put much polish in my applications simply due to the fact that I don&#8217;t know what the return on these applications are. My first app is just a Flash remake of Pong: Old School Tennis. There is no social or viral features to that application, I was just dipping my toes in the water. That application has around 200 installs which surprises me every day due to its utter lack of features but, I guess Pong is just a fun distraction. My second go at the platform delivered me my, arguably, most successful application so far: My Bookshelf. My Bookshelf still needs a lot of polish and feature additions. My vision for it was a lot more grand than what it currently is. The biggest difference between other applications like it is the shelf display that was done in Flash so it has a nice scrolling view. I&#8217;ve spent the most time developing My Bookshelf and it produces the most money in advertising revenue&#8211;it accounts for about 80% - 90% of my daily Facebook revenue through Social Media.</p>
<p>My fastest growing and most complete Facebook Application is FlipCup Challenge based on the drinking game of the same name&#8211;minus &#8220;Challenge&#8221;. It has the social features that should be expected in a Facebook game like high scores amongst your friends, global high scores, challenges&#8211;hence the name&#8211;and the ability to invite your friends. FlipCup Challenge is growing at a faster rate than My Bookshelf but has not produced nearly as much revenue. While My Bookshelf suffers from a very poor retention rate&#8211;I believe due to its lack of polish&#8211;FlipCup does a very good job keeping users who have installed it. This leads me to believe that a certain level of polish is indeed necessary even though games like Zombies were pretty rudimentry and managed to attract millions of installs. The landscape for Facebook Applications is changing and developers are going to have to make more sophisticated applications in order to compete as the platform grows and matures.</p>
<p>The last of my personal applications is Sam&#8217;s Solitaire. It is a simple solitaire game based solely on Windows&#8217;s version of solitaire that everyone who runs Windows will have. It took me about a week to make it, working just a couple hours a day&#8211;I happen to have a full-time job as well. This application is quite generic except for the fact that I made it for a girl who plays quite a bit of solitaire on her phone&#8211;that must be a first, Facebook Application as a gift. So this application has a differentiating personality and a basic social feature that tells you how fast your friends have finished a game of Sam&#8217;s Solitaire. None of my applications have been active for more than 6 months with Sam&#8217;s Solitaire being active for less than two weeks.</p>
<p>The last application that I will talk about is Sheep Tycoon. It has the production polish because we developed it as professionals at Tiny Mantis Entertainment&#8211;an independent game company. This Facebook edition of Sheep Tycoon is a simplified version of a bigger game that we have been trying to find the funds to produce. The game on Facebook is relatively simple. The goal is to get the highest score possible by milking sheep and then turning the milk into butter, cheese, or leave it as is and bring it to one of the two waiting donkey&#8217;s to be delivered to town&#8211;I happen to hold the second highest score as of this writing. Although Sheep Tycoon is a very pretty game, it doesn&#8217;t have the same polish in social features. It is also a lot more original than any of the applications that I have made so it is difficult to gauge if such a game would appeal to the Facebook audience.</p>
<p>I&#8217;ve searched the web for Facebook marketing techniques and I have not found any definitive information. It appears to me that everyone is still trying to figure out how to tap the potential of the Facebook Platform. One technique that I&#8217;ve written about, viral loops, is something that I believe can be applied to Facebook. Some apps already have used this technique without even knowing it and some appear to be deliberately doing it but in uncreative and possibly annoying ways.</p>
<p>The main point that I&#8217;ve come away with in the last six months working with the Facebook Platform to develop viable business models is that an application&#8217;s ability to generate revenue has more to do with how long a user stays in your application than it does with how many total installs or daily active users you have. Obviously, if there are a lot of installs and a lot of daily active users, there will be a certain amount of revenue that can be garnered from it but, that is just a law of numbers. To maximize the revenue potential of each user is to keep them in the application. Applications also need to have a certain level of polish to them or it will just be lost in the mix. The amount of applications on Facebook is growing everyday so having a unique selling point will eventually become crucial.</p>
<p>I have application ideas sitting in my Developer application&#8211;some of which are half finished apps. Some of them will probably never see the light of day either due to its complexity&#8211;my procrastination&#8211;or just better ideas skipping in line. We have a big application designed for Facebook at Tiny Mantis that we are trying to get funding for. We believe that this application will expand the definition of &#8220;social games&#8221;&#8211;which is a hot sector in the application market. I&#8217;m sure I am a little biased&#8211;I had a hand in its inception&#8211;but, if you are looking to fund social games, let us know.</p>
<p>Revenue being generated from advertising is probably not the best route for a truly sustainable or highly profitable model. I believe micro-transactions is way to go and Facebook is supposed to be working on a system for that. There is a great deal of potential in the Facebook Platform and I will continue to find ways to unlock it&#8211;along with the thousands of other developers, venture capitalists, and business people. Hopefully, I&#8217;ve provided some insights through my experiences. Maybe I&#8217;ll have some more in the next six months. Until then, see you on Facebook.</p>
</div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">
<div id="sig" class="sig">
<p>Tommy Leung<br />
<a id="link_100" href="http://www.supertommy.com/" target="_new">http://www.supertommy.com</a></p>
<div>
<p>Article Source: <a id="link_101" href="http://ezinearticles.com/?expert=Tommy_Leung">http://EzineArticles.com/?expert=Tommy_Leung</a></p>
</div>
</div>
</td>
<td></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://diy-computing.com/developing-facebook-applications/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What are the requirements for game programmer positions?</title>
		<link>http://diy-computing.com/what-are-the-requirements-for-game-programmer-positions/</link>
		<comments>http://diy-computing.com/what-are-the-requirements-for-game-programmer-positions/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 08:15:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Game Programming]]></category>

		<guid isPermaLink="false">http://diy-computing.com/?p=33</guid>
		<description><![CDATA[For many aspiring game developers, the ultimate video game programmer position to have was at Blizzard Entertainment.
Blizzard Entertainment’s basic requirements for a game programmer provided a useful benchmark for those considering aiming for game development jobs, providing something to measure yourself against:

 Strong C/C++ and PC programming skills.
 Minimum of 2 years experience programming at [...]]]></description>
			<content:encoded><![CDATA[<p>For many aspiring game developers, the ultimate video game programmer position to have was at Blizzard Entertainment.<br />
Blizzard Entertainment’s basic requirements for a game programmer provided a useful benchmark for those considering aiming for game development jobs, providing something to measure yourself against:</p>
<ul>
<li> Strong C/C++ and PC programming skills.</li>
<li> Minimum of 2 years experience programming at least one title that has already shipped.</li>
<li> A passion for games and game development.</li>
<li> Good communication skills.</li>
<li> Bachelor’s degree in Computer Science or a related field.</li>
</ul>
<p>It&#8217;s interesting to see that formal qualifications in Computer Science are regarded as an important requirement.<br />
Although, a question arises regarding minimum experience required:</p>
<p>If every game development company requires two years programming experience, particularly in C++, how is an aspiring game developer going to get this experience in the first place?</p>
<p>Any suggestions? Has anyone seen a different set of requirement for game developer positions?</p>
]]></content:encoded>
			<wfw:commentRss>http://diy-computing.com/what-are-the-requirements-for-game-programmer-positions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Five Tips for Effective Object-oriented Programming in C++</title>
		<link>http://diy-computing.com/five-tips-for-effective-object-oriented-programming-in-c/</link>
		<comments>http://diy-computing.com/five-tips-for-effective-object-oriented-programming-in-c/#comments</comments>
		<pubDate>Sat, 02 Aug 2008 16:08:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[C++]]></category>

		<guid isPermaLink="false">http://diy-computing.com/?p=32</guid>
		<description><![CDATA[
Spurgeon’s Law says that 90% of everything is crap. This certainly holds true in the world of software development, and especially when it comes to object-orientation and C++ programming. This is largely due to the pervasiveness and complexity of C++; it’s one of the most commonly used object-oriented languages, and yet few people know how [...]]]></description>
			<content:encoded><![CDATA[<div id="body">
<p>Spurgeon’s Law says that 90% of everything is crap. This certainly holds true in the world of software development, and especially when it comes to object-orientation and C++ programming. This is largely due to the pervasiveness and complexity of C++; it’s one of the most commonly used object-oriented languages, and yet few people know how to use it effectively. Couple this with the fact that few programmers truly grasp the object-oriented programming philosophy and you have an instant recipe for sloppy code. Volumes can be—and have been—written on how to develop proper object-oriented software designs using C++. Obviously, there won’t be space in this article for a truly thorough discussion; however, I would like to present a few quick, simple and effective tips for developing robust C++ software.</p>
<blockquote><p>1. Work on the class designs first before deciding on the precise sequence of operations. Many programmers fancy themselves as doing object-oriented programming, but in reality, they use structured programming with some external object-oriented trappings. Ideally, one should first select a set of software objects that provide a logical abstraction of the software, then work on the sequence of operations. (This is by no means an absolute rule though, as the process of developing this sequence often reveals ways in which the object design can be refined.)2. Think in terms of design patterns. Design patterns allow someone to draw on years of problem-solving experience within the computer science community. Instead of reinventing the wheel, why not just pick one off the shelf?</p>
<p>3. Use ‘const’ objects and ‘const’ functions whenever possible. If you know that an object’s data is never supposed to be modified, then declare the object to be ‘const’. This will prevent you—or worse, a naïve colleague&#8211;from accidentally modifying its state later on. Of course, one should also declare the appropriate member functions to be ‘const’ as well, to properly enforce this rule.</p>
<p>4. Avoid using public ‘get’ and ‘set’ member functions. Getters and setters are not inherently bad; however, they are often a sign of poor software abstraction. ‘Get’ and ‘set’ functions implicitly force the user to think in terms of the object’s internal data (i.e. whatever these functions are getting or setting), and such details should ideally be hidden from the object’s user. Getters and setters have their place, but please use them sparingly.</p>
<p>5. Avoid double indirection. C programmers are forced to work with pointers, and so they are used to having pointers to pointers throughout their code. This can often lead to confusing code, due to the all-too-familiar problems of NULL references and pointer arithmetic. In contrast, C++ programmers are under no such constraints, due to the built-in support for variable references in C++; that is, one can always use references to pointers instead, which makes the code much easier to understand. (Hint: If a C++ programmer uses double indirection, that’s a clear sign that he’s still thinking like an inexperienced C hack!)</p></blockquote>
</div>
<div id="sig" class="sig">
<p>About the author:</p>
<p>V. B. Velasco Jr., Ph.D. has worked as an electrical and software engineer for more than a decade. He currently works for a biotech firm that provides <a id="link_76" href="http://www.elispot-analyzers.de/" target="_New">cryopreserved PBMCs</a>, <a id="link_77" href="http://www.elispot.cn/" target="_New">ELISPOT analyzers</a> and <a id="link_78" href="http://www.elispot.co.jp/" target="_New">ELISPOT expertise</a>.</p>
<div>
<p>Article Source: <a id="link_79" href="http://ezinearticles.com/?expert=V._Berba_Velasco">http://EzineArticles.com/?expert=V._Berba_Velasco</a></p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://diy-computing.com/five-tips-for-effective-object-oriented-programming-in-c/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Software for Games Development</title>
		<link>http://diy-computing.com/software-for-games-development/</link>
		<comments>http://diy-computing.com/software-for-games-development/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 20:42:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Game Development]]></category>

		<guid isPermaLink="false">http://diy-computing.com/?p=28</guid>
		<description><![CDATA[
The answer depends on a couple of questions you have to ask yourself? What skill level do you have with the computer and programming and what are your goals for making video games? I answer these questions and help you find the right software for achieving what you want.
Video game design used to be the [...]]]></description>
			<content:encoded><![CDATA[<div id="body">
<p>The answer depends on a couple of questions you have to ask yourself? What skill level do you have with the computer and programming and what are your goals for making video games? I answer these questions and help you find the right software for achieving what you want.</p>
<p>Video game design used to be the realm of crack shot programmers who could write programs, troubleshoot computers, write tools and even draw out the graphics needed. You had to be a writer, artist and programmer all wrapped up in one. But today this is no longer true. There are plenty of programs that do most of the hard work for you and leave the fun part of actually designing a game to you. But every software tool is different and each one is suited to a particular type of game making. Here is a guide for understanding some of the major game design suites and choosing which one is right for you.</p>
<p><strong>For Absolute Beginners to game design and for pre-teens or young adults –</strong></p>
<p>You are the type of person that knows how to use a computer but you don’t know how to do any programming at all. You would like to make a few small video games without having to learn too much software stuff. You have lots of ideas for video games and you like the arcade style and side scrolling games. This kind of game would be a thrill for you to make for you and your friends to play.</p>
<p><em>My Recommendation:</em>The Games Factory or Games Factory 2 by Click team</p>
<p>This is an enormously successful software tool you can use to make arcade style games. Everything is drag and drop so you don’t have to learn how to program and you don’t have to draw up your own graphics and images. You will learn some of the fundamental concepts behind game making and have a blast doing it.</p>
<p><strong>For Medium Skill Computer Users, for High school age to adult</strong></p>
<p>You have a bit of Savvy with the computer and have tried and used different kinds of programs. Maybe you have done some level design for a popular game. You would really like to make something three-dimensional like Quake and you have the thought that maybe you would like to make whole worlds and dungeons. You really want to make a game that you can walk around in.</p>
<p><em>My Recommendation:</em>The Reality Factory</p>
<p>This is a shareware program that is built on the Genesis 3D game engine. It is a legitimate game engine with a great workspace that you can actually design whole worlds in. The process is similar to something an architect would use -picture drawing out blueprints because this is what you do with the Reality Factory. This software is free to download and within an hour you can actually have a single room game up and running where you can walk your character around and shoot weapons. To do a more involved game you need to spend a significant amount of time drawing out the rooms. If you get proficient with this free software you will have set for yourself a good foundation in legitimate game making. You will have an understanding of game processes and items like textures, models, scripts and more.</p>
<p><strong>For high skill computer users and adults age 18 and over</strong></p>
<p>You are considering A career in game design and want to set out a good base foundation for your career. You want skills that will transfer to the Real world but you are not yet sure if you want to invest the years it takes to master a high level programming language.</p>
<p><em>My recommendation: Dark Basic</em></p>
<p>I recommend you look into the program called Dark Basic by The Game Creators. (They also have a Dark Basic Lite version). This is an excellent way to learn how to make games while you learn the protocol and logic of programming. This is a powerful tool that can make professional games. The good thing about Dark Basic is that it is specifically tailored to making games.</p>
<p><strong>You are going to be a Video Game Maker – no doubts about it</strong></p>
<p><em>My Recommendation: C++ and Direct X</em></p>
<p>– Although this is a matter of opinion I recommend you learn how to program using C++ and you learn how to develop with something called Microsoft Direct X. This is some professional and very serious stuff and you will spend months learning the languages without ever seeing a single game pixel. But this route is how to lay out a professional career. This software is also pretty expensive. But imagine the rewards?</p>
<p>Making video games is a wonderful pursuit that can fully tap your creative powers and whether you are doing it just for fun or for a career there are lots of tools available to help you reach your goals and make some great video games.</p>
</div>
<div id="sig" class="sig">
<p>For more creative ideas and projects on how to make video games visit the author&#8217;s website at =&gt;<a id="link_92" href="http://www.stormthecastle.com/video-game-design/video-game-design-index.htm" target="_new"><strong>The Making Video Games for Free Website</strong></a></p>
<div>
<p>Article Source: <a id="link_93" href="http://ezinearticles.com/?expert=Will_Kalif">http://EzineArticles.com/?expert=Will_Kalif</a></p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://diy-computing.com/software-for-games-development/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Coding Standards - Always Important</title>
		<link>http://diy-computing.com/coding-standards-always-important/</link>
		<comments>http://diy-computing.com/coding-standards-always-important/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 14:58:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://diy-computing.com/coding-standards-always-important/</guid>
		<description><![CDATA[
Programming Help for Beginners
We write programs to instruct computers. When programming using a high level programming language like C++ or Java, we are using a syntax that is somewhat closer to human languages. However, we use these programs as inputs to either compilers or interpreters to be converted to computer understandable binary format. For this [...]]]></description>
			<content:encoded><![CDATA[<div id="body">
<p><strong>Programming Help for Beginners</strong></p>
<p>We write programs to instruct computers. When programming using a high level programming language like C++ or Java, we are using a syntax that is somewhat closer to human languages. However, we use these programs as inputs to either compilers or interpreters to be converted to computer understandable binary format. For this reason, as far as the program code adheres to the syntax of the used programming languages, the compilers and interpreters never bother about the layout or visual formatting of the program code. However, as human programmers, we ourselves need to bother about the aesthetics of the program code.</p>
<p><strong>What is a Coding Standard?</strong></p>
<p>A coding standard is a set of guidelines, rules and regulations on how to write code. Usually a coding standard includes guide lines on how to name variables, how to indent the code, how to place parenthesis and keywords etc. The idea is to be consistent in programming so that, in case of multiple people working on the same code, it becomes easier for one to understand what others have done. Even for individual programmers, and especially for beginners, it becomes very important to adhere to a standard when writing the code. The idea is, when we look at our own code after some time, if we have followed a coding standard, it takes less time to understand or remember what we meant when we wrote some piece of code.</p>
<p><strong>Coding Standards Make a Difference</strong></p>
<p>Look at the following example:</p>
<p>int volume(int i, int j, int k) {</p>
<p>int vol;</p>
<p>vol = i * j * k;</p>
<p>return vol;</p>
<p>}</p>
<p>Looking at this code at a glance, it takes some time for one to understand that this function calculates the volume. However if we adhere to a naming convention for variables and method names, we could make the code more readable.</p>
<p>Here are few sample conventions:</p>
<ol>
<li>use meaningful variable names</li>
<li>use verbs in method names</li>
<li>use nouns for variables</li>
<li>use 4 spaces to indent</li>
</ol>
<p>int calculateVolume(int height, int width, int length) {</p>
<p>int volume = 0;</p>
<p>volume = height * width * length;</p>
<p>return volume;</p>
<p>}</p>
<p>It takes more time to type this code, however this saves far more time. This code is far more readable than its original version. With a little bit of effort, we could make the code much more understandable.</p>
<p><strong>The Benefits</strong></p>
<p>It is not only the readability that we get through a coding standard in programming. Writing more secure code could also be encouraged through a coding convention. As an example, in C++ we could say that each pointer variable must be initialized to NULL.</p>
<p>char* myName = NULL;</p>
<p>This ensures that we would not corrupt memory while using this pointer variable.</p>
<p>Code readability is just one of the aspects of maintainability. Coding standards help a great deal with program maintainability, our ability to change programs with ease. Consistency imposed through a coding standard is a key factor to achieve success in maintaining prorams.</p>
<p><strong>Defining Your Own Coding Standard</strong></p>
<p>A programmer can define his or her own coding convention and adhere to that in writing programms. However there are many coding conventions available on the Internet. Those who program in Java should have a look into http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html - Code Conventions for the Java Programming Language by Sun.</p>
<p>For C++ coding standards, I would recommend that you have a look into http://www.bbc.co.uk/guidelines/webdev/AppB.Cpp_Coding_Standards.htm - C++ Coding Standards from BBC.</p>
<p>http://oopweb.com/CPP/Documents/CPPHOWTO/Volume/C++Programming-HOWTO-14.html - C++ Programming HOWTO has some C++ Coding Conventions and also a bunch of links that lead to several coding standards that you can pick from.</p>
</div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">
<div id="sig" class="sig">
<p>John Dirk<br />
Programming Consultant<br />
<a id="link_80" href="http://www.programminghelp4u.com/" target="_new">http://www.programminghelp4u.com/</a><br />
Programming ( Assignment / Project ) Help</p>
<div>
<p>Article Source: <a id="link_81" href="http://ezinearticles.com/?expert=John_Dirk">http://EzineArticles.com/?expert=John_Dirk</a></p>
</div>
</div>
</td>
<td></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://diy-computing.com/coding-standards-always-important/feed/</wfw:commentRss>
		</item>
		<item>
		<title>C++ Function Templates</title>
		<link>http://diy-computing.com/c-function-templates/</link>
		<comments>http://diy-computing.com/c-function-templates/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 19:57:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[C++]]></category>

		<guid isPermaLink="false">http://diy-computing.com/c-function-templates/</guid>
		<description><![CDATA[
C++ Function templates are those functions which can handle different data types without separate code for each of them. For a similar operation on several kinds of data types, a programmer need not write different versions by overloading a function. It is enough if he writes a C++ template based function. This will take care [...]]]></description>
			<content:encoded><![CDATA[<div id="body">
<p>C++ Function templates are those functions which can handle different data types without separate code for each of them. For a similar operation on several kinds of data types, a programmer need not write different versions by overloading a function. It is enough if he writes a C++ template based function. This will take care of all the data types.</p>
<p>There are two types of templates in C++, viz., function templates and class templates. This article deals with only the function templates.</p>
<p>There are lot of occasions, where we might need to write the same functions for different data types. A favorite example can be addition of two variables. The variable can be integer, float or double. The requirement will be to return the corresponding return type based on the input type. If we start writing one function for each of the data type, then we will end up with 4 to 5 different functions, which can be a night mare for maintenance.</p>
<p>C++ templates come to our rescue in such situations. When we use C++ function templates, only one function signature needs to be created. The C++ compiler will automatically generate the required functions for handling the individual data types. This is how a programmer&#8217;s life is made a lot easier.</p>
<p>C++ Template functions - Details:</p>
<p>Let us assume a small example for Add function. If the requirement is to use this Add function for both integer and float, then two functions are to be created for each of the data type (overloading).</p>
<pre>
int Add(int a,int b) { return a+b;} // function Without C++ template

float Add(float a, float b) { return a+b;} // function Without C++ template
</pre>
<p>If there are some more data types to be handled, more functions should be added.</p>
<p>But if we use a c++ function template, the whole process is reduced to a single c++ function template. The following will be the code fragment for Add function.</p>
<pre>
template

T Add(T a, T b) //C++ function template sample

{

return a+b;

}
</pre>
<p>This c++ function template definition will be enough. Now when the integer version of the function, the compiler generates an Add function compatible for integer data type and if float is called it generates float type and so on.</p>
<p>Here T is the typename. This is dynamically determined by the compiler according to the parameter passed. The keyword class means, the parameter can be of any type. It can even be a class.</p>
<p>C++ Template functions - Applicability:</p>
<p>C++ function templates can be used wherever the same functionality has to be performed with a number of data types. Though very useful, lots of care should be taken to test the C++ template functions during development. A well written c++ template will go a long way in saving time for programmers.</p>
</div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">
<div id="sig" class="sig">
<p>About The Author</p>
<p>Muthukumar</p>
<p>More articles can be found at <a id="link_80" href="http://www.codersource.net/" target="_new">http://www.codersource.net/</a> .</p>
<div>
<p>Article Source: <a id="link_81" href="http://ezinearticles.com/?expert=Muthukumar">http://EzineArticles.com/?expert=Muthukumar</a></p>
</div>
</div>
</td>
<td></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://diy-computing.com/c-function-templates/feed/</wfw:commentRss>
		</item>
		<item>
		<title>C++ Introduction Tutorial 2</title>
		<link>http://diy-computing.com/c-introduction-tutorial-2/</link>
		<comments>http://diy-computing.com/c-introduction-tutorial-2/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 19:55:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://diy-computing.com/c-introduction-tutorial-2/</guid>
		<description><![CDATA[
This is the tutorial where we really get into programming. Input and variables are the essence of programming. In this tutorial you will learn how to get data from the user and use variables. You will learn the types of variables there are and how to do basic math with them. At first, this may [...]]]></description>
			<content:encoded><![CDATA[<div id="body">
<p>This is the tutorial where we really get into programming. Input and variables are the essence of programming. In this tutorial you will learn how to get data from the user and use variables. You will learn the types of variables there are and how to do basic math with them. At first, this may seem boring and pointless, but you have to learn it, and it should go quick.</p>
<p>Basic Input</p>
<p>When you are making a console application, here is how you should get user input. Some of you may have guessed it, you use c[b]in[/b], of course, the &#8216;c&#8217; meaning console and the &#8216;in&#8217; meaning input, like &#8216;cout&#8217;. So, here is a basic code, where the name of the variable x.<br />
cin&gt;&gt;x;</p>
<p>Defining Variables</p>
<p>A variable is what you guessed, a number or piece of data that will vary.</p>
<p>The diffrent types of variables:</p>
<p>bool - true or false</p>
<p>int - whole numbers</p>
<p>char - character (a, b, c, etc&#8230;)</p>
<p>string - multiple characters (words, etc..)</p>
<p>float,double - numbers that can have decimals</p>
<p>When deciding what type of variable to use, think about what kind of data it is going to be storing and remember that some data types use more memory than others, however most of your applications will use less memory than you have. To declare a variable, write the type of variable, then the name.</p>
<p>Examples:</p>
<p>int myInt = 7;</p>
<p>char thisChar= &#8216;a&#8217;, otherChar = &#8216;b&#8217;, char newChar;</p>
<p>string password= &quot;password&quot;;</p>
<p>Syntaxes</p>
<p>Notice how I always had the first word not capatalized, but I capatalized all the other ones. You can also define more than one at a time, and you dont always need to set the value in the begining. Also, when you use a char, use a &#8216; and for a string a &quot;. Try to give your variables meaningful names.</p>
<p>Math</p>
<p>This is really the heart of programming, math! For now, we are going to be doing some simple arithmetic.</p>
<p>The basic math functions are:</p>
<p>+ = addition</p>
<p>- = subtraction</p>
<p>/ = division</p>
<p>* = multiplication</p>
<p>There are a bunch more, but that is all we need for now.</p>
<p>Go out and make a program!</p>
<p>Now that you know some of that basic stuff, try making a program, and dont be afraid to ask for help on <a id="link_76" href="http://www.syschat.com/" target="_new">http://www.syschat.com!</a></p>
</div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">
<div id="sig" class="sig">
<p>Chris Silop - <a id="link_77" href="http://www.syschat.com/" target="_new">http://www.syschat.com</a> , Computer Forum</p>
<div>
<p>Article Source: <a id="link_78" href="http://ezinearticles.com/?expert=Chris_Silop">http://EzineArticles.com/?expert=Chris_Silop</a></p>
</div>
</div>
</td>
<td></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://diy-computing.com/c-introduction-tutorial-2/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
