<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Chip's Technical Blog</title>
	<atom:link href="http://chip.kcubes.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://chip.kcubes.com</link>
	<description>Tech commentary of thoughts, challenges, how-to's, and the mundane.</description>
	<pubDate>Wed, 24 Sep 2008 02:14:08 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Another Macbook Pro Update</title>
		<link>http://chip.kcubes.com/2008/09/23/another-macbook-pro-update/</link>
		<comments>http://chip.kcubes.com/2008/09/23/another-macbook-pro-update/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 02:14:08 +0000</pubDate>
		<dc:creator>chip</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://chip.kcubes.com/?p=39</guid>
		<description><![CDATA[Just as a quick update, this afternoon I had another problem which isn&#8217;t &#8220;supposed to happen&#8221; in MacOS.  When I arrived home from school, my laptop was burning hot in my bag.  When I opened the screen, there was an error message telling me I needed to hard-power cycle my macbook by holding [...]]]></description>
			<content:encoded><![CDATA[<p>Just as a quick update, this afternoon I had another problem which isn&#8217;t &#8220;supposed to happen&#8221; in MacOS.  When I arrived home from school, my laptop was burning hot in my bag.  When I opened the screen, there was an error message telling me I needed to hard-power cycle my macbook by holding in the power button, because of an error.  It was a kernel panic, but the laptop was left in some continuous processing loop, with the fan spinning, but doing no good in my bag, while an unhelpful message was telling me to power cycle it.  So much for Mac&#8217;s &#8220;Just working&#8221;.  At least with other OSes, I expect such errors, and am very careful about making sure they aren&#8217;t happening.</p>
]]></content:encoded>
			<wfw:commentRss>http://chip.kcubes.com/2008/09/23/another-macbook-pro-update/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Macbook Pro Update</title>
		<link>http://chip.kcubes.com/2008/09/19/macbook-pro-update/</link>
		<comments>http://chip.kcubes.com/2008/09/19/macbook-pro-update/#comments</comments>
		<pubDate>Sat, 20 Sep 2008 02:29:42 +0000</pubDate>
		<dc:creator>chip</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://chip.kcubes.com/?p=38</guid>
		<description><![CDATA[So I&#8217;ve been using the MBP for a while now, and it&#8217;s still taking some getting used to.  It&#8217;s also still just &#8220;okay.&#8221; I wouldn&#8217;t say I&#8217;m overwhelmed with how much better it is than Windows.  
Moreover, I installed updates today, and upon reboot, found that a new icon was present in the [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve been using the MBP for a while now, and it&#8217;s still taking some getting used to.  It&#8217;s also still just &#8220;okay.&#8221; I wouldn&#8217;t say I&#8217;m overwhelmed with how much better it is than Windows.  </p>
<p>Moreover, I installed updates today, and upon reboot, found that a new icon was present in the menu bar.  And not just that, it gave me a nag message, asking me to sign up for MobileMe.  </p>
<p>I have to agree with the vast number of users writing complaints that this new &#8220;feature&#8221; was unrequested, unauthorized, and undesired.  (I won&#8217;t link to them here, but just a quick internet search will find them).  Tactics like this will probably renew my desire to be using an opensource OS on my laptop, and there is a reasonable chance I won&#8217;t stick with Mac when it comes time to get another new laptop.</p>
<p>Granted, I&#8217;ve ruled out Windows too, so I&#8217;m not sure what will be next.  Back to linux, and the headaches of not having powerpoint plus dealing with projectors?  Perhaps opensolaris?</p>
<p>As an aside - also after installing the updates, my trackpad stopped working until I powered the machine off and back on &#8212; another fix which is supposedly only supposed to happen on Windows.</p>
]]></content:encoded>
			<wfw:commentRss>http://chip.kcubes.com/2008/09/19/macbook-pro-update/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Macbook Pro</title>
		<link>http://chip.kcubes.com/2008/07/27/macbook-pro/</link>
		<comments>http://chip.kcubes.com/2008/07/27/macbook-pro/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 02:24:23 +0000</pubDate>
		<dc:creator>chip</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://chip.kcubes.com/?p=37</guid>
		<description><![CDATA[So after 28 years of never using a Mac, I now have one.  I got it for work, in my continuing endeavor to try new things on work computers.  My desktop will still be a linux PC, but my laptop is now a Macbook Pro.  I&#8217;ve only had it a few days, [...]]]></description>
			<content:encoded><![CDATA[<p>So after 28 years of never using a Mac, I now have one.  I got it for work, in my continuing endeavor to try new things on work computers.  My desktop will still be a linux PC, but my laptop is now a Macbook Pro.  I&#8217;ve only had it a few days, so I don&#8217;t have a lot of thoughts about it&#8212;though I still have an open mind.</p>
<p>Pros:<br />
- It looks shiny<br />
- With a massive amount of RAM, it runs quite smoothly<br />
- Better integration with X and native X open-source applications than achieved through Windows (and e.g. CygWin)</p>
<p>Cons:<br />
- Whole new keyboard with different buttons which do different things (will take time to get used to)<br />
- It hides what it&#8217;s doing even more than Windows, leaving the user to have no clue what&#8217;s happening behind the scenes<br />
- New multi-touch pad is different and doesn&#8217;t have a second mouse button<br />
- Did not come pre-installed with any games<br />
- I really miss the home and end keys.  What does exist for home and end are, first two-key combos, and second, they are more like a top-and-bottom.  I don&#8217;t yet know how to go to the beginning and ending of a dialog box I&#8217;m typing in.</p>
<p>So anyway, there are things I like and don&#8217;t like, but there&#8217;s a lot which I won&#8217;t know until I get used to it more.</p>
]]></content:encoded>
			<wfw:commentRss>http://chip.kcubes.com/2008/07/27/macbook-pro/feed/</wfw:commentRss>
		</item>
		<item>
		<title>It is finished.</title>
		<link>http://chip.kcubes.com/2008/06/06/it-is-finished/</link>
		<comments>http://chip.kcubes.com/2008/06/06/it-is-finished/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 01:15:14 +0000</pubDate>
		<dc:creator>chip</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://chip.kcubes.com/?p=36</guid>
		<description><![CDATA[I have defended my dissertation, and filed it with the University.  It&#8217;s formatting has been approved by the appropriate people, and the Dean of Graduate Studies has approved my final paperwork.  I believe that officially, I have now completed my Ph.D.  Graduation is June 22nd, and my parents, in-laws, and brother-in-law (and [...]]]></description>
			<content:encoded><![CDATA[<p>I have defended my dissertation, and filed it with the University.  It&#8217;s formatting has been approved by the appropriate people, and the Dean of Graduate Studies has approved my final paperwork.  I believe that officially, I have now completed my Ph.D.  Graduation is June 22nd, and my parents, in-laws, and brother-in-law (and of course Kristina) will all be in attendance as my advisor hoods me.</p>
<p>Now it is time for a few brief moments of relaxation and a vacation, then it&#8217;s time to move on and get started on my career.</p>
]]></content:encoded>
			<wfw:commentRss>http://chip.kcubes.com/2008/06/06/it-is-finished/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Destination: West Lafayette, Indiana</title>
		<link>http://chip.kcubes.com/2008/05/05/destination-west-lafayette-indiana/</link>
		<comments>http://chip.kcubes.com/2008/05/05/destination-west-lafayette-indiana/#comments</comments>
		<pubDate>Mon, 05 May 2008 19:03:43 +0000</pubDate>
		<dc:creator>chip</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://chip.kcubes.com/2008/05/05/destination-west-lafayette-indiana/</guid>
		<description><![CDATA[Well, to those of you following the job saga, it is now over (pending approval by the Provost).  After 2.5 months of interviewing all over the country, we have decided to accept a position in the Computer Science department at Purdue University.  None of the details are set yet, so don&#8217;t start asking [...]]]></description>
			<content:encoded><![CDATA[<p>Well, to those of you following the job saga, it is now over (pending approval by the Provost).  After 2.5 months of interviewing all over the country, we have decided to accept a position in the <a href="http://www.cs.purdue.edu/">Computer Science</a> department at <a href="http://www.purdue.edu">Purdue University</a>.  None of the details are set yet, so don&#8217;t start asking questions about when we&#8217;re moving or anything.  But sometime prior to August 18th (my start date at Purdue), we&#8217;ll be moving to the <a href="http://www.city.west-lafayette.in.us/home.html">West Lafayette, Indiana</a> area.  So when you find yourselves visiting Purdue, Indiana, Indianapolis, or Chicago, let us know!</p>
]]></content:encoded>
			<wfw:commentRss>http://chip.kcubes.com/2008/05/05/destination-west-lafayette-indiana/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Validating email addresses</title>
		<link>http://chip.kcubes.com/2008/04/21/validating-email-addresses/</link>
		<comments>http://chip.kcubes.com/2008/04/21/validating-email-addresses/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 01:19:04 +0000</pubDate>
		<dc:creator>chip</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://chip.kcubes.com/2008/04/21/validating-email-addresses/</guid>
		<description><![CDATA[As an early user of gmail, I was able to select precisely the username I wanted, ckillian, which is a very common username for people whose first name starts with &#8216;C&#8217; and whose last name is Killian.  Unfortunately, as often goes for popular shared services, there are many gmail users who fit those parameters. [...]]]></description>
			<content:encoded><![CDATA[<p>As an early user of gmail, I was able to select precisely the username I wanted, ckillian, which is a very common username for people whose first name starts with &#8216;C&#8217; and whose last name is Killian.  Unfortunately, as often goes for popular shared services, there are many gmail users who fit those parameters.  By itself, that wouldn&#8217;t be a problem, except that on occasion, these other gmail users seem to forget that ckillian is not their email address.  They will use it to buy tickets on ticketmaster, place beach house reservations, setup ipod accounts, request proprietary recipes from companies, purchase items from websites, and, most recently, even to use it to purchase online postage from the USPS.</p>
<p>The &#8220;best&#8221; part is when users are so convinced it is their address that they go through Google&#8217;s password recovery system to try to get my password.  This has happened 3 times so far.  (I know, because Google sends me a link to my email addresses to follow if I want to proceed in resetting my password.)  One truly intelligent user, after going through the password change system and failing, actually sent me an email asking if I would forward the information to her, which I was happy to do (on a temporary basis).</p>
<p>I recognize that for the users, this is generally an honest mistake (I get these receipts for a CXXXX Killian, and what&#8217;s obvious to me is that ckillian is there username for some other things, and they just got mixed up while entering the email address).  When I get such receipts, responses, etc., if there is a phone number listed for the user, I often make the attempt to phone them to let them know of their mistake.  But more often than not, there is no method shown to contact them with.  In these cases, I have two options: (1) ignore it, and hope I don&#8217;t get stuck on some mailing list, or (2) contact the seller/sender and let them know they are sending information to the wrong party.  Some vendors handle this well &#8212; the Apple store took care of it without hassle.  Others, like the USPS, take some convincing (at first they thought I was trying to commit fraud).  And then there are those like Ticketmaster, who I have simply given up on, because I can&#8217;t seem to get them to stop sending me junk even when I did setup the account (and diligently unchecked the boxes so I would not receive the junk).</p>
<p>This represents a fairly significant issue though, because for many of these services and sites, by going through a forgotten password dialog, I could have the password reset and emailed to my account, giving me access to their information and account, and possibly other information such as credit cards, or perhaps just the ability to purchase things using their credit cards.</p>
<p>And what frustrates me the most is that most of these sites have set up a kind of account based on this email address, without validating that the new user actually has access to the email address.  It&#8217;s one thing if you simply mistype an email and as a result a single receipt goes to the wrong email address.  It&#8217;s yet another if you are saving state for the user under this email address without validating it.  Most websites form of validation is just to have the user type it twice.  But we should know by now that user data cannot be trusted, and if we are going to store that kind of information, we really should validate the email address.</p>
<p>And it&#8217;s not even that hard to do so&#8212;mailing lists do this all the time.  When you subscribe, they send you an email for you to prove you have received before allowing your subscription to proceed.  All sites creating accounts should do the same.  I would much rather have gotten an email from the USPS telling me to validate someone else&#8217;s account (which I would not have) than gotten a receipt for a delivery confirmation postage for a particular person.</p>
<p>So to those of you developing websites which create accounts for email addresses &#8212; please, please, please validate these email addresses before storing them!</p>
]]></content:encoded>
			<wfw:commentRss>http://chip.kcubes.com/2008/04/21/validating-email-addresses/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Category: Programming (this week: swap and concept_check)</title>
		<link>http://chip.kcubes.com/2007/12/22/new-category-programming-this-week-swap-and-concept_check/</link>
		<comments>http://chip.kcubes.com/2007/12/22/new-category-programming-this-week-swap-and-concept_check/#comments</comments>
		<pubDate>Sat, 22 Dec 2007 11:53:22 +0000</pubDate>
		<dc:creator>chip</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://chip.kcubes.com/2007/12/22/new-category-programming-this-week-swap-and-concept_check/</guid>
		<description><![CDATA[I&#8217;m starting a new category for programming tips.  I jokingly referred to something as the C++ feature of the week (for Mace development) with one of our developers, and he responded that he needed to subscribe.  And it seemed like a good idea, so now I think I&#8217;ll start trying to blog about [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m starting a new category for programming tips.  I jokingly referred to something as the C++ feature of the week (for Mace development) with one of our developers, and he responded that he needed to subscribe.  And it seemed like a good idea, so now I think I&#8217;ll start trying to blog about these new features I learn about.</p>
<p>So to start it off, there are two C++ features of the week for this past week:</p>
<ol>
<li><b>STL collection swap.</b>  The C++ STL Collections contain a <code>swap()</code> method, which takes another collection (of the same type) as a parameter.   The method does what&#8217;s expected &#8212; to swap the one collection&#8217;s elements with the other.  What makes this an interesting function is that it does it in constant time.  It doesn&#8217;t require constructing, copying, or otherwise wasting time with the two collections.  It just does pointer copies of internal collection state.  To see how this is useful, consider these two cases I&#8217;ve applied this to:
<ul>
<li>Maps within maps.  In one case, a Mace programmer had a map from an int to a vector.  In this case, the int represented the number of things in the vector (admittedly, this is a bit of a simplification).  So, when removing something from the vector, you would remove the vector from the map, then re-add it with the new key.  (This is because for other good reasons, the key of a map entry cannot be changed).  Because of the cost of this removal and re-addition, the programmer had originally implemented this using pointers, which, while correct and efficient, gave some of our other tools problems, and so we wanted to re-write it without using pointers.  <code>swap()</code> made this possible.  To do the update, use this code:<br />
<code><br />
void removeElement(IntVectorMap&#038; ivmap, int size) {<br />
    IntVectorMap::iterator i = ivmap.find(size);<br />
    assert(i != ivmap.end());<br />
    i->second.pop_front();<br />
    ivmap[size-1].swap(i->second);<br />
    ivmap.erase(i);<br />
}<br />
</code><br />
This does involve a construction of a new collection, but moves the elements of the collection quite efficiently.  Since we will erase the original map entry, causing the old vector to cease to exist, the fact that it now holds no elements does not matter.
</li>
<li>
The second case was one where we wanted to iterate through a set, but other code might be adding things to the set at the same time.  To maintain code safety, we must not lose newly added things, so we can process them later.  The original design involved making a copy of the set, then clearing the original set, and iterating over the copy.  Once again, <code>swap()</code> is the right tool here too.<br />
<code><br />
void processSet(IntSet&#038; s) {<br />
    IntSet t;<br />
    t.swap(s);<br />
    for(IntSet::iterator i = t.begin(); ...) {<br />
       ...<br />
    }<br />
    if (!s.empty()) { processSet(s); }<br />
}<br />
</code><br />
As an added bonus, if you need to hold a lock to touch S, you can simply acquire the lock and do the switch, a very fast operation, the release the lock.
</li>
</ul>
</li>
<li><a href="http://www.boost.org/libs/concept_check/concept_check.htm"><b>boost::concept_check.</b></a>  We were updating our serialization code, but found that the compiler error messages on template errors are hard-to-decipher (to be generous).  These errors were caused by one of two problems in one of our cases.  First, we had added a new template parameter, and inserted it before some existing ones.  In code which hadn&#8217;t been updated though, if they provided the older optional template parameters, the compiler would get very confused, and report error messages which could not be deciphered, and pointed to lines of code which didn&#8217;t make any sense.  In the other error case, the default template parameter might not work with other types passed.  (Specifically, it was a parameter telling how to serialize a collection, and the collection elements might not have been serializable.)  This message was a little easier to decipher, complaining about types which could not be serialized, but still didn&#8217;t point to the right lines of code.
<p>Using boost&#8217;s concept check, we were able to help both of these problems.  In the first case, we wrote a base class for all valid parameters of the template, then used a concept check to make sure the template parameter was convertible to the base class.   Passing in the older parameter now would generate a shorter, easier to understand message, and the concept check library makes sure that the line of code makes sense.  In the second case, we had to write our own concept checker, which would essentially just write code that needed to be able to compile (in this case, instantiating the type, serializing it, and deserializing it).  Again, the concept_check library would make sure the error message was pointed to in the right place.
</li>
</ol>
<p>That&#8217;s all for this edition.  Watch the programming category if you want to see other programming tips.</p>
]]></content:encoded>
			<wfw:commentRss>http://chip.kcubes.com/2007/12/22/new-category-programming-this-week-swap-and-concept_check/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Server Cookies, and I don&#8217;t think they quite understand advertising&#8230;</title>
		<link>http://chip.kcubes.com/2007/12/06/server-cookies-and-i-dont-think-they-quite-understand-advertising/</link>
		<comments>http://chip.kcubes.com/2007/12/06/server-cookies-and-i-dont-think-they-quite-understand-advertising/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 15:14:37 +0000</pubDate>
		<dc:creator>chip</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://chip.kcubes.com/2007/12/06/server-cookies-and-i-dont-think-they-quite-understand-advertising/</guid>
		<description><![CDATA[I should start by explaining I regularly run my web browser with cookies disabled.  The reason is that I decided websites are tracking you too closely, and especially websites which you didn&#8217;t even know you were visiting.  For example, open up your cookie list.  (In firefox, this is: Tools->Options (under Windows, Edit->Preferences [...]]]></description>
			<content:encoded><![CDATA[<p>I should start by explaining I regularly run my web browser with cookies disabled.  The reason is that I decided websites are tracking you too closely, and especially websites which you didn&#8217;t even know you were visiting.  For example, open up your cookie list.  (In firefox, this is: Tools->Options (under Windows, Edit->Preferences under Linux), then Privacy->&#8221;Show Cookies&#8221;.  The questions to ask yourself are:</p>
<ol>
<li>How many of the sites listed do I even recognize?</li>
<li>Of the sites I do recognize, what do I want that site to remember about me the next time I visit?</li>
</ol>
<p>Cookies, you see, are files that a server gives to a web browser, and asks it to present them whenever they visit a set of pages on a set of sites.  Cookies have a number of legitimate uses, most notably to give the browser a &#8220;session&#8221; id.  The &#8220;session&#8221; id is used so the browser user can, e.g., log in, and have the server remember keep track of information related to the login.  (The other option, not using cookies, is to make the sessionid part of the URLs, which is both ugly, and more likely to be logged by third parties such as proxies and caches run by ISPs)</p>
<p>Then there are some arguably useful features of cookies.  For example, many online retailers will set a cookie identifying you at your browser, and recognize you immediately when you visit again (not for purchasing, but for welcoming, tracking the products you look at, so to remind you of past products you&#8217;ve visited and to suggest new products based on your viewing history.  I personally find that a little creepy, though I admit in some cases it can be valuable.  A few years ago, there were even reports of sites using cookies to do <a href="http://www.cnn.com/2005/LAW/06/24/ramasastry.website.prices/">Dynamic Pricing (story by CNN)</a>, a practice where sites change the prices based on information they keep about the customer.  There were reports of users visiting Amazon from a new computer, finding an item they like, then logging in, and seeing it for a new price.  In my opinion, these types of things outweigh the possible positive benefits from having a site remember me just for cause.</p>
<p>Next there are in my book some outright despicable practices.  Advertisements placed on sites will add cookies which get reported back to these tracking sites anytime you visit any site with an advertisement from the same company. As a result, there are sites which simply compile vast amounts of information about where you go and what you do online, to use in any way they seem fit.  These are commonly called &#8220;Tracking Cookies&#8221; by products such as Ad-aware and Spybot, which will remove the ones they recognize for you.</p>
<p>I have simply taken the approach (mostly as an experiment) that sites shall not store cookies without my express consent.  To that end, I have installed <a href="https://addons.mozilla.org/en-US/firefox/addon/2497">CookieSafe</a>, which makes it easier to manage cookie settings.   I either give or reject cookies from specific sites.  This occurs as a site preference, meaning if a site uses both kinds of cookies, and I want to use the site, I accept them both.  Importantly, the third-party cookies are still rejected &#8212; I have to authorize them separately.</p>
<p>So my browsing works like this:  I browse normally, then if a site isn&#8217;t working (and particularly if submitting a login doesn&#8217;t work), I realize it needed cookies to work.  I then decide if I really want to use the site, and if I do, I enable cookies for that site only.</p>
<p>Now, when I view my list of cookies, I can identify most of the sites.  (Some I must have authorized, but don&#8217;t quite recognize by site name, like the third party my bank uses to process online billpay.).  I find this to be much more acceptable, and my browsing hasn&#8217;t been worse for the wear.</p>
<p>A few days ago, however, I saw something that really brought a smile to my face.  On a site I visited while trying to figure out what it meant to buy fertile eggs, I saw this image, where an ad belongs:<br />
<img src='http://chip.kcubes.com/blog/wp-content/uploads/2007/12/nocookie.gif' alt='“No Cookie” Advertisement' /></p>
<p>I just had to laugh.  If a site wants to not send me ads because I reject cookies &#8212; then great!  I didn&#8217;t want them anyway.  But somehow I think they&#8217;ve missed the point of advertising.  If I were they, I would send SOMETHING back.  But all the same - I hope other sites take this approach.  It could be the end to all the annoying flash ads I get, if instead I got these images everywhere!</p>
]]></content:encoded>
			<wfw:commentRss>http://chip.kcubes.com/2007/12/06/server-cookies-and-i-dont-think-they-quite-understand-advertising/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Maps in Disasters, Revisited</title>
		<link>http://chip.kcubes.com/2007/11/28/maps-in-disasters-revisited/</link>
		<comments>http://chip.kcubes.com/2007/11/28/maps-in-disasters-revisited/#comments</comments>
		<pubDate>Wed, 28 Nov 2007 15:11:34 +0000</pubDate>
		<dc:creator>chip</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://chip.kcubes.com/2007/11/28/maps-in-disasters-revisited/</guid>
		<description><![CDATA[Last month I posted about the evolving maps during the San Diego Firestorm 2007.  Yesterday as I was sitting in a waiting room, I was browsing the Union-Tribune, and found this article going into a bit of the detail of how those maps were created.  It still doesn&#8217;t talk much about what advances [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://chip.kcubes.com/2007/10/31/evolving-technology-in-crisis/">Last month</a> I posted about the evolving maps during the San Diego Firestorm 2007.  Yesterday as I was sitting in a waiting room, I was browsing the Union-Tribune, and found <a href="http://chip.kcubes.com/2007/10/31/evolving-technology-in-crisis/">this article</a> going into a bit of the detail of how those maps were created.  It still doesn&#8217;t talk much about what advances were made, but does describe the players, basically San Diego State University, a team from Google, a prof from UCSD, and a collection of worldwide researchers who focus on imaging all got together.  Form the U-T article, I mainly glean that the map images were the result of taking map images from a wide variety of sources (satellite, aerial footage, thermal imaging), and using <a href="http://en.wikipedia.org/wiki/Geographically_reference">&#8220;geo-referencing&#8221;</a> to align them all onto the same map.</p>
]]></content:encoded>
			<wfw:commentRss>http://chip.kcubes.com/2007/11/28/maps-in-disasters-revisited/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Evolving Technology in Crisis</title>
		<link>http://chip.kcubes.com/2007/10/31/evolving-technology-in-crisis/</link>
		<comments>http://chip.kcubes.com/2007/10/31/evolving-technology-in-crisis/#comments</comments>
		<pubDate>Thu, 01 Nov 2007 06:54:13 +0000</pubDate>
		<dc:creator>chip</dc:creator>
		
		<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://chip.kcubes.com/2007/10/31/evolving-technology-in-crisis/</guid>
		<description><![CDATA[Flash crowds are something that I think about a lot.  This is mainly because it&#8217;s one of the prime challenges of building distributed systems.
Consider what happened in 1999 when Victoria&#8217;s Secret ran a Super Bowl ad announcing an online webcast of its Spring Fashion Show.  The result was a sudden large volume of [...]]]></description>
			<content:encoded><![CDATA[<p>Flash crowds are something that I think about a lot.  This is mainly because it&#8217;s one of the prime challenges of building distributed systems.</p>
<p>Consider what happened in 1999 when Victoria&#8217;s Secret ran a Super Bowl <a href="http://www.akamai.com/html/customers/case_study_victoria.html">ad announcing an online webcast of its Spring Fashion Show</a>.  The result was a sudden large volume of traffic to their site to view the webcast, so much that many customers were unable to view the webcast because the server could not handle the <i>flash crowd</i>.  </p>
<p>A similar problem occurred after 9/11/2001, when everyone went to their favorite online news outlets for the emerging story.</p>
<p>What separates the two, of course, is that Victoria&#8217;s Secret planned their webcast (but failed to forsee the limits of their servers), where crisis situations are unpredicted, and generally not provisioned for.</p>
<p>This was clear in handling the San Diego firestorm last week in several ways, two of which I&#8217;ll mention here.  What I find fascinating is how the <i>people</i> involved here had to adapt their technologies to handle the Crisis.  In general, unexpected situations may always lead to this, and the people involved should largely be applauded.  But at the same time, this presents us an opportunity to look at what happened to try and prepare automated systems for next time.  Specifically, we need to improve or GIS/Mapping techniques, and our transparent web-content scalability techniques.</p>
<p><span id="more-22"></span></p>
<ol>
<li>Basic information: Those of us who did not want our TVs constantly glued to a local news source (or radio) turned to the internet for updates.  Furthermore, people worldwide with ties to San Diego, who don&#8217;t get local San Diego stations, tried to get that information online.  This overloaded local servers and required adaptations.
<ul>
<li><a href="http://www.sdcountyemergency.com/">San Diego County Emergency</a>: This website was overloaded early on.  There was a similar &#8220;official&#8221; website and phone system (211) for getting updates, but the phones apparenty had a 5 minute wait time, and website took over 15 minutes to load.  At least the county emergency site would eventually load.  This website hasn&#8217;t changed much since the beginning, despite a painfully small news clip box and downloads box which don&#8217;t work very well.  The main changes here are (1) maps, which I&#8217;ll talk about later, and (2) apparently at some point Qualcomm is rumored to have been donating resources (bandwidth) to this site.  That&#8217;s probably why it started loading better.  I can only speculate that they wanted to keep information on this site so people would know it was authentic.</li>
<li><a href="http://twitter.com/kpbsnews">KPBS fire blog</a>.  KPBS realized their site would not stand the load, so they switched to using Twitter for updates.  I didn&#8217;t try their site before they switched to Twitter, so I don&#8217;t know much about this one.  I also don&#8217;t know much about Twitter, but it seems to be something designed for very short messages &#8212; like the size of an SMS.  Using Twitter they were able to withstand the load, and people were able to use Twitter to subscribe, get content pushed to them, etc.  KPBS was also the one to create a decent Google Map, which I&#8217;ll cover later.</li>
<li><a href="http://sosdfireblog.blogspot.com/">The San Diego Union-Tribune fire blog</a>.  The San Diego U-T, a.k.a. SignOnSanDiego, started, like other sources, using headlines on their site.  They quickly moved to a blog format to support the frequency of updates, but hosted at a url under their main site.  Next, they realized that was too loaded, and split the blog out into a separate hostname (firestorm.signonsandiego.com), which allowed them to host it on other servers.  This too could not keep up with the load, so finally they moved it to Blogger, the Google blog service.  I was fascinated (and pleased) that both news sources had gone to public infrastructure broader than they alone could provide, and saw this as a success for big content installations.  But still, this suggests we should look at server technologies which automatically replicate and scale content availability to match its demand, to avoid reconfigurations that might lose users.</li>
</ul>
</li>
<li>Maps/Evacuation info.  Perhaps the most important piece of information everyone wanted was where the fire was and where its headed.  Much talk was made of the reverse-911 system (where 911 calls you to tell you their&#8217;s an emergency and you need to evacuate), which was very successful in alerting residents when they needed to evacuate.  Of course, didn&#8217;t work for all &#8212; those of us without a landline would not get one (though now we know you can go <a href="http://www.alertsandiego.org/">here</a> to add our non-land-lines (BEWARE, ONLY WORKS IN INTERNET EXPLORER).  It also didn&#8217;t work for residents near Ramona, after their phone service was out due to the fire.  In these cases,  the old fashioned publis-safety-officer with loadspeaker and banging on door was the remaining solution.  I myself signed up for updates as SMS messags on my phone (though I would have preferred a less expensive email option).  But what we all wanted a place where we could just go and look at a map of evacuated and fire ares, which would be updated as time progressed.  Here were our options:
<ul>
<li>No map: headlines only.  If you know your regions of the town, you could mostly figure out what was going on from TV and radio news descriptions of where the fire was.  But if you didn&#8217;t know the neighborhood names, you then had to go look them up, very inefficient.</li>
<li>TV maps.  These maps were generally very bad.  There was this one map they kept putting up with the evacuation areas, which was like 7 city names, and a fire symbol next to their name.  Totally useless.  Eventually, these switched to the county emergency maps (below), though they didn&#8217;t do much for giving credit here.</li>
<li>Site hosted maps.  The U-T briefly tried to host a map on their site, but the load was too great, and it was updated too infrequently to be of any use.</li>
<li>Google maps.  These were what I had great hopes for, but apparently the technology wasn&#8217;t quite there yet.  The LA Times site had a map with the burn areas both of San Diego and LA, but it wasn&#8217;t very precise, and the fire icons on the map just didn&#8217;t give very good details.  The best Google map was the one KPBS maintained, which they updated when they got the chance.  It was fairly decent, and showed evacuation and burned areas, though there were a number of glitches.  For example, a couple of times markers were placed in Las Vegas or LA, when they were supposed to be within San Diego County.  Also, the Google Map never got to the point where it showed the active burn areas.  It did, however, get linked from the main google maps page.
<p>Most interestingly though, twice on the KPBS twitter, they indicated they couldn&#8217;t update the map because of limitations, and they were working with Google to get improvements made.  I&#8217;m not sure what (if anything) changed, but I was pleased to see they didn&#8217;t feel limited by the features, and that Google was willing to get involved.  The google maps to me really showed the greated promise, because they were able to show satelite overlaid with fire information, street-level details, traffic information and also news blurbs on map icons.  Problems, however, were that it was apparently too hard to update, the news blurbs were too big and thus were displayed poorly, and that you couldn&#8217;t turn on and off layers of the map (e.g. maybe you didn&#8217;t want to see the cluttered evacuation center icons or home destruction icons right now).  As an attempt though, this gets the best credit, and should be the starting piont for future efforts.  The SD County Emergency site needed to be able to easily update one or more map layers which people could download (from a scalable hosting site), and transparently add to the mapping program of their choice (be it google maps, MS live, or an offline map program.  Over the county&#8217;s own maps, it provided very important details such as streets.  GIS (Geographic information services) should be a major research front in this for future crises.</li>
<li>PDF downloads from the SD County Emergency site.  In my opinion, these were the best of the maps, because they were most accurate, timely, and detailed.  Unlike the other maps, these were the only ones to show active fire areas (though that took a few days to be added).  At one point I realized that these were essentially the root of all maps &#8212; they were the input that KPBS was using for their google map, and all other news sources were using them and redistributing them.  In fact, NBC San Diego actually was using these maps on the air, actually interacting with them in adobe acrobat reader.  Meanwhile, they were telling viewers they too could download them from the NBC San Diego site (on the one hand, giving viewers the impression they made them, ont he other hand, taking important load away from the county emergency site, which was strained).  Within this series of maps (and I&#8217;ve downloaded them all so I can see the progression of both the fire and the mapping techniques), it&#8217;s fascinating to see the progress.  Originally, it was just the burn and evacuation areas.  It broke up mandatory and voluntary evacuation areas with colors, and showed the burned area in solid red.  But as the burn area grew, and some areas (some of which were burned because reopened), there were problems.  Lack of transparency made it hard to see, and there were getting to be too many colors.  (Is it burned, or is it ok to return?).  So they eventually progressed to making the burned area translucent, and showing the active fire areas so (1) you could understand why they were letting people back into certain areas, and (2) you could see that an area had been both burned and was reopened.  But the overlapping made it appear as a separate color, and was confusing unless you zoomed in.  So eventually they just showed the fire perimiter with the active fire areas, so they could clearly show which areas were evacuated, and which were re-opened.
<p>Some confusing things remained to me.  For example, un-inhabited areas were never shown as evacuated, but it was never obvious to me whether they were not evacuated because they weren&#8217;t inhabited, or because the fire wasn&#8217;t expected to go there.  This because I didn&#8217;t know the geography of the county that well.  In the most recent map I noticed they&#8217;ve marked some national forests, which make it easier to see this.  Also, the lack of street-level details made it hard to tell where on the map you were.  It did at least break up the map into the &#8220;Thomas-brothers&#8221; map  grid, though since I don&#8217;t have one it didn&#8217;t do me any good.  Next, I thought it was strange that the only download was a ~1MB PDF file, which no-doubt was getting a lot of hits.  Seems like they could have saved a lot of bandwidth by offering the map in a 300KB JPEG format as well, which would have sufficed for many of us.  Furthermore, the PDF had many layers, was large, and slow to render, having to be redrawn every time you zoomed or moved in the map.</p>
<p>Example maps (for all maps, go to <a href="http://www.sdcountyemergency.com/">http://www.sdcountyemergency.com/</a>).</p>
<ul>
<li><a href='http://chip.kcubes.com/blog/wp-content/uploads/2007/11/102207_0900evacuationareaall.pdf' title='First Emergency Map, 10/22, 9:00 am'>First Emergency Map, 10/22, 9:00 am</a>: This map was the first county-wide map with both Witch and Harris fires.  It shows burn zone, evacuation zone, and voluntary evacuation zone.  It also shows the 2003 fire perimeters, which was very interesting, but not so useful for evacuation.  It is however, the best indicator of how the fire burned a different area this time.  Problems include the different layerings, lack of Thomas Guide grid, too many dots for municipal stuff.</li>
<li><a href='http://chip.kcubes.com/blog/wp-content/uploads/2007/11/10232007_1215hrs_evac_fireperem.pdf' title='10/23, 12:15 pm Map'>10/23, 12:15 pm Map</a>: Now they added the Thomas Guide.  But there are spots where all three of fire, mandatory, and voluntary evacuations are layered, leaving one confused.</li>
<li><a href='http://chip.kcubes.com/blog/wp-content/uploads/2007/11/10232007_2230hrs_evac_fireperem.pdf' title='10/23, 10:30 pm'>10/23, 10:30 pm</a>: So I&#8217;m noticing the 10:30 trend here, which I&#8217;m wondering if its the news cycle release.  This map has areas people can return to, which is good, but they are adjacent in come cases to fire areas, leaving me confused as to why they can return.  Soon the return areas will include burned areas, making it worse.</li>
<li><a href='http://chip.kcubes.com/blog/wp-content/uploads/2007/11/10242007_0500hrs_evac_fireperem.pdf' title='10/24, 05:00 am'>10/24, 05:00 am</a>: Now they&#8217;ve added the active burn area colors, which makes it much more clear why certain areas are allowed to return.  But the solid fire color won&#8217;t work once they let people back in.</li>
<li><a href='http://chip.kcubes.com/blog/wp-content/uploads/2007/11/10252007_0230hrs_evac_fireperem_low72.pdf' title='10/25, 2:30 am'>10/25, 2:30 am</a>: Here we see the overlapping burn and repopulation areas, which is very confusing, as it shows many colors in overlap.  But otherwise, the map is looking pretty good.</li>
<li><a href='http://chip.kcubes.com/blog/wp-content/uploads/2007/11/10262007_1900hrs_evac_fireperem.pdf' title='10/26, 7:00 pm'>10/26, 7:00 pm</a>: In this update, we now see the fire perimiter separately.  The evacuation and repopulation areas are clear, as well as the active fire.</li>
</ul>
</li>
<li>Several days into the event, they (San Diego County Emergency) released a Google earth data file.  I have no idea what this contained or looked like, as I don&#8217;t have Google earth on my computer.
                   </li>
</ul>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://chip.kcubes.com/2007/10/31/evolving-technology-in-crisis/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title>Chip's Technical Blog</title>
<link rel="SHORTCUT ICON" href="http://chip.kcubes.com/favicon.ico"/>
<link type="text/css" title="default" rel="stylesheet" href="http://chip.kcubes.com/chip.css"/>
<style type="text/css">
<!--

-->
</style>
<!--ol {display: block; padding-left: 0em; margin: 0 0 1em 1em; }-->
  <link rel="alternate" type="application/rss+xml" title="Chip&#8217;s Technical Blog RSS Feed" href="http://chip.kcubes.com/feed/" />
  <link rel="pingback" href="http://chip.kcubes.com/blog/xmlrpc.php" />
        </head>
<body>
	<div id="navbar">
	<!--<span style="display: run-in; ">Navigation: </span>-->
	<a href="http://chip.kcubes.com/">Home</a><a href="http://chip.kcubes.com/resume/">Resume</a><a href="http://chip.kcubes.com/research/">Research</a><a href="http://chip.kcubes.com/personal/">Personal</a><a href="http://chip.kcubes.com/killian_young/">Killian/Young</a><a href="http://www.kcubes.com/gallery/v/chip">Picture Album</a><a href="http://chip.kcubes.com/links.php">Links</a><a href="/feed/?printable=true">Printer-friendly</a>	</div>
<!--<hr WIDTH="100%" style="margin:0 0;padding: 0 0">-->
	<div id="withsidebar">
		<div id="sidebar">
			<img src="/chipPic.jpg" alt="Picture of Me"/>        <div class="box">
		<ul>

			<li> Search posts:
				<form method="get" id="searchform" action="http://chip.kcubes.com/">
<div><input type="text" value="" name="s" id="s" />
<input type="submit" id="searchsubmit" value="Search" />
</div>
</form>
			</li>

			<!-- Author information is disabled per default. Uncomment and fill in your details if you want to use it.
			<li><h2>Author</h2>
			<p>A little something about you, the author. Nothing lengthy, just an overview.</p>
			</li>
			-->

			<li>
						</li>

			
			<li><h2>Archives</h2>
				<ul>
					<li><a href='http://chip.kcubes.com/2008/09/' title='September 2008'>September 2008</a></li>
	<li><a href='http://chip.kcubes.com/2008/07/' title='July 2008'>July 2008</a></li>
	<li><a href='http://chip.kcubes.com/2008/06/' title='June 2008'>June 2008</a></li>
	<li><a href='http://chip.kcubes.com/2008/05/' title='May 2008'>May 2008</a></li>
	<li><a href='http://chip.kcubes.com/2008/04/' title='April 2008'>April 2008</a></li>
	<li><a href='http://chip.kcubes.com/2007/12/' title='December 2007'>December 2007</a></li>
	<li><a href='http://chip.kcubes.com/2007/11/' title='November 2007'>November 2007</a></li>
	<li><a href='http://chip.kcubes.com/2007/10/' title='October 2007'>October 2007</a></li>
	<li><a href='http://chip.kcubes.com/2007/09/' title='September 2007'>September 2007</a></li>
	<li><a href='http://chip.kcubes.com/2007/08/' title='August 2007'>August 2007</a></li>
	<li><a href='http://chip.kcubes.com/2007/07/' title='July 2007'>July 2007</a></li>
				</ul>
			</li>

			<li class="categories"><h2>Categories</h2><ul>	<li class="cat-item cat-item-3"><a href="http://chip.kcubes.com/tags/howto/" title="View all posts filed under How-to">How-to</a> (3)
</li>
	<li class="cat-item cat-item-4"><a href="http://chip.kcubes.com/tags/musings/" title="View all posts filed under Musings">Musings</a> (8)
</li>
	<li class="cat-item cat-item-6"><a href="http://chip.kcubes.com/tags/programming/" title="View all posts filed under Programming">Programming</a> (1)
</li>
	<li class="cat-item cat-item-5"><a href="http://chip.kcubes.com/tags/software/" title="View all posts filed under Software">Software</a> (10)
</li>
	<li class="cat-item cat-item-1"><a href="http://chip.kcubes.com/tags/uncategorized/" title="View all posts filed under Uncategorized">Uncategorized</a> (3)
</li>
</ul></li>
			          </ul>
          </div>
		</div>
		<div id="content">
			<h2><a href="http://chip.kcubes.com/">Chip&#8217;s Technical Blog</a></h2>
<div class="description">Tech commentary of thoughts, challenges, how-to&#8217;s, and the mundane.<br/><i>Note: to see my personal journal, formerly on this page, visit my <a href="/personal/">personal page</a>.</i>
</div>

<div class="box">
	<div class="narrowcolumn">

	
		
			<div class="post" id="post-39">
				<h2><a href="http://chip.kcubes.com/2008/09/23/another-macbook-pro-update/" rel="bookmark" title="Permanent Link to Another Macbook Pro Update">Another Macbook Pro Update</a></h2>
				<h3>September 23rd, 2008 <!-- by chip --></h3>

				<div class="entry">
					<p>Just as a quick update, this afternoon I had another problem which isn&#8217;t &#8220;supposed to happen&#8221; in MacOS.  When I arrived home from school, my laptop was burning hot in my bag.  When I opened the screen, there was an error message telling me I needed to hard-power cycle my macbook by holding in the power button, because of an error.  It was a kernel panic, but the laptop was left in some continuous processing loop, with the fan spinning, but doing no good in my bag, while an unhelpful message was telling me to power cycle it.  So much for Mac&#8217;s &#8220;Just working&#8221;.  At least with other OSes, I expect such errors, and am very careful about making sure they aren&#8217;t happening.</p>
				</div>

				<p class="postmetadata">Posted in <a href="http://chip.kcubes.com/tags/software/" title="View all posts in Software" rel="category tag">Software</a> |   <a href="http://chip.kcubes.com/2008/09/23/another-macbook-pro-update/#respond" title="Comment on Another Macbook Pro Update">No Comments &#187;</a></p>
			</div>

		
			<div class="post" id="post-38">
				<h2><a href="http://chip.kcubes.com/2008/09/19/macbook-pro-update/" rel="bookmark" title="Permanent Link to Macbook Pro Update">Macbook Pro Update</a></h2>
				<h3>September 19th, 2008 <!-- by chip --></h3>

				<div class="entry">
					<p>So I&#8217;ve been using the MBP for a while now, and it&#8217;s still taking some getting used to.  It&#8217;s also still just &#8220;okay.&#8221; I wouldn&#8217;t say I&#8217;m overwhelmed with how much better it is than Windows.  </p>
<p>Moreover, I installed updates today, and upon reboot, found that a new icon was present in the menu bar.  And not just that, it gave me a nag message, asking me to sign up for MobileMe.  </p>
<p>I have to agree with the vast number of users writing complaints that this new &#8220;feature&#8221; was unrequested, unauthorized, and undesired.  (I won&#8217;t link to them here, but just a quick internet search will find them).  Tactics like this will probably renew my desire to be using an opensource OS on my laptop, and there is a reasonable chance I won&#8217;t stick with Mac when it comes time to get another new laptop.</p>
<p>Granted, I&#8217;ve ruled out Windows too, so I&#8217;m not sure what will be next.  Back to linux, and the headaches of not having powerpoint plus dealing with projectors?  Perhaps opensolaris?</p>
<p>As an aside - also after installing the updates, my trackpad stopped working until I powered the machine off and back on &#8212; another fix which is supposedly only supposed to happen on Windows.</p>
				</div>

				<p class="postmetadata">Posted in <a href="http://chip.kcubes.com/tags/software/" title="View all posts in Software" rel="category tag">Software</a> |   <a href="http://chip.kcubes.com/2008/09/19/macbook-pro-update/#respond" title="Comment on Macbook Pro Update">No Comments &#187;</a></p>
			</div>

		
			<div class="post" id="post-37">
				<h2><a href="http://chip.kcubes.com/2008/07/27/macbook-pro/" rel="bookmark" title="Permanent Link to Macbook Pro">Macbook Pro</a></h2>
				<h3>July 27th, 2008 <!-- by chip --></h3>

				<div class="entry">
					<p>So after 28 years of never using a Mac, I now have one.  I got it for work, in my continuing endeavor to try new things on work computers.  My desktop will still be a linux PC, but my laptop is now a Macbook Pro.  I&#8217;ve only had it a few days, so I don&#8217;t have a lot of thoughts about it&#8212;though I still have an open mind.</p>
<p>Pros:<br />
- It looks shiny<br />
- With a massive amount of RAM, it runs quite smoothly<br />
- Better integration with X and native X open-source applications than achieved through Windows (and e.g. CygWin)</p>
<p>Cons:<br />
- Whole new keyboard with different buttons which do different things (will take time to get used to)<br />
- It hides what it&#8217;s doing even more than Windows, leaving the user to have no clue what&#8217;s happening behind the scenes<br />
- New multi-touch pad is different and doesn&#8217;t have a second mouse button<br />
- Did not come pre-installed with any games<br />
- I really miss the home and end keys.  What does exist for home and end are, first two-key combos, and second, they are more like a top-and-bottom.  I don&#8217;t yet know how to go to the beginning and ending of a dialog box I&#8217;m typing in.</p>
<p>So anyway, there are things I like and don&#8217;t like, but there&#8217;s a lot which I won&#8217;t know until I get used to it more.</p>
				</div>

				<p class="postmetadata">Posted in <a href="http://chip.kcubes.com/tags/software/" title="View all posts in Software" rel="category tag">Software</a> |   <a href="http://chip.kcubes.com/2008/07/27/macbook-pro/#comments" title="Comment on Macbook Pro">2 Comments &#187;</a></p>
			</div>

		
			<div class="post" id="post-36">
				<h2><a href="http://chip.kcubes.com/2008/06/06/it-is-finished/" rel="bookmark" title="Permanent Link to It is finished.">It is finished.</a></h2>
				<h3>June 6th, 2008 <!-- by chip --></h3>

				<div class="entry">
					<p>I have defended my dissertation, and filed it with the University.  It&#8217;s formatting has been approved by the appropriate people, and the Dean of Graduate Studies has approved my final paperwork.  I believe that officially, I have now completed my Ph.D.  Graduation is June 22nd, and my parents, in-laws, and brother-in-law (and of course Kristina) will all be in attendance as my advisor hoods me.</p>
<p>Now it is time for a few brief moments of relaxation and a vacation, then it&#8217;s time to move on and get started on my career.</p>
				</div>

				<p class="postmetadata">Posted in <a href="http://chip.kcubes.com/tags/uncategorized/" title="View all posts in Uncategorized" rel="category tag">Uncategorized</a> |   <a href="http://chip.kcubes.com/2008/06/06/it-is-finished/#respond" title="Comment on It is finished.">No Comments &#187;</a></p>
			</div>

		
			<div class="post" id="post-35">
				<h2><a href="http://chip.kcubes.com/2008/05/05/destination-west-lafayette-indiana/" rel="bookmark" title="Permanent Link to Destination: West Lafayette, Indiana">Destination: West Lafayette, Indiana</a></h2>
				<h3>May 5th, 2008 <!-- by chip --></h3>

				<div class="entry">
					<p>Well, to those of you following the job saga, it is now over (pending approval by the Provost).  After 2.5 months of interviewing all over the country, we have decided to accept a position in the <a href="http://www.cs.purdue.edu/">Computer Science</a> department at <a href="http://www.purdue.edu">Purdue University</a>.  None of the details are set yet, so don&#8217;t start asking questions about when we&#8217;re moving or anything.  But sometime prior to August 18th (my start date at Purdue), we&#8217;ll be moving to the <a href="http://www.city.west-lafayette.in.us/home.html">West Lafayette, Indiana</a> area.  So when you find yourselves visiting Purdue, Indiana, Indianapolis, or Chicago, let us know!</p>
				</div>

				<p class="postmetadata">Posted in <a href="http://chip.kcubes.com/tags/uncategorized/" title="View all posts in Uncategorized" rel="category tag">Uncategorized</a> |   <a href="http://chip.kcubes.com/2008/05/05/destination-west-lafayette-indiana/#respond" title="Comment on Destination: West Lafayette, Indiana">No Comments &#187;</a></p>
			</div>

		
			<div class="post" id="post-34">
				<h2><a href="http://chip.kcubes.com/2008/04/21/validating-email-addresses/" rel="bookmark" title="Permanent Link to Validating email addresses">Validating email addresses</a></h2>
				<h3>April 21st, 2008 <!-- by chip --></h3>

				<div class="entry">
					<p>As an early user of gmail, I was able to select precisely the username I wanted, ckillian, which is a very common username for people whose first name starts with &#8216;C&#8217; and whose last name is Killian.  Unfortunately, as often goes for popular shared services, there are many gmail users who fit those parameters.  By itself, that wouldn&#8217;t be a problem, except that on occasion, these other gmail users seem to forget that ckillian is not their email address.  They will use it to buy tickets on ticketmaster, place beach house reservations, setup ipod accounts, request proprietary recipes from companies, purchase items from websites, and, most recently, even to use it to purchase online postage from the USPS.</p>
<p>The &#8220;best&#8221; part is when users are so convinced it is their address that they go through Google&#8217;s password recovery system to try to get my password.  This has happened 3 times so far.  (I know, because Google sends me a link to my email addresses to follow if I want to proceed in resetting my password.)  One truly intelligent user, after going through the password change system and failing, actually sent me an email asking if I would forward the information to her, which I was happy to do (on a temporary basis).</p>
<p>I recognize that for the users, this is generally an honest mistake (I get these receipts for a CXXXX Killian, and what&#8217;s obvious to me is that ckillian is there username for some other things, and they just got mixed up while entering the email address).  When I get such receipts, responses, etc., if there is a phone number listed for the user, I often make the attempt to phone them to let them know of their mistake.  But more often than not, there is no method shown to contact them with.  In these cases, I have two options: (1) ignore it, and hope I don&#8217;t get stuck on some mailing list, or (2) contact the seller/sender and let them know they are sending information to the wrong party.  Some vendors handle this well &#8212; the Apple store took care of it without hassle.  Others, like the USPS, take some convincing (at first they thought I was trying to commit fraud).  And then there are those like Ticketmaster, who I have simply given up on, because I can&#8217;t seem to get them to stop sending me junk even when I did setup the account (and diligently unchecked the boxes so I would not receive the junk).</p>
<p>This represents a fairly significant issue though, because for many of these services and sites, by going through a forgotten password dialog, I could have the password reset and emailed to my account, giving me access to their information and account, and possibly other information such as credit cards, or perhaps just the ability to purchase things using their credit cards.</p>
<p>And what frustrates me the most is that most of these sites have set up a kind of account based on this email address, without validating that the new user actually has access to the email address.  It&#8217;s one thing if you simply mistype an email and as a result a single receipt goes to the wrong email address.  It&#8217;s yet another if you are saving state for the user under this email address without validating it.  Most websites form of validation is just to have the user type it twice.  But we should know by now that user data cannot be trusted, and if we are going to store that kind of information, we really should validate the email address.</p>
<p>And it&#8217;s not even that hard to do so&#8212;mailing lists do this all the time.  When you subscribe, they send you an email for you to prove you have received before allowing your subscription to proceed.  All sites creating accounts should do the same.  I would much rather have gotten an email from the USPS telling me to validate someone else&#8217;s account (which I would not have) than gotten a receipt for a delivery confirmation postage for a particular person.</p>
<p>So to those of you developing websites which create accounts for email addresses &#8212; please, please, please validate these email addresses before storing them!</p>
				</div>

				<p class="postmetadata">Posted in <a href="http://chip.kcubes.com/tags/musings/" title="View all posts in Musings" rel="category tag">Musings</a> |   <a href="http://chip.kcubes.com/2008/04/21/validating-email-addresses/#respond" title="Comment on Validating email addresses">No Comments &#187;</a></p>
			</div>

		
			<div class="post" id="post-33">
				<h2><a href="http://chip.kcubes.com/2007/12/22/new-category-programming-this-week-swap-and-concept_check/" rel="bookmark" title="Permanent Link to New Category: Programming (this week: swap and concept_check)">New Category: Programming (this week: swap and concept_check)</a></h2>
				<h3>December 22nd, 2007 <!-- by chip --></h3>

				<div class="entry">
					<p>I&#8217;m starting a new category for programming tips.  I jokingly referred to something as the C++ feature of the week (for Mace development) with one of our developers, and he responded that he needed to subscribe.  And it seemed like a good idea, so now I think I&#8217;ll start trying to blog about these new features I learn about.</p>
<p>So to start it off, there are two C++ features of the week for this past week:</p>
<ol>
<li><b>STL collection swap.</b>  The C++ STL Collections contain a <code>swap()</code> method, which takes another collection (of the same type) as a parameter.   The method does what&#8217;s expected &#8212; to swap the one collection&#8217;s elements with the other.  What makes this an interesting function is that it does it in constant time.  It doesn&#8217;t require constructing, copying, or otherwise wasting time with the two collections.  It just does pointer copies of internal collection state.  To see how this is useful, consider these two cases I&#8217;ve applied this to:
<ul>
<li>Maps within maps.  In one case, a Mace programmer had a map from an int to a vector.  In this case, the int represented the number of things in the vector (admittedly, this is a bit of a simplification).  So, when removing something from the vector, you would remove the vector from the map, then re-add it with the new key.  (This is because for other good reasons, the key of a map entry cannot be changed).  Because of the cost of this removal and re-addition, the programmer had originally implemented this using pointers, which, while correct and efficient, gave some of our other tools problems, and so we wanted to re-write it without using pointers.  <code>swap()</code> made this possible.  To do the update, use this code:<br />
<code><br />
void removeElement(IntVectorMap&#038; ivmap, int size) {<br />
    IntVectorMap::iterator i = ivmap.find(size);<br />
    assert(i != ivmap.end());<br />
    i->second.pop_front();<br />
    ivmap[size-1].swap(i->second);<br />
    ivmap.erase(i);<br />
}<br />
</code><br />
This does involve a construction of a new collection, but moves the elements of the collection quite efficiently.  Since we will erase the original map entry, causing the old vector to cease to exist, the fact that it now holds no elements does not matter.
</li>
<li>
The second case was one where we wanted to iterate through a set, but other code might be adding things to the set at the same time.  To maintain code safety, we must not lose newly added things, so we can process them later.  The original design involved making a copy of the set, then clearing the original set, and iterating over the copy.  Once again, <code>swap()</code> is the right tool here too.<br />
<code><br />
void processSet(IntSet&#038; s) {<br />
    IntSet t;<br />
    t.swap(s);<br />
    for(IntSet::iterator i = t.begin(); ...) {<br />
       ...<br />
    }<br />
    if (!s.empty()) { processSet(s); }<br />
}<br />
</code><br />
As an added bonus, if you need to hold a lock to touch S, you can simply acquire the lock and do the switch, a very fast operation, the release the lock.
</li>
</ul>
</li>
<li><a href="http://www.boost.org/libs/concept_check/concept_check.htm"><b>boost::concept_check.</b></a>  We were updating our serialization code, but found that the compiler error messages on template errors are hard-to-decipher (to be generous).  These errors were caused by one of two problems in one of our cases.  First, we had added a new template parameter, and inserted it before some existing ones.  In code which hadn&#8217;t been updated though, if they provided the older optional template parameters, the compiler would get very confused, and report error messages which could not be deciphered, and pointed to lines of code which didn&#8217;t make any sense.  In the other error case, the default template parameter might not work with other types passed.  (Specifically, it was a parameter telling how to serialize a collection, and the collection elements might not have been serializable.)  This message was a little easier to decipher, complaining about types which could not be serialized, but still didn&#8217;t point to the right lines of code.
<p>Using boost&#8217;s concept check, we were able to help both of these problems.  In the first case, we wrote a base class for all valid parameters of the template, then used a concept check to make sure the template parameter was convertible to the base class.   Passing in the older parameter now would generate a shorter, easier to understand message, and the concept check library makes sure that the line of code makes sense.  In the second case, we had to write our own concept checker, which would essentially just write code that needed to be able to compile (in this case, instantiating the type, serializing it, and deserializing it).  Again, the concept_check library would make sure the error message was pointed to in the right place.
</li>
</ol>
<p>That&#8217;s all for this edition.  Watch the programming category if you want to see other programming tips.</p>
				</div>

				<p class="postmetadata">Posted in <a href="http://chip.kcubes.com/tags/programming/" title="View all posts in Programming" rel="category tag">Programming</a> |   <a href="http://chip.kcubes.com/2007/12/22/new-category-programming-this-week-swap-and-concept_check/#respond" title="Comment on New Category: Programming (this week: swap and concept_check)">No Comments &#187;</a></p>
			</div>

		
			<div class="post" id="post-31">
				<h2><a href="http://chip.kcubes.com/2007/12/06/server-cookies-and-i-dont-think-they-quite-understand-advertising/" rel="bookmark" title="Permanent Link to Server Cookies, and I don&#8217;t think they quite understand advertising&#8230;">Server Cookies, and I don&#8217;t think they quite understand advertising&#8230;</a></h2>
				<h3>December 6th, 2007 <!-- by chip --></h3>

				<div class="entry">
					<p>I should start by explaining I regularly run my web browser with cookies disabled.  The reason is that I decided websites are tracking you too closely, and especially websites which you didn&#8217;t even know you were visiting.  For example, open up your cookie list.  (In firefox, this is: Tools->Options (under Windows, Edit->Preferences under Linux), then Privacy->&#8221;Show Cookies&#8221;.  The questions to ask yourself are:</p>
<ol>
<li>How many of the sites listed do I even recognize?</li>
<li>Of the sites I do recognize, what do I want that site to remember about me the next time I visit?</li>
</ol>
<p>Cookies, you see, are files that a server gives to a web browser, and asks it to present them whenever they visit a set of pages on a set of sites.  Cookies have a number of legitimate uses, most notably to give the browser a &#8220;session&#8221; id.  The &#8220;session&#8221; id is used so the browser user can, e.g., log in, and have the server remember keep track of information related to the login.  (The other option, not using cookies, is to make the sessionid part of the URLs, which is both ugly, and more likely to be logged by third parties such as proxies and caches run by ISPs)</p>
<p>Then there are some arguably useful features of cookies.  For example, many online retailers will set a cookie identifying you at your browser, and recognize you immediately when you visit again (not for purchasing, but for welcoming, tracking the products you look at, so to remind you of past products you&#8217;ve visited and to suggest new products based on your viewing history.  I personally find that a little creepy, though I admit in some cases it can be valuable.  A few years ago, there were even reports of sites using cookies to do <a href="http://www.cnn.com/2005/LAW/06/24/ramasastry.website.prices/">Dynamic Pricing (story by CNN)</a>, a practice where sites change the prices based on information they keep about the customer.  There were reports of users visiting Amazon from a new computer, finding an item they like, then logging in, and seeing it for a new price.  In my opinion, these types of things outweigh the possible positive benefits from having a site remember me just for cause.</p>
<p>Next there are in my book some outright despicable practices.  Advertisements placed on sites will add cookies which get reported back to these tracking sites anytime you visit any site with an advertisement from the same company. As a result, there are sites which simply compile vast amounts of information about where you go and what you do online, to use in any way they seem fit.  These are commonly called &#8220;Tracking Cookies&#8221; by products such as Ad-aware and Spybot, which will remove the ones they recognize for you.</p>
<p>I have simply taken the approach (mostly as an experiment) that sites shall not store cookies without my express consent.  To that end, I have installed <a href="https://addons.mozilla.org/en-US/firefox/addon/2497">CookieSafe</a>, which makes it easier to manage cookie settings.   I either give or reject cookies from specific sites.  This occurs as a site preference, meaning if a site uses both kinds of cookies, and I want to use the site, I accept them both.  Importantly, the third-party cookies are still rejected &#8212; I have to authorize them separately.</p>
<p>So my browsing works like this:  I browse normally, then if a site isn&#8217;t working (and particularly if submitting a login doesn&#8217;t work), I realize it needed cookies to work.  I then decide if I really want to use the site, and if I do, I enable cookies for that site only.</p>
<p>Now, when I view my list of cookies, I can identify most of the sites.  (Some I must have authorized, but don&#8217;t quite recognize by site name, like the third party my bank uses to process online billpay.).  I find this to be much more acceptable, and my browsing hasn&#8217;t been worse for the wear.</p>
<p>A few days ago, however, I saw something that really brought a smile to my face.  On a site I visited while trying to figure out what it meant to buy fertile eggs, I saw this image, where an ad belongs:<br />
<img src='http://chip.kcubes.com/blog/wp-content/uploads/2007/12/nocookie.gif' alt='“No Cookie” Advertisement' /></p>
<p>I just had to laugh.  If a site wants to not send me ads because I reject cookies &#8212; then great!  I didn&#8217;t want them anyway.  But somehow I think they&#8217;ve missed the point of advertising.  If I were they, I would send SOMETHING back.  But all the same - I hope other sites take this approach.  It could be the end to all the annoying flash ads I get, if instead I got these images everywhere!</p>
				</div>

				<p class="postmetadata">Posted in <a href="http://chip.kcubes.com/tags/musings/" title="View all posts in Musings" rel="category tag">Musings</a>,  <a href="http://chip.kcubes.com/tags/software/" title="View all posts in Software" rel="category tag">Software</a> |   <a href="http://chip.kcubes.com/2007/12/06/server-cookies-and-i-dont-think-they-quite-understand-advertising/#respond" title="Comment on Server Cookies, and I don&#8217;t think they quite understand advertising&#8230;">No Comments &#187;</a></p>
			</div>

		
			<div class="post" id="post-29">
				<h2><a href="http://chip.kcubes.com/2007/11/28/maps-in-disasters-revisited/" rel="bookmark" title="Permanent Link to Maps in Disasters, Revisited">Maps in Disasters, Revisited</a></h2>
				<h3>November 28th, 2007 <!-- by chip --></h3>

				<div class="entry">
					<p><a href="http://chip.kcubes.com/2007/10/31/evolving-technology-in-crisis/">Last month</a> I posted about the evolving maps during the San Diego Firestorm 2007.  Yesterday as I was sitting in a waiting room, I was browsing the Union-Tribune, and found <a href="http://chip.kcubes.com/2007/10/31/evolving-technology-in-crisis/">this article</a> going into a bit of the detail of how those maps were created.  It still doesn&#8217;t talk much about what advances were made, but does describe the players, basically San Diego State University, a team from Google, a prof from UCSD, and a collection of worldwide researchers who focus on imaging all got together.  Form the U-T article, I mainly glean that the map images were the result of taking map images from a wide variety of sources (satellite, aerial footage, thermal imaging), and using <a href="http://en.wikipedia.org/wiki/Geographically_reference">&#8220;geo-referencing&#8221;</a> to align them all onto the same map.</p>
				</div>

				<p class="postmetadata">Posted in <a href="http://chip.kcubes.com/tags/musings/" title="View all posts in Musings" rel="category tag">Musings</a> |   <a href="http://chip.kcubes.com/2007/11/28/maps-in-disasters-revisited/#respond" title="Comment on Maps in Disasters, Revisited">No Comments &#187;</a></p>
			</div>

		
			<div class="post" id="post-22">
				<h2><a href="http://chip.kcubes.com/2007/10/31/evolving-technology-in-crisis/" rel="bookmark" title="Permanent Link to Evolving Technology in Crisis">Evolving Technology in Crisis</a></h2>
				<h3>October 31st, 2007 <!-- by chip --></h3>

				<div class="entry">
					<p>Flash crowds are something that I think about a lot.  This is mainly because it&#8217;s one of the prime challenges of building distributed systems.</p>
<p>Consider what happened in 1999 when Victoria&#8217;s Secret ran a Super Bowl <a href="http://www.akamai.com/html/customers/case_study_victoria.html">ad announcing an online webcast of its Spring Fashion Show</a>.  The result was a sudden large volume of traffic to their site to view the webcast, so much that many customers were unable to view the webcast because the server could not handle the <i>flash crowd</i>.  </p>
<p>A similar problem occurred after 9/11/2001, when everyone went to their favorite online news outlets for the emerging story.</p>
<p>What separates the two, of course, is that Victoria&#8217;s Secret planned their webcast (but failed to forsee the limits of their servers), where crisis situations are unpredicted, and generally not provisioned for.</p>
<p>This was clear in handling the San Diego firestorm last week in several ways, two of which I&#8217;ll mention here.  What I find fascinating is how the <i>people</i> involved here had to adapt their technologies to handle the Crisis.  In general, unexpected situations may always lead to this, and the people involved should largely be applauded.  But at the same time, this presents us an opportunity to look at what happened to try and prepare automated systems for next time.  Specifically, we need to improve or GIS/Mapping techniques, and our transparent web-content scalability techniques.</p>
<p><span id="more-22"></span></p>
<ol>
<li>Basic information: Those of us who did not want our TVs constantly glued to a local news source (or radio) turned to the internet for updates.  Furthermore, people worldwide with ties to San Diego, who don&#8217;t get local San Diego stations, tried to get that information online.  This overloaded local servers and required adaptations.
<ul>
<li><a href="http://www.sdcountyemergency.com/">San Diego County Emergency</a>: This website was overloaded early on.  There was a similar &#8220;official&#8221; website and phone system (211) for getting updates, but the phones apparenty had a 5 minute wait time, and website took over 15 minutes to load.  At least the county emergency site would eventually load.  This website hasn&#8217;t changed much since the beginning, despite a painfully small news clip box and downloads box which don&#8217;t work very well.  The main changes here are (1) maps, which I&#8217;ll talk about later, and (2) apparently at some point Qualcomm is rumored to have been donating resources (bandwidth) to this site.  That&#8217;s probably why it started loading better.  I can only speculate that they wanted to keep information on this site so people would know it was authentic.</li>
<li><a href="http://twitter.com/kpbsnews">KPBS fire blog</a>.  KPBS realized their site would not stand the load, so they switched to using Twitter for updates.  I didn&#8217;t try their site before they switched to Twitter, so I don&#8217;t know much about this one.  I also don&#8217;t know much about Twitter, but it seems to be something designed for very short messages &#8212; like the size of an SMS.  Using Twitter they were able to withstand the load, and people were able to use Twitter to subscribe, get content pushed to them, etc.  KPBS was also the one to create a decent Google Map, which I&#8217;ll cover later.</li>
<li><a href="http://sosdfireblog.blogspot.com/">The San Diego Union-Tribune fire blog</a>.  The San Diego U-T, a.k.a. SignOnSanDiego, started, like other sources, using headlines on their site.  They quickly moved to a blog format to support the frequency of updates, but hosted at a url under their main site.  Next, they realized that was too loaded, and split the blog out into a separate hostname (firestorm.signonsandiego.com), which allowed them to host it on other servers.  This too could not keep up with the load, so finally they moved it to Blogger, the Google blog service.  I was fascinated (and pleased) that both news sources had gone to public infrastructure broader than they alone could provide, and saw this as a success for big content installations.  But still, this suggests we should look at server technologies which automatically replicate and scale content availability to match its demand, to avoid reconfigurations that might lose users.</li>
</ul>
</li>
<li>Maps/Evacuation info.  Perhaps the most important piece of information everyone wanted was where the fire was and where its headed.  Much talk was made of the reverse-911 system (where 911 calls you to tell you their&#8217;s an emergency and you need to evacuate), which was very successful in alerting residents when they needed to evacuate.  Of course, didn&#8217;t work for all &#8212; those of us without a landline would not get one (though now we know you can go <a href="http://www.alertsandiego.org/">here</a> to add our non-land-lines (BEWARE, ONLY WORKS IN INTERNET EXPLORER).  It also didn&#8217;t work for residents near Ramona, after their phone service was out due to the fire.  In these cases,  the old fashioned publis-safety-officer with loadspeaker and banging on door was the remaining solution.  I myself signed up for updates as SMS messags on my phone (though I would have preferred a less expensive email option).  But what we all wanted a place where we could just go and look at a map of evacuated and fire ares, which would be updated as time progressed.  Here were our options:
<ul>
<li>No map: headlines only.  If you know your regions of the town, you could mostly figure out what was going on from TV and radio news descriptions of where the fire was.  But if you didn&#8217;t know the neighborhood names, you then had to go look them up, very inefficient.</li>
<li>TV maps.  These maps were generally very bad.  There was this one map they kept putting up with the evacuation areas, which was like 7 city names, and a fire symbol next to their name.  Totally useless.  Eventually, these switched to the county emergency maps (below), though they didn&#8217;t do much for giving credit here.</li>
<li>Site hosted maps.  The U-T briefly tried to host a map on their site, but the load was too great, and it was updated too infrequently to be of any use.</li>
<li>Google maps.  These were what I had great hopes for, but apparently the technology wasn&#8217;t quite there yet.  The LA Times site had a map with the burn areas both of San Diego and LA, but it wasn&#8217;t very precise, and the fire icons on the map just didn&#8217;t give very good details.  The best Google map was the one KPBS maintained, which they updated when they got the chance.  It was fairly decent, and showed evacuation and burned areas, though there were a number of glitches.  For example, a couple of times markers were placed in Las Vegas or LA, when they were supposed to be within San Diego County.  Also, the Google Map never got to the point where it showed the active burn areas.  It did, however, get linked from the main google maps page.
<p>Most interestingly though, twice on the KPBS twitter, they indicated they couldn&#8217;t update the map because of limitations, and they were working with Google to get improvements made.  I&#8217;m not sure what (if anything) changed, but I was pleased to see they didn&#8217;t feel limited by the features, and that Google was willing to get involved.  The google maps to me really showed the greated promise, because they were able to show satelite overlaid with fire information, street-level details, traffic information and also news blurbs on map icons.  Problems, however, were that it was apparently too hard to update, the news blurbs were too big and thus were displayed poorly, and that you couldn&#8217;t turn on and off layers of the map (e.g. maybe you didn&#8217;t want to see the cluttered evacuation center icons or home destruction icons right now).  As an attempt though, this gets the best credit, and should be the starting piont for future efforts.  The SD County Emergency site needed to be able to easily update one or more map layers which people could download (from a scalable hosting site), and transparently add to the mapping program of their choice (be it google maps, MS live, or an offline map program.  Over the county&#8217;s own maps, it provided very important details such as streets.  GIS (Geographic information services) should be a major research front in this for future crises.</li>
<li>PDF downloads from the SD County Emergency site.  In my opinion, these were the best of the maps, because they were most accurate, timely, and detailed.  Unlike the other maps, these were the only ones to show active fire areas (though that took a few days to be added).  At one point I realized that these were essentially the root of all maps &#8212; they were the input that KPBS was using for their google map, and all other news sources were using them and redistributing them.  In fact, NBC San Diego actually was using these maps on the air, actually interacting with them in adobe acrobat reader.  Meanwhile, they were telling viewers they too could download them from the NBC San Diego site (on the one hand, giving viewers the impression they made them, ont he other hand, taking important load away from the county emergency site, which was strained).  Within this series of maps (and I&#8217;ve downloaded them all so I can see the progression of both the fire and the mapping techniques), it&#8217;s fascinating to see the progress.  Originally, it was just the burn and evacuation areas.  It broke up mandatory and voluntary evacuation areas with colors, and showed the burned area in solid red.  But as the burn area grew, and some areas (some of which were burned because reopened), there were problems.  Lack of transparency made it hard to see, and there were getting to be too many colors.  (Is it burned, or is it ok to return?).  So they eventually progressed to making the burned area translucent, and showing the active fire areas so (1) you could understand why they were letting people back into certain areas, and (2) you could see that an area had been both burned and was reopened.  But the overlapping made it appear as a separate color, and was confusing unless you zoomed in.  So eventually they just showed the fire perimiter with the active fire areas, so they could clearly show which areas were evacuated, and which were re-opened.
<p>Some confusing things remained to me.  For example, un-inhabited areas were never shown as evacuated, but it was never obvious to me whether they were not evacuated because they weren&#8217;t inhabited, or because the fire wasn&#8217;t expected to go there.  This because I didn&#8217;t know the geography of the county that well.  In the most recent map I noticed they&#8217;ve marked some national forests, which make it easier to see this.  Also, the lack of street-level details made it hard to tell where on the map you were.  It did at least break up the map into the &#8220;Thomas-brothers&#8221; map  grid, though since I don&#8217;t have one it didn&#8217;t do me any good.  Next, I thought it was strange that the only download was a ~1MB PDF file, which no-doubt was getting a lot of hits.  Seems like they could have saved a lot of bandwidth by offering the map in a 300KB JPEG format as well, which would have sufficed for many of us.  Furthermore, the PDF had many layers, was large, and slow to render, having to be redrawn every time you zoomed or moved in the map.</p>
<p>Example maps (for all maps, go to <a href="http://www.sdcountyemergency.com/">http://www.sdcountyemergency.com/</a>).</p>
<ul>
<li><a href='http://chip.kcubes.com/blog/wp-content/uploads/2007/11/102207_0900evacuationareaall.pdf' title='First Emergency Map, 10/22, 9:00 am'>First Emergency Map, 10/22, 9:00 am</a>: This map was the first county-wide map with both Witch and Harris fires.  It shows burn zone, evacuation zone, and voluntary evacuation zone.  It also shows the 2003 fire perimeters, which was very interesting, but not so useful for evacuation.  It is however, the best indicator of how the fire burned a different area this time.  Problems include the different layerings, lack of Thomas Guide grid, too many dots for municipal stuff.</li>
<li><a href='http://chip.kcubes.com/blog/wp-content/uploads/2007/11/10232007_1215hrs_evac_fireperem.pdf' title='10/23, 12:15 pm Map'>10/23, 12:15 pm Map</a>: Now they added the Thomas Guide.  But there are spots where all three of fire, mandatory, and voluntary evacuations are layered, leaving one confused.</li>
<li><a href='http://chip.kcubes.com/blog/wp-content/uploads/2007/11/10232007_2230hrs_evac_fireperem.pdf' title='10/23, 10:30 pm'>10/23, 10:30 pm</a>: So I&#8217;m noticing the 10:30 trend here, which I&#8217;m wondering if its the news cycle release.  This map has areas people can return to, which is good, but they are adjacent in come cases to fire areas, leaving me confused as to why they can return.  Soon the return areas will include burned areas, making it worse.</li>
<li><a href='http://chip.kcubes.com/blog/wp-content/uploads/2007/11/10242007_0500hrs_evac_fireperem.pdf' title='10/24, 05:00 am'>10/24, 05:00 am</a>: Now they&#8217;ve added the active burn area colors, which makes it much more clear why certain areas are allowed to return.  But the solid fire color won&#8217;t work once they let people back in.</li>
<li><a href='http://chip.kcubes.com/blog/wp-content/uploads/2007/11/10252007_0230hrs_evac_fireperem_low72.pdf' title='10/25, 2:30 am'>10/25, 2:30 am</a>: Here we see the overlapping burn and repopulation areas, which is very confusing, as it shows many colors in overlap.  But otherwise, the map is looking pretty good.</li>
<li><a href='http://chip.kcubes.com/blog/wp-content/uploads/2007/11/10262007_1900hrs_evac_fireperem.pdf' title='10/26, 7:00 pm'>10/26, 7:00 pm</a>: In this update, we now see the fire perimiter separately.  The evacuation and repopulation areas are clear, as well as the active fire.</li>
</ul>
</li>
<li>Several days into the event, they (San Diego County Emergency) released a Google earth data file.  I have no idea what this contained or looked like, as I don&#8217;t have Google earth on my computer.
                   </li>
</ul>
</li>
</ol>
				</div>

				<p class="postmetadata">Posted in <a href="http://chip.kcubes.com/tags/musings/" title="View all posts in Musings" rel="category tag">Musings</a> |   <a href="http://chip.kcubes.com/2007/10/31/evolving-technology-in-crisis/#comments" title="Comment on Evolving Technology in Crisis">1 Comment &#187;</a></p>
			</div>

		
		<div class="navigation">
			<div class="alignleft"><a href="http://chip.kcubes.com/feed/page/2/">&laquo; Previous Entries</a></div>
			<div class="alignright"></div>
		</div>

	
	</div>
</div>


<div id="inlinefooter">
<!-- If you'd like to support WordPress, having the "powered by" link someone on your blog is the best way, it's our only promotion or advertising. -->
	<p>
		Chip&#8217;s Technical Blog is proudly powered by
		<a href="http://wordpress.org/">WordPress</a>
		<br /><a href="http://chip.kcubes.com/feed/">Entries (RSS)</a>
		and <a href="http://chip.kcubes.com/comments/feed/">Comments (RSS)</a>.
		<!-- 14 queries. 1.797 seconds. -->
	</p>
</div>

<!-- Gorgeous design by Michael Heilemann - http://binarybonsai.com/kubrick/ -->

		
		</div>
	</div>
<div id="footer">
<b>Contact: </b>
[<a href="mailto:chip_killian@acm.org">@ ACM.org</a>]
[<a href="mailto:ckillian+web@gmail.com">@ Gmail.com</a>]
</div>
</body>
</html>
