<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Princess Polymath</title>
    <link rel="alternate" type="text/html" href="http://www.princesspolymath.com/princess_polymath/" />
    <link rel="self" type="application/atom+xml" href="http://www.princesspolymath.com/princess_polymath/atom.xml" />
    <id>tag:www.princesspolymath.com,2008-08-01:/princess_polymath//1</id>
    <updated>2009-06-19T18:16:16Z</updated>
    <subtitle>
creator
mom
rogue
diva</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Personal 4.12</generator>

<entry>
    <title>Graph Databases are the New Black</title>
    <link rel="alternate" type="text/html" href="http://www.princesspolymath.com/princess_polymath/2009/06/graph-databases-are-the-new-bl.html" />
    <id>tag:www.princesspolymath.com,2009:/princess_polymath//1.191</id>

    <published>2009-06-19T17:57:24Z</published>
    <updated>2009-06-19T18:16:16Z</updated>

    <summary><![CDATA[When I started working on computers, the main thing people used databases for was storing tabular data. &nbsp;Sales reports, inventory records, lists of things. &nbsp;Relational databases were cool because you could associate a transaction in your sales table with an...]]></summary>
    <author>
        <name>Synedra</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://www.princesspolymath.com/princess_polymath/">
        <![CDATA[When I started working on computers, the main thing people used databases for was storing tabular data. &nbsp;Sales reports, inventory records, lists of things. &nbsp;Relational databases were cool because you could associate a transaction in your sales table with an item in your inventory table. &nbsp;As the internet has grown, however, our database needs have outgrown the abilities of the standard relational database system. &nbsp;Social networks are a great example of this - the type of query needed to ask for <a href="http://en.wikipedia.org/wiki/Six_Degrees_of_Kevin_Bacon">six degrees of Kevin Bacon</a> separation in a relational database is complex, resource intensive, and extremely time consuming. &nbsp;Many very smart people have come up with ways to work around this problem, but the real problem is that this type of question is not what relational databases are designed to handle.<div><br /></div><div><a href="http://en.wikipedia.org/wiki/Graph_(data_structure)">Graph databases</a>, on the other hand, are optimized for exactly this type of question. &nbsp;The problem with graph databases is that it's a whole different data structure that we've got to wrap our minds around, and it's difficult to do that without some starting place. &nbsp;<a href="http://www.freebase.com">Freebase</a> is a publicly &nbsp;accessible, open graph database, available for people to use as the back end for their applications. &nbsp;They've even created a <a href="http://www.freebase.com/make">suite of tools</a> to make it easier to build fun things on top of their extensive data. They will be giving a tutorial on <a href="http://en.oreilly.com/oscon2009/public/schedule/detail/8225">Semantic Technologies</a> at OSCON, and if you have any interest in learning about graph structure and what you can do with it, you should definitely check it out.</div><div><br /></div><div>If you want a more data-agnostic view of graph technologies, or want to try installing a graph database on your own, you can learn about <a href="http://en.oreilly.com/oscon2009/public/schedule/detail/8364">Neo4J</a>, an open source graph database, on Wednesday afternoon.</div>]]>
        
    </content>
</entry>

