<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4818746623647880677</id><updated>2012-01-03T08:35:20.510-08:00</updated><title type='text'>Java Software Development</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default?start-index=101&amp;max-results=100'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>428</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-4557777781605257508</id><published>2012-01-03T07:49:00.000-08:00</published><updated>2012-01-03T08:35:20.631-08:00</updated><title type='text'>Remote JMX client</title><content type='html'>&lt;div&gt;&lt;a href="http://docs.oracle.com/javase/6/docs/technotes/guides/jmx/"&gt;&lt;span&gt;Java 6 JMX&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://docs.oracle.com/javase/6/docs/technotes/guides/jmx/examples/Basic/Client.java"&gt;&lt;span&gt;Code Example&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Add these properties to the target VM to specify the jmx port and allow remote connections so you can get to it from other systems without the need for authentication.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=9999"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;div&gt;&lt;span &gt;The example below demonstrates the following:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: arial; "&gt;Connection&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: arial; "&gt;Listing all MBeans&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: arial; "&gt;Listing all MBean attributes, types, and mutability&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: arial; "&gt;Listing all MBean operations, parameters, and return types&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: arial; "&gt;Getting an attributes current value&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: arial; "&gt;Setting an attributes value&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: arial; "&gt;Invoking operations&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/span&gt;&lt;code&gt;&lt;pre&gt;&lt;span  &gt;&lt;span style="white-space: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;import java.io.IOException;&lt;br /&gt;import java.util.Iterator;&lt;br /&gt;import java.util.Set;&lt;br /&gt;&lt;br /&gt;import javax.management.Attribute;&lt;br /&gt;import javax.management.AttributeNotFoundException;&lt;br /&gt;import javax.management.InstanceNotFoundException;&lt;br /&gt;import javax.management.IntrospectionException;&lt;br /&gt;import javax.management.InvalidAttributeValueException;&lt;br /&gt;import javax.management.MBeanAttributeInfo;&lt;br /&gt;import javax.management.MBeanException;&lt;br /&gt;import javax.management.MBeanInfo;&lt;br /&gt;import javax.management.MBeanServerConnection;&lt;br /&gt;import javax.management.MalformedObjectNameException;&lt;br /&gt;import javax.management.ObjectName;&lt;br /&gt;import javax.management.ReflectionException;&lt;br /&gt;import javax.management.remote.JMXConnector;&lt;br /&gt;import javax.management.remote.JMXConnectorFactory;&lt;br /&gt;import javax.management.remote.JMXServiceURL;&lt;br /&gt;&lt;br /&gt;public class MBeanClient&lt;br /&gt;{&lt;br /&gt; public static void main(String[] args) throws IOException, MalformedObjectNameException, NullPointerException,&lt;br /&gt;     InstanceNotFoundException, ReflectionException, IntrospectionException, AttributeNotFoundException,&lt;br /&gt;     MBeanException, InvalidAttributeValueException&lt;br /&gt; {&lt;br /&gt;   // Connect to server&lt;br /&gt;   JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi");&lt;br /&gt;   JMXConnector jmxc = JMXConnectorFactory.connect(url, null);&lt;br /&gt;   MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();&lt;br /&gt;&lt;br /&gt;   // List all MBeans&lt;br /&gt;   Set names = mbsc.queryNames(null, null);&lt;br /&gt;   for (Iterator i = names.iterator(); i.hasNext();)&lt;br /&gt;   {&lt;br /&gt;     ObjectName on = (ObjectName) i.next();&lt;br /&gt;     System.out.println("\tObjectName = " + on);&lt;br /&gt;     listAttributes(mbsc, on.getCanonicalName());&lt;br /&gt;     listOperations(mbsc, on.getCanonicalName());&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   // get value of SomeAttributeName&lt;br /&gt;   ObjectName someMBeanName = new ObjectName("TopNodeName:subNodeName=Foo,mbeanName=FooBar");&lt;br /&gt;   System.out.println("MaxFileSize: " + mbsc.getAttribute(someMBeanName, "SomeAttributeName"));&lt;br /&gt;&lt;br /&gt;   // set value of SomeAttributeName&lt;br /&gt;   mbsc.setAttribute(someMBeanName, new Attribute("SomeAttributeName", 10));&lt;br /&gt;&lt;br /&gt;   // get new value of SomeAttributeName&lt;br /&gt;   System.out.println("SomeAttributeName: " + mbsc.getAttribute(someMBeanName, "SomeAttributeName"));&lt;br /&gt;&lt;br /&gt;   // invoke operation&lt;br /&gt;   mbsc.invoke(someMBeanName, "someOperationName", null, null);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private static void listAttributes(MBeanServerConnection mbsc, String canonicalName)&lt;br /&gt;     throws MalformedObjectNameException, NullPointerException, InstanceNotFoundException, IntrospectionException,&lt;br /&gt;     ReflectionException, IOException&lt;br /&gt; {&lt;br /&gt;   // List all mbean attributes&lt;br /&gt;   ObjectName objectName = new ObjectName(canonicalName);&lt;br /&gt;   MBeanInfo mbeanInfo = mbsc.getMBeanInfo(objectName);&lt;br /&gt;   MBeanAttributeInfo[] attrInfo = mbeanInfo.getAttributes();&lt;br /&gt;   for (MBeanAttributeInfo info: attrInfo)&lt;br /&gt;   {&lt;br /&gt;     System.out.println(info);&lt;br /&gt;   }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private static void listOperations(MBeanServerConnection mbsc, String canonicalName) throws MalformedObjectNameException, NullPointerException, InstanceNotFoundException, IntrospectionException, ReflectionException, IOException&lt;br /&gt; {&lt;br /&gt;   ObjectName objectName = new ObjectName(canonicalName);&lt;br /&gt;   MBeanInfo mbeanInfo = mbsc.getMBeanInfo(objectName);&lt;br /&gt;   MBeanOperationInfo[] operInfo = mbeanInfo.getOperations();&lt;br /&gt;   for (MBeanOperationInfo info: operInfo)&lt;br /&gt;   {&lt;br /&gt;     System.out.println(info);&lt;br /&gt;   }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-4557777781605257508?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/4557777781605257508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=4557777781605257508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4557777781605257508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4557777781605257508'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2012/01/remote-jmx-client.html' title='Remote JMX client'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-6072214853209160758</id><published>2011-11-30T09:04:00.001-08:00</published><updated>2011-11-30T09:04:44.228-08:00</updated><title type='text'>Batteries</title><content type='html'>&lt;a href="http://www.batteryjunction.com/titanium-cr14505-craa--3v.html"&gt;CR14505&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-6072214853209160758?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/6072214853209160758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=6072214853209160758' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6072214853209160758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6072214853209160758'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/11/batteries.html' title='Batteries'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-5394495365218842578</id><published>2011-11-29T08:52:00.000-08:00</published><updated>2011-11-29T14:13:24.805-08:00</updated><title type='text'>I2C addressing</title><content type='html'>&lt;a href="http://electronics.stackexchange.com/questions/7549/what-i2c-address-should-i-choose"&gt;what-i2c-address-should-i-choose&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.robot-electronics.co.uk/htm/usb_i2c_tech.htm"&gt;usb_i2c_tech&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-5394495365218842578?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/5394495365218842578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=5394495365218842578' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5394495365218842578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5394495365218842578'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/11/i2c-addressing.html' title='I2C addressing'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-6662063063727550192</id><published>2011-11-21T12:59:00.000-08:00</published><updated>2011-11-21T13:06:52.748-08:00</updated><title type='text'>HOWTO install Flashplayer 11 on Firefox 8 on Ubuntu 10.04 64bit LTS</title><content type='html'>&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Download Flashplayer &lt;a href="http://get.adobe.com/flashplayer/completion/?installer=Flash_Player_11_for_other_Linux_(.tar.gz)_64-bit"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Copy libflashplayer.so to /usr/lib/firefox-8.0/plugins&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Create symbolic link: sudo ln -s /usr/lib/firefox-8.0/plugins/libflashplayer.so /usr/lib/firefox-addons&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Restart Firefox&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-6662063063727550192?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/6662063063727550192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=6662063063727550192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6662063063727550192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6662063063727550192'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/11/howto-install-flashplayer-11-on-ubuntu.html' title='HOWTO install Flashplayer 11 on Firefox 8 on Ubuntu 10.04 64bit LTS'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-7861501706121354023</id><published>2011-11-21T06:58:00.000-08:00</published><updated>2011-11-21T07:15:09.835-08:00</updated><title type='text'>Curl Rest Examples:</title><content type='html'>&lt;b&gt;GET&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;curl -X GET -H "Content-Type:application/xml" "http://localhost:8080/some/path/505?username=foo&amp;password=bar"&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Create&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;curl -X PUT -H "Accept: *" -d @someFile.xml "http://localhost:8080/some/path?username=foo&amp;password=bar"&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Create or Update&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;curl -X POST -H "Content-Type:application/xml" -d @someFile.xml "http://localhost:8080/some/path/save?username=foo&amp;password=bar"&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Delete&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;curl -X DELETE -H 'Content-Type:application/xml' -d @someFile.xml "http://localhost:8080/some/path?username=foo&amp;password=bar"&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Upload file&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;curl -X PUT -H 'Content-Type:multipart/form-data' -F "someFile.csv=@someFile.csv;type=text/csv" "http://localhost:8080/some/path/505?username=foo&amp;password=bar" --verbose&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Download file&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;curl -H "Accept: *" "http://localhost:8080/some/path/506?username=foo&amp;password=bar" --O "foo.bar" --verbose&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-7861501706121354023?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/7861501706121354023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=7861501706121354023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7861501706121354023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7861501706121354023'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/11/curl.html' title='Curl Rest Examples:'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-7933169748003680851</id><published>2011-11-02T08:06:00.001-07:00</published><updated>2011-11-02T08:06:40.338-07:00</updated><title type='text'>Maven</title><content type='html'>Create html dependency report&lt;br /&gt;&lt;br /&gt;mvn project-inf-reports:dependencies&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-7933169748003680851?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/7933169748003680851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=7933169748003680851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7933169748003680851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7933169748003680851'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/11/maven.html' title='Maven'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-1498685471984497037</id><published>2011-10-13T08:59:00.000-07:00</published><updated>2011-10-13T09:03:28.788-07:00</updated><title type='text'>Hibernate criteria aliases</title><content type='html'>If you create an alias, then create a criteria and join to another table, etc., it is only going to resolve {alias} to the root table that the alias was created for.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;hibernateCriteria.createCriteria("orderItems", "i", Criteria.LEFT_JOIN ).add(&lt;br /&gt;    Restrictions.or(Restrictions.sqlRestriction("orderNo=?", orderNo, Hibernate.Long),&lt;br /&gt;    Restrictions.sqlRestriction("{alias}.item_id in (SELECT item_id FROM items WHERE item_id = ?)", itemId, Hibernate.LONG)&lt;br /&gt;                            )&lt;br /&gt;);    &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lessons Learnt Blog:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Criteria c = session.createCriteria(BaseTable.class, "base");&lt;br /&gt;Criteria secondCriteria = c.createCriteria("secondTable","second", CriteriaSpecification.LEFT_JOIN);&lt;br /&gt;secondCriteria.add(Restrictions.sqlRestriction("{alias}.id = someCoolCondition");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;From the Hibernate docs:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;List cats = sess.createCriteria(Cat.class)&lt;br /&gt;.createAlias("kittens", "kt")&lt;br /&gt;.createAlias("mate", "mt")&lt;br /&gt;.add( Restrictions.eqProperty("kt.name", "mt.name") )&lt;br /&gt;.list();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Multiple joins:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The following is a native sql template which has the &lt;aliasname&gt; replaced with a generated alias.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;     "EXISTS " + //&lt;br /&gt;     "(SELECT 1 " + //&lt;br /&gt;     " FROM" + //&lt;br /&gt;     "  orderItems &amp;lt;aliasname&gt;" + //&lt;br /&gt;     " WHERE" + //&lt;br /&gt;     "  &amp;lt;aliasname&gt;.orderId = {alias}.id" + //&lt;br /&gt;     "  AND &amp;lt;aliasname&gt;.name='&amp;lt;propertyname&gt;'" + //&lt;br /&gt;     "  AND &amp;lt;otherclause&gt;" + //&lt;br /&gt;     ")";&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-1498685471984497037?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/1498685471984497037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=1498685471984497037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1498685471984497037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1498685471984497037'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/10/hibernate-criteria-aliases.html' title='Hibernate criteria aliases'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-3295909239532360042</id><published>2011-09-23T04:18:00.000-07:00</published><updated>2011-09-23T04:18:27.818-07:00</updated><title type='text'>Linux rfcomm serial communication</title><content type='html'>Scan to discover Bluetooth device&lt;br /&gt; &lt;br /&gt;Pair with Bluetooth device&lt;br /&gt;&lt;br /&gt;Connect with SPP&lt;br /&gt;&lt;br /&gt;In one shell/terminal - pipe the input from the Bluetooth device to a file&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cat /dev/rfcomm0 &amp;gt; datalog.txt&lt;br /&gt;&lt;br /&gt;In another shell/terminal - echo some command to the Bluetooth device&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; echo "8;" &amp;gt; /dev/rfcomm0&lt;br /&gt;&lt;br /&gt;Quit the cat command&lt;br /&gt;&lt;br /&gt;Inspect the output&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; less datalog.txt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-3295909239532360042?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/3295909239532360042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=3295909239532360042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/3295909239532360042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/3295909239532360042'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/09/linux-rfcomm-serial-communication.html' title='Linux rfcomm serial communication'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-1762819219147210302</id><published>2011-09-22T05:19:00.001-07:00</published><updated>2011-09-26T12:13:46.135-07:00</updated><title type='text'>Windows Soft Link</title><content type='html'>mklink (a windows softlink) &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-1762819219147210302?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/1762819219147210302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=1762819219147210302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1762819219147210302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1762819219147210302'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/09/windows-sofft-link.html' title='Windows Soft Link'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-3352222344300340665</id><published>2011-09-16T08:01:00.000-07:00</published><updated>2011-09-16T08:01:02.989-07:00</updated><title type='text'>Manifest classpath</title><content type='html'>&lt;a href="http://todayguesswhat.blogspot.com/2011/03/jar-manifestmf-class-path-referencing.html"&gt;Manifest classpath examples&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-3352222344300340665?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/3352222344300340665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=3352222344300340665' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/3352222344300340665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/3352222344300340665'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/09/manifest-classpath.html' title='Manifest classpath'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-4644412860456434066</id><published>2011-09-06T12:40:00.000-07:00</published><updated>2011-09-07T06:43:45.617-07:00</updated><title type='text'>Message Digest</title><content type='html'>MD5 throughput was ~15 GBytes/minute on a quad core Intel i5 @ 2.67GHz running Ubuntu Linux 10.04 and Java(TM) SE Runtime Environment (build 1.6.0_22-b04) Java HotSpot(TM) Server VM (build 17.1-b03, mixed mode)&lt;br /&gt;&lt;br /&gt;The throughput was the same whether the digest was computed from bytes on disk or memory.org.apache.commons.codec.digest.DigestUtilsorg.apache.commons.codec.binary.Hex&lt;br /&gt;&lt;br /&gt;&lt;b&gt;From file&lt;/b&gt; &lt;br /&gt;&lt;pre&gt;      String filename = "src/test/resources/somefile";&lt;br /&gt;      is = new FileInputStream(filename);&lt;br /&gt;      assertEquals("bd6b1dc1ac767b018003572a767d2d0d", DigestUtils.md5Hex(is));&lt;br /&gt;&lt;/pre&gt;&lt;b&gt;Pipe filter stream&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;      is = new DigestInputStream( new BufferedInputStream(new FileInputStream(filename)), MessageDigest.getInstance("MD5"));&lt;br /&gt;&lt;br /&gt;  /*&lt;br /&gt;   * Implementations using DigestInputStream would not need the byte handling as it would be just one filter in a pipe&lt;br /&gt;   * that is being pumped for some other purpose.&lt;br /&gt;   */&lt;br /&gt;      final byte[] buf = new byte[2048];&lt;br /&gt;      while (dis.read(buf) == -1)&lt;br /&gt;      {&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      final MessageDigest d = dis.getMessageDigest();&lt;br /&gt;      assertEquals("bd6b1dc1ac767b018003572a767d2d0d", Hex.encodeHexString(d.digest()));&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-4644412860456434066?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/4644412860456434066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=4644412860456434066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4644412860456434066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4644412860456434066'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/09/message-digest.html' title='Message Digest'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-8752670442211423138</id><published>2011-05-05T13:01:00.001-07:00</published><updated>2011-05-05T13:01:28.292-07:00</updated><title type='text'>JVM thread dump</title><content type='html'>Java options, which lets you direct thread dumps generated via “kill -3” to a file:&lt;br /&gt;&lt;br /&gt;-XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=jvm.log&lt;br /&gt;&lt;br /&gt;Pretty cool, but there’s one small catch: the thread dumps still get written to the JVM’s TTY as well as the file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-8752670442211423138?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/8752670442211423138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=8752670442211423138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8752670442211423138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8752670442211423138'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/05/jvm-thread-dump.html' title='JVM thread dump'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-242276502210135159</id><published>2011-04-29T18:33:00.000-07:00</published><updated>2011-04-29T18:34:52.062-07:00</updated><title type='text'>File Locking</title><content type='html'>&lt;a href="http://www.javabeat.net/tips/37-locking-files-using-java.html"&gt;File locking example&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-242276502210135159?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/242276502210135159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=242276502210135159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/242276502210135159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/242276502210135159'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/04/file-locking.html' title='File Locking'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-4474921590230282389</id><published>2011-04-18T06:33:00.000-07:00</published><updated>2011-04-18T06:34:08.931-07:00</updated><title type='text'>Interviewing developers</title><content type='html'>&lt;a href="http://www.richard-banks.org/2009/08/some-developers-just-cant-develop.html"&gt;Some developers can't code&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-4474921590230282389?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/4474921590230282389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=4474921590230282389' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4474921590230282389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4474921590230282389'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/04/interviewing-developers.html' title='Interviewing developers'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-6215356935030107856</id><published>2011-04-12T08:07:00.000-07:00</published><updated>2011-04-12T08:08:44.263-07:00</updated><title type='text'>Thread dump example</title><content type='html'>&lt;pre&gt;&lt;br /&gt;2011-04-12 09:18:25&lt;br /&gt;Full thread dump OpenJDK 64-Bit Server VM (19.0-b09 mixed mode):&lt;br /&gt;&lt;br /&gt;"Attach Listener" daemon prio=10 tid=0x0000000000b0d000 nid=0x33ef waiting on condition [0x0000000000000000]&lt;br /&gt;   java.lang.Thread.State: RUNNABLE&lt;br /&gt;&lt;br /&gt;"DestroyJavaVM" prio=10 tid=0x00007f3a2408d000 nid=0x3391 waiting on condition [0x0000000000000000]&lt;br /&gt;   java.lang.Thread.State: RUNNABLE&lt;br /&gt;&lt;br /&gt;"File I/O" prio=10 tid=0x00007f3a2408b800 nid=0x33a2 runnable [0x00007f3a3157e000]&lt;br /&gt;   java.lang.Thread.State: RUNNABLE&lt;br /&gt; at java.io.FileInputStream.read(Native Method)&lt;br /&gt; at ThreadDumpTest$4.run(ThreadDumpTest.java:97)&lt;br /&gt; at java.lang.Thread.run(Thread.java:636)&lt;br /&gt;&lt;br /&gt;"Blocked" prio=10 tid=0x00007f3a24081000 nid=0x33a1 waiting for monitor entry [0x00007f3a3167f000]&lt;br /&gt;   java.lang.Thread.State: BLOCKED (on object monitor)&lt;br /&gt; at ThreadDumpTest$3.run(ThreadDumpTest.java:74)&lt;br /&gt; - waiting to lock &lt;0x00000007d68b4068&gt; (a java.lang.Object)&lt;br /&gt; at java.lang.Thread.run(Thread.java:636)&lt;br /&gt;&lt;br /&gt;"Blocking" prio=10 tid=0x00007f3a2407f000 nid=0x33a0 in Object.wait() [0x00007f3a31780000]&lt;br /&gt;   java.lang.Thread.State: WAITING (on object monitor)&lt;br /&gt; at java.lang.Object.wait(Native Method)&lt;br /&gt; - waiting on &lt;0x00000007d69de280&gt; (a java.lang.Object)&lt;br /&gt; at java.lang.Object.wait(Object.java:502)&lt;br /&gt; at ThreadDumpTest$2.run(ThreadDumpTest.java:52)&lt;br /&gt; - locked &lt;0x00000007d69de280&gt; (a java.lang.Object)&lt;br /&gt; - locked &lt;0x00000007d68b4068&gt; (a java.lang.Object)&lt;br /&gt; at java.lang.Thread.run(Thread.java:636)&lt;br /&gt;&lt;br /&gt;"Waiting" prio=10 tid=0x00007f3a2407e000 nid=0x339f in Object.wait() [0x00007f3a31881000]&lt;br /&gt;   java.lang.Thread.State: WAITING (on object monitor)&lt;br /&gt; at java.lang.Object.wait(Native Method)&lt;br /&gt; - waiting on &lt;0x00000007d693ee00&gt; (a java.lang.Object)&lt;br /&gt; at java.lang.Object.wait(Object.java:502)&lt;br /&gt; at ThreadDumpTest$1.run(ThreadDumpTest.java:26)&lt;br /&gt; - locked &lt;0x00000007d693ee00&gt; (a java.lang.Object)&lt;br /&gt; at java.lang.Thread.run(Thread.java:636)&lt;br /&gt;&lt;br /&gt;"Low Memory Detector" daemon prio=10 tid=0x00007f3a24001000 nid=0x339d runnable [0x0000000000000000]&lt;br /&gt;   java.lang.Thread.State: RUNNABLE&lt;br /&gt;&lt;br /&gt;"CompilerThread1" daemon prio=10 tid=0x0000000000b93000 nid=0x339c waiting on condition [0x0000000000000000]&lt;br /&gt;   java.lang.Thread.State: RUNNABLE&lt;br /&gt;&lt;br /&gt;"CompilerThread0" daemon prio=10 tid=0x0000000000b90000 nid=0x339b waiting on condition [0x0000000000000000]&lt;br /&gt;   java.lang.Thread.State: RUNNABLE&lt;br /&gt;&lt;br /&gt;"Signal Dispatcher" daemon prio=10 tid=0x0000000000b8e800 nid=0x339a runnable [0x0000000000000000]&lt;br /&gt;   java.lang.Thread.State: RUNNABLE&lt;br /&gt;&lt;br /&gt;"Finalizer" daemon prio=10 tid=0x0000000000b6f000 nid=0x3398 in Object.wait() [0x00007f3a31dc5000]&lt;br /&gt;   java.lang.Thread.State: WAITING (on object monitor)&lt;br /&gt; at java.lang.Object.wait(Native Method)&lt;br /&gt; - waiting on &lt;0x00000007d6801310&gt; (a java.lang.ref.ReferenceQueue$Lock)&lt;br /&gt; at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:133)&lt;br /&gt; - locked &lt;0x00000007d6801310&gt; (a java.lang.ref.ReferenceQueue$Lock)&lt;br /&gt; at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:149)&lt;br /&gt; at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)&lt;br /&gt;&lt;br /&gt;"Reference Handler" daemon prio=10 tid=0x0000000000b67800 nid=0x3397 in Object.wait() [0x00007f3a31ec6000]&lt;br /&gt;   java.lang.Thread.State: WAITING (on object monitor)&lt;br /&gt; at java.lang.Object.wait(Native Method)&lt;br /&gt; - waiting on &lt;0x00000007d68011e8&gt; (a java.lang.ref.Reference$Lock)&lt;br /&gt; at java.lang.Object.wait(Object.java:502)&lt;br /&gt; at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)&lt;br /&gt; - locked &lt;0x00000007d68011e8&gt; (a java.lang.ref.Reference$Lock)&lt;br /&gt;&lt;br /&gt;"VM Thread" prio=10 tid=0x0000000000b60800 nid=0x3396 runnable &lt;br /&gt;&lt;br /&gt;"GC task thread#0 (ParallelGC)" prio=10 tid=0x0000000000b03000 nid=0x3392 runnable &lt;br /&gt;&lt;br /&gt;"GC task thread#1 (ParallelGC)" prio=10 tid=0x0000000000b05000 nid=0x3393 runnable &lt;br /&gt;&lt;br /&gt;"GC task thread#2 (ParallelGC)" prio=10 tid=0x0000000000b07000 nid=0x3394 runnable &lt;br /&gt;&lt;br /&gt;"GC task thread#3 (ParallelGC)" prio=10 tid=0x0000000000b08800 nid=0x3395 runnable &lt;br /&gt;&lt;br /&gt;"VM Periodic Task Thread" prio=10 tid=0x00007f3a2400c000 nid=0x339e waiting on condition &lt;br /&gt;&lt;br /&gt;JNI global references: 869&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;import java.io.FileInputStream;&lt;br /&gt;import java.util.concurrent.atomic.AtomicInteger;&lt;br /&gt;&lt;br /&gt;public class ThreadDumpTest&lt;br /&gt;{&lt;br /&gt;  static final Object o = new Object();&lt;br /&gt;&lt;br /&gt;  /**&lt;br /&gt;   * @param args&lt;br /&gt;   */&lt;br /&gt;  public static void main(String[] args)&lt;br /&gt;  {&lt;br /&gt;    new Thread(new Runnable()&lt;br /&gt;      {&lt;br /&gt;        @Override&lt;br /&gt;        public void run()&lt;br /&gt;        {&lt;br /&gt;          Thread.currentThread().setName("Waiting");&lt;br /&gt;          // Waiting&lt;br /&gt;          try&lt;br /&gt;          {&lt;br /&gt;            System.out.println("Waiting");&lt;br /&gt;            Object x = new Object();&lt;br /&gt;            synchronized (x)&lt;br /&gt;            {&lt;br /&gt;              x.wait();              &lt;br /&gt;            }&lt;br /&gt;          }&lt;br /&gt;          catch (InterruptedException e)&lt;br /&gt;          {&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;          }&lt;br /&gt;          System.out.println("Finished waiting");&lt;br /&gt;        }&lt;br /&gt;      }).start();&lt;br /&gt;&lt;br /&gt;    new Thread(new Runnable()&lt;br /&gt;      {&lt;br /&gt;        @Override&lt;br /&gt;        public void run()&lt;br /&gt;        {&lt;br /&gt;          Thread.currentThread().setName("Blocking");&lt;br /&gt;          // Blocking&lt;br /&gt;          synchronized (o)&lt;br /&gt;          {&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;              System.out.println("Blocking");&lt;br /&gt;              Object x = new Object();&lt;br /&gt;              synchronized (x)&lt;br /&gt;              {&lt;br /&gt;                x.wait();              &lt;br /&gt;              }&lt;br /&gt;            }&lt;br /&gt;            catch (InterruptedException e)&lt;br /&gt;            {&lt;br /&gt;              e.printStackTrace();&lt;br /&gt;            }&lt;br /&gt;            System.out.println("Finished blocking");&lt;br /&gt;          }&lt;br /&gt;        }&lt;br /&gt;      }).start();&lt;br /&gt;&lt;br /&gt;    new Thread(new Runnable()&lt;br /&gt;      {&lt;br /&gt;        @Override&lt;br /&gt;        public void run()&lt;br /&gt;        {&lt;br /&gt;          Thread.currentThread().setName("Blocked");&lt;br /&gt;          // Blocked&lt;br /&gt;          System.out.println("Getting blocked");&lt;br /&gt;          synchronized (o)&lt;br /&gt;          {&lt;br /&gt;            System.out.println(Thread.currentThread().getName() + ": should have been blocked");&lt;br /&gt;          }&lt;br /&gt;        }&lt;br /&gt;      }).start();&lt;br /&gt;&lt;br /&gt;    new Thread(new Runnable()&lt;br /&gt;      {&lt;br /&gt;        final AtomicInteger sum = new AtomicInteger();&lt;br /&gt;&lt;br /&gt;        @Override&lt;br /&gt;        public void run()&lt;br /&gt;        {&lt;br /&gt;          // File I/O&lt;br /&gt;          Thread.currentThread().setName("File I/O");&lt;br /&gt;          FileInputStream fis;&lt;br /&gt;          try&lt;br /&gt;          {&lt;br /&gt;            fis = new FileInputStream("/home/tcollinsworth/Desktop/elekta-crash-1/jboss-elekta-1.trace");&lt;br /&gt;            System.out.println("Reading file");&lt;br /&gt;            int inByte = 0;&lt;br /&gt;            do&lt;br /&gt;            {&lt;br /&gt;              sum.addAndGet(inByte);&lt;br /&gt;              inByte = fis.read();&lt;br /&gt;            }&lt;br /&gt;            while (inByte != -1);&lt;br /&gt;            System.out.println("Finished reading file");&lt;br /&gt;          }&lt;br /&gt;          catch (Exception e)&lt;br /&gt;          {&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;          }&lt;br /&gt;        }&lt;br /&gt;      }).start();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-6215356935030107856?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/6215356935030107856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=6215356935030107856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6215356935030107856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6215356935030107856'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/04/thread-dump-example.html' title='Thread dump example'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-7197440853960693359</id><published>2011-03-30T08:40:00.001-07:00</published><updated>2011-03-30T08:45:08.447-07:00</updated><title type='text'>Oracle find all constraints</title><content type='html'>Find all cascade constraints&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SELECT &lt;br /&gt; lc.table_name loc_table,&lt;br /&gt; lc.constraint_name loc_cons,&lt;br /&gt; ln.column_name loc_col,&lt;br /&gt; lc.r_constraint_name rem_cons,&lt;br /&gt; rc.table_name rem_table, &lt;br /&gt; rn.column_name rem_column,&lt;br /&gt; lc.status,&lt;br /&gt; lc.delete_rule,&lt;br /&gt; lc.deferrable,&lt;br /&gt; lc.deferred,&lt;br /&gt; lc.validated&lt;br /&gt;FROM &lt;br /&gt; user_cons_columns ln,&lt;br /&gt; user_cons_columns rn,&lt;br /&gt; user_constraints lc&lt;br /&gt;INNER JOIN &lt;br /&gt; user_constraints rc ON lc.r_constraint_name = rc.constraint_name &lt;br /&gt;WHERE&lt;br /&gt; (rc.table_name IN ('TABLE_NAME')&lt;br /&gt; OR lc.table_name IN ('TABLE_NAME'))&lt;br /&gt; AND ln.constraint_name = lc.constraint_name&lt;br /&gt; AND rn.constraint_name = rc.constraint_name&lt;br /&gt;ORDER BY lc.table_name;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-7197440853960693359?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/7197440853960693359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=7197440853960693359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7197440853960693359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7197440853960693359'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/03/oracle-find-all-constraints.html' title='Oracle find all constraints'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-8789902658948684112</id><published>2011-03-28T12:10:00.000-07:00</published><updated>2011-03-28T12:13:12.219-07:00</updated><title type='text'>Oracle data pump</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Export: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;1. Ensure that a directory is setup for the data pump in oracle&lt;br /&gt;  a. Create the directory on the physical system&lt;br /&gt;  b. Login via SQLPlus as a dba account&lt;br /&gt;   i. CREATE DIRECTORY &amp;lt;friendly_name&gt; AS ‘/path/to/dump/dir’;&lt;br /&gt;   ii. commit;&lt;br /&gt;   iii. GRANT READ, WRITE ON DIRECTORY &amp;lt;friendly_name&gt; to &amp;lt;schema_user&gt;&lt;br /&gt;   iv. commit;&lt;br /&gt;2. Run the export&lt;br /&gt;  a. expdp username/password&amp;lt;@SCHEMA&gt; DUMPFILE=&amp;lt;output_filename.dmp&gt; LOGFILE=&amp;lt;logfile.log&gt; DIRECTORY=&amp;lt;friendly_name&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Import:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;1. Ensure that a directory is setup for the data pump in oracle&lt;br /&gt;  a. Create the directory on the physical system&lt;br /&gt;  b. Login via SQLPlus as a dba account&lt;br /&gt;   i. CREATE DIRECTORY &amp;lt;friendly_name&gt; AS ‘/path/to/dump/dir’;&lt;br /&gt;   ii. commit;&lt;br /&gt;   iii. GRANT READ, WRITE ON DIRECTORY &amp;lt;friendly_name&gt; to &amp;lt;schema_user&gt;&lt;br /&gt;   iv. commit;&lt;br /&gt;2. Run the import&lt;br /&gt;  a. impdp username/password&amp;lt;@SCHEMA&gt; DUMPFILE=&amp;lt;input_filename.dmp&gt; LOGFILE=&amp;lt;import_log.log&gt; DIRECTORY=&amp;lt;friendly_name&gt; TRANSFORM=OID:N REMAP_SCHEMA=&amp;lt;Source_Schema&gt;:&amp;lt;Destination_Schema&gt;&lt;br /&gt;  b. NOTE: the REMAP_SCHEMA is only needed if changing the schema names between source and destination.&lt;br /&gt;3. Recompile any remaining invalid objects&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-8789902658948684112?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/8789902658948684112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=8789902658948684112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8789902658948684112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8789902658948684112'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/03/oracle-data-pump.html' title='Oracle data pump'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-796450147212787649</id><published>2011-03-25T07:17:00.000-07:00</published><updated>2011-03-25T07:19:38.813-07:00</updated><title type='text'>DataScienceToolkit</title><content type='html'>&lt;a href="http://www.datasciencetoolkit.org"&gt;CataScienceToolkit&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A collection of the best open data sets and open-source tools for data science, wrapped in an easy-to-use REST/JSON API with command line, Python and Javascript interfaces. Available as a self-contained VM or EC2 AMI that you can deploy yourself.&lt;br /&gt;&lt;br /&gt;It's essentially a specialized Linux distribution, with a lot of useful data software pre-installed and exposing a simple interface. For full documentation, see http://www.datasciencetoolkit.org/developerdocs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-796450147212787649?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/796450147212787649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=796450147212787649' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/796450147212787649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/796450147212787649'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/03/datasciencetoolkit.html' title='DataScienceToolkit'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-8243213452768400444</id><published>2011-03-23T12:37:00.001-07:00</published><updated>2011-03-23T12:37:37.546-07:00</updated><title type='text'>FlyCam</title><content type='html'>&lt;a href="http://www.hacktronics.com/Video-Audio/FlyCamOne2/flypage.tpl.html"&gt;FlyCam&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-8243213452768400444?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/8243213452768400444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=8243213452768400444' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8243213452768400444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8243213452768400444'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/03/flycam.html' title='FlyCam'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-7220672757404003715</id><published>2011-03-22T10:47:00.001-07:00</published><updated>2011-12-03T06:39:39.367-08:00</updated><title type='text'>Kinect your internet of things</title><content type='html'>&lt;a href="http://www.readwriteweb.com/archives/could_kinect_control_your_internet_of_things.php"&gt;How the world will interact with things in the future&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-7220672757404003715?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/7220672757404003715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=7220672757404003715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7220672757404003715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7220672757404003715'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/03/kinect-you-internet-of-things.html' title='Kinect your internet of things'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-3320217886064827584</id><published>2011-01-31T11:55:00.001-08:00</published><updated>2011-01-31T11:55:55.777-08:00</updated><title type='text'>Universal text editor</title><content type='html'>&lt;a href="http://www.sublimetext.com"&gt;Sublime Text&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-3320217886064827584?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/3320217886064827584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=3320217886064827584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/3320217886064827584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/3320217886064827584'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/01/universal-text-editor.html' title='Universal text editor'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-1623481100110686434</id><published>2011-01-26T08:49:00.000-08:00</published><updated>2011-01-26T08:51:40.112-08:00</updated><title type='text'>Code rewrite</title><content type='html'>&lt;a href="http://news.ycombinator.com/item?id=2139028"&gt;Hacher News post&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.joelonsoftware.com/articles/fog0000000069.html"&gt;Joel on software&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-1623481100110686434?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/1623481100110686434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=1623481100110686434' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1623481100110686434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1623481100110686434'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2011/01/code-rewrite.html' title='Code rewrite'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-6588236645276158785</id><published>2010-11-24T16:38:00.001-08:00</published><updated>2010-11-25T18:08:45.534-08:00</updated><title type='text'>PCBs</title><content type='html'>&lt;a href="http://www.custompcb.com/cadcam.htm"&gt;Silver Circuits&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.screamingcircuits.com"&gt;Screaming Circuits&lt;/a&gt; - PCB + Assembly&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ultimatepcb.com/"&gt;UltimatePCB&lt;/a&gt; - PCB + Assembly&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-6588236645276158785?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/6588236645276158785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=6588236645276158785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6588236645276158785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6588236645276158785'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/11/pcbs.html' title='PCBs'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-4000278841444634793</id><published>2010-11-18T08:49:00.001-08:00</published><updated>2010-11-18T08:49:56.065-08:00</updated><title type='text'>Hibernate mapping</title><content type='html'>&lt;a href="http://tadtech.blogspot.com/2007/02/hibernate-when-is-inversetrue-and-when.html"&gt;one -&gt; many inverse&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-4000278841444634793?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/4000278841444634793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=4000278841444634793' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4000278841444634793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4000278841444634793'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/11/hibernate-mapping.html' title='Hibernate mapping'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-1897212508798058733</id><published>2010-10-21T07:50:00.001-07:00</published><updated>2010-10-21T07:50:48.894-07:00</updated><title type='text'>Java XML manipulation</title><content type='html'>http://www.petefreitag.com/item/445.cfm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-1897212508798058733?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/1897212508798058733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=1897212508798058733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1897212508798058733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1897212508798058733'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/10/java-xml-manipulation.html' title='Java XML manipulation'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-7155666579932037108</id><published>2010-10-05T09:42:00.000-07:00</published><updated>2010-10-05T09:43:21.901-07:00</updated><title type='text'>Probabalistic classification</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Naive_Bayes_classifier"&gt;Naive Bayes classifier&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-7155666579932037108?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/7155666579932037108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=7155666579932037108' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7155666579932037108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7155666579932037108'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/10/probabalistic-classification.html' title='Probabalistic classification'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-1560612548060363140</id><published>2010-10-04T11:12:00.000-07:00</published><updated>2010-10-04T11:13:34.473-07:00</updated><title type='text'>You're a bad programmer embrace it</title><content type='html'>&lt;a href="http://agile.dzone.com/articles/youre-bad-programmer-embrace"&gt;article&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-1560612548060363140?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/1560612548060363140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=1560612548060363140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1560612548060363140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1560612548060363140'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/10/youre-bad-programmer-embrace-it.html' title='You&apos;re a bad programmer embrace it'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-679286566349949205</id><published>2010-10-02T18:09:00.000-07:00</published><updated>2010-10-02T18:11:50.300-07:00</updated><title type='text'>FCC testing costs and process</title><content type='html'>&lt;a href="http://www.linxtechnologies.com/Support/Knowledgebase/FCC"&gt;knowledgebase&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;~$5000 for FCC, Canada and European is extra, but not double&lt;br /&gt;&lt;br /&gt;Takes less than 30 days, ~1 week depending on backlog&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-679286566349949205?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/679286566349949205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=679286566349949205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/679286566349949205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/679286566349949205'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/10/fcc-testing-costs-and-process.html' title='FCC testing costs and process'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-3443374393445833589</id><published>2010-09-27T07:46:00.000-07:00</published><updated>2010-09-27T12:36:51.062-07:00</updated><title type='text'>Arduino derivatives</title><content type='html'>&lt;a href="http://www.ladyada.net/make/boarduino/"&gt;Boarduino&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.moderndevice.com/"&gt;RBBB&lt;/a&gt;&lt;br /&gt;FIO&lt;br /&gt;&lt;a href="http://www.pjrc.com/teensy/"&gt;Teensy&lt;/a&gt; &lt;- this is it&lt;br /&gt;&lt;a href="http://www.freeduino.org/"&gt;Freeduino&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sanguino.cc/"&gt;Sanguino&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.illuminatolabs.com/IlluminatoXMachina.htm"&gt;Illuminato&lt;/a&gt; Parallel&lt;br /&gt;Seeeduino&lt;br /&gt;Seeeduino Mega&lt;br /&gt;&lt;br /&gt;hackaday&lt;br /&gt;seeddstudio&lt;br /&gt;engadget&lt;br /&gt;instructables&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-3443374393445833589?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/3443374393445833589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=3443374393445833589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/3443374393445833589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/3443374393445833589'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/09/arduino-derivatives.html' title='Arduino derivatives'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-3224439242356790097</id><published>2010-09-21T13:36:00.000-07:00</published><updated>2010-09-21T13:43:05.804-07:00</updated><title type='text'>Ubuntu mount smb drive</title><content type='html'>&lt;a href="https://wiki.ubuntu.com/MountWindowsSharesPermanently"&gt;HOWTO persistent&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.geekology.co.za/blog/2009/04/ubuntu-linux-quick-tip-mount-samba-windows-file-share-to-folder/"&gt;HOWTO manual&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;sudo apt-get install smbfs&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;create .smbcredentials file with:&lt;br /&gt;username=&lt;br /&gt;password=&lt;br /&gt;domain=&lt;br /&gt;&lt;br /&gt;chmod 600 .smbcredentials&lt;br /&gt;&lt;br /&gt;&lt;b&gt;In fstab create and entry like:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;#rochester nas&lt;br /&gt;//roc-nas.foo.com/pathname /media/roc-nas cifs credentials=/home/username/.smbcredentials,dirmode=0777,file_mode=0777,iocharset=utf8,codepage=cp850,unicode  0  0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;To mount: &lt;/b&gt;&lt;br /&gt;sudo mount /media/mount-name&lt;br /&gt;or&lt;br /&gt;sudo mount -a&lt;br /&gt;&lt;br /&gt;&lt;b&gt;To unmount:&lt;/b&gt;&lt;br /&gt;sudo umount /media/mount-name&lt;br /&gt;or&lt;br /&gt;sudo umount -a&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-3224439242356790097?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/3224439242356790097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=3224439242356790097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/3224439242356790097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/3224439242356790097'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/09/ubuntu-mount-smb-drive.html' title='Ubuntu mount smb drive'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-6345841910254803309</id><published>2010-09-15T18:55:00.000-07:00</published><updated>2010-09-15T18:56:02.957-07:00</updated><title type='text'>MOSFETs</title><content type='html'>&lt;a href="http://www.electronics-tutorials.ws/transistor/tran_6.html"&gt;tutorial&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-6345841910254803309?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/6345841910254803309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=6345841910254803309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6345841910254803309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6345841910254803309'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/09/mosfets.html' title='MOSFETs'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-1683726239352330404</id><published>2010-09-15T10:13:00.000-07:00</published><updated>2010-09-15T10:14:32.604-07:00</updated><title type='text'>Dynamic SQL Oracle PL/SQL</title><content type='html'>&lt;a href="http://download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14261/dynamic.htm#CHDJHAHE"&gt;Examples&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-1683726239352330404?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/1683726239352330404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=1683726239352330404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1683726239352330404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1683726239352330404'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/09/dynamic-sql-oracle-plsql.html' title='Dynamic SQL Oracle PL/SQL'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-5547880391020479274</id><published>2010-09-13T17:07:00.000-07:00</published><updated>2010-09-13T17:17:24.554-07:00</updated><title type='text'>Arduino MMC / SD card read/write</title><content type='html'>&lt;a href="http://www.roland-riegel.de/sd-reader/index.html"&gt;roland-riegel lib&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It includes&lt;br /&gt;&lt;br /&gt;    * low-level MMC, SD and SDHC read/write routines&lt;br /&gt;    * partition table support&lt;br /&gt;    * a simple FAT16/FAT32 read/write implementation&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1273413449"&gt;Seeeduino&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1206874649/8"&gt;&lt;br /&gt;Raw and Fat16&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.makezine.com/archive/2008/06/how_to_sd_card_readwrite.html"&gt;HOWTO&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.alfonsomartone.itb.it/kfmdxc.html"&gt;Detailed description&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-5547880391020479274?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/5547880391020479274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=5547880391020479274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5547880391020479274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5547880391020479274'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/09/arduino-mmc-sd-card-readwrite.html' title='Arduino MMC / SD card read/write'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-4321154944278270492</id><published>2010-09-10T18:32:00.000-07:00</published><updated>2010-09-10T18:33:09.270-07:00</updated><title type='text'>Bluetooth 3.0, WiFi combo chip BMC4325</title><content type='html'>&lt;a href="http://www.softsailor.com/news/1604-broadcom-unveils-first-bluetooth-30-chip-the-bcm4325-combo-chip.html"&gt;Broadcom BMC4325 announcement&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-4321154944278270492?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/4321154944278270492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=4321154944278270492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4321154944278270492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4321154944278270492'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/09/bluetooth-30-wifi-combo-chip-bmc4325.html' title='Bluetooth 3.0, WiFi combo chip BMC4325'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-4787127241172304515</id><published>2010-09-10T17:30:00.001-07:00</published><updated>2010-09-22T20:10:01.110-07:00</updated><title type='text'>Android</title><content type='html'>&lt;a href="http://developer.android.com/resources/faq/commontasks.html#filelist"&gt;Android files&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/resources/faq/commontasks.html"&gt;Common tasks HowTo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/resources/faq/commontasks.html#addmenuitems"&gt;&lt;br /&gt;Binding a List to a data cursor&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/guide/practices/ui_guidelines/icon_design.html"&gt;icon sizes and design&lt;/a&gt;&lt;br /&gt;&lt;a href="http://androiddrawableexplorer.appspot.com/"&gt;Android icon examples&lt;/a&gt;&lt;br /&gt;or on local drive: android-sdk-linux_86/platforms/android-8/data/res&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/guide/developing/tools/hierarchy-viewer.html"&gt;Hierarchy Viewer&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/guide/developing/tools/layoutopt.html"&gt;layoutopt tool&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/guide/topics/ui/layout-objects.html"&gt;Layout Objects&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/resources/tutorials/views/index.html"&gt;Example Views&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/reference/android/R.styleable.html"&gt;R.Stylable class&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/resources/tutorials/views/hello-relativelayout.html"&gt;RelativeLayout example&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.droiddraw.org/widgetguide.html"&gt;Android graphical widget guide&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/resources/tutorials/views/hello-tabwidget.html"&gt;Tab examples&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developerlife.com/tutorials/?p=307"&gt;Table example&lt;/a&gt;&lt;br /&gt;&lt;a href="http://android-pro.blogspot.com/2010/02/table-layout.html"&gt;Table example w/divider&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.droidnova.com/display-borders-in-tablelayout,112.html"&gt;Table row lines hack&lt;/a&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/2387033/android-table-round-border"&gt;Table rounded border&lt;/a&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/1276346/help-in-using-shape-drawable-as-my-background-xml"&gt;Table rounded border example 2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/reference/android/webkit/WebView.html"&gt;WebView - show simple content within an Activity&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/reference/android/app/Service.html"&gt;Service&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/guide/topics/manifest/service-element.html"&gt;Manifest service element&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/reference/android/os/Message.html"&gt;Message&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/reference/android/app/Service.html#LocalServiceSample"&gt;Notification&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/guide/topics/intents/intents-filters.html"&gt;&lt;br /&gt;Intent guide&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/reference/android/content/Intent.html"&gt;Intent&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.vogella.de/articles/AndroidIntent/article.html#explicitintents"&gt;Intent example&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/reference/android/Manifest.permission.html"&gt;Security permissions&lt;/a&gt;&lt;br /&gt;A feature can be protected by at most one permission.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Data storage&lt;/b&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/guide/topics/data/data-storage.html#pref"&gt;Shared Preferences&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Store private primitive data in key-value pairs.&lt;br /&gt;&lt;a href="http://developer.android.com/guide/topics/data/data-storage.html#filesInternal"&gt;Internal Storage&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Store private data on the device memory.&lt;br /&gt;&lt;a href="http://developer.android.com/guide/topics/data/data-storage.html#filesExternal"&gt;External Storage&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Store public data on the shared external storage.&lt;br /&gt;&lt;a href="http://developer.android.com/guide/topics/data/data-storage.html#db"&gt;SQLite Databases&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Store structured data in a private database.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Content providers&lt;/b&gt;&lt;br /&gt;Must be implemented thread-safe.&lt;br /&gt;Call ContentResolver.notifyChange() to notify listeners when data changes.&lt;br /&gt;&lt;a href="http://developer.android.com/guide/topics/security/security.html#uri"&gt;&lt;br /&gt;Strongly recommended that content providers implement fine-grained URI permissions and declare that they support it through the android:grantUriPermissions  attribute or &lt;grant-uri-permissions&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Application location&lt;/b&gt;&lt;br /&gt;Specified in manifest with android:installLocation&lt;br /&gt;The default is internalOnly, set to to auto to allow external installation and the user to move it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Don't use android:maxSdkVersion, it is not necessary.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/resources/articles/avoiding-memory-leaks.html"&gt;Memory leaks typically: keeping a long-lived reference to a Context&lt;/a&gt;&lt;br /&gt;if you leak the Context, you leak a lot of memory. Leaking an entire activity can be really easy if you're not careful.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/resources/articles/on-screen-inputs.html"&gt;For Input Method Framework (IMF): The most important thing for an application to do is to use the new android:inputType attribute on each EditText.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://developer.android.com/resources/articles/painless-threading.html"&gt;Threading&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;The main thread is the UI thread, all UI updates must be on the main thread.&lt;br /&gt;Use &lt;a href="http://developer.android.com/reference/android/os/AsyncTask.html"&gt;AsyncTask&lt;/a&gt; to perform background operations and callback to update UI thread when completed without having to manipulate threads and/or handlers.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/guide/topics/ui/dialogs.html#ProgressDialog"&gt;Thread and Handler example&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/guide/practices/design/responsiveness.html"&gt;Instead of doing intensive tasks via child threads (as the life of a BroadcastReceiver is short), your application should start a Service if a potentially long running action needs to be taken in response to an Intent broadcast. As a side note, you should also avoid starting an Activity from an Intent Receiver, as it will spawn a new screen that will steal focus from whatever application the user is currently has running. If your application has something to show the user in response to an Intent broadcast, it should do so using the Notification Manager.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/guide/topics/ui/themes.html"&gt;&lt;br /&gt;Use existing styles and themes - blend in.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/guide/practices/design/seamlessness.html#battery"&gt;Conserver battery power&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Hide window title bar&lt;/b&gt;&lt;br /&gt;requestWindowFeature(Window.FEATURE_NO_TITLE);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Notification example:&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;        Notification notification = new Notification(R.drawable.daisy_48px_0, "daisy", System.currentTimeMillis());&lt;br /&gt;        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, BackgroundService.class), 0);&lt;br /&gt;        CharSequence test = getText(R.string.hello);&lt;br /&gt;        notification.setLatestEventInfo(this, getText(R.string.hello), test, contentIntent);&lt;br /&gt;        &lt;br /&gt;        NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);&lt;br /&gt;        nm.notify(R.string.hello, notification);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Launch web page from textview link:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/text/Link.html"&gt;autolink, setMovementMethod, non-HTML&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mgmblog.com/2009/01/06/four-different-ways-of-opening-a-web-page-in-android/"&gt;Four ways&lt;/a&gt;&lt;br /&gt;&lt;a href="http://jtomlinson.blogspot.com/2010/03/textview-and-html.html"&gt;Simple text link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-4787127241172304515?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/4787127241172304515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=4787127241172304515' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4787127241172304515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4787127241172304515'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/09/android-service.html' title='Android'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-1147615541019542037</id><published>2010-09-09T13:22:00.000-07:00</published><updated>2010-09-09T13:30:28.801-07:00</updated><title type='text'>J2SE Bluetooth</title><content type='html'>&lt;a href="http://www.caside.lancs.ac.uk/java_bt.php"&gt;HOWTO&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/1178856/javaj2se-and-bluetooth"&gt;StackOverflow&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jsr82.com/jsr-82-sample-device-discovery/"&gt;JSR-82 Discovery&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dsc.sun.com/mobility/midp/articles/bluetooth2/"&gt;Oracle HOWTO include SPP rfcomm example&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-1147615541019542037?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/1147615541019542037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=1147615541019542037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1147615541019542037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1147615541019542037'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/09/j2se-bluetooth.html' title='J2SE Bluetooth'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-4579340002416217082</id><published>2010-09-06T07:48:00.000-07:00</published><updated>2010-09-06T07:49:40.843-07:00</updated><title type='text'>C/C++ stuff</title><content type='html'>&lt;a href="http://www.functionx.com/cpp/keywords/typedef.htm"&gt;typedef&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-4579340002416217082?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/4579340002416217082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=4579340002416217082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4579340002416217082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4579340002416217082'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/09/cc-stuff.html' title='C/C++ stuff'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-8946437503046366670</id><published>2010-09-05T14:22:00.001-07:00</published><updated>2010-09-09T13:35:24.056-07:00</updated><title type='text'>J2ME bluetooth JSR-82</title><content type='html'>&lt;a href="http://www.builderau.com.au/program/java/soa/Developing-Bluetooth-wireless-applications-in-J2ME/0,339024620,339287799,00.htm"&gt;HOWTO&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://today.java.net/pub/a/today/2004/07/27/bluetooth.html"&gt;&lt;br /&gt;Java.net Getting Started&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-8946437503046366670?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/8946437503046366670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=8946437503046366670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8946437503046366670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8946437503046366670'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/09/j2me-bluetooth-jsr-82.html' title='J2ME bluetooth JSR-82'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-5897613413646182725</id><published>2010-09-03T13:13:00.000-07:00</published><updated>2010-09-03T13:14:23.088-07:00</updated><title type='text'>Sensors</title><content type='html'>&lt;a href="http://www.sensitronics.com"&gt;FSR&lt;/a&gt;&lt;br /&gt;&lt;a href="http://findit-fixit.sensorsmag.com/showthread.php?t=1461"&gt;FSR HowTo&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-5897613413646182725?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/5897613413646182725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=5897613413646182725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5897613413646182725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5897613413646182725'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/09/sensors.html' title='Sensors'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-4054809285035325253</id><published>2010-09-03T10:55:00.000-07:00</published><updated>2010-09-03T11:08:53.690-07:00</updated><title type='text'>VBox image keeps growing and running out of space</title><content type='html'>&lt;a href="http://forums.virtualbox.org/viewtopic.php?t=169&amp;highlight=vditool#"&gt;Clean it up&lt;br /&gt;Zero it&lt;br /&gt;Shut it down&lt;br /&gt;Compact it&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/technet/sysinternals/Security/SDelete.mspx"&gt;download SDelete&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;sdelete -c c:&lt;br /&gt;&lt;br /&gt;shutdown the guest OS and virtualbox&lt;br /&gt;&lt;br /&gt;vditool SHRINK whatever.vdi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-4054809285035325253?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/4054809285035325253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=4054809285035325253' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4054809285035325253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4054809285035325253'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/09/vbox-image-keeps-growing-and-running.html' title='VBox image keeps growing and running out of space'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-9220728688728567455</id><published>2010-09-01T13:07:00.001-07:00</published><updated>2010-09-01T13:08:12.065-07:00</updated><title type='text'>Regex</title><content type='html'>Dot does not match new line.&lt;br /&gt;&lt;br /&gt;Add one of the following to the pattern to support new line:&lt;br /&gt;&lt;br /&gt;(?m) multiline&lt;br /&gt;(?s) dot all&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-9220728688728567455?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/9220728688728567455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=9220728688728567455' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/9220728688728567455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/9220728688728567455'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/09/regex.html' title='Regex'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-1676334177771335650</id><published>2010-08-31T05:56:00.000-07:00</published><updated>2010-08-31T06:07:17.871-07:00</updated><title type='text'>Micro platforms and comm</title><content type='html'>&lt;b&gt;Hardware&lt;/b&gt;&lt;br /&gt;EcoWizard&lt;br /&gt;FLEX Mini&lt;br /&gt;MICAz&lt;br /&gt;Iris Mote&lt;br /&gt;NeoMote&lt;br /&gt;Sun SPOT&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Communications&lt;/b&gt;&lt;br /&gt;ANT&lt;br /&gt;6LoWPAN&lt;br /&gt;DASH7&lt;br /&gt;ONE-NET&lt;br /&gt;ZigBee&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Z-Wave"&gt;Z-Wave&lt;/a&gt;&lt;br /&gt;Wibree&lt;br /&gt;WirelessHART&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-1676334177771335650?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/1676334177771335650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=1676334177771335650' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1676334177771335650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1676334177771335650'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/micro-platforms-and-comm.html' title='Micro platforms and comm'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-5804360718467552929</id><published>2010-08-29T18:47:00.000-07:00</published><updated>2010-11-24T14:22:02.757-08:00</updated><title type='text'>Arduino</title><content type='html'>&lt;b&gt;On linux&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;/usr/share/arduino&lt;br /&gt;/usr/share/doc/arduino&lt;br /&gt;&lt;br /&gt;/usr/share/arduino/libraries&lt;br /&gt;&lt;br /&gt;&lt;b&gt;To install Messenger:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;download it&lt;br /&gt;sudo file-roller&lt;br /&gt;open it and navigate to /messenger/arduino/Messenger in the zip&lt;br /&gt;extract to /usr/share/arduino/libraries/&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Arduino 0019 current rc1 has String object&lt;/b&gt;&lt;br /&gt;currently Arduino GA is 0018&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hackaday.com/tag/atmega8u2/"&gt;ATMega8U2 USB&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hackaday.com/2010/04/30/optiboot-makes-your-arduino-faster-sleeker/"&gt;OptiBootLoader faster&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hackaday.com/2009/07/15/avr-isp-programming-via-arduino/"&gt;Arduino as a programmer&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-5804360718467552929?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/5804360718467552929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=5804360718467552929' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5804360718467552929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5804360718467552929'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/arduino.html' title='Arduino'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-6051830213479134379</id><published>2010-08-23T17:22:00.001-07:00</published><updated>2010-08-23T17:42:33.140-07:00</updated><title type='text'>Wireless technologies</title><content type='html'>Wifi 802.11 $44, 100Mb, 100M&lt;br /&gt;&lt;br /&gt;  &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9290"&gt;WiFly $44, 100Mb, 100M&lt;/a&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;a href="http://www.eye.fi/where-to-buy"&gt;SHDC memory with WIFI&lt;/a&gt; $50&lt;br /&gt;&lt;br /&gt;ZigBee 802.15.4 $20, 250 kb, 100M - 1 mile&lt;br /&gt;Bluetooth 802.15.1 &lt; $20, 3Mb, 100M&lt;br /&gt;Cellular $64 + sevice&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.arcelect.com/2g-3g_cellular_wireless.htm"&gt;2G, 3G&lt;/a&gt;&lt;br /&gt;GSM, GPRS, EDGE, W-CDMA,  UMTS,  TDMA, CDMA, CDMA2000 1xRTT, CDMA2000 1xEV-DO, and CDMA2000 1xEV-DV&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/4G"&gt;4G&lt;/a&gt;&lt;br /&gt;must have target peak data rates of up to approximately 100 Mbit/s for high mobility such as mobile access and up to approximately 1 Gbit/s for low mobility&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-6051830213479134379?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/6051830213479134379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=6051830213479134379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6051830213479134379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6051830213479134379'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/wireless-technologies.html' title='Wireless technologies'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-1160173051800477578</id><published>2010-08-23T13:38:00.001-07:00</published><updated>2010-08-23T13:38:49.882-07:00</updated><title type='text'>AVR</title><content type='html'>&lt;a href="http://www.atmel.com/products/AVR/default.asp?family_id=607"&gt;AVR site&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.atmel.com/dyn/products/product_card.asp?PN=ATmega1284P"&gt;ATmega1284P summary spec sheet&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-1160173051800477578?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/1160173051800477578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=1160173051800477578' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1160173051800477578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1160173051800477578'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/avr.html' title='AVR'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-8999677919423334393</id><published>2010-08-22T17:03:00.001-07:00</published><updated>2010-08-23T18:02:35.207-07:00</updated><title type='text'>Android resources</title><content type='html'>&lt;a href="http://developer.android.com/guide/topics/resources/accessing-resources.html"&gt;See Accessing Resources in Code&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If all you require is the ability to read raw data (such as a video or audio file), then save the file in the res/raw/ directory and read a stream of bytes using openRawResource().&lt;br /&gt;&lt;br /&gt;get an instance of Resources with Context.getResources()&lt;br /&gt;&lt;br /&gt;never modify the R.java file by hand—it is generated by the aapt tool when your project is compiled.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ViewGroup = layout&lt;br /&gt;&lt;br /&gt;View = widge: button, checkbox, etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-8999677919423334393?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/8999677919423334393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=8999677919423334393' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8999677919423334393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8999677919423334393'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/android-resources.html' title='Android resources'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-1585427641466490069</id><published>2010-08-22T09:02:00.000-07:00</published><updated>2010-08-23T13:21:14.929-07:00</updated><title type='text'>Fast Arduino servo response</title><content type='html'>&lt;a href="http://diydrones.com/profiles/blogs/705844:BlogPost:31713"&gt;HOWTO&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On Duemilanove board powered exclusively from USB, the power drops out with the servo powered from the board +5V. Need external power for servos!&lt;br /&gt;&lt;br /&gt;1 Orange = PWM&lt;br /&gt;2 Red = +5V&lt;br /&gt;3 Brown = Gnd&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;+--&lt;br /&gt;|1 \&lt;br /&gt;|2  |&lt;br /&gt;|3 /&lt;br /&gt;+--&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-1585427641466490069?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/1585427641466490069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=1585427641466490069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1585427641466490069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1585427641466490069'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/fast-arduino-servo-response.html' title='Fast Arduino servo response'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-824491548681205158</id><published>2010-08-21T23:08:00.001-07:00</published><updated>2010-08-21T23:08:46.642-07:00</updated><title type='text'>Android widgets</title><content type='html'>&lt;a href="http://www.helloandroid.com/tutorials/custom-view-horizontalslider"&gt;Horizontal Slider&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-824491548681205158?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/824491548681205158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=824491548681205158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/824491548681205158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/824491548681205158'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/android-widgets.html' title='Android widgets'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-2123817354862701216</id><published>2010-08-20T21:28:00.000-07:00</published><updated>2010-08-20T21:29:36.600-07:00</updated><title type='text'>Android video capture</title><content type='html'>&lt;a href="http://stackoverflow.com/questions/1032912/android-does-anyone-know-how-to-capture-video"&gt;slashdot&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-2123817354862701216?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/2123817354862701216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=2123817354862701216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2123817354862701216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2123817354862701216'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/android-video-capture.html' title='Android video capture'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-3409162046343262423</id><published>2010-08-20T21:21:00.001-07:00</published><updated>2010-08-20T21:24:42.342-07:00</updated><title type='text'>Android Camera</title><content type='html'>&lt;a href="http://p2p.wrox.com/book-professional-android-application-development-isbn-978-0-470-34471-2/72528-article-using-android-camera.html"&gt;Take picture&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://marakana.com/forums/android/examples/39.html"&gt;Take and save picture&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-3409162046343262423?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/3409162046343262423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=3409162046343262423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/3409162046343262423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/3409162046343262423'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/android-camera.html' title='Android Camera'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-6151368290555824204</id><published>2010-08-19T14:14:00.000-07:00</published><updated>2010-08-19T14:36:07.774-07:00</updated><title type='text'>Bluetooth, Wifi interference</title><content type='html'>&lt;a href="http://www.lockergnome.com/theoracle/2009/06/17/why-are-bluetooth-mice-proliferating/"&gt;Sharing 2.4 GHz band&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tamsppc.tamoggemon.com/2008/01/27/bluetoothwifi-interference/"&gt;Bluetooth interferes with Wifi typically less than 25%&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cisco.com/en/US/prod/collateral/wireless/ps9391/ps9393/ps9394/prod_white_paper0900aecd807395a9_ns736_Networking_Solutions_White_Paper.html"&gt;Cisco 20 myths&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wi-fiplanet.com/tutorials/article.php/1379911/Minimizing-Bluetooth-Interference.htm"&gt;old but simple explanation of the interference issue&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;bluetooth access points&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-6151368290555824204?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/6151368290555824204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=6151368290555824204' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6151368290555824204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6151368290555824204'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/bluetooth-wifi-interference.html' title='Bluetooth, Wifi interference'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-7420497198269935759</id><published>2010-08-18T15:07:00.000-07:00</published><updated>2010-08-19T07:33:47.730-07:00</updated><title type='text'>Business Models</title><content type='html'>&lt;a href="http://www.k9ventures.com/2010/08/revenue-development/"&gt;Revenue Development&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.k9ventures.com/2009/05/the-case-against-free/"&gt;The Case Against Free&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wired.com/techbiz/it/magazine/16-03/ff_free?currentPage=all"&gt;Free! Why $0 is the Future of Business&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://techcrunch.com/2007/11/22/the-secret-strategies-behind-many-viral-videos/"&gt;&lt;br /&gt;Viral Video Strategies&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.forentrepreneurs.com/sales-complexity./"&gt;Sales Complexity&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-7420497198269935759?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/7420497198269935759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=7420497198269935759' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7420497198269935759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7420497198269935759'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/business-models.html' title='Business Models'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-2333571315828565587</id><published>2010-08-18T08:50:00.000-07:00</published><updated>2010-08-20T19:20:54.867-07:00</updated><title type='text'>Android sensors</title><content type='html'>&lt;a href="http://www.workingfromhere.com/blog/2009/03/30/orientation-sensor-tips-in-android/"&gt;Orientation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://vmat.imgur.com/miscellaneous/ssz07"&gt;Diagram&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mail-archive.com/android-developers@googlegroups.com/msg46301.html"&gt;getOrientation&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-2333571315828565587?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/2333571315828565587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=2333571315828565587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2333571315828565587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2333571315828565587'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/android-sensors.html' title='Android sensors'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-2234859017052598201</id><published>2010-08-17T23:14:00.000-07:00</published><updated>2010-08-17T23:15:57.171-07:00</updated><title type='text'>Arduino programmer</title><content type='html'>located in /usr/shar/arduino&lt;br /&gt;preferences ~/.arduino/preferences.txt&lt;br /&gt;&lt;br /&gt;To dump all communication during loading set:&lt;br /&gt;upload.verbose=true&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-2234859017052598201?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/2234859017052598201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=2234859017052598201' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2234859017052598201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2234859017052598201'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/arduino-programmer.html' title='Arduino programmer'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-7514399177784087936</id><published>2010-08-17T22:41:00.000-07:00</published><updated>2010-08-23T15:20:03.626-07:00</updated><title type='text'>AvrDude</title><content type='html'>&lt;a href="http://www.nongnu.org/avrdude/user-manual/avrdude_1.html"&gt;Can program AVR chips via serial from file.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;AVRDUDE can be used effectively via the command line to read or write all chip memory types (eeprom, flash, fuse bits, lock bits, signature bytes) or via an interactive (terminal) mode. Using AVRDUDE from the command line works well for programming the entire memory of the chip from the contents of a file, while interactive mode is useful for exploring memory contents, modifying individual bytes of eeprom, programming fuse/lock bits, etc.&lt;br /&gt;&lt;a href="http://www.ladyada.net/learn/avr/avrdude.html"&gt;&lt;br /&gt;AVRDUDE tutorial&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.arduino.cc/playground/Code/Eclipse"&gt;Some info on uploading on the Eclipse page&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-7514399177784087936?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/7514399177784087936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=7514399177784087936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7514399177784087936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7514399177784087936'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/avrdude.html' title='AvrDude'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-334872971913688555</id><published>2010-08-16T22:32:00.000-07:00</published><updated>2010-08-16T22:33:13.483-07:00</updated><title type='text'>Reset Circuit</title><content type='html'>&lt;a href="http://www.doctronics.co.uk/555.htm#monostable"&gt;Schematic&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-334872971913688555?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/334872971913688555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=334872971913688555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/334872971913688555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/334872971913688555'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/reset-circuit.html' title='Reset Circuit'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-3092427524720705416</id><published>2010-08-14T16:37:00.000-07:00</published><updated>2011-03-18T17:43:19.313-07:00</updated><title type='text'>Ubuntu Bluetooth pairing</title><content type='html'>&lt;a href="http://forum.sparkfun.com/viewtopic.php?f=13&amp;t=9084"&gt;FireFly Linux gtkterm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;gtkterm -p /dev/rfcomm0 -s 115200&lt;br /&gt;&lt;br /&gt;---------------------------&lt;br /&gt;&lt;br /&gt;Open System -&gt; Preferences -&gt; Bluetooth Manager&lt;br /&gt;Adapter -&gt; Search - be sure remote is discoverable&lt;br /&gt;Device -&gt; Pair - accept and confirm&lt;br /&gt;Can send files, must confirm on remote end&lt;br /&gt;&lt;br /&gt;-----------------------------&lt;br /&gt;&lt;br /&gt;To connect RN-41 connect USB&lt;br /&gt;Applications -&gt; Accessories -&gt; Serial port terminal&lt;br /&gt;Configuration -&gt; Port &lt;br /&gt;select /dev/ttyUSBx, 115200, 8,N,1&lt;br /&gt;select local echo&lt;br /&gt;Enter $$$ to enter command mode on RN-41 should return OK&lt;br /&gt;&lt;br /&gt;-----------------------------&lt;br /&gt;&lt;br /&gt;Open terminal and enter:&lt;br /&gt;sudo getty 115200 /dev/rfcomm0&lt;br /&gt;&lt;br /&gt;-----------------------------&lt;br /&gt;&lt;br /&gt;In Bluetooth Manager select RN-41 device&lt;br /&gt;Right click and select SPP - should connect&lt;br /&gt;&lt;br /&gt;In Serial port terminal turn off local echo and hit Enter - should see login screen&lt;br /&gt;&lt;br /&gt;------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Haven't found command line howto&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;hcitool scan&lt;br /&gt;sudo hcitool cc 00:06:66:05:04:62&lt;br /&gt;then right click and pair with pin&lt;br /&gt;then right click and select SPP&lt;br /&gt;&lt;br /&gt;/dev/rfcomm0 stdout/in&lt;br /&gt;&lt;a href="http://www.linuxtopia.org/online_books/advanced_bash_scripting_guide/x13082.html"&gt;bash&gt; exec &gt; filename &lt; filename&lt;/a&gt;&lt;br /&gt;tail -f /dev/rfcomm0&lt;br /&gt;echo "some text to bluetooth" &gt; /dev/rfcomm0&lt;br /&gt;&lt;br /&gt;sudo getty 115200 /dev/rfcomm0&lt;br /&gt;opens terminal on bluetooth&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/etc/bluetooth/rfcomm.conf&lt;br /&gt;&lt;br /&gt;rfcomm -a - to see all devices&lt;br /&gt;&lt;br /&gt;/dev/rfcomm0&lt;br /&gt;&lt;br /&gt;/etc/init.d/bluetooth&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.math.ucla.edu/~jimc/documents/bluetooth-0703.html"&gt;Bluetooth pairing command line&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;if I do above and &lt;br /&gt;sudo hcitool cc 00:06:66:05:04:62 --role=s&lt;br /&gt;Connects and disconnects, probably missing passkey-agent&lt;br /&gt;seems bluez-pin not in repositories&lt;br /&gt;sudo apt-get install bluez-utils bluez-pin&lt;br /&gt;&lt;br /&gt;&lt;a href="https://help.ubuntu.com/community/BluetoothDialup"&gt;BluetoothDialup&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ubuntuforums.org/archive/index.php/t-200142.html"&gt;ubuntuforums&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.spiration.co.uk/post/1307/Ubuntu%20Linux%20-%20Bluetooth%20and%20GPRS%20dialup%20connectionr"&gt;spiration&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-3092427524720705416?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/3092427524720705416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=3092427524720705416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/3092427524720705416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/3092427524720705416'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/ubuntu-bluetooth-pairing.html' title='Ubuntu Bluetooth pairing'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-2282163844561389496</id><published>2010-08-14T15:29:00.000-07:00</published><updated>2010-08-14T15:31:14.012-07:00</updated><title type='text'>Android Arduino toolkit/library</title><content type='html'>&lt;a href="http://www.amarino-toolkit.net/"&gt;Amarino&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-2282163844561389496?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/2282163844561389496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=2282163844561389496' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2282163844561389496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2282163844561389496'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/android-arduino-toolkitlibrary.html' title='Android Arduino toolkit/library'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-6223031805273844013</id><published>2010-08-10T19:24:00.000-07:00</published><updated>2010-08-23T13:23:07.980-07:00</updated><title type='text'>Arduino memory</title><content type='html'>Practical Arduino pg 365&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-6223031805273844013?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/6223031805273844013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=6223031805273844013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6223031805273844013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6223031805273844013'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/arduino-memory.html' title='Arduino memory'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-6929867257091971419</id><published>2010-08-09T15:47:00.000-07:00</published><updated>2010-08-09T15:49:42.964-07:00</updated><title type='text'>Arduino IDE Ubuntu</title><content type='html'>&lt;a href="http://www.arduino.cc/playground/Linux/Ubuntu"&gt;Arduino playground&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;sudo add-apt-repository ppa:arduino-ubuntu-team&lt;br /&gt;&lt;br /&gt;sudo apt-get update&lt;br /&gt;&lt;br /&gt;sudo apt-get install arduino&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-6929867257091971419?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/6929867257091971419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=6929867257091971419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6929867257091971419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6929867257091971419'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/arduino-ide-ubuntu.html' title='Arduino IDE Ubuntu'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-7159756555515169559</id><published>2010-08-09T13:25:00.000-07:00</published><updated>2010-08-09T16:16:30.672-07:00</updated><title type='text'>Ubuntu serial port</title><content type='html'>Download GUI Serial Port Terminal&lt;br /&gt;or&lt;br /&gt;Command line minicom&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;list connections:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;dmesg | grep tty&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-7159756555515169559?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/7159756555515169559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=7159756555515169559' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7159756555515169559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7159756555515169559'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/ubuntu-serial-port.html' title='Ubuntu serial port'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-5270485670206597142</id><published>2010-08-07T02:56:00.001-07:00</published><updated>2010-08-07T02:57:09.378-07:00</updated><title type='text'>Sensors</title><content type='html'>&lt;a href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CCUQFjAA&amp;url=http%3A%2F%2Foregonembedded.com%2FNarrative.pdf&amp;ei=_ytdTN-lNcb_lgeusNy5CA&amp;usg=AFQjCNECxGWb0SxdrGVNKYSQPFR96FfiOA&amp;sig2=vVMHywECbO3R4bRkLaRr4w"&gt;Current&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-5270485670206597142?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/5270485670206597142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=5270485670206597142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5270485670206597142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5270485670206597142'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/sensors.html' title='Sensors'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-2697576778166767810</id><published>2010-08-05T20:05:00.000-07:00</published><updated>2010-08-05T20:06:13.059-07:00</updated><title type='text'>Arduino Bluetooth</title><content type='html'>&lt;a href="http://www.instructables.com/id/how-to-Control-arduino-by-bluetooth-from-PC-pock/"&gt;HOWTO&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-2697576778166767810?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/2697576778166767810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=2697576778166767810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2697576778166767810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2697576778166767810'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/arduino-bluetooth.html' title='Arduino Bluetooth'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-6542352502595089410</id><published>2010-08-05T16:37:00.000-07:00</published><updated>2010-08-05T16:38:10.229-07:00</updated><title type='text'>uControllers</title><content type='html'>&lt;a href="http://www.atmel.com/dyn/products/product_card.asp?PN=ATmega328"&gt;ATmega328P&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-6542352502595089410?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/6542352502595089410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=6542352502595089410' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6542352502595089410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6542352502595089410'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/ucontrollers.html' title='uControllers'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-2586363496803359959</id><published>2010-08-02T16:28:00.001-07:00</published><updated>2010-08-10T18:23:47.928-07:00</updated><title type='text'>Robotics</title><content type='html'>&lt;a href="http://www.robotmarketplace.com/store.html"&gt;Robot Marketplace&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.hobbypartz.com/servos.html"&gt;&lt;br /&gt;Cheap servos&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-2586363496803359959?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/2586363496803359959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=2586363496803359959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2586363496803359959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2586363496803359959'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/robotics.html' title='Robotics'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-727966595103890028</id><published>2010-08-02T14:50:00.000-07:00</published><updated>2010-08-03T12:35:10.147-07:00</updated><title type='text'>Remote control</title><content type='html'>&lt;a href="http://www.engadget.com/"&gt;Engadget&lt;/a&gt;&lt;br /&gt;&lt;a href="http://gizmodo.com/"&gt;Gizmodo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sparkfun.com/commerce/categories.php?c=103"&gt;SparkFun Ardunio and sensors $20-150&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.maxim-ic.com/datasheet/index.mvp/id/4983"&gt;TINI $109&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.parallax.com/"&gt;BasicStamp $60-100&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.parallax.com/tabid/760/List/0/CategoryID/46/Level/a/SortField/0/Default.aspx"&gt;Sensors&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-727966595103890028?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/727966595103890028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=727966595103890028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/727966595103890028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/727966595103890028'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/08/remote-control.html' title='Remote control'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-9017739735609014579</id><published>2010-07-20T17:49:00.000-07:00</published><updated>2010-08-14T15:37:48.752-07:00</updated><title type='text'>Bluetooth sensor project</title><content type='html'>&lt;a href="http://developers.sun.com/mobility/apis/articles/bluetoothintro/"&gt;Java bluetooth API&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developers.sun.com/mobility/midp/articles/bluetooth2/"&gt;Java bluetooth API part 2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.javabluetooth.org/"&gt;Java Bluetooth library&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mvps.org/rgrier/bluetooth_sensor_project.htm"&gt;Bluetooth sensor project&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.iogear.com/product/GBS301/"&gt;Bluetooth serial adapter&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.shopping.com/xPO-Kensington-Kensington-Bluetooth-USB-Micro-Adapter-K33902US"&gt;USB Bluetooth adapter $17.95&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.shopping.com/xPO-IOGear-CLASS-2-BLUETOOTH-MICRO-ADAPTER-FOR-BLUETOOTH-ENABLING-A-COMPUTER"&gt;USB Bluetooth adapter $8.99&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.instructables.com/id/Weather-proof-Bluetooth-capable-RFID-reader/"&gt;BlueTooth RFID reader&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8255"&gt;Bluetooth Ardunio board&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9358"&gt;Bluetooth Mate and bluetooth command set and specs&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sureelectronics.net/goods.php?id=402"&gt;Class 2 $18.95&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.seeedstudio.com/depot/serial-port-bluetooth-module-masterslave-p-572.html?cPath=2"&gt;Class 2 $21.50&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-9017739735609014579?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/9017739735609014579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=9017739735609014579' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/9017739735609014579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/9017739735609014579'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/07/bluetooth-sensor-project.html' title='Bluetooth sensor project'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-7195780376434060157</id><published>2010-07-18T18:59:00.001-07:00</published><updated>2010-07-18T19:24:22.942-07:00</updated><title type='text'>Ubuntu 9.10 partitioning issues</title><content type='html'>Can't manipulate partitions.&lt;br /&gt;&lt;br /&gt;FATAL ERROR: Bad logical partition 6: enlarged logical partitions overlap&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tolearnfree.blogspot.com/2009/12/how-to-fix-grub2-on-ubuntu-910.html"&gt;Was trying to fix grub2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Was able to resolve it by rebooting and deleting one partition, then unable to delete the next, but after rebooting could delete one more. Continued until they were all removed, then recreated them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-7195780376434060157?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/7195780376434060157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=7195780376434060157' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7195780376434060157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7195780376434060157'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/07/ubuntu-910-partitioning-issues.html' title='Ubuntu 9.10 partitioning issues'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-4671682109080083676</id><published>2010-07-15T12:37:00.000-07:00</published><updated>2010-07-15T12:39:06.429-07:00</updated><title type='text'>Bloom filter for key value storage</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Bloom_filter"&gt;bloom filter provides quicker resolution for key value storage&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;used by google big table&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-4671682109080083676?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/4671682109080083676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=4671682109080083676' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4671682109080083676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4671682109080083676'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/07/bloom-filter-for-key-value-storage.html' title='Bloom filter for key value storage'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-4179783626972872487</id><published>2010-07-14T14:39:00.000-07:00</published><updated>2010-07-14T14:42:42.832-07:00</updated><title type='text'>Technology choices</title><content type='html'>&lt;a href="http://blog.okta.com/2010/06/building-your-house-on-a-rock/"&gt;Okta - Building your house on a rock&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Java -&gt; eye on Scala&lt;br /&gt;Tomcat&lt;br /&gt;JQuery&lt;br /&gt;Spring&lt;br /&gt;Hibernate&lt;br /&gt;MySQL&lt;br /&gt;Cloud IAAS&lt;br /&gt;&lt;br /&gt;Muti-Tenancy high up in the application&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-4179783626972872487?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/4179783626972872487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=4179783626972872487' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4179783626972872487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4179783626972872487'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/07/technology-choices.html' title='Technology choices'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-7099559752127290748</id><published>2010-07-12T07:18:00.000-07:00</published><updated>2010-07-12T07:19:23.232-07:00</updated><title type='text'>Ubuntu automate display settings</title><content type='html'>&lt;a href="https://wiki.ubuntu.com/X/Config/Resolution"&gt;HOWTO&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;/etc/X11/xorg.conf&lt;br /&gt;&lt;br /&gt;xrandr --output DFP1 --mode 1280x768&lt;br /&gt;xrandr --output DFP_EXTTMDS --mode 1776x1000&lt;br /&gt;&lt;br /&gt;left 1280x768&lt;br /&gt;right 1776x1000&lt;br /&gt;&lt;br /&gt;Virtual 3200 1091&lt;br /&gt;&lt;br /&gt;xrandr --output DFP1 --mode 1280x1024&lt;br /&gt;xrandr --output DFP_EXTTMDS --mode 1920x1080&lt;br /&gt;&lt;br /&gt;left 1280x1024&lt;br /&gt;right 1920x1080&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-7099559752127290748?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/7099559752127290748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=7099559752127290748' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7099559752127290748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7099559752127290748'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/07/ubuntu-automate-display-settings.html' title='Ubuntu automate display settings'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-6688464508158203243</id><published>2010-07-08T10:46:00.001-07:00</published><updated>2010-07-08T10:46:43.065-07:00</updated><title type='text'>Ubuntu 10.04 64 Flash player</title><content type='html'>&lt;a href="http://blog.mattrudge.net/2010/05/07/installing-flash-player-from-repository-on-ubuntu-10-04-64-bit/"&gt;HOWTO&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-6688464508158203243?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/6688464508158203243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=6688464508158203243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6688464508158203243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6688464508158203243'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/07/ubuntu-1004-64-flash-player.html' title='Ubuntu 10.04 64 Flash player'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-1359276685963553070</id><published>2010-07-08T08:36:00.000-07:00</published><updated>2010-08-03T12:35:46.441-07:00</updated><title type='text'>Android as uController</title><content type='html'>&lt;a href="http://www.instructables.com/id/Android-G1-Serial-Cable/"&gt;Serial cable&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.instructables.com/id/Android-G1-Serial-To-Arduino/"&gt;Android - ardunio robot&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-1359276685963553070?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/1359276685963553070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=1359276685963553070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1359276685963553070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1359276685963553070'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/07/android-as-ucontroller.html' title='Android as uController'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-7730078982964599303</id><published>2010-07-06T14:22:00.000-07:00</published><updated>2010-07-06T14:23:37.033-07:00</updated><title type='text'>Compiz Fusion</title><content type='html'>Scale plugin shows all windows on single screen for selection and then takes you to the appropriate desktop showing the window.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-7730078982964599303?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/7730078982964599303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=7730078982964599303' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7730078982964599303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7730078982964599303'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/07/compiz-fusion.html' title='Compiz Fusion'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-9100493184778332521</id><published>2010-06-29T07:11:00.000-07:00</published><updated>2010-06-29T07:18:32.840-07:00</updated><title type='text'>Performance</title><content type='html'>Ubuntu 9.10 ext4 copy disk-&gt;disk &lt;br /&gt;~22-29MB/sec &lt;br /&gt;~25MB/sec avg&lt;br /&gt;~1.4GB/min&lt;br /&gt;~10min to copy 14GB&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-9100493184778332521?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/9100493184778332521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=9100493184778332521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/9100493184778332521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/9100493184778332521'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/06/performance.html' title='Performance'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-6226102105378177</id><published>2010-06-28T19:58:00.000-07:00</published><updated>2010-06-28T20:21:22.708-07:00</updated><title type='text'>Java DNS cache</title><content type='html'>&lt;a href="http://www.xbill.org/dnsjava/"&gt;Replace Java DNS with dnsjava&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://java-monitor.com/forum/showthread.php?t=181"&gt;Prior to Java 6 DNS resolutions were cached forever.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Defaults: Java 6 DNS positive responses are cached for 30 seconds and negative responses for 10 seconds&lt;br /&gt;&lt;br /&gt;-Dsun.net.inetaddr.ttl=3600&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;By default, when a security manager is installed, in order to protect against DNS spoofing attacks, the result of positive host name resolutions are cached forever. When a security manager is not installed, the default behavior is to cache entries for a finite (implementation dependent) period of time. The result of unsuccessful host name resolution is cached for a very short period of time (10 seconds) to improve performance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-6226102105378177?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/6226102105378177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=6226102105378177' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6226102105378177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6226102105378177'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/06/prior-to-java-6-dns-resolutions-were.html' title='Java DNS cache'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-3436639454283946777</id><published>2010-06-19T11:10:00.000-07:00</published><updated>2010-06-19T11:11:34.507-07:00</updated><title type='text'>HTML and CSS</title><content type='html'>&lt;a href="http://www.velocityreviews.com/forums/t162642-preventing-line-breaks-of-div-tag.html"&gt;div and span&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-3436639454283946777?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/3436639454283946777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=3436639454283946777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/3436639454283946777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/3436639454283946777'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/06/html-and-css.html' title='HTML and CSS'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-5765488116410689008</id><published>2010-06-13T09:44:00.000-07:00</published><updated>2010-06-13T09:45:36.838-07:00</updated><title type='text'>Adobe Reader Install - Ubuntu</title><content type='html'>&lt;a href="http://helpforlinux.blogspot.com/2009/10/install-adobe-reader-in-ubuntu-910.html"&gt;HOWTO&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-5765488116410689008?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/5765488116410689008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=5765488116410689008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5765488116410689008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5765488116410689008'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/06/adobe-reader-install-ubuntu.html' title='Adobe Reader Install - Ubuntu'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-1868085228886592367</id><published>2010-06-09T07:34:00.000-07:00</published><updated>2010-06-09T07:35:59.574-07:00</updated><title type='text'>JBoss</title><content type='html'>Scan rate to detect changes, i.e., jsp&lt;br /&gt;&lt;br /&gt;&amp;lt;JBOSS-INSTALL_DIR&gt;\server\&amp;lt;server config&gt;\conf\jboss-service.xml&lt;br /&gt;&lt;br /&gt;&amp;lt;!-- Frequency in milliseconds to rescan the URLs for changes --&gt;&lt;br /&gt;&amp;lt;attribute name="ScanPeriod"&gt;5000&lt;/attribute&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-1868085228886592367?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/1868085228886592367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=1868085228886592367' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1868085228886592367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1868085228886592367'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/06/jboss.html' title='JBoss'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-5208062967695692834</id><published>2010-06-02T18:21:00.000-07:00</published><updated>2010-06-02T18:22:34.438-07:00</updated><title type='text'>JNDI testing</title><content type='html'>&lt;a href="http://oocjndi.sourceforge.net/"&gt;OOC-JNDI&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-5208062967695692834?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/5208062967695692834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=5208062967695692834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5208062967695692834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5208062967695692834'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/06/jndi-testing.html' title='JNDI testing'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-8413530980038305016</id><published>2010-06-01T08:59:00.000-07:00</published><updated>2010-08-30T11:22:02.177-07:00</updated><title type='text'>Trillion node network</title><content type='html'>&lt;a href="http://vimeo.com/7395079"&gt;Trillions video&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.maya.com/file_download/31/maya_trillion_node_network.pdf"&gt;trillion node network&lt;/a&gt;&lt;br /&gt;scalability - no central authorities (registration, namespaces, ontologies)&lt;br /&gt;no device individual attention&lt;br /&gt;tracktability size can't increase complexity&lt;br /&gt;comprehensiveness&lt;br /&gt;&lt;br /&gt;bit, byte, name/value&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.readwriteweb.com/archives/3_sensor_data_platforms_to_watch.php"&gt;Internet of Things&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-8413530980038305016?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/8413530980038305016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=8413530980038305016' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8413530980038305016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8413530980038305016'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/06/trillions.html' title='Trillion node network'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-8397883411076076878</id><published>2010-05-28T08:40:00.000-07:00</published><updated>2010-06-07T18:47:30.469-07:00</updated><title type='text'>JBoss SecurityManager</title><content type='html'>&lt;a href="http://java.sun.com/security/seccodeguide.html"&gt;Secure Coding Guidelines - see section 6 for how security is checked&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jboss.org/file-access/default/members/jbossweb/freezone/docs/latest/class-loader-howto.html"&gt;JBoss classloding&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jboss.org/file-access/default/members/jbossweb/freezone/docs/latest/security-manager-howto.html"&gt;JBoss SecurityManager HOWTO&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Class.getProtectionDomain().getPermissions()&lt;br /&gt;&lt;br /&gt;&lt;a href="http://onjava.com/pub/a/onjava/2007/01/03/discovering-java-security-requirements.html"&gt;&lt;br /&gt;Discovering an apps security requirements&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyFiles.html"&gt;Policy&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/developer/onlineTraining/Programming/JDCBook/appA.html"&gt;Security and Permissions&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/developer/onlineTraining/Programming/JDCBook/appB.html"&gt;Classes, Methods, and Permissions&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forums.sun.com/thread.jspa?threadID=5413250"&gt;Prevent Thread creation&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-8397883411076076878?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/8397883411076076878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=8397883411076076878' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8397883411076076878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8397883411076076878'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/05/jboss-securitymanager.html' title='JBoss SecurityManager'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-1938111563634983245</id><published>2010-05-20T11:22:00.000-07:00</published><updated>2011-04-12T06:39:32.554-07:00</updated><title type='text'>Oracle</title><content type='html'>&lt;a href="http://www.dba-oracle.com/oracle_tip_hash_index_cluster_table.htm"&gt;Reduce I/O with cluster tables&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dba-oracle.com/art_disk_iostat.htm"&gt;Tuning Disk I/O&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dba-oracle.com/t_monitor_io_pl_sql_gv_sysstat.htm"&gt;Monitoring I/O&lt;/a&gt;&lt;br /&gt;select  * from gv$sysstat where name like '%IO%'&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.filibeto.org/sun/lib/nonsun/oracle/11.1.0.6.0/B28359_01/server.111/b28310/hash003.htm#i1006330"&gt;HOWTO&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.orafaq.com/wiki/Oracle_database_Performance_Tuning_FAQ"&gt;Tuning FAQ&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://vsbabu.org/oracle/sect02.html"&gt;Disk I/O&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-1938111563634983245?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/1938111563634983245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=1938111563634983245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1938111563634983245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1938111563634983245'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/05/oracle.html' title='Oracle'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-1527027892724316380</id><published>2010-05-19T17:16:00.001-07:00</published><updated>2010-05-19T17:16:39.707-07:00</updated><title type='text'>Jetty</title><content type='html'>&lt;a href="http://stackoverflow.com/questions/1625666/publish-jax-ws-endpoint-with-embedded-jetty-7"&gt;JAX-WS with Jetty&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-1527027892724316380?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/1527027892724316380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=1527027892724316380' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1527027892724316380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1527027892724316380'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/05/jetty.html' title='Jetty'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-2683344244465852004</id><published>2010-05-19T14:42:00.001-07:00</published><updated>2010-05-19T16:18:54.203-07:00</updated><title type='text'>NTFS Links</title><content type='html'>&lt;a href="http://elsdoerfer.name/=ntfslink"&gt;HOWTO&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-2683344244465852004?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/2683344244465852004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=2683344244465852004' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2683344244465852004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2683344244465852004'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/05/ntfs-links.html' title='NTFS Links'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-5348401983982263998</id><published>2010-05-18T17:42:00.001-07:00</published><updated>2010-05-18T17:42:32.596-07:00</updated><title type='text'>Symmetric key encryption</title><content type='html'>&lt;a href="http://www.java-tips.org/java-se-tips/javax.crypto/encryption-and-decryption-using-symmetric-2.html"&gt;HOWTO&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-5348401983982263998?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/5348401983982263998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=5348401983982263998' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5348401983982263998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5348401983982263998'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/05/symmetric-key-encryption.html' title='Symmetric key encryption'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-5347697718178614259</id><published>2010-05-18T12:59:00.000-07:00</published><updated>2010-05-18T13:01:55.785-07:00</updated><title type='text'>Flash Flex</title><content type='html'>&lt;a href="http://www.adobe.com/products/flashbuilder/"&gt;Adobe Flash Builder 4&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.rialvalue.com/blog/2010/05/05/dualpanel-reversible-component/"&gt;DualPanel reversible component&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-5347697718178614259?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/5347697718178614259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=5347697718178614259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5347697718178614259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5347697718178614259'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/05/flash-flex.html' title='Flash Flex'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-6062343905665940947</id><published>2010-05-17T18:15:00.000-07:00</published><updated>2010-05-17T18:18:13.234-07:00</updated><title type='text'>Google Protocol Buffer, ASN.1, COM, CORBA, Thrift, etc.</title><content type='html'>&lt;a href="http://code.google.com/apis/protocolbuffers/docs/faq.html"&gt;Google Protocol Buffers FAQ Interchange vs. RPC&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/apis/protocolbuffers/docs/overview.html#whynotxml"&gt;Why not XML&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-6062343905665940947?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/6062343905665940947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=6062343905665940947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6062343905665940947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6062343905665940947'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/05/google-protocol-buffer-asn1-com-corba.html' title='Google Protocol Buffer, ASN.1, COM, CORBA, Thrift, etc.'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-5051432860500017431</id><published>2010-05-16T18:07:00.000-07:00</published><updated>2010-05-16T18:32:34.406-07:00</updated><title type='text'>NIO</title><content type='html'>&lt;a href="http://rox-xmlrpc.sourceforge.net/niotut/"&gt;Server/Client examples&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/url?sa=t&amp;source=web&amp;ct=res&amp;cd=7&amp;ved=0CEsQFjAG&amp;url=http%3A%2F%2Fwww.cs.brown.edu%2Fcourses%2Fcs161%2Fpapers%2Fj-nio-ltr.pdf&amp;ei=X5DwS6TFJYOglAelp8S6CA&amp;usg=AFQjCNFbB82A0bD-vk5o1OmS45DqzfAENA&amp;sig2=9n2dQsiHTdb-vwzPLRQEag"&gt;Getting Started with NIO&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/developer/technicalArticles/releases/nio/"&gt;NIO don't need a thread per connection with all threads waiting for something to happen&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.developer.com/java/article.php/3837206/An-Introduction-to-Java-NIO-and-NIO2.htm"&gt;Java 1.4, 5, 6 introduction&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-5051432860500017431?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/5051432860500017431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=5051432860500017431' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5051432860500017431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5051432860500017431'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/05/nio.html' title='NIO'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-2088051553154195761</id><published>2010-05-15T18:16:00.000-07:00</published><updated>2010-05-27T20:13:32.489-07:00</updated><title type='text'>Firewall hole punching UDP</title><content type='html'>&lt;a href="http://www.h-online.com/security/features/How-Skype-Co-get-round-firewalls-747197.html"&gt;How to punch a hole in a firewall for UDP&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.java2s.com/Code/Java/Network-Protocol/SendoutUDPpockets.htm"&gt;UDP code examples&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/UDP_hole_punching"&gt;&lt;br /&gt;wikipedia&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/STUN"&gt;Session Traversal Utilities for NAT (STUN)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Interactive_Connectivity_Establishment"&gt;Interactive Connectivity Establishment (ICE)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jstun.javawi.de/"&gt;jSTUN&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-2088051553154195761?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/2088051553154195761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=2088051553154195761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2088051553154195761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2088051553154195761'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/05/firewall-hole-punching-udp.html' title='Firewall hole punching UDP'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-5096043546435987874</id><published>2010-05-15T07:57:00.001-07:00</published><updated>2010-05-15T08:02:19.258-07:00</updated><title type='text'>Ubuntu remote desktop slow</title><content type='html'>Super fast remote desktop &lt;a href="http://www.nomachine.com/"&gt;NoMachine&lt;/a&gt; protocol&lt;br /&gt;&lt;br /&gt;&lt;a href="https://help.ubuntu.com/community/FreeNX"&gt;Ubuntu 9.10 HOWTO&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ubun2.com/question/379/why_remote_desktop_ubuntu_very_slow_and_unusable"&gt;FreeNX HOWTO&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-5096043546435987874?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/5096043546435987874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=5096043546435987874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5096043546435987874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/5096043546435987874'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/05/ubuntu-remote-desktop-slow.html' title='Ubuntu remote desktop slow'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-328885461320973974</id><published>2010-05-13T06:10:00.000-07:00</published><updated>2010-05-13T06:12:23.816-07:00</updated><title type='text'>Java threads out of memory native threads</title><content type='html'>&lt;a href="http://blog.egilh.com/2006/06/2811aspx.html"&gt;Increasing heap can exacerbate the problem&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-328885461320973974?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/328885461320973974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=328885461320973974' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/328885461320973974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/328885461320973974'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/05/java-threads-out-of-memory-native.html' title='Java threads out of memory native threads'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-2787576962347538504</id><published>2010-05-12T18:18:00.000-07:00</published><updated>2010-05-12T18:19:01.232-07:00</updated><title type='text'>JBoss EE Dynamic Web App</title><content type='html'>&lt;a href="http://www.windofkeltia.com/j2ee/wtp-tutorial.html"&gt;Tutorial&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-2787576962347538504?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/2787576962347538504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=2787576962347538504' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2787576962347538504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2787576962347538504'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/05/jboss-ee-dynamic-web-app.html' title='JBoss EE Dynamic Web App'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-7008307434100833344</id><published>2010-05-09T13:20:00.000-07:00</published><updated>2010-05-09T13:33:02.279-07:00</updated><title type='text'>war-less development with jetty</title><content type='html'>&lt;a href="http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin"&gt;Maven Jetty Plugin HOWTO&lt;/a&gt;&lt;br /&gt;&lt;a href="http://jetty.codehaus.org/jetty/maven-plugin/run-exploded-mojo.html"&gt;Maven Jetty Plugin mvn jetty:run-exploded mojo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.enavigo.com/2008/08/29/deploying-a-web-application-to-jetty/"&gt;Deploying a webapp to jetty&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.draconianoverlord.com/2009/01/10/war-less-dev-with-jetty.html"&gt;HOWTO&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-7008307434100833344?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/7008307434100833344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=7008307434100833344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7008307434100833344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/7008307434100833344'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/05/war-less-development-with-jetty.html' title='war-less development with jetty'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-8041109441287678244</id><published>2010-05-08T11:42:00.000-07:00</published><updated>2010-05-08T11:44:44.352-07:00</updated><title type='text'>Caching, Distributed Caching, Replication, JGroups</title><content type='html'>&lt;a href="http://balamaci.wordpress.com/category/java/caching/"&gt;Articles&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-8041109441287678244?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/8041109441287678244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=8041109441287678244' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8041109441287678244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8041109441287678244'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/05/caching-distributed-caching-replication.html' title='Caching, Distributed Caching, Replication, JGroups'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-4889411425312220750</id><published>2010-05-06T08:59:00.000-07:00</published><updated>2010-05-06T09:01:33.357-07:00</updated><title type='text'>Use temp table instead of large IN clause for performance</title><content type='html'>&lt;a href="http://stackoverflow.com/questions/400255/how-to-put-more-than-1000-values-into-an-oracle-in-clause"&gt;Oracle limits to 1000 entries in an IN clause&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dba-oracle.com/t_temporary_tables_sql.htm"&gt;Some queries run faster joining to temp table&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-4889411425312220750?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/4889411425312220750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=4889411425312220750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4889411425312220750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/4889411425312220750'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/05/use-temp-table-instead-of-large-in.html' title='Use temp table instead of large IN clause for performance'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-2116331473095909524</id><published>2010-05-05T06:06:00.001-07:00</published><updated>2010-05-18T17:22:34.931-07:00</updated><title type='text'>Resizing a VBox virtual disk</title><content type='html'>&lt;a href="http://www.my-guides.net/en/content/view/122/26/"&gt;HOWTO&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-2116331473095909524?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/2116331473095909524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=2116331473095909524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2116331473095909524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/2116331473095909524'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/05/resizing-vbox-vitual-disk.html' title='Resizing a VBox virtual disk'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-8243953902901719328</id><published>2010-05-04T08:36:00.001-07:00</published><updated>2010-05-04T08:59:55.398-07:00</updated><title type='text'>Dynamically set log4j level</title><content type='html'>logLevel = Logger.getLogger(Fubar.class).getLevel();&lt;br /&gt;Logger.getLogger(Fubar.class).setLevel(Level.FATAL);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-8243953902901719328?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/8243953902901719328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=8243953902901719328' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8243953902901719328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/8243953902901719328'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/05/dynamically-set-log4j-level.html' title='Dynamically set log4j level'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-6428490646348910482</id><published>2010-04-30T15:20:00.001-07:00</published><updated>2011-03-31T07:57:24.260-07:00</updated><title type='text'>Oracle statistics</title><content type='html'>&lt;a href="http://ss64.com/orap/DBMS_UTILITY.html"&gt;EXEC DBMS_UTILITY.analyze_schema('schema_name','COMPUTE')&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ANALYZE cluster clusterName compute statistics;&lt;br /&gt;ANALYZE table tableName {compute|estimate|delete) statistics options&lt;br /&gt;ANALYZE index indexName {compute|estimate|delete) statistics options&lt;br /&gt;ANALYZE cluster clusterName {compute|estimate|delete) statistics options&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-6428490646348910482?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/6428490646348910482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=6428490646348910482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6428490646348910482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/6428490646348910482'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/04/oracle-statistics.html' title='Oracle statistics'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4818746623647880677.post-1888858636823890484</id><published>2010-04-28T12:15:00.000-07:00</published><updated>2010-04-28T12:16:00.498-07:00</updated><title type='text'>Ubuntu xrdp</title><content type='html'>&lt;a href="http://www.mexlinux.com/how-to-install-xrdp-in-ubuntu/"&gt;HOWTO&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4818746623647880677-1888858636823890484?l=troyjsd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://troyjsd.blogspot.com/feeds/1888858636823890484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4818746623647880677&amp;postID=1888858636823890484' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1888858636823890484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4818746623647880677/posts/default/1888858636823890484'/><link rel='alternate' type='text/html' href='http://troyjsd.blogspot.com/2010/04/ubuntu-xrdp.html' title='Ubuntu xrdp'/><author><name>Troy T. Collinsworth</name><uri>http://www.blogger.com/profile/08708486920951349393</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
