<?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>.::anti-abuse.com::. &#187; development</title>
	<atom:link href="http://security.anti-abuse.com/index.php/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://security.anti-abuse.com</link>
	<description>Security Revealed</description>
	<lastBuildDate>Sun, 05 Feb 2012 08:49:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Come see what’s cooking in the Arduino kitchen</title>
		<link>http://feedproxy.google.com/~r/hackaday/LgoM/~3/H6pXZM6cldg/</link>
		<comments>http://feedproxy.google.com/~r/hackaday/LgoM/~3/H6pXZM6cldg/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 14:02:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[arduino hacks]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=51156</guid>
		<description><![CDATA[The crew that brought you the Arduino is always hard at work trying to bring the community closer together and to foster collaborative development. They recently rolled out a new feature on their site that is sure to be of interest to Arduino veterans and neophytes alike. Arduino Labs is a platform which the team [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&#38;blog=4779443&#38;post=51156&#38;subd=hackadaycom&#38;ref=&#38;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-51159" title="arduino_labs" src="http://hackadaycom.files.wordpress.com/2011/08/arduino_labs.jpg?w=470&#038;h=338" alt="arduino_labs" width="470" height="338" /></p>
<p>The crew that brought you the Arduino is always hard at work trying to bring the community closer together and to foster collaborative development. They recently rolled out <a href="http://labs.arduino.cc/" >a new feature on their site</a> that is sure to be of interest to Arduino veterans and neophytes alike.</p>
<p>Arduino Labs is a platform which the team plans on using as an incubator of sorts, for projects that are underway, but not fully baked. Currently, they have highlighted two in-progress initiatives, including the Arduino Mega ADK, as well as a GSM/GPRS shield that the team has been developing in collaboration with Telefonica I+D.</p>
<p>As of right now, the site looks to be a one-way information outlet for the Arduino team to the community, but they stress that their aim is to create a more open development process within the Arduino project. While there is no official statement on the matter, we hope that the site will eventually allow members of the community to offer both their feedback and lend manpower to forthcoming projects.</p>
<p>[via <a href="http://www.adafruit.com/blog/2011/08/01/arduino-labs/" >Adafruit blog</a>]</p>
<p>Filed under: <a href='http://hackaday.com/category/arduino-hacks/'>arduino hacks</a>, <a href='http://hackaday.com/category/news/'>news</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/51156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/51156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/51156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/51156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/51156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/51156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/51156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/51156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/51156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/51156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/51156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/51156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/51156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/51156/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=51156&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" /></p>
<p><a href="http://feedads.g.doubleclick.net/~a/NCddMXP7ypcWiSrqfHilkFJb4K4/0/da"><img src="http://feedads.g.doubleclick.net/~a/NCddMXP7ypcWiSrqfHilkFJb4K4/0/di" border="0" ismap="true"></img></a><br/><br />
<a href="http://feedads.g.doubleclick.net/~a/NCddMXP7ypcWiSrqfHilkFJb4K4/1/da"><img src="http://feedads.g.doubleclick.net/~a/NCddMXP7ypcWiSrqfHilkFJb4K4/1/di" border="0" ismap="true"></img></a></p>
<p><img src="http://feeds.feedburner.com/~r/hackaday/LgoM/~4/H6pXZM6cldg" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/08/03/come-see-whats-cooking-in-the-arduino-kitchen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/08/arduino_labs.jpg" length="" type="" />
		</item>
		<item>
		<title>LED build monitor helps keep an eye on your servers</title>
		<link>http://feedproxy.google.com/~r/hackaday/LgoM/~3/9EkPx3BnLOI/</link>
		<comments>http://feedproxy.google.com/~r/hackaday/LgoM/~3/9EkPx3BnLOI/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 21:02:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[atmega]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[led]]></category>
		<category><![CDATA[led hacks]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[status]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=40135</guid>
		<description><![CDATA[In his line of work, Hackaday reader [Pedantite] often has to monitor the build status of several continuous integration servers throughout the day. One afternoon, he got the idea to install a set of stop lights in the office in order to monitor the status of the servers, but filed it away as a &#8220;wouldn&#8217;t [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&#38;blog=4779443&#38;post=40135&#38;subd=hackadaycom&#38;ref=&#38;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-40136" title="build_status_board" src="http://hackadaycom.files.wordpress.com/2011/04/build_status_board.jpg?w=470&#038;h=352" alt="build_status_board" width="470" height="352" /></p>
<p>In his line of work, Hackaday reader [Pedantite] often has to monitor the build status of several continuous integration servers throughout the day. One afternoon, he got the idea to install a set of stop lights in the office in order to monitor the status of the servers, but filed it away as a &#8220;wouldn&#8217;t it be cool if&#8230;&#8221; project.</p>
<p>After some time had passed, he was bitten by the idea bug again and decided he would<a href="http://bytecruft.blogspot.com/2011/04/build-system-status-monitor.html" > build a physical device to display the status of his build processes</a>. This time around, he brainstormed on a smaller scale and the result is the &#8220;Indictron&#8221; you see above.</p>
<p>He built a simple LED board made up of four rows of four LEDs to display the build processes. Different LEDs are lit depending on the project&#8217;s current build status as well as the results of the previous build. The board uses an ATmega88, and interfaces with a compiler watchdog application using a virtual USB package made specifically for AVR micro controllers.</p>
<p>The end result is a simple, yet useful status board that &#8220;just works&#8221;. He does not seem to have code or schematics posted on his site at the moment, but we&#8217;re pretty sure he would share them upon request.</p>
<p>If you&#8217;re interested in a bit more of [Pedantite's] work, check out his <a href="http://hackaday.com/2011/04/06/keep-fun-in-check-with-a-parental-count-down-timer/" >&#8220;Good Times&#8221; parental timer</a> we featured last week.</p>
<p>Filed under: <a href='http://hackaday.com/category/led-hacks/'>led hacks</a>, <a href='http://hackaday.com/category/software-development/'>Software Development</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/40135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/40135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/40135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/40135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/40135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/40135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/40135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/40135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/40135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/40135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/40135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/40135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/40135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/40135/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=40135&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" /></p>
<p><a href="http://feedads.g.doubleclick.net/~a/WXKyqMeP71JI5iUgUEEJViV1N8w/0/da"><img src="http://feedads.g.doubleclick.net/~a/WXKyqMeP71JI5iUgUEEJViV1N8w/0/di" border="0" ismap="true"></img></a><br/><br />
<a href="http://feedads.g.doubleclick.net/~a/WXKyqMeP71JI5iUgUEEJViV1N8w/1/da"><img src="http://feedads.g.doubleclick.net/~a/WXKyqMeP71JI5iUgUEEJViV1N8w/1/di" border="0" ismap="true"></img></a></p>
<p><img src="http://feeds.feedburner.com/~r/hackaday/LgoM/~4/9EkPx3BnLOI" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/04/12/led-build-monitor-helps-keep-an-eye-on-your-servers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/04/build_status_board.jpg" length="" type="" />
		</item>
		<item>
		<title>What Development Board to Use? (Part Two)</title>
		<link>http://feedproxy.google.com/~r/hackaday/LgoM/~3/2ns8btG4Iko/</link>
		<comments>http://feedproxy.google.com/~r/hackaday/LgoM/~3/2ns8btG4Iko/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 22:03:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[board]]></category>
		<category><![CDATA[cpld]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[fpga]]></category>
		<category><![CDATA[Leaf]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[maple]]></category>
		<category><![CDATA[mbed]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[nxp]]></category>
		<category><![CDATA[parallax]]></category>
		<category><![CDATA[parts]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[propeller]]></category>
		<category><![CDATA[Renesas]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[RXN]]></category>
		<category><![CDATA[Teensy]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=34682</guid>
		<description><![CDATA[We asked for responses to our last Development Board post, and you all followed through. We got comments, forum posts, and emails filled with your opinions. Like last time, there is no way we could cover every board, so here are a few more that seemed to be popular crowd choices. Feel free to keep [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&#38;blog=4779443&#38;post=34682&#38;subd=hackadaycom&#38;ref=&#38;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-34940" title="Prime2" src="http://hackadaycom.files.wordpress.com/2011/02/prime2.png?w=470&#038;h=245" alt="" width="470" height="245" /></p>
<p>We asked for responses to our last Development Board post, and you all followed through. We got comments, forum posts, and emails filled with your opinions. Like <a href="http://hackaday.com/2011/02/01/what-development-board-to-use/">last time</a>, there is no way we could cover every board, so here are a few more that seemed to be popular crowd choices. Feel free to keep sending us your favorite boards, we may end up featuring them at a later date!</p>
<p><span id="more-34682"></span><strong>The Popular:</strong></p>
<p><img class="alignnone size-full wp-image-34941" title="Propeller Platform USB_01" src="http://hackadaycom.files.wordpress.com/2011/02/propeller-platform-usb_01.jpg?w=470&#038;h=100" alt="" width="470" height="100" /></p>
<p><em><strong>Parallax Propeller: </strong></em>We heard the loudest cries from the Parallax fans out there. The Propeller is a unique chip, in that it contains 8 cores called cogs which each take turns executing separate code. This design allows for disregarding of interrupt style programming in favor of assigning each core a specific task. There are a number of boards available, including <a href="http://hackaday.com/2010/10/19/propeller-platform-prototyping-board-gets-an-upgrade/">Gadget Gangster&#8217;s platform</a> as well as boards from <a href="http://www.parallax.com/Store/Microcontrollers/PropellerAccessories/tabid/786/ProductID/423/List/0/Default.aspx?SortField=ProductName,ProductName">Parallax</a>. Thinking in terms of 8 cores rather than one may present a learning curve to some embedded programmers, though there are a number of code examples to pull from online to get beginners on their feet.</p>
<p><img class="alignnone size-full wp-image-34942" title="teensypp_pins" src="http://hackadaycom.files.wordpress.com/2011/02/teensypp_pins.jpg?w=470&#038;h=100" alt="" width="470" height="100" /></p>
<p><em><strong>Atmel&#8217;s AT90USB and AT32U4 based boards: </strong></em>Atmel&#8217;s AT90USB and ATmega32U4 chips are common on low part count boards like the <a href="http://www.pjrc.com/teensy/">Teensy/Teensy++</a> because of their built-in hardware USB support, which means no FTDI or equivalent chip required. These development boards tend to be low-cost, easy to implement on a breadboard, and in cases such as the Teensy, are Arduino IDE <a href="http://www.pjrc.com/teensy/teensyduino.html">compatible</a>. The chips these boards are based on are also an excellent place for those trying their hand out at microcontroller circuit design for the first time because of their simplicity and low hardware requirements.</p>
<p><img class="alignnone size-full wp-image-34943" title="PIC32MX460512L" src="http://hackadaycom.files.wordpress.com/2011/02/pic32mx460512l.jpg?w=470&#038;h=100" alt="" width="470" height="100" /></p>
<p><strong><em>Microchip&#8217;s PIC line: </em></strong>Somehow, we managed to leave the entire Microchip crowd in the cold last time. A popular set of microcontrollers with a similar market segment to Atmel&#8217;s chips, these chips vary from the low-end and low-cost 8-bit series to the higher end 16 and 32-bit models. We received a <a href="http://www.microchipdirect.com/productsearch.aspx?Keywords=DM164127">go﻿﻿od</a> <a href="http://www.mikroe.com/eng/products/view/318/pic32mx4-multimedia-board/#mmb_onboard">number</a> <a href="http://www.etteam.com/product2009/ET-PIC/ET-PIC32MX460F512L.html">of</a> <a href="http://www.mikroe.com/">development</a> <a href="http://www.sparkfun.com/products/9645">board</a> <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1406&amp;dDocName=en538340">recommendations</a>, all ranging in price, features, and ease of use. We&#8217;ll rely on comments and forum posts to help convince you what specific model to try.</p>
<p>[edit: Added the PicKit3 as per popular request]</p>
<p><strong></strong><strong>The Powerful:</strong></p>
<p><strong><img class="alignnone size-full wp-image-34944" title="mbed_1" src="http://hackadaycom.files.wordpress.com/2011/02/mbed_1.jpg?w=470&#038;h=100" alt="" width="470" height="100" /><br />
</strong></p>
<p><em><strong>mbed: </strong></em>Possibly one of the most popular hobby development boards for ARM&#8217;s Cortex-M3 chip, the mbed features a similar footprint to the Teensy, but with a huge jump forward in power. The mbed includes hardware for a number of peripherals, including support for ethernet with the addition of an RJ-45 port. The major difference between the mbed and other similar boards is the entirely web-based IDE. We have <a href="http://hackaday.com/2009/11/21/review-mbed-nxp-lpc1768-microcontroller/">previously reviewed</a> the <a href="http://en.wikipedia.org/wiki/Mbed_microcontroller">mbed</a>, so for more details be sure to check it out.</p>
<p><img class="alignnone size-full wp-image-34945" title="61436_fig1" src="http://hackadaycom.files.wordpress.com/2011/02/61436_fig1.jpg?w=470&#038;h=100" alt="" width="470" height="100" /></p>
<p><strong></strong><strong><em>Renesas&#8217; RX62N RDK: </em></strong>Whenever a company <a href="http://hackaday.com/2010/11/14/renesas-rx-design-contest-110k-of-cash-and-prizes/">gives away</a> development boards for free, the community often jumps on the offer. Rather than the normal free barebones boards though, the RDK has a good number of on board peripherals, including an Ethernet port as well as a 3 axis accelerometer. Unfortunately you can&#8217;t get one for free anymore (at least not this contest), but from all we have heard from our readers, it may be worth <a href="http://am.renesas.com/products/tools/introductory_evaluation_tools/renesas_demo_kits/yrdkrx62n/yrdkrx62n.jsp">investing in</a> anyway.</p>
<p><img class="alignnone size-full wp-image-34946" title="4613181199_33a31ca4ab_b" src="http://hackadaycom.files.wordpress.com/2011/02/4613181199_33a31ca4ab_b.jpg?w=470&#038;h=100" alt="" width="470" height="100" /></p>
<p><em><strong>The Maple: </strong></em>The <a href="http://hackaday.com/2010/05/24/maple-r3-now-shipping/">Maple</a> from LeafLabs is an excellent example of the effect open hardware tools such as the Arduino have had on the hobbyist environment. Featuring an ARM Cortex-M3, the Maple has plenty of processing power and also can brag that it has the same header layout as the Arduino. This means that almost all commercially available Arduino shields will work on the Maple, a major selling point for anyone who has invested into a well stocked Arduino setup but needs an injection of performance.</p>
<p><strong>Bonus Points:</strong></p>
<p><strong><img class="alignnone size-full wp-image-34947" title="wrt54ghr5" src="http://hackadaycom.files.wordpress.com/2011/02/wrt54ghr5.png?w=470&#038;h=100" alt="" width="470" height="100" /><br />
</strong></p>
<p><strong></strong><em><strong>OpenWRT based routers: </strong></em>Often, projects need to be networked either by wire or wirelessly to operate as desired. Rather than buying a high-end development board with ethernet or Wi-Fi built-in, many readers suggested buying (or salvaging) any one of a number of low-cost wireless routers, and installing a custom linux based firmware on them. These boards often tend to have UARTs or USB ports originally meant for debugging available for expansion with sensors or other low-end microcontrollers. A hack in the true sense of the word, we applaud this sort of creativity. Some popular firmwares to check out would include <a href="http://www.dd-wrt.com/site/index">DD-WRT</a>, <a href="http://openwrt.org/">OpenWRT</a>, and the <a href="http://www.polarcloud.com/tomato">Tomato firmware</a>. Be sure to make sure support exists for your device before you go buying anything though.</p>
<p><img class="alignnone size-full wp-image-34948" title="DE2_1280" src="http://hackadaycom.files.wordpress.com/2011/02/de2_1280.jpg?w=470&#038;h=100" alt="" width="470" height="100" /></p>
<p><em><strong>FPGA boards: </strong></em>When we set out to cover development boards, we had microcontrollers in mind. However when it comes to signal processing, custom high-speed logic, or flexibility, FPGAs are an excellent choice. The two major players for hobbyists these days are Xilinx with their <a href="http://www.xilinx.com/onlinestore/s6_boards.htm">Spartan</a> line, and Altera with their <a href="http://www.altera.com/education/univ/materials/boards/de2/unv-de2-board.html">Cyclone</a> line. Both companies offer their IDE for free<strong>, </strong>and it comes down to personal preference when choosing which way to go. Both companies also support SoC designs to implement virtual microcontrollers on the FPGA, which adds an additional layer of flexibility for any hobbyist or engineer. Chances are, most hobbyists will not need the performance of cutting edge FPGAs (or <a href="http://en.wikipedia.org/wiki/Complex_programmable_logic_device">CPLD</a>s), so keep an eye out for older development boards on sale, or development boards made by third parties.</p>
<p><img class="alignnone size-full wp-image-34949" title="breadboard_atmel_attiny13.preview" src="http://hackadaycom.files.wordpress.com/2011/02/breadboard_atmel_attiny13-preview.jpg?w=470&#038;h=100" alt="" width="470" height="100" /></p>
<p><em><strong>Build your own: </strong></em>Although it may appear as a sort of &#8220;Get off my lawn&#8221; answer to our question, there is a lot to be said about building a development board from scratch. These days, many 8-bit or 32-bit microcontrollers require few if any external components to run in a basic mode, and can be combined with a JTAG or FTDI cable for programming and communication. There are countless tutorials on using perf-board or <a href="http://hackaday.com/2008/07/28/how-to-etch-a-single-sided-pcb/">etching a board</a> to make a custom circuit, and the experience is invaluable for breaking away from high cost development boards in simple projects<strong>.</strong></p>
<p>Filed under: <a href='http://hackaday.com/category/parts/'>parts</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/34682/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/34682/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/34682/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/34682/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/34682/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/34682/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/34682/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/34682/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/34682/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/34682/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/34682/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/34682/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/34682/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/34682/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=34682&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" /></p>
<p><a href="http://feedads.g.doubleclick.net/~a/gYrshAeSrrEYEMDyyyJoT87jrwk/0/da"><img src="http://feedads.g.doubleclick.net/~a/gYrshAeSrrEYEMDyyyJoT87jrwk/0/di" border="0" ismap="true"></img></a><br/><br />
<a href="http://feedads.g.doubleclick.net/~a/gYrshAeSrrEYEMDyyyJoT87jrwk/1/da"><img src="http://feedads.g.doubleclick.net/~a/gYrshAeSrrEYEMDyyyJoT87jrwk/1/di" border="0" ismap="true"></img></a></p>
<p><img src="http://feeds.feedburner.com/~r/hackaday/LgoM/~4/2ns8btG4Iko" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/02/14/what-development-board-to-use-part-two/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/de2_1280.jpg" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/wrt54ghr5.png" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/61436_fig1.jpg" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/4613181199_33a31ca4ab_b.jpg" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/mbed_1.jpg" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/pic32mx460512l.jpg" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/breadboard_atmel_attiny13-preview.jpg" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/teensypp_pins.jpg" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/propeller-platform-usb_01.jpg" length="" type="" />
<enclosure url="" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/prime2.png" length="" type="" />
		</item>
		<item>
		<title>What Development Board to Use?</title>
		<link>http://feedproxy.google.com/~r/hackaday/LgoM/~3/CZwhsTdrqeU/</link>
		<comments>http://feedproxy.google.com/~r/hackaday/LgoM/~3/CZwhsTdrqeU/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 16:30:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Atmel]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[microcontroller]]></category>
		<category><![CDATA[parts]]></category>
		<category><![CDATA[proto]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[STMicro]]></category>
		<category><![CDATA[ti]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=33875</guid>
		<description><![CDATA[Here at Hackaday, we see microcontroller based projects in all states of completion. Sometimes it makes the most sense to design systems from the ground up, and other times when simplicity or a quick project completion is desired, pre-built system boards are a better choice. We have compiled a list of boards that we commonly [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&#38;blog=4779443&#38;post=33875&#38;subd=hackadaycom&#38;ref=&#38;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-33891" title="Title" src="http://hackadaycom.files.wordpress.com/2011/02/title.jpg?w=470&#038;h=276" alt="" width="470" height="276" /></p>
<p>Here at Hackaday, we see microcontroller based projects in all states of completion. Sometimes it makes the most sense to design systems from the ground up, and other times when simplicity or a quick project completion is desired, pre-built system boards are a better choice. We have compiled a list of boards that we commonly see in your submitted projects, split up by price range and with a little detail for reference.</p>
<p>After reading our list, sound off in the comments or on <a href="http://forums.hackaday.com/viewtopic.php?f=2&amp;t=142">this forum post</a>, and we may include your board in a follow-up guide at a later date. We will also be giving away 10 Hackaday stickers to the most insightful, the most original, and most useful advice given on the forum, so if you haven&#8217;t registered yet, now would be a perfect time. Winners of the sticker giveaway will be selected from the forum thread, and the final decision for prizes will be judged by the wit and whim of the Hackaday writing team. More prize details to follow in the thread. Read on for our guide based on past project submissions.</p>
<p><span id="more-33875"></span></p>
<p><img class="alignnone size-full wp-image-33880" title="Launchpad" src="http://hackadaycom.files.wordpress.com/2011/02/launchpad.jpg?w=470&#038;h=100" alt="" width="470" height="100" /><br />
<img class="alignnone size-full wp-image-33881" title="STM32VLDISCOVERY" src="http://hackadaycom.files.wordpress.com/2011/02/stm32vldiscovery.jpg?w=470&#038;h=100" alt="" width="470" height="100" /><br />
<img class="alignnone size-full wp-image-33882" title="arduino-diecimila" src="http://hackadaycom.files.wordpress.com/2011/02/arduino-diecimila.jpg?w=470&#038;h=100" alt="" width="470" height="100" /><br />
<strong>The Cheap ($0-$50):</strong></p>
<p>When it comes to cheap boards, users can expect a simple breakout board, usually with some debugging facilities and minimal extra components. These boards tend to be aimed at hobbyists and the education crowd rather than companies who can afford full featured development setups for their engineers. Unfortunately, boards that come directly from manufacturers tend to have locked down or overly simplified IDEs or debugging software, though low price points often inspire the open source communities to write their own to take advantage of all the features.</p>
<ul>
<li><em><strong>TI&#8217;s MSP430 Launchpad</strong>:</em> Coming in at $4.30, <a href="http://hackaday.com/2010/06/22/ti-makes-a-big-bid-for-the-hobby-market/">TI&#8217;s Launchpad</a> board is definitely a bargain. For your money, you get a set of 16-bit MSP430 processors, a mini-USB debugger and programming interface, and a set of Windows IDEs to choose from. Not much more to write home about, but we have featured a number of projects with this family of microcontrollers running the show.</li>
<li><strong><em>STMicroelectronic&#8217;s Discovery: </em></strong>Costing you a paltry $11.85, This 32-bit ARM processor may be one of the best performance to cost values. Similar to the Launchpad, the <a href="http://hackaday.com/2010/10/12/arm-prototyping-on-the-cheap-with-stm32-discovery/">Discovery</a> has a mini-USB interface, a breakaway programmer and debugger, and a few locked down IDEs to select. For students or professionals looking for experience with the ARM architecture, this Cortex-M3 based system would be a great place to start.</li>
<li><strong><em>The Arduino Family:</em></strong> Needing no introduction, these 8-bit AVR based systems have been displayed by us numerous times. Due to an open source hardware and software design, these boards are available for as low as $20 or so for <a href="http://hackaday.com/2011/01/19/arduino-the-documentary/">Arduino</a> Compatable clones, or any price range up depending on included peripherals. Because of the simple IDE and coding environment familiar to anyone familiar with C, C++, or Java, the Arduino is a common choice for beginners, non-engineering types, and professionals alike.</li>
</ul>
<p><img class="alignnone size-full wp-image-33885" title="ArduinoMega" src="http://hackadaycom.files.wordpress.com/2011/02/arduinomega.jpg?w=470&#038;h=100" alt="" width="470" height="100" /><br />
<img class="alignnone size-full wp-image-33886" title="chumbyhandbig" src="http://hackadaycom.files.wordpress.com/2011/02/chumbyhandbig.jpg?w=470&#038;h=100" alt="" width="470" height="100" /><br />
<img class="alignnone size-full wp-image-33887" title="ti_beagle_board_top2" src="http://hackadaycom.files.wordpress.com/2011/02/ti_beagle_board_top2.jpg?w=470&#038;h=100" alt="" width="470" height="100" /><br />
<strong>Mid-Range Boards ($50-$150):</strong></p>
<p>For a little more money, more can be expected from a development board. Often featuring higher I/O pin counts, more complex interfaces such as host USB ports, Ethernet, or Video-Out, these boards are a great place for a little computational and functional muscle. However, with a higher cost, it is more difficult to just throw one of these boards at any one-off project. More costly boards are often supported better as well, because they are used by engineers who will decide on important purchasing decisions. This area is also a transition area from more hardy microcontroller type boards into the more powerful microprocessor type systems (such as shifting from the Cortex-M to the Cortex-A series of ARM processors).</p>
<ul>
<li><em><strong>The Arduino Mega: </strong></em>For all the same reasons as the original Arduino, the <a href="http://arduino.cc/en/Main/ArduinoBoardMega">Arduino Mega</a> has its place in a prototyping or development environment. For a bit more money than the original, extra code space, processing power, and I/O pins are gained, with the same comfortable, familiar, and similar development tools. The Arduino Mega runs at $65, which makes for a costly 8-bit system.</li>
<li><strong><em>The Chumby Hacking Board:</em></strong> An interesting example of a product going from production to prototyping as an afterthought, <a href="http://wiki.chumby.com/mediawiki/index.php/Chumby_hacker_board">this board</a> is based on the guts of the Chumby One, featuring a 32-bit Freescale i.MX ARM processor at 454 MHz. This system has video out, as well as a trio of USB ports for all the peripherals you can find or write your own drivers for. The Chumby Hacking board clocks in at a reasonable $90 or so, though supplies seem to be dwindling, so act fast if interested.</li>
<li><strong><em>The Original BeagleBoard:</em></strong> At the top of the price range, the <a href="http://beagleboard.org/hardware">BeagleBoard</a> (Revision C4) features a 600 MHz Cortex-A8 ARM processor capable of running a number of Linux systems, including Angstrom and Ubuntu. Designed to interface with cool toys like touchscreens, this board also features a powerful DSP chip for crunching numbers, as well as processing video and sound. For a newly discounted rate of $125, this compact powerhouse could be yours.</li>
</ul>
<p><img class="alignnone size-full wp-image-33888" title="xM" src="http://hackadaycom.files.wordpress.com/2011/02/xm.jpg?w=470&#038;h=100" alt="" width="470" height="100" /><br />
<img class="alignnone size-full wp-image-33889" title="Panda" src="http://hackadaycom.files.wordpress.com/2011/02/panda.jpg?w=470&#038;h=100" alt="" width="470" height="100" /></p>
<p><strong>The Upper Crust ($150+)</strong></p>
<p>At this price range, these boards often contain ARM processors from the Cortex-A series, and have more in common with high-end smartphones than the microcontrollers usually seen on Hackaday and in day-to-day life. Boards like these are a real investment, and often cost and perform similar to many older or low-end PCs and netbooks at a considerably more efficient performance to power use ratio in most cases. These boards tend to run Linux-based operating systems, including Android as well as others.</p>
<ul>
<li><strong><em>The BeagleBoard xM: </em></strong>Coming in at just around $150, this <a href="http://beagleboard.org/hardware-xM">big brother</a> to the first BeagleBoard adds parts such as onboard Ethernet, an additional 2 USB ports, and a bump to a 1 GHz processor. Although the MSRP is listed at $149, a high demand has pushed the cost well above that at places where stocks are even available. Because of a strong similarity to the original BeagleBoard, the existing community is strong, and full of examples and guides to get the board going</li>
<li><strong><em>The PandaBoard: </em></strong>With features as far away from an 8-bit microcontroller as imaginable, this board comes dressed <a href="http://pandaboard.org/">to the nines</a> featuring a dual-core 1 GHz processor capable of handling 1080P video stream. We realize this is probably out of the ballpark of just about any &#8220;hack&#8221; level project at $174, but we know there are some engineers out there very excited to see this.</li>
</ul>
<p><strong>In Summary:</strong></p>
<p>We know that brand and experience preference can be a strong motivator, so be productive with your advice and sound off in our forum with your picks for our follow-up post(s). We will do our best to wrap up all the information you provide into a more definitive, and hopefully even more informative guide for beginners and professionals alike.</p>
<p>Filed under: <a href='http://hackaday.com/category/parts/'>parts</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/33875/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/33875/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/33875/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/33875/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/33875/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/33875/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/33875/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/33875/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/33875/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/33875/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/33875/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/33875/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/33875/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/33875/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=33875&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" /></p>
<p><a href="http://feedads.g.doubleclick.net/~a/hIIi98shyd-Rts0faTiZUpJD1K0/0/da"><img src="http://feedads.g.doubleclick.net/~a/hIIi98shyd-Rts0faTiZUpJD1K0/0/di" border="0" ismap="true"></img></a><br/><br />
<a href="http://feedads.g.doubleclick.net/~a/hIIi98shyd-Rts0faTiZUpJD1K0/1/da"><img src="http://feedads.g.doubleclick.net/~a/hIIi98shyd-Rts0faTiZUpJD1K0/1/di" border="0" ismap="true"></img></a></p>
<p><img src="http://feeds.feedburner.com/~r/hackaday/LgoM/~4/CZwhsTdrqeU" height="1" width="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/02/01/what-development-board-to-use/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/title.jpg" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/launchpad.jpg" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/stm32vldiscovery.jpg" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/arduino-diecimila.jpg" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/arduinomega.jpg" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/chumbyhandbig.jpg" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/ti_beagle_board_top2.jpg" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/xm.jpg" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2011/02/panda.jpg" length="" type="" />
		</item>
		<item>
		<title>C Sharp Development 101 – Part 2: Toolbox Controls</title>
		<link>http://hackaday.com/2010/10/15/c-sharp-development-101-part-2-toolbox-controls/</link>
		<comments>http://hackaday.com/2010/10/15/c-sharp-development-101-part-2-toolbox-controls/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 19:00:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[application]]></category>
		<category><![CDATA[c sharp]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[toolbox]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=28984</guid>
		<description><![CDATA[In this tutorial we are going to start finding out more about the toolbox we utilized in the previous tutorial.  The Controls available in the toolbox are quite extensive and allow users to simplify a variety of everyday tasks such as manually creating and instantiating a textbox on a windows form.  At the end of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&#38;blog=4779443&#38;post=28984&#38;subd=hackadaycom&#38;ref=&#38;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div style="text-align:center;"><img class="alignnone size-full wp-image-29355" title="ctools" src="http://hackadaycom.files.wordpress.com/2010/10/ctools.jpg?w=457&#038;h=120" alt="" width="457" height="120" /></div>
<div style="text-align:left;">In this tutorial we are going to start finding out more about the toolbox we utilized in the <a href="http://bit.ly/CSharp1011">previous tutorial</a>.  The Controls available in the toolbox are quite extensive and allow users to simplify a variety of everyday tasks such as manually creating and instantiating a textbox on a windows form.  At the end of this tutorial you should be comfortable finding Controls in the Visual Studio Toolbox, alter or produce code to link tools together using event handlers and ultimately get a better sense of Visual Studio, it’s layout and how to easily navigate it.</div>
<div style="text-align:left;"><span id="more-28984"></span></div>
<div style="text-align:left;">
<p>To start we are going to create a new Windows Forms Application project in a new solution that will be called ApplicantRegistration.  After the project is created we need to change the name of the form from Form1 to main and change the name on the top of the form to Applicant Registration under text in the Properties tab.  Then we can start adding in labels and changing Text and Name Properties for:</p>
<ul>
<li>First Name (Text: First Name, Name: lblFirstName)</li>
<li>Last Name (Text: Last Name, Name: lblLastName)</li>
<li>Address (Text: Address, Name: lblAddress)</li>
<li>City (Text: City, Name: lblCity)</li>
<li>Zip Code (Text: Zip Code, Name: lblZipCode)</li>
<li>Email Address (Text: Email Address, Name: lblEmail)</li>
<li>Phone Number (Text: Phone Number, Name: lblPhone)</li>
</ul>
<p>After the labels are completed, we need to add the text-boxes that are going to coincide with the labels. The textboxes are going to have to be altered to make the names of each textbox readable when we do decide to code some guts.  The following are the textboxes that must be added to the form and the changes to the name property as well:</p>
<ul>
<li>First Name (Name: txtFirstName)</li>
<li>Last Name (Name: txtLastName)</li>
<li>Address (Name: txtAddress)</li>
<li>City (Name: txtCity)</li>
<li>Zip Code (Name: txtZipCode)</li>
<li>Email Address (Name: txtEmail)</li>
<li>Phone Number (Name: txtPhone)</li>
</ul>
<p>After this has been done the result should look like this after moving the labels and text boxes around the form:</p>
<p><a href="http://hackadaycom.files.wordpress.com/2010/10/applicant.png"><img class="aligncenter size-full wp-image-28985" title="Applicant" src="http://hackadaycom.files.wordpress.com/2010/10/applicant.png?w=314&#038;h=322" alt="" width="314" height="322" /></a></p>
<p>We now want to add the button that we are going to utilize to enter the forms data into a storage container.  We need to drag the button from the toolbox onto the form and change the Text to “Submit” and the name to btnSubmit.  After this is done we can double click on the button which will take us to the code that will be utilized when the user clicks the button.  To do this we are going to start out by clearing all of the form data so when the user presses submit the boxes clear and are ready for another entry.  To do this our code will look like something along the lines of:</p>
<p>private void btnSubmit_Click(object sender, EventArgs e)<br />
 {<br />
 txtFirstName.Text = &quot;&quot;;<br />
 txtLastName.Text = &quot;&quot;;<br />
 txtAddress.Text = &quot;&quot;;<br />
 txtCity.Text = &quot;&quot;;<br />
 txtZipCode.Text = &quot;&quot;;<br />
 txtEmail.Text = &quot;&quot;;<br />
 txtPhone.Text = &quot;&quot;;<br />
 }</p>
<p>After the code for the button is made we want to extend the  form to the right and add some controls for birth-date and gender.  We will start by making labels for Birthday and Gender respectively.  After we have created the two labels we are going to drag three combo boxes onto the form, one for the day, month and year.  When renaming objects on forms I tend to shorten what the object is into a minimum of two letters and a maximum of four.  The final result would be cbYear, cbMonth and cbDay respectively.  We can now drag two radio buttons onto the form and rename the text of one to Male and the other to Female.  After these have been positioned we can code the methods to populate the dates and tie the two radio buttons together.</p>
<p>The first item on the agenda will be the two radio buttons.  We are going to tie them together so that the two cannot be both checked.  To do this we need to check and see if the opposite radio button is checked.  We will do this by utilizing the CheckedChanged event handler for both radio buttons and this code:</p>
<pre class="brush: csharp;">
private void rbMale_CheckedChanged(object sender, EventArgs e)
 {
 if (rbMale.Checked == true)
 rbFemale.Checked = false;
 else
 rbFemale.Checked = true;
 }

 private void rbFemale_CheckedChanged(object sender, EventArgs e)
 {
 if (rbFemale.Checked == true)
 rbMale.Checked = false;
 else
 rbMale.Checked = true;
 }
</pre>
<p>Next we are going to populate the combo boxes we dragged onto the form earlier.  To do this we are going to have to check which one is picked and populate the days for that particular month.  Leap Years are an advanced function that will be implemented in the next tutorial but will be important to the final build.  We are also going to code a for loop to add the years 1900 to 2010 dynamically on the forms startup.  We can do both of these by utilizing main_Load and the cbMonth_SelectedValueChanged event handlers.  The code will look something like this:</p>
<pre class="brush: csharp;">
private void main_Load(object sender, EventArgs e)
{
 for (int i = 2010; i &gt;= 1900; --i)
 cbYear.Items.Add(i);
}

private void cbMonth_SelectedValueChanged(object sender, EventArgs e)
 {
 cbDay.Items.Clear();
 if (cbMonth.Text == &quot;September&quot; || cbMonth.Text == &quot;April&quot; || cbMonth.Text == &quot;June&quot; || cbMonth.Text == &quot;November&quot;)
 for (int i = 1; i &lt;= 30; ++i)
 cbDay.Items.Add(i);
 else if (cbMonth.Text == &quot;January&quot; || cbMonth.Text == &quot;March&quot; || cbMonth.Text == &quot;May&quot; || cbMonth.Text == &quot;July&quot; || cbMonth.Text == &quot;August&quot; || cbMonth.Text == &quot;October&quot; || cbMonth.Text == &quot;December&quot;)
 for (int i = 1; i &lt;= 31; ++i)
 cbDay.Items.Add(i);Day.Items.Add(i);
 else
 for (int i = 1; i &lt;= 28; ++i)
 cbDay.Items.Add(i);
 }

 private void rbMale_CheckedChanged(object sender, EventArgs e)
 {
 if (rbMale.Checked == true)
 rbFemale.Checked = false;
 else
 rbFemale.Checked = true;
 }
</pre>
<p>The final form should look something along the lines of this now:</p>
<p><a href="http://hackadaycom.files.wordpress.com/2010/10/fullregistration.png"><img class="aligncenter size-large wp-image-29251" title="fullregistration" src="http://hackadaycom.files.wordpress.com/2010/10/fullregistration.png?w=450&#038;h=253" alt="" width="450" height="253" /></a></p>
<p>The next logical step would be to include code to output this data to a text file or even a database.  We will cover this in the next tutorial using both output methods.  The first will be a text file as mentioned and the database of choice will be a mySQL database which we will go over installing in the next post.  If you are eager you can acquire the program <a href="http://bit.ly/mySQLDown">here </a>and install it before the next tutorial.  We could have used Microsoft&#8217;s Access database program but it is not free and the main objective of these tutorials is cheap development.</p>
<p>After this is done we can run the program by pressing F5 and enter in some test data.  Once all of the data is entered we can press the submit button and the data &#8211; if done correctly &#8211; should disappear.  If you can’t wait until the next tutorial, here is some reading on <a href="http://bit.ly/ConnString">connection strings</a> and <a href="http://bit.ly/IOTextFile">reading and writing to a text file</a> to get you up to speed.  Until next tutorial, Happy Hacking!</p>
</div>
<p>Filed under: <a href='http://hackaday.com/category/software-development/'>Software Development</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/28984/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/28984/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/28984/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/28984/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/28984/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/28984/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/28984/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/28984/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/28984/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/28984/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/28984/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/28984/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/28984/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/28984/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=28984&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/10/15/c-sharp-development-101-part-2-toolbox-controls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/10/ctools.jpg" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/10/applicant.png" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/10/fullregistration.png?w=450" length="" type="" />
		</item>
		<item>
		<title>Prototyping the Bulbdial clock</title>
		<link>http://hackaday.com/2010/08/28/prototyping-the-bulbdial-clock/</link>
		<comments>http://hackaday.com/2010/08/28/prototyping-the-bulbdial-clock/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 19:00:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[bulbdial]]></category>
		<category><![CDATA[classic hacks]]></category>
		<category><![CDATA[clock]]></category>
		<category><![CDATA[clock hacks]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[evil mad scientist]]></category>
		<category><![CDATA[led]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[sundial]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=27650</guid>
		<description><![CDATA[Evil Mad Scientist posted a story about what went into developing the Bulbdial clock. We think the Bulbdial is one of the best pieces of kit out there for many reasons; using colored shadows for each hand is a brilliant idea, the design is clever and uses a low parts count, and the concentric rings [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&#38;blog=4779443&#38;post=27650&#38;subd=hackadaycom&#38;ref=&#38;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-27651" title="prototyping-the-bulbdial" src="http://hackadaycom.files.wordpress.com/2010/08/prototyping-the-bulbdial-e1283018544455.jpg?w=470&#038;h=353" alt="" width="470" height="353" /></p>
<div>Evil Mad Scientist posted a story about <a href="http://www.evilmadscientist.com/article.php/bulbdial3">what went into developing the Bulbdial clock</a>. We think <a href="http://hackaday.com/2009/12/10/bulbdial-clock-kit-released/">the Bulbdial</a> is one of the best pieces of kit out there for many reasons; using colored shadows for each hand is a brilliant idea, the design is clever and uses a low parts count, and the concentric rings that make it work also add to the aesthetic. But after seeing the <a href="http://hackaday.com/2009/04/08/the-bulbdial-clock-comes-to-life/">original wood prototype</a> it had crossed our minds that developing those circular PCBs isn&#8217;t the easiest thing to pull off. To save on board cost, the first run didn&#8217;t have the center routed out, but rather used almost-touching holes drilled during manufacture and finished by hand during assembly. They also go on to discuss the use of <a href="http://en.wikipedia.org/wiki/Charlieplexing">Charlieplexing</a> to reduce part count and the search for a suitable diffuser for the clock face.</div>
<p>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/27650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/27650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/27650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/27650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/27650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/27650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/27650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/27650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/27650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/27650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/27650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/27650/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/27650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/27650/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&#038;blog=4779443&#038;post=27650&#038;subd=hackadaycom&#038;ref=&#038;feed=1" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/08/28/prototyping-the-bulbdial-clock/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/08/prototyping-the-bulbdial-e1283018544455.jpg" length="" type="" />
		</item>
		<item>
		<title>Android Development 101 – Part 6:Getting ready for Market!</title>
		<link>http://hackaday.com/2010/08/10/android-development-101-part-6getting-ready-for-market/</link>
		<comments>http://hackaday.com/2010/08/10/android-development-101-part-6getting-ready-for-market/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 19:00:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[android hacks]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=26996</guid>
		<description><![CDATA[In this tutorial we are going to cover packaging one of our applications into an .apk file and getting it ready for the Android Market.  After we have completed this tutorial you should be able to use the tools provided in the AndroidSDK to sign your application, put the application on your phone and install [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&#38;blog=4779443&#38;post=26996&#38;subd=hackadaycom&#38;ref=&#38;feed=1" />]]></description>
			<content:encoded><![CDATA[<div style="text-align:center;"><a href="http://hackadaycom.files.wordpress.com/2010/08/android-market-apps.jpg"><img class="alignnone size-full wp-image-27020" title="android-market-apps" src="http://hackadaycom.files.wordpress.com/2010/08/android-market-apps.jpg?w=247&#038;h=243" alt="" width="247" height="243" /></a></div>
<div>In this tutorial we are going to cover packaging one of our applications into an .apk file and getting it ready for the Android Market.  After we have completed this tutorial you should be able to use the tools provided in the AndroidSDK to sign your application, put the application on your phone and install it or send it to the Android Market.  These will be great assets to have if you decide to develop applications that you may want to charge for.  This tutorial will also be a change from the normal ones because it will include little, if any, code.</div>
<div><span id="more-26996"></span><br />
To start off, if you have great aspirations for marketing your applications to others make sure to sign up for a <a href="http://market.android.com/publish/Home">developer account</a> and pay the one time fee of <strong>$25 USD</strong>.  This will ensure that not just anyone is publishing to the market.  If your not looking to shell out the money then you can continue with the tutorial and give anyone who wants your app the file to put on their SD card. Whether you decide to do this step or not we still need to version our application.  We are going to use the <strong>EnhancedQuotes </strong>Project for this example.  We are going to open up the <strong>Android Manifest</strong> in enhanced quotes and put some code in here so we can version our application.</p>
<p>Versioning an application means that we make the application able to accept updates if something breaks or we are adding more features.  Once the Android Manifest is open we are going to modify the line where it says</p>
<pre class="brush: xml;">
&lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; package=&quot;com.gregjacobs.enhancedquotes&quot; &gt;
</pre>
<p>and add in</p>
<pre class="brush: xml;">
&lt;android:versionCode=”1” android:versionName=”1.0” &gt;
</pre>
<p>so that the line should look like</p>
<pre class="brush: xml;">
&lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; package=&quot;com.gregjacobs.enhancedquotes&quot; android:versionCode=”1” android:versionName=”1.0”&gt;
</pre>
<p>This tells the device we run the app on that this is version one and anything that comes along that is higher will be upgraded.  We need to add in a minSDKVersion as well so the Android Market can tell which devices can use our application.  We need to add</p>
<pre class="brush: xml;">
&lt;uses-sdk android:minSdkVersion=&quot;3&quot; /&gt;
</pre>
<p>underneath the /application node that will be shown below. We also want to add a specific icon so that our application stands out from all the other ones on a persons device.  I chose <a href="http://www.iconarchive.com/icons/mysitemyway/clean-3d/48/glossy-3d-blue-shield-icon.png">this icon</a> and saved it to an easy to find place, naming it icon.png, then dragging onto the drawable folder in res/.  Eclipse will ask you if you would like to overwrite, just say yes.</p>
</div>
<p><a href="http://hackadaycom.files.wordpress.com/2010/08/manifest.png"></a></p>
<p style="text-align:center;"><img class="aligncenter size-thumbnail wp-image-27007" title="Manifest" src="http://hackadaycom.files.wordpress.com/2010/08/manifest.png?w=99&#038;h=96" alt="" width="99" height="96" /></p>
<div style="text-align:left;">We now need a private key that will allow us to sign applications by using this key in the signing process. It will have to be your, it will show its either for your work or personal development depending on how its created and have a period of time before it expires.  To make a private key we are going to use the keytool found in our <strong>C:/Program Files/Java/jre6</strong> folder.  Once inside the jre6 folder, hold <strong>shift </strong>and <strong>right click</strong> on the bin folder and choose the option that says <strong>Open command window here</strong>.  Once in the command promp we are going to run <strong>keytool </strong>with a bunch of commands that will assist us in making a private key. The command to be entered into the command window will be as follows:</div>
<div>
<p><strong>keytool -genkey -v -keystore C:/MyKeygen.keystore</strong><strong> </strong><strong>-alias MyKey -keyalg RSA -keysize 2048 -validity 10000.</strong></p>
</div>
<div>
<p>Now that we have the command entered we can step through and determine what each of these variables is doing for the keytool.</p>
<ul>
<li><strong>-genkey &#8211; </strong>Initiates the start of the making a key pair.</li>
<li><strong>-v &#8211; </strong>Enables output to be shown to the user making the keystore.</li>
<li><strong>-keystore &#8211; </strong>After this variable will contain the location and the name of the keystore we are going to make.</li>
<li><strong>-alias &#8211; </strong>Gives the keystore a shorter name or nickname if you will.</li>
<li><strong>-keyalg &#8211; </strong>This is the type of encryption used and can be either RSA or DSA encoded.</li>
<li><strong>-keysize &#8211; </strong>The size of each key that is generated.  This is recommended to be at least 2048 bits or higher as stated by Google.  The default is 1024 bits.</li>
<li><strong>-validity &#8211; </strong>The number of days the key is valid.  This should be no less than 10000 but is recommended to go higher.</li>
</ul>
</div>
<div>After pressing enter when done entering the command above you will be prompted to answer a series of questions so Google can validate this key.  The first question will be a password for the key and it will prompt you to re-enter it as well.  The password will not show up when pressing keys but it is working and it is key to remember this password because we will use this when packaging our app.  Next question will ask for your first and last name.  The thirst question asks for the unit you are in, I put development since we are programming for android.  Next is your organization, remembering if you aren’t programming for one just enter your name or whatever you wish.  Next is just the city you are located in.  Then state or province depending on your locale.  Enter the two digit country code that you are in, for example Canada would be CA and United States of America would be US.  It will then prompt us if this information is correct, if it is type n yes then press enter.  It will now prompt you for a password for mykey, press enter as we will use the same key as the keystore password.</div>
<div>
<p style="text-align:center;"><a href="http://hackadaycom.files.wordpress.com/2010/08/keystore.png"><img class="size-thumbnail wp-image-27008    aligncenter" title="KeyStore" src="http://hackadaycom.files.wordpress.com/2010/08/keystore.png?w=105&#038;h=96" alt="" width="105" height="96" /></a></p>
<p>We are now ready to sign the application and get it ready for deployment to the Android Market.  We do this by going to eclipse and in the Package Explorer right click on EnhancedQuotes, go to <strong>Android Tools</strong> then click <strong>Export Signed Application Package&#8230;</strong>.  This will open up a dialog box asking you the project you want to export, click <strong>next </strong>as the one we want is selected.  Now we want to click the <strong>browse </strong>button on this page and locate our keystore file we created earlier, make sure to enter the password for it and click <strong>next</strong>.  Choose the alias we created for it and enter the same password as before and click <strong>next</strong>.  Now choose the destination for the <em>APK </em>file we are about to create, I am choosing the <strong>C Drive</strong>. Click Finish and the <em>APK </em>file will be created in the directory we chose.</p>
</div>
<div style="text-align:center;"><a href="http://hackadaycom.files.wordpress.com/2010/08/devsite.png"><img class="alignnone size-thumbnail wp-image-27010" title="DevSite" src="http://hackadaycom.files.wordpress.com/2010/08/devsite.png?w=120&#038;h=96" alt="" width="120" height="96" /></a><a href="http://hackadaycom.files.wordpress.com/2010/08/devsite1.png"><img class="alignnone size-thumbnail wp-image-27011" title="DevSite1" src="http://hackadaycom.files.wordpress.com/2010/08/devsite1.png?w=120&#038;h=96" alt="" width="120" height="96" /></a><a href="http://hackadaycom.files.wordpress.com/2010/08/devsite2.png"><img class="alignnone size-thumbnail wp-image-27012" title="DevSite2" src="http://hackadaycom.files.wordpress.com/2010/08/devsite2.png?w=120&#038;h=96" alt="" width="120" height="96" /></a><a href="http://hackadaycom.files.wordpress.com/2010/08/devsite3.png"><img class="alignnone size-thumbnail wp-image-27013" title="DevSite3" src="http://hackadaycom.files.wordpress.com/2010/08/devsite3.png?w=120&#038;h=96" alt="" width="120" height="96" /></a><a href="http://hackadaycom.files.wordpress.com/2010/08/devsite4.png"><img class="alignnone size-thumbnail wp-image-27014" title="DevSite4" src="http://hackadaycom.files.wordpress.com/2010/08/devsite4.png?w=120&#038;h=96" alt="" width="120" height="96" /></a></div>
<div><a href="http://hackadaycom.files.wordpress.com/2010/08/devsite4.png"></a><br />
We now have two choices for publishing our app, the first being deploy on your android device by dropping it on the SD card and downloading an app installer like <strong>appInstaller</strong> from the marketplace or deploy to the android community via the <strong>Developer Publish</strong> site.  We are going to publish to market in this tutorial.  Navigate to the <a href="http://market.android.com/publish/Home">publisher site</a>, log in and then click on the button that says <strong>Upload Application</strong>.  We now need to find the <em>APK </em>file via the first browse button then enter some information about the application.  After filling out the<em> Title, Description, Application type and category, choosing your publishing options and filling out contact information and finally agree to the terms by checking the checkboxes</em> we can finally press <strong>Publish</strong>.  After pressing Publish the application is sent to the market and you can have millions of Android users use your application.  In the demo of this application the app I signed was actually sent to market and can be found by clicking search in the Market and entering in <strong>Quotes Viewer/Generator</strong>.  The link provided will only work on an android device, or you could scan the QR code below if you wanted to get there faster.</div>
<p style="text-align:center;"><a href="http://hackadaycom.files.wordpress.com/2010/08/android-developer.png"><img class="size-thumbnail wp-image-27017    aligncenter" title="Android Developer" src="http://hackadaycom.files.wordpress.com/2010/08/android-developer.png?w=96&#038;h=96" alt="" width="96" height="96" /></a></p>
<div>
<p>This series of tutorials has covered the basics of development in an Android Environment to packaging up your applications and getting them ready for market.  Now that we have the basics of Android development down we can start on tutorials about more advanced subjects including but not limited to bluetooth control/chat.  I hope everyone that has read Android Development 101 has found it useful and looks forward to more. Happy Hacking until the next tutorial!</p>
</div>
<p>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/26996/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/26996/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/26996/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/26996/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/26996/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/26996/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/26996/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/26996/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/26996/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/26996/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/26996/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/26996/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&#038;blog=4779443&#038;post=26996&#038;subd=hackadaycom&#038;ref=&#038;feed=1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/08/10/android-development-101-part-6getting-ready-for-market/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://hackadaycom.files.wordpress.com/2010/08/android-developer.png?w=96" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/08/devsite4.png?w=120" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/08/devsite3.png?w=120" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/08/devsite2.png?w=120" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/08/devsite1.png?w=120" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/08/devsite.png?w=120" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/08/keystore.png?w=105" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/08/manifest.png?w=99" length="" type="" />
<enclosure url="" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/08/android-market-apps.jpg" length="" type="" />
		</item>
		<item>
		<title>Classic Menu for Office 2010 2.20 / 2007 5.25</title>
		<link>http://www.rapid.pk/2010/08/classic-menu-for-office-2010-220-2007.html</link>
		<comments>http://www.rapid.pk/2010/08/classic-menu-for-office-2010-220-2007.html#comments</comments>
		<pubDate>Wed, 04 Aug 2010 21:04:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Classic Menu for Office 2010 - Show Classic Menus and Toolbars on the Ribbon of Microsoft Office 2010Frustrated by endless searches for features on the Ribbon? Download and install this software to bring back the familiar menus and toolbars to Microsoft® Office® 2010. The software allows you to work with Office 2010 as if it were Office 2003.You can use Office 2010 immediately without any]]></description>
			<content:encoded><![CDATA[Classic Menu for Office 2010 - Show Classic Menus and Toolbars on the Ribbon of Microsoft Office 2010Frustrated by endless searches for features on the Ribbon? Download and install this software to bring back the familiar menus and toolbars to Microsoft® Office® 2010. The software allows you to work with Office 2010 as if it were Office 2003.You can use Office 2010 immediately without any]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/08/05/classic-menu-for-office-2010-2-20-2007-5-25/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PureBasic 4.50 (x86/x64)</title>
		<link>http://www.rapid.pk/2010/08/purebasic-450-x86x64.html</link>
		<comments>http://www.rapid.pk/2010/08/purebasic-450-x86x64.html#comments</comments>
		<pubDate>Sun, 01 Aug 2010 21:36:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[PureBasic is a native 32 bit and 64 bit programming language based on established BASIC rules.The key features of PureBasic are portability (Windows, Linux, MacOS X and AmigaOS are currently supported), the production of very fast and highly optimized executables and, of course, the very simple BASIC syntax. PureBasic has been created for the beginner and expert alike. We have put a lot of effort]]></description>
			<content:encoded><![CDATA[PureBasic is a native 32 bit and 64 bit programming language based on established BASIC rules.The key features of PureBasic are portability (Windows, Linux, MacOS X and AmigaOS are currently supported), the production of very fast and highly optimized executables and, of course, the very simple BASIC syntax. PureBasic has been created for the beginner and expert alike. We have put a lot of effort]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/08/02/purebasic-4-50-x86x64/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cecima WinDesign 10.0.0</title>
		<link>http://www.rapid.pk/2010/07/cecima-windesign-1000.html</link>
		<comments>http://www.rapid.pk/2010/07/cecima-windesign-1000.html#comments</comments>
		<pubDate>Thu, 29 Jul 2010 10:05:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[WinDesign : a modular suite, based on a common repository, for the Information Systems analysis and designWinDesign is a modeling enterprise software suite providing 3 modules, that can be used independently or combined with the others, based on a scalable common repository, to conceive, model and specify your Information Systems.Database ModuleIntended for analysts and database managers, for]]></description>
			<content:encoded><![CDATA[WinDesign : a modular suite, based on a common repository, for the Information Systems analysis and designWinDesign is a modeling enterprise software suite providing 3 modules, that can be used independently or combined with the others, based on a scalable common repository, to conceive, model and specify your Information Systems.Database ModuleIntended for analysts and database managers, for]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/07/29/cecima-windesign-10-0-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xceed Ultimate Suite 10.4.10375</title>
		<link>http://www.rapid.pk/2010/07/xceed-ultimate-suite-10410375.html</link>
		<comments>http://www.rapid.pk/2010/07/xceed-ultimate-suite-10410375.html#comments</comments>
		<pubDate>Wed, 28 Jul 2010 10:22:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Get all of Xceed's components, including grids, themes, charts, UI, Zip, FTP, and encryption. 65+ controls and libraries.Platforms: .NET, .NET CF, WPF, Silverlight 3, ActiveXThe Xceed Ultimate Suite Enterprise Edition offers the industry's most substantial licensing option for a component suite. It not only allows an unlimited number of developers to use the included components, but also]]></description>
			<content:encoded><![CDATA[Get all of Xceed's components, including grids, themes, charts, UI, Zip, FTP, and encryption. 65+ controls and libraries.Platforms: .NET, .NET CF, WPF, Silverlight 3, ActiveXThe Xceed Ultimate Suite Enterprise Edition offers the industry's most substantial licensing option for a component suite. It not only allows an unlimited number of developers to use the included components, but also]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/07/28/xceed-ultimate-suite-10-4-10375/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PROMT Freelance 9.0.410</title>
		<link>http://www.rapid.pk/2010/07/promt-freelance-90410.html</link>
		<comments>http://www.rapid.pk/2010/07/promt-freelance-90410.html#comments</comments>
		<pubDate>Mon, 26 Jul 2010 04:31:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[utilities]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[PROMT Freelance 9.0 is a brand new product in the best-of-breed PROMT desktop product family.The new offering addresses the technology requirements of the freelance translator community. PROMT Freelance 9.0 is the ideal desktop solution for language industry professionals who are looking for ways to optimize the translation process using the most innovative Computer Assisted Translation (CAT),]]></description>
			<content:encoded><![CDATA[PROMT Freelance 9.0 is a brand new product in the best-of-breed PROMT desktop product family.The new offering addresses the technology requirements of the freelance translator community. PROMT Freelance 9.0 is the ideal desktop solution for language industry professionals who are looking for ways to optimize the translation process using the most innovative Computer Assisted Translation (CAT),]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/07/26/promt-freelance-9-0-410/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KeepTool 9.1.0.1</title>
		<link>http://www.rapid.pk/2010/07/keeptool-9101.html</link>
		<comments>http://www.rapid.pk/2010/07/keeptool-9101.html#comments</comments>
		<pubDate>Sun, 25 Jul 2010 03:05:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[The KeepTool family gathers together three Oracle productivity tools, each addressing a specific purpose and available separately.But each of the three products -   Hora,  ER Diagrammer und  PL/SQL Debugger - is also designed to work with the other two, and shares a common design philosophy.The goal is to make products easy and intuitive to use. KeepTool is updated many times each year to enhance]]></description>
			<content:encoded><![CDATA[The KeepTool family gathers together three Oracle productivity tools, each addressing a specific purpose and available separately.But each of the three products -   Hora,  ER Diagrammer und  PL/SQL Debugger - is also designed to work with the other two, and shares a common design philosophy.The goal is to make products easy and intuitive to use. KeepTool is updated many times each year to enhance]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/07/25/keeptool-9-1-0-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PenSoft Payroll 2010 3.10.3.09</title>
		<link>http://www.rapid.pk/2010/07/pensoft-payroll-2010-310309.html</link>
		<comments>http://www.rapid.pk/2010/07/pensoft-payroll-2010-310309.html#comments</comments>
		<pubDate>Sun, 25 Jul 2010 02:55:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[finance]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Payroll software for payroll processors with multiple payroll clients.Designed for payroll processors with multiple payroll clients. It is a power payroll software designed to streamline your payroll processing needs. With free unlimited Program Support, updates throughout the year, and calendar year software we offer the best value in payroll software.  Features:Tax tables for all 50]]></description>
			<content:encoded><![CDATA[Payroll software for payroll processors with multiple payroll clients.Designed for payroll processors with multiple payroll clients. It is a power payroll software designed to streamline your payroll processing needs. With free unlimited Program Support, updates throughout the year, and calendar year software we offer the best value in payroll software.  Features:Tax tables for all 50]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/07/25/pensoft-payroll-2010-3-10-3-09/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Syncro SVN Client 6.0</title>
		<link>http://www.rapid.pk/2010/07/syncro-svn-client-60.html</link>
		<comments>http://www.rapid.pk/2010/07/syncro-svn-client-60.html#comments</comments>
		<pubDate>Fri, 23 Jul 2010 23:05:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Syncro SVN Client  makes easier document and code sharing between content authors or developers.Syncro SVN Client is the best multiplatform SVN client that allows you to browse repositories, check for changes, commit changes, update your working copy and examine the revision history. The Syncro SVN Client has been designed to offer powerful actions while keeping the interface as clean and simple]]></description>
			<content:encoded><![CDATA[Syncro SVN Client  makes easier document and code sharing between content authors or developers.Syncro SVN Client is the best multiplatform SVN client that allows you to browse repositories, check for changes, commit changes, update your working copy and examine the revision history. The Syncro SVN Client has been designed to offer powerful actions while keeping the interface as clean and simple]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/07/24/syncro-svn-client-6-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jungo WinDriver 10.20 (x86/x64)</title>
		<link>http://www.rapid.pk/2010/07/jungo-windriver-1020-x86x64.html</link>
		<comments>http://www.rapid.pk/2010/07/jungo-windriver-1020-x86x64.html#comments</comments>
		<pubDate>Thu, 22 Jul 2010 13:02:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Market Leading Driver Development Toolkit For the Development of High Performance, High Quality User-Mode Device Drivers.WinDriver is a development toolkit that dramatically simplifies the difficult task of creating device drivers and hardware access applications. WinDriver includes a wizard and code generation features that automatically detect your hardware and generate the driver to access it]]></description>
			<content:encoded><![CDATA[Market Leading Driver Development Toolkit For the Development of High Performance, High Quality User-Mode Device Drivers.WinDriver is a development toolkit that dramatically simplifies the difficult task of creating device drivers and hardware access applications. WinDriver includes a wizard and code generation features that automatically detect your hardware and generate the driver to access it]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/07/22/jungo-windriver-10-20-x86x64/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nero Multimedia Suite 10.0.13200</title>
		<link>http://www.rapid.pk/2010/07/nero-multimedia-suite-10013200.html</link>
		<comments>http://www.rapid.pk/2010/07/nero-multimedia-suite-10013200.html#comments</comments>
		<pubDate>Thu, 22 Jul 2010 12:55:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[multimedia]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[utilities]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[World’s Best Selling Digital Media SuiteAdvanced video editing and HD movie creationReliable backup and easy recoveryIndustry leading CD, DVD and Blu-ray Disc burning and copyingNero Multimedia Suite 10 excels your multimedia power with a collection of three products bundled into one powerful suite. It’s loaded with advanced video editing features, media organizer and player, superior burning]]></description>
			<content:encoded><![CDATA[World’s Best Selling Digital Media SuiteAdvanced video editing and HD movie creationReliable backup and easy recoveryIndustry leading CD, DVD and Blu-ray Disc burning and copyingNero Multimedia Suite 10 excels your multimedia power with a collection of three products bundled into one powerful suite. It’s loaded with advanced video editing features, media organizer and player, superior burning]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/07/22/nero-multimedia-suite-10-0-13200/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Development 101 – Part 3:Introduction to Databases</title>
		<link>http://hackaday.com/2010/07/21/android-development-101-part-3introduction-to-databases/</link>
		<comments>http://hackaday.com/2010/07/21/android-development-101-part-3introduction-to-databases/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 18:00:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[android hacks]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=26328</guid>
		<description><![CDATA[In this tutorial we will be pivoting from our last tutorial on Graphical Elements to start focusing on databases in Android development. The android platform uses SQLite databases in its applications and is one of five data storage options in android development. We will only be focusing on SQLite development in android because it is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&#38;blog=4779443&#38;post=26328&#38;subd=hackadaycom&#38;ref=&#38;feed=1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><img class="aligncenter size-large wp-image-26335" title="Android Lab" src="http://hackadaycom.files.wordpress.com/2010/07/img_199912_android-lab.jpg?w=450&#038;h=337" alt="" width="450" height="337" /></p>
<p>In this tutorial we will be pivoting from our last tutorial on <a href="http://hackaday.com/2010/07/19/android-development-101-part-2improved-hello-world/">Graphical Elements</a> to start focusing on databases in Android development.  The android platform uses SQLite databases in its applications and is one of five data storage options in android development.  We will only be focusing on SQLite development in android because it is key to the construction of a workable/functional program.  After this tutorial you should be able to implement a SQLite database that you are then able to insert and select items from tables in the database.</p>
<p>For this project we will be creating a Random Quote generator that has you enter quotes or sayings in a textbox and press a button to insert them into the database.  We will issue a confirmation toast that allows us to see if the data was entered into the database successfully and the textbox will be blank. If a second button is pressed, the database will be accessed and told to select a random quote from the database to show in a toast on the screen.</p>
<p><span id="more-26328"></span></p>
<p>To start off we will make a new project called <strong>RandomQuotes</strong>.  In <a href="http://hackaday.com/2010/07/15/android-dev-101-%E2%80%93-part-1hello-world/">part one</a> of the series we stepped through making a new project so we wont walk through all of the steps again but instead I will just give you the information you need.  The information to get this project up and running bare bones is as follows:</p>
<ul>
<li><strong>Project Name:</strong> RandomQuotes</li>
<li><strong>Build Target:</strong> Android 1.5</li>
<li><strong>Application Name:</strong> RandomQuotes</li>
<li><strong>Package Name:</strong> com.gregjacobs.randomquotes</li>
<li><strong>Create Activity:</strong> QuotesMain</li>
<li><strong>Min SDK Version:</strong> 3</li>
</ul>
<p style="text-align:center;"><a href="http://hackadaycom.files.wordpress.com/2010/07/part3-databases001.png"><img class="size-thumbnail wp-image-26336  aligncenter" title="Part3-Databases001" src="http://hackadaycom.files.wordpress.com/2010/07/part3-databases001.png?w=56&#038;h=96" alt="" width="56" height="96" /></a></p>
<p>After inserting these values and you have pressed Finish we will start by making a class file in our <em>com.gregjacobs.randomquotes</em> package.  To do this we will right click on the package and navigate to <strong>New </strong>then to <strong>Class</strong>.  When the new window pops up the only data we will enter is the <strong>Name </strong>section filling it with <strong>DBAdapter</strong>. After this is done we press <strong>Finish </strong>and are presented with a bare bones class file that we will quickly start to modify.  This tutorial will be like the last in the sense that code will be posted and I will explain the important parts and what functions are doing.  The only difference from the previous tutorial code will be that I include text files as well as documenting the code here so you are able to download and compare.  We will start off with the <em>DBAdapter.java</em> file:</p>
<p style="text-align:center;">
<p style="text-align:center;"><a href="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-005.png"><img class="size-thumbnail wp-image-26340   alignleft" title="Part3 - Final Product - 005" src="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-005.png?w=120&#038;h=96" alt="" width="120" height="96" /></a><a href="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-006.png"><img class="size-thumbnail wp-image-26341 alignleft" title="Part3 - Final Product - 006" src="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-006.png?w=120&#038;h=96" alt="" width="120" height="96" /></a><a href="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-007.png"><img class="size-thumbnail wp-image-26342   alignleft" title="Part3 - Final Product - 007" src="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-007.png?w=120&#038;h=96" alt="" width="120" height="96" /></a><a href="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-008.png"><img class="size-thumbnail wp-image-26343   alignleft" title="Part3 - Final Product - 008" src="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-008.png?w=120&#038;h=96" alt="" width="120" height="96" /></a></p>
<p style="text-align:center;">
<p style="text-align:center;">
<p style="text-align:center;">
<p style="text-align:left;">
<pre class="brush: java;">
package com.gregjacobs.randomquotes;

import java.util.Random;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
</pre>
<p>We will start off by importing all of the tools required to get this SQLite Database up and running.  All of these might be straightforward for database programmers but we will discuss them anyways.  <strong>ContentValues </strong>allow us the ability to store a set of values for insert statements, <strong>Context </strong>as explained in the last post allows us access to the application environment.  <strong>Cursor </strong>is probably the most vital import we will need next to the SQLite imports.  Cursor allows us access to the data returned to the cursor from a database query.  <strong>SQLException </strong>allows us to throw SQL exceptions if there is ever an error, these messages provide more insight as to what the problem may be.  <strong>SQLiteDatabase </strong>gives us the ability to manage a SQLite database using methods.  <strong>SQLiteOpenHelper </strong>is basically a helper class that allows for creation and version management of a database.  <strong>Log </strong>will basically log output in case there is an error.</p>
<pre class="brush: java;">
public class DBAdapter
{
    int id = 0;
    public static final String KEY_ROWID = &quot;_id&quot;;
    public static final String KEY_QUOTE = &quot;Quote&quot;;
    private static final String TAG = &quot;DBAdapter&quot;;

    private static final String DATABASE_NAME = &quot;Random&quot;;
    private static final String DATABASE_TABLE = &quot;tblRandomQuotes&quot;;
    private static final int DATABASE_VERSION = 1;

    private static final String DATABASE_CREATE =
        &quot;create table tblRandomQuotes (_id integer primary key autoincrement, &quot;
        + &quot;Quote text not null );&quot;;

    private final Context context;

    private DatabaseHelper DBHelper;
    private SQLiteDatabase db;
</pre>
<p>Here we define all of our variables to be used in the database from the database name right down to the database create statement.  We are using final variables because they will never change values and making a variable for table names and the like will later on make our lives easier than hard-coding all of our values and commiting too much (remember the re-usability).</p>
<pre class="brush: java;">
    public DBAdapter(Context ctx)
    {
        this.context = ctx;
        DBHelper = new DatabaseHelper(context);
    }

	private static class DatabaseHelper extends SQLiteOpenHelper
    {
        DatabaseHelper(Context context)
        {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase db)
        {
            db.execSQL(DATABASE_CREATE);
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion,
                              int newVersion)
        {
            Log.w(TAG, &quot;Upgrading database from version &quot; + oldVersion
                  + &quot; to &quot;
                  + newVersion + &quot;, which will destroy all old data&quot;);
            db.execSQL(&quot;DROP TABLE IF EXISTS tblRandomQuotes&quot;);
            onCreate(db);
        }
    }
    </pre>
<p>Above we define a constructor to grab the context of the application and extend that to our <strong>DatabaseHelper </strong>just under the constructor.  The <strong>DatabaseHelper </strong>class extends our <strong>SQLiteOpenHelper</strong> which will add greater functionality to management of our SQLite database.  The key function that we will see used later on will be <strong>onCreate</strong> which will allow us to execute a SQL statement to create our database.</p>
<pre class="brush: java;">
    //---opens the database---
    public DBAdapter open() throws SQLException
    {
        db = DBHelper.getWritableDatabase();
        return this;
    }

    //---closes the database---
    public void close()
    {
        DBHelper.close();
    }
    </pre>
<p>Above we have two key functions that allow us to open and close the database that can be referenced when calling them in our main <em>.java</em> file.</p>
<pre class="brush: java;">
    //---insert a title into the database---
    public long insertQuote(String Quote)
    {
        ContentValues initialValues = new ContentValues();
        initialValues.put(KEY_QUOTE, Quote);
        return db.insert(DATABASE_TABLE, null, initialValues);
    }
</pre>
<p>The function above will be processing our quotes when we call them in the main <em>.java</em> file. It will also be getting them ready for entry into the database by putting the string <strong>Quote </strong>into a <strong>ContentValues </strong>called <strong>initialValues </strong>which is then inserted into the database table.</p>
<pre class="brush: java;">
    public int getAllEntries()
    {
        Cursor cursor = db.rawQuery(
                    &quot;SELECT COUNT(Quote) FROM tblRandomQuotes&quot;, null);
                if(cursor.moveToFirst()) {
                    return cursor.getInt(0);
                }
                return cursor.getInt(0);

    }
    </pre>
<p>This function will be querying the database table for the number of quotes entered so it can assist the random number generator in how high a number to choose so that we don&#8217;t throw an exception.  We are using a <strong>rawQuery </strong>for the most part because I am personally not a huge fan of the way Android handles their queries ( having you enter in different parts of the statement in segments and separate them with commas) but I am impressed that they allow you to have full functionality with a native SQL query.  The if statement will move the cursor to the first result (if there are many results) and grab the first integer it sees there.  If the if statement is not true it will grab the result from the starting position anyways.</p>
<pre class="brush: java;">
    public String getRandomEntry()
    {

    	id = getAllEntries();
    	Random random = new Random();
    	int rand = random.nextInt(getAllEntries());
    	if(rand == 0)
    		++rand;
        Cursor cursor = db.rawQuery(
                    &quot;SELECT Quote FROM tblRandomQuotes WHERE _id = &quot; + rand, null);
                if(cursor.moveToFirst()) {
                    return cursor.getString(0);
                }
                return cursor.getString(0);

    }

}
</pre>
<p>This function will be called by the main <em>.java</em> program to return a random result based on the number of entries into our database.  We use the function <strong>getAllEntries </strong>to get the number of quotes and we then tell our random variable that it can go no higher than<strong> id</strong>.  In our select statement we then tell it to look for quote <strong>WHERE _id = rand</strong> which is our random number.</p>
<p>After this class file is completed, we have a fully reusable database adapter that is ready to start inserting quotes into the database.  We now need to focus on both of the XML files which will be a quick trip down memory lane so code and pictures will be posted and we shouldn’t have to review as everything is basically from the <a href="http://hackaday.com/2010/07/19/android-development-101-part-2improved-hello-world/">last post</a>.  Here is the <em>main.xml</em>:</p>
<p style="text-align:center;"><a href="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-010.png"><img class="aligncenter size-thumbnail wp-image-26346" title="Part3 - Final Product - 010" src="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-010.png?w=120&#038;h=96" alt="" width="120" height="96" /></a></p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    android:orientation=&quot;vertical&quot;
    android:layout_width=&quot;fill_parent&quot;
    android:layout_height=&quot;fill_parent&quot;
    &gt;
&lt;TextView
    android:layout_width=&quot;fill_parent&quot;
    android:layout_height=&quot;wrap_content&quot;
    android:text=&quot;@string/Quote&quot;
/&gt;
&lt;EditText
android:id=&quot;@+id/Quote&quot;
android:layout_width=&quot;fill_parent&quot;
android:layout_height=&quot;wrap_content&quot;
/&gt;
&lt;Button
android:id=&quot;@+id/go&quot;
android:layout_width=&quot;fill_parent&quot;
android:layout_height=&quot;wrap_content&quot;
android:text=&quot;@string/press&quot;
/&gt;
&lt;Button
android:id=&quot;@+id/genRan&quot;
android:layout_width=&quot;fill_parent&quot;
android:layout_height=&quot;wrap_content&quot;
android:text=&quot;@string/genRan&quot;
/&gt;
&lt;/LinearLayout&gt;
</pre>
<p>Here is the <em>strings.xml</em> file:</p>
<p style="text-align:center;"><a href="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-009.png"><img class="aligncenter size-thumbnail wp-image-26347" title="Part3 - Final Product - 009" src="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-009.png?w=120&#038;h=96" alt="" width="120" height="96" /></a></p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;resources&gt;
    &lt;string name=&quot;Quote&quot;&gt;Please Enter A Quote:&lt;/string&gt;
    &lt;string name=&quot;app_name&quot;&gt;Random Quotes&lt;/string&gt;
    &lt;string name=&quot;press&quot;&gt;Press Me!&lt;/string&gt;
    &lt;string name=&quot;genRan&quot;&gt;Generate Random Quote!&lt;/string&gt;
&lt;/resources&gt;
</pre>
<p>Both are pretty straight forward and the only difference from these files and the previous posts is the additional string node in <em>strings.xml</em> and the extra button in <em>main.xml</em>.  Now we have the layout in place with everything where we want it to be it is now our task to code the <em>QuotesMain.java</em> file.  This file will register our two buttons and attach them to one event handler using a switch statement.  Here is the code for our <em>QuotesMain.java</em> file:</p>
<p style="text-align:center;">
<p style="text-align:center;"><a href="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-011.png"><img class="size-thumbnail wp-image-26348 alignleft" title="Part3 - Final Product - 011" src="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-011.png?w=120&#038;h=96" alt="" width="120" height="96" /></a><a href="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-012.png"><img class="size-thumbnail wp-image-26349 alignleft" title="Part3 - Final Product - 012" src="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-012.png?w=120&#038;h=96" alt="" width="120" height="96" /></a><a href="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-013.png"><img class="size-thumbnail wp-image-26350 alignleft" title="Part3 - Final Product - 013" src="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-013.png?w=120&#038;h=96" alt="" width="120" height="96" /></a></p>
<p style="text-align:center;">
<p style="text-align:center;">
<p style="text-align:center;">
<pre class="brush: java;">
package com.gregjacobs.randomquotes;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
</pre>
<p>Here we are importing all of the required items to be able to pull this project together.  All of these should be familiar to you from <a href="http://hackaday.com/2010/07/19/android-development-101-part-2improved-hello-world/">Graphical Elements</a> and if they aren’t it is a good post to start on and work your way here.</p>
<pre class="brush: java;">
public class QuotesMain extends Activity {
	DBAdapter db = new DBAdapter(this);
	EditText Quote;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        // Capture our button from layout
        Button setButton = (Button)findViewById(R.id.go);
        Button getButton = (Button)findViewById(R.id.genRan);
        // Register the onClick listener with the implementation above
        setButton.setOnClickListener(mAddListener);
        getButton.setOnClickListener(mAddListener);
    }
</pre>
<p>We now have to buttons being referenced by id and they are <strong>getButton </strong>(which gets the information from the text box and inserts it into the database) and <strong>setButton </strong>(which retrieves a random quote from the database depending on the number of items in the database).  These both have the same event handler and decisions on what code to run are made below.</p>
<pre class="brush: java;">
    // Create an anonymous implementation of OnClickListener
    private OnClickListener mAddListener = new OnClickListener()
    {
    	public void onClick(View v)
    	{
    		switch(v.getId())
    		{
    		case R.id.go:
				db.open();
				long id = 0;
				// do something when the button is clicked
				try
				{
					Quote = (EditText)findViewById(R.id.Quote);
					db.insertQuote(Quote.getText().toString());

					id = db.getAllEntries();

					Context context = getApplicationContext();
					CharSequence text = &quot;The quote '&quot; + Quote.getText() + &quot;' was added successfully!\nQuotes Total = &quot; + id;
					int duration = Toast.LENGTH_LONG;

					Toast toast = Toast.makeText(context, text, duration);
					toast.show();
					Quote.setText(&quot;&quot;);
				}
				catch (Exception ex)
				{
					Context context = getApplicationContext();
					CharSequence text = ex.toString() + &quot;ID = &quot; + id;
					int duration = Toast.LENGTH_LONG;

					Toast toast = Toast.makeText(context, text, duration);
					toast.show();
				}
				db.close();
				break;
</pre>
<p>In the above case statement we can see that we grab the text from the textbox and insert the data into the database using <strong>db.insertQuote</strong> from the <strong>DBAdapter </strong>java class.  After a successful insertion we will display a toast that allows us to see what quote was entered in successfully and what the number of quotes in the database are.</p>
<pre class="brush: java;">
    		case R.id.genRan:
    			db.open();
    			//long id1 = 0;
    			// do something when the button is clicked
    			try
    			{
    				String quote = &quot;&quot;;
    				quote = db.getRandomEntry();
    				Context context = getApplicationContext();
    				CharSequence text = quote;
    				int duration = Toast.LENGTH_LONG;

    				Toast toast = Toast.makeText(context, text, duration);
    				toast.show();
    			}
    			catch (Exception ex)
    			{
    				Context context = getApplicationContext();
    				CharSequence text = ex.toString();
    				int duration = Toast.LENGTH_LONG;

    				Toast toast = Toast.makeText(context, text, duration);
    				toast.show();
    			}
    			db.close();
    		}
		}
    };
}
</pre>
<p>This case uses a string variable to reference the random entry we are pulling out of the database using <strong>db.getRandomEntry</strong>.  We then display that data in a toast to show that the information was actually grabbed.  All of this code when pulled together and displayed on an android screen should look like this:</p>
<p>Entering Text:</p>
<p style="text-align:center;"><a href="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-001.png"><img class="aligncenter size-thumbnail wp-image-26352" title="Part3 - Final Product - 001" src="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-001.png?w=114&#038;h=96" alt="" width="114" height="96" /></a></p>
<p>Displaying Random Entries:</p>
<p style="text-align:center;"><a href="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-002.png"><img class="aligncenter size-thumbnail wp-image-26353" title="Part3 - Final Product - 002" src="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-002.png?w=114&#038;h=96" alt="" width="114" height="96" /></a><a href="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-003.png"><img class="aligncenter size-thumbnail wp-image-26354" title="Part3 - Final Product - 003" src="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-003.png?w=114&#038;h=96" alt="" width="114" height="96" /></a></p>
<p>With an introduction to databases for android covered you can start writing applications that require data storage such as the final product mentioned in the first post.  There are a plethora of other features to cover in SQLite databasing for android. More of those will be covered in the next tutorial.  Things such as updating your database, deleting entries and getting to know your way around the <strong>DDMS </strong>(Dalvik Debug Monitor Service) are all an essential part of android programming.  If you can’t wait till the next article to check these articles on <a href="http://developer.android.com/guide/developing/tools/ddms.html">DDMS </a>and <a href="http://www.devx.com/wireless/Article/40842/1954">Updating and Deleting</a>.  As always if anyone has problems, questions or issues don&#8217;t hesitate to ask and I will try my hardest to get back to you before the next post! Until the next time, Happy Hacking!</p>
<p>Text files of code for comparison:</p>
<p><a href="http://hackadaycom.files.wordpress.com/2010/07/dbadapter.doc">DBAdapter</a> | <a href="http://hackadaycom.files.wordpress.com/2010/07/strings.doc">strings</a> | <a href="http://hackadaycom.files.wordpress.com/2010/07/main.doc">main</a> | <a href="http://hackadaycom.files.wordpress.com/2010/07/quotesmain.doc">QuotesMain</a></p>
<p>Articles used for reference:</p>
<p>DevX &#8211; <a href="http://www.devx.com/wireless/Article/40842/1954">Creating and Using Databases in Android</a><br />
Android Developers &#8211; <a href="http://developer.android.com/guide/index.html">Reference Guide</a></p>
<p>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/26328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/26328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/26328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/26328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/26328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/26328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/26328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/26328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/26328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/26328/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&#038;blog=4779443&#038;post=26328&#038;subd=hackadaycom&#038;ref=&#038;feed=1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/07/21/android-development-101-part-3introduction-to-databases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-012.png?w=120" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-003.png?w=114" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-002.png?w=114" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-001.png?w=114" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-013.png?w=120" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-011.png?w=120" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-009.png?w=120" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-010.png?w=120" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-008.png?w=120" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-007.png?w=120" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-006.png?w=120" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/part3-final-product-005.png?w=120" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/part3-databases001.png?w=56" length="" type="" />
<enclosure url="" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/img_199912_android-lab.jpg?w=450" length="" type="" />
		</item>
		<item>
		<title>CyberLink MediaShow Ultra 5.1.1529</title>
		<link>http://www.rapid.pk/2010/07/cyberlink-mediashow-ultra-511529.html</link>
		<comments>http://www.rapid.pk/2010/07/cyberlink-mediashow-ultra-511529.html#comments</comments>
		<pubDate>Wed, 21 Jul 2010 08:45:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[multimedia]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Preserve Your Memories &#38; Share Your StoriesOne-click fixes to preserve videos &#38; photos for generationsSmart workflow to tag &#38; search faces in archived photosCombine videos &#38; photos to create memorable slideshowsConvert videos up to 10X faster for iTunes and portable playersShare your stories on Facebook, YouTube, and burn to discCyberLink MediaShow is a fast and easy way to preserve and share]]></description>
			<content:encoded><![CDATA[Preserve Your Memories &#38; Share Your StoriesOne-click fixes to preserve videos &#38; photos for generationsSmart workflow to tag &#38; search faces in archived photosCombine videos &#38; photos to create memorable slideshowsConvert videos up to 10X faster for iTunes and portable playersShare your stories on Facebook, YouTube, and burn to discCyberLink MediaShow is a fast and easy way to preserve and share]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/07/21/cyberlink-mediashow-ultra-5-1-1529/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Development 101- Part 2:Graphical Elements</title>
		<link>http://hackaday.com/2010/07/19/android-development-101-part-2improved-hello-world/</link>
		<comments>http://hackaday.com/2010/07/19/android-development-101-part-2improved-hello-world/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 14:27:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[android hacks]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=26212</guid>
		<description><![CDATA[In this tutorial, we will be continuing from where we left off with the “hello world” application.  This time adding a graphical user interface (GUI) and a “toast”. The GUI will consist of a button, textbox and a label. The “toast” will be issued onto the screen when the button is pressed. Some may wonder [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&#38;blog=4779443&#38;post=26212&#38;subd=hackadaycom&#38;ref=&#38;feed=1" />]]></description>
			<content:encoded><![CDATA[<div>
<p id="internal-source-marker_0.7013613982126117" style="text-align:center;">
<div style="text-align:center;"><img src="https://lh5.googleusercontent.com/tmG03_E95y_ceOn37-e6dVhj6l-McikGPvdm80Py_NK6_3PeQRwceHlOQW-pNyktB0WlbJgautrZX87iaHLWYe0QLUHlFX84YavnF1A5JmuzadS5" alt="" width="474px;" height="296px;" /></div>
<p>In this tutorial, we will be continuing from where we left off with the “<a href="http://hackaday.com/2010/07/15/android-dev-101-%E2%80%93-part-1hello-world/">hello world</a>” application.  This time adding a graphical user interface (GUI) and a “toast”. The GUI will consist of a button, textbox and a label. The “toast” will be issued onto the screen when the button is pressed.</p>
<p>Some may wonder what a toast is.  Well, for non-programmers, a toast is a text notification that for the most part is used only to display an error on the screen (I am a big fan of using toasts instead of an alert on the screen as its less intrusive).  For this article we will use a toast to display a message on the screen that will take the text in the textbox and issue a “Hello Greg” onto the bottom of the screen.  After this article completed you will be able to successfully make toast commands, design the layout of the hello world program, and pull text from a textbox.</p>
<p><span id="more-26212"></span></p>
<p>We are going to start off by copy our <a href="http://hackaday.com/2010/07/15/android-dev-101-%E2%80%93-part-1hello-world/">existing Hello World project</a> so that we can use the original in every way but have two separate projects to show the difference and both can be used as references.  To do this we will right click on the root of our <strong>HelloWorld </strong>project in the right hand pane (Navigation Explorer), navigate to copy (<em><span style="text-decoration:underline;">not </span></em><strong>Copy Qualified Name</strong>) and click it.  Then find a blank space in the Navigation Explorer, right click again and click paste.  You will be asked to supply a new name for this project and whether to use the default location.  We will name the new project <strong>ImprovedHelloWorld </strong>and we will leave the checkbox checked that says “use default location”.  Press <strong>OK </strong>and the new project will be generated from the old one.</p>
<p style="text-align:center;"><a href="http://hackadaycom.files.wordpress.com/2010/07/strings1.png"><img class="alignnone size-thumbnail wp-image-26238" title="Strings" src="http://hackadaycom.files.wordpress.com/2010/07/strings1.png?w=123&#038;h=96" alt="" width="123" height="96" /></a></p>
<p style="text-align:left;">The first thing we are going to accomplish is changing the <em>strings.xml</em> file to add another node under <em>app_name</em>.  We will do this by copying the node above it and pasting the copied material directly under the last <em>&lt;/string&gt;</em> element.  Then we will change the name of the string to press and in between we will write <strong>Press Me!</strong>.  Next we will alter the <strong>hello </strong>node and change the text to say <strong>Enter Your Name Here:</strong> instead of <strong>Hello Android, Hello World!</strong>. This being accomplished we now need to design the GUI (Graphical User Interface).</p>
<p style="text-align:center;"><a href="http://hackadaycom.files.wordpress.com/2010/07/main1.png"><img class="alignnone size-thumbnail wp-image-26239" title="main" src="http://hackadaycom.files.wordpress.com/2010/07/main1.png?w=123&#038;h=96" alt="" width="123" height="96" /></a></p>
<p style="text-align:left;">To do this navigate to main.xml and we are going to go over what everything does up to this point.  We first off have a node called <strong>LinearLayout </strong>which essentially creates a space for adding objects such as textboxes, buttons and the like and will format the layout for us.  So LinearLayout will organize one thing right after the other in a one column and one row type of deal.  Next we have a <strong>TextView </strong>which in any other label we could call a label.  Now to go over what all of the parameters are in the nodes we just mentioned.  <strong>android:layout_width</strong> &amp; <strong>android:layout_height</strong> are used to determine what will happen to an object when it is used within a layout.  There are two options when using this and they are <em>fill_parent </em>or <em>wrap_content</em>.  <em>fill_parent </em>will do exactly as it states, it will size the object so that it will fill the screen either vertically or horizontally.  <em>wrap_content </em>will format the object to expand or shrink to the size of the content displayed within.  Both of these variables can be used in many different objects including but not limited to <strong>Layouts</strong>, <strong>Text Views</strong>,<strong> Text Boxes</strong>, and <strong>Buttons</strong>.  android:text is used in certain objects like TextViews and TextBoxes to display text to the user.  As of right now, we are presenting the user with text but calling it from strings.xml instead of entering the text right in the node itself.  To reference <em>strings.xml</em> all that is needed is to put <em>@string/pres</em>s, where press is the name of your variable, inside the quotations.</p>
<p style="text-align:left;">Now that we are familiar with the terms, we will need to modify this to first house a label, textbox and finally a button.  To do this we will simply add a textbox and button since we already took care of the label in the <em>string.xml</em>.  To add a Textbox we will start on a new line under ending of the <em>&lt;TextView /&gt;</em> node.  Just to be clear I will add code inline and explain why we are adding it afterwards. <strong> &lt;EditText android:id=”@+id/helloName” android:layout_width=”fill_parent” android:layout_height=”wrap_content” /&gt;</strong>.  EditText will be our textbox in this instance.  Also when giving items an ID it is best to follow these practises of adding <strong>@+id/</strong> before your variable name which makes it possible to tie into your <em>.java</em> file later.  Next we will add <strong>&lt;Button android:id=”@+id/go” android:layout_width=”fill_parent” android:layout_height=”wrap_content” android:text=”@string/press” /&gt;</strong> directly underneath the ending of our <em>EditText </em>node.  Notice we are referencing the<em> string.xml</em> and calling the node that says <strong>Press Me!</strong> which will appear on our button now.  If you were to run this project now you would be able to see the layout of the program we just made but we are unable to get it to do anything except enter text in the textbox.</p>
<p>This next section will contain a lot of code and I will provide most of the screenshots of the code to help you through.  First, it is good to realize every time you would like to reference an object in your layout we need to import it.  We will need to add imports for our button and textbox.  We can do that bu adding these lines of code to the imports section at the top:</p>
<p><strong>import android.widget.Button;<br />
import android.widget.EditText;</strong></p>
<p><strong> </strong><br />
After that we will need to include four more imports, the first being for event listen to add to our button, the second will be for the toast that we will call when the event handler runs, the third being the context of the application and the fourth to get the view of the application and handle the layout and interaction.  These imports can be added under the previous ones and will look like this:</p>
<p><strong> import android.view.View.OnClickListener;<br />
import android.widget.Toast;<br />
import android.content.Context;<br />
import android.view.View;</strong></p>
<p><strong> </strong><br />
After these are added to your imports we are ready to get into coding the event handler for our button and the onCreate functions, which is called when the program is started.  To make things easier and to complement the screenshot, I will post the rest of the code and explain what the important lines are doing and why we are using them.</p>
<p><strong>public class HelloMain extends Activity {</strong></p>
<p><strong> EditText helloName;</strong></p>
<p><strong><br />
<span style="font-weight:normal;"> We are creating a reference to our textbox above any function so that it only has to be declared once but instantiated many times if need be.</span></strong></p>
<p><strong><span style="font-weight:normal;"> </span><br />
/** Called when the activity is first created. */</strong></p>
<p><strong> </strong><strong> @Override</strong></p>
<p><strong> public void onCreate(Bundle savedInstanceState)</strong></p>
<p><strong> {</strong></p>
<p><strong> super.onCreate(savedInstanceState);</strong></p>
<p><strong> setContentView(R.layout.main);</strong></p>
<p><strong> // Capture our button from layout</strong></p>
<p><strong> Button button = (Button)findViewById(R.id.go);</strong></p>
<p><strong> // Register the onClick listener with the implementation above</strong></p>
<p><strong> button.setOnClickListener(mAddListener);</strong></p>
<p><strong> }</strong></p>
<p>Above we capture the button from the layout using a variable.  With this variable we are going to assign it an onClick Event Handler as shown on the last line above.  Below we are creating the Event Handler for it to be hooked in above.  After creating this function it will be able to pull the text from the TextBox and display it with static text.</p>
<p><strong> // Create an anonymous implementation of OnClickListener</strong></p>
<p><strong> private OnClickListener mAddListener = new OnClickListener()</strong></p>
<p><strong> {</strong></p>
<p><strong> public void onClick(View v)</strong></p>
<p><strong> {</strong></p>
<p><strong> long id = 0;</strong></p>
<p><strong> // do something when the button is clicked</strong></p>
<p><strong> try</strong></p>
<p><strong> {</strong></p>
<p><strong> </strong><strong> helloName = (EditText)findViewById(R.id.helloName);</strong></p>
<p>Here we instantiate the TextBox we declared earlier and capture the Textbox in the layout by finding it by the ID that we gave it.</p>
<p><strong> Context context = getApplicationContext();</strong></p>
<p><strong> CharSequence text = &#8220;Hello &#8221; + helloName.getText() + 					&#8220;!&#8221;;</strong></p>
<p><strong> int duration = Toast.LENGTH_LONG;</strong></p>
<p><strong> Toast toast = Toast.makeText(context, text, duration);</strong></p>
<p><strong> toast.show();</strong></p>
<p><strong> </strong><br />
The above code will take Context (the facet to our applications enviroment) and and add it to our Toast along with our dynamic CharSequence text and the length the Toast will appear onscreen, which in this case we want it to be longer.  It is key to note how to make a Toast as it is more efficient that popping up textboxes to the user as well as it is less distracting.</p>
<p><strong><br />
}</strong></p>
<p><strong> catch (Exception ex)</strong></p>
<p><strong> {</strong></p>
<p><strong> </strong><strong> Context context = getApplicationContext();</strong></p>
<p><strong> CharSequence text = ex.toString() + &#8220;ID = &#8221; + id;</strong></p>
<p><strong> int duration = Toast.LENGTH_LONG;</strong></p>
<p><strong> Toast toast = Toast.makeText(context, text, duration);</strong></p>
<p><strong> toast.show();</strong></p>
<p><strong> }</strong></p>
<p><strong> }</strong></p>
<p><strong> };</strong></p>
<p><strong>}</strong></p>
<p><strong> </strong><br />
The last thing we are doing for this function is putting all the important stuff mentioned above into a try catch statement which will try our important code and if there is an error it will display a Toast letting us know there was an error and a message about that error.  For functions such as these is it crucial to have precautions in place to catch errors and not have a program force close.  It is important to put the user first in thinking about UI and any error messages that might occur.  If an error somehow sneaks into your program try catch statements will catch the error and make it “cute and fuzzy” for the user.</p>
<p style="text-align:center;">Top half of code:</p>
<p style="text-align:center;"><a href="http://hackadaycom.files.wordpress.com/2010/07/ihw-11.png"><img class="alignnone size-thumbnail wp-image-26240" title="IHW-1" src="http://hackadaycom.files.wordpress.com/2010/07/ihw-11.png?w=123&#038;h=96" alt="" width="123" height="96" /></a><br />
Bottom half of code, elapsed by previous view of code:</p>
<p style="text-align:center;"><a href="http://hackadaycom.files.wordpress.com/2010/07/ihw-21.png"><img class="size-thumbnail wp-image-26241 aligncenter" title="IHW-2" src="http://hackadaycom.files.wordpress.com/2010/07/ihw-21.png?w=123&#038;h=96" alt="" width="123" height="96" /></a></p>
<p style="text-align:left;">After we have coded the main content for our .java file, we can now proceed to run the application and view our completed Improved Hello World program.  Notice that when you press the button and your textbox has not text in it that the program will still function correctly.  This is a good feature to have so that you don&#8217;t start seeing Toasts containing error messages.  The completed product should look like this when the button is pressed:</p>
<p style="text-align:left;">
<p style="text-align:left;"><img class="aligncenter" src="https://lh6.googleusercontent.com/NZcd9aVHyzvrCxuC3F5zRfqwU6nPZ2fHtFwEKVOwYUtOIrboRPxQ9OLmTzAZAkz1D_DR7fHeyG4XhEIocAh4p7QtgLFa-5Uy0U4d0V84LR3lAqw3" alt="" width="470;" height="400" /><br />
This would conclude our Improved Hello World example but the learning is far from over.  Next post we will examine Databases and a look into some simple queries as well as building a database from the ground up.  As always, if you have any problems with coding this article, feel free to leave a comment and I will assist in any way possible! If you can’t wait for the next post you can read up on <a href="http://developer.android.com/guide/topics/data/data-storage.html#db">databases</a> before the next posting.  Until next time, Happy Hacking!</p>
</div>
<p style="text-align:center;">
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/26212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/26212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/26212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/26212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/26212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/26212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/26212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/26212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/26212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/26212/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&#038;blog=4779443&#038;post=26212&#038;subd=hackadaycom&#038;ref=&#038;feed=1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/07/19/android-development-101-part-2improved-hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="//lh6.googleusercontent.com/NZcd9aVHyzvrCxuC3F5zRfqwU6nPZ2fHtFwEKVOwYUtOIrboRPxQ9OLmTzAZAkz1D_DR7fHeyG4XhEIocAh4p7QtgLFa-5Uy0U4d0V84LR3lAqw3" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/ihw-21.png?w=123" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/ihw-11.png?w=123" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/main1.png?w=123" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/strings1.png?w=123" length="" type="" />
<enclosure url="" length="" type="" />
<enclosure url="//lh5.googleusercontent.com/tmG03_E95y_ceOn37-e6dVhj6l-McikGPvdm80Py_NK6_3PeQRwceHlOQW-pNyktB0WlbJgautrZX87iaHLWYe0QLUHlFX84YavnF1A5JmuzadS5" length="" type="" />
		</item>
		<item>
		<title>Android Development 101 – Part 1:Hello World</title>
		<link>http://hackaday.com/2010/07/15/android-dev-101-%E2%80%93-part-1hello-world/</link>
		<comments>http://hackaday.com/2010/07/15/android-dev-101-%E2%80%93-part-1hello-world/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 19:00:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://hackadaycom.wordpress.com/?p=26089</guid>
		<description><![CDATA[This article will focus on developing a simple hello world program for android using Java. Google has recently released a “cute and fuzzy” programming environment for beginners to get into but I haven’t had the chance to try it, so we will be focusing on the Eclipse IDE here, which you should have set up [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&#38;blog=4779443&#38;post=26089&#38;subd=hackadaycom&#38;ref=&#38;feed=1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><img src="http://hackadaycom.files.wordpress.com/2010/07/071510_1521_androiddev112.png" border="0" alt="" /></p>
<p style="text-align:left;">This article will focus on developing a simple hello world program for android using Java. Google has recently released a “<a href="http://appinventor.googlelabs.com/about/">cute and fuzzy</a>” programming environment for beginners to get into but I haven’t had the chance to try it, so we will be focusing on the Eclipse IDE here, which you should have set up in the <a href="http://hackaday.com/2010/07/12/android-development-101-%E2%80%93-a-tutorial-series/">last post</a>.  When creating a text based project there are two very important items.  It will involve creating an android project, going through the necessary steps to complete both the (1) XML files and the (2) Java file and get this project ready for production and eventually deployment.  The requirements of this project are simple, know the basis of XML (for new comers if you don’t that’s OK too, you will learn) and know Java (very basic knowledge but you will learn as we go and we will modify a few parts of the java file today).</p>
<p style="text-align:left;"><span id="more-26089"></span></p>
<p style="text-align:center;"><img class="aligncenter" src="http://hackadaycom.files.wordpress.com/2010/07/071510_1521_androiddev122.png" border="0" alt="" /></p>
<p>Start by firing up Eclipse and clicking <strong>File</strong>, <strong>New</strong> then <strong>Project</strong>.  We are going to navigate to <strong>Android</strong> folder and select <strong>Android Project</strong> and click next.  If you have updated your Android SDK correctly, your next screen will look like this. This screen requires we enter all data correctly including Project Name, Build Target, Application Name, Package Name, Create Activity, and Min SDK Version.   These are important terms to know because they will control what keywords you can access and what your project looks like when you first create it.  So to summarize:</p>
<ul>
<li>
<div><strong>Project Name:</strong> Will be the name you would like to use for your new project.  In this instance we will use &#8220;HelloWorld&#8221; (I am a programmer and loath spaces you might choose to have them but it shouldn&#8217;t make a difference)</div>
</li>
<li><strong>Build Target:</strong> This will specify what API you will be utilizing in your projects.  It is key to choose wisely or you may lose out on a wider audience than anticipated.  It is always best to think of what your program will use and see if a lower build will support those functions before cornering yourself with a higher API.  For this program we are going to choose Android 1.5</li>
<li><strong>Application Name: </strong>Will be the name you choose for your Application to be called.  This can be changed later on and for right now we make that field equal Hello World.</li>
<li><strong>Package name: </strong>The package name will consist of your company&#8217;s standard package name that you would use or in my case I use my entrepreneurial one.  For this I am entering in <strong>com.gregrjacobs.helloworld </strong>but you can enter in anything you wish.  Also, make sure it is in all lower case for good coding practices.</li>
<li><strong>Create Activity:</strong> You will want to make sure that the box is checked before <strong>Create Activity </strong>because this option will do most of the work you just have to give it a name.  NOTE: do not call this &#8220;Activity&#8221; as your project will cease to function and you have to go through the pain of making it all over again or manually correcting it.  I am going to use <strong>HelloMain</strong> as my activity name, again use what you wish though.</li>
<li><strong>Min SDK Version:</strong> This will have to be a number you enter denoting the platform you would like to target and if this application will show up in the marketplace of certain devices.  If you look to the build target devices after platform tab on Android 1.5 you will see the number 3 and that will be our minimum SDK Version. Once everything is filled out press <strong>Finish</strong>.</li>
</ul>
<p style="text-align:center;"><img src="http://hackadaycom.files.wordpress.com/2010/07/071510_1521_androiddev132.png" alt="" /></p>
<p>This will create the core of our project ranging from the Android 1.5 JAR file to our Java and XML files.  The most important things right now are the files in the src/<em>com.gregjacobs.helloworld/ </em>folder and the files in the <em>res/</em> folder.  First we will look at the <em>main.xml</em> which is located in <em>res/layout/</em>.  This file will hold the layout of your application including textboxes, labels, dateTimePickers and the like.  In the <em>main.xml</em> we will see that we are using a LinearLayout which will organize items into a single row or column.  This can be handy sometimes (other times not so much) and for this example it will work, so leave it like this because we will be displaying text so it makes no difference.  Next is the <em>strings.xml </em>file which will conveniently house<em><br />
</em>all of strings in the application.  This is especially useful to keep the clutter out of your Java and <em>main.xml</em> file.  We are actually going to change the string called &#8220;hello&#8221; from <strong><em>Hello World, HelloMain! </em></strong> to <strong><em>Hello Android, Hello World!</em></strong> And our string named <em>app_name</em> can stay how it is.</p>
<p style="text-align:center;"><img src="http://hackadaycom.files.wordpress.com/2010/07/071510_1521_androiddev142.png" alt="" /></p>
<p>After doing this we are going to navigate to the package name we created and open <em>HelloMain.java</em> and this will contain the code to run the XML files we were just looking at.   The first line will contain our package name that the java file is associated with.  Next, in the picture above, we have imported the OS bundle and the activity function that will run our app.  Later on when we explore adding textboxes and labels we will be importing widgets into our files and we will put the imports just under these two shown above.  Next is our class that basically says when the application starts up, set the view of the screen to the layout labeled <em>main</em><a name="id.be644cfce2f9"></a>.  This is interesting in the sense that you can design many different layouts depending on the state you application is in.  Of course with a hello world program we only need this one layout but the option is there for you to experiment with.</p>
<p>When we are done tweaking everything we wanted, we are going to build the application and run it on the emulator we created <a href="http://hackaday.com/2010/07/12/android-development-101-%E2%80%93-a-tutorial-series/">last post</a>. To do this we go to the top of the eclipse screen and navigate to the button that looks like this<img src="http://hackadaycom.files.wordpress.com/2010/07/071510_1521_androiddev152.png" alt="" />and press it.  This will prompt you to say what type of project you would like to run.  We want to run an <strong>Android Application </strong>and press ok.<strong><br />
</strong>The emulator should pop up onto your screen and load up.  The first load time of your emulator will be atrocious but after that you should have no problems with load.  When the emulator is done loading it may ask you to press <strong>Menu</strong> to unlock, do so by pressing menu just under the screen.  You don&#8217;t have to navigate to load your project it will do it by itself it just has to load the rest of the software and you should end up with a result like this:</p>
<p style="text-align:center;"><img src="http://hackadaycom.files.wordpress.com/2010/07/071510_1521_androiddev162.png" alt="" /></p>
<p>When working with tools like the eclipse IDE and AndroidSDK, making simple text based programs is a breeze. The next post coming to this series will get somewhat more difficult by developing a database class that will be reusable for most database driven applications.  If anyone had any problems with this today make sure to leave a comment and I will try to get back to you before the next post.  If you can&#8217;t wait to look ahead to designing an interface for your android application or looking into databases, these are the places to go; <a href="http://developer.android.com/guide/topics/data/data-storage.html">Data Storage</a> and <a href="http://developer.android.com/guide/topics/ui/index.html">User Interface</a>. Until next post, happy hacking.</p>
<p>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/26089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/26089/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/26089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/26089/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/26089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/26089/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/26089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/26089/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/26089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/26089/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&#038;blog=4779443&#038;post=26089&#038;subd=hackadaycom&#038;ref=&#038;feed=1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/07/15/android-dev-101-%e2%80%93-part-1hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/071510_1521_androiddev162.png" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/071510_1521_androiddev152.png" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/071510_1521_androiddev142.png" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/071510_1521_androiddev132.png" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/071510_1521_androiddev122.png" length="" type="" />
<enclosure url="" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/071510_1521_androiddev112.png" length="" type="" />
		</item>
		<item>
		<title>Android Development 101 – A tutorial Series</title>
		<link>http://hackaday.com/2010/07/12/android-development-101-%E2%80%93-a-tutorial-series/</link>
		<comments>http://hackaday.com/2010/07/12/android-development-101-%E2%80%93-a-tutorial-series/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 17:06:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://hackadaycom.wordpress.com/?p=25965</guid>
		<description><![CDATA[Android is the prime OS for developing applications in today for many reasons. The main reasons being that it is Open Source and Intuitive. In addition it uses Java for development, which is quite an easy language to get used to and develop in. This being said, a lot of you have great ideas for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&#38;blog=4779443&#38;post=25965&#38;subd=hackadaycom&#38;ref=&#38;feed=1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://s.linux-mag.com/i/topics/android.jpg"><img src="http://hackadaycom.files.wordpress.com/2010/07/071210_1705_androiddev111.jpg" border="0" alt="" /></a></p>
<p>Android is the prime OS for developing applications in today for many reasons.  The main reasons being that it is Open Source and Intuitive.  In addition it uses Java for development, which is quite an easy language to get used to and develop in.  This being said, a lot of you have great ideas for Android applications or applications in general but don&#8217;t know where to start.  This series will take you behind the scenes and introduce you to the software that will be your best friend while developing for android.  On this journey we will start with a &#8220;Hello World&#8221; and move on from there to create a database driven application with a touch and scroll interface.  The final result will look something like this:</p>
<p style="text-align:center;"><img src="http://hackadaycom.files.wordpress.com/2010/07/071210_1705_androiddev121.png" alt="" /></p>
<p style="text-align:center;"><span id="more-25965"></span></p>
<p>Working with tools to develop Android applications will be your greatest asset as you will come to realize early on.  All of the tools I use will be listed to make development speedy and efficient while still looking good along the way.  At best you will need to acquire <a href="http://www.eclipse.org/downloads/">Eclipse</a>, I recommend the Eclipse IDE for Java EE Developers version as it is amazing for other types of development as well.  The next tools you will get are the <a href="http://developer.android.com/sdk/index.html">Android SDK</a>, which allows you to hook the SDK into eclipse to reference its API and design an efficient functioning program. After that, this part is optional, look into <a href="http://www.droiddraw.org/">DroidDraw</a> which is essentially a GUI for designing the interface side of things so that you don&#8217;t have to blindly hack your way through the Android SDK and Java jungle.</p>
<p style="text-align:center;"><img src="http://hackadaycom.files.wordpress.com/2010/07/071210_1705_androiddev131.gif" alt="" /><br />
<a href="http://ltty.files.wordpress.com/2009/05/droidraw-small.png?w=300&amp;h=223"><img src="http://hackadaycom.files.wordpress.com/2010/07/071210_1705_androiddev141.png" border="0" alt="" /></a></p>
<p>Eclipse is fairly straightforward to setup and start using the Android SDK, you just have to download a package to include the SDK to Eclipses referenced files.  To do this we will go to <strong>Help</strong> and then to <strong>Software Updates</strong> which will have a tab that says <strong>Available Software</strong>.  We want to <strong>Add Site</strong> to be able to look up just Google&#8217;s packages they want us to download.  In the location field enter <strong>https://dl-ssl.google.com/android/eclipse</strong> and click OK.  Check both boxes and proceed to the next screen.  You should make sure <strong>Android DDMS</strong> and <strong>Android Development Tools</strong> are both listed before going on.  Accept license agreements and click Finish.  You will have to restart Eclipse but after that your hook in is ready to be setup.</p>
<p>Android SDK is fairly straight forward to download for any system but updating it and hooking it into Eclipse is the key.  After downloading the zip file (I&#8217;m using Windows/Linux but Windows examples will be default), unzip it to your C Drive and label the folder it will enter AndroidSDK.  After entering said folder double click on the setup icon which will take you to the screen that shows you all the updates available for download.  Download the latest updates and proceed to the top option <strong>Virtual Devices</strong> where you will make your first emulator.  NOTE:  if an update list does not show you will have to set the setup client to use http instead of https.  When creating the emulator the name doesn&#8217;t matter and all you really need to set is a version you want to develop on.  We will pick Android 1.5 from the list because if you decide to market an application you can reach more people and for the API&#8217;s we will use we don&#8217;t need 2.1 or 2.2.  After setting up your emulator you are ready to have the two meet for the first time.</p>
<p>Going into Eclipse you will click the <strong>Window</strong> button and navigate to the <strong>Preferences</strong> option and click it.  Select the Android option on the left and there will appear in the right side of the window a blank screen with a browse button.  Click the button and find your AndroidSDK directory in the C drive and select that folder.  Clicking <strong>Apply</strong> will make the blank window you were looking at show many different versions of the Android SDK and if you are able to see it you are on the right track.  Click <strong>OK</strong> and we are ready to start developing.</p>
<p>NOTES: DroidDraw will be spoken about in another post in this series and we will use it to make part of our interface and the other half we will code ourselves.   For everyone else developing in Linux I have found an <a href="http://od-eon.com/blogs/horia/android-development-environment-setup-ubuntu-lucid/">awesome post</a> that will describe how to set up your environment for Ubuntu and can possibly be transitioned for Red Hat and the like.   Anyone who is having trouble feel free to let me know the issues you are having and I will try my best to not leave you behind before the next post.</p>
<p>If you can&#8217;t wait for the next post, browse the examples on the <a href="http://developer.android.com/resources/index.html">Android Developers website</a>.</p>
<p>Articles used for reference:</p>
<p>Android Developers – <a href="http://developer.android.com/sdk/eclipse-adt.html">Installing ADT Plugin</a></p>
<p>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/25965/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/25965/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/25965/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/25965/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/25965/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/25965/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/25965/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/25965/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/25965/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/25965/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&#038;blog=4779443&#038;post=25965&#038;subd=hackadaycom&#038;ref=&#038;feed=1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/07/12/android-development-101-%e2%80%93-a-tutorial-series/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/071210_1705_androiddev141.png" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/071210_1705_androiddev131.gif" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/071210_1705_androiddev121.png" length="" type="" />
<enclosure url="" length="" type="" />
<enclosure url="http://hackadaycom.files.wordpress.com/2010/07/071210_1705_androiddev111.jpg" length="" type="" />
		</item>
		<item>
		<title>GridinSoft CHM Editor 1.3.3.7</title>
		<link>http://www.rapid.pk/2010/07/with-chm-editor-you-will-be-able-to.html</link>
		<comments>http://www.rapid.pk/2010/07/with-chm-editor-you-will-be-able-to.html#comments</comments>
		<pubDate>Sat, 10 Jul 2010 23:40:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[With the CHM Editor you will be able to tackle several tasks simultaneously:This is a powerful tool for editing CHM, you can change and save chm file without downloading any additional tools or editors.It allows you translate any chm-file using one of available translation servicesThe most amazing thing is that the translation will be complied saving all html-tags and structure of the document –]]></description>
			<content:encoded><![CDATA[With the CHM Editor you will be able to tackle several tasks simultaneously:This is a powerful tool for editing CHM, you can change and save chm file without downloading any additional tools or editors.It allows you translate any chm-file using one of available translation servicesThe most amazing thing is that the translation will be complied saving all html-tags and structure of the document –]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/07/11/gridinsoft-chm-editor-1-3-3-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sonne DVD Burner 4.3.0.2082</title>
		<link>http://www.rapid.pk/2010/06/sonne-dvd-burner-4302077.html</link>
		<comments>http://www.rapid.pk/2010/06/sonne-dvd-burner-4302077.html#comments</comments>
		<pubDate>Fri, 09 Jul 2010 21:02:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[multimedia]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[utilities]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Sonne DVD Burner is an almighty DVD burner designed to meet all your needs in burning video, ISO Image file and VIDEO_TS to DVD disc and burning all files to data disc; creating DVD from other video files. For the more, it can capture videos to burn or create to DVD.It's necessary to add an intact capture function to meet users need. Users can easily capture video or image from other devices, DV]]></description>
			<content:encoded><![CDATA[Sonne DVD Burner is an almighty DVD burner designed to meet all your needs in burning video, ISO Image file and VIDEO_TS to DVD disc and burning all files to data disc; creating DVD from other video files. For the more, it can capture videos to burn or create to DVD.It's necessary to add an intact capture function to meet users need. Users can easily capture video or image from other devices, DV]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/07/10/sonne-dvd-burner-4-3-0-2082/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JetBrains Resharper 5.1.1727.12</title>
		<link>http://www.rapid.pk/2010/04/jetbrains-resharper-50165936.html</link>
		<comments>http://www.rapid.pk/2010/04/jetbrains-resharper-50165936.html#comments</comments>
		<pubDate>Fri, 09 Jul 2010 20:41:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[The Must-Have Productivity Tool for .NET DevelopersReSharper provides solution-wide error highlighting on the fly, instant solutions for found errors, over 30 advanced code refactorings, superior unit testing tools, handy navigation and search features, single-click code formatting and cleanup, automatic code generation and templates, and a lot more productivity features for C#, VB.NET, ASP.NET,]]></description>
			<content:encoded><![CDATA[The Must-Have Productivity Tool for .NET DevelopersReSharper provides solution-wide error highlighting on the fly, instant solutions for found errors, over 30 advanced code refactorings, superior unit testing tools, handy navigation and search features, single-click code formatting and cleanup, automatic code generation and templates, and a lot more productivity features for C#, VB.NET, ASP.NET,]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/07/09/jetbrains-resharper-5-1-1727-12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe eLearning Suite 2.0 (Multilingual ESD iSO)</title>
		<link>http://www.rapid.pk/2010/07/adobe-elearning-suite-20-multilingual.html</link>
		<comments>http://www.rapid.pk/2010/07/adobe-elearning-suite-20-multilingual.html#comments</comments>
		<pubDate>Wed, 07 Jul 2010 02:34:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[educational]]></category>
		<category><![CDATA[multimedia]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Develop professional eLearning content with just one integrated toolsetAdobe® eLearning Suite 2 software is the complete toolbox for creating professional eLearning courseware end to end. Accelerate development with the smart aggregation capabilities of Adobe Captivate® 5, new roundtripping features, value-added functionalities, and improved collaboration workflows.Adobe eLearning Suite includes]]></description>
			<content:encoded><![CDATA[Develop professional eLearning content with just one integrated toolsetAdobe® eLearning Suite 2 software is the complete toolbox for creating professional eLearning courseware end to end. Accelerate development with the smart aggregation capabilities of Adobe Captivate® 5, new roundtripping features, value-added functionalities, and improved collaboration workflows.Adobe eLearning Suite includes]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/07/07/adobe-elearning-suite-2-0-multilingual-esd-iso/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Captivate 5.0</title>
		<link>http://www.rapid.pk/2010/07/adobe-captivate-50.html</link>
		<comments>http://www.rapid.pk/2010/07/adobe-captivate-50.html#comments</comments>
		<pubDate>Wed, 07 Jul 2010 01:07:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[educational]]></category>
		<category><![CDATA[multimedia]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Rapidly create, smoothly deliver, and easily maintain rich eLearning contentAdd software demonstrations, interactive simulations, branching scenarios, and quizzes to your courseware without programming using Adobe® Captivate® 5 software. Go beyond screen capture and achieve superior results in fewer steps thanks to an intuitive user interface, collaboration workflows, and a multitude of]]></description>
			<content:encoded><![CDATA[Rapidly create, smoothly deliver, and easily maintain rich eLearning contentAdd software demonstrations, interactive simulations, branching scenarios, and quizzes to your courseware without programming using Adobe® Captivate® 5 software. Go beyond screen capture and achieve superior results in fewer steps thanks to an intuitive user interface, collaboration workflows, and a multitude of]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/07/07/adobe-captivate-5-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Timeline Maker Professional 2.1.8.2</title>
		<link>http://www.rapid.pk/2010/07/timeline-maker-professional-2182.html</link>
		<comments>http://www.rapid.pk/2010/07/timeline-maker-professional-2182.html#comments</comments>
		<pubDate>Sat, 03 Jul 2010 22:29:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[utilities]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[There's No Other Timeline Tool Like Timeline Maker!If you’ve been struggling to create timeline charts manually or wrestling with ordinary office software like Excel, Visio or MS Project, then you will really appreciate how easy it can be with Timeline Maker Professional.If you’ve been creating timeline charts on a regular basis then you already know what an intricate, time consuming process it]]></description>
			<content:encoded><![CDATA[There's No Other Timeline Tool Like Timeline Maker!If you’ve been struggling to create timeline charts manually or wrestling with ordinary office software like Excel, Visio or MS Project, then you will really appreciate how easy it can be with Timeline Maker Professional.If you’ve been creating timeline charts on a regular basis then you already know what an intricate, time consuming process it]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/07/04/timeline-maker-professional-2-1-8-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MathWave EasyFit Professional 5.40</title>
		<link>http://www.rapid.pk/2010/01/mathwave-easyfit-professional-530.html</link>
		<comments>http://www.rapid.pk/2010/01/mathwave-easyfit-professional-530.html#comments</comments>
		<pubDate>Sat, 03 Jul 2010 21:51:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[EasyFit – Distribution Fitting Made EasyEasyFit helps you deal with uncertainty and make informed decisions by analyzing your probability data and selecting the best fitting distribution. EasyFit allows to easily fit a large number of distributions to your data in seconds, saves time and prevents analysis errors.Selecting an appropriate distribution can be a critical success factor for your]]></description>
			<content:encoded><![CDATA[EasyFit – Distribution Fitting Made EasyEasyFit helps you deal with uncertainty and make informed decisions by analyzing your probability data and selecting the best fitting distribution. EasyFit allows to easily fit a large number of distributions to your data in seconds, saves time and prevents analysis errors.Selecting an appropriate distribution can be a critical success factor for your]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/07/04/mathwave-easyfit-professional-5-40/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FME Desktop 2010 SP2.6225</title>
		<link>http://www.rapid.pk/2010/07/fme-desktop-2010-sp26225.html</link>
		<comments>http://www.rapid.pk/2010/07/fme-desktop-2010-sp26225.html#comments</comments>
		<pubDate>Fri, 02 Jul 2010 10:55:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[appz]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[engineering]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[FME Desktop is a flexible and powerful spatial ETL toolset that makes it easy for you to translate, transform and integrate spatial data in any format or application. Here are the top ten features, capabilities and components available in FME Desktop:Support for 225+ FormatsRead and write data in over 225 formats with a single toolset. FME Desktop format support is unrivalled in the industry and]]></description>
			<content:encoded><![CDATA[FME Desktop is a flexible and powerful spatial ETL toolset that makes it easy for you to translate, transform and integrate spatial data in any format or application. Here are the top ten features, capabilities and components available in FME Desktop:Support for 225+ FormatsRead and write data in over 225 formats with a single toolset. FME Desktop format support is unrivalled in the industry and]]></content:encoded>
			<wfw:commentRss>http://security.anti-abuse.com/index.php/2010/07/02/fme-desktop-2010-sp2-6225/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