<entry>
    <title>Open Source iPhone Development at OSCON</title>
    <link rel="alternate" type="text/html" href="http://www.princesspolymath.com/princess_polymath/2009/06/open-source-iphone-development.html" />
    <id>tag:www.princesspolymath.com,2009:/princess_polymath//1.190</id>

    <published>2009-06-11T00:58:49Z</published>
    <updated>2009-06-11T18:50:53Z</updated>

    <summary><![CDATA[Developing applications for mobile devices is often a daunting thought for those of us more comfortable in the land of high-level languages. &nbsp;However, in the wake of the new iPhone announcement,&nbsp;I thought I would check out the mobile development offerings...]]></summary>
    <author>
        <name>Synedra</name>
        
    </author>
    
    <category term="oscon2009" label="OSCON 2009" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.princesspolymath.com/princess_polymath/">
        <![CDATA[Developing applications for mobile devices is often a daunting thought for those of us more comfortable in the land of high-level languages. &nbsp;However, in the wake of the new iPhone announcement,&nbsp;I thought I would check out the mobile development offerings at <a href="http://en.oreilly.com/oscon2009/">OSCON</a> to see if there was anything I could sink my teeth into. &nbsp;It turns out that it's become much easier to create content for the iPhone without having to turn to objective C.<div><div><br /></div><div>The most intriguing tutorial I found was an introduction to the&nbsp;<a href="http://en.oreilly.com/oscon2009/public/schedule/detail/8020">PhoneGap</a>&nbsp;project, a platform which makes it easy for developers to create applications which work on the iPhone as well as several other mobile platforms. &nbsp;A developer creates a web application using Javascript/HTML, and the framework provides a wrapper for this application which works as a native application on the mobile device. &nbsp;The tutorial covers development under <a href="http://phonegap.com">PhoneGap</a> as well as the administrivia needed to get the resulting application into the App Store. &nbsp;I was curious about how well this kind of framework could work for general iPhone applications, so I browsed through their applications page and found a variety of applications including highly rated games and locationally-aware utilities. &nbsp;I'll be excited to hear more about it at OSCON so I can get started playing with it.</div><div><br /></div><div>I do have a macintosh, which has up until now been a requirement for most iPhone development - but for those of you who aren't in the Cult of Jobs, another <a href="http://en.oreilly.com/oscon2009/public/schedule/detail/8314">tutorial</a> gives you the information you need to develop for the iPhone using open source tools on Linux or Windows.</div><div><br /></div><div>Later in the week, <a href="http://en.oreilly.com/oscon2009/public/schedule/speaker/2404">Ian Dees</a> will be talking about&nbsp;<a href="http://en.oreilly.com/oscon2009/public/schedule/detail/8073">testing your iPhone apps using Ruby and Cucumber</a>, and <a href="http://en.oreilly.com/oscon2009/public/schedule/speaker/25067">Patrick Collson</a> will be telling you how to turn your iPhone into the Hitchhiker's Guide to the Galaxy. &nbsp;OK, actually he'll just be talking about how they managed to cram Wikipedia into the iPhone, but it's pretty much the same thing, isn't it?</div><div><br /></div><div>Of course, you still have to get a developer's license from Apple before you can create an installable application for the iPhone. &nbsp;If you're curious about iPhone development, these sessions should help you decide if you want to jump in and give it a try. &nbsp;</div></div>]]>
        
    </content>
</entry>

<entry>
    <title>Taking my application by LoadStorm</title>
    <link rel="alternate" type="text/html" href="http://www.princesspolymath.com/princess_polymath/2009/05/taking-my-application-by-loads.html" />
    <id>tag:www.princesspolymath.com,2009:/princess_polymath//1.189</id>

    <published>2009-05-20T00:33:57Z</published>
    <updated>2009-05-20T00:55:43Z</updated>

    <summary>One of my work projects has gotten to the point where we really need to have some performance numbers under stress.  I played with The Grinder, poked at JUnit, and looked around at some of the other tools out there....</summary>
    <author>
        <name>Synedra</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://www.princesspolymath.com/princess_polymath/">
        <![CDATA[One of my work projects has gotten to the point where we really need to have some performance numbers under stress.  I played with <a href="http://grinder.sourceforge.net/">The Grinder</a>, poked at <a href="http://www.junit.org/">JUnit</a>, and looked around at some of the other tools out there.  I was limited by the fact that I only have one system, and it's very hard to make a single system look like a hundred systems... and real load testing works best when you have multiple clients whacking on the system for you.<div><br /></div><div>So, given my previous experience setting up parallel processing things on Amazon Web Services using hadoop, I thought perhaps I should just build a new system using AWS.  But that seemed like a lot of up front work considering that the actual questions we were trying to answer were "How many concurrent users can the system handle?" and "What happens when you go over that limit?"  Simple enough questions, and hard to justify tens of man hours putting together a new prototype just to answer them.</div><div><br /></div><div>So, despite my engineery heart insisting that anything Not Invented Here couldn't possibly do the job, I poked around half-heartedly looking for an existing system to do what I needed.  And lo and behold, I found one!  <a href="http://www.loadstorm.com">LoadStorm</a> is a web-based SAAS which does load/stress/performance testing for your system.  It's free for up to 100 users/minute (and up to 60 minutes), and you can give it multiple steps for each of your users to do (along with some random wait time to better emulate real people).</div><div><br /></div><div>LoadStorm has a reasonably friendly front-end for setting up your servers and tests, but where it really shines is in the analysis - manager-friendly charts and graphs to make the testing results palatable to the people who really need to understand them.  Their team is extremely attentive and helpful, and I would highly recommend them to anyone curious about the outer bounds of their system's capabilities.</div><div><br /></div><div>I was able to use LoadStorm to quantify the improvement we gained by making a structural change to the system, in an easy-to-understand format.  Playing with it further has given me a much stronger understanding of the strengths and weaknesses of our system.</div><div><br /></div><div>Like I said, highly recommended.  Screenshots below.</div><div><br /></div><div><br /></div><div><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="users.jpg" src="http://www.princesspolymath.com/princess_polymath/users.jpg" width="600" height="761" class="mt-image-none" style="" /></span></div><div><br /></div><div><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="errors.jpg" src="http://www.princesspolymath.com/princess_polymath/errors.jpg" width="600" class="mt-image-none" style="" /></span></div><div><br /></div>]]>
        
    </content>
</entry>

<entry>
    <title>Ada Lovelace Day</title>
    <link rel="alternate" type="text/html" href="http://www.princesspolymath.com/princess_polymath/2009/03/ada-lovelace-day.html" />
    <id>tag:www.princesspolymath.com,2009:/princess_polymath//1.188</id>

    <published>2009-03-24T17:05:10Z</published>
    <updated>2009-03-24T17:34:01Z</updated>

    <summary>Today is Ada Lovelace Day, and along with thousands of other bloggers, I&apos;m going to write a little bit today about a woman I have found inspiring in the technical world.  This isn&apos;t an easy task, picking one woman.  Like...</summary>
    <author>
        <name>Synedra</name>
        
    </author>
    
    <category term="adalovelaceday09" label="AdaLovelaceDay09" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.princesspolymath.com/princess_polymath/">
        <![CDATA[Today is Ada Lovelace Day, and along with <a href="http://findingada.com/">thousands of other bloggers</a>, I'm going to write a little bit today about a woman I have found inspiring in the technical world.  This isn't an easy task, picking one woman.  Like <a href="http://liz-henry.blogspot.com/2009/03/ada-lovelace-day.html">Liz</a>, I am blessed to personally know a huge number of inspiring geeky women, but in the spirit of the day I'm going to pick just one, who I've never met personally, but who has made a significant contribution to my personal success as a programmer.<div><br /></div><div>Kathy Sierra was the author of the original <a href="http://headfirstlabs.com/">Head First</a> book, and that series of books has done more for my technical progress than any other single factor.  I'm known by many people as a highly skilled programmer, but I didn't learn that stuff in school - I have a BA in Philosophy.  I'm not good at learning from dry crusty tomes - regular programming books tend to hold my attention through about the first 3 chapters and then I'm off to try the stuff on my own.  The Head First books, of which I have 9, engage me throughout and get the needed information in my brain, so that I can dive into a programming project with the sense that I have the tools I need.</div><div><br /></div><div>That's not all she's done, though.   I saw her speak at OSCON a few years ago and was inspired to go find her blog and read it.  For the next couple of years, I read <a href="http://headrush.typepad.com/">Creating Passionate Users</a> religiously, hoping to glean some sense of how best to engage my users and make them feel like superheroes while using my tools. </div><div><br /></div><div>A couple of years ago, some internet trolls crossed the line in a serious way, threatening Kathy in a way that made her feel uncomfortable about continuing to participate in the blog community.  She is still out there sharing her ideas in other ways, but I am still saddened and infuriated that anyone could do such a thing to someone who has given so much to our community and to our level of discourse.</div><div><br /></div><div>Kathy Sierra is my unsung hero.  Her ideas have helped me become a better programmer and a better interface designer.  Happy Ada Lovelace Day, everyone!</div>]]>
        
    </content>
</entry>

<entry>
    <title>Installing OpenCV on OS/X with Python</title>
    <link rel="alternate" type="text/html" href="http://www.princesspolymath.com/princess_polymath/2009/02/installing-opencv-on-osx-with.html" />
    <id>tag:www.princesspolymath.com,2009:/princess_polymath//1.187</id>

    <published>2009-02-28T02:42:55Z</published>
    <updated>2009-03-05T21:42:06Z</updated>

    <summary>I need to get OpenCV working on my system for a couple of image processing tasks I have for work, and as with many complex software systems, it was somewhat difficult to get it working on my system, a macbook...</summary>
    <author>
        <name>Synedra</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://www.princesspolymath.com/princess_polymath/">
        <![CDATA[I need to get <a href="http://opencv.willowgarage.com/wiki/Welcome">OpenCV</a> working on my system for a couple of image processing tasks I have for work, and as with many complex software systems, it was somewhat difficult to get it working on my system, a macbook pro running Leopard (OS/X 10.5).<div><br /></div><div>Their <a href="http://opencv.willowgarage.com/wiki/InstallGuide">installation instructions</a> were fairly good.  I first tried to use regular old make, but I had a few issues with libraries that regular old make couldn't find.  So I installed cmake to use for this purpose.  I highly recommend it.</div><div><br /></div><div>With cmake, I was successful with the suggested instructions:</div><div><pre>% mkdir build
% cd build
% cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -DBUILD_PYTHON_SUPPORT=ON ../
</pre>
</div><div><br /></div><div>After that, 'make' and 'make install'.  </div><div><br /></div><div>I ran into a few issues during this process.</div><div><br /></div><div><ul><li>No swig on my system.  The installation page lists it as an optional install, but it's needed for python, and python is what I want (they say this, but I thought it would do something other than just ignore my desire for python).  So install swig, and use the CMake GUI tool to make sure that your SWIG_DIR is set correctly.</li><li>Couldn't find my Python.h file.  Since I had installed my python using darwinports, my Python.h isn't really where it was looking.  I fixed this by editing the CMakeCache.txt to change PYTHON_INCLUDE_PATH:PATH=/sw/include/python2.5.  If your swig stuff is complaining about no Python.h (but you have one), find your Python.h and change this line in CMakeCache.txt.  There's probably a more elegant solution, but this worked.</li><li>For some reason CMake was pointing to the wrong SDK on my system (.  It wanted to use the 1.4u version, but I've got 1.5, so I changed /Developer/SDKs/MacOSX10.4u.sdk to /Developer/SDKs/MacOSX10.5.sdk using the CMake GUI.</li><li>Couldn't find my resulting opencv library.  I copied it to the /Library/Python path.</li><li>I wanted to make sure it installed all of the examples, so I selected them using hte CMake GUI utility.</li></ul>Note that I did try the darwinports version, and lost a couple of hours trying to figure out how to get the python piece of that to work on my system.  I don't suggest that path.</div><div><br /></div><div>I am pleased to report that now the python examples (at least) work on my system.  Including the houghlines.py which I needed to do the actual task ahead of me.  So, hurray.</div><div><br /></div><div>I decided that to implement a houghcircles example I should really get the C code examples working, and thanks to the helpful instructions <a href="http://wiki.nuigroup.com/Installing_OpenCV_on_Mac_OS_X">here</a> I was able to do it easily. Follow those instructions and then you'll be able to compile and run all of the C example files (and make your own, and run them too!)</div><div><br /></div><div>So I wrote a houghcircles example using some of the example code from the opencv book, and it works, kinda.  Pretty well I think, for just futzing around for an evening:</div><div><br /></div><div><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-size: 14px; white-space: pre-wrap;"><br /></span></div>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="screenshot.jpg" src="http://www.princesspolymath.com/princess_polymath/screenshot.jpg" width="320" height="222" class="mt-image-none" style="" /></span><div><br /></div><div>Someone wrote to me about this blog post and said they were having some trouble with using the iSight for video input.  I discovered I was having the same problem.  The answer, gleaned from various places on the internets, was to unset DYLD_LIBRARY_PATH in my environment.  Confuses the heck out of openCV.  Which is kind of a problem because ROS requires it, at least to build.  So if you get weird library missing/wrong errors, unset that bad boy and see if it helps.</div>]]>
        
    </content>
</entry>

<entry>
    <title>Python Netflix API</title>
    <link rel="alternate" type="text/html" href="http://www.princesspolymath.com/princess_polymath/2009/02/python-netflix-api.html" />
    <id>tag:www.princesspolymath.com,2009:/princess_polymath//1.186</id>

    <published>2009-02-19T04:39:14Z</published>
    <updated>2009-02-19T04:40:53Z</updated>

    <summary>I was having some fun poking around at the Netflix API, and realized that there wasn&apos;t a Netflix module for python, so I put one together.  First version is up at http://code.google.com/p/pyflix. Has installable code, an example file, and a py.test...</summary>
    <author>
        <name>Synedra</name>
        
    </author>
    
    <category term="pythonnetflix" label="python netflix" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.princesspolymath.com/princess_polymath/">
        <![CDATA[I was having some fun poking around at the Netflix API, and realized that there wasn't a Netflix module for python, so I put one together.  First version is up at <a href="http://code.google.com/p/pyflix">http://code.google.com/p/pyflix</a>. Has installable code, an example file, and a py.test compatible test file.]]>
        
    </content>
</entry>

<entry>
    <title>Tummy update</title>
    <link rel="alternate" type="text/html" href="http://www.princesspolymath.com/princess_polymath/2009/02/tummy-update.html" />
    <id>tag:www.princesspolymath.com,2009:/princess_polymath//1.185</id>

    <published>2009-02-10T18:37:49Z</published>
    <updated>2009-02-10T18:46:28Z</updated>

    <summary>When last we left my intrepid tummy, we were headed to the gastro doc to talk about why it was so sad.  She decided I should have a colonoscopy to make sure my intestines weren&apos;t problematic, and a CAT scan...</summary>
    <author>
        <name>Synedra</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://www.princesspolymath.com/princess_polymath/">
        <![CDATA[When last we left my intrepid tummy, we were headed to the gastro doc to talk about why it was so sad.  She decided I should have a colonoscopy to make sure my intestines weren't problematic, and a CAT scan to make sure my pancreas wasn't puffy.  So, after finishing my 3 weeks of the elimination diet, I spent a day drinking barium for the cat scan, and then later that week I spent a day eating clear liquids for the colonoscopy.<div><br /></div><div>Verdict: My pancreas is fine.  My intestines did have a flat polyp which she removed (hurray!)  No crohn's, no other problems.</div><div><br /></div><div>So, we're left with the likely problem of Small Intestine Bacterial Overgrowth.  I've done some research on this and I've found a program that seems to really be working. So, anyone in a similar situation can take heed and see if something like this will help you too:</div><div><br /></div><div><ul><li>Enteric-coated peppermint oil.  This stuff is awesome.  It kills bacteria in your small intestine and reduces gas and bloating.  3x/day.  I'm gonna take this for a month and then switch to building up my flora, because I'm guessing the peppermint oil isn't smart enough to distinguish between "good flora in the large intestine" and "misguided flora in the small intestine"</li><li>Much less crap.  I'm trying to keep myself to foods which are as close to whole as possible.  I know, duh, but really, this is making a huge difference.  I'm making bread in my breadmaker almost every morning, making dinners from actual ingredients, avoiding foods that tend to cause acidity in your system.  I noticed that eating more <a href="http://www.greatestherbsonearth.com/articles/acid_alkaline.htm">alkaline-causing foods</a> made my body happier so I'm working on that.  Note that artificial sweeteners are the acidest foods of all.</li><li>UltraClear Ph.  This is medical food that helps keep your Ph in the right place.  And it seems to help my system be happy.</li></ul><div>So much success I'm having on this plan that two days ago I WORE PANTS for the first time in 3 years.  And didn't have to take them off from uncomfortable bloating.</div></div>]]>
        
    </content>
</entry>

<entry>
    <title>Yet Another Way for the BSA to Discriminate</title>
    <link rel="alternate" type="text/html" href="http://www.princesspolymath.com/princess_polymath/2009/01/yet-another-way-for-the-bsa-to.html" />
    <id>tag:www.princesspolymath.com,2009:/princess_polymath//1.184</id>

    <published>2009-01-15T16:30:31Z</published>
    <updated>2009-01-16T19:38:19Z</updated>

    <summary>My friend has been a boy scout leader for years.  She doesn&apos;t have any children, but she and her husband are active scout leaders nonetheless, giving their support and guidance to kids because they enjoy it, and because they are...</summary>
    <author>
        <name>Synedra</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://www.princesspolymath.com/princess_polymath/">
        <![CDATA[My friend has been a boy scout leader for years.  She doesn't have any children, but she and her husband are active scout leaders nonetheless, giving their support and guidance to kids because they enjoy it, and because they are good people.<div><br /></div><div>My friend has lost a lot of weight and goes to boot camp and bikram yoga regularly.  She did the Danskin triathlon with me last year.  She could almost certainly pass whatever fitness test the BSA threw at her to prove she's able to survive in the severe conditions present at a Boy Scout Camping event.</div><div><br /></div><div>The BSA has just updated their guidelines for their leaders.  According to the chart they have, unless she loses weight to meet an arbitrary standard, she will no longer be able to participate in remote or strenuous boy scout events, and the organization strongly suggests that she not be able to participate in *ANY* boy scout event. If their goal is to provide the boys with a good role model, a larger person who is active and healthy is a much better role model than a normal weight person who smokes, or drinks, or just plain doesn't exercise.  I would take her as a leader for my den in a heartbeat - she is a smart, moral, and fit person who embodies the values I'd like my son to strive for.</div><div><br /></div><div>I hope that someone sues the Boy Scouts over this.  It is pure discrimination with no reasonable defense.  I will have to consider strongly whether my son should continue in an organization which believes that they can judge his moral worth based on his belt size - or the belt size of his leaders.  I realize that the Boy Scouts are a private organization, but this kind of ignorant elitism is unacceptable.  If you want to make sure that people are fit to camp, test them.  The results might surprise you.  The only reason for this particular decision has to be that someone in BSA headquarters doesn't want their organization associated with overweight people.  Pure, unadulterated, bigotry.</div><div><br /></div><div>If you'd like to see the new health form yourself you can see <a href="http://www.scouting.org/filestore/pdf/34605_Letter.pdf">it on their website.</a>  The precise wording is "Individuals desiring to participate in any high-adventure activity or events in which emergency evacuation would take longer
than 30 minutes by ground transportation will not be permitted to do so if they exceed the weight limit as documented at the
bottom of this page. Enforcing the height/weight limit is strongly encouraged for all other events, but it is not mandatory."</div><div><br /></div>]]>
        
    </content>
</entry>

<entry>
    <title>The Trials and Tribulations of my Tummy</title>
    <link rel="alternate" type="text/html" href="http://www.princesspolymath.com/princess_polymath/2009/01/the-trials-and-tribulations-of.html" />
    <id>tag:www.princesspolymath.com,2009:/princess_polymath//1.183</id>

    <published>2009-01-03T00:38:23Z</published>
    <updated>2009-01-03T00:56:58Z</updated>

    <summary>My GI tract has been doing some super weird things over the last couple of years.  When I eat pretty much anything, my stomach puffs up by 5 inches, and it gets totally hard.  My answer to this conundrum up...</summary>
    <author>
        <name>Synedra</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://www.princesspolymath.com/princess_polymath/">
        <![CDATA[My GI tract has been doing some super weird things over the last couple of years.  When I eat pretty much anything, my stomach puffs up by 5 inches, and it gets totally hard.  My answer to this conundrum up until now has been to only wear skirts, and only skirts with elastic waistbands, but it occurred to me that perhaps I should mention this to my doctor.   So I did, which started me on a super fun game called "What the heck is wrong with this system, anyhow?"<div><br /></div><div>The first thing I did was a CDSA test, which indicated that I have a lot of inflammation markers in my gut.  This can be caused by a wide range of things, including Celiac, other food sensitivities, an infection, or cancer.  Also, my happy bacteria were completely missing, which wouldn't be totally weird, except that I've been taking probiotics filled with them for a few months, so somehow they're getting gobbled up and not colonizing.    And I had some little benign amoebas taking up residence.</div><div><br /></div><div>So then we did a celiac test.  Negative.  That's good, I guess, although at this point I'd rather have that than some of the other options.  I took Flagyl for a few days to kill the amoebas (in case maybe they weren't benign, and were causing the problems).  It almost killed me, so I begged off of that for now.</div><div><br /></div><div>Next stop, Elimination Diet.  So this week I started my 3-week diet with no corn, wheat, soy, milk, eggs, red meat, caffeine, sugar, peanuts... pretty much nothing.  I'm glad I'm on vacation this week while I get started with this, and I'm happy to say that I'm almost through day 5 and am still alive. I just finished a pretty decent lunch - homemade turkey chili over roasted potatoes, with slices of avocado on top.  My life became a lot better when I figured out how to make a pretty decent representation of a rice crispy treat with brown rice syrup, almond butter, vanilla, and brown rice crispy cereal.  I got to take those to the movies, and they were a perfect snacky treat.  </div><div><br /></div><div>In a couple of weeks I'll be visiting the gastroenterologist, to see what she thinks about this whole thing.  My tummy isn't getting all that much better, but I'm going to go through this for 3 weeks so we know if it helps or not.  As long as I have my rice crispy treats, I think it'll be ok.</div><div><br /></div>]]>
        
    </content>
</entry>

<entry>
    <title>Finding people on Twitter</title>
    <link rel="alternate" type="text/html" href="http://www.princesspolymath.com/princess_polymath/2008/11/finding-people-on-twitter.html" />
    <id>tag:www.princesspolymath.com,2008:/princess_polymath//1.182</id>

    <published>2008-11-30T17:05:38Z</published>
    <updated>2008-11-30T17:37:41Z</updated>

    <summary>After I got my new sidebar widget working, I thought I&apos;d go and see if any more of my friends were listed on Twitter, and discovered to my chagrin that they have elected to remove the &quot;search for people&quot; function...</summary>
    <author>
        <name>Synedra</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://www.princesspolymath.com/princess_polymath/">
        <![CDATA[After I got my new sidebar widget working, I thought I'd go and see if any more of my friends were listed on Twitter, and discovered to my chagrin that they have elected to remove the "search for people" function on Twitter.  It's been replaced by an "Allow Twitter to Rifle Your Rolodex" function where it looks to see if anyone you know is on twitter - and then does the super annoying Facebook-like list of everyone who isn't enTwittered yet - "These losers haven't signed up yet.  Spam them for us!"  Yeah, no.  <div><br /></div><div>Two third party folks have made cool applications to replace this functionality.  Neither is perfect (and they're both pretty overwhelmed), but they're better than nothing.  You can find people with the name of &lt;whatever> at <a href="http://www.twitterdir.com">twitterdir</a>, and you can find friends-of-friends at <a href="http://crazybob.org/twubble/">twubble</a>.  I had a lot of fun futzing with the latter this morning.</div><div><br /></div><div>Your other alternative is to google "site:twitter.com Kirsten Jones"</div><div><br /></div><div>Note that if you play with twubble for too long, Twitter will throttle you, and you'll end up with no functionality for your cool sidebar widget thing for an hour while you contemplate the error of your ways. </div>]]>
        
    </content>
</entry>

<entry>
    <title>Twitter badge with location</title>
    <link rel="alternate" type="text/html" href="http://www.princesspolymath.com/princess_polymath/2008/11/twitter-badge-with-location.html" />
    <id>tag:www.princesspolymath.com,2008:/princess_polymath//1.181</id>

    <published>2008-11-24T22:45:05Z</published>
    <updated>2008-11-25T18:19:09Z</updated>

    <summary>In my job as an elf for Santa, I frequently have to travel back to the North Pole to visit with my fellow elves, so it&apos;s not always easy to tell where I might be.  Given that fact, and my...</summary>
    <author>
        <name>Synedra</name>
        
    </author>
    
        <category term="Geek Stuff" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-US" xml:base="http://www.princesspolymath.com/princess_polymath/">
        <![CDATA[In my job as an elf for Santa, I frequently have to travel back to the North Pole to visit with my fellow elves, so it's not always easy to tell where I might be.  Given that fact, and my desire to procrastinate a bit, I decided to make a handy badge for my blog that tells people where I am.  Most twitter clients allow you to throw some location information in your posts, so it's relatively easy to make it relatively easy for someone to stalk you.<div><br /></div><div>So, I started with this excellent <a href="http://blog.pinkandyellow.com/css/create-a-twitter-box-in-your-sidebar-20081106/">post</a> describing how to make a basic twitter (Javascript/HTML) badge.  That page has some handy information on how to set up a badge with no location, and if you don't want location, you should probably follow his guide.  But if you want to add in some location information as well, then here's the info you need.</div><div><br /></div><div>First, you'll need to create a local Javascript file to do your evil bidding.  I plopped mine in my mt-static directory (because I use Movable Type) but you can put it in any static spot on your server.  You can grab mine <a href="http://www.princesspolymath.com/mt-static/test.js">here</a>.</div><pre></pre>
Now that you've got that put on your server, you just need to put some code in your blog template (wherever your other badge stuff is) to get your fabulous information to show up.  The code for the HTML looks yucky in my post, but you can view source and grab the stuff marked as "TWITTER".

<div><br /></div><div>The last piece is styling your box.  I have mine styled so that it matches the rest of my site, but you can make yours work however you like.</div><div><br /></div>

<pre>#twitter_div {
	border-bottom-style: solid;
	border-bottom-width: 1px;
        margin-bottom: 10px;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.9em;
	padding-right: 5px;
	padding-left: 5px;
        text-decoration: none;
}

#twitter_location {
        margin-left: 25px;
        text-decoration: none;
        margin-bottom: 10px;
}
 
#twitter_div ul li {
	text-decoration: none;
	border-bottom-style: solid;
	border-bottom-width: 1px;
        padding-bottom: 5px;
        margin-bottom: 5px;
}
 
#twitter_div p {
	text-align: right;
	padding-right: 6px;
	margin-bottom: 10px;
}
</pre>]]>
        
    </content>
</entry>

<entry>
    <title>Hadoop and AWS and Python, Oh My!</title>
    <link rel="alternate" type="text/html" href="http://www.princesspolymath.com/princess_polymath/2008/10/hadoop-and-aws-and-python-oh-m.html" />
    <id>tag:www.princesspolymath.com,2008:/princess_polymath//1.180</id>

    <published>2008-10-30T20:13:35Z</published>
    <updated>2008-10-31T19:12:57Z</updated>

    <summary>For an upcoming project at work, I needed to get a better idea of how the AWS services work together, and wanted to also see how the EC2 instances could be used for parallel processing.  Sadly, I do not love...</summary>
    <author>
        <name>Synedra</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://www.princesspolymath.com/princess_polymath/">
        <![CDATA[For an upcoming project at work, I needed to get a better idea of how the <a href="http://aws.amazon.com/">AWS</a> services work together, and wanted to also see how the EC2 instances could be used for parallel processing.  Sadly, I do not love Java, and although I would use it if pressed, I wanted to see if I could find a pythony way to process some data using a hadoop setup.<div><br /></div><div>So, based on <a href="http://www.michael-noll.com/wiki/Writing_An_Hadoop_MapReduce_Program_In_Python">this page</a>, I created a mapper and reducer in python. The mapper looks through a file and spits out lines for each match it finds.  The reducer takes the stdout from that process (using hadoop streaming) and does the thinking, then spits out the result. The examples on that page are a fine place to start for this piece.  And you can time the process on your system here to get an idea of the speedup using the hadoop setup.</div><div><br /></div><div>Next, I needed to get the files over to S3 so I can access them from my EC2 instance.  S3 instances are persistent, and transfers between S3 and EC2 are free, so I can run my processes an infinite number of times without incurring new costs for grabbing the files.  First, I created a bucket using the Python S3 tools, and then copied the files over using:</div><div><div><br /></div><div><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: verdana; font-size: 12px; -webkit-border-horizontal-spacing: 3px; -webkit-border-vertical-spacing: 3px; "><pre style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: 'Courier New', Courier, mono; font-size: 12px; background-color: rgb(239, 247, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-color: rgb(51, 51, 51); border-right-color: rgb(51, 51, 51); border-bottom-color: rgb(51, 51, 51); border-left-color: rgb(51, 51, 51); overflow-x: auto; overflow-y: auto; width: 600px; padding-top: 15px; padding-right: 10px; padding-bottom: 15px; padding-left: 10px; "><span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: arial; font-size: 13px; white-space: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; "><code>hadoop fs -put &lt;file> s3://ID:SECRET@BUCKET/name_of_dir</code></span></pre></span></div></div><br />There are, of course, other ways to move things to S3 buckets.  Pick one you like.<br /><div><br /></div><div>Now that all of my files are there for accessing, it's time to set up the hadoop instance.  </div><div><br /></div><div>This part isn't included in toto anywhere, so I'll cover it here in detail.  This assumes you've done all of:</div><div><ul style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1em; font-weight: normal; margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 20px; background-repeat: repeat-y; list-style-type: disc; list-style-position: outside; list-style-image: initial; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1em; font-weight: normal; ">Set up yourself with an AWS account with EC2 and S3 access (including setting up a properly permissioned id_rsa-gsg-keypair as described <a href="http://docs.amazonwebservices.com/AWSEC2/2007-08-29/GettingStartedGuide/running-an-instance.html" style="text-decoration: underline; ">here</a>)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1em; font-weight: normal; ">Created a bucket in S3 and populated it with files</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1em; font-weight: normal; ">Created a mapper.py and reducer.py and tested them with your files</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1em; font-weight: normal; ">Installed the hadoop tools on your local system and configured them as described <a href="http://wiki.apache.org/hadoop/AmazonEC2" style="text-decoration: underline; ">here</a></li></ul></div><div>Next, even though every piece of documentation says to do this:</div><div><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: verdana; font-size: 12px; -webkit-border-horizontal-spacing: 3px; -webkit-border-vertical-spacing: 3px; "><pre style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: 'Courier New', Courier, mono; font-size: 12px; background-color: rgb(239, 247, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-color: rgb(51, 51, 51); border-right-color: rgb(51, 51, 51); border-bottom-color: rgb(51, 51, 51); border-left-color: rgb(51, 51, 51); overflow-x: auto; overflow-y: auto; width: 600px; padding-top: 15px; padding-right: 10px; padding-bottom: 15px; padding-left: 10px; ">bin/hadoop-ec2 run</pre></span></div><div><br /></div>
That's a lie.  Try this instead:<div><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: verdana; font-size: 12px; -webkit-border-horizontal-spacing: 3px; -webkit-border-vertical-spacing: 3px; "><pre style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: 'Courier New', Courier, mono; font-size: 12px; background-color: rgb(239, 247, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-color: rgb(51, 51, 51); border-right-color: rgb(51, 51, 51); border-bottom-color: rgb(51, 51, 51); border-left-color: rgb(51, 51, 51); overflow-x: auto; overflow-y: auto; width: 600px; padding-top: 15px; padding-right: 10px; padding-bottom: 15px; padding-left: 10px; ">bin/hadoop-ec2 launch-cluster &lt;group_name> &lt;number_of_slaves></pre></span></div><div><br /></div>
This will create a master hadoop node, and your slaves. For number_of_slaves you want to pick something &lt;= 19 so that your total doesn't exceed 20 (unless you have special privileges).<div><br /></div>Now we have to move our snazzy mapper and reducer to the master:<div><br /></div><div><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: verdana; font-size: 12px; -webkit-border-horizontal-spacing: 3px; -webkit-border-vertical-spacing: 3px; "><pre style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: 'Courier New', Courier, mono; font-size: 12px; background-color: rgb(239, 247, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-color: rgb(51, 51, 51); border-right-color: rgb(51, 51, 51); border-bottom-color: rgb(51, 51, 51); border-left-color: rgb(51, 51, 51); overflow-x: auto; overflow-y: auto; width: 600px; padding-top: 15px; padding-right: 10px; padding-bottom: 15px; padding-left: 10px; ">bin/hadoop-ec2-env.sh
scp $SSH_OPTS /path/to/mapper.py root@$MASTER_HOST:/home
scp $SSH_OPTS /path/to/reducer.py root@$MASTER_HOST:/home</pre></span></div><div><br /></div>'run' apparently used to then log you into your master, but since we're using launch-cluster, you'll need to do it yourself:<div><br /></div><div><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: verdana; font-size: 12px; -webkit-border-horizontal-spacing: 3px; -webkit-border-vertical-spacing: 3px; "><pre style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: 'Courier New', Courier, mono; font-size: 12px; background-color: rgb(239, 247, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-color: rgb(51, 51, 51); border-right-color: rgb(51, 51, 51); border-bottom-color: rgb(51, 51, 51); border-left-color: rgb(51, 51, 51); overflow-x: auto; overflow-y: auto; width: 600px; padding-top: 15px; padding-right: 10px; padding-bottom: 15px; padding-left: 10px; ">ssh $SSH_OPTS root@&lt;your_new_master></pre></span></div><div><br /></div>
And there you are!  On your new master.  Awesome.  Now let's move the data to our cluster (ID and SECRET are your AWS credentials, BUCKET is the bucket you created):

<div><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: verdana; font-size: 12px; -webkit-border-horizontal-spacing: 3px; -webkit-border-vertical-spacing: 3px; "><pre style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: 'Courier New', Courier, mono; font-size: 12px; background-color: rgb(239, 247, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-color: rgb(51, 51, 51); border-right-color: rgb(51, 51, 51); border-bottom-color: rgb(51, 51, 51); border-left-color: rgb(51, 51, 51); overflow-x: auto; overflow-y: auto; width: 600px; padding-top: 15px; padding-right: 10px; padding-bottom: 15px; padding-left: 10px; ">cd /usr/local/hadoop-<em>&lt;version></em>
bin/hadoop fs -mkdir files
bin/hadoop distcp s3://<em>&lt;ID></em>:<em>&lt;SECRET></em>@<em>&lt;BUCKET></em>/path/to/files files</pre></span></div><div><br /></div>

Ok, great. Almost there.  Now we need to run the thing:<div><div><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: verdana; font-size: 12px; -webkit-border-horizontal-spacing: 3px; -webkit-border-vertical-spacing: 3px; "><pre style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: 'Courier New', Courier, mono; font-size: 12px; background-color: rgb(239, 247, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-color: rgb(51, 51, 51); border-right-color: rgb(51, 51, 51); border-bottom-color: rgb(51, 51, 51); border-left-color: rgb(51, 51, 51); overflow-x: auto; overflow-y: auto; width: 600px; padding-top: 15px; padding-right: 10px; padding-bottom: 15px; padding-left: 10px; ">hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop jar contrib/streaming/hadoop-0.18.0-streaming.jar -mapper mapper.py -file /home/mapper.py -reducer reducer.py -file /home/reducer.py -input files/* -output map-reduce.output</pre></span></div></div>

While it's running, you can check out the neat web report hadoop creates at http://&lt;server_name>:50030.  Go ahead, check it out.  It's totally cool.]]>
        
    </content>
</entry>

<entry>
    <title>Hacking on Freebase</title>
    <link rel="alternate" type="text/html" href="http://www.princesspolymath.com/princess_polymath/2008/10/hacking-on-freebase.html" />
    <id>tag:www.princesspolymath.com,2008:/princess_polymath//1.179</id>

    <published>2008-10-23T15:38:45Z</published>
    <updated>2008-10-23T15:53:10Z</updated>

    <summary>Today, fighting a cold, I&apos;m hacking in a totally unattractive way.  I&apos;d love to redeem my hacking status by heading up to the Freebase Hack Day in a couple of weeks, but unfortunately that&apos;s the week I&apos;ll be visiting my...</summary>
    <author>
        <name>Synedra</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://www.princesspolymath.com/princess_polymath/">
        <![CDATA[Today, fighting a cold, I'm hacking in a totally unattractive way.  I'd love to redeem my hacking status by heading up to the <a href="http://blog.freebase.com/2008/10/21/freebase-hack-day-signups-are-open/">Freebase Hack Day</a> in a couple of weeks, but unfortunately that's the week I'll be visiting my corporate masters in Southern California.  Don't worry, I already sent in my absentee vote.  Democracy is still safe in our great nation.<div><br /></div><div>For anyone else who has any ability to go spend a day, or even a few hours, at the Metaweb offices in San Francisco, I highly recommend going.  <a href="http://www.freebase.com">Freebase</a> has always been a cool platform, but it's suffered somewhat from being overwhelming and difficult to approach.  The team is about to roll out <a href="http://blog.freebase.com/2008/04/30/previewing-acre-a-freebase-app-builder/">Acre</a>, a new application development platform, which makes it easy to create new applications and new ways to play with the content.  I hope to have time to play with Acre soon myself, because my brief introduction to it was really intriguing.  One of the things I love best about it is that it allows you to discover new things about the content you already know.  Connections between things, similarities (and lack thereof!).  Check out the video to get a better idea of how it works... </div><div><br /></div><div>The data in Freebase is growing continually, and is already far too big to really understand as a whole.  Creating windows into this data, or different ways to understand it, is one of those cases where it's almost more fun to create the solution than it is to come up with the problem.  So take this great opportunity to get yourself some interesting company, a t-shirt, free food, and time to play with some excellent toys.</div>]]>
        
    </content>
</entry>

<entry>
    <title>Shameful Kindle Love</title>
    <link rel="alternate" type="text/html" href="http://www.princesspolymath.com/princess_polymath/2008/10/shameful-kindle-love.html" />
    <id>tag:www.princesspolymath.com,2008:/princess_polymath//1.178</id>

    <published>2008-10-15T22:33:17Z</published>
    <updated>2008-10-15T22:34:01Z</updated>

    <summary>Hi. My name is Kirsten, and I&apos;m a gadgetaholic. My drug of choice generally comes from that shady company just over the hill from me in Cupertino. I have had 5 (or is it 6) iPods, not counting two iPhones....</summary>
    <author>
        <name>Synedra</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://www.princesspolymath.com/princess_polymath/">
        <![CDATA[<span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: georgia; font-size: 14px; line-height: 18px; "><p style="border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; margin-top: 18px; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; line-height: 18px; ">Hi. My name is Kirsten, and I'm a gadgetaholic. My drug of choice generally comes from that shady company just over the hill from me in Cupertino. I have had 5 (or is it 6) iPods, not counting two iPhones. I've had umpteen mac laptops, a mini, a time machine... pretty much, they make it, I buy it. It's fair to say, then, that my design sense has a bent toward a certain aesthetic. I appreciate gadgets which try to magically know what I want. I'm willing to pay extra to avoid Microsoftian clumsiness in my day. So how, then, could I possibly like the <a href="http://www.amazon.com/gp/product/B000FI73MA?ie=UTF8&amp;tag=triathalongwi-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B000FI73MA" style="border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; color: rgb(13, 41, 128); text-decoration: none; ">Kindle</a><img src="http://www.assoc-amazon.com/e/ir?t=triathalongwi-20&amp;l=as2&amp;o=1&amp;a=B000FI73MA" alt="" width="1" height="1" style="border-width: initial !important; border-color: initial !important; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; " />?</p><p style="border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; margin-top: 18px; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; line-height: 18px; ">The Kindle is a gadget unlike other 'e-readers'. When I asked to get one for my birthday last year, I wanted it because (erudite person that I am) I thought I would enjoy being able to read periodicals on this device, that it would increase the percentage of "grown-up" reading I did as a result - and that I wouldn't enjoy reading actual books on it at all. A second to redraw the page? I couldn't imagine relaxing with a book that had that kind of lag.</p><p style="border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; margin-top: 18px; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; line-height: 18px; ">Then I got the Kindle, and I spent some time getting to know it. Yes, it's ugly and clumsy, in a warty orc kind of way. Tossing out the silly black tote-around cover helped a lot, but it stubbornly retained its "I'm a prototype" flung-together aesthetic. Other than the forward/back buttons, the interface is really pretty primitive. Everyone who picks it up accidentally changes the page forward or back... in fact, you can accidentally move forward in your book 20 pages just by tucking it under your arm to fish for something in your purse. The keyboard is clunky and not very responsive, and nobody ever gets the scroll wheel until you point it out to them.</p><p style="border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; margin-top: 18px; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; line-height: 18px; ">But I confess I love the little guy. Once you figure out what that little scrolly wheel can do, it's pretty keen, and the shiny indicator is really cute. The ability to get books wherever you are, without tethering the Kindle (and you) to your computer, is amazingly useful.  While I love reading pretty much everywhere, books tend to present you with annoying ergonomic challenges. Holding the book open to the right page with one hand is something we've all mastered, and we've all found little tricks to help us with that part (edge of the dinner plate, anyone?). Turning the page, however, always requires some amount of negotiation with the book. Whatever else you're trying to do while you read, every minute or so you need to recruit your other hand to help with the turning of the page, and that's really a lot more annoying than you realize. I only know this now because the Kindle removes that annoyance. I settle into a comfortable position for reading and turning the page is a no-op (other than the delay, which turns out to be not that big a deal).</p><p style="border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; margin-top: 18px; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; line-height: 18px; ">As far as reading periodicals and being a well-informed intellectual, I'm afraid that I haven't actually become a more erudite person. While the magic updates are great, the periodicals themselves are more difficult to scan in Kindle form than they are in paper-printed form. I can't glance at the paper and know all of the stuff from the front page. I don't want to plod through three different pages of headlines to know what's going on in the world, particularly not these days. 10 seconds is pretty much all I can stand to devote to absorbing our current situation before I'm ready to dive deeper or head to greener subjects.</p><p style="border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; margin-top: 18px; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; line-height: 18px; ">So what do I actually *read* on the Kindle? Books! I love reading books on the Kindle. I can download the first couple of chapters of a book someone suggests for free and decide if I want to read the rest. I can grab free books from the Gutenberg project and read *them* (sadly, so far this has fallen into the category of "things I haven't really done yet" even though I did get Sense and Sensibility on my Kindle for reading). I particularly love that I can be reading the 7th book in a series, get to the end and then summon the next one immediately for me to read. I can read outside in full sunlight without getting a migraine from the glare of bright-white paperback pages. When I'm reading late at night, and my eyes get droopy, I can make the text bigger and get through a couple more chapters before I fall asleep. While I also have some textbooks and non-fiction books on there, the majority of my Kindle time is spent reading fluffy novels. </p><p style="border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; margin-top: 18px; margin-right: 0px; margin-bottom: 18px; margin-left: 0px; line-height: 18px; ">Still, I'm not completely blinded by my love for this little guy. I can't borrow books on the Kindle and then return them. I'd like to be able to do that - I don't actually *need* to be able to access books I've read forever and ever once I've read them, with very few exceptions. A subscription service would be swell, sure, but I'd really just prefer that Amazon adopt the itunes rental model and rent me a book for 2 weeks for 20% of the price of the book. Or let me trade my Kindle books with other people. But even with these drawbacks, the Kindle is one of my favorite gadgets.</p></span> ]]>
        
    </content>
</entry>

<entry>
    <title>Projecting and Reacting</title>
    <link rel="alternate" type="text/html" href="http://www.princesspolymath.com/princess_polymath/2008/10/projecting-and-reacting.html" />
    <id>tag:www.princesspolymath.com,2008:/princess_polymath//1.177</id>

    <published>2008-10-11T14:10:59Z</published>
    <updated>2008-10-13T17:06:14Z</updated>

    <summary>The human condition is such that it&apos;s very difficult for us to avoid projecting our emotions on other people, using our stress to paint their words into something that amplifies what we&apos;re feeling.  It&apos;s an unfair tendency, and extremely difficult...</summary>
    <author>
        <name>Synedra</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://www.princesspolymath.com/princess_polymath/">
        <![CDATA[<div>The human condition is such that it's very difficult for us to avoid projecting our emotions on other people, using our stress to paint their words into something that amplifies what we're feeling.  It's an unfair tendency, and extremely difficult to avoid.  The stronger the emotion, the more powerful the projection, and the more likely we are to put ourselves (and those other people) into difficult positions.</div><div><br /></div>For the last several months, I've been working incredibly hard on a project.  The project has had its ups and downs, and recently had a fairly serious crisis.  I was indirectly responsible for this crisis, and my boss spent a lot of time talking to me about how it had affected our credibility, and what we should do going forward.  While he was trying to encourage me to take a more sane stance going forward - make a reasonable schedule and keep it, I was feeling guilty about my culpability in the problem, and so I translated his words as "You're in the hole and you have to dig yourself out!"  So I made an impossible schedule (and hit my targets!) but was totally stressed, which distressed him greatly.  We finally talked about it and I realized that I had been projecting my fears/stress/guilt on him - a habit I try to avoid, but one which is so easy to slide into.  In this case, our discussion helped a great deal.  The schedule is well in hand, the customers are thrilled, but more importantly I am once again certain that my position is secure and I can take the time to do my job well.<div><br /></div><div>It's not just engineery girls who find themselves in this position, though.  McCain's supporters, right now, are angry and afraid - and the McCain campaign has allowed many of those supporters to rev themselves into a frenzy.  I'll note that McCain has never called Obama a terrorist, but these frightened supporters are projecting their fear/anger onto his words and blowing them way out of proportion.  I'm pleased to hear that McCain has started <a href="http://www.miamiherald.com/news/politics/AP/story/721688.html">talking those people down</a>.  We're already in a situation where people are terrified about the economy and our country - situations less dire than this have caused violent outbreaks in the past.  Adding terrorist fear to this climate, and attaching that to your opponent is not just bad manners - it's dangerous and stupid. Unfortunately, when the projection is happening on such a massive scale, it's much harder to sit down and clarify your position.  I think McCain has started to see this tactic spinning out of control, and I hope that he's strong enough to rein in his supporters.   </div>]]>
        
    </content>
</entry>

</feed>
