<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jtmcgee.net</title>
	<atom:link href="http://jtmcgee.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://jtmcgee.net</link>
	<description>A Technological Guru Blog</description>
	<lastBuildDate>Sun, 27 Nov 2011 04:50:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Data Structures, and why you need to actually learn them</title>
		<link>http://jtmcgee.net/archives/2011/11/data-structures-and-why-you-need-to-actually-learn-them/</link>
		<comments>http://jtmcgee.net/archives/2011/11/data-structures-and-why-you-need-to-actually-learn-them/#comments</comments>
		<pubDate>Sun, 27 Nov 2011 04:50:48 +0000</pubDate>
		<dc:creator>Jordan DeLoach</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[data structures]]></category>
		<category><![CDATA[efficiency]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[kstate]]></category>
		<category><![CDATA[memory]]></category>

		<guid isPermaLink="false">http://jtmcgee.net/?p=242</guid>
		<description><![CDATA[This year, I am taking CIS 300 at Kansas State University. At first, I expected this class to be boring as it was a class on &#8220;data structures.&#8221; How much more boring could it get? Oooh, studying the differences in implementations between LinkedList and ArrayLists. The first day our professor proved to us just how ]]></description>
			<content:encoded><![CDATA[<p>This year, I am taking CIS 300 at Kansas State University. At first, I expected this class to be boring as it was a class on &#8220;data structures.&#8221; How much more boring could it get? Oooh, studying the differences in implementations between LinkedList and ArrayLists. The first day our professor proved to us just how wrong we were. He showed us two snippets of code:</p>
<pre><code>String results = "";
for(char c: String.toCharArray()) {
results += (char)(c+3);
}
</code></pre>
<p>and</p>
<pre><code>StringBuilder results = new StringBuilder();
for(char c: String.toCharArray()) {
results.append((char)(c+3));
}
</code></pre>
<p>He then proceeded to convert the entire collection of works by Shakespeare. Method 1 was estimated to take over 21 days by the computer. Method 2 finished in seconds. That caught my attention.<br />
There are several cool data structures and search techniques that I have found awesome throughout this semester.</p>
<h2><span id="more-242"></span><strong>Binary Search</strong></h2>
<p>The people who write these algorithims are brilliant. To search through a sorted array, why look at every element? Why not just jump to the middle, see if what you are looking for is less than or greater than the middle, then do it again, with the new middle being the middle of the selected half.</p>
<h2><strong>ArrayList</strong></h2>
<p>ArrayList&#8217;s is essentially a circular array that handles the dirty details of dealing with arrays. When programming simple projects, I prefer to use ArrayLists as they are just more friendly than arrays. It dynamically resizes to allow you to constantly add without having to handle the actual details of expanding the underlying arrays. Finding an element at a certain element is VERY cheap as it essentially an array wrapper, the problem with ArrayList is removing or adding as it requires all of the following elements to be moved which can be pricey in a large array (I don&#8217;t mean hundreds, I mean hundreds of thousands).</p>
<h2><strong>LinkedList</strong></h2>
<p>LinkedList&#8217;s can be awesome when used correctly. A LinkedList is a group of nodes, linearly linked together. Node A contains certain data and a link to B. B contains data and a link to C, etc. This can be quite efficient if all you need to do is traverse the list in order. Finding a certain index can be much more costly than an ArrayList, but adding and removing at the end, or having a certain Node is extremely cheap. While sounding sort of lame, it can be very useful.</p>
<h2><strong>Tries</strong></h2>
<p>Now Trie&#8217;s really got my attention the first day of class. While looping through every String in a String[] can be very expensive, say an 80,000 word dictionary. While a binary search can cut that down to around 30 loops. Imagine if you could do that in 5 for a 5 letter word, or 8 for an 8 letter word. Imagine a tree, with the head having 26 children, each corresponding to a letter. From each letter are more children, and more children from there. Say following from the root, &#8216;a&#8217; to &#8216;c&#8217; to &#8216;e&#8217;, and &#8216;e&#8217; contains a &#8216;emptyString&#8217; property that holds the boolean <code>true</code>. You have found the word &#8216;ace&#8217; in 3 actions. Mind boggling.</p>
<h2><strong>Conclusions</strong></h2>
<p>Knowing these staples of data structures enables you to mix and mash creating the perfect data structure for any ocassion. Today I mixed LinkedLists with float arrays to efficiently store millions of floating point numbers so that I could both stay memory efficient (arrays of primitive types) while keeping object sizes down (breaking the large arrays up through the LinkedLists). Note: I in no way claim to be a genius on this, or even know a good amount about it, as I have only spent a few months studying it, but it&#8217;s some awesome stuff that all developers should look into if they haven&#8217;t already.</p>
		<div style="float:right;margin:10px 10px 0px 0px;">
			<a class="DiggThisButton DiggCompact" href="http://digg.com/submit?url=http%3A%2F%2Fjtmcgee.net%2Farchives%2F2011%2F11%2Fdata-structures-and-why-you-need-to-actually-learn-them%2F&title=Data+Structures%2C+and+why+you+need+to+actually+learn+them" rel="news, programming"><span style="display:none">This year, I am taking CIS 300 at Kansas State University. At first, I expected this class to be boring as it was a class on &#8220;data structures.&#8221; How much more boring could it get? Oooh, studying the differences in implementations between LinkedList and ArrayLists. The first day our professor proved to us just how </span></a>		
		</div>		
		]]></content:encoded>
			<wfw:commentRss>http://jtmcgee.net/archives/2011/11/data-structures-and-why-you-need-to-actually-learn-them/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You Know You&#8217;re An AP Student When&#8230;</title>
		<link>http://jtmcgee.net/archives/2011/11/you-know-youre-an-ap-student-when/</link>
		<comments>http://jtmcgee.net/archives/2011/11/you-know-youre-an-ap-student-when/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 05:03:51 +0000</pubDate>
		<dc:creator>Jordan DeLoach</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ap]]></category>
		<category><![CDATA[kstate]]></category>
		<category><![CDATA[mhs]]></category>
		<category><![CDATA[school]]></category>

		<guid isPermaLink="false">http://jtmcgee.net/?p=236</guid>
		<description><![CDATA[These are just a collection of my favorite &#8220;You know you&#8217;re an AP Student when,&#8221; with some contributions from myself. Just an idea of my schedule for my junior year, AP Calc AB, AP Language and Composition, AP Physics B, AP US History, and CIS 300 (Fall) and CIS 301 (Spring) at K-State. Plus a ]]></description>
			<content:encoded><![CDATA[<p>These are just a collection of my favorite &#8220;You know you&#8217;re an AP Student when,&#8221; with some contributions from myself. Just an idea of my schedule for my junior year, AP Calc AB, AP Language and Composition, AP Physics B, AP US History, and CIS 300 (Fall) and CIS 301 (Spring) at K-State. Plus a (programming) job, debate (policy, every weekend), club swimming, and high school swimming.</p>
<ul>
<li>You often look up <a href="http://twitter.com/#%21/search/%23apush">#apush</a>, <a href="http://twitter.com/#%21/search/%23aplang">#aplang</a>, <a href="http://twitter.com/#%21/search/%23apphysics">#apphysics</a>, <a href="http://twitter.com/#%21/search/%23apcalc">#apcalc</a> on Twitter just to see your fellow sufferers.</li>
<li>You don’t think of it as “cheating”, you think of it as “cooperative learning.”</li>
<li>You have multiple breakdowns throughout the year from school-related stress.</li>
<li>On top of your full schedule, you’re involved in several extra-curricular activities and you have a job.</li>
<li>Every extra-curricular activity you sign up for is framed with the words “It’ll look good for college.”</li>
<li>You sign up for a class because it’s weighted, not because the subject interests you.</li>
<li>You consider any non AP class to be a blow-off class.</li>
<li>You never meet anyone new in your classes because its been the same group of kids since ninth grade.</li>
<li>You and your closest friends are all in the top 10% of your class.</li>
<li>The probablity of your homework getting done depends more on your mood than the fact that it needs to be done.</li>
<li>You consider anything below a A to be a bad grade.</li>
<li><span id="more-236"></span></li>
<li>You watch TV or do other random things until 10pm then complain the next day about doing homework at 2am.</li>
<li>You find yourself complaining to everyone how much homework you have&#8230; when you should be off facebook doing it.</li>
<li>You get mad when non-AP students whine about how much homework they have.</li>
<li>Sometimes the highlight of your life is just crawling into bed and passing out.</li>
<li>You use random, obscure information you learned in class in everyday conversation.</li>
<li>You stare at your homework and repeat the words FML as you go through it.</li>
<li>You know that school is a joke after the second week in May.</li>
<li>You write BS-ays instead of essays.</li>
<li>You have back problems because your backpack weighs more than 50lbs.</li>
<li>You can&#8217;t help but find symbolism in every single thing you read/watch.</li>
<li>Sparknotes is practically your homepage.</li>
<li>You can&#8217;t have a conversation with your friends without mentioning homework at least once.</li>
<li>You&#8217;re actually disappointed because you  realize that you could&#8217;ve gotten a lot more AP classes into your high  school transcript if they&#8217;d let you start as a freshman.</li>
<li>You look at your AP results to cheer yourself up when depressed about your lack of a social life.</li>
<li>You are annoyed after the ap test because it was SO much easier than all  the practice tests and you didn&#8217;t need to have studied THAT much.</li>
</ul>
		<div style="float:right;margin:10px 10px 0px 0px;">
			<a class="DiggThisButton DiggCompact" href="http://digg.com/submit?url=http%3A%2F%2Fjtmcgee.net%2Farchives%2F2011%2F11%2Fyou-know-youre-an-ap-student-when%2F&title=You+Know+You%26%238217%3Bre+An+AP+Student+When%26%238230%3B" rel="news, programming"><span style="display:none">These are just a collection of my favorite &#8220;You know you&#8217;re an AP Student when,&#8221; with some contributions from myself. Just an idea of my schedule for my junior year, AP Calc AB, AP Language and Composition, AP Physics B, AP US History, and CIS 300 (Fall) and CIS 301 (Spring) at K-State. Plus a </span></a>		
		</div>		
		]]></content:encoded>
			<wfw:commentRss>http://jtmcgee.net/archives/2011/11/you-know-youre-an-ap-student-when/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Verifying an Google Apps Alias Domain</title>
		<link>http://jtmcgee.net/archives/2011/07/verifying-an-google-apps-alias-domain/</link>
		<comments>http://jtmcgee.net/archives/2011/07/verifying-an-google-apps-alias-domain/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 21:41:02 +0000</pubDate>
		<dc:creator>Jordan DeLoach</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://jtmcgee.net/?p=232</guid>
		<description><![CDATA[So I&#8217;ve been working on a project for a while with Google App Engine and it has gotten close to being finished, so I decided to buy a domain name and put the project on it. Sounds simple and a 5 minute ordeal right? Wrong. Dead wrong. So I need to verify it, the main ]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve been working on a project for a while with Google App Engine and it has gotten close to being finished, so I decided to buy a domain name and put the project on it. Sounds simple and a 5 minute ordeal right? Wrong. Dead wrong.</p>
<p>So I need to verify it, the main and recommended way is to use TXT record supported by most domain name registrars. Well mine wasn&#8217;t supported. Shouldn&#8217;t be a problem, all I need to do is upload an HTML file to a server behind the domain name to verify. That is quite dificult it turns out.</p>
<p>Next I fire up a VM, put a web server on it, put the verification file on it, and open it to the world and put it in the DNS settings for the domain name. Cox Communications doesn&#8217;t allow port 80; FAIL.</p>
<p>Try two, I&#8217;ll do a redirect from my domain name to a file on jtmcgee.net projects. FAIL, Google Apps doesn&#8217;t allow redirects when looking for the verification file.</p>
<p>3rd times the charm, right? I&#8217;ll CNAME my App Engine and put my project there. FAIL, the App Engine just redirects me to google.com.</p>
<p>4th time I try to CNAME my own website. This has a similar result, getting redirected back to epicserve.com, the owner of the servers website.</p>
<p>5th time, I contacted my friend <a href="http://epicserve.com">Brent</a> and asked him to work some config magic so that I could CNAME my project server without redirecting. Finally I can validate!</p>
<p>Yet I am still waiting for that CNAME change to propogate to the DNS servers around the world&#8230; 1and1 is famous for their slowness. It shows up right on my computer I am just waiting for it to show up right at Google.</p>
<p>Never thought something so simple would take so long.</p>
		<div style="float:right;margin:10px 10px 0px 0px;">
			<a class="DiggThisButton DiggCompact" href="http://digg.com/submit?url=http%3A%2F%2Fjtmcgee.net%2Farchives%2F2011%2F07%2Fverifying-an-google-apps-alias-domain%2F&title=Verifying+an+Google+Apps+Alias+Domain" rel="news, programming"><span style="display:none">So I&#8217;ve been working on a project for a while with Google App Engine and it has gotten close to being finished, so I decided to buy a domain name and put the project on it. Sounds simple and a 5 minute ordeal right? Wrong. Dead wrong. So I need to verify it, the main </span></a>		
		</div>		
		]]></content:encoded>
			<wfw:commentRss>http://jtmcgee.net/archives/2011/07/verifying-an-google-apps-alias-domain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Happy Birthday Facebook App</title>
		<link>http://jtmcgee.net/archives/2011/06/happy-birthday-facebook-app/</link>
		<comments>http://jtmcgee.net/archives/2011/06/happy-birthday-facebook-app/#comments</comments>
		<pubDate>Sat, 25 Jun 2011 16:02:44 +0000</pubDate>
		<dc:creator>Jordan DeLoach</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://jtmcgee.net/?p=230</guid>
		<description><![CDATA[Whenever I finish a new project I always post about it. Here I go. The Happy Birthday Facebook App was designed for lazy people, me in mind, that want to post on peoples walls at midnight for their birthday so it can be special and all, but for one reason or another they can&#8217;t. This ]]></description>
			<content:encoded><![CDATA[<p>Whenever I finish a new project I always post about it. Here I go.</p>
<p>The <a href="Happy Birthday Facebook App">Happy Birthday Facebook App</a> was designed for lazy people, me in mind, that want to post on peoples walls at midnight for their birthday so it can be special and all, but for one reason or another they can&#8217;t. This app basically lets you choose friends to wish happy birthday to at midnight, set a custom message, and adds it to the database to wait for that special night when it strikes 12. Then it will use that access token you gave it long ago and write on their birthday giving them your special message.</p>
<p>Like a large majority of my projects, it is open sourced.  You can find it at <a href="https://github.com/jdeloach/Happy-Birthday">GitHub</a> and do whatever you want with the source. If you are looking for a simple Java Facebook app example or a simple Java App Engine app example, then it&#8217;s for you.</p>
<p>Try it out on Facebook.</p>
		<div style="float:right;margin:10px 10px 0px 0px;">
			<a class="DiggThisButton DiggCompact" href="http://digg.com/submit?url=http%3A%2F%2Fjtmcgee.net%2Farchives%2F2011%2F06%2Fhappy-birthday-facebook-app%2F&title=Happy+Birthday+Facebook+App" rel="news, programming"><span style="display:none">Whenever I finish a new project I always post about it. Here I go. The Happy Birthday Facebook App was designed for lazy people, me in mind, that want to post on peoples walls at midnight for their birthday so it can be special and all, but for one reason or another they can&#8217;t. This </span></a>		
		</div>		
		]]></content:encoded>
			<wfw:commentRss>http://jtmcgee.net/archives/2011/06/happy-birthday-facebook-app/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Eclipse Plugin Update Logger</title>
		<link>http://jtmcgee.net/archives/2011/05/eclipse-plugin-update-logger/</link>
		<comments>http://jtmcgee.net/archives/2011/05/eclipse-plugin-update-logger/#comments</comments>
		<pubDate>Fri, 20 May 2011 16:48:55 +0000</pubDate>
		<dc:creator>Jordan DeLoach</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://jtmcgee.net/?p=225</guid>
		<description><![CDATA[If you have read my site for a while, or know what projects I am involved in, you know that for several summers I always do a little update on an Eclipse Plugin download logger. It started two years ago, then it just literally increased an integer in a text file for every download. You ]]></description>
			<content:encoded><![CDATA[<p>If you have read my site for a while, or know what projects I am involved in, you know that for several summers I always do a little update on an Eclipse Plugin download logger. It started two years ago, then it just literally increased an integer in a text file for every download. You could only see how many times a thing had been downloaded. Last year I upgraded it to two separate versions. Initially I wrote a logger that logged to an XML file. It kept a date, IP, and what was downloaded. This was infinitely better however when used it production it had a flaw where there were multiple file handles editing the file at the same time and it wiped the file. So later that summer I changed about 1/3 of the code to instead of logging to XML, to log to a MySQL database. It included a great backend that would provide Geo-location based on the IP address,  other WHOIS stats on the IP, and various other information. It&#8217;s backend was a copy of my old CMS for this website so it even had a decent looking backend. It allowed you to download your log in a CSV format for whatever purposes you wanted. It was great, just not so polished and debugged.</p>
<p>This year I moved the project to GitHub and you can find it <a href="http://github.com/jdeloach/Eclipse-Plugin-Update-Logger">here</a>. This years version features an install script that dramatically makes it simpler to setup. Once you clone the git repository just running the install.php will setup everything from the MySQL DB, to error reporting, to your Google Maps API (for the map on the geo-location). All that&#8217;s needed to install this correctly is giving the web server the ability to write/edit files.</p>
<p>If you have a plugin for eclipse that you release check it out. Worst case scenario is it breaks, and if that happens it will turn itself off, stop logging, and allow the downloads to continue as if it was never there. <a href="http://github.com/jdeloach/Eclipse-Plugin-Update-Logger">Check it out</a>.</p>
		<div style="float:right;margin:10px 10px 0px 0px;">
			<a class="DiggThisButton DiggCompact" href="http://digg.com/submit?url=http%3A%2F%2Fjtmcgee.net%2Farchives%2F2011%2F05%2Feclipse-plugin-update-logger%2F&title=Eclipse+Plugin+Update+Logger" rel="news, programming"><span style="display:none">If you have read my site for a while, or know what projects I am involved in, you know that for several summers I always do a little update on an Eclipse Plugin download logger. It started two years ago, then it just literally increased an integer in a text file for every download. You </span></a>		
		</div>		
		]]></content:encoded>
			<wfw:commentRss>http://jtmcgee.net/archives/2011/05/eclipse-plugin-update-logger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>One Locked Down Laptop</title>
		<link>http://jtmcgee.net/archives/2011/01/one-locked-down-laptop/</link>
		<comments>http://jtmcgee.net/archives/2011/01/one-locked-down-laptop/#comments</comments>
		<pubDate>Sun, 09 Jan 2011 02:22:20 +0000</pubDate>
		<dc:creator>Jordan DeLoach</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[lastpass]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[truecrypt]]></category>

		<guid isPermaLink="false">http://jtmcgee.net/?p=213</guid>
		<description><![CDATA[I was recently watching a YouTube video, about how a guys computer got stolen (and how he recovered it using SSH, VNC, and hacker skills!) and all the lack of security he put on it and all the potential damages it could have caused. It made me think, on my new laptop, I had absolutely ]]></description>
			<content:encoded><![CDATA[<p>I was recently watching <a href="http://www.youtube.com/watch?v=U4oB28ksiIo">a YouTube video</a>, about how a guys computer got stolen (and how he recovered it using SSH, VNC, and hacker skills!) and all the lack of security he put on it and all the potential damages it could have caused. It made me think, on my new laptop, I had absolutely no security, not even an account password (normally I do have one.) With me going more and more places with my laptop, starting college classes again Fall 2011, and going to college full time as a freshmen in 2013, laptop theft is a strong probability. That being so, I spent about a day just locking down my laptop and seeing how much data I could protect, some of those things also protect my desktop now too.</p>
<p><span id="more-213"></span></p>
<p>On my new laptop I got a few days ago (Intel Core 2 Duo 2.2 ghz, 3 gb. ram, Latitude D630 w/ docking station, 14.1&#8243;), I first started by heeding the advice of my favorite blog, <a href="http://lifehacker.com">Lifehacker</a>. I love Lifehacker, I have wallpaper for it, get emails daily with posts in it, read it daily on their website, follow it on Twitter, Liked it on Facebook, have it&#8217;s RSS on my iPod Touch, simply I like it a lot. Anyways, for a long time they have recommended LastPass as a great way of providing better security for your passwords. For a long time, I didn&#8217;t want to do it because I always thought it was important that I knew the passwords to all the places I used, and that if I was using a school computer or something, I wouldn&#8217;t be able to get the password. Well, I learned the cool part about LastPass is that it is stored online, making your passwords and other secure data accessible from anywhere, and providing syncing of passwords across browsers and OS&#8217;s. When I set it up, it was kinda scary cause it could see the passwords Firefox and Chrome had been storing, and the plain text of the password, which alone made it enough to convert and give up basic password managers. LastPass has some really cool login methods you can use, ranging from a printout grid that you have to input random parts from to having to have a certain USB drive plugged in to log into the website. I just use the simple log in method as I cannot guarantee myself that I will have one of those methods on me at all times. Another cool part about LastPass is its random password generators, I feel safe now knowing that all my online accounts have unique 12 character complex passwords, and the best part, I don&#8217;t know them. In short, I am a believer  in LastPass now in just about two days.</p>
<p>My second thought was, I still have information I don&#8217;t want losing on my PC besides just my laptop and for that I installed another Lifehacker recommendation, TrueCrypt. TrueCrypt has a lot of options for doing whatever you wanted, but what I wanted was a total OS encryption, before Windows can even boot, it must have my passphrase for decrypting the drive. I have not really seen that much of a slow down so far, and from what I read as long as you use AES encryption (DoD standard) you shouldn&#8217;t. *Random sidenote: In NCIS the forensics scientist Abby once talked about how to truly delete data you must write over the specific part of the hard drive several times, with TrueCrypt I was able to select that option when it encrypted, it wiped 3x to remove any traces*</p>
<p>And lastly, I added a double backup on my laptop (hadn&#8217;t set it up yet, only had it about a week or two), one backup to my local server, and one to my 2 TB. external hard drive.</p>
<p>I now feel fairly confident in the security I have put on my laptop (and desktop as my /home directory has always been LUKS encrypted, backed up, and now LastPass) and that I can deter most thieves from my data and the ones smart enough that get it won&#8217;t really be interested in what is on a 16 year olds laptop. If you haven&#8217;t taken at least one or two of these security measures, I recommend you do.</p>
		<div style="float:right;margin:10px 10px 0px 0px;">
			<a class="DiggThisButton DiggCompact" href="http://digg.com/submit?url=http%3A%2F%2Fjtmcgee.net%2Farchives%2F2011%2F01%2Fone-locked-down-laptop%2F&title=One+Locked+Down+Laptop" rel="news, programming"><span style="display:none">I was recently watching a YouTube video, about how a guys computer got stolen (and how he recovered it using SSH, VNC, and hacker skills!) and all the lack of security he put on it and all the potential damages it could have caused. It made me think, on my new laptop, I had absolutely </span></a>		
		</div>		
		]]></content:encoded>
			<wfw:commentRss>http://jtmcgee.net/archives/2011/01/one-locked-down-laptop/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Facebook Graph and OAuth 2.0</title>
		<link>http://jtmcgee.net/archives/2010/08/the-facebook-graph-and-oauth-2-0/</link>
		<comments>http://jtmcgee.net/archives/2010/08/the-facebook-graph-and-oauth-2-0/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 17:54:32 +0000</pubDate>
		<dc:creator>Jordan DeLoach</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jtmcgee.net/?p=209</guid>
		<description><![CDATA[During my recent Facebook app development using Java, I had to have some minor integration with Facebook, and I am here to share what I have learned and the cool parts about Facebook&#8217;s &#8220;Graph.&#8221; Introduction to Working with Facebook When writting my application, it happened to be a canvas app, or it was accessed via ]]></description>
			<content:encoded><![CDATA[<p>During my recent <a href="http://jtmcgee.net/archives/2010/08/social-schedules-my-first-facebook-application/">Facebook app development</a> using <a href="http://jtmcgee.net/archives/2010/08/java-the-power-language-for-web-or-console/">Java</a>, I had to have some minor integration with Facebook, and I am here to share what I have learned and the cool parts about Facebook&#8217;s &#8220;Graph.&#8221;</p>
<h3>Introduction to Working with Facebook</h3>
<p>When writting my application, it happened to be a canvas app, or it was accessed via apps.facebook.com with a iframe to my acctual app. When I would get a new user I would immediatley get a new cookie that was named <code>fbs_APPID</code> within this cookie, most importantly, there was a access token. Now to know any information about a user, one must have one thing, an OAuth access token.</p>
<h3>Getting an OAuth access token</h3>
<p>Most times you will have a token in the cookies, however on some random times that I never figured out the pattern to, you just don&#8217;t have that information there. And as for most apps, you need to know some information about a user, and possibly even post or something of the like with the users permission. However, for protection, Facebook just doesn&#8217;t allow any application developer access to their entire database. So to allow only certain access to certain applications, applications are given OAuth tokens, these tokens are user specificic and generally session specific. With these tokens, you could use the later discussed Facebook Graph to get just about any needed data.<br />
The process of getting an OAuth token if it is not in the &#8220;fbs_&#8221; cookie can be quite strenuous. First you need to redirect the user to the Graph server with certain application-specific parameters. Next, one of the parameters happened to be a call back url, now that url is called and Facebook gives you a code. Using this code and your application secret you can finally get a new OAuth access token. Basically what all these redirects does is allow Facebook to check that this user is acctually logged in and that this user is allowing the application access to this information.</p>
<p><span id="more-209"></span></p>
<h3>The Facebook Graph</h3>
<p>Why they call it the &#8220;Graph&#8221; I am not quite sure, however it is quite a handy tool. Just heading over to <a href="http://graph.facebook.com/me">http://graph.facebook.com/me</a> will provide you some basic information about yourself, provided that you are currently logged into Facebook on that browser. Furthermore looking up more information is easy, all you need to know about something is it&#8217;s Facebook ID. Everything on Facebook has an ID, from an event to a group, to a person. With people you can even use words like the ones that are for your profile. You can access some basic information on me by going to <a href="http://graph.facebook.com/jordan.deloach">http://graph.facebook.com/jordan.deloach</a>.<br />
Want other information? It&#8217;s easy</p>
<ul>
<li>http://graph.facebook.com/me/picture links to that select person&#8217;s profile (replace Me with the FB ID of anything on Facebook)</li>
<li>http://graph.facebook.com/me/home Your news feed</li>
<li>http://graph.facebook.com/me/feed Your wall</li>
<li>http://graph.facebook.com/me/movies Your movies.</li>
</ul>
<p>Obviously there are many more than this, and it as simple as fetching these url&#8217;s in your application to get all this data. Check out the <a href="http://jtmcgee.net/archives/2010/08/java-the-power-language-for-web-or-console/">Graph API</a> for more examples and the nitty-gritty syntax. You can get all sorts of data on any event, photo, anything really.</p>
<h3>Where these two technologies meet</h3>
<p>Now the reason that we discussed OAuth tokens was that so you had them in your application for when the time came when you needed some data. Not all data requires a token, in fact any data visible by outside (non-friend) users is visible. However when that no longer cuts it, an access token with proper permissions can get you all the data you need. When applying the access token it is as simple as putting it as a GET argument</p>
<pre><code>https://graph.facebook.com/me/friends?access_token=w5h2kl5jhkleh235hjkl23h5jkwhfklq3
</code></pre>
<p>Note: when using an access token you must use HTTPS or a secure connection.</p>
<p>Another note: Me refers to the user who authorized the access token, not the developer.</p>
<p>And another, major note: all data will be returned in JSON Object forrm, so all you need is a few libraries, or if they are included with your language you&#8217;re fine.<br />
For Java I used the libraries are JSON.org, they worked just fine.</p>
		<div style="float:right;margin:10px 10px 0px 0px;">
			<a class="DiggThisButton DiggCompact" href="http://digg.com/submit?url=http%3A%2F%2Fjtmcgee.net%2Farchives%2F2010%2F08%2Fthe-facebook-graph-and-oauth-2-0%2F&title=The+Facebook+Graph+and+OAuth+2.0" rel="news, programming"><span style="display:none">During my recent Facebook app development using Java, I had to have some minor integration with Facebook, and I am here to share what I have learned and the cool parts about Facebook&#8217;s &#8220;Graph.&#8221; Introduction to Working with Facebook When writting my application, it happened to be a canvas app, or it was accessed via </span></a>		
		</div>		
		]]></content:encoded>
			<wfw:commentRss>http://jtmcgee.net/archives/2010/08/the-facebook-graph-and-oauth-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java &#8211; The Power Language (for Web or Console)</title>
		<link>http://jtmcgee.net/archives/2010/08/java-the-power-language-for-web-or-console/</link>
		<comments>http://jtmcgee.net/archives/2010/08/java-the-power-language-for-web-or-console/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 01:30:07 +0000</pubDate>
		<dc:creator>Jordan DeLoach</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://jtmcgee.net/?p=205</guid>
		<description><![CDATA[Recently, I wrote my first Facebook application. It was a small project, and it&#8217;s main purpose was to replace the common note entitled something like &#8220;Xth grade Schedule!!!&#8221; and it was designed to be more efficient for the end user. After inputting your schedule, you would go through and see who is in your classes ]]></description>
			<content:encoded><![CDATA[<p>Recently, I <a href="http://jtmcgee.net/archives/2010/08/social-schedules-my-first-facebook-application/">wrote my first Facebook application</a>. It was a small project, and it&#8217;s main purpose was to replace the common note entitled something like &#8220;Xth grade Schedule!!!&#8221; and it was designed to be more efficient for the end user. After inputting your schedule, you would go through and see who is in your classes (that the system already knows). There were other cool features like using some <a href="http://developers.facebook.com/plugins">Facebook Social Plugins</a> like the &#8220;Like&#8221; button and Facebook comments.</p>
<p>Now for this application, as I wrote it in a matter of days and released it the day of schedule releases, I had to go with a language I knew very well, and I had to have a reliable, dependable source to host it at. I automatically though of the <a href="http://code.google.com/appengine/">Google App Engine</a> as it is pretty sweet to play around with and now would be a great time to test it in a live environment. My previous application I had wrote on Google&#8217;s free, scalable engine was written in Python. It utilized the amazing Django framework, but I felt like I didn&#8217;t really understand the Python language as well as some others. The only other option for selection on the App Engine was Java. This was perfect as I had just completed a summer class on Java and it was extremely fresh in my mind.</p>
<p><span id="more-205"></span></p>
<h2>Core Java Servlets</h2>
<p>Now coming from PHP for web development the idea of Servlets and JSP&#8217;s was totally a different way of thinking. With PHP I was used to putting what code I needed to on each page to achieve what needed to be done. With a bit of Python/Django experience, Java&#8217;s way was still different, but not as different as PHP to Java. Java&#8217;s JSP method reminded me a lot of Django templates, except that JSP&#8217;s are a load more powerful. As Django templates (at least from my experience) only allow a few tags, a JSP allows practically any Java code (that would normally go inside a main method) and allows imports and special features unique to JSP&#8217;s, like includes. JSP&#8217;s includes in fact reminded me some more of Django&#8217;s templates with all the splitting up possible of the HTML files.</p>
<p>Now that we briefly know what a JSP is, a servlet is just like a Java class that implements the standard Apache servlet. Within these servlets you have two methods by default <code>doGet(HttpServletRequest req, HttpServletResponse resp)</code> and <code>doPost()</code> with the same arguments. There are a few differences from a standard Java class beyond those previously noted:</p>
<pre><code>resp.getWriter().println(); // to print to the screen you must get the PrintWriter via the resp.getWriter() method
resp.setContentType("text/html"); // must do if you print out any HTML and don't want it to appear as standard text
resp.sendRedirect(String url); // a simple way to send a user to be redirected
</code></pre>
<p>There is (obviously) no console input on a web browser, so the standard way to get input via the web is through GET and POST methods. These are handled via the corresponding <code>doGet()</code> and <code>doPost()</code> methods. Now to actually get the value passed, you must know the variable name and use it accordingly.</p>
<pre><code>req.getParameter(String paramName); // where paramName is the ?name=Joe&amp;age=18 name or age
</code></pre>
<p>Sometimes you will also find yourself in need of getting an array, from say a multiple choice drop down.</p>
<pre><code>req.getParameterValues(String paramName); // just once and it will return a String[]
</code></pre>
<p>Now onto more of the theory behind servlets, and less of the syntax. Now please remember when I say theory, this is just the way I perceive it. In my application if I would have a full blown HTML page, I would always put it in a JSP as it is so simple and better looking. However when there was a simpler page that had a bit more code behind it, I would make that a servlet. An example of a simpler page with more code that I used as a servlet would be my form handlers (any adding or updating interaction with the database), and also I handled the OAuth authentication with servlets.</p>
<h2>JSP&#8217;s</h2>
<p>JSP&#8217;s, or Java Server Pages, are a mix between Java code &amp; client-side scripting. It allows you to mix the power of Java and your the models in your MVC framework with the simplicity of a HTML file. You probably see them all over the web, as they are quite effective, especially in larger businesses and universities.<br />
I have not personally gone that far into all the powers of JSP&#8217;s but enough to know that I like them. I am not going to try and write a tutorial but just point out a few things I use and a good tutorial or two.<br />
Now one of the simplest, but greatest is the server-side include of static content. This allows you to keep your web pages on the server side leaner and able to easily change base things like headers or footers.</p>
<pre><code>&lt;%@ include file="/include.html" %&gt;
</code></pre>
<p>Other useful things to know, if you need to get any parameters or need to mess with the request or response, they are simply called <code>request</code> and <code>response</code> in all JSP&#8217;s. So you could use a <code>request.getParameter("id");</code> for example.<br />
If you need to write anything to the page from within the Java code just throw a <code>out.println(String value);</code> or <code>out.print(String value)</code>.</p>
<p>For anything more than what I included check Google for some JSP tutorials or here is a good looking <a href="http://www.jsptut.com/">one</a>.</p>
<h2>Benefits</h2>
<p>I see there being several benefits of using Java as the language behind more complex applications because of it is an object oriented language. It being OO allows code to get so many more times complex. Now, in web development at least, a OO language is only as good as the database that supports it . I happened to be very lucky with Google App Engine as it was powered by a OO database allowing me to store some of my unique data types like &#8220;Student&#8221;, &#8220;Teacher&#8221;, &#8220;Course&#8221;, and &#8220;Schedule&#8221; in the database and retrieve it like it has been open since it was created. Most of the interface for this was provided in the JDO classes in <code>javax.JDO</code>.<br />
With this and a few classes for getting and selecting certain Students/Teachers/Courses, it was very easy to get exactly the results I want in a few lines of code in a JSP. And I know that in Python and PHP you can have classes and objects, but it&#8217;s just not the same as it is in Java. While Java can be pretty strict with it&#8217;s types and defining them, it in turn gives a lot of power to create awesome and dynamic applications for the end user.</p>
<h2>Finally</h2>
<p>As I have been reading in my &#8220;Clean Code&#8221; book, it is better to take longer and write software better the first time. Better being Javadoc&#8217;d and Object-Oriented. If you were to write it the other way, with say PHP or Python and have each script access the relational database, get the results, sort the results into the data you need, and output it correctly, that is so much code duplication. One script could be anywhere from 20% &#8211; 50% of the same code over and over, why not just write it great in the beginning in an OO way so the only code duplication you have is one or two lines to load the pre-written-by-you libraries that does all that work in one place, one time.</p>
<p>And sorry <a href="http://epicserve.com">Brent</a> I think I like Java Servlets &amp; JSP&#8217;s a wee bit more than Python/Django even though I think Django is a great framework and would love if it were written in Java instead, Python just isn&#8217;t as big and powerful as Java.</p>
		<div style="float:right;margin:10px 10px 0px 0px;">
			<a class="DiggThisButton DiggCompact" href="http://digg.com/submit?url=http%3A%2F%2Fjtmcgee.net%2Farchives%2F2010%2F08%2Fjava-the-power-language-for-web-or-console%2F&title=Java+%26%238211%3B+The+Power+Language+%28for+Web+or+Console%29" rel="news, programming"><span style="display:none">Recently, I wrote my first Facebook application. It was a small project, and it&#8217;s main purpose was to replace the common note entitled something like &#8220;Xth grade Schedule!!!&#8221; and it was designed to be more efficient for the end user. After inputting your schedule, you would go through and see who is in your classes </span></a>		
		</div>		
		]]></content:encoded>
			<wfw:commentRss>http://jtmcgee.net/archives/2010/08/java-the-power-language-for-web-or-console/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Social Schedules: My First Facebook Application</title>
		<link>http://jtmcgee.net/archives/2010/08/social-schedules-my-first-facebook-application/</link>
		<comments>http://jtmcgee.net/archives/2010/08/social-schedules-my-first-facebook-application/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 16:31:17 +0000</pubDate>
		<dc:creator>Jordan DeLoach</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[servlets]]></category>

		<guid isPermaLink="false">http://jtmcgee.net/?p=201</guid>
		<description><![CDATA[I have had this idea for several years, I had always thought the way of sharing schedules on Facebook was inefficient. At my high school I would have to go through 1200 notes, just to see who was in my class. My application, only available for MHS students, allows you to add your schedule (teachers and classes), ]]></description>
			<content:encoded><![CDATA[<p>I have had this idea for several years, I had always thought the way of sharing schedules on Facebook was inefficient. At my high school I would have to go through 1200 notes, just to see who was in my class.</p>
<p>My application, only available for MHS students, allows you to add your schedule (teachers and classes), see who&#8217;s in your class, comment and Facebook Like both your teachers and your hours.</p>
<p>It was written on the Google App engine, using an OO (object oriented) database with JSP&#8217;s and Core-servlets. I  will be writing a post about this stuff later.</p>
<p>For some who want to complain about how &#8220;bad&#8221; it is, I remind you this was about 8 days of work. However here is some of my attached code for it. Note: this is only SOME, not all.</p>
<p><a href="http://jtmcgee.net/wp-content/uploads/2010/08/socialschedulesSource.zip">socialschedulesSource</a> [zip]</p>
		<div style="float:right;margin:10px 10px 0px 0px;">
			<a class="DiggThisButton DiggCompact" href="http://digg.com/submit?url=http%3A%2F%2Fjtmcgee.net%2Farchives%2F2010%2F08%2Fsocial-schedules-my-first-facebook-application%2F&title=Social+Schedules%3A+My+First+Facebook+Application" rel="news, programming"><span style="display:none">I have had this idea for several years, I had always thought the way of sharing schedules on Facebook was inefficient. At my high school I would have to go through 1200 notes, just to see who was in my class. My application, only available for MHS students, allows you to add your schedule (teachers and classes), </span></a>		
		</div>		
		]]></content:encoded>
			<wfw:commentRss>http://jtmcgee.net/archives/2010/08/social-schedules-my-first-facebook-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java &#8211; From a PHP programmers perspective</title>
		<link>http://jtmcgee.net/archives/2010/07/java-from-a-php-programmers-perspective/</link>
		<comments>http://jtmcgee.net/archives/2010/07/java-from-a-php-programmers-perspective/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 19:03:29 +0000</pubDate>
		<dc:creator>Jordan DeLoach</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://jtmcgee.net/?p=179</guid>
		<description><![CDATA[Java has intimidated me for years mostly because all you have to do to just create a "Hello World", now I come to share about Java and a few tips so it doesn't seem so intimidating]]></description>
			<content:encoded><![CDATA[<p>Java has one heck of a complex &#8220;Hello World&#8221;, intimidating many away from it. However as I had no choice but to learn it as it was the language of 7/8 weeks of my summer programming class at K-State I had to start using it.</p>
<p>I do not see the &#8220;Hello World&#8221; that intimidating anymore, for the single reason is that I know what and why all those words are there at the beginning of the file, and the best way for you to get into it is to understand it.</p>
<pre><code>public class HelloWorld {

    public static void main(String[] args) {

        System.out.println("Hello World");

    }

}
</code></pre>
<p>The first line is public class HelloWorld. <code>public</code> simply means that from anywhere and by anybody this class can be called. The <code>class</code> simply means that it is a class, as all beginning files in Java will be. The <code>HelloWorld</code> I think should be pretty easy to understand. The second line, <code>public static void main(String[] args)...</code> is a bit more complicated. The <code>public</code> meaning that this method can be called from outside this class. <code>static</code> means that this method can be called without initializing the whole class as an object. <code>void</code> simply means that it returns no value, as methods in the future might, like <code>int</code> or <code>boolean</code>. The next part, <code>main</code> means that this method should be run whenever this program is run, for any Java program to run, there must be a main method. <code>String[] args</code> is probably the strangest part, <code>String</code> is a line of characters, like a word, sentence, anything really. In Java, this <code>[]</code> mean an array, so <code>String[] args</code> means that for it&#8217;s  parameters it takes an array of Strings. However you won&#8217;t deal with this for a while in your Java career. <code>System.out.println...</code> breaks down to <code>System</code>, which is a package (a folder full of classes) and <code>out</code> is a class within the package that deals with output. Finally <code>println</code> is a method (function) which prints the line.</p>
<p><span id="more-179"></span></p>
<h2>Understanding Strings</h2>
<p>Ever wondered why in Java, you see things like <code>int</code> and <code>double</code> and they are lower-cased, but <code>String</code> is capitalized? All class names in Java are capitalized, and so must <code>String</code> be.</p>
<pre><code>String myname = "Jordan";
</code></pre>
<p>You are creating a new object (unique version of a class) of the class <code>String</code>. With strings you can do so much more than a primitive type (<code>int</code>, <code>boolean</code>, <code>short</code>, etc.). As myname is an object, it has methods that uniquely work with it.</p>
<pre><code>System.out.print(myname.length()); // prints number of chars in myname

System.out.print(myname.charAt(4)); // prints a' for the 5th char in it
</code></pre>
<p>There are many more options, but that will do for examples of how this is an amazing way to store Strings.</p>
<h2>More on Classes and Objects</h2>
<p>To help you differentiate between classes and objects, I offer the following example.</p>
<pre><code>MathOps.factorial(5); // uses the class MathOps and static method factorial()

MathOps math = new MathOps();

math.factorial(5); // uses the unique object

// another example that shows benefits

ShoppingCart cart1 = new ShoppingCart();

ShoppingCart cart2 = new ShoppingCart();

cart1.add("blanket");

cart1.add("shampoo");

cart2.add("ice cream");

cart1.remove("shampoo");

System.out.println(cart1.list());

System.out.println(cart2.list());
</code></pre>
<p>Yes, I have not actually made any of those classes, but those were just for examples, see with the <code>ShoppingCart</code> example, you saw exactly the benefits of the different objects as opposed to storing them in one big class where it would get all mixed up together.</p>
<h2>User Input &amp; Reading Files</h2>
<p>It is quite strange, but in Java these are EXTREMELY similar so they shall be grouped together.  To read user input in Java, one must first look for it.</p>
<pre><code>Scanner s = new Scanner(System.in);
</code></pre>
<p><code>Scanner</code> is a great class. I used to oppose it, but now seeing it&#8217;s virsitility, it&#8217;s a great class. Anyways what this says is create a new object named &#8220;s&#8221; that reads System input. To get a line of input is as easy as <code>s.nextLine();</code></p>
<pre><code>System.out.print("Please enter your name: ");

String name = s.nextLine();

System.out.println("Hello " + name);
</code></pre>
<p>Now the reason it was grouped with reading files is because if you want to ready a file, just tell <code>Scanner</code> so.</p>
<pre><code>Scanner s = new Scanner(new File("filename.txt"));

while(s.hasNext()) { // hasNext() returns true as long is there more lines

    System.out.println(s.nextLine());

}
</code></pre>
<p>That would print out every line of the file. It is just like reading input, just a different start.</p>
<h2>Loops and If&#8217;s</h2>
<p>If your familiar with PHP this is extremely easy and only requires a paragraph or two.</p>
<pre><code>boolean a  = true;

if(a) {

    // then do this

} else if(!a) {

    // then do this, notice the space between else and if not elseif

} else {

    // else do this

}

if(a) {

    // one line only can use this format

} else {

    // same for loops too

}

for(int i = 0; i &lt; 10; i++) // you can use {} if you want

    System.out.println(i);

while(true) {

    // infinite loop

}
</code></pre>
<h2>Good Things to Know</h2>
<pre><code>Integer.parseInt("123"); // can take a string (like user input) and convert it

Double.parseDouble("2.3"); //ditto

String b = "hey";

b.charAt(0); // gets the a (parameter) character from a string
</code></pre>
<h2>Conclusion</h2>
<p>With just that basic two to three page intro, you should be pretty set. Using just the things desribed here, you can do just about anything text-based. If you want to start working with GUI&#8217;s you&#8217;ll have to go to google and find a nice tutorial on how to do that. It&#8217;s more work, but it is just an extension of this sort of thing.</p>
<h2>Glossary</h2>
<p>Method (Java) ~ Function (PHP)</p>
<p>Int ~ Medium ranged integers</p>
<p>Double ~ For numbers with a decimal</p>
<p>Boolean ~ True or false</p>
		<div style="float:right;margin:10px 10px 0px 0px;">
			<a class="DiggThisButton DiggCompact" href="http://digg.com/submit?url=http%3A%2F%2Fjtmcgee.net%2Farchives%2F2010%2F07%2Fjava-from-a-php-programmers-perspective%2F&title=Java+%26%238211%3B+From+a+PHP+programmers+perspective" rel="news, programming"><span style="display:none">Java has intimidated me for years mostly because all you have to do to just create a "Hello World", now I come to share about Java and a few tips so it doesn't seem so intimidating</span></a>		
		</div>		
		]]></content:encoded>
			<wfw:commentRss>http://jtmcgee.net/archives/2010/07/java-from-a-php-programmers-perspective/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

