<?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;Ck8BQH45cSp7ImA9WhRRFEk.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225</id><updated>2011-11-27T17:40:51.029-07:00</updated><category term="Reviews" /><category term="VBScript" /><category term="Python" /><category term="Macintosh" /><category term="Vista" /><category term="SSH" /><category term="MySQL" /><category term="SQL" /><category term="CSS" /><category term="Search Engines" /><category term="Samba" /><category term="ASP" /><category term="Perl" /><category term="Windows" /><category term="Sysadmin" /><category term="Security" /><category term="Java" /><category term="OSX" /><category term="Programming" /><category term="C#" /><category term="C++" /><category term="PHP" /><category term="Flash" /><category term="Graphics" /><category term="Linux" /><category term="HTML" /><category term="Networking" /><category term="OpenOffice.org" /><category term="Visual Basic" /><category term="Hardware" /><category term="Ubuntu" /><category term="Free" /><category term="ASP.Net" /><category term="Virtualization" /><category term="JavaScript" /><category term="Android" /><category term="Solr" /><title>Grokking Code</title><subtitle type="html">Code exists for a reason</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://grokkingcode.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://grokkingcode.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>65</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/TexPT" /><feedburner:info uri="blogspot/texpt" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CEIBRX05eCp7ImA9WhdSFE0.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-369886624186158824</id><published>2011-07-22T23:29:00.000-07:00</published><updated>2011-07-22T23:29:14.320-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-22T23:29:14.320-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net" /><title>Safely Retrieving Values in ASP.Net 4.0</title><content type="html">This is a C# 4.0 updated version of &lt;a href="/2009/01/safely-retrieving-values-in-aspnet-20.html"&gt;Safely Retrieving Values in ASP.Net 2.0&lt;/a&gt; from January, 2009.&lt;br&gt;
Not everything we do in ASP.Net gets sent via web form.  We still do a lot involving Request.QueryString[] and Request.Form[].  The trick is dealing with input that may or may not be there or may even be in the wrong format (such as someone tweaking the URL to see if they can break your site or insert content for a cross-site scripting attack).
&lt;a href="http://grokkingcode.blogspot.com/2011/07/safely-retrieving-values-in-aspnet-40.html#more"&gt;Read more »&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-369886624186158824?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ggH6TTX2k08Lv2fl2HRQy7p6gow/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ggH6TTX2k08Lv2fl2HRQy7p6gow/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/ggH6TTX2k08Lv2fl2HRQy7p6gow/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ggH6TTX2k08Lv2fl2HRQy7p6gow/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/TexPT/~4/C6G-_Tj09IE" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2011/07/safely-retrieving-values-in-aspnet-40.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/369886624186158824?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/369886624186158824?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/C6G-_Tj09IE/safely-retrieving-values-in-aspnet-40.html" title="Safely Retrieving Values in ASP.Net 4.0" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2011/07/safely-retrieving-values-in-aspnet-40.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUBSXs_cCp7ImA9WhZVGUo.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-6981261535971867164</id><published>2011-06-01T18:14:00.000-07:00</published><updated>2011-06-01T18:14:18.548-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-01T18:14:18.548-07:00</app:edited><title>Apple Clamps Down on Free Apple Device Promotions</title><content type="html">&lt;a href="http://apple.slashdot.org/story/11/06/01/2158224/Apple-Nixes-iPad-Giveaways"&gt;Slashdot&lt;/a&gt; is carrying a discussion of Apple's recent enforcement attempts to prevent companies using Apple devices in giveaways. This amuses me to no end, as having worked with a few Apple devices, you'd have to pay me to take one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-6981261535971867164?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oBzGYyVd3AIzKOImT-TaowjH5wI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oBzGYyVd3AIzKOImT-TaowjH5wI/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/oBzGYyVd3AIzKOImT-TaowjH5wI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oBzGYyVd3AIzKOImT-TaowjH5wI/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/TexPT/~4/S_U3Hw1fRpA" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2011/06/apple-clamps-down-on-free-apple-device.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/6981261535971867164?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/6981261535971867164?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/S_U3Hw1fRpA/apple-clamps-down-on-free-apple-device.html" title="Apple Clamps Down on Free Apple Device Promotions" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2011/06/apple-clamps-down-on-free-apple-device.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ICQXw7cCp7ImA9WhZWGEg.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-8787468561469581416</id><published>2011-05-19T19:46:00.001-07:00</published><updated>2011-05-19T19:46:00.208-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-19T19:46:00.208-07:00</app:edited><title>I want TermKit and I want it via SSH too</title><content type="html">A terminal program that handles text and graphics, handles pipes based on input source or output type, and gives you the ability to format your data with HTML/CSS? &lt;a href="http://acko.net/blog/on-termkit" title="TermKit"&gt;Yes PLEASE.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-8787468561469581416?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7NZ6snl7P2fV5Er7A41RTUH8dFM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7NZ6snl7P2fV5Er7A41RTUH8dFM/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/7NZ6snl7P2fV5Er7A41RTUH8dFM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7NZ6snl7P2fV5Er7A41RTUH8dFM/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/TexPT/~4/7IDp_MtVCIU" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2011/05/i-want-termkit-and-i-want-it-via-ssh.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/8787468561469581416?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/8787468561469581416?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/7IDp_MtVCIU/i-want-termkit-and-i-want-it-via-ssh.html" title="I want TermKit and I want it via SSH too" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2011/05/i-want-termkit-and-i-want-it-via-ssh.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8GSHw8cSp7ImA9WhZWFkg.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-5089650006163164364</id><published>2011-05-17T07:52:00.001-07:00</published><updated>2011-05-17T10:53:49.279-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-17T10:53:49.279-07:00</app:edited><title>Droid 2 Texting Failure Has Finally Struck Me</title><content type="html">I've had at least 3 text messages this morning that may or may not have gone to who I was trying to send to because the name and picture on the conversation thread belong to one person while the phone number that appears belongs to another person who is right before them on the contact list.&amp;nbsp; I don't know if it's Motorola, Google/Android, or Verizon to blame for this, but I'm utterly disappointed that such a basic feature as texting can go so horribly wrong. And I know from searches that I'm not the first person to be struck by this, so either those companies are incompetent or willfully unaware of the problems with their phones.&lt;br /&gt;
Neither of these were new contacts and I've texted each of them (successfully) in the recent past as well.&lt;br /&gt;
&lt;br /&gt;
Update: Some good news.&amp;nbsp; The number I was trying to text really did receive the messages, it just looked like they were going to the wrong person, right down to showing up in a conversation thread with that other person. Not sure who would have gotten the messages if I'd gotten a reply to the texts instead of originating all of them from the contacts list.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-5089650006163164364?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Cv5R2PBziuDOhMSBLTlrf1F65OQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Cv5R2PBziuDOhMSBLTlrf1F65OQ/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/Cv5R2PBziuDOhMSBLTlrf1F65OQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Cv5R2PBziuDOhMSBLTlrf1F65OQ/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/TexPT/~4/K6jR_bZaLt0" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2011/05/droid-2-texting-failure-has-finally.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/5089650006163164364?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/5089650006163164364?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/K6jR_bZaLt0/droid-2-texting-failure-has-finally.html" title="Droid 2 Texting Failure Has Finally Struck Me" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2011/05/droid-2-texting-failure-has-finally.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4DSX4yeip7ImA9WhZWE0Q.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-6649710034993120513</id><published>2011-05-13T21:56:00.002-07:00</published><updated>2011-05-14T10:09:38.092-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-14T10:09:38.092-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><title>My Family's Opinion on Ubuntu's Unity: Can We Please Downgrade?</title><content type="html">Yes, Canonical, every member of my family that has been subjected to Ubuntu 11.04 has hated it to the point where the kids fight over who gets to use one of the computers still running Ubuntu 10.10.&amp;nbsp; My teenagers were ready to stage a rebellion when I told them I was updating the remaining computers this weekend until I told them that I would also be installing Gnome-Shell as an alternative to Unity so they'd be able to use them pretty much they way they did prior to the "upgrade".&lt;br /&gt;
&lt;br /&gt;
Personally, if I wanted a netbook interface, I would have bought a netbook. I'm beginning the upgrade of my personal system as I write this. When completed, the very first thing I'll be doing is banishing Unity to some dark, desolate corner of my hard drive.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Post Install Update:&lt;/b&gt; Seems I won't be fighting with Unity after all. I was informed my hardware wasn't up to snuff for running it and would have to use Ubuntu Classic. If my hardware can't run Unity, I shudder to think of what Canonical has foisted upon netbook users who "upgrade" to 11.04.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-6649710034993120513?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cSK2MaLwwfhumLwZSLrJGkBpk1c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cSK2MaLwwfhumLwZSLrJGkBpk1c/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/cSK2MaLwwfhumLwZSLrJGkBpk1c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cSK2MaLwwfhumLwZSLrJGkBpk1c/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/TexPT/~4/8ygtuFbHbzg" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2011/05/my-familys-opinion-on-ubuntus-unity-can.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/6649710034993120513?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/6649710034993120513?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/8ygtuFbHbzg/my-familys-opinion-on-ubuntus-unity-can.html" title="My Family's Opinion on Ubuntu's Unity: Can We Please Downgrade?" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2011/05/my-familys-opinion-on-ubuntus-unity-can.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AHQn87fCp7ImA9WhZQFU4.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-5240261277192410365</id><published>2011-04-22T23:22:00.000-07:00</published><updated>2011-04-22T23:22:13.104-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-22T23:22:13.104-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Sysadmin" /><category scheme="http://www.blogger.com/atom/ns#" term="Networking" /><title>Sharing Has Its Limits</title><content type="html">As much as I like to help keep costs down by using torrents when getting Linux distributions, the Ultimate Boot CD, Eclipse, OpenOffice.org, and now LibreOffice, it really hurts that others seem to think that my openness and sharing extends to my entire network.&amp;nbsp; I have logs full of people getting blocked from my network because they just couldn't help but see if they could access SSH, FTP, POP, IMAP, and a number of other ports you might find interesting if you were a hacker.&amp;nbsp; There's no 3 strikes rule on my network.&amp;nbsp; If you attempt to access anything I haven't specifically granted, you're out.&amp;nbsp; No jury.&amp;nbsp; No appeal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-5240261277192410365?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/coPGWvhXEJxTYnXIMfDbd4P0UtE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/coPGWvhXEJxTYnXIMfDbd4P0UtE/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/coPGWvhXEJxTYnXIMfDbd4P0UtE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/coPGWvhXEJxTYnXIMfDbd4P0UtE/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/TexPT/~4/JYM_4V81s-Q" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2011/04/sharing-has-its-limits.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/5240261277192410365?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/5240261277192410365?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/JYM_4V81s-Q/sharing-has-its-limits.html" title="Sharing Has Its Limits" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2011/04/sharing-has-its-limits.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YMQXo4fip7ImA9WhZQEks.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-5450487239644656980</id><published>2011-04-19T20:13:00.035-07:00</published><updated>2011-04-19T20:13:00.436-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-19T20:13:00.436-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net" /><title>ASP.Net HTTP Status 404</title><content type="html">I've seen 2 common ways to throw HTTP 404 errors in ASP.Net (I'm using C# for the code examples)...&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
throw new System.Web.HttpException(404, "{Custom not found message here}");
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
And...&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
Response.Clear();&lt;br /&gt;
Response.StatusCode = 404;&lt;br /&gt;
Response.End();&lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
While it would seem like the first one would be the best all-around option, it has a large problem when implemented in the middle of a try/catch block... It gets caught.  By using the Response object instead, you can let the browser handle the status code by whatever means it would normally display such a response from the server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-5450487239644656980?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FEo-lZHfRMSKxQH6knM5CSZYSL0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FEo-lZHfRMSKxQH6knM5CSZYSL0/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/FEo-lZHfRMSKxQH6knM5CSZYSL0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FEo-lZHfRMSKxQH6knM5CSZYSL0/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/TexPT/~4/77Rjxah8_p8" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2011/04/aspnet-http-status-404.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/5450487239644656980?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/5450487239644656980?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/77Rjxah8_p8/aspnet-http-status-404.html" title="ASP.Net HTTP Status 404" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2011/04/aspnet-http-status-404.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUAQXg-eyp7ImA9Wx9UGE8.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-2892797385790481420</id><published>2011-02-15T19:44:00.006-07:00</published><updated>2011-02-15T19:44:00.653-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-15T19:44:00.653-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><title>Linked Droid Contacts FAIL</title><content type="html">I'm finding lots of posts by people trying to fix their Droid contacts lists to show the name stored in the phone instead of the one on Facebook, MySpace, Twitter, etc. and I have yet to find a single solution other than removing social networking accounts from the phone settings.  Google engineers are pretty good at fixing their mistakes in a fairly timely manner.  This leads me to believe that Verizon or Motorola did the poor job of testing contact data management on the Droid line of phones.&lt;br /&gt;
&lt;br /&gt;
So let's &lt;a href="http://advancedsearch.motorola.com/socialsearch/query?query=edit+droid+contacts+names&amp;customerId=motorola&amp;code=b2c_usa&amp;startingDocNum=1&amp;mode=congsa&amp;hl=en"&gt;ask Motorola&lt;/a&gt; and &lt;a href="http://search.vzw.com/?market=24246&amp;q=edit+droid+contact+names&amp;p=null&amp;ss=null&amp;b2eFlag=N"&gt;ask Verizon&lt;/a&gt; how we fix this problem.  After all, it's a cell phone function that been around for years and has always allowed for editing entries as far back as I can remember.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-2892797385790481420?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4Y4Znf3Ga024WRUMSj8Vy-6Wic0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4Y4Znf3Ga024WRUMSj8Vy-6Wic0/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/4Y4Znf3Ga024WRUMSj8Vy-6Wic0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4Y4Znf3Ga024WRUMSj8Vy-6Wic0/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/TexPT/~4/keBydtyyGqw" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2011/02/linked-droid-contacts-fail.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/2892797385790481420?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/2892797385790481420?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/keBydtyyGqw/linked-droid-contacts-fail.html" title="Linked Droid Contacts FAIL" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2011/02/linked-droid-contacts-fail.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IMQns4fCp7ImA9Wx9UEE8.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-4105357581550427039</id><published>2011-02-04T18:56:00.003-07:00</published><updated>2011-02-06T13:53:03.534-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-06T13:53:03.534-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><title>Android market impasse [not] solved. [Updated]</title><content type="html">Just a few days ago I wrote about &lt;a href="/2011/01/android-tablets-stuck-at-impasse.html"&gt;problems trying to get apps for an Android tablet&lt;/a&gt;.  I swear that I had no idea at the time Google/Android were going to be opening a &lt;a href="http://market.android.com/"&gt;web based Android market&lt;/a&gt; just 4 days later.  I feel much better now about buying an Android tablet without having to pay for a big name on the box.&lt;br /&gt;
&lt;br /&gt;
Update: Finally got around to trying the web based Android Market with my wife's aPad and it's still useless. I can't associate the device with my market account because the maker didn't include an accounts and sync section in the settings. Going forward, anyone purchasing an off-brand Android based device should make sure that set of settings exists or that something like AndAppStore.com gets some massive improvements done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-4105357581550427039?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qpf0mBiaUEjmkObib5MLqp6cLvA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qpf0mBiaUEjmkObib5MLqp6cLvA/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/qpf0mBiaUEjmkObib5MLqp6cLvA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qpf0mBiaUEjmkObib5MLqp6cLvA/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/TexPT/~4/cpL_I02byJY" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2011/02/android-market-impasse-solved.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/4105357581550427039?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/4105357581550427039?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/cpL_I02byJY/android-market-impasse-solved.html" title="Android market impasse [not] solved. [Updated]" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2011/02/android-market-impasse-solved.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4GRn0-eCp7ImA9Wx9VGU8.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-7987771350332122068</id><published>2011-01-31T18:22:00.001-07:00</published><updated>2011-02-05T11:02:07.350-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-05T11:02:07.350-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Hardware" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><title>A review of my family's experiences with the Apad E600</title><content type="html">Seems I'll have to revise my &lt;a href="/2011/01/android-tablets-stuck-at-impasse.html"&gt;earlier statement&lt;/a&gt; that these are passable tablets.  You should instead take a pass on them.  The 256MB of RAM and 720MHz processor just aren't enough for my family members' use.  We finally worked out a way of getting some apps from the official Apps Market and onto the Apads, but you'll need a friend with an actual "blessed" Android system to do it (before anyone yells piracy, we only copied over free apps that weren't available through F-Droid or AndAppStore).  The 2GB is built-in storage was adequate for what few apps they wanted to use.  We have 2 Apads and each of them has had stuck power button issues.  They've both had overheating problems to the point where they are painful to touch on the back.  The touch screens are also a bit finicky, but that's only a problem if you're trying to play games, not read or watch videos.&lt;br /&gt;
&lt;br /&gt;
Update: One of the power buttons is now permanently stuck and DinoDirect.com's customer assistance redirects you to their forums where I'm seeing lots of problems being posted about the various "aPad" models they carry. I don't think I'm likely to order from them again. They appear to be intended as wholesalers and have a very short return policy centered more around receiving defective merchandise than items failing during use. I also haven't been able to determine a manufacturer for the aPads to contact about any kind of warranty whatsoever.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-7987771350332122068?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lUxed_UfwL-e6iRwZ3tQ062DUyk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lUxed_UfwL-e6iRwZ3tQ062DUyk/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/lUxed_UfwL-e6iRwZ3tQ062DUyk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lUxed_UfwL-e6iRwZ3tQ062DUyk/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/TexPT/~4/Bk-5u0rM2Qk" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2011/01/review-of-my-familys-experiences-with.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/7987771350332122068?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/7987771350332122068?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/Bk-5u0rM2Qk/review-of-my-familys-experiences-with.html" title="A review of my family's experiences with the Apad E600" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2011/01/review-of-my-familys-experiences-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4GQns8fSp7ImA9Wx9VGU8.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-207481292406339474</id><published>2011-01-29T13:39:00.001-07:00</published><updated>2011-02-05T11:02:03.575-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-05T11:02:03.575-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><title>Android tablets stuck at an impasse</title><content type="html">Originally, I was going to write a review of the APAD E600 I'd picked up for about $100. It's a fine device for the price.  It's a lot slower than a netbook and has only 256MB of RAM to work with, so don't expect to use those for more than entertaining kids with standard definition YouTube videos at best.  The biggest flaw with these devices is something that is actually beyond their control and is damning of Android tablets in general at this time...&lt;br /&gt;
&lt;br /&gt;
Lack of application availability is going to kill Android as an OS.  The applications exist, and more are getting written all the time, but between Google's manufacturer's license requirements for their "official" app store (and no means of installing it after the fact), and many Android app makers not providing links to their APK files outside the market, it means those who try out an inexpensive Android tablet are going to be left with this horrible experience and likely a belief that all Android tablets are just that craptastic to use.  Say hello to more iPad users at that point.  (I, for one, refuse to submit to Apple's walled garden approach to applications.  At least even the licensed Android devices that Google has been paid to bless allow you to install applications from outside the market.)&lt;br /&gt;
&lt;br /&gt;
Here's hoping either Google makes the market app available to all or the software developers (at least of the free apps) pull their heads out of their nethers and make their apps available to a wider audience.&lt;br /&gt;
&lt;br /&gt;
Update: Here's something even more insane I've just run across, an app store like site (appbrain.com) that makes you use Google's market app to install their app.  It's like a circular firing squad in the software distribution industry.&lt;br /&gt;
&lt;br /&gt;
Update: I should point out that the &lt;a href="http://f-droid.org/"&gt;FDroid app&lt;/a&gt; does mostly what I'm hoping for, but only for free *and* open source Android apps.  &lt;a href="http://andappstore.com/"&gt;AndAppStore&lt;/a&gt; has an app, but it doesn't work on my Apad E600.  Neither of these handle market:// links, which is what is really going to matter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-207481292406339474?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6ksCyuz215g5_p0fHujKw9YaSPU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6ksCyuz215g5_p0fHujKw9YaSPU/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/6ksCyuz215g5_p0fHujKw9YaSPU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6ksCyuz215g5_p0fHujKw9YaSPU/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/TexPT/~4/X0w3LpGvIcM" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2011/01/android-tablets-stuck-at-impasse.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/207481292406339474?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/207481292406339474?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/X0w3LpGvIcM/android-tablets-stuck-at-impasse.html" title="Android tablets stuck at an impasse" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2011/01/android-tablets-stuck-at-impasse.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4FSHs_fyp7ImA9Wx9VGU8.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-6559547710205241763</id><published>2010-12-16T21:56:00.002-07:00</published><updated>2011-02-05T11:01:59.547-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-05T11:01:59.547-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reviews" /><category scheme="http://www.blogger.com/atom/ns#" term="Sysadmin" /><title>Ketarin: An Excellent Tool for Keeping Installers Up To Date</title><content type="html">In both my personal and professional life, I keep a local repository of the installers for software I use on multiple systems. People also often ask me to take a look at their computers and clean them up when they get infected or excess crap gets in from those default checked boxes during installations of other software.  Keeping those repositories up to date is a bit of a pain and sometimes results in installing an older version of something if I'm in a hurry.  Now I've found &lt;a href="http://ketarin.canneverbe.com/"&gt;Ketarin&lt;/a&gt; and it's been a big boost in time saving.  There's a large database of applications already defined for you to choose from and adding new applications is fairly easy to do.  Ketarin is primarily geared to work with &lt;a href="http://www.filehippo.com/"&gt;FileHippo&lt;/a&gt;, including a FileHippo ID field as an alternative to a download URL.&lt;br /&gt;
For programs without a FileHippo tracker defined, you can define a variable for the software version by giving it a page to find the current version number (often a program's web site home page) and then highlighting the distinctive text before and after the version number so Ketarin can pick it off the page (and there's a regular expression option for those who grok regular expressions where the captured group of the matching text is assigned as the value of the variable).  If the version is part of the installer's file name then the download URL is given as something like http://website.tld/files/SuperDuperInstaller{version}.exe and Ketarin replaces {version} with the parsed out version variable you taught it to find earlier.&lt;br /&gt;
It's not perfect by any stretch of the imagination. I've already run across a preset that caused crashes until I edited the SQLite database with an external editor. It doesn't work will with SourceForge hosted programs yet, but it can let you know if there's an updated version available.&lt;br /&gt;
Ketarin has already saved me a day of work updating the repository with the newest versions of software like Firefox, Thunderbird, OpenOffice.org, Inkscape, Paint.Net, 7-Zip, FileZilla, CCleaner, Foxit Reader, and so many more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-6559547710205241763?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Vao1TzJYjozwmZ4KZDGvO54CXzY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Vao1TzJYjozwmZ4KZDGvO54CXzY/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/Vao1TzJYjozwmZ4KZDGvO54CXzY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Vao1TzJYjozwmZ4KZDGvO54CXzY/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/TexPT/~4/n8JejI6hiOo" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2010/12/ketarin-excellent-tool-for-keeping.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/6559547710205241763?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/6559547710205241763?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/n8JejI6hiOo/ketarin-excellent-tool-for-keeping.html" title="Ketarin: An Excellent Tool for Keeping Installers Up To Date" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2010/12/ketarin-excellent-tool-for-keeping.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4FQ345fip7ImA9Wx9VGU8.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-3433510333339573617</id><published>2010-12-16T21:38:00.001-07:00</published><updated>2011-02-05T11:01:52.026-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-05T11:01:52.026-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Sysadmin" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><title>SpaceSniffer: Find Out What's Hogging Your Hard Drive</title><content type="html">I found another good tool for Windows systems today while helping someone with a full hard drive problem. It's called &lt;a href="http://www.uderzo.it/main_products/space_sniffer/"&gt;SpaceSniffer&lt;/a&gt; and it presents you with a graphical layout of your Drive (or a particular folder) in boxes sized relative to the amount of space they occupy. There are controls to go deeper or shallower if you need extra detail on what is taking up the space.  The site says you can also filter for particular file types and ages, but I haven't tried that yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-3433510333339573617?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/r3ZjDP5hmM-wxHqxFHObfJxJurM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/r3ZjDP5hmM-wxHqxFHObfJxJurM/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/r3ZjDP5hmM-wxHqxFHObfJxJurM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/r3ZjDP5hmM-wxHqxFHObfJxJurM/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/TexPT/~4/qYyMvHFKOWM" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2010/12/spacesniffer-find-out-whats-hogging.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/3433510333339573617?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/3433510333339573617?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/qYyMvHFKOWM/spacesniffer-find-out-whats-hogging.html" title="SpaceSniffer: Find Out What's Hogging Your Hard Drive" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2010/12/spacesniffer-find-out-whats-hogging.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4ESXoyeyp7ImA9Wx9VGU8.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-8245436060868098629</id><published>2010-11-19T00:30:00.001-07:00</published><updated>2011-02-05T11:01:48.493-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-05T11:01:48.493-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Sysadmin" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><title>Making Linux More Responsive Without the Kernel Patch</title><content type="html">Found this via &lt;a href="http://slashdot.org/"&gt;Slashdot&lt;/a&gt; and didn't want to lose track of it as I worked on various Linux boxes. There are a set of commands you can run to &lt;a href="http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html"&gt;greatly increase the responsiveness of your Linux system&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-8245436060868098629?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4H1ReWNm-NPSbPeuLjwgmZIFbho/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4H1ReWNm-NPSbPeuLjwgmZIFbho/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/4H1ReWNm-NPSbPeuLjwgmZIFbho/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4H1ReWNm-NPSbPeuLjwgmZIFbho/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/TexPT/~4/S_VT1b86c6Y" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2010/11/making-linux-more-responsive-without.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/8245436060868098629?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/8245436060868098629?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/S_VT1b86c6Y/making-linux-more-responsive-without.html" title="Making Linux More Responsive Without the Kernel Patch" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2010/11/making-linux-more-responsive-without.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4ERXY6eCp7ImA9Wx9VGU8.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-7054954539221977825</id><published>2010-11-12T07:20:00.001-07:00</published><updated>2011-02-05T11:01:44.810-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-05T11:01:44.810-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reviews" /><category scheme="http://www.blogger.com/atom/ns#" term="Flash" /><title>I Like Adobe's Flash Update Mechanism</title><content type="html">I don't want to be that person who just points out the problems with things. I want to point out when things are done right. Adobe's Flash updating software is simple, straightforward, and doesn't make me uncheck boxes for a bunch of crap I don't want installed.  There were a total of two check boxes.  I can't remember exactly what the first one said, but the second was the usual check to accept license terms.  There weren't any extra tool bars being added to my browsers or those of the users I support at my day job (I'm looking at you Sun/Oracle). They didn't push some security scanner on me (though they do try that with Acrobat Reader). As long as my browser is closed, the update just works.&lt;br /&gt;
&lt;br /&gt;
So thank you, Adobe, for getting this right.&lt;br /&gt;
&lt;br /&gt;
(And thank you for having a Linux version of Flash, too.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-7054954539221977825?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jsw1Tuz_zurHIHAMxqrorAabqWU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jsw1Tuz_zurHIHAMxqrorAabqWU/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/jsw1Tuz_zurHIHAMxqrorAabqWU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jsw1Tuz_zurHIHAMxqrorAabqWU/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/TexPT/~4/xIXzrGg6cgI" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2010/11/i-like-adobes-flash-update-mechanism.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/7054954539221977825?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/7054954539221977825?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/xIXzrGg6cgI/i-like-adobes-flash-update-mechanism.html" title="I Like Adobe's Flash Update Mechanism" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2010/11/i-like-adobes-flash-update-mechanism.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4EQXk5cSp7ImA9Wx9VGU8.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-6933500171124428366</id><published>2010-11-08T00:55:00.001-07:00</published><updated>2011-02-05T11:01:40.729-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-05T11:01:40.729-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Hardware" /><category scheme="http://www.blogger.com/atom/ns#" term="Networking" /><title>The bridge is dead. Long live the bridge!</title><content type="html">A pair of Wi-Fi routers with bridge capability has ended a long running problem with connecting two wired LAN segments of my home without running Cat 6 cables everywhere. I previously mentioned my &lt;a href="/2010/08/netgear-powerline-av-ethernet-adapter-kit-impressions/"&gt;adventures in powerline AV networking&lt;/a&gt; and the underwhelming results I got from that.  I replaced my pair of XAV101 powerline adapters with a pair of SMCWBR14S-N4 routers I got from &lt;a href="http://www.woot.com/Blog/ViewEntry.aspx?Id=14886"&gt;Woot&lt;/a&gt;.  A word of caution to all who want to try this kind of setup.  The instructions will tell you to enter the MAC address of the other routers in the &lt;a href="http://en.wikipedia.org/wiki/Wireless_Distribution_System"&gt;WDS&lt;/a&gt; network. Thanks in part to a very patient technical support person from the other side of the globe, we eventually worked out that it was actually the BSSID that needs to be entered on the WDS screen.  Here's hoping this makes it into either a manual errata or onto the FAQ SMC maintains for these routers. (It's not in the current one.)&lt;br /&gt;
&lt;br /&gt;
I guess we'll see how much of my &lt;a href="http://en.wikipedia.org/wiki/Boondoggle_%28project%29"&gt;boondoggle&lt;/a&gt; I get back when I yard sale these XAV101's.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-6933500171124428366?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LPNENASu5j8dpXuHUtR_jyfnMGM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LPNENASu5j8dpXuHUtR_jyfnMGM/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/LPNENASu5j8dpXuHUtR_jyfnMGM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LPNENASu5j8dpXuHUtR_jyfnMGM/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/TexPT/~4/QTQj-u8fSto" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2010/11/bridge-is-dead-long-live-bridge.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/6933500171124428366?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/6933500171124428366?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/QTQj-u8fSto/bridge-is-dead-long-live-bridge.html" title="The bridge is dead. Long live the bridge!" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2010/11/bridge-is-dead-long-live-bridge.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8NR3w8eSp7ImA9Wx9VGU8.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-3633373184247061074</id><published>2010-10-30T22:08:00.001-07:00</published><updated>2011-02-05T11:01:36.271-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-05T11:01:36.271-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><category scheme="http://www.blogger.com/atom/ns#" term="Virtualization" /><title>High Hopes for ReactOS</title><content type="html">I just installed the new &lt;a href="http://www.reactos.org/"&gt;ReactOS&lt;/a&gt; &lt;a href="http://www.reactos.org/en/news_page_61.html"&gt;0.3.12&lt;/a&gt; on &lt;a href="http://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt; to give it a spin.  The new ReactOS seems far more stable than its 0.3.11 predecessor, and given the long time since that release, I'm glad it wasn't a long wait for nothing.  The software manager included in the install makes it much easier to get a hold of some basic add-ons to make the system truly useful.&lt;br /&gt;
&lt;br /&gt;
I'm running it in VirtualBox 3.2.8, which the ReactOS people appear to have spent quite a bit of time with.  Unfortunately, this newest version of ReactOS works best with the guest additions of VirtualBox 3.1.x.  Something has changed in VBox since Oracle's takeover.  I'm not saying it's Oracle's fault, as it's unlikely they'd even think to test whether or not their changes would break an OS that was until recently thought to be going dormant.  Please try to avoid those long delays if possible, ReactOS devs.  Give us an 0.3.12.1 instead of making us wait for 0.3.13 if you have to just to let us know you're alive.&lt;br /&gt;
&lt;br /&gt;
For those wanting to download ReactOS and give it a spin, &lt;a href="http://linuxtracker.org/"&gt;Linux Tracker&lt;/a&gt; has a &lt;a href="http://linuxtracker.org/index.php?page=torrent-details&amp;id=a98d7a588016e83b4508c3c6fe04c9f96fab868b"&gt;React 0.3.12 torrent&lt;/a&gt; available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-3633373184247061074?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/D9Cc7qwBXoJa7nCtj1GjEjiC8eg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D9Cc7qwBXoJa7nCtj1GjEjiC8eg/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/D9Cc7qwBXoJa7nCtj1GjEjiC8eg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D9Cc7qwBXoJa7nCtj1GjEjiC8eg/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/TexPT/~4/jYlBJVRqgg4" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2010/10/high-hopes-for-reactos.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/3633373184247061074?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/3633373184247061074?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/jYlBJVRqgg4/high-hopes-for-reactos.html" title="High Hopes for ReactOS" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2010/10/high-hopes-for-reactos.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AFQn0_eip7ImA9Wx9VGU8.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-8329524807858281568</id><published>2010-10-10T10:27:00.000-07:00</published><updated>2011-02-05T10:08:33.342-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-05T10:08:33.342-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Free" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><title>Why Ubuntu Linux is Free</title><content type="html">Most Linux distributions are free to download and distribute.  I sometimes have to tailor my descriptions of why this is to my audience.  Today is the release date of Ubuntu 10.10, so I thought it was a good idea to let you read their explanation for &lt;a href="http://www.ubuntu.com/how-can-it-be-free"&gt;how Ubuntu Linux can be free&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-8329524807858281568?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OtUAsqvsjV5t5Lfp9GKKpx4sstk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OtUAsqvsjV5t5Lfp9GKKpx4sstk/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/OtUAsqvsjV5t5Lfp9GKKpx4sstk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OtUAsqvsjV5t5Lfp9GKKpx4sstk/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/TexPT/~4/l1eaPB5fZfo" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2010/10/why-ubuntu-linux-is-free.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/8329524807858281568?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/8329524807858281568?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/l1eaPB5fZfo/why-ubuntu-linux-is-free.html" title="Why Ubuntu Linux is Free" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2010/10/why-ubuntu-linux-is-free.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EFSHsycSp7ImA9Wx9VGU8.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-4311201138866242929</id><published>2010-09-10T17:37:00.000-07:00</published><updated>2011-02-05T10:06:59.599-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-05T10:06:59.599-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Sysadmin" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><title>Linux Drive Partitioning Gotchas</title><content type="html">Users new to Linux typically aren't going to mess with drive partitioning and probably accepted the defaults presented by their installer.  As time went on they stumbled across a few articles on partitioning and protecting your system against out of control processes filling the drive with garbage or just too much data.&lt;br /&gt;
&lt;br /&gt;
For those of you somewhere between new user and guru admin in your Linux path, you are probably ready to create partitions to prevent such a scenario.&lt;br /&gt;
&lt;br /&gt;
Recommended sizes of these partitions are going to vary with the use the system is being put to.&lt;br /&gt;
&lt;br /&gt;
All systems must have a root partition (/) for the rest of the partitions (except swap) to hang off of.&lt;br /&gt;
&lt;br /&gt;
You &lt;strong&gt;must not&lt;/strong&gt; make the following into partition mounts or "bad things" will happen...&lt;br /&gt;
/bin -- Low-level binaries needed to bring up the system (mount)&lt;br /&gt;
/sbin -- Low-level system binaries to bring up the system (fsck, lvm, ifconfig, *getty)&lt;br /&gt;
/etc -- Configuration files, such as which partitions to auto-mount and where to mount them&lt;br /&gt;
/root -- Root (admin) user's home directory.&lt;br /&gt;
/mnt and /media -- These are standard mounting point directories and shouldn't contain any files directly, just subdirectories for other partitions or devices to be mounted on.&lt;br /&gt;
/proc and /dev -- The files in these folders represent internal system workings.&lt;br /&gt;
&lt;br /&gt;
The following make excellent partitions...&lt;br /&gt;
/usr -- General use binaries. Partition to avoid getting carried away installing software.&lt;br /&gt;
/opt -- Similar to /usr, but typically contains software not normally installed in a system or software that needs to work out of its own directory instead of sharing /usr/bin. Partition to avoid excessive software installations and to keep such software from filling the drive with data.&lt;br /&gt;
/home -- User directories.  Partition this so the users can't fill the drive.  Consider setting quotas on user directories to avoid users crowding out other users.&lt;br /&gt;
/var -- Where databases, email, and logs are stored. Any of which could fill the drive if too much data was being stored.  (Failed log rotations, a large number of loggable events, excessive uncaught spam emails, or databases filled with more data than originally expected.)&lt;br /&gt;
/tmp -- A reasonably sized tmp directory will prevent working sets from hogging your system.&lt;br /&gt;
/boot -- A very small partition (50 MB or so is plenty of room on systems like Gentoo Linux) typically mounted only when updating the system to prevent corruption by unwanted users or processes.  If your system package management system can't auto-mount this partition, it might be a good idea to at least auto-mount it read-only and change it to read-write for upgrades.  (If it isn't mounted the update process will write to the /boot directory instead of the partition, failing to update the actual boot partition.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-4311201138866242929?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/etE_Vp3yWVUWf57vZ4BBn7PfJ9I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/etE_Vp3yWVUWf57vZ4BBn7PfJ9I/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/etE_Vp3yWVUWf57vZ4BBn7PfJ9I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/etE_Vp3yWVUWf57vZ4BBn7PfJ9I/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/TexPT/~4/F-2tHKQrr8c" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2010/09/linux-drive-partitioning-gotchas.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/4311201138866242929?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/4311201138866242929?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/F-2tHKQrr8c/linux-drive-partitioning-gotchas.html" title="Linux Drive Partitioning Gotchas" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2010/09/linux-drive-partitioning-gotchas.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IBSXo5fCp7ImA9Wx9VGU8.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-2253132156458409453</id><published>2010-08-21T21:43:00.000-07:00</published><updated>2011-02-05T10:05:58.424-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-05T10:05:58.424-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><title>Lesser Known Programming Truths</title><content type="html">&lt;a href="http://dotmac.rationalmind.net/"&gt;Dot Mac&lt;/a&gt;, a blog about the unlikely combination of OS X and DotNet has a great article for you to share with your boss, if you're an above average programmer.  It's titled "&lt;a href="http://dotmac.rationalmind.net/2010/08/some-lesser-known-truths-about-programming/"&gt;Some lesser-known truths about programming&lt;/a&gt;" and is worth a read regardless of your skill level.  If you recognize some of the habits of the average programmer, it might be the clue you need to step up your game.  I'd like to think that I'm somewhere between good and great, but I do get humbled now and then when I run across code I wrote almost 10 years ago when I was definitely average at best.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-2253132156458409453?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/J9ZYj7JLz7wp7H-iuE2QqdPW4MQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/J9ZYj7JLz7wp7H-iuE2QqdPW4MQ/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/J9ZYj7JLz7wp7H-iuE2QqdPW4MQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/J9ZYj7JLz7wp7H-iuE2QqdPW4MQ/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/TexPT/~4/MQRgYzXsCC8" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2010/08/lesser-known-programming-truths.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/2253132156458409453?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/2253132156458409453?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/MQRgYzXsCC8/lesser-known-programming-truths.html" title="Lesser Known Programming Truths" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2010/08/lesser-known-programming-truths.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YER3o_fSp7ImA9Wx9VGU8.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-1825011937809584700</id><published>2010-08-14T13:56:00.000-07:00</published><updated>2011-02-05T09:58:26.445-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-05T09:58:26.445-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OSX" /><title>Apple is Strictly Pay-to-Play [Updated]</title><content type="html">A close relative of mine deleted several large files after thinking he copied them to an external drive.  On Windows and Linux, dragging a file to an external drive would invoke a copy operation.  For some reason his Mac OSX 10.6 seems to think that he wanted to create shortcuts instead (apparently called an alias in Cappuccino-driven Apple-land).  Thinking (like an reasonable person would) that the files had copied over since he didn't get an error to the contrary, he deleted the files from his desktop.  Imagine his surprise and shock when he couldn't open the files from the external drive.&lt;br /&gt;
&lt;br /&gt;
Now if he were a Windows, there would be so many potential undelete programs vying for his attention, most of which are free, that he'd already be back to work on his media files.  There are even several free undelete utilities for Linux (being open means more and deeper collaboration as opposed to broader competition).  Alas, in the Mac world undelete utilities are few, far between, and relatively expensive.&lt;br /&gt;
&lt;br /&gt;
I was able to locate a couple of viable HFS+ capable undelete utilities, one of which is on the always handy &lt;a href="http://www.ultimatebootcd.com/"&gt;Ultimate Boot CD&lt;/a&gt;.  So I downloaded and burned a copy.  Turns out an Intel based Mac machine won't boot an ISO 9660 CD.  Fine.  I read about dual-bootable cd's.  I'm hopeful somebody has made a Mac version of the Ultimate Boot CD for Intel Macs.  Nothing.  Nada.  Zero.  Zilch.  If you make a mistake on your Mac you must pay through the nose to fix your mistake.&lt;br /&gt;
&lt;br /&gt;
For a system Apple insists is better than Windows, they have utterly crap support from the amateur development community.  College kids make undelete utilities for Windows in their college down-time these days.  Supposedly Macs are taking over college campuses.  Are these Mac users so unable to program their machines that not one bootable Mac utilities disc has been created yet?&lt;br /&gt;
&lt;br /&gt;
My current remaining options appear to be a $90 bootable DVD or risk overwriting some of the deleted files by downloading and installing the one rescue program I found to the hard drive.  (It's called &lt;a href="http://www.cgsecurity.org/wiki/PhotoRec"&gt;PhotoRec&lt;/a&gt; if any of you Mac users want to install it ahead of any future misfortunes.&lt;br /&gt;
&lt;br /&gt;
Update:  I put PhotoRec on a USB key and it can be run directly from there.  Now I'm just stuck waiting on a password so it can see all the other drives when it's run.&lt;br /&gt;
&lt;br /&gt;
Update 2:  Got the password, did a little "sudo bash" magic and ran the PhotoRec program from the USB stick.  It is not dutifully scanning the drive and has recovered over 40,000 delete files (most of which are Internet cache files to be re-deleted).  I'm glad I stand corrected about the lack of a free utility for OSX.  I truly believe a &lt;a href="http://www.cgsecurity.org/wiki/Donation"&gt;donation to the PhotoRec&lt;/a&gt; developers is in order.  I'll know for sure in about 18 more hours (apparently all the recovery software is known to take a very long time).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-1825011937809584700?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cf3V_chlqqCPmLMXxw0E6Iv8EAM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cf3V_chlqqCPmLMXxw0E6Iv8EAM/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/cf3V_chlqqCPmLMXxw0E6Iv8EAM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cf3V_chlqqCPmLMXxw0E6Iv8EAM/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/TexPT/~4/fXYLaz8-a2o" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2010/08/apple-is-strictly-pay-to-play.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/1825011937809584700?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/1825011937809584700?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/fXYLaz8-a2o/apple-is-strictly-pay-to-play.html" title="Apple is Strictly Pay-to-Play [Updated]" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2010/08/apple-is-strictly-pay-to-play.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cERH4-eSp7ImA9Wx9VGU8.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-3202783456339658678</id><published>2010-08-07T13:26:00.000-07:00</published><updated>2011-02-05T09:56:45.051-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-05T09:56:45.051-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reviews" /><category scheme="http://www.blogger.com/atom/ns#" term="Hardware" /><category scheme="http://www.blogger.com/atom/ns#" term="Networking" /><title>Netgear Powerline AV Ethernet Adapter Kit Impressions</title><content type="html">While the 2 Netgear XAV101 devices that come in the kit do stay connected better than my D-Link wireless router does, they are abysmally slow.  A download test from the switch clocked in at over 10 Mbps, but the same test done across the pair of powerline adapters managed only 1.5 Mbps.  Now having T-1 speeds is great if you're living in 1998, but I expect more from my broadband devices.  I've tried a few different outlets and never managed to get the connection speed light to be anything other than red (under 50 Mbps).  I don't know how far the wire travels in my house to get from one outlet to another, but I've tried them as close as 10 feet apart physically without any luck improving the speed light's color.  I'd be satisfied with orange (50 - 80 Mbps) as at least that would be as fast as wi-fi.  Hopefully someone reading this will have some helpful feedback, but for the time being, if anyone asked me if they should use a powerline network in their home, I'd have to say no.  My kids even reinstalled the USB Wireless adapter in one of their systems just to get back the speed they were used to.  It was less irritating to have to occasionally come downstairs to unplug and re-plug the wireless router's power connection than to wait on the powerline connection.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-3202783456339658678?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JqV0_9T5nQhiv1M1fqWEZaUw4Qo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JqV0_9T5nQhiv1M1fqWEZaUw4Qo/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/JqV0_9T5nQhiv1M1fqWEZaUw4Qo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JqV0_9T5nQhiv1M1fqWEZaUw4Qo/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/TexPT/~4/AZsunSLv864" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2010/08/netgear-powerline-av-ethernet-adapter.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/3202783456339658678?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/3202783456339658678?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/AZsunSLv864/netgear-powerline-av-ethernet-adapter.html" title="Netgear Powerline AV Ethernet Adapter Kit Impressions" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2010/08/netgear-powerline-av-ethernet-adapter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUHQXYyfip7ImA9Wx9VGU8.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-7904729311048615146</id><published>2010-07-29T17:57:00.000-07:00</published><updated>2011-02-05T09:43:50.896-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-05T09:43:50.896-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reviews" /><title>Yahoo Messenger 10 Upgrade Shenanigans</title><content type="html">Just got the automatic update to Yahoo Messenger version 10 and somewhere in that single window mentioning it wanted to do that update I missed the box labeled, "Overwrite my browser preferences and install your space-wasting toolbar," option to uncheck.  In both Firefox and IE, Yahoo installed their toolbar, changed my home page, and altered my default search box provider.  While my home page was easily reset, I know several power-users who have their default home page set to a group of tabs.  I can't imagine the frustration they'd feel having to set up their pipe-separated home page list after your latest faux pas.&lt;br /&gt;
&lt;br /&gt;
You have crossed a line with me, Yahoo.  As of today, I'm uninstalling the official messenger software and using an alternative messaging client, &lt;a href="http://www.pidgin.im/" title="Pidgin, the universal chat client"&gt;Pidgin&lt;/a&gt;, on all my systems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-7904729311048615146?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Pu9pgDQON_VoRhOxQ8eyEb1F238/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Pu9pgDQON_VoRhOxQ8eyEb1F238/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/Pu9pgDQON_VoRhOxQ8eyEb1F238/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Pu9pgDQON_VoRhOxQ8eyEb1F238/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/TexPT/~4/EXueIqTMEgQ" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2010/07/yahoo-messenger-10-upgrade-shenanigans.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/7904729311048615146?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/7904729311048615146?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/EXueIqTMEgQ/yahoo-messenger-10-upgrade-shenanigans.html" title="Yahoo Messenger 10 Upgrade Shenanigans" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2010/07/yahoo-messenger-10-upgrade-shenanigans.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMGQXo9eSp7ImA9Wx9VE0k.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-7658047340020283030</id><published>2010-07-12T22:36:00.000-07:00</published><updated>2011-01-29T16:07:00.461-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-29T16:07:00.461-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><title>Ubuntu 10.04 Equivalent of Windows Startup Folder</title><content type="html">If you want something to start automatically when you log into Ubuntu similar to the Windows Startup folder's functionality, what you're looking for is System -&gt; Preferences -&gt; Startup Applications.&lt;br /&gt;
&lt;br /&gt;
There, you can uncheck anything you don't want to auto-start (or remove it from the list entirely).  You can also add programs to the list.  Click the Add button and browse for the application.  I prefer typing in the applications path, and if you do as well, you can enter it in the location bar and it will attempt to auto-complete for you.  If you don't see the location bar, click the wand in the upper-left corner.  You can include command line parameters as well.&lt;br /&gt;
&lt;br /&gt;
For those still dipping their toes outside Windows, you'll find most of the things you run located in the folder /usr/bin.  Think of it as being akin to C:\Program Files\ but without the subfolders separating all the different programs out.&lt;br /&gt;
&lt;br /&gt;
You'll also find a check box on the options tab for remembering what programs are running when you log out so they can be restarted when you log back in.  (I leave it unchecked as I sometimes log out as a way of getting rid of nuisance software.)&lt;br /&gt;
&lt;br /&gt;
I must thank the &lt;a href="http://www.howtogeek.com/howto/ubuntu/how-to-add-a-program-to-the-ubuntu-startup-list-after-login/"&gt;How-To Geek article for doing this on Ubuntu Edgy Eft&lt;/a&gt; for putting me on the right path to finding this (it's changed a little from Edgy Eft).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-7658047340020283030?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2QRT3YptVNEQVUcXE-Rz5lVyCJs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2QRT3YptVNEQVUcXE-Rz5lVyCJs/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/2QRT3YptVNEQVUcXE-Rz5lVyCJs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2QRT3YptVNEQVUcXE-Rz5lVyCJs/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/TexPT/~4/EuNvy219JvM" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2010/07/ubuntu-1004-equivalent-of-windows.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/7658047340020283030?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/7658047340020283030?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/EuNvy219JvM/ubuntu-1004-equivalent-of-windows.html" title="Ubuntu 10.04 Equivalent of Windows Startup Folder" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2010/07/ubuntu-1004-equivalent-of-windows.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQMQ3s9cSp7ImA9Wx9VE0k.&quot;"><id>tag:blogger.com,1999:blog-885792999476012225.post-5402007449638781777</id><published>2010-07-05T01:16:00.000-07:00</published><updated>2011-01-29T16:39:42.569-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-29T16:39:42.569-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Sysadmin" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><title>Which Directory is Hogging the Hard Drive?</title><content type="html">Pretty basic tip for today, but one many people struggle with when they find themselves low on hard drive space on their Linux system.&lt;br /&gt;
&lt;br /&gt;
For the current directory and subdirectories...&lt;br /&gt;
&lt;code&gt;du | sort -g&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
For the entire drive (will likely take a while and must either sudo or perform as root)...&lt;br /&gt;
&lt;code&gt;du / | sort -g | tail&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Which users are keeping the most in their home directories (again, sudo or root)...&lt;br /&gt;
&lt;code&gt;du /home --max-depth=1 | sort -g&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
For Windows users, the graphical tool &lt;a href="http://windirstat.info/"&gt;WinDirStat&lt;/a&gt; is available.&lt;br /&gt;
&lt;br /&gt;
For Android users, there's &lt;a href="http://code.google.com/p/diskusage/"&gt;DiskUsage&lt;/a&gt;. (Also available in the Google App Market, but I refuse to put market:// links until the App Market is available for general use.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/885792999476012225-5402007449638781777?l=grokkingcode.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/boiz1dAyq8NlmRUmfnFM-0KAc24/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/boiz1dAyq8NlmRUmfnFM-0KAc24/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/boiz1dAyq8NlmRUmfnFM-0KAc24/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/boiz1dAyq8NlmRUmfnFM-0KAc24/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/TexPT/~4/GzHf8nMx8Fk" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="http://grokkingcode.blogspot.com/2010/07/which-directory-is-hogging-hard-drive.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/5402007449638781777?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/885792999476012225/posts/default/5402007449638781777?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/TexPT/~3/GzHf8nMx8Fk/which-directory-is-hogging-hard-drive.html" title="Which Directory is Hogging the Hard Drive?" /><author><name>Ryan Grange</name><uri>http://www.blogger.com/profile/03377717620887479015</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://4.bp.blogspot.com/_nAN2RQPSAY8/TU2MmVxTadI/AAAAAAAAAAg/u2qARKF7B2k/s220/PICT1472.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://grokkingcode.blogspot.com/2010/07/which-directory-is-hogging-hard-drive.html</feedburner:origLink></entry></feed>

