<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="" type="text/css"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:dcterms="http://purl.org/dc/terms/"
         xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
         xmlns:rss="http://purl.org/rss/1.0/"
         xmlns:content="http://purl.org/rss/1.0/modules/content/">

    <rss:channel rdf:about="http://tracyreed.org/blog">

        <rss:title>Tracy's blog</rss:title>
        <rss:link>http://tracyreed.org/blog</rss:link>

        <rss:description>Adventures in flying, computing, etc.</rss:description>
        

        <rss:image rdf:resource="http://tracyreed.org/logo.png"/>

        <sy:updatePeriod>daily</sy:updatePeriod>
        <sy:updateFrequency>1</sy:updateFrequency>

        <rss:items>
            <rdf:Seq>
                
                <rdf:li rdf:resource="http://tracyreed.org/blog/2010/05/22/php"/>
                
                
                <rdf:li rdf:resource="http://tracyreed.org/blog/2010/04/02/the-old-because-its-the-most-popular-myth"/>
                
                
                <rdf:li rdf:resource="http://tracyreed.org/blog/2010/03/26/flight-to-catalina-island-kavx"/>
                
                
                <rdf:li rdf:resource="http://tracyreed.org/blog/2009/06/09/change-and-html-emails"/>
                
                
                <rdf:li rdf:resource="http://tracyreed.org/blog/2009/04/06/im-on-twitter"/>
                
                
                <rdf:li rdf:resource="http://tracyreed.org/blog/2009/04/01/spam-from-space"/>
                
                
                <rdf:li rdf:resource="http://tracyreed.org/blog/2009/03/26/linux-worm-virus-on-the-loose"/>
                
                
                <rdf:li rdf:resource="http://tracyreed.org/blog/2009/03/11/redhat-security"/>
                
                
                <rdf:li rdf:resource="http://tracyreed.org/blog/2009/03/04/assaulted-for-promoting-freedom"/>
                
                
                <rdf:li rdf:resource="http://tracyreed.org/blog/2009/01/08/we-are-paying-for-microsofts-jelly-doughnut"/>
                
                
                <rdf:li rdf:resource="http://tracyreed.org/blog/2009/01/02/linux-at-target"/>
                
                
                <rdf:li rdf:resource="http://tracyreed.org/blog/2008/12/31/asus-eee-pc-and-linux-everywhere"/>
                
                
                <rdf:li rdf:resource="http://tracyreed.org/blog/2008/12/27/version-control-systems"/>
                
                
                <rdf:li rdf:resource="http://tracyreed.org/blog/2008/10/13/857-hours-1136-takeoffs-and-landings"/>
                
                
                <rdf:li rdf:resource="http://tracyreed.org/blog/2008/06/17/get-less-junkmailprotect-your-credit"/>
                
            </rdf:Seq>
        </rss:items>
    </rss:channel>

    <rss:image rdf:about="http://tracyreed.org/logo.png">
        <rss:title>Tracy's blog</rss:title>
        <rss:link>http://tracyreed.org/blog</rss:link>
        <rss:url>http://tracyreed.org/logo.png</rss:url>
    </rss:image>

    

    <rss:item rdf:about="http://tracyreed.org/blog/2010/05/22/php">

        <rss:title>PHP</rss:title>

        <rss:link>http://tracyreed.org/blog/2010/05/22/php</rss:link>       

        <rss:description> 
 Why I still don't like it 
 

