<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;A0QFRngyfSp7ImA9WhRbE0o.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517</id><updated>2012-02-04T12:15:17.695-06:00</updated><category term="grails plugin" /><category term="WPOTD" /><category term="sunspot" /><category term="xmllint" /><category term="business" /><category term="XSD" /><category term="git" /><category term="java" /><category term="*nix" /><category term="DSP" /><category term="dsh" /><category term="perl" /><category term="design" /><category term="XML" /><category term="VIM" /><category term="programming languages" /><category term="OSX" /><title>Random Information</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://michaelmasters.blogspot.com/" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>25</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/XAcv" /><feedburner:info uri="blogspot/xacv" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DU8FQn8_eyp7ImA9Wx5aEks.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-7499003130807787103</id><published>2010-11-08T19:56:00.000-06:00</published><updated>2010-11-08T19:56:53.143-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-08T19:56:53.143-06:00</app:edited><title>Open source tools from AT&amp;T</title><content type="html">I recently started playing around with Graphviz to generate some images of directed acyclic graphs (DAGs). I came across the following site regarding other open source tools from AT&amp;amp;T.&lt;br /&gt;
&lt;br /&gt;
http://www.research.att.com/software_tools&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-7499003130807787103?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0dP2nHTS__A5h_R1KbB-7eFty9o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0dP2nHTS__A5h_R1KbB-7eFty9o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0dP2nHTS__A5h_R1KbB-7eFty9o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0dP2nHTS__A5h_R1KbB-7eFty9o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/kPfxieHDpi8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/7499003130807787103/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=7499003130807787103" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/7499003130807787103?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/7499003130807787103?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/kPfxieHDpi8/open-source-tools-from-at.html" title="Open source tools from AT&amp;T" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2010/11/open-source-tools-from-at.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QCRHsyfyp7ImA9WxBUGE0.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-2910525905326617020</id><published>2010-03-05T11:16:00.000-06:00</published><updated>2010-03-05T11:16:05.597-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-05T11:16:05.597-06:00</app:edited><title>Nice perl samples</title><content type="html">I was looking for a way to find the character width of the terminal in perl. I came across this page and thought it was well organized.&lt;br /&gt;
&lt;br /&gt;
http://pleac.sourceforge.net/pleac_perl/userinterfaces.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-2910525905326617020?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YYvEy2lL0SgLJ6K0xM-37yzypxM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YYvEy2lL0SgLJ6K0xM-37yzypxM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YYvEy2lL0SgLJ6K0xM-37yzypxM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YYvEy2lL0SgLJ6K0xM-37yzypxM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/ZogEANRiRl4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/2910525905326617020/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=2910525905326617020" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/2910525905326617020?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/2910525905326617020?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/ZogEANRiRl4/nice-perl-samples.html" title="Nice perl samples" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2010/03/nice-perl-samples.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMFRXY7eSp7ImA9WxBQF0Q.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-2910212787096472227</id><published>2010-01-18T00:00:00.000-06:00</published><updated>2010-01-18T00:00:14.801-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-18T00:00:14.801-06:00</app:edited><title>Switching profiles for Terminal.app on the command line</title><content type="html">I switched from using iTerm.app to Terminal.app a while ago. One of the things I loved about iTerm was the ability to turn on/off transparency via a keyboard shortcut. Terminal.app doesn't provide a shortcut, but you can provide some alias' to change the current profile from the command line. The following link provides the instructions on how to do this:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.swombat.com/setting-up-terminalapp-with-tr-0"&gt;http://www.swombat.com/setting-up-terminalapp-with-tr-0&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-2910212787096472227?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XFAVgyEyASn4PIeRUA4OnZIhUVk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XFAVgyEyASn4PIeRUA4OnZIhUVk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XFAVgyEyASn4PIeRUA4OnZIhUVk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XFAVgyEyASn4PIeRUA4OnZIhUVk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/nQDiR2mp3oY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/2910212787096472227/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=2910212787096472227" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/2910212787096472227?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/2910212787096472227?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/nQDiR2mp3oY/switching-profiles-for-terminalapp-on.html" title="Switching profiles for Terminal.app on the command line" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2010/01/switching-profiles-for-terminalapp-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8NR34zeCp7ImA9WxBREU4.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-1236113457507730611</id><published>2009-12-29T18:22:00.004-06:00</published><updated>2009-12-29T18:44:56.080-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-29T18:44:56.080-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XSD" /><category scheme="http://www.blogger.com/atom/ns#" term="XML" /><title>Inferring XSD from XML documents</title><content type="html">It seems that every place I've worked at has used XML documents to organize information. At my current place of employment, we use XML documents for various things. Lately, I've been working in the world of XML without any predefined XSD or DTD to verify the XML against. This isn't necessarily a problem in our case because we are the only consumers of the documents.&lt;br /&gt;&lt;br /&gt;Recently, I've been tasked with using some of the files. I remember previously running into a tool for inferring schema documents from XML. I had to jog my memory a little to find it, but I found it. The tool is called &lt;a href="http://www.thaiopensource.com/relaxng/trang.html"&gt;Trang&lt;/a&gt;. It's a great way to see a description of what the XML generalizes to. After you download the jar, you can run it like so:&lt;br /&gt;&lt;br /&gt;java -jar trang.jar *.xml testing.xsd&lt;br /&gt;&lt;br /&gt;This will examine all the XML files in the current directory and create a file named 'testing.xsd'.&lt;br /&gt;&lt;br /&gt;This is also a great for coming up with the schema by creating example XML files. After the schema is generated you can go in a tweak it if you need to.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-1236113457507730611?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/m9BOtmQCMC8SZ7Vtgw8pv5SsOKE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/m9BOtmQCMC8SZ7Vtgw8pv5SsOKE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/m9BOtmQCMC8SZ7Vtgw8pv5SsOKE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/m9BOtmQCMC8SZ7Vtgw8pv5SsOKE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/_yDnSZKD69c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/1236113457507730611/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=1236113457507730611" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/1236113457507730611?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/1236113457507730611?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/_yDnSZKD69c/inferring-xsd-from-xml-documents.html" title="Inferring XSD from XML documents" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/12/inferring-xsd-from-xml-documents.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UBQHg_fyp7ImA9WxBTEE4.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-8133346950987743136</id><published>2009-12-05T12:47:00.003-06:00</published><updated>2009-12-05T12:54:11.647-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-05T12:54:11.647-06:00</app:edited><title>sailfish 50 miles northeast of Isla Mujeres</title><content type="html">I can across this great article on sailfish today. I didn't realize that sailfish hunt in packs. The article's pretty short and the pictures are amazing. Thank you National Geographic.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ngm.nationalgeographic.com/2008/09/sailfish/holland-text"&gt;http://ngm.nationalgeographic.com/2008/09/sailfish/holland-text&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-8133346950987743136?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IFbddhyyVetWHkmKc6816oFEGL8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IFbddhyyVetWHkmKc6816oFEGL8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IFbddhyyVetWHkmKc6816oFEGL8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IFbddhyyVetWHkmKc6816oFEGL8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/ywhoUYZufLY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/8133346950987743136/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=8133346950987743136" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/8133346950987743136?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/8133346950987743136?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/ywhoUYZufLY/sailfish-50-miles-northeast-of-isla.html" title="sailfish 50 miles northeast of Isla Mujeres" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/12/sailfish-50-miles-northeast-of-isla.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QMSX4yeSp7ImA9WxNaFE4.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-5604394003771052207</id><published>2009-11-28T13:16:00.002-06:00</published><updated>2009-11-28T14:16:28.091-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-28T14:16:28.091-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="programming languages" /><category scheme="http://www.blogger.com/atom/ns#" term="perl" /><title>Teach Yourself Programming in Ten Years</title><content type="html">With regard to my current side projects at home, I've started to ponder graduate school. Grad school is something I'm always thinking about because I'd love to teach computer science at the college level at some point. Neural networks and genetic algorithms have always been interesting, but lately I've been thinking more about programming languages.&lt;br /&gt;&lt;br /&gt;I've been doing a lot of Perl for the past several months and I think I've validated my preconceived notions about the language. Perl is one of those languages that fills programmers with a variety of emotions. It seems to be heavy at the opposite ends of the spectrum. People tend to either hate it or love it. Even within the Perl community, there seems to be strife about certain topics.&lt;br /&gt;&lt;br /&gt;My opinion about Perl is an ambivalent one. I often feel like I'm the child in the middle of a divorce. The language has some great features and I have a lot of fun programming in it. On the other hand, it's a bastard language and I despise it. Either way, it's a great language to talk about in an academic manner.&lt;br /&gt;&lt;br /&gt;Perl has dynamic and lexical scoping. You can program in an object oriented, imperative, or functional style. It also has mappings to Prolog, so you can program in a logical style if you like. For subroutines that are referentially transparent, you can use a memoization module. You can use closures, which means you can do currying. Virtually every programming languages concept is manifested in the language.&lt;br /&gt;&lt;br /&gt;To bring the story to an end. This prompted me to Google for "&lt;a href="http://lmgtfy.com/?q=programming+languages+graduate+school"&gt;programming languages graduate school&lt;/a&gt;". The first result from the search shows a list of the top ten graduate schools. UT is number 8 (woot!). The second result is the one I found most interesting:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://norvig.com/21-days.html"&gt;http://norvig.com/21-days.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I thought the page was an interesting read. Enjoy :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-5604394003771052207?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZgHoDYCd2ml794Kdv7GL_IHLTPo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZgHoDYCd2ml794Kdv7GL_IHLTPo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZgHoDYCd2ml794Kdv7GL_IHLTPo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZgHoDYCd2ml794Kdv7GL_IHLTPo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/0MtliKt8Mb8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/5604394003771052207/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=5604394003771052207" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/5604394003771052207?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/5604394003771052207?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/0MtliKt8Mb8/teach-yourself-programming-in-ten-years.html" title="Teach Yourself Programming in Ten Years" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/11/teach-yourself-programming-in-ten-years.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEDQH48fip7ImA9WxNbFk0.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-901418161238904456</id><published>2009-11-18T15:32:00.007-06:00</published><updated>2009-11-18T22:24:31.076-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-18T22:24:31.076-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OSX" /><category scheme="http://www.blogger.com/atom/ns#" term="*nix" /><category scheme="http://www.blogger.com/atom/ns#" term="dsh" /><title>dsh - distributed shell on Mac OSX</title><content type="html">We have several hundred computers at work. One of the tools we use to interact with these machines is &lt;a href="http://dsh.sourceforge.net/"&gt;dsh&lt;/a&gt;, also known as dancer's shell or distributed shell. You can use dsh to run a command on a group of machines. For example, you could run the following command to find out what operating systems are running on a group of machines:&lt;br /&gt;&lt;pre&gt;dsh "uname -a"&lt;/pre&gt;I'm going to give a short tutorial on how to set this up on the Mac for a group of machines with ssh available. First of all, I'm using &lt;a href="http://www.macports.org/"&gt;MacPorts&lt;/a&gt;, so you'll need to have that installed before proceeding. With MacPorts installed, you can run the following command:&lt;br /&gt;&lt;pre&gt;sudo port install dsh&lt;/pre&gt;After ports has done it's thing, you will need to create the proper directories:&lt;br /&gt;&lt;pre&gt;mkdir -p ~/.dsh/group&lt;/pre&gt;The '-p' tells mkdir to create both .dsh and group directories. Neither of these directories existed for me. Now we need to create a 'group' file with the names of the machines we want to access:&lt;br /&gt;&lt;pre&gt;vim ~/.dsh/group/testMachines&lt;/pre&gt;Add machine names to the file with one machine per line. For example:&lt;br /&gt;&lt;pre&gt;pluto&lt;br /&gt;mars&lt;br /&gt;saturn&lt;br /&gt;earth&lt;br /&gt;&lt;/pre&gt;You can create as many files in the ~/.dsh/group directory with this format. We will use these files to organize what machines we're sending commands to.&lt;br /&gt;&lt;br /&gt;Now we need to create a config file:&lt;br /&gt;&lt;pre&gt;vim ~/.dsh/dsh.conf&lt;/pre&gt;with the following contents:&lt;br /&gt;&lt;pre&gt;verbose=0&lt;br /&gt;remoteshell=ssh&lt;br /&gt;&lt;br /&gt;waitshell=1  # whether to wait for execution&lt;br /&gt;# 1 = run commands serially&lt;br /&gt;# 0 = run commands in parallel&lt;br /&gt;&lt;br /&gt;remoteshellopt=-lmmasters # mmasters is the login id for the machines&lt;br /&gt;verbose=0&lt;br /&gt;showmachinenames=1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The last thing we need to do is set up&lt;a href="http://lmgtfy.com/?q=passwordless+ssh"&gt; passwordless ssh&lt;/a&gt; for all the machines in our group file.  Once that's done, we can start using dsh. Go ahead and give it a test drive:&lt;br /&gt;&lt;pre&gt;dsh -g testMachines 'uname -a'&lt;/pre&gt;The -g argument tells dsh which group file we want to use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-901418161238904456?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iDptpPAi1YjCRMiqio6eYjir4ys/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iDptpPAi1YjCRMiqio6eYjir4ys/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iDptpPAi1YjCRMiqio6eYjir4ys/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iDptpPAi1YjCRMiqio6eYjir4ys/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/MehBPD5xRhg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/901418161238904456/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=901418161238904456" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/901418161238904456?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/901418161238904456?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/MehBPD5xRhg/dsh-distributed-shell-on-mac-osx.html" title="dsh - distributed shell on Mac OSX" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/11/dsh-distributed-shell-on-mac-osx.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04FSHk_eyp7ImA9WxNUGUQ.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-24754104428380774</id><published>2009-11-11T21:17:00.000-06:00</published><updated>2009-11-11T21:18:39.743-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-11T21:18:39.743-06:00</app:edited><title>Grails sql logging alternative</title><content type="html">Someone just posted this on IRC. Nice write up.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://btiernay.wordpress.com/2009/11/12/grails-sql-logging-from-the-command-line/"&gt;http://btiernay.wordpress.com/2009/11/12/grails-sql-logging-from-the-command-line/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-24754104428380774?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ekH1KnfX3gOXGMCG5zbUyfCXNjg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ekH1KnfX3gOXGMCG5zbUyfCXNjg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ekH1KnfX3gOXGMCG5zbUyfCXNjg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ekH1KnfX3gOXGMCG5zbUyfCXNjg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/QgG2yReHOvQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/24754104428380774/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=24754104428380774" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/24754104428380774?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/24754104428380774?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/QgG2yReHOvQ/grails-sql-logging-alternative.html" title="Grails sql logging alternative" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/11/grails-sql-logging-alternative.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUHR3Yzeip7ImA9WxNUGUQ.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-4603645435347231633</id><published>2009-11-11T20:01:00.002-06:00</published><updated>2009-11-11T20:17:16.882-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-11T20:17:16.882-06:00</app:edited><title>Perlin Noise</title><content type="html">The talk at the JUG meeting last night sparked a memory about perlin noise. The talk had nothing to do with perlin noise, but there was some talk about filtering out noise from this device a person created to track your heartbeat. The person created the device using a &lt;a href="http://www.sunspotworld.com/"&gt;Java Sunspot&lt;/a&gt; device and some off the shelf electronic components. I thought it was a fun presentation.&lt;br /&gt;&lt;br /&gt;Back to the topic. All this talk about noise and filtering reminded me of perlin noise. I decided to find the &lt;a href="http://freespace.virgin.net/hugo.elias/models/m_perlin.htm"&gt;page&lt;/a&gt; I used to implement my terrain generator for my graphics class at UT. This page was great because it also introduced me to how interpolation works.&lt;br /&gt;&lt;br /&gt;I decided to look up some other information on interpolation and I thought I'd share this &lt;a href="http://codeplea.com/simple-interpolation"&gt;page&lt;/a&gt;. It has a lot of nice visualizations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-4603645435347231633?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/h7YEKH8du-Q1ta4Rc6KTN-_ubjc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/h7YEKH8du-Q1ta4Rc6KTN-_ubjc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/h7YEKH8du-Q1ta4Rc6KTN-_ubjc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/h7YEKH8du-Q1ta4Rc6KTN-_ubjc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/vGr3c6Yy0Mk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/4603645435347231633/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=4603645435347231633" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/4603645435347231633?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/4603645435347231633?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/vGr3c6Yy0Mk/perlin-noise.html" title="Perlin Noise" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/11/perlin-noise.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUABQXw9eyp7ImA9WxNUGUQ.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-4121787963057006048</id><published>2009-11-11T00:34:00.001-06:00</published><updated>2009-11-11T20:42:30.263-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-11T20:42:30.263-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="grails plugin" /><title>Grails build-test-data Plugin</title><content type="html">This has to be one of the coolest plugins I've seen lately:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.slideshare.net/tednaleid/grails-buildtestdata-plugin-1723277"&gt;http://www.slideshare.net/tednaleid/grails-buildtestdata-plugin-1723277&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-4121787963057006048?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Rs3WLdWgSi2irlKfqcOxumU3GwU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Rs3WLdWgSi2irlKfqcOxumU3GwU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Rs3WLdWgSi2irlKfqcOxumU3GwU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Rs3WLdWgSi2irlKfqcOxumU3GwU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/dh1ZRNYjRNY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/4121787963057006048/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=4121787963057006048" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/4121787963057006048?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/4121787963057006048?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/dh1ZRNYjRNY/grails-build-test-data-plugin.html" title="Grails build-test-data Plugin" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/11/grails-build-test-data-plugin.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMEQ3ozfip7ImA9WxNUGUw.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-8507394178872408949</id><published>2009-11-10T22:33:00.003-06:00</published><updated>2009-11-10T22:40:02.486-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-10T22:40:02.486-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="DSP" /><category scheme="http://www.blogger.com/atom/ns#" term="sunspot" /><title>DSP Book online</title><content type="html">I went to a Java user group meeting tonight in Boulder and one of the talks was over the Java Sunspot. I thought it was really cool, despite the $700 starter kit. The speaker recommended the following site. It has the book available online.&lt;br /&gt;&lt;br /&gt;http://www.dspguide.com/&lt;br /&gt;&lt;br /&gt;The book describes some of the algorithms used in DSP programming.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-8507394178872408949?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MDyCbhXireL0HFPl3g3bqpRbbyI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MDyCbhXireL0HFPl3g3bqpRbbyI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MDyCbhXireL0HFPl3g3bqpRbbyI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MDyCbhXireL0HFPl3g3bqpRbbyI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/1tTsAo_PRYI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/8507394178872408949/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=8507394178872408949" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/8507394178872408949?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/8507394178872408949?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/1tTsAo_PRYI/dsp-book-online.html" title="DSP Book online" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/11/dsp-book-online.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQHQXczeyp7ImA9WxNUF04.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-1240821799010454714</id><published>2009-11-08T21:11:00.001-06:00</published><updated>2009-11-08T21:12:10.983-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-08T21:12:10.983-06:00</app:edited><title>Data sets</title><content type="html">I ran across this site and thought it was really cool. It has information on different datasets.&lt;br /&gt;&lt;br /&gt;http://www.socrata.com/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-1240821799010454714?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/m8VZamqua7ThwjIapkq_5E-32Eg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/m8VZamqua7ThwjIapkq_5E-32Eg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/m8VZamqua7ThwjIapkq_5E-32Eg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/m8VZamqua7ThwjIapkq_5E-32Eg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/nguz2VJ5XVQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/1240821799010454714/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=1240821799010454714" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/1240821799010454714?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/1240821799010454714?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/nguz2VJ5XVQ/data-sets.html" title="Data sets" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/11/data-sets.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYESX48cSp7ImA9WxNUF08.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-5795364749818012569</id><published>2009-11-08T17:13:00.001-06:00</published><updated>2009-11-08T17:15:08.079-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-08T17:15:08.079-06:00</app:edited><title>Open Flash Charts</title><content type="html">Seems like I'm always looking around for a charting api. I just recently ran into this and might consider using it in the future:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://teethgrinder.co.uk/open-flash-chart-2/"&gt;http://teethgrinder.co.uk/open-flash-chart-2/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-5795364749818012569?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/aISOhqL2e_OwiWw_4ik4-nh0eCg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aISOhqL2e_OwiWw_4ik4-nh0eCg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/aISOhqL2e_OwiWw_4ik4-nh0eCg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aISOhqL2e_OwiWw_4ik4-nh0eCg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/JbqDhCl9BEw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/5795364749818012569/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=5795364749818012569" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/5795364749818012569?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/5795364749818012569?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/JbqDhCl9BEw/open-flash-charts.html" title="Open Flash Charts" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/11/open-flash-charts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YGSH89eyp7ImA9WxNUE00.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-7907726039773440752</id><published>2009-11-03T21:22:00.002-06:00</published><updated>2009-11-03T21:25:29.163-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T21:25:29.163-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="design" /><category scheme="http://www.blogger.com/atom/ns#" term="business" /><title>Logo Inspiration</title><content type="html">I was trying to get ideas for some logos and I came across this site:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.pixellogo.com/"&gt;http://www.pixellogo.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I thought it was pretty cool just to browse the site for inspiration.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-7907726039773440752?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/w7E9eotvWmND_PshHiW7rTG3EQA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/w7E9eotvWmND_PshHiW7rTG3EQA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/w7E9eotvWmND_PshHiW7rTG3EQA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/w7E9eotvWmND_PshHiW7rTG3EQA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/pibue8Kv4-c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/7907726039773440752/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=7907726039773440752" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/7907726039773440752?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/7907726039773440752?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/pibue8Kv4-c/logo-inspiration.html" title="Logo Inspiration" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/11/logo-inspiration.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08EQXg9eSp7ImA9WxNUEU8.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-2068478946206576838</id><published>2009-11-01T20:09:00.006-06:00</published><updated>2009-11-01T20:43:20.661-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-01T20:43:20.661-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="git" /><title>Setting up a git repo</title><content type="html">I did some research on hosted git repositories. &lt;a href="http://github.com/"&gt;Github&lt;/a&gt; was the first solution I looked at. I might end up going with it at some point, but I didn't want to spend the money right now.&lt;br /&gt;&lt;br /&gt;I spoke to some people on IRC and they suggested the following:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.projectlocker.com/"&gt;http://www.projectlocker.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="https://indefero.net/"&gt;https://indefero.net/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://gitfarm.appspot.com/"&gt;http://gitfarm.appspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;These solutions offer free hosting accounts for private repositories. Some of them are good for starting a code base until it gets bigger or needs more users. Then you'll need to upgrade to a pay account.&lt;br /&gt;&lt;br /&gt;I finally decided to host my own repository. I followed the instructions on the following page:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way"&gt;Hosting Git repositories, The Easy (and Secure) Way&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The only problem I ran into was that I had to use 'sudo' to run the install on Ubuntu (hardy). Otherwise, the instructions were great.&lt;br /&gt;&lt;br /&gt;Later I found another page which looks like it was a copy and paste from the first set of instructions, but it had a couple pieces of additional information:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.agdunn.net/?p=277"&gt;http://blog.agdunn.net/?p=277&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-2068478946206576838?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xKkHehbh2rXnofIsIEruF8iS6mA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xKkHehbh2rXnofIsIEruF8iS6mA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xKkHehbh2rXnofIsIEruF8iS6mA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xKkHehbh2rXnofIsIEruF8iS6mA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/U99U30hhEX8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/2068478946206576838/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=2068478946206576838" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/2068478946206576838?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/2068478946206576838?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/U99U30hhEX8/setting-up-git-repo.html" title="Setting up a git repo" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/11/setting-up-git-repo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEGQXg8fyp7ImA9WxNUEU8.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-8826339560920959552</id><published>2009-11-01T19:45:00.004-06:00</published><updated>2009-11-01T19:50:20.677-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-01T19:50:20.677-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WPOTD" /><title>WPOTD: Dirigible</title><content type="html">Marie was playing a game and asked me what a 'dirigible' is. I had no clue. A Google search away and I find&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Airship"&gt;http://en.wikipedia.org/wiki/Airship&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-8826339560920959552?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tJTz0t8NqLelTfVLIQVTeqFcIIk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tJTz0t8NqLelTfVLIQVTeqFcIIk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tJTz0t8NqLelTfVLIQVTeqFcIIk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tJTz0t8NqLelTfVLIQVTeqFcIIk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/Kx48zKNyivo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/8826339560920959552/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=8826339560920959552" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/8826339560920959552?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/8826339560920959552?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/Kx48zKNyivo/wpotd-dirigible.html" title="WPOTD: Dirigible" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/11/wpotd-dirigible.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEAQ3s8fip7ImA9WxNUEU8.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-2862523577410930099</id><published>2009-11-01T18:56:00.003-06:00</published><updated>2009-11-01T19:50:42.576-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-01T19:50:42.576-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WPOTD" /><title>WPOTD: Project code names</title><content type="html">WPOTD stands for "Wiki Page Of The Day". This is going to be a label for when I find interesting wiki pages. There's not going to be any kind of schedule for this, but I'll post them as I run across them.&lt;br /&gt;&lt;br /&gt;I just so happened to run a across an interesting one today. I was looking for a schema to follow for computer names. Examples of this would include super heroes, planets, beers, etc. My search landed me on&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/List_of_computer_technology_code_names"&gt;http://en.wikipedia.org/wiki/List_of_computer_technology_code_names&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is a listing of names used for projects from various companies like Microsoft, Intel, and Apple.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-2862523577410930099?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TdNoaCAJiDSCyW8Oo1-RR9MWvGY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TdNoaCAJiDSCyW8Oo1-RR9MWvGY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TdNoaCAJiDSCyW8Oo1-RR9MWvGY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TdNoaCAJiDSCyW8Oo1-RR9MWvGY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/egIwBUMOe7E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/2862523577410930099/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=2862523577410930099" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/2862523577410930099?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/2862523577410930099?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/egIwBUMOe7E/wpotd-project-code-names.html" title="WPOTD: Project code names" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/11/wpotd-project-code-names.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08CRng_fyp7ImA9WxNUEE8.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-996896654152475582</id><published>2009-10-31T16:53:00.002-06:00</published><updated>2009-10-31T16:57:47.647-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-31T16:57:47.647-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="business" /><title>The 5 Biggest Mistakes Made by an LLC Business</title><content type="html">I was just reading this &lt;a href="http://www.thellcexpert.com/articles/llc_business_mistakes.htm"&gt;article&lt;/a&gt; and found it interesting. It listed the following as the 5 biggest mistakes made by an LLC:&lt;br /&gt;&lt;br /&gt;1. Before the LLC Business Entity is Formed, Don't Conduct Business.&lt;br /&gt;2. Failing to Actually Issue Ownership Interests of the LLC Business Entity.&lt;br /&gt;3. Failing to Create a Management Structure and Appoint Officers for the LLC Business Entity.&lt;br /&gt;4. Failure to Get Investment Obligations in Writing.&lt;br /&gt;5. Thinking that an LLC Business is a Foolproof Layer of Liability Protection.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-996896654152475582?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qYOqe_xpQmh-4nT8VVZ1AKLZ34g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qYOqe_xpQmh-4nT8VVZ1AKLZ34g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qYOqe_xpQmh-4nT8VVZ1AKLZ34g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qYOqe_xpQmh-4nT8VVZ1AKLZ34g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/RpzeniYR1RE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/996896654152475582/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=996896654152475582" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/996896654152475582?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/996896654152475582?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/RpzeniYR1RE/5-biggest-mistakes-made-by-llc-business.html" title="The 5 Biggest Mistakes Made by an LLC Business" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/10/5-biggest-mistakes-made-by-llc-business.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMESHc4fSp7ImA9WxNUEU8.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-8450116994828015652</id><published>2009-10-31T15:46:00.004-06:00</published><updated>2009-11-01T18:56:49.935-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-01T18:56:49.935-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="*nix" /><title>Load Balancing Software</title><content type="html">I was talking to one of our system admins the other day about load balancing. He suggested I look into HAProxy. Apparently, gifts.com uses this for their load balancing rather than a hardware layer. One of the features I'm looking for is the ability to handle sticky sessions. I didn't see anything about it on the home page, but it's suppose to support it. This is something I'd like to look into at a later time:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://haproxy.1wt.eu/"&gt;http://haproxy.1wt.eu/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-8450116994828015652?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fgqdZZ0bjslNd0z27XRyeWtookI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fgqdZZ0bjslNd0z27XRyeWtookI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fgqdZZ0bjslNd0z27XRyeWtookI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fgqdZZ0bjslNd0z27XRyeWtookI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/goTUDldIDs4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/8450116994828015652/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=8450116994828015652" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/8450116994828015652?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/8450116994828015652?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/goTUDldIDs4/load-balancing-software.html" title="Load Balancing Software" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/10/load-balancing-software.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QNQ3Y4eSp7ImA9WxNUEE8.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-7939569688270690830</id><published>2009-10-31T15:41:00.001-06:00</published><updated>2009-10-31T15:43:12.831-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-31T15:43:12.831-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="*nix" /><title>List of commands</title><content type="html">I ran across a nice page of linux commands. Some of them I already knew, but there were several that were new to me.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.pixelbeat.org/cmdline.html"&gt;http://www.pixelbeat.org/cmdline.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-7939569688270690830?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/N9FlA2hyJYBbpGfdC4cQWGwjauQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N9FlA2hyJYBbpGfdC4cQWGwjauQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/N9FlA2hyJYBbpGfdC4cQWGwjauQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N9FlA2hyJYBbpGfdC4cQWGwjauQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/HmmiPsTEu3o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/7939569688270690830/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=7939569688270690830" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/7939569688270690830?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/7939569688270690830?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/HmmiPsTEu3o/list-of-commands.html" title="List of commands" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/10/list-of-commands.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MAR3w4cSp7ImA9WxNUEE8.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-8006551929345148906</id><published>2009-10-31T13:35:00.004-06:00</published><updated>2009-10-31T15:44:06.239-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-31T15:44:06.239-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OSX" /><category scheme="http://www.blogger.com/atom/ns#" term="*nix" /><title>spotlight on the command line</title><content type="html">I've recently learned about &lt;code&gt;mdfind&lt;/code&gt; on OSX. &lt;code&gt;mdfind&lt;/code&gt; is essentially a commandline interface to Spotlight. One of the benefits of using &lt;code&gt;mdfind&lt;/code&gt; over &lt;code&gt;locate&lt;/code&gt; is that the indexing is done in real time. As soon as the file is added to the file system, it is added to the index.&lt;br /&gt;&lt;br /&gt;You can read up on the command at:&lt;br /&gt;&lt;a href="http://macdevcenter.com/mac/2006/01/04/mdfind.html"&gt;http://macdevcenter.com/mac/2006/01/04/mdfind.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-8006551929345148906?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BkB3lodr3W3r7JG4XanKVB31-nA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BkB3lodr3W3r7JG4XanKVB31-nA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BkB3lodr3W3r7JG4XanKVB31-nA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BkB3lodr3W3r7JG4XanKVB31-nA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/1Coj4LspHBo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/8006551929345148906/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=8006551929345148906" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/8006551929345148906?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/8006551929345148906?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/1Coj4LspHBo/spotlight-on-command-line.html" title="spotlight on the command line" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/10/spotlight-on-command-line.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04HR3o7cSp7ImA9WxNVGUk.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-4817581744871568838</id><published>2009-10-30T17:04:00.004-06:00</published><updated>2009-10-30T18:45:36.409-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-30T18:45:36.409-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="*nix" /><title>Sending screen commands</title><content type="html">You can start a detached screen session using the following command:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;screen -dm -S myTest&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This will create a screen session named 'myTest'. You can verify it was created with 'screen -list'. You should see something similar to the following when you type that command:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ screen -list&lt;br /&gt;There is a screen on:&lt;br /&gt;31306.myTest    (Detached)&lt;br /&gt;1 Socket in /tmp/uscreens/S-mmasters.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then you can send commands to the newly created screen session:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;screen -S myTest -p 0 -X stuff 'top^M'&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;You have to type &amp;lt;control-v&amp;gt;&amp;lt;control-m&amp;gt; to get the ^M character correctly. This command will essentially type 'top' and 'enter' in the screen session named 'myTest' for the 0th window. When you reconnect to the screen session, you should see top running. You can type 'q' to quit top.&lt;br /&gt;&lt;br /&gt;The important part of this command is the -X. This switch can take several different commands. You can see all the commands available at&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gnu.org/software/screen/manual/screen.html#Command-Summary"&gt;http://www.gnu.org/software/screen/manual/screen.html#Command-Summary&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I found this &lt;a href="http://aperiodic.net/screen/faq"&gt;link&lt;/a&gt; to be very helpful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-4817581744871568838?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4rDfw4Rm5JRYvTQRoQPYzrRQNN4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4rDfw4Rm5JRYvTQRoQPYzrRQNN4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4rDfw4Rm5JRYvTQRoQPYzrRQNN4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4rDfw4Rm5JRYvTQRoQPYzrRQNN4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/TEH_ob96_1A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/4817581744871568838/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=4817581744871568838" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/4817581744871568838?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/4817581744871568838?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/TEH_ob96_1A/sending-screen-commands.html" title="Sending screen commands" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2009/10/sending-screen-commands.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAGSX8-eyp7ImA9WxBRFko.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-8027840387100216390</id><published>2007-12-13T15:31:00.001-06:00</published><updated>2010-01-05T00:42:08.153-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-05T00:42:08.153-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="xmllint" /><category scheme="http://www.blogger.com/atom/ns#" term="XSD" /><category scheme="http://www.blogger.com/atom/ns#" term="XML" /><title>Validating xml and xsd with xmllint</title><content type="html">Recently, I've been going through some tutorials on XSD. I always find the tutorials on &lt;a href="http://www.w3schools.com/schema/default.asp"&gt;W3Schools&lt;/a&gt; to be very help and they've come through on this subject. The information on their site is concise and to the point. While going through their tutorials, I wanted to find an easy way of testing what I'd learned. Preferably, this would involve a command line utility.&lt;br /&gt;&lt;br /&gt;I found that xmllint provides the functionality I was looking for. I'd like to step through what I've been doing to test my XML/XSD validation.&lt;br /&gt;&lt;br /&gt;1. Create the XSD file. I'll use an example from W3Schools. Save the following to a file named note.xsd:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"&lt;br /&gt;       targetNamespace="http://www.w3schools.com"&lt;br /&gt;       xmlns="http://www.w3schools.com"&lt;br /&gt;       elementFormDefault="qualified"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xs:element name="note"&amp;gt;&lt;br /&gt;  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;      &amp;lt;xs:element name="to" type="xs:string"/&amp;gt;&lt;br /&gt;      &amp;lt;xs:element name="from" type="xs:string"/&amp;gt;&lt;br /&gt;      &amp;lt;xs:element name="heading" type="xs:string"/&amp;gt;&lt;br /&gt;      &amp;lt;xs:element name="body" type="xs:string"/&amp;gt;&lt;br /&gt;    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;2. Create the XML file. Again, we'll use an example from W3Schools. Save the following to a file named note.xml:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;note xmlns="http://www.w3schools.com"&lt;br /&gt;  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;  xsi:schemaLocation="http://www.w3schools.com note.xsd"&amp;gt;&lt;br /&gt;&amp;lt;to&amp;gt;Tove&amp;lt;/to&amp;gt;&lt;br /&gt;&amp;lt;from&amp;gt;Jani&amp;lt;/from&amp;gt;&lt;br /&gt;&amp;lt;heading&amp;gt;Reminder&amp;lt;/heading&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;Don't forget me this weekend!&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/note&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;3. Validate the XML against the Schema. You will need to have xmllint installed. I type the following on the command line for validation:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;xmllint --noout --schema note.xsd note.xml&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This gives me the following output:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;note.xml validates&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now that we know what happens for passing validation, I'd like to show you a failing one. Let's change the order of the elements in our XML. This will cause the validation to fail because the order is explicit per our XSD. The following XML switches the to and from elements:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;note xmlns="http://www.w3schools.com"&lt;br /&gt;   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;   xsi:schemaLocation="http://www.w3schools.com note.xsd"&amp;gt;&lt;br /&gt; &amp;lt;from&amp;gt;Jani&amp;lt;/from&amp;gt;&lt;br /&gt; &amp;lt;to&amp;gt;Tove&amp;lt;/to&amp;gt;&lt;br /&gt; &amp;lt;heading&amp;gt;Reminder&amp;lt;/heading&amp;gt;&lt;br /&gt; &amp;lt;body&amp;gt;Don't forget me this weekend!&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/note&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This will give the following output when we run xmllint:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;note.xml:5: element from: Schemas validity error : Element '{http://www.w3schools.com}from': This element is not expected. Expected is ( {http://www.w3schools.com}to ).&lt;br /&gt;note.xml fails to validate&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I'm a little disappointed with the error message that I receive, but I think I'll gain a better understanding of them as I use the tool more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-8027840387100216390?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1WqOewqZeiDLjS8h0jzil3ihvLM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1WqOewqZeiDLjS8h0jzil3ihvLM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1WqOewqZeiDLjS8h0jzil3ihvLM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1WqOewqZeiDLjS8h0jzil3ihvLM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/4Q5U88nkfg0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/8027840387100216390/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=8027840387100216390" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/8027840387100216390?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/8027840387100216390?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/4Q5U88nkfg0/validating-xmlxsd-with-xmllint.html" title="Validating xml and xsd with xmllint" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2007/12/validating-xmlxsd-with-xmllint.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08MR30ycCp7ImA9WBFUFU8.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-1907861582882667095</id><published>2007-04-24T20:52:00.000-06:00</published><updated>2007-04-25T12:31:26.398-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-04-25T12:31:26.398-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="*nix" /><title>Tab Completion</title><content type="html">Ever since I've used cvs and subversion I've wanted to exclude the CVS directories and .svn directories from the tab completion list. In the past, I've lackadaisically looked for a solution to this. This problem comes up quite a bit for me when I'm inside the directories of a java project. Most of the time people will break their classes into separate packages, which is exactly what they should do. Hence, you get packages like com.ibm.ltc.eclipse.foobar which correspond to a directory structure like com/ibm/ltc/eclipse/foobar. The problem is that all the classes might be in the foobar directory. Most of the time, in a situation like this, it's nice to start above the com directory and continuously hit tab until you get to the last directory. This assumes there's nothing in the other directories. But if you're using subversion, then there's a .svn directory in each of them. This prevents you from using the tab completion as I've described because it wants you to choose between com and .svn. NO MORE MY FRIEND! I finally got a little frustrated with this today.&lt;br /&gt;&lt;br /&gt;I use bash, so I used the following in my .bash_profile to solve the problem:&lt;br /&gt;&lt;br /&gt;export FIGNORE=CVS:.svn&lt;br /&gt;&lt;br /&gt;This will ignore the CVS and .svn directories for tab completions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-1907861582882667095?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lYJHqGEnGmm-5ueCbj2RqpuLvDI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lYJHqGEnGmm-5ueCbj2RqpuLvDI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lYJHqGEnGmm-5ueCbj2RqpuLvDI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lYJHqGEnGmm-5ueCbj2RqpuLvDI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/RIxRtHkmpiw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/1907861582882667095/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=1907861582882667095" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/1907861582882667095?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/1907861582882667095?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/RIxRtHkmpiw/tab-completion.html" title="Tab Completion" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2007/04/tab-completion.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMBQ3w5eip7ImA9WBBXF0s.&quot;"><id>tag:blogger.com,1999:blog-3429076028495877517.post-7054798567933206163</id><published>2006-11-27T10:14:00.000-06:00</published><updated>2006-11-28T20:30:52.222-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2006-11-28T20:30:52.222-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="VIM" /><title>increment/decrement numbers</title><content type="html">^a - increment&lt;br /&gt;^x - decrement&lt;br /&gt;&lt;br /&gt;I knew there was a way to increment/decrement numbers in normal mode for VIM. I spent about 5 minutes trying to find the keystrokes that would do this. I tried to use :help increment, but there was no help available inside VIM. Hence, I've added an entry here so I can easily find it again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3429076028495877517-7054798567933206163?l=michaelmasters.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/J9JWiXG36ZNO-VO8Bje92Qv5eKw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/J9JWiXG36ZNO-VO8Bje92Qv5eKw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/J9JWiXG36ZNO-VO8Bje92Qv5eKw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/J9JWiXG36ZNO-VO8Bje92Qv5eKw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/XAcv/~4/ziq7nqLA7Sg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://michaelmasters.blogspot.com/feeds/7054798567933206163/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3429076028495877517&amp;postID=7054798567933206163" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/7054798567933206163?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3429076028495877517/posts/default/7054798567933206163?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/XAcv/~3/ziq7nqLA7Sg/incrementdecrement-numbers-in-vim.html" title="increment/decrement numbers" /><author><name>Mike Masters</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_Hw8YvxS0paU/TSKucPeBGxI/AAAAAAAAA8g/8o7iRiPwuH0/S220/profilepic.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://michaelmasters.blogspot.com/2006/11/incrementdecrement-numbers-in-vim.html</feedburner:origLink></entry></feed>

