<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>kasia in a nutshell</title>
    <link rel="alternate" type="text/html" href="http://www.unix-girl.com/blog/" />
    <link rel="self" type="application/atom+xml" href="http://www.unix-girl.com/blog/atom.xml" />
   <id>tag:www.unix-girl.com,2008:/blog//1</id>
    <link rel="service.post" type="application/atom+xml" href="http://www.unix-girl.com/mt/mt-atom.cgi/weblog/blog_id=1" title="kasia in a nutshell" />
    <updated>2008-03-15T04:01:13Z</updated>
    <subtitle>Crunchy on the outside, sarcasm on the inside</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.2</generator>
 
<entry>
    <title>Posts that should go away</title>
    <link rel="alternate" type="text/html" href="http://www.unix-girl.com/blog/archives/2007/07/things_that_ann.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.unix-girl.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=2236" title="Posts that should go away" />
    <id>tag:www.unix-girl.com,2007:/blog//1.2236</id>
    
    <published>2007-07-21T03:58:56Z</published>
    <updated>2008-03-15T04:01:13Z</updated>
    
    <summary>Nothing to see here.. and no I&apos;m not dead, just busy!...</summary>
    <author>
        <name>kasia</name>
        
    </author>
            <category term="bits and bytes" />
    
    <content type="html" xml:lang="en" xml:base="http://www.unix-girl.com/blog/">
        <![CDATA[<p>Nothing to see here.. and no I'm not dead,  just busy! </p>]]>
        
    </content>
</entry>
<entry>
    <title>Scary thoughts</title>
    <link rel="alternate" type="text/html" href="http://www.unix-girl.com/blog/archives/2007/06/scary_thoughts.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.unix-girl.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=2186" title="Scary thoughts" />
    <id>tag:www.unix-girl.com,2007:/blog//1.2186</id>
    
    <published>2007-06-23T02:54:07Z</published>
    <updated>2007-08-25T21:50:23Z</updated>
    
    <summary>We&apos;ve been doing a lot of phone interviewing at work lately to fill a couple positions. Granted, Connecticut isn&apos;t exactly...</summary>
    <author>
        <name>kasia</name>
        
    </author>
            <category term="all things geek" />
    
    <content type="html" xml:lang="en" xml:base="http://www.unix-girl.com/blog/">
        <![CDATA[<p>We've been doing a lot of phone interviewing at work lately to fill a couple positions. Granted, Connecticut isn't exactly a mecca of high tech and most CS grads flee for their lives as soon as they graduate.  Even knowing that, the candidate pool still appears depressingly dismal. What really strikes me is that the worst candidates seem to be the ones with a Master's degree in Computer Science.  I assume most of these are course-work only Master's. I really would like to believe that someone could not possibly complete a thesis (which in CS is usually a programming project, rather than a research paper) and not be able to answer some very simple questions pertaining to their chosen field of work. </p>

<p>Looking through the recent resumes two things stand out:</p>

<p>1. More than half of the candidates have a Master's in Computer Science. <br />
2. Less than half (out of those only one had a Master's) did well enough in a phone screen to progress to an in-person interview. </p>

<p>The obvious possible conclusions are:</p>

<p>1.  A Master's in CS dumbs a person down. <br />
--- or --- <br />
2. The kind of person who chooses to pursue a Master's degree is not the kind of person we'd like to hire. </p>

<p>The second choice leads to a conclusion that people who are not exactly the greatest in their field will move on to pursue higher degrees in order to showcase better qualifications on their resumes. Pretty much every single person we interviewed with a Master's would barely qualify for a junior-level position. It's really stunning how little interest these candidates appear to have in a field they chose to pursue graduate work in. </p>

<p>And here I am about to become one of them. Yikes.  Pray for my brain. <br />
</p>]]>
        
    </content>
</entry>
<entry>
    <title>Light summer reading</title>
    <link rel="alternate" type="text/html" href="http://www.unix-girl.com/blog/archives/2007/06/light_summer_re.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.unix-girl.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=2153" title="Light summer reading" />
    <id>tag:www.unix-girl.com,2007:/blog//1.2153</id>
    
    <published>2007-06-06T01:03:39Z</published>
    <updated>2007-08-25T21:50:46Z</updated>
    
    <summary>Just a few books for the next couple of months All the Mathematics You Missed But Need to Know for...</summary>
    <author>
        <name>kasia</name>
        
    </author>
            <category term="It&apos;s alive!" />
    
    <content type="html" xml:lang="en" xml:base="http://www.unix-girl.com/blog/">
        <![CDATA[<p>Just a few books for the next couple of months<br />
<a href=http://www.amazon.com/Mathematics-Missed-Need-Graduate-School/dp/0521792851/>All the Mathematics You Missed But Need to Know for Graduate School </a><br />
<a href=http://www.amazon.com/Combinatorics-Computer-Science-Dover-Mathematics/dp/0486420760/>Combinatorics for Computer Science</a><br />
<a href=http://www.amazon.com/Selected-Papers-Analysis-Algorithms-Donald/dp/1575862123/>Selected Papers on the Analysis of Algorithms</a><br />
<a href=http://www.amazon.com/Selected-Computer-Languages-Language-Information/dp/1575863820/>Selected Papers on Computer Languages</a></p>

<p>Saving my pennies for this expensive one.. <br />
<a href=http://www.amazon.com/Handbook-Theoretical-Computer-Science-Semantics/dp/0444880747/>Handbook of Theoretical Computer Science : Formal Models and Semantics</a></p>

<p><br />
Grad school starts in two months! </p>]]>
        
    </content>
</entry>
<entry>
    <title>Subtle</title>
    <link rel="alternate" type="text/html" href="http://www.unix-girl.com/blog/archives/2007/05/subtle.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.unix-girl.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=2152" title="Subtle" />
    <id>tag:www.unix-girl.com,2007:/blog//1.2152</id>
    
    <published>2007-05-24T03:32:05Z</published>
    <updated>2007-08-25T21:51:06Z</updated>
    
    <summary>A new SUV named &apos;patriot&apos;. No message there!...</summary>
    <author>
        <name>kasia</name>
        
    </author>
            <category term="nonsensical typing" />
    
    <content type="html" xml:lang="en" xml:base="http://www.unix-girl.com/blog/">
        <![CDATA[<p>A new SUV named 'patriot'. No message there!</p>]]>
        
    </content>
</entry>
<entry>
    <title>Hacked</title>
    <link rel="alternate" type="text/html" href="http://www.unix-girl.com/blog/archives/2007/05/hacked_1.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.unix-girl.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=2147" title="Hacked" />
    <id>tag:www.unix-girl.com,2007:/blog//1.2147</id>
    
    <published>2007-05-20T23:22:46Z</published>
    <updated>2007-09-04T02:17:32Z</updated>
    
    <summary>My server was hacked last week. It was not a super-smart uber hacker who did it. There isn&apos;t enough interesting...</summary>
    <author>
        <name>kasia</name>
        
    </author>
            <category term="all things geek" />
    
    <content type="html" xml:lang="en" xml:base="http://www.unix-girl.com/blog/">
        <![CDATA[<p>My server was hacked last week. </p>

<p>It was not a super-smart uber hacker who did it. There isn't enough interesting information on there to tempt one of those guys. It was just a script. One of undoubtedly hundreds currently perusing the net in search of easy targets. The weak point was allowing password logins with an account that uses a person's first name for a username.  Once the bot is in the system it's really trivial to root a linux box, especially one running an older version of redhat like mine was. </p>

<p>The real kicker? I know better. I would never ever advice anyone allow password logins on a publicly available server.  Why did I allow it? Convenience, laziness, thinking all the passwords should be strong enough (yah right). </p>

<p>I feel like an idiot (and rightfully so), but at least I spotted it rather quickly - in  a couple of hours. I monitor my logs regularly and keep on top of my traffic statistics, but what really gave it away is my email stopped.  </p>

<p>I logged onto the system to check the logs and see what's going on. The email log (/var/log/maillog on most linux systems) stopped recording about an hour earlier. That's not  normal. Checked netstat  to see all the usual suspects happily running and listening on all the right ports. No unusual ports opened.</p>

<p>This is typical of what is up on my machine: </p>

<blockquote><pre>
[root@cygnus log]# netstat -an | grep LISTEN
tcp        0      0 127.0.0.1:10023             0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:783               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:26                  0.0.0.0:*                   LISTEN      
tcp        0      0 :::110                      :::*                        LISTEN      
tcp        0      0 :::143                      :::*                        LISTEN      
tcp        0      0 :::22                       :::*                        LISTEN      
</pre></blockquote>
In order: <a href=http://postgrey.schweikert.ch/>postgrey</a>, mysql, spamd, apache, postfix, postfix, pop, imap, ssh.

<p>At any other time I'd have thought nothing was wrong. But my maillog was not recording any traffic and that's not normal. I checked my secure log. Nothing unusual. Current logins, all normal.  As far as the system was concerned all looked normal. </p>

<p>I checked recent logins and noticed that an hour earlier an account was used that hasn't been in a while. That's unusual, checked the IP. Romania. That's when the real alarms started going off. First check, syslog. It's not running, won't start and strace hangs. Checked /dev/ for unusual files (that's where historically hackers like to put their binaries).</p>

<blockquote><pre>
 find /dev -type f -print
</pre></blockquote>

<p>Nothing unusual there. Next thing to check is the date of binaries in /usr/bin and /usr/sbin. Bingo. All important binaries (netstat, lsof, etc) have a modification date of right now.  That's the point where you know the system cannot be trusted. Sure, netstat is showing no unusual activity, but that's not what the system is really doing. lsof hangs, strace hangs, all the important tools that sysadmins depend on to know the state of the system can no longer be trusted. </p>

<p>Once a linux system is compromised like that, you can't recover without replacing the entire OS. So that's what I did. I shut the system down and asked the web hosting company to put a fresh install of whatever linux they have handy on it.  As far as I can tell from the little evidence I gathered before shutting the box down, the system was compromised by a script using an account that had no sudo access. Then the box was rooted. Considering that the postfix binary was replaced and it stopped receiving external email for any of the configured domains (my postfix configuration is unorthodox in that its based in mysql), I would imagine the goal was to turn it into a spambox. </p>

<p>The real value to in a publicly connected linux machine is that it's trusted by other systems (until alarms go off anyway), it's not blacklisted and can serve as the perfect spambot. This is why shutting it down as soon as I confirmed it was hacked was so important. </p>

<p>Lack of burst in network traffic after it was compromised confirms that it was not someone interested in what information the server contained. A hacker with intentions other than turning the server into a zombie would have copied as much information as he could as fast as he could before the sysadmin was alerted to something not being kosher. </p>

<p>The system is back and running now, I restored my data from a backup (I have a daily rotating one) and configured it in a much smarter way. No more password based logins. Public/Private key authentication only. I had all the other important  points down already, but here's the list in case it's helpful:</p>

<ul>
<li>No password logins, private/public key authentication only</li>
<li>No root password, strictly monitored sudo access</li>
<li>Strict firewall rules based on knowing what to allow and why. Deny first, allow second.</li>
<li>SSH protocol 2 only, 1 is not secure</li>
<li>Monitor, monitor, monitor, monitor. There's nothing that can replace a vigilant sysadmin. Tools like logwatch and mrtg are incredibly useful.</li>
<li>If you think your server is hacked, shut it down. You cannot trust anything the system tells you if binaries have been replaced. It's imperative to take the system offline as soon as possible.</li>
<li>Don't try to recover a hacked system, if you don't know when it was hacked, don't trust backups either.</li>
<li>Password protect any private keys stored on a publicly accessible server.</li>
<li>Only install application you actually use and need. The less stuff running on the system, the lower the security risk from bugs in applications.</li>
</ul>

<p>My one reason for allowing password logins was the ability to login from anywhere into my linux box and then use my keys to login to any system I need to that requires key authentication. The solution? Generate a new, password-protected key and keep it in a usb keyfob. Use that key to login to the system. </p>

<p>How often do scripts target public servers? Here's some extracts from my system logs: </p>

<p>Over last 24 hours:<br />
<blockquote><pre><br />
 Received disconnect:<br />
    11: Bye Bye : 1617 Time(s)<br />
    11: No supported authentication methods available : 1 Time(s)<br />
    14: No supported authentication methods available : 1 Time(s)<br />
</blockquote></pre></p>

<p><br />
That's 1617 of these in 24-hour period: <br />
<blockquote><pre><br />
May 19 14:05:17 cygnus sshd[24358]: input_userauth_request: invalid user testuser<br />
May 19 14:05:18 cygnus sshd[24358]: Received disconnect from 218.210.68.166: 11: Bye Bye<br />
May 19 14:05:19 cygnus sshd[24359]: Invalid user tester from 218.210.68.166<br />
May 19 14:05:19 cygnus sshd[24359]: reverse mapping checking getaddrinfo for <br />
adsl-218-210-68-166.pc.sparqnet.net failed - POSSIBLE BREAK-IN ATTEMPT!<br />
May 19 14:05:19 cygnus sshd[24360]: input_userauth_request: invalid user tester<br />
May 19 14:05:19 cygnus sshd[24360]: Received disconnect from 218.210.68.166: 11: Bye Bye<br />
May 19 14:05:20 cygnus sshd[24361]: reverse mapping checking getaddrinfo for <br />
adsl-218-210-68-166.pc.sparqnet.net failed - POSSIBLE BREAK-IN ATTEMPT!<br />
May 19 14:05:20 cygnus sshd[24362]: Received disconnect from 218.210.68.166: 11: Bye Bye<br />
May 19 14:05:21 cygnus sshd[24363]: reverse mapping checking getaddrinfo for<br />
adsl-218-210-68-166.pc.sparqnet.net failed - POSSIBLE BREAK-IN ATTEMPT!<br />
May 19 14:05:21 cygnus sshd[24364]: Received disconnect from 218.210.68.166: 11: Bye Bye<br />
May 19 14:05:23 cygnus sshd[24365]: reverse mapping checking getaddrinfo for<br />
adsl-218-210-68-166.pc.sparqnet.net failed - POSSIBLE BREAK-IN ATTEMPT!<br />
May 19 14:05:23 cygnus sshd[24366]: Received disconnect from 218.210.68.166: 11: Bye Bye<br />
May 19 14:05:24 cygnus sshd[24367]: Invalid user knoppix from 218.210.68.166<br />
May 19 14:05:24 cygnus sshd[24367]: reverse mapping checking getaddrinfo for<br />
adsl-218-210-68-166.pc.sparqnet.net failed - POSSIBLE BREAK-IN ATTEMPT!<br />
</pre></blockquote></p>

<p>This is why not allowing password authentication is so important. </p>]]>
        
    </content>
</entry>
<entry>
    <title>When error handling matters</title>
    <link rel="alternate" type="text/html" href="http://www.unix-girl.com/blog/archives/2006/10/when_error_hand.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.unix-girl.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=2027" title="When error handling matters" />
    <id>tag:www.unix-girl.com,2006:/blog//1.2027</id>
    
    <published>2006-11-01T04:23:37Z</published>
    <updated>2006-11-16T09:00:02Z</updated>
    
    <summary>.. well, at least error message translation does, so users don&apos;t see this (click on image to see larger): Arrived...</summary>
    <author>
        <name>kasia</name>
        
    </author>
            <category term="bits and bytes" />
    
    <content type="html" xml:lang="en" xml:base="http://www.unix-girl.com/blog/">
        <![CDATA[<p>.. well, at least error message translation does, so users don't see this (click on image to see larger):</p>

<p><br />
<a href="http://www.unix-girl.com/blog/archives/bad_error_handling.html" onclick="window.open('http://www.unix-girl.com/blog/archives/bad_error_handling.html','popup','width=750,height=686,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.unix-girl.com/blog/archives/bad_error_handling-thumb.png" width="400" height="365" alt="" /></a></p>

<p>Arrived there from a google search, error was gone a minute later. </p>]]>
        
    </content>
</entry>
<entry>
    <title>Why buy music?</title>
    <link rel="alternate" type="text/html" href="http://www.unix-girl.com/blog/archives/2006/10/why_buy_music.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.unix-girl.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=2023" title="Why buy music?" />
    <id>tag:www.unix-girl.com,2006:/blog//1.2023</id>
    
    <published>2006-10-17T01:10:34Z</published>
    <updated>2006-11-01T09:00:01Z</updated>
    
    <summary>It&apos;s hard to believe, but three long years have passed since I purchased my old, trusty powerbook. Three, long, slow...</summary>
    <author>
        <name>kasia</name>
        
    </author>
            <category term="all things geek" />
    
    <content type="html" xml:lang="en" xml:base="http://www.unix-girl.com/blog/">
        <![CDATA[<p>It's hard to believe, but three long years have passed since I <a href=/blog/archives/2003/09/hapiness_is.html>purchased</a> my old, trusty powerbook. Three, long, slow years. (Almost as much time since my last blog post, hah!).</p>

<p>Since it's been (a) long and (b) slow and (c) old and well, I hate having to wait 10+ minutes for a build to finish when working from home.. You can guess what I just did, right? I bought a brand-spanking new macbook pro. It's fast, it's shiny, it has a scrolling trackpad.  That's not what this post is really about though.</p>

<p>I'm most impressed with apple's 'puter transfer tool. It feels as if I haven't really switched machines. Particularly since this one looks nearly identical to the old one. Except for that creepy camera lens staring at me from the top. It's really starting to creep me out. What if it's on and I don't realize it? What if someone out there is watching me stick the tip of my tongue out as I desperately try to make fewer typos? (Can you just visualize that? See, scary part is, maybe someone doesn't have to visualize it!). But again, that is not what this post is about. </p>

<p>Despite the really wonderful transfer of files, settings, browser cache, cookies and other goodies, one thing that did not move along to my new machine is my iTunes purchased music. I had to enter my password and authorize this machine. </p>

<p>So now.. by doing nothing other than upgrading computers, Apple is telling me I only have 3 more authorizations left before I'm no longer allowed to listen to the music i legally paid for. In other words, unless I never upgrade machines again (yah right), this music will no longer be available to me in a few years. Did I mention I paid for it legally, unlike many other users? Based on a statistic I just made up, close to 70% of iPod users don't bother paying for the music. Someone please tell me one good reason why I should, seeing as I'm being treated like a thief even when I'm trying to be good. </p>

<p>To hell with that.  Screw you, music industry.</p>]]>
        
    </content>
</entry>
<entry>
    <title>Air fresheners are evil</title>
    <link rel="alternate" type="text/html" href="http://www.unix-girl.com/blog/archives/2006/06/air_fresheners.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.unix-girl.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=2005" title="Air fresheners are evil" />
    <id>tag:www.unix-girl.com,2006:/blog//1.2005</id>
    
    <published>2006-06-06T02:17:41Z</published>
    <updated>2006-06-21T09:00:01Z</updated>
    
    <summary>I have a coworker who sometimes likes to spray air freshener in the office. It really bothers me. I&apos;m sensitive...</summary>
    <author>
        <name>kasia</name>
        
    </author>
            <category term="It&apos;s alive!" />
    
    <content type="html" xml:lang="en" xml:base="http://www.unix-girl.com/blog/">
        <![CDATA[<p>I have a coworker who sometimes likes to spray air freshener in the office. It really bothers me. I'm sensitive to chemicals and it always gives me a headache and causes eye irritation. Today, after another 'spraying', I had a headache, so i took some advil and went home. </p>

<p>When I got home I noticed there was something odd with my vision. Couldn't quite put my finger on it, but it was definitely not right. In about fives minutes, it deteriorated to serious blurriness, then it got weird. Jaggedy, colourful images dancing in front of my eyes with surrounded blurriness.  I was practically blind for about 5-10 minutes and  had serious spatial disorientation when I could see my surroundings. Closing eyes did not help, could still see the same hallucinations and no blackness. The feeling was very much like after a small dose of hallucinogenic drugs. </p>

<p>The whole episode ended in about 15 minutes and via the magic of google, I found the symptoms were very consistent with a <a href=http://www.clevelandclinic.org/health/health-info/docs/3200/3266.asp?index=11253>migraine aura</a>. I have had migraines before, but the precursor was usually blurry vision and nausea. I didn't even know migraines could cause hallucinations. </p>

<p>More google magic and turns out that air fresheners are <a href=http://www.thehealthierlife.co.uk/article/3232/headaches.html>pretty nasty stuff</a> and one of the known triggers of migraines. Tomorrow, i'll have a conversation with my co-workers, but in the meantime, if you get migraines, something to think about. </p>]]>
        
    </content>
</entry>
<entry>
    <title>Sometimes one just can&apos;t plan ahead</title>
    <link rel="alternate" type="text/html" href="http://www.unix-girl.com/blog/archives/2006/06/sometimes_one_j.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.unix-girl.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=2004" title="Sometimes one just can't plan ahead" />
    <id>tag:www.unix-girl.com,2006:/blog//1.2004</id>
    
    <published>2006-06-02T02:03:35Z</published>
    <updated>2006-06-17T09:00:02Z</updated>
    
    <summary>While in the process of looking through code to see what I need to change for my current project I...</summary>
    <author>
        <name>kasia</name>
        
    </author>
            <category term="bits and bytes" />
    
    <content type="html" xml:lang="en" xml:base="http://www.unix-girl.com/blog/">
        <![CDATA[<p>While in the process of looking through code to see what I need to change for my current project I decided to clean up our somewhat bloated constants file. You know, do the thing nobody else ever does? Remove unused constants!</p>

<p>While removing the lonely, unused constants and getting rid of some duplicates (user_id vs userid vs user_identifier that all point to the same string.. and so on..) I decided to remove a constants that will probably return to hunt me at some point.  I've decided to live with the consequences  of the change. It was either change mucho code to use the constant and be (that dirty word..) consistent or remove it. So I decided to remove it. If we have to change the value in the future, it'll be a lot of work, I admit it, but I'm willing to live with that result of my actions.</p>

<p><br />
Today, I removed..</p>

<p>public static final int ZERO = 0;</p>

<p>RIP, leftovers of <a href=http://www.unix-girl.com/blog/archives/2006/01/wwansbcd.html>NSBCs</a>.</p>]]>
        
    </content>
</entry>
<entry>
    <title>Oracle optimizer is pure voodoo</title>
    <link rel="alternate" type="text/html" href="http://www.unix-girl.com/blog/archives/2006/05/oracle_optimize.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.unix-girl.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=2002" title="Oracle optimizer is pure voodoo" />
    <id>tag:www.unix-girl.com,2006:/blog//1.2002</id>
    
    <published>2006-05-26T01:34:55Z</published>
    <updated>2006-06-10T09:00:01Z</updated>
    
    <summary>A problem we ran into at work today.. A table with mucho data and a date column. The date column...</summary>
    <author>
        <name>kasia</name>
        
    </author>
            <category term="bits and bytes" />
    
    <content type="html" xml:lang="en" xml:base="http://www.unix-girl.com/blog/">
        <![CDATA[<p>A problem we ran into at work today..</p>

<p>A table with mucho data and a date column. The date column has an index on it and its type is just pure old date.  A query using jdbc and java.sql.Timestamp type on a prepared statement generates a full table scan.. and the associated slllloowwwwwnnnessssssss. </p>

<p>Identical query using java.sql.Date on a prepared statement or to_date(String, format) in the SQL uses the index. </p>

<p>Am I missing some obvious Oracle clue here? Cause google isn't helping! </p>

<p>Edit: I realize we can hint to Oracle which indexes to use, but it would be nice to have a more general solution.</p>]]>
        
    </content>
</entry>
<entry>
    <title>Images from JavaOne</title>
    <link rel="alternate" type="text/html" href="http://www.unix-girl.com/blog/archives/2006/05/images_from_jav.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.unix-girl.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=1999" title="Images from JavaOne" />
    <id>tag:www.unix-girl.com,2006:/blog//1.1999</id>
    
    <published>2006-05-22T00:23:25Z</published>
    <updated>2006-06-06T09:00:01Z</updated>
    
    <summary> Here&apos;s my collection of pictures from this year&apos;s JavaOne. I divided it into three categories: General images from around...</summary>
    <author>
        <name>kasia</name>
        
    </author>
            <category term="bits and bytes" />
            <category term="light patterns as reflected from objects" />
    
    <content type="html" xml:lang="en" xml:base="http://www.unix-girl.com/blog/">
        <![CDATA[<p><img align=right src=http://www.unix-girl.com/albums/geeks/IMG_2484.thumb.jpg border=0 hspace=5 vspace=5><br />
Here's my collection of pictures from this year's JavaOne.  I divided it into three categories:</p>

<ul>
<li>General images from <a href=/gallery/san_francisco_2006>around the city</a>.  Mostly from touristy spots.</li>

<p><li><a href=http://www.museemechanique.org/>Musee Mechanique</a> is a little museum of old amusement machines located at Fisherman's Wharf.   Some are interesting, some fun but most are <a href=/gallery/musee_mechanique>definitely in the creepy category</a>.</li></p>

<p><li>This year's JavaOne backpacks were a fashionably-stark orange. It made <a href=/gallery/geeks/>spotting the geeks</a> rather easy. I dedicate this last collection to the designers of the backpack. Good work.</li><br />
</ul></p>

<p>Note: these were all taken with a 50mm prime lense, so "zoom" is created with photoshop. </p>]]>
        
    </content>
</entry>
<entry>
    <title>JavaOne</title>
    <link rel="alternate" type="text/html" href="http://www.unix-girl.com/blog/archives/2006/05/javaone.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.unix-girl.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=1998" title="JavaOne" />
    <id>tag:www.unix-girl.com,2006:/blog//1.1998</id>
    
    <published>2006-05-19T19:10:52Z</published>
    <updated>2006-06-04T09:00:01Z</updated>
    
    <summary>Good conference this year. Went to some really good sessions and only a couple turned out to be duds so...</summary>
    <author>
        <name>kasia</name>
        
    </author>
            <category term="bits and bytes" />
    
    <content type="html" xml:lang="en" xml:base="http://www.unix-girl.com/blog/">
        <![CDATA[<p>Good conference this year. Went to some really good sessions and only a couple turned out to be duds so I'm definitely batting better than last year.  I like the new session enrollment requirement and like it even more than Sun decided to repeat some of the most popular sessions. I'll be attending three of them this afternoon. </p>

<p>In the first general session, we were told it's the biggest JavaOne conference to date and I can certainly believe that looking at the lines to the sessions and crowds everywhere. What surprise me (pleasantly) was the amount of women this year. Nearly made me cry to see an actual line to the ladies room yesterday. </p>

<p>I'm sitting in the alumni lounge right now waiting for my next session ("Using Service Component Architecture to Wire BPEL Processes to Java™ Technology-Based Components" at noon).  Only one other woman at the lounge beside me right now, but I'll bet it'll look better next year. </p>

<p>It's good to see that Java is pretty healthy and conference is doing well. Now if only Sun didn't come up with that hideous, orange color for the backpacks. You can spot the geeks all over town from half a mile away thanks to those.  Pictures coming up soon! </p>

<p>PS: If you're in SF right now, awesome cream puffs in a little place accross the street from Yerba Buena Gardens (behind Moscone North). Worth the 2min walk!</p>

<p>PPS: To the geek who accidentally wondered to the ladies room and ran out horribly embarassed once he realized it: Sorry I laughed so hard dude! </p>]]>
        
    </content>
</entry>
<entry>
    <title>If one post could define a site..</title>
    <link rel="alternate" type="text/html" href="http://www.unix-girl.com/blog/archives/2006/05/if_one_post_cou.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.unix-girl.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=1997" title="If one post could define a site.." />
    <id>tag:www.unix-girl.com,2006:/blog//1.1997</id>
    
    <published>2006-05-06T01:06:38Z</published>
    <updated>2006-05-21T09:00:01Z</updated>
    
    <summary>Then this one truly represents and defines the spirit of Craigslist. Inspiring....</summary>
    <author>
        <name>kasia</name>
        
    </author>
            <category term="nonsensical typing" />
    
    <content type="html" xml:lang="en" xml:base="http://www.unix-girl.com/blog/">
        <![CDATA[<p>Then <a href=http://hartford.craigslist.org/rnr/157932641.html>this one</a> truly represents and defines the spirit of Craigslist. Inspiring. </p>]]>
        
    </content>
</entry>
<entry>
    <title>When geeks have nightmares</title>
    <link rel="alternate" type="text/html" href="http://www.unix-girl.com/blog/archives/2006/05/when_geeks_have.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.unix-girl.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=1996" title="When geeks have nightmares" />
    <id>tag:www.unix-girl.com,2006:/blog//1.1996</id>
    
    <published>2006-05-02T03:19:48Z</published>
    <updated>2006-05-17T09:00:01Z</updated>
    
    <summary>Geeks are humans too. If you prick us, do we not bleed? As Shakespeare once wrote[0]. Being human we have...</summary>
    <author>
        <name>kasia</name>
        
    </author>
            <category term="bits and bytes" />
    
    <content type="html" xml:lang="en" xml:base="http://www.unix-girl.com/blog/">
        <![CDATA[<p>Geeks are humans too. If you prick us, do we not bleed? As Shakespeare once wrote[0].  Being human we have bad dreams just like the rest of the population. It's just that ours are more amusing later in retelling on a weblog.  </p>

<p>As my own example from last night shows..</p>

<p>My most recent nightmare? </p>

<p>Suddenly realizing it's the last day of <a href=http://java.sun.com/javaone/sf/>JavaOne</a> and I missed all sessions. </p>

<p>Yes, I really had that nightmare last night. </p>

<p><br />
[0] I doubt he had computer programmers in mind, but, in his own way, he was a geek for his own time. Sort of. That really explains the whole ren-faire thing though, doesn't it? </p>]]>
        
    </content>
</entry>
<entry>
    <title>Kind of a cute little bug</title>
    <link rel="alternate" type="text/html" href="http://www.unix-girl.com/blog/archives/2006/05/kind_of_a_cute.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.unix-girl.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=1995" title="Kind of a cute little bug" />
    <id>tag:www.unix-girl.com,2006:/blog//1.1995</id>
    
    <published>2006-05-02T03:07:04Z</published>
    <updated>2006-05-17T09:00:01Z</updated>
    
    <summary>Either too many of my friends have recently become avid yahoo game addicts or some recent yahoo messenger server update...</summary>
    <author>
        <name>kasia</name>
        
    </author>
            <category term="nonsensical typing" />
    
    <content type="html" xml:lang="en" xml:base="http://www.unix-girl.com/blog/">
        <![CDATA[<p>Either too many of my friends have recently become avid <a href=/images/20060501_yim.png>yahoo game addicts</a> or some recent yahoo messenger server update screwed up the icons on mac os... </p>

<p>PS: yep, still alive, just busy! </p>]]>
        
    </content>
</entry>

</feed> 