</rss:description>

        <content:encoded>
          <![CDATA[
          <p>It has been a while since I did any language trolling so let's talk
  about a religious issue: PHP. You either love it or you hate it. I
  have been looking at PHP frameworks lately. Not that I want to but
  in this particular case there isn't much choice. I am constantly
  reminded of all of the reasons why I played with PHP for 6 months
  then moved away from it so many years ago and have since watched the
  train wreck from a safe distance.
</p>

<h3>PHP has no language design philosophy.</h3>

<p>With Ruby/Java/Python (almost) everything is an object. Perl has its
   "There's more than one way to do it" swiss army chainsaw. Python
   has "There's one obviously right way to do it" and zen of python in
   the "import this" easter egg. Lisp/Haskell/Erlang all have their
   (purely)functional related philosophies. PHP? Nada.
</p>

<h3>Not a general purpose language.</h3>

<p>
   Really only meant for webpages. Not a general programming
   language. While technically you can run php from the command line
   and automate system tasks with it few people actually use it that
   way with shell, perl, python preferred instead. I have never
   downloaded a command line app to find that it is written in
   PHP. Being able to use the same language for web programming and,
   say, system automation is a handy way to amortize that learning
   curve over a number of projects.
</p>

<h3>Code embedded in HTML is bad</h3>

<p>Originally started out as a way to embed basic site counters and
   such in HTML. It took years but a few people eventually figured out
   templates were the way to go and started heading towards MVC with
   templates etc. But far too many people still write PHP intertwined
   with HTML making a real mess.
</p>

<h3>Terrible security history</h3>

<p>Long a major complaint against PHP and very sensitive subject to
   PHP programmers. Before flaming me go patch your Wordpress
   instance. You know it needs it.
</p>


<p>The infamous register globals functionality is where people always
   start when complaining about PHP security. It took years but most
   people have moved away from using them, especially after it was
   turned off by default in 4.2. But why did anyone ever think it was
   a good idea in the first place?
</p>
   
<p>I saw quite a few php apps get owned by the xml-rpc flaw in the
   2005-2007 timeframe.
</p>

<p>In 2007 it was discovered that you could insert PHP code into a gif
   name it image.gif.php and get it executed on many
   sites. Oops. Another instance where parsing your code out of
   content being served up (instead of separate of logic and
   presentation via templates) was a big mistake.
</p>
  
<p>I am yet to see anyone religiously use prepared (aka parameterized)
   statements in PHP. While you can code sql injections in almost any
   language that speaks SQL to an RDBMS many other
   languages/frameworks do it differently by default. PHP's default
   database interface seems to encourage SQL-injections. The magic
   quotes hack is just an ugly band-aid. Same for
   addslashes(). Compare that to Java where you have Command and
   Parameter objects or can abstract away the SQL generation with
   Hibernate. Or compare it to Python/Django which also has an ORM. Or
   to Ruby with its Rails ORM. Or Zope/Plone with its object database
   and the inherent impossibility of SQL injection no matter what the
   programmer does.
</p>

<p>And who can forget all of the file inclusion vulnerabilities?
   Remote file inclusion even! There have even been instances of code
   injection into PHP regexes via null bytes.
</p>
 
<p>PHP wildly mixes code with strings all over the place causing this
   mess.
</p>
   
<p>The latest trend is exploitation of memory corruption bugs in the
   PHP interpreter itself. You might think that because you are using
   an interpreted language you don't have to worry about pointer
   mishandling, buffer overflows, etc. But it just isn't so. And PHP
   has such issues. There are right now undisclosed remote exploits
   which have not been revealed to the public and have not been
   patched in the PHP interpreter. There will be a talk on this given
   at SyScan Singapore 2010.
</p>

<p>You can say that all of this security attention is due to simply
   being a very popular language for implementing webapps if you like
   (although popularity leading to exploits is one of my favorite
   myths to bust) but it doesn't change the fact that there are a lot
   of problems which either don't exist or are simply less likely to
   be exploited in other languages/frameworks.
</p>

<p>Be sure to keep an eye on http://php-security.org at least to know
   what you are up against.
</p>

<h3>PHP is almost everyone's first web programming language</h3>

<p>This may hurt the feelings of a lot of PHP programmers whose
   business cards say "Software Engineer" but it is an important part
   of the argument.
</p>

<p>Far too many people pick up a PHP tutorial, start coding knowing
   nothing about software development best practices or security
   issues, and turn loose some code on the net. This has nothing to do
   with the language necessarily but a lot to do with the community
   surrounding it. They are typically either newbies or at the very
   least not nearly as wise as they think they are.
</p>

<p>If PHP is the only web programming language you have much
   experience with you have a problem.
</p>

<p>ReST? MVC? Unit tests? What are those? I know that there are a few
   PHP programmers out there who practice these things but I have
   never met one personally.
</p>

<p>Too many people start with PHP but then never graduate to any of
   the other languages/frameworks.
</p>
          ]]>
        </content:encoded>        

        <dc:date>2010-05-22T04:25:00-07:00</dc:date>

        <dcterms:modified>2010-08-14T18:37:23-07:00</dcterms:modified>

        <dc:creator>Tracy R Reed</dc:creator>

        

        
            <dc:subject>Hacking</dc:subject>
        

    </rss:item>

    
    

    <rss:item rdf:about="http://tracyreed.org/blog/2010/04/02/the-old-because-its-the-most-popular-myth">

        <rss:title>The old "because it's the most popular" myth</rss:title>

        <rss:link>http://tracyreed.org/blog/2010/04/02/the-old-because-its-the-most-popular-myth</rss:link>       

        <rss:description>The ever-popular misconception that "Windows only attracts worms/viruses/botnets because it is the most popular" came up again today. Fortunately, this is readily disproven by counter-example.</rss:description>

        <content:encoded>
          <![CDATA[
          <p>
Linux is a very tempting target for spammers and botnet owners. And
there are millions of Linux boxes out there by now. But so far the
only way they are really being compromised is through PHP web apps and
poorly chosen passwords. Linux machines are being constantly bombarded
with ssh brute force attacks and funny url requests. And as I manage
my ssh access well and don't run publically accessible PHP apps I
don't have problems. Between the MySQL on Windows worm a few years
ago:
</p>

<p>
<a href="http://dev.mysql.com/tech-resources/articles/security_alert.html">
http://dev.mysql.com/tech-resources/articles/security_alert.html
</a>
</p>

<p>
and the Linux on MIPS router exploit from last year:
</p>

<p>
<a href="http://blogs.zdnet.com/security/?p=2972">
http://blogs.zdnet.com/security/?p=2972
</a>
</p>

<p>
and the Apache on FreeBSD worm:
</p>

<p>
<a href="http://news.cnet.com/2100-1001-940585.html?tag=fd_top">
http://news.cnet.com/2100-1001-940585.html?tag=fd_top
</a>
</p>

<p>
and the recent Linux router based botnet:
</p>

<p>
<a href="http://www.computerworld.com/s/article/9159758/Chuck_Norris_botnet_karate_chops_routers_hard">
http://www.computerworld.com/s/article/9159758/Chuck_Norris_botnet_karate_chops_routers_hard
</a>
</p>

<p>
they are clearly trying anything that is exploitable including the
very obscure software platforms. I just don't buy the idea that they
only go after Windows because it is the most common.  That is just
where the low hanging fruit is and has the most exploits.
</p>

<p>
Software design has got to have something to do with it and being
forced to maintain decades of backwards compatibility and poor design
decisions as part of holding onto their monopoly has got to complicate
things for Microsoft.
</p>

<p>
I actually like reading about Linux based appliances with poor
security defaults being attacked. It really shoots down the whole idea
that only Windows is targeted and that this is because it is the most
popular. Notice that the primary way in which Linux systems are being attacked is misconfiguration or poor choice of password. Both are easily remedied issues. Actual exploitable implementation flaws are more rare than in Windows and actual design flaws rarer still.
</p>
          ]]>
        </content:encoded>        

        <dc:date>2010-04-02T23:47:05-07:00</dc:date>

        <dcterms:modified>2010-08-23T15:20:34-07:00</dcterms:modified>

        <dc:creator>Tracy R Reed</dc:creator>

        

        
            <dc:subject>Linux</dc:subject>
        

    </rss:item>

    
    

    <rss:item rdf:about="http://tracyreed.org/blog/2010/03/26/flight-to-catalina-island-kavx">

        <rss:title>Flight to Catalina Island (KAVX)</rss:title>

        <rss:link>http://tracyreed.org/blog/2010/03/26/flight-to-catalina-island-kavx</rss:link>       

        <rss:description>Fly to Catalina, shoot a VOR approach to minimums, eat some buffalo, come back home.</rss:description>

        <content:encoded>
          <![CDATA[
          <br />
<br />

<a href="../../photo-album/catalina-2009/img_2780.jpg/view">
   <img class="image-left" src="../../photo-album/catalina-2009/img_2780.jpg/image_thumb" alt="Tracy, Trinity, Loan, Hoang" />
</a>

<p>
  On March 21st, 2009 (Yes, I'm a little behind in my blog entries!) I flew my wife and three of her friends
  to <a href="http://en.wikipedia.org/wiki/Santa_Catalina_Island,_California">
  Catalina Island</a> in Plus One's Cessna 210 N210BX. <a href="http://en.wikipedia.org/wiki/Santa_Catalina_Island,_California">
  Catalina Island</a> is one of the "Channel Islands" about 30nm off the coast of Los Angeles. We departed
  from <a href="http://www.airnav.com/airport/KMYF">Montgomery Field
  (KMYF)</a> in San Diego which is 76nm away from the
  island. This is usually about a 40 minute trip since I like to climb up high
  going out over the ocean. This is a fun place to fly to for various
  reasons. I have flown out there probably 20 times by now.
</p>

<p>
  From a pilot's point of view the trip out over the ocean is something you don't get to do often unless you fly the international big iron. There's something cool about seeing only water in any direction. Aside from my many Catalina crossings, the only other time I have flown across a long stretch of open water is when I had to fly due west across the Sea of Cortez from Culiacan to La Paz. There was a tropical storm to the north of Culiacan on my way to San Diego from a friend's place south of Puerto Vallarta.
</p>

<p>
Originally constructed in the late 1930's, the Catalina airport itself is on top of a mountain. Each end of the runway is practically a sheer cliff. The runway has a hump in the middle so that when touching down (or departing) you can't see the other end. Rumour has it that pilots have been known to think the peak in the middle of the runway is actually the end of the runway and slam on the breaks or initiate a go-around. Since it is often impossible to tell if someone is departing the runway going the opposite direction it is very important to use the UNICOM  (local airport radio communications frequency) to be aware of what is going on and announce your intentions. The field has no official tower or controller but there is a tower of sorts above the terminal building where you go to pay landing fees and book transportation down to the town. There is usually an employee in there monitoring the UNICOM who will announce winds and help out within their abilities. The winds around the island can be tricky as you can get up and down drafts right around the cliffs on each end of the runway.
</p>

<p>
  And then there is the fact that the airport itself is at 1,600' MSL
  (Mean Sea Level) elevation. And that is what made this day's trip
  more interesting.
</p>

<a href="../../photo-album/Catalina/07-28-02/DSC00235.JPG/view">
  <img class="image-right" src="../../photo-album/Catalina/07-28-02/DSC00235.JPG/image_thumb" alt="Catalina island runway on a good weather day" />
</a>

<p>
  We got a rather late start due to the low marine layer clouds that
  often cover the coast. I am a current instrument rated pilot and our 210 is a capable airplane with IFR instrumentation and a Garmin 530 so normally a marine layer is no problem.

But if the clouds start at
  1,900' MSL as they did on this day
  and <a href="http://www.airnav.com/airport/KAVX">Catalina
  Airport</a> is already all the way up at 1,600' MSL that means there
  is only 300' of clearance between the runway and the bottom of the
  clouds. That is not enough room to safely get there and maneuver to a landing.
</p>

<p>
  The combination of warm landmass and/or a light breeze often produces a bubble of higher ceilings over the island. On this day I met a pilot who had flown at about 1000' MSL the whole way over all that ocean (from LA but I know people have done this from San Diego too) and then quickly climb as they approach the cliff-face at the end of runway 22 at Catalina entering that bubble of higher ceilings immediately over the island just barely clearing the cliff making it up to runway level and then plop it right down on the deck. But that's not for me. Nor do I recommend it for anyone else. If you have a problem at 1000' over the ocean you have little time and even fewer options. Not only does this risky maneuver likely violate VFR (Visual Flight Rules) cloud clearance requirements but it leaves too few options should anything not go exactly as planned. Any go-around is likely to involve going into IMC (Instrument Meteorological Conditions). I insist on a normal, stabilized approach to landing. Lack of pilots choosing to go around has cost the club some bent aircraft in recent years. It is never a good idea to do anything which would preclude the ability to go around. Recall that the number one cause of weather related general aviation accidents is VFR into IMC.
</p>

<p>
  So we waited. Some of us more patiently than others. A pilot must resist get-there-itis, especially when it comes from passengers, even if that passenger is the pilot's wife. Eventually the weather reported that the ceiling was 500' above AVX which put it at 2100' above sea level. Departing <a href="http://www.airnav.com/airport/KMYF">Montgomery Field
  (KMYF)</a> in San Diego with a VFR-on-top instrument clearance to OCN (Oceanside)  VOR (Variable Omni-range, a navigation beacon on the ground) we climbed up through the clouds, canceled our IFR clearance upon reaching clear skies, and then on up to 8,500' for the cruise out there. I was hoping that things would begin to clear during the flight to the island. As the surface of the island warms it will often burn a hole through the marine layer and sometimes you will find the island sitting in the clear surrounded by clouds. I knew this was unlikely to happen on this day as the temperature was just too cool. But I had a plan B and plan C.
</p>

<p>
 We agreed before take-off that when we got to Catalina Island if there was no way to get down in clear skies I would attempt the VOR instrument approach to landing. That was plan B. And if that didn't get us down into clear view of the airport we would execute the missed approach procedure, get back on top, and then we would fly about an hour to the east and spend the day in Palm Springs instead of Catalina. This was plan C.
</p>

<a href="../../photo-album/AVX-v-gA.gif/view">
  <img class="image-left" src="../../photo-album/AVX-v-gA.gif/image_thumb" alt="VOR AVX approach plate" />
</a>

<p>
 I have always considered the VOR approach to Catalina Island to be a fairly useless approach and never expected it would really get anyone below a marine layer. The airport is at 1,600' MSL. With this instrument approach you can get down to 2,440' MSL over the airport.  This means you need at least 840' between the clouds and the runway. The marine layer is usually lower than that. When we departed it was reported that there were 500' ceilings.
</p>

<p>
  Having descended from cruise altitude down to around 4,500' and approaching where my calculations told me the island should be and seeing nothing but clouds I advised SoCal approach that I would need an IFR clearance for the VOR-A approach to Catalina while beginning to slow the airplane from cruise speed to approach speed. They cleared us for the approach and with the missed approach procedure in mind and ready to execute we passed over SXC VOR nearing 90kts and tear-dropped into the holding pattern for a turn for alignment with the approach and started a descent down to 2900' which plunged us down into the clouds. There are only 1.6 nautical miles between the FAF (Final Approach Fix) to the MAP (Missed Approach Point) with an MDA (Minimum Descent Altitude) of 2440'. If you have the airplane slowed down to 90knots for the approach you have one minute and four seconds to descend from 2900' to 2440' which means you have to descend at 431 feet per minute to reach the MDA on time. If you go faster you must descend faster and have a smaller margin for error. 
</p>

<p>
  Upon passing the SXC VOR (which marks the FAF) inbound we turned to heading 352 degrees while keeping one eye on the time (counting down 1m and 4s), one eye on DME (Distance Measuring Equipment, to tell us when we are 1.6nm from the Catalina VOR on a mountaintop nearby the airport as a cross-check to the time), one eye on the attitude indicator (to keep us right-side up inside the clouds), one eye on the airspeed indicator (trying to maintain 90knots to make all the math work out correctly) and one eye on the compass trying to maintain 352 degrees. You didn't know instrument pilots have 5 eyes? They do. And at least as many hands.
</p>

<p>
 Just as we passed through 2500' MSL we could see the ground.  A few seconds later we were at 2440 and the airport had come into view off to our right. Ideally we would have come out right above it. With only 1.6 miles you don't have much room to get lined up on your outbound radial or established on your compass heading and we actually ended up passing just slightly north of the VOR on our way inbound according to the GPS which I suspect is what did it. We made a right turn into the downwind leg of the pattern while simultaneously calling SoCal to cancel our IFR clearance since landing was assured, announced our presence to any other local traffic on the UNICOM frequency (no control tower at this airport), ran a GUMPS (pre-landing) check one last time (landing gear had already gone down at the FAF), made a couple more turns in the pattern and gently squeaked the wheels onto the pavement. Mission accomplished! Apparently, my wife had been doubting our ability to land when we arrived to find the island cloud covered. She excitedly pointed out the airport when it appeared and upon exiting the aircraft I was promptly declared her “hero”!
</p>

<p>
  Unfortunately, it was now around noon. The airport would close at 5pm after which no more takeoffs would be allowed. While open to the public this is actually a privately owned airport and has somewhat restricted hours. We planned to go back that same day. After landing I paid the $25 landing fee and then bought the five of us $25 round-trip van tickets for a 30 minute van ride down the mountain to the coastal town of Avalon, the only town on the island.
</p>

<a href="../../photo-album/catalina-2009/img_2795.jpg/view">
   <img class="image-right" src="../../photo-album/catalina-2009/img_2795.jpg/image_thumb" alt="Trinity with some local dogs" />
</a>


<p>
  We had three hours to look around. It's a small place and you can walk from one end of the main drag to the other in 15 minutes. But the ladies spent a lot of time in each little gift shop along the way. We walked around town and ate buffalo burgers and oysters at a local burger joint with some sort of tropical island theme whose name I don't recall. I've eaten at nearly every restaurant on the island it seems. Many pictures were taken. By the time we had lunch and made it from the docks on one end to the historic "Casino" (not a place of gambling, simply entertainment) on the other it was time to head home. As usual, we got a pretty good look at some buffalo along the winding road from the airport to town and on the way back up. The island was the greenest I have ever seen it due to the recent rains. I also saw a number of scorched tree trunks from the wildfires they have had there in the last couple years.
</p>

<p>
At 4pm we met the van for the ride back up the mountain to the airport. The van left a few minutes late and we stopped to look at some buffalo on the way up. So we had around 20 minutes to get off the ground. While the passengers made final bathroom breaks and got themselves situated in the plane I  did  the pre-flight. Then hop in for the start checklist, start, taxi, final takeoff checks, and we were off the ground with only a couple minutes to spare. It was tight but we made it.
</p>

<p>
 After takeoff we were still underneath the marine layer although it was higher now than when we arrived. A few miles from AVX I called SoCal for an instrument clearance to Montgomery so we could get above the clouds for a safe open-water cruising altitude. This was quickly granted and up we went through the clouds. The rest of the the flight back to Montgomery was uneventful aside from nice scenery. The clouds had mostly cleared by the time we got back although I stayed on the IFR flight plan and flew the ILS (Instrument Landing System) into MYF for a smooth landing and happy conclusion to a successful day-trip to Catalina Island.
</p>

          ]]>
        </content:encoded>        

        <dc:date>2010-03-26T13:00:00-07:00</dc:date>

        <dcterms:modified>2010-06-27T19:49:20-07:00</dcterms:modified>

        <dc:creator>Tracy R Reed</dc:creator>

        

        
            <dc:subject>Flying</dc:subject>
        

    </rss:item>

    
    

    <rss:item rdf:about="http://tracyreed.org/blog/2009/06/09/change-and-html-emails">

        <rss:title>Change and HTML emails</rss:title>

        <rss:link>http://tracyreed.org/blog/2009/06/09/change-and-html-emails</rss:link>       

        <rss:description>Someone posted about why some IT pros seem to be against change. And then wondered aloud why the mailing list software we use doesn't accept HTML email. I had to to reply...</rss:description>

        <content:encoded>
          <![CDATA[
          <p>I write a lot of lengthy emails, reports, and other documents and all<br />to often forget to post them here for others to enjoy (or ignore or<br />despise, whatever). I know IT people who are staunchly against change,<br />usually old guys. Maybe they are jaded and burned too many times by<br />change or maybe they just don't want to learn something new and are troubled<br />by watching their skillset slowly become obsolete. And I also know guys<br />who are always chasing the latest and greatest but not really getting much<br />productivity out of it. I am always looking for that optimal middle-ground...<br /><br />On Tue, Jun 09, 2009 at 01:29:56AM -0700, Raleigh spake thusly:<br />&gt; In fact, I've always been curious why so many IT pros that I meet                                                                         <br />&gt; are anti-change when it comes to software. Aren't we supposed to be                                                                       <br />&gt; the technology evangelists within our respective organizations? It                                                                        <br />&gt; is the job of our users to be cryin' about change. Not us.                                                                                <br /><br />I run into this often. Some people accuse me of always chasing the<br />shiny and some people accuse me of being an old fart who won't<br />change. I'm against change simply for the sake of change. Have there<br />really been any major breakthroughs in UI research in the last 10<br />years? Not really. So why are the UIs in certain products changing so<br />much? For the same reason car bodies change every year: Marketing and<br />change for the sake of change. I'm not into that. It creates<br />difficulties in training, introduces new bugs, and doesn't really<br />benefit us, the end users.<br /><br />Virtualization, on the other hand, is a huge breakthrough on the x86<br />platform (IBM big-iron has had it for decades) and that is change that<br />I can definitely get behind and advocate constantly.<br /><br />&gt; P.S. - speaking of change, when will the list software (whatever                                                                          <br />&gt; that is) that this list runs on be upgraded to allow rich text or                                                                         <br />&gt; HTML email. I'm subscribed to various lists (IT and non-IT related),                                                                      <br />&gt; and this one is the only one that is plain text only. It's 2009, for                                                                      <br />&gt; crying out loud. Time to get with the 21st century.  Just a                                                                               <br />&gt; thought...<br /><br />This is more change for the sake of change. Plaintext works great for<br />what this mailing list is intended for. There are many exploits and<br />browser compatibility issues (in all of HTML, CSS, and Javascript) and<br />I don't want random strangers mailing active content into my<br />mailbox. Phishing would be largely impossible if it weren't for HTML<br />email. I read email on an OS that is definitely not prone to these<br />problems and I *still* avoid non-plaintext emails. I also don't want<br />your emails with the kitty backgrounds and yellow on black text and<br />animated corporate logo gifs in signatures etc. You got something to<br />say? You can say it just fine in plaintext. Impress me with your<br />beautiful prose not your idea of beautiful (which I will probably<br />consider gaudy) artwork.<br /><br />--                                                                                                                                          <br />Tracy Reed<br />http://tracyreed.org</p>
          ]]>
        </content:encoded>        

        <dc:date>2009-06-09T11:30:00-07:00</dc:date>

        <dcterms:modified>2009-06-09T12:32:16-07:00</dcterms:modified>

        <dc:creator>Tracy R Reed</dc:creator>

        

        
            <dc:subject>Hacking</dc:subject>
        

    </rss:item>

    
    

    <rss:item rdf:about="http://tracyreed.org/blog/2009/04/06/im-on-twitter">

        <rss:title>I'm on twitter</rss:title>

        <rss:link>http://tracyreed.org/blog/2009/04/06/im-on-twitter</rss:link>       

        

        <content:encoded>
          <![CDATA[
          <p>By popular demand you can now all know what I'm having for lunch in real time. Isn't technology great?
</p>
<p>
<a href="http://twitter.com/tracyrreed">http://twitter.com/tracyrreed</a>
</p>
          ]]>
        </content:encoded>        

        <dc:date>2009-04-06T21:30:00-07:00</dc:date>

        <dcterms:modified>2010-02-13T08:54:45-08:00</dcterms:modified>

        <dc:creator>Tracy R Reed</dc:creator>

        

        
            <dc:subject>Hacking</dc:subject>
        

    </rss:item>

    
    

    <rss:item rdf:about="http://tracyreed.org/blog/2009/04/01/spam-from-space">

        <rss:title>I was attacked by Spam from Outer Space</rss:title>

        <rss:link>http://tracyreed.org/blog/2009/04/01/spam-from-space</rss:link>       

        

        <content:encoded>
          <![CDATA[
          <p>So yesterday at around 3:30pm I got a strange email from LOLLERSKATES (system logfile analysis software which I wrote to warn of unusual activity). It said that Yahoo was blocking a whole ton of email from my server. Why would my server suddenly be sending thousands of emails to Yahoo? So I looked into it and the system was processing a massive amount of email. I instantly knew that my computer was being used to send spam.</p>

<p>
How could this be? One of two things must have happened:
</p>

<ol>
<li>A web app was compromised - Unlikely, but possible. I don't run any PHP and I don't use anything which isn't very careful about avoiding shell/sql injection exploits etc. A lot of my stuff is protected by SE Linux which should prevent web apps from talking to the mail system but not everything.
<li>Someone compromised a users password - This is possible. People do dumb things with their passwords all the time.
</ol>

<p>
So I fire up tcpdump and see a lot of traffic coming in via an authenticated SMTP session. I check the mail logs and notice that a particular user is authenticating from an IP address behind an Internet satellite link provider ("Spaaaam frooooom spaaaaaaaaace!" Thank you, Muppet Show) which is very unusual. So a quick iptables firewall rule to block off that IP address and a password change for that user and the spam stops. Then I whip up a quick shell script to clear the mail queue of all of the pending spam. Everything is back to normal.</p>

<p>I instant message the user in question and let him know what happened. The conversation went like this:

<pre>
(05:48:35 PM) Tracy: I had to lock your email account on my server
(05:48:43 PM) Tracy: Someone guessed or stole your password and was using my server to send spam
(05:49:46 PM) Tracy: If you use that password anywhere else you need to change it
(05:51:12 PM) User: Oh really. It was studball. Thanks
(05:51:23 PM) Tracy: hmm...I doubt they would have guessed that.
(05:51:34 PM) Tracy: So I bet your windows computer or somewhere else where you have typed
                     that password in was compromised.
(05:51:38 PM) Tracy: You need to check that out.
(05:52:27 PM) User: Did it just start happening today or yesterday?
(05:52:41 PM) Tracy: Just today at 1:30pm my time which is 4:30pm your time
(05:59:41 PM) User: I checked my email about that time too.
(06:02:57 PM) Tracy: What computer did you check it on?
(06:03:11 PM) Tracy: Did you type in your password on that computer at that time?
(06:04:22 PM) User: windows. Yes I did. And I also choose save password.
                    My computer was acting slow today also. So I think it may be a worm.
(06:06:54 PM) Tracy: Yep. I bet that's it.
(06:07:33 PM) Tracy: You need to unplug that thing from the network asap.
(06:07:38 PM) Tracy: Then wipe and reinstall the operating system.
(06:10:19 PM) User: I will have to do that tonight when I get home.
</pre>

<p>So once again Windows bites me and I don't even use it myself. My server may be on <a href="http://en.wikipedia.org/wiki/DNSBL">email blacklists</a> as a spam sender now. Hopefully not since I caught it quickly.</p>

<p>The funny thing about this is that from the user's point of view I have not done him a favor. I have only caused him a problem. Everything worked fine and his world was happy until I contacted him. He was not really inconvenienced in any way that he noticed at the time. What does he care if his computer sent his password to someone else so that they can use it to send spam through someone else's server? And now he has to change his password (I already changed it once for him) and reinstall his computer (although I seriously doubt that will happen and the infection will persist). I am reminded of <a href="http://en.wikipedia.org/wiki/Mary_Mallon">"Typhoid Mary"</a>. The cost of lax computer security is a complete <a href="http://en.wikipedia.org/wiki/Externality">externality</a> for most people which usually costs the insecure person/system nothing noticeable. So goes computer security apathy.</p>
          ]]>
        </content:encoded>        

        <dc:date>2009-04-01T10:15:00-07:00</dc:date>

        <dcterms:modified>2009-04-01T10:20:28-07:00</dcterms:modified>

        <dc:creator>Tracy R Reed</dc:creator>

        

        
            <dc:subject>Hacking</dc:subject>
        

    </rss:item>

    
    

    <rss:item rdf:about="http://tracyreed.org/blog/2009/03/26/linux-worm-virus-on-the-loose">

        <rss:title>Linux worm/virus on the loose!</rss:title>

        <rss:link>http://tracyreed.org/blog/2009/03/26/linux-worm-virus-on-the-loose</rss:link>       

        <rss:description> 
Yeay! 
 


</rss:description>

        <content:encoded>
          <![CDATA[
          <p>
<a href="http://www.linux-magazine.com/content/view/full/36015"> Psyb0t Attacks Linux Routers</a>
</p>

<p>Why am I saying "Yeay!" about a Linux worm? Read on...</p>

<p>I've been a Linux fan for 15 years. Linux has always had good security and it is constantly improving. Much better than certain OTHER operating systems. We have always been proud of the lack of virus/worm infections in Linux. But there were always those who said that this was only because Linux was so small that nobody bothered to target it.</p>

<p>This hasn't been true for a long time but now they definitely can't say that anymore. Linux is big enough to be worth targeting. Not only that but Linux is big enough that they are targeting the very small and specific niche of Linux running on MIPS cpu devices!</p>

<p>In order to get infected by something like this you really have to open yourself up and let it in. This has always been the case for many years now and nothing new: If you allow root logins from the net and your root password is "root" you are going to be owned. Contrast that with another OS which recently only required that a specially malformed PDF merely get downloaded onto your machine (not even viewed) to become infected. But now there are enough Linux users out there that enough of them set things up with an ssh or telnet running on the WAN interface with a default or very simple guessable password that they are being actively targeted. Linux has hit the big time and this sort of "exploit" is still the best the worm authors can do.</p>

<p>Yeay!</p>
          ]]>
        </content:encoded>        

        <dc:date>2009-03-26T22:15:00-07:00</dc:date>

        <dcterms:modified>2010-07-01T15:40:12-07:00</dcterms:modified>

        <dc:creator>Tracy R Reed</dc:creator>

        

        
            <dc:subject>Linux</dc:subject>
        

    </rss:item>

    
    

    <rss:item rdf:about="http://tracyreed.org/blog/2009/03/11/redhat-security">

        <rss:title>RedHat Security</rss:title>

        <rss:link>http://tracyreed.org/blog/2009/03/11/redhat-security</rss:link>       

        <rss:description>RedHat has just released "Risk report: Four years of
Red Hat Enterprise Linux 4"</rss:description>

        <content:encoded>
          <![CDATA[
          <p><a class="reference" href="http://magazine.redhat.com/2009/03/10/risk-report-four-years-of-red-hat-enterprise-linux-4/#id1550537">http://magazine.redhat.com/2009/03/10/risk-report-four-years-of-red-hat-enterprise-linux-4/#id1550537</a></p>
<p>This sort of thing is why I feel very good about selling and
supporting RedHat Linux. You won't find any other OS vendor offering
an honest look at the security of their software or producing such
metrics.</p>
<p>RedHat Linux includes server, desktop, email, and web browser software
which are all included in this analysis. In a production server one
would only install a fraction of these software packages which removes
many potential vulnerabilities.</p>
<p>Executive Summary: Top three riskiest packages and sources of
potential security problems were mozilla, firefox, and thunderbird.
These are all desktop software which provide very complicated
functionality (thus more potential for bugs) which will not be found
on a server. The riskiest server package was PHP (used to implement
CMS systems like Drupal and Joomla) which has a special section of the
report just for it. Over the past 4 years there was not a single
worm/virus that affected RedHat Linux as long as you don't use PHP.</p>
<p>None of my webservers are running any of the packages which have had
critical problems. So in theory I could have run my servers for the
last 4 years and not patched a single time and been ok.</p>

          ]]>
        </content:encoded>        

        <dc:date>2009-03-11T11:13:38-07:00</dc:date>

        <dcterms:modified>2009-03-11T11:13:38-07:00</dcterms:modified>

        <dc:creator>Tracy R Reed</dc:creator>

        

        
            <dc:subject>Linux</dc:subject>
        

    </rss:item>

    
    

    <rss:item rdf:about="http://tracyreed.org/blog/2009/03/04/assaulted-for-promoting-freedom">

        <rss:title>Assaulted for promoting freedom</rss:title>

        <rss:link>http://tracyreed.org/blog/2009/03/04/assaulted-for-promoting-freedom</rss:link>       

        <rss:description>More and more this is what freedom is about in the modern age...</rss:description>

        <content:encoded>
          <![CDATA[
          
<p>I have a bumper sticker on my car. <a href="http://linuxlock.blogspot.com/2009/03/tempers-flare-as-recession-creeps-into.html">
Should I be worried about being assaulted?</a></p>
<p><strong>Update</strong>: I guess I should be worried! Robert Donovan emailed: <a href="http://www.kernel-panic.org/pipermail/kplug-list/2009-March/106765.html">http://www.kernel-panic.org/pipermail/kplug-list/2009-March/106765.html</a></p>
<p>&nbsp;</p>
<p><img class="image-inline" src="../photo-album/misc/car-rear.jpg/image_preview" alt="car-rear.jpg" /></p>
<p>&nbsp;</p>

          ]]>
        </content:encoded>        

        <dc:date>2009-03-04T14:45:00-08:00</dc:date>

        <dcterms:modified>2009-03-04T17:43:14-08:00</dcterms:modified>

        <dc:creator>Tracy R Reed</dc:creator>

        

        
            <dc:subject>Linux</dc:subject>
        

    </rss:item>

    
    

    <rss:item rdf:about="http://tracyreed.org/blog/2009/01/08/we-are-paying-for-microsofts-jelly-doughnut">

        <rss:title>We are paying for Microsoft's jelly doughnut.</rss:title>

        <rss:link>http://tracyreed.org/blog/2009/01/08/we-are-paying-for-microsofts-jelly-doughnut</rss:link>       

        <rss:description>I am putting together a theatrical version of Stanley Kubrick's classic war film "Full Metal Jacket".

Starring: Microsoft as the fatbody Private Pyle. Russian crackers as Sargeant Hartman rummaging through the footlocker.  Your social security number as the jelly doughnut. Windows as the unlocked footlocker. You and I as the rest of the platoon.</rss:description>

        <content:encoded>
          <![CDATA[
          
<p><strong><br /></strong></p>
<p><strong>HARTMAN</strong> stops in front of <strong>PYLE</strong> and notices his footlocker is unlocked. He picks up the lock and holds it up to <strong>PYLE</strong>.</p>
<p><strong>HARTMAN</strong>: "Jesus H. Christ! Private Pyle, why is your footlocker unlocked?"</p>
<p><strong>PYLE</strong>: "Sir, I don't know, sir!"</p>
<p><strong>HARTMAN</strong>:&nbsp; "Private Pyle, if there is one thing in this world that I hate, it is an unlocked footlocker! You know that, don't you?"</p>
<p><strong>PYLE</strong>: "Sir, yes, sir!</p>
<p><strong>HARTMAN</strong>: "If it wasn't for dickheads like you, there wouldn't be any thievery in this world, would there?"</p>
<p><strong>PYLE</strong>: "Sir, no, sir!"</p>
<p>            <strong>HARTMAN</strong>: "Get down!"</p>
<p><strong>PYLE</strong> steps down, from the footlocker. <strong>HARTMAN</strong> flips open the lid with a bang and begins rummaging through the box.</p>
<p><strong>HARTMAN</strong>: "Well, now .. . let's just see if there's anything missing!"</p>
<p><strong>HARTMAN</strong> freezes. He reaches down and slowly picks up a&nbsp; jelly doughnut, holding it in disgust at arm's length with his fingertips.</p>
<p><strong>HARTMAN</strong>: "Holy Jesus! What is that? What is that, Private Pyle?!"</p>
<p><strong>PYLE</strong>: "Sir, a jelly doughnut, sir!"</p>
<p><strong>HARTMAN</strong>: "A jelly doughnut?!"</p>
<p><strong>PYLE</strong>: "Sir, yes, sir!"</p>
<p><strong>HARTMAN</strong>: "How did it get here?"</p>
<p><strong>PYLE</strong>: "Sir, I took it from the mess hall, sir!"</p>
<p><strong>HARTMAN</strong>: "Is chow allowed in the barracks, Private Pyle?"</p>
<p><strong>PYLE</strong>: "Sir, no, sir!"</p>
<p><strong>HARTMAN</strong>: "Are you allowed to eat jelly doughnuts, Private Pyle?"</p>
<p><strong>PYLE</strong>: "Sir, no, sir!"</p>
<p><strong>HARTMAN</strong>: "And why not, Private Pyle?"</p>
<p><strong>PYLE</strong>: "Sir, because I'm too heavy, sir!"</p>
<p><strong>HARTMAN</strong>: "Because you are a disgusting fatbody, Private Pyle!"</p>
<p><strong>PYLE</strong>: "Sir, yes, sir!"</p>
<p><strong>HARTMAN</strong>: "Then why did you hide a jelly doughnut in your footlocker, Private Pyle?"</p>
<p><strong>PYLE</strong>: "Sir, because I was hungry, sir!"</p>
<p><strong>HARTMAN</strong>: "Because you were hungry?"</p>
<p>Holding out the jelly doughnut, <strong>HARTMAN</strong> walks down the row of recruits still standing with their arms outstretched.</p>
<p><strong>HARTMAN</strong>: "Private Pyle has dishonored himself and dishonored the platoon! I have tried to help him, but I have failed! I have failed because you have not helped me! You people have not given Private Pyle the proper motivation! So, from now on, whenever Private Pyle fucks up, I will not punish him, I will punish all of you! And the way I see it, ladies, you owe me for one jelly doughnut! Now, get on your faces!"</p>
<p><strong>HARTMAN</strong>: (to <strong>PYLE</strong>) "Open your mouth!"</p>
<p>He shoves the jelly doughnut into <strong>PYLE</strong>'s mouth.</p>
<p><strong>HARTMAN</strong>: "They're paying for it, you eat it!"</p>
<p><strong>HARTMAN</strong> turns to the recruits.</p>
<p><strong>HARTMAN</strong>: "Ready . . . exercise!"</p>
<p>The platoon does push-ups.</p>

          ]]>
        </content:encoded>        

        <dc:date>2009-01-08T11:40:00-08:00</dc:date>

        <dcterms:modified>2009-01-19T15:05:23-08:00</dcterms:modified>

        <dc:creator>Tracy R Reed</dc:creator>

        

        
            <dc:subject>Hacking</dc:subject>
        

    </rss:item>

    
    

    <rss:item rdf:about="http://tracyreed.org/blog/2009/01/02/linux-at-target">

        <rss:title>Linux at Target</rss:title>

        <rss:link>http://tracyreed.org/blog/2009/01/02/linux-at-target</rss:link>       

        <rss:description>Target is selling EEE PC's with Linux in their stores.
</rss:description>

        <content:encoded>
          <![CDATA[
          
<p>To follow up on my last posting I just noticed that <a class="external-link" href="http://www.target.com/gp/search/183-6684411-7364930?field-keywords=Linux&amp;url=index%3Dtarget&amp;ref=sr_bx_1_1&amp;x=17&amp;y=11">Target has EEE PC's that come pre-installed with Linux in-stock.</a> You can order straight through the website or search for a local store. I put in my zip code and it turns out the Target store just a block away from here has them in-stock as well. As of October 2008 Asus had sold 4 million EEE PC's with a goal of 5 million by the end of the year. This means the home-user Linux base grew by a lot over the last year.</p>
<p><a class="external-link" href="http://www.amazon.com/s/ref=nb_ss_gw?url=search-alias%3Delectronics&amp;field-keywords=Linux&amp;x=0&amp;y=0">Amazon.com has them</a> as well as <a class="external-link" href="http://www.newegg.com/Product/ProductList.aspx?Submit=ENE&amp;DEPA=0&amp;Order=BESTMATCH&amp;Description=Linux+EEE+PC&amp;x=0&amp;y=0">Newegg.com</a></p>
<p>The <a class="external-link" href="http://eeepc.asus.com">EEE PC</a> is sold with both Linux and Windows. Asus claims that there is no higher return rate on Linux netbooks and they are the number one vendor. <a class="external-link" href="http://blog.laptopmag.com/asus-ceo-reveals-eee-pc-sales-numbers-plans-for-touch-eee-pcs-and-more-eee-family-products">According to Asus CEO Jerry Chen</a> their Windows/Linux production ratio is 6:4, which means 40% are Linux.</p>
<p>More Linux on desktops means less Windows which means less spam/viruses/malware or similar shenannigans and that sounds good to me!</p>

          ]]>
        </content:encoded>        

        <dc:date>2009-01-02T03:51:41-08:00</dc:date>

        <dcterms:modified>2009-01-02T03:51:41-08:00</dcterms:modified>

        <dc:creator>Tracy R Reed</dc:creator>

        

        
            <dc:subject>Linux</dc:subject>
        

    </rss:item>

    
    

    <rss:item rdf:about="http://tracyreed.org/blog/2008/12/31/asus-eee-pc-and-linux-everywhere">

        <rss:title>Asus EEE PC and Linux everywhere!</rss:title>

        <rss:link>http://tracyreed.org/blog/2008/12/31/asus-eee-pc-and-linux-everywhere</rss:link>       

        <rss:description>I'm surrounded by Linuxy goodness</rss:description>

        <content:encoded>
          <![CDATA[
          
<p>[This has been sitting in my "to publish" queue for a year or so it seems. Or maybe it was published but got retracted somehow at some point. So it's a bit out of date. I've had my Eee PC for over a year and really like it. -Tracy]</p>
<p>&nbsp;</p>
<p>There are an amazing number of Linux based open hardware projects hitting
the market these days.</p>
<p>&nbsp;</p>
<p>Fully open hardware:</p>
<p>&nbsp;</p>
<p>BUGbase http://www.buglabs.net/</p>
<p>&nbsp;</p>
<p>Chumby http://www.chumby.com/</p>
<p>&nbsp;</p>
<p>OpenMoko http://www.openmoko.com/</p>
<p>&nbsp;</p>
<p>OLPC XO laptop http://laptop.org/</p>
<p>&nbsp;</p>
<p>Linux powered but not necessarily hackable hardware:</p>
<p>&nbsp;</p>
<p>Everex TC2502 Green PC http://www.walmart.com/catalog/product.do?product_id=7754614
(Wal-Mart actually sells this one in stores here in San Diego, not
web-only like that silly Lindows deal)</p>
<p>&nbsp;</p>
<p>Tivo</p>
<p>&nbsp;</p>
<p>Snom VOIP phones http://www.snom.com</p>
<p>&nbsp;</p>
<p>Linksys routers

Eee PC http://eeepc.asus.com/en/</p>
<p>&nbsp;</p>
<p>And many more I'm sure.

I just received my Eee PC laptop which I ordered from Newegg.com for $399.
It is awesome. So tiny! Very portable. Weighs less than 2lbs. 4G flash HD.
512M of RAM. Comes with office suite, firefox, thunderbird, IM client,
skype, pretty much everything I need. And it is Linux with an obvious
idiot-proof interface and everything works right out of the box, no
configuration needed.  Straight from the factory. Asus says they are
selling one of these every 6 seconds. We're going to have a million new
desktop/laptop Linux users before this is done. XP would technically run
on it but it would be tight and it would greatly increase the price of the
hardware. I really relish watching hardware become so cheap that MS cannot
make money on it. :) And after what they did hiding behind SCO then Acacia
and OOXML and their long history of nastiness in general I am really
looking forward to watching the vice tighten around their jewels.</p>
<p>&nbsp;</p>
<p>I have Linux on my desktop. At home and at work. Linux came preinstalled
on my laptop. I have a Snom phone on my desk. Linux in my DVR. Soon I will
have Linux on my mobile phone as soon as the second generation OpenMoko
comes out (Looking like December but like all open community driven
projects "it's ready when it's ready" and no sooner). I have Linux in my
Linksys router.  I may just have to pick up a Chumby so my alarm clock
will be running Linux. :) Although that's a rather expensive alarm clock.</p>
<p>&nbsp;</p>
<p>"The most profound technologies are those that disappear. They weave
themselves into the fabric of everyday life until they are
indistinguishable from it."

- Mark Weiser, almost 15 years ago in a Scientific American article
  titled, "The Computer for the 21st Century."</p>
<p>&nbsp;</p>
<p>Linux is certainly heading that way.

But that is just the consumer electronics side of things. Linux is doing
great things on the server side too. Over the last few years I have become
a big fan of virtualization with SAN storage. I put together a system
called Xen-AoE which uses the free Xen virtualization software with the
AoE ethernet based SAN protocol. We are slowly populating a community
based site at http://xen-aoe.org to provide howto information on setting
this stuff up. Not much there yet. But keep an eye on it over the coming
weeks. A former employer currently serves a lot of their critical
infrastructure out of a Xen-AoE cluster. You can see it in action at
http://www.drjays.com as those pages are served off of it.</p>
<p>&nbsp;</p>
Tomorrow night (Thursday) I will be giving a little presentation with a
few colleagues at the Kernel-Panic Linux User Group Meeting
(http://www.kernel-panic.org) on basic shell scripting for newbies.

In the next month or two (still being negotiated) it looks like I will be
giving a presentation on AoE at the San Diego Windows 2003 User Group
meeting at the Microsoft offices here in San Diego. Surprised? Don't be. I
would happily teach Free/Open technologies in a gay brothel if it meant
more people getting clued in.

Linux has taken me all over the world since my time at MP3. It is a great
time to be in the technology business!


          ]]>
        </content:encoded>        

        <dc:date>2008-12-31T22:30:00-08:00</dc:date>

        <dcterms:modified>2009-01-21T14:18:36-08:00</dcterms:modified>

        <dc:creator>Tracy R Reed</dc:creator>

        

        
            <dc:subject>Linux</dc:subject>
        

    </rss:item>

    
    

    <rss:item rdf:about="http://tracyreed.org/blog/2008/12/27/version-control-systems">

        <rss:title>Version control systems</rss:title>

        <rss:link>http://tracyreed.org/blog/2008/12/27/version-control-systems</rss:link>       

        <rss:description>Tried CVS, didn't like it. An ancient PITA.  Used Subversion lightly for a couple years. Liked it but felt someone could do even better. Looked at Monotone, Darcs, Bazaar, Mercurial. Finally picked one.</rss:description>

        <content:encoded>
          <![CDATA[
          
<p>I've been using hg the past few weeks to see if I can move off of svn<br />(which I never really got all that deep into anyway) and I have<br />decided that I can. Plus it seems the better solution for the project<br />I am working on. The distributed capabilities will come in very handy.<br /><br />From a system administration point of view I have been trying to get<br />in the habit of not making .bak files of important configs<br />anymore. They just clutter up the system and sometimes you end up with<br />multiple copies and you forget what each one was for. So instead of<br />making .bak files I vowed to use version control instead. Plus I<br />wanted to version control all of the system configs I touch in<br />general, the dotfiles in my homedir, and my various progamming<br />projects. Not only does this solve the .bak file organization problem<br />but it protects my code as a form of remote backup, allows me to<br />revert unhealthy changes, and makes it easy to check my preferred<br />environment out into a new home dir on a new machine. My emacs configs<br />have grown especially large and complicated.<br /><br />This guy has been at this homedir in version control thing longer than<br />I have and may be where I got the inspiration, I don't recall:<br /><br />http://www.onlamp.com/pub/a/onlamp/2005/01/06/svn_homedir.html<br /><br />With svn I had one main repo on one of my servers which I organized<br />heirarchically by hostname and then path so something like:<br /><br />/hosts/mail.copilotco.com/etc/postfix/main.cf<br /><br />There was also a /projects beside /hosts with a directory for the name<br />of each of my coding projects (not system configs) which held tags,<br />trunks, branches, etc.<br /><br />The real annoyance with this arrangement is that I have to do a series<br />of svn mkdir's to create that path, especially for a new host. This<br />turns into a bunch of svn ls and svn mkdir commands until I get what I<br />want. Then I can checkout that empty svn directory into the current<br />working directory where the config files are such as main.cf and then<br />add my files and then commit them. This ends up being just enough work<br />that I often skip it. Especially for the setup of new hosts and&nbsp; <br />directories.<br /><br />Another thing that bugged me about svn is that I tend to move servers<br />and things around a lot and it always seemed like the svn url of the<br />local working copy was getting out of sync with where the server<br />actually was which caused headaches. Having the actual repository<br />right there where I could commit without having to remember how to do<br />do "svn switch --relocate old-uri new-uri" to get pointed at the right<br />place is nice.<br /><br />Another svn annoyance that has been bugging me for a while is:<br /><br />http://subversion.tigris.org/issues/show_bug.cgi?id=2580&nbsp; <br /><br />which was always causing ssh ControlMaster pipes to be left laying <br />around which would cause ssh to barf and cause the commit to fail<br />after I had already typed up my nice descriptive commit message. Then<br />I had to delete the control file. ssh connection multiplexing is nice<br />because it allows new connections to be set up very quickly by<br />tunneling over the old one. Especially nice if you use tramp with<br />emacs for remote editing of files.<br /><br />Finally, once I have my configs in svn I would often forget to commit<br />them after I edited them. So eventually I would get a bunch of changes<br />made over the course of days or weeks. I would realize I had messed up<br />and forgotten to commit for a long time. Then I do a commit with a<br />message of "heck if I can remember what all this was about".<br /><br />So I cooked up a way to be automatically notified if the current dir<br />has uncommitted changes by putting this in my .bashrc:</p>
<p><br />&nbsp;function cd {<br />&nbsp;&nbsp;&nbsp;&nbsp; builtin cd "$@"<br />&nbsp;&nbsp;&nbsp;&nbsp; if [ -d .svn -a -r .svn ]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DIFFS=`svn status| egrep "^M"`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if [ ! -z "$DIFFS" ]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo "This directory contains uncommitted changes."<br /><br />So whenever I cd into a directory I get a notification if I have been <br />lazy and not committing things. But eventually I ran into a problem:<br />if the directory has lots of files in it (which my home dir always&nbsp;&nbsp; <br />does) the svn status command can take several seconds to return which <br />is unbearably annoying since this happens with every cd. I end up<br />hitting ctrl-c and not seeing the message saying I have uncommitted<br />changes and the whole thing becomes totally ineffective.<br /><br />While playing with hg I have discovered that hg has the same problem.<br />However, hg also has the ability to use the Linux 2.6 kernel's inotify<br />functionality. It can subscribe to the kernel to be told when files in<br />the working directory change so it doesn't have to do a brute force&nbsp; <br />check and stat every single file. So if we put the following in our&nbsp;&nbsp; <br />.hgrc:<br /><br />[extensions]<br />inotify =<br />[inotify]<br />autostart = True<br /><br />we automatically get a little hg daemon running talking to inotify<br />which will communicate with any hg command we invoke. So I changed my<br />.bashrc cd function to read like so:<br /><br />&nbsp;function cd {<br />&nbsp;&nbsp;&nbsp;&nbsp; builtin cd "$@"<br />&nbsp;&nbsp;&nbsp;&nbsp; if [ -d .hg -a -r .hg ]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DIFFS=`hg status -q`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if [ ! -z "$DIFFS" ]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo "This directory contains uncommitted changes."<br /><br />and now my cd function works perfectly and instantaneously even on&nbsp; <br />huge directories. However, because I have so many files in my homedir<br />I had to do this to make inotify handle it:<br /><br />echo 32768 &gt; /proc/sys/fs/inotify/max_user_watches<br /><br />So I dumped that in my rc.local. The inotify functionality requires<br />the most recent version of hg to work halfway decently. And even then<br />occasionally runs into issues. If I do an hg clone with the inotify<br />turned on the clone never finishes, it just hangs. And if I modify and<br />then revert a file hg status -q still says that file is modified and<br />does so until I commit it (but there are no changes so I'm not sure<br />what it's committing). So inotify still has a couple bugs.<br /><br />Each hg repo is totally independent and does not rely on any other&nbsp;&nbsp; <br />server. But one of the great things about having a remote server for&nbsp; <br />version control is that if my local box catches fire and is destroyed<br />I have a remote copy of my code. So I need to find a way to easily <br />push my changes to a repository on a remote server. Mercurial supports<br />this and you don't have to push your code somewhere else but pretty<br />much everyone does it because that is the whole point of distributed <br />version control: being able to push your changes to another<br />person/place for further work or just another server for storage.<br /><br />Every time I do an hg init . that creates a new local repository which<br />needs a corresponding remote repository. This is a bit different from<br />svn where each local repository fits into a sort of branch or folder<br />in the big subversion repository on the server. So I set up a remote<br />account with username hg, installed my public key in<br />.ssh/authorized_keys and inside ~hg I have a subdir<br />home.copilotco.com/home/treed inside of which I have done an hg init.<br /><br />Now if I want to push my home directory from my home workstaion to<br />this server for safe keeping I can say the following:<br /><br />hg push ssh://hg@hg.copilotco.com/home.copilotco.com/home/treed<br /><br />but this uri is rather long. I want to make it the default. So in my<br />.hgrc I can say:<br /><br />[paths]<br />default-push = ssh://hg@hg.copilotco.com/home.copilotco.com/home/treed<br /><br />So now I can clone my dotfiles and various other settings that I want<br />to carry around with me from that url. When I make a change on some<br />machine somewhere I "hg push" the change back up to the<br />repository. Then I can "hg pull" on any other machine which I want to<br />have the update. Pretty slick.<br /><br /><br /></p>

          ]]>
        </content:encoded>        

        <dc:date>2008-12-27T20:45:00-08:00</dc:date>

        <dcterms:modified>2009-01-01T23:49:59-08:00</dcterms:modified>

        <dc:creator>Tracy R Reed</dc:creator>

        


    </rss:item>

    
    

    <rss:item rdf:about="http://tracyreed.org/blog/2008/10/13/857-hours-1136-takeoffs-and-landings">

        <rss:title>857 hours, 1136 takeoffs and landings</rss:title>

        <rss:link>http://tracyreed.org/blog/2008/10/13/857-hours-1136-takeoffs-and-landings</rss:link>       

        <rss:description>o/~ Come fly with me, lets fly lets fly away. If you can use, some exotic booze, There's a bar in far bombay. Come fly with me, well fly we'll fly away. o/~</rss:description>

        <content:encoded>
          <![CDATA[
          
<p>When I started this blog I originally intended for it to be a combination computer/aviation blog since those are the things I am into. But I never seem to get around to writing anything. I really should have written up an account of my multi-engine checkride last December but I didn't. Although there wasn't much to write up really. I aced the oral exam, did ok on the flight, and won the ticket. Now I have nearly 50 hours flying the BE-76.</p>
<p>&nbsp;</p>
<p>I have long entertained the idea of an online logbook and tonight I realized that I could combine that with the blog and perhaps that would give me more incentive to make blog entries if each logbook entry could turn into a blog entry also. Keeping the logbook online and the math done by computer makes things neater and verifies my math as well as allows others to more easily follow along in my flying. I still have to keep the paper copy as the official record.</p>
<p>&nbsp;</p>
<p>But until I get that coded up let me tell you about my flying weekend: I haven't done much flying the last few months so I was out of currency. I was supposed to have made a flight last weekend to visit a friend up in LA but the weather sucked (actually, it was easy IFR weather but it definitely wasn't VFR so I could definitely have made the flight) and I wasn't instrument or even VFR current. A pilot has to make 3 takeoffs and landings every 90 days to be able to fly with passengers and I haven't been keeping up lately. He must also do 6 instrument approached plus intercepting, tracking, and holding every 6 months to be instrument current.</p>
<p>&nbsp;</p>
<p>So yesterday I flew N738TB which is a Cessna 172 which I had never flown before. But when it comes to 172's one is really like another except for the radio setup. I haven't flown anything smaller than a BE-76 or C-210 in the last couple of years so it was fun to get back into something as simple as a 172 again. This plane is fairly nice and even has a Garmin 430 GPS. The second radio is an ancient Collins which could do with replacement. So I departed from MYF around noon and flew down to SDM and did 4 touch and go's then came back to MYF. 1.1hrs total flight time. There was a decent head/crosswind of 15 gusting to 20 knots the first couple landings but by the time I was done it seemed to have faded to nothing. The runway at SDM is very long having been a base for F-4's and other Navy aircraft in the distant past. With the strong headwind I could land on the numbers and then be off again in very little space. After the first time down that long runway I started making early turn-outs into the pattern to speed things up.</p>
<p>&nbsp;</p>
<p>Today I wanted to regain my night currency so around 8pm I went back to the airport and fired up 8TB once again to do some night stop and go's and then flew west to Mt Soledad and up the coast at 4,500' as far as CRQ checking out the city lights. Then back for an uneventful landing. When I departed the tower at MYF was open but at 9pm they close so I returned to an uncontrolled airport. It's always fun to click the mic and make the runway lights come on. MYF has a nice and fancy approach lighting setup (there's a specific name for this setup which I don't recall) which automatically turns off after so many minutes but can be re-activated by keying the radio. So I can roll out on final and tell the pax "Watch this...*click* *click* *click* *click* *click" and hear their "Ooohh!"</p>
<p>&nbsp;</p>
<p>So now I'm day current and night current again. But still not instrument current. The way the regulations are written I can fly "under the hood" (which is a way to simulate instrument flight in a real aircraft in visual flight conditions) with a safety pilot whose job is to look out for traffic while I'm under the hood and we can both log the time. The two pilots usually split the flight expense.</p>
<p>&nbsp;</p>
You would think it would be easy to get people to go along for half-price flying. But it isn't. It's hard. And I don't understand why. I have contacted every person who advertised on the bulletin board down at the airport looking for a safety pilot and so far not a one of them has resulted in a flight. I have put my own ad on the board and as a result I have a tentative flight with someone on the 20th so hopefully that will pan out. Otherwise I'll have to pay an instructor and the full price of the aircraft which makes the endeavor more than twice as expensive. I need a flight review by the end of the year anyway so if I'm not instrument current by then I'll get it with the flight review although I sure hope it doesn't take that long.

          ]]>
        </content:encoded>        

        <dc:date>2008-10-13T01:50:00-07:00</dc:date>

        <dcterms:modified>2009-01-02T01:01:46-08:00</dcterms:modified>

        <dc:creator>Tracy R Reed</dc:creator>

        

        
            <dc:subject>Flying</dc:subject>
        

    </rss:item>

    
    

    <rss:item rdf:about="http://tracyreed.org/blog/2008/06/17/get-less-junkmailprotect-your-credit">

        <rss:title>Get less junkmail/protect your credit</rss:title>

        <rss:link>http://tracyreed.org/blog/2008/06/17/get-less-junkmailprotect-your-credit</rss:link>       

        

        <content:encoded>
          <![CDATA[
          I just <a href="https://www.dmachoice.org/MPS/proto1.php">signed up for this</a>. I found it via <a href="http://www.savingadvice.com/blog/2008/06/04/102143_never-pay-someone-to-protect-your-identity.html">
this article about LifeLock</a> which was <a href="http://www.schneier.com/blog/archives/2008/06/lifelock_and_id.html">linked to by Bruce Schneier</a>, my favorite security guru. Hopefully over the next few months it will cut down on the amount of junkmail I get. I am also considering calling the credit company and putting a fraud alert on my account. Unfortunately it expires every 90 days so I would have to call them every 3 months to keep it going which would be a pain. That is all Lifelock does for you. The credit bureaus really should be taking these precautions anyway. But it costs them extra money to have to actually verify requests for credit so they try to avoid it.

          ]]>
        </content:encoded>        

        <dc:date>2008-06-17T18:07:03-04:00</dc:date>

        <dcterms:modified>2009-01-01T23:49:27-08:00</dcterms:modified>

        <dc:creator>Tracy R Reed</dc:creator>

        


    </rss:item>

    

</rdf:RDF>
