<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4685462697478637165</id><updated>2011-09-02T06:57:12.168-04:00</updated><category term='paper'/><category term='apache'/><category term='install'/><category term='UNIX'/><category term='Google Maps'/><category term='KML'/><category term='jQuery'/><category term='wiki'/><category term='David'/><category term='data input'/><category term='flow chart'/><category term='lat long'/><category term='php'/><category term='Javascript'/><category term='bug'/><category term='bug fix'/><category term='website update'/><category term='google code repository'/><category term='drawing circles'/><category term='minutes'/><category term='Prototype'/><category term='meeting'/><category term='export'/><category term='conference'/><category term='algorithm'/><category term='links'/><category term='new version'/><category term='form'/><category term='weekly update'/><category term='new feature'/><category term='Firefox'/><category term='homepage'/><category term='Google Earth'/><category term='code repository'/><category term='escape characters'/><category term='plan'/><category term='html'/><category term='thoughts'/><category term='license'/><category term='design'/><category term='Internet Explorer'/><category term='image'/><category term='development environment'/><category term='colorpicker'/><category term='TortoiseSVN'/><category term='json'/><category term='svn'/><category term='notes'/><title type='text'>PhyloGeoViz</title><subtitle type='html'>Journal for the Google Summer of Code project, &lt;a href="http://phylogeoviz.org/"&gt;"Visualizing phylogeographic information"&lt;/a&gt;.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>84</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-1747314162221507998</id><published>2008-01-14T21:15:00.000-05:00</published><updated>2008-01-14T21:17:46.776-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><category scheme='http://www.blogger.com/atom/ns#' term='bug fix'/><title type='text'>fixed a bug in the haplotype groups</title><content type='html'>Fixed a bug that was causing the haplotype data in the pop_hap array to sort incorrectly.  Basically there was an extra for loop in there that was causing the pop_hap array to be jumbled an extra X times.  We're now up to version 2.3.1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-1747314162221507998?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/1747314162221507998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=1747314162221507998' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/1747314162221507998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/1747314162221507998'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2008/01/fixed-bug-in-haplotype-groups.html' title='fixed a bug in the haplotype groups'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-3926374680730541610</id><published>2007-08-27T13:43:00.001-04:00</published><updated>2007-08-27T14:09:26.901-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><title type='text'>missing table in IE</title><content type='html'>Help!  I can't figure out why &lt;a href="http://phylogeoviz.org/testing/test3.php"&gt;this table&lt;/a&gt; won't show up in Internet Explorer (v. 7, in Windows).  The table (id="popsizelegendtable") is viewable in Firefox but totally disappears in IE.  I have no idea what's going on.  Here's the &lt;a href="http://phylogeoviz.org/testing/test3.txt"&gt;unprocessed source&lt;/a&gt;.  Is it a CSS style issue?  Or is some of my javascript overwriting some styles?  The nodes and data are still there in the HTML tree, but it just isn't viewable. I feel like I've turned every display to block and zoom to 1 and am out of ideas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-3926374680730541610?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/3926374680730541610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=3926374680730541610' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3926374680730541610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3926374680730541610'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/missing-table-in-ie.html' title='missing table in IE'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6333833915050785400</id><published>2007-08-27T13:39:00.000-04:00</published><updated>2007-08-27T13:41:51.371-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='website update'/><title type='text'>Works in Firefox and IE (almost)</title><content type='html'>&lt;a href="http://phylogeoviz.org/version_2.3"&gt;Version 2.3&lt;/a&gt; is now up!  Now it works in Firefox on Windows, Linux, and Mac, and has almost all functionality in IE in Windows and Mac.  The only thing missing it not being able to draw the sample size legend in IE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6333833915050785400?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6333833915050785400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6333833915050785400' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6333833915050785400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6333833915050785400'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/works-in-firefox-and-ie-almost.html' title='Works in Firefox and IE (almost)'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-9007733150963565611</id><published>2007-08-27T11:48:00.001-04:00</published><updated>2007-08-27T13:39:45.930-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='bug fix'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Aha!  Getting google to return svg's instead of img's solved</title><content type='html'>So thanks to &lt;a href="http://groups.google.com/group/Google-Maps-API/browse_thread/thread/ae4bd21676d4f19d/75f65c4ab61991e2?lnk=gst&amp;q=overlapping&amp;amp;rnum=1#75f65c4ab61991e2"&gt;Mike William's post&lt;/a&gt; to the Google Maps API Google Group, I can get GPolygon to return svg's instead of img's in Firefox in Linux.  Yay!&lt;br /&gt;&lt;br /&gt;Basically, you have to set these two parameters, &lt;span style="font-family:courier new;"&gt;_mSvgEnabled&lt;/span&gt; and &lt;span style="font-family:courier new;"&gt;_mSvgForced&lt;/span&gt; to &lt;span style="font-family:courier new;"&gt;true &lt;/span&gt;in order to force Google to return SVG's.  Here's the code snippet that made everything better:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;function load() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if (GBrowserIsCompatible()) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  // Initialize&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;               if(document.implementation.hasFeature(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                         "http://www.w3.org/TR/SVG11/feature#SVG","1.1")){&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; _mSvgEnabled = true;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; _mSvgForced  = true;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;} &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-9007733150963565611?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/9007733150963565611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=9007733150963565611' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/9007733150963565611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/9007733150963565611'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/aha-getting-google-to-return-svgs.html' title='Aha!  Getting google to return svg&apos;s instead of img&apos;s solved'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6660607131199611276</id><published>2007-08-24T10:50:00.000-04:00</published><updated>2007-08-24T10:52:11.200-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>VML - link to reference</title><content type='html'>A useful link to VML documentation:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.w3.org/TR/NOTE-VML"&gt;w3 VML specifications&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6660607131199611276?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6660607131199611276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6660607131199611276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6660607131199611276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6660607131199611276'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/vml-link-to-reference.html' title='VML - link to reference'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-494373014704961692</id><published>2007-08-24T10:43:00.000-04:00</published><updated>2007-08-24T10:52:41.718-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Prototype'/><category scheme='http://www.blogger.com/atom/ns#' term='jQuery'/><title type='text'>Conflicts between jQuery and Prototype objects in IE</title><content type='html'>I'm not sure that I have this problem correctly diagnosed, but I've been noticing a lot of errors in IE when I have lines of code that combine jQuery objects with Prototype functions.  I guess this means that I've been sloppy with my JS and Firefox has been letting me get away with it!  Here's an example of code that works in Firefox, but not IE:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family: courier new;"&gt; var block = jQuery(".widgetBody", $(elementid))[0];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; var blockstatus = block.getStyle('display');  &lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;br /&gt;It seems like the problem is mixing the jQuery object, block, with the prototype function, getStyle().  The error is removed when I replace the second line with a call to a jQuery function instead:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;blockquote&gt; var blockstatus = jQuery(block).css("display");&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;I guess it makes sense that combining jQuery and Prototype code is a bad idea.  I was using Prototype to begin with then started using more and more jQuery, and never went back to clean out all the Prototype.  Heck there's even Prototype in the line with the jQuery search!  Anyways...laziness is costing me now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-494373014704961692?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/494373014704961692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=494373014704961692' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/494373014704961692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/494373014704961692'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/conflicts-between-jquery-and-prototype.html' title='Conflicts between jQuery and Prototype objects in IE'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6561467567955337010</id><published>2007-08-24T09:35:00.000-04:00</published><updated>2007-08-24T09:47:28.485-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Addition of VML line critical to getting things working in IE</title><content type='html'>I can't believe I missed this until now.  To get the polylines and, thus, polygons to render correctly in IE, you have to include a reference to the vml namespace.  The top of your document should look like this:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;See the &lt;a href="http://www.google.com/apis/maps/documentation/#XHTML_and_VML"&gt;documentation on  XHTML&lt;/a&gt; for slightly more info.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6561467567955337010?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6561467567955337010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6561467567955337010' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6561467567955337010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6561467567955337010'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/addition-of-vml-line-critical-to.html' title='Addition of VML line critical to getting things working in IE'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-4052385005616569857</id><published>2007-08-23T15:41:00.000-04:00</published><updated>2007-08-23T15:53:55.109-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='development environment'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>Internet Explorer -- pain in the ass</title><content type='html'>I've started debugging the program in Internet Explorer (v. 7.0.5730.11) on a Windows machine.  I've been using &lt;a href="http://www.getfirebug.com/lite.html"&gt;Firebug Lite&lt;/a&gt; and the &lt;a href="http://urltea.com/1874"&gt;IE developer toolbar&lt;/a&gt; to help debug.  Even put together, neither of these is remotely useful compared to the awesomeness of &lt;a href="http://www.getfirebug.com/"&gt;Firebug&lt;/a&gt; in Firefox.  Anyone out there have a recommendation for anything better for IE development and debugging?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.westciv.com/xray/"&gt;XRay&lt;/a&gt; is another interesting CSS viewer tool that works in any browser.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-4052385005616569857?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/4052385005616569857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=4052385005616569857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/4052385005616569857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/4052385005616569857'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/internet-explorer-pain-in-ass.html' title='Internet Explorer -- pain in the ass'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-1932873684557101520</id><published>2007-08-23T10:27:00.000-04:00</published><updated>2007-08-23T15:41:43.073-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><category scheme='http://www.blogger.com/atom/ns#' term='bug fix'/><title type='text'>Fixing svg/img bugs</title><content type='html'>So I got a bug report that said that the site didn't work in Firefox in Linux.  Only one wedge was being drawn.  Turns out that for some reason the call to GPolygon that usually produces svg's produces 'img' elements instead.  This caused a bunch of problems.  Now I've fixed it so that I check if img's or svg's are produced, then modify the event handling of those objects.  I suspect that this img/svg problem may be at the heart of the app's bad behavior in Internet Explorer and Safari as well.  But there are more bugs to take care of there...  Just a note: Gmaps in Firefox in Windows and Mac DOES produce svgs.&lt;br /&gt;&lt;br /&gt;By producing img's instead of svg's certain features of the site become impractical to implement.  The biggest problem is that the img's must be completely redrawn each time there's a change.  With svg's I can easily change the style (fill color, stroke width, etc.) of the element without having to redraw the graphic.  The drawing of the pies is time consuming, so with img's I've disabled the dynamic updating of the pie wedge colors.  Now the user must click the 'ok' button to submit their new color requests.&lt;br /&gt;&lt;br /&gt;Note: I'm not sure who's 'fault' it is for not being able to use svg's on Firefox in Linux.  The documentation for Firefox states that svg support is now built in to the latest release, so maybe it's Google Map API's fault for returning the wrong img datatypes when it should return svg's.  In any case, img's are what's being rendered on the page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-1932873684557101520?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/1932873684557101520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=1932873684557101520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/1932873684557101520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/1932873684557101520'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/fixing-svgimg-bugs.html' title='Fixing svg/img bugs'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-7062854581508231602</id><published>2007-08-23T10:23:00.000-04:00</published><updated>2007-08-23T10:45:54.921-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><category scheme='http://www.blogger.com/atom/ns#' term='json'/><category scheme='http://www.blogger.com/atom/ns#' term='development environment'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Development environment in Linux</title><content type='html'>So getting my development environment set up in linux was no small task.  I'm using Fedora 6.  Here were some of the obstacles:&lt;br /&gt;&lt;br /&gt;1) The distribution's version of Firefox doesn't come compiled with the necessary debug flags for Firebug to work properly.  I downloaded a new version of Firefox directly from the website and that seemed to have solved most of the debug problems.  I've heard that you may need to download the source and compile it by hand with some special flags, but luckily the downloaded tarball worked for me.&lt;br /&gt;&lt;br /&gt;2) The php-json package was missing from my installation of php.  A simple yum install fixed that problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-7062854581508231602?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/7062854581508231602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=7062854581508231602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7062854581508231602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7062854581508231602'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/development-environment-in-linux.html' title='Development environment in Linux'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-4819755982164216892</id><published>2007-08-20T16:28:00.001-04:00</published><updated>2007-08-20T16:29:44.630-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='weekly update'/><title type='text'>Last weekly update</title><content type='html'>I've just uploaded my code that I'll be evaluated for Summer of Code experience (version 2.2.2).  Whew!  I really enjoyed the summer and learned a lot.  There still are many more features I'd like to add, but I feel pretty happy about the product at this stage.&lt;br /&gt;&lt;br /&gt;Thanks, everyone!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-4819755982164216892?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/4819755982164216892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=4819755982164216892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/4819755982164216892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/4819755982164216892'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/last-weekly-update.html' title='Last weekly update'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-4249491212528228185</id><published>2007-08-20T16:11:00.000-04:00</published><updated>2007-08-20T16:27:51.396-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes'/><category scheme='http://www.blogger.com/atom/ns#' term='plan'/><category scheme='http://www.blogger.com/atom/ns#' term='thoughts'/><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='meeting'/><title type='text'>Phyloinformatics Summer of Code Meetup at NESCent</title><content type='html'>At the end of last week the NESCent SoCoders all met up in Durham, NC for a wrap up conference.  It was really neat to see what others had been doing all summer long.  The diversity of projects was to be expected, though there were some common threads between us.  &lt;br /&gt;&lt;br /&gt;One message that was hammered home to me was the need for file standards in evolutionary biology.  The amount of time spent massaging your data into different formats to interface with interesting programs is many times prohibitive to actually using the programs.  I was struck by all the development going on with NEXUS (ex: &lt;a href="http://www.molevol.org/nexplorer/cgi-bin/index.cgi"&gt;Nexplorer&lt;/a&gt;, &lt;a href="https://www.nescent.org/wg_phyloinformatics/PhyloSoC:Phylogenetic_XML"&gt;NEXML&lt;/a&gt;, and &lt;a href="https://www.nescent.org/wg_phyloinformatics/PhyloSoC:Multi-language_bindings_to_the_NEXUS_Class_Library"&gt;libraries for NEXUS&lt;/a&gt;) in particular, and I feel like I need to jump on this bandwagon too!  I was quick to realize that I'm part of the problem in that PhyloGeoViz currently doesn't accept NEXUS  (or anything else for that matter besides my own special format).  Well, being able to work with NEXUS files is now on the top of my list of priorities.&lt;br /&gt;&lt;br /&gt;Another common theme of the meeting was the visualization of tree data.  Multiple projects were coming at this problem using different languages and in different contexts.  &lt;br /&gt;&lt;br /&gt;A great meeting!  I had a lot of fun hearing other students' and mentors' experiences.  Hope to run into you again soon!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-4249491212528228185?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/4249491212528228185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=4249491212528228185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/4249491212528228185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/4249491212528228185'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/phyloinformatics-summer-of-code-meetup.html' title='Phyloinformatics Summer of Code Meetup at NESCent'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-3650131252870008694</id><published>2007-08-20T11:59:00.000-04:00</published><updated>2007-08-20T12:04:56.351-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='license'/><category scheme='http://www.blogger.com/atom/ns#' term='google code repository'/><title type='text'>Licensing</title><content type='html'>I decided to use the &lt;a href="http://www.gnu.org/licenses/"&gt;GNU GPL&lt;/a&gt;.  It seemed the most broad.  &lt;br /&gt;&lt;br /&gt;I'm not sure if I did this correctly, but my Google SVN project repository contains other people's scripts (like Prototype, YUI Color Picker, jQuery, etc.) that have their own licenses, etc.  All the scripts I used are open source libraries, but I'm not sure if including them in my own repository is ok.  Should I have just told the user to download them themselves or is it ok to package everything together like I've done?  In any case, I think it's ok to put everything in one place.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-3650131252870008694?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/3650131252870008694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=3650131252870008694' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3650131252870008694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3650131252870008694'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/licensing.html' title='Licensing'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-1332668661764994097</id><published>2007-08-20T11:54:00.001-04:00</published><updated>2007-08-20T11:59:05.205-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new feature'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='new version'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>New features added</title><content type='html'>Last week I tried to code up as many of the features as possible prior to the meet-up at NESCent.  Here are some I managed to add by the end of this past weekend:&lt;br /&gt;&lt;br /&gt;Expandable/collapsible menu widgets for the legend.&lt;br /&gt;Outline pie wedges option.&lt;br /&gt;Enlarge/reduce map window size.&lt;br /&gt;&lt;br /&gt;I also got all the pages prettied-up with the same css styles, which I think made a huge difference to the look and usability of the site.  Thanks, Jack for helping me feel my way around CSS this week!&lt;br /&gt;&lt;br /&gt;Newest version is up.  &lt;a href="http://www.phylogeoviz.org/version_2.2.2/"&gt;Version 2.2.2.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-1332668661764994097?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/1332668661764994097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=1332668661764994097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/1332668661764994097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/1332668661764994097'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/new-features-added.html' title='New features added'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-3269077439155703011</id><published>2007-08-20T11:49:00.000-04:00</published><updated>2007-08-20T11:53:35.471-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='image'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>Icons</title><content type='html'>Here's a nice icon set that I found.  Very good looking.  But it didn't have the +/- icons (for expand/collapse a tree) that I needed.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.famfamfam.com/lab/icons/silk/"&gt;Silk icons&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I did, however, use this nifty site that generates pretty ajax loading icons (animated gifs) for you.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ajaxload.info/"&gt;ajaxload.info&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-3269077439155703011?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/3269077439155703011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=3269077439155703011' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3269077439155703011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3269077439155703011'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/icons.html' title='Icons'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6333651412542961718</id><published>2007-08-20T11:47:00.001-04:00</published><updated>2007-08-20T11:49:36.705-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TortoiseSVN'/><category scheme='http://www.blogger.com/atom/ns#' term='google code repository'/><title type='text'>Uploading to google repository</title><content type='html'>I finally got my local source code uploaded into &lt;a href="http://code.google.com/p/phylogeoviz/source"&gt;Google's subversion repository&lt;/a&gt;.    It was a bit of a chore to figure out how.  And I couldn't figure out how to keep all my own repository history alive.  Ah well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6333651412542961718?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6333651412542961718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6333651412542961718' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6333651412542961718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6333651412542961718'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/uploading-to-google-repository.html' title='Uploading to google repository'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-2922840456428169190</id><published>2007-08-13T11:57:00.000-04:00</published><updated>2007-08-13T12:00:55.192-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='weekly update'/><title type='text'>Weekly update</title><content type='html'>I've spent most of the week tying my pages together.  Now the user can input haplotype group data as well as the basic input data.  Also, the edit data page now integrates with the rest of the site.  The color picker that dynamically updates the pie wedge colors has been tested as well.&lt;br /&gt;&lt;br /&gt;Things to do this week:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Clean up code for repository.&lt;/li&gt;&lt;li&gt;Include comments on the license, etc.&lt;/li&gt;&lt;li&gt;Get code into repository.&lt;/li&gt;&lt;li&gt;Write documentation and user instructions.&lt;/li&gt;&lt;li&gt;Edit CSS and make site look prettier.&lt;/li&gt;&lt;li&gt;Prepare presentation for NESCent meet-up at the end of the week.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-2922840456428169190?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/2922840456428169190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=2922840456428169190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/2922840456428169190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/2922840456428169190'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/weekly-update_13.html' title='Weekly update'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-7039688233603956770</id><published>2007-08-13T11:51:00.000-04:00</published><updated>2007-08-13T11:57:36.932-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new feature'/><category scheme='http://www.blogger.com/atom/ns#' term='website update'/><title type='text'>Version 2.0 up and running</title><content type='html'>I've uploaded my latest version.  Still need to fiddle with css to make it look nice, but the basic functionality is there.  New features:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;When changing color the pie wedges update with new colors in real time.&lt;/li&gt;&lt;li&gt;An edit data page, where the user can include/exclude populations or haplotypes and edit data fields.&lt;/li&gt;&lt;li&gt;Users can now group haplotypes by specifying haplotype groups.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-7039688233603956770?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/7039688233603956770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=7039688233603956770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7039688233603956770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7039688233603956770'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/version-20-up-and-running.html' title='Version 2.0 up and running'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-2978839131336853813</id><published>2007-08-13T10:07:00.000-04:00</published><updated>2007-08-13T10:12:33.837-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='image'/><category scheme='http://www.blogger.com/atom/ns#' term='export'/><title type='text'>Stuck on image creation</title><content type='html'>I'm trying to output the legend (of haplotype colors and of sample sizes) to some sort of image format (*.png for example).  However, I'm quickly realizing that I'm in over my head.  Anyone out there know of any javascript libraries that can help me?&lt;br /&gt;&lt;br /&gt;So I'm putting this on the back-burner for now.  I guess if you want to save the legend info, your simplest bet is to do a print-screen + crop.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-2978839131336853813?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/2978839131336853813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=2978839131336853813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/2978839131336853813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/2978839131336853813'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/stuck-on-image-creation.html' title='Stuck on image creation'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-7990640814681783821</id><published>2007-08-07T21:03:00.000-04:00</published><updated>2007-08-07T21:20:17.838-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='form'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>How to auto-submit a form</title><content type='html'>Sometimes it's useful to pass data to a hidden page that processes the data then passes the new data to another page.  To pass the data through forms, use javascript.  Set a body onload function with $("form_name").submit() to submit the form when the page finishes loading.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  ....data processing code here&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  &amp;lt;head&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;    &amp;lt;meta http-equiv="content-type" content="text/html; charset=utf-8"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    &amp;lt;script type="text/javascript" src="javascripts/prototype.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;  &amp;lt;/head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  &amp;lt;body onload="$('newdata').submit()"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    &amp;lt;form id="newdata" name="newdata" method="post" action="newviewer.php"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;      &amp;lt;input type="hidden" id="data1" name="data1" value="x1"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;    &amp;lt;/form&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  &amp;lt;/body&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-7990640814681783821?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/7990640814681783821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=7990640814681783821' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7990640814681783821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7990640814681783821'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/how-to-auto-submit-form.html' title='How to auto-submit a form'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-3038518666724075798</id><published>2007-08-07T20:54:00.001-04:00</published><updated>2007-08-07T21:03:25.331-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='form'/><category scheme='http://www.blogger.com/atom/ns#' term='json'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>JSON, php, and html forms</title><content type='html'>So I've been working on a data processing page that is hidden from the user, takes form data from an input page, processes the data, encodes the data using json in a new form, then auto submits the form to a new page.  Here are a few helpful functions that got it working properly:&lt;br /&gt;&lt;br /&gt;1. The &lt;a href="http://us2.php.net/json_encode"&gt;json_encode()&lt;/a&gt; function in php doesn't escape some html special characters like quotes.  It's helpful to wrap it with the function &lt;a href="http://us2.php.net/htmlspecialchars"&gt;htmlspecialchars()&lt;/a&gt; so that it plays nice with your html.&lt;br /&gt;&lt;br /&gt;2. php line breaks are '\r'.  I had inadvertently included some line breaks in my string variables.  To fix that problem use the &lt;a href="http://us2.php.net/trim"&gt;trim()&lt;/a&gt; function.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-3038518666724075798?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/3038518666724075798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=3038518666724075798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3038518666724075798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3038518666724075798'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/json-php-and-html-forms.html' title='JSON, php, and html forms'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-1288016634426132390</id><published>2007-08-06T01:03:00.000-04:00</published><updated>2007-08-06T01:12:04.547-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='weekly update'/><title type='text'>Weekly update</title><content type='html'>This week I've spent hacking away at the data management page.  I've got all (cross you fingers) the bugs smoothed out from transferring the changed data from the data management page to the viewer page.  A new feature of note is that the program now sorts the haplotypes by groups and the user can color all haplotypes in a group at once.  (Note, I haven't uploaded the newest version to the website yet, sorry).&lt;br /&gt;&lt;br /&gt;Features added this week:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Can include/exclude haplotypes and populations.&lt;/li&gt;&lt;li&gt;Can edit data.&lt;/li&gt;&lt;li&gt;Can specify haplotype groups.&lt;/li&gt;&lt;li&gt;Can color by haplotype group.&lt;/li&gt;&lt;li&gt;Changing colors in the colorpicker now changes the associated pie wedge colors in real time.&lt;/li&gt;&lt;/ul&gt;Next week:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Meet with David about the remaining goals for the project, and project timeline.&lt;/li&gt;&lt;li&gt;Update the export function to allow grouping by haplotype groups, etc.&lt;/li&gt;&lt;li&gt;Tie the data management page to the input data page.&lt;/li&gt;&lt;li&gt;Update website with latest release.&lt;/li&gt;&lt;li&gt;Research copyright laws and permissions concerning the maps.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-1288016634426132390?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/1288016634426132390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=1288016634426132390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/1288016634426132390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/1288016634426132390'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/weekly-update.html' title='Weekly update'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-4633800490870842741</id><published>2007-08-06T00:37:00.000-04:00</published><updated>2007-08-06T01:03:05.034-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='colorpicker'/><category scheme='http://www.blogger.com/atom/ns#' term='bug fix'/><title type='text'>onChange handler for the colorpicker</title><content type='html'>&lt;a href="http://www.knallgrau.at/code/colorpicker"&gt;Knallgrau's color picker&lt;/a&gt; has been a really useful library, but it took a bit to figure out syntax for the onchange handler.  Each colorbox shares the same colorpicker, so I was having trouble deciphering which of the DOM elements was the calling element, so I set an 'onclick' handler on the 'ok' button then had a big loop through all the possible elements to see which one changed.  Besides being ugly, the user doesn't have to click on the 'ok' button to exit the colorpicker, so this implementation fails to register a lot of events.&lt;br /&gt;&lt;br /&gt;Turns out I was going about this all the wrong way.  Knallgrau has an 'onUpdate' attribute that you can set.  Here's the syntax when initializing the colorpicker:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;new Control.ColorPicker("inputid", { IMAGE_BASE : "javascripts/colorpicker/img/", "swatch" : "buttonid", "onUpdate" : changeColor  });&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;where 'inputid' is the id of the &amp;lt;input&amp;gt; element, 'buttonid' is the id of the &amp;lt;button&amp;gt; element, and 'changeColor' is the function called when the color is updated.&lt;br /&gt;&lt;br /&gt;In the changeColor function, this.field gives you the input element.  Example:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;function changeColor ()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;{&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;  console.log (this.field);  //prints &amp;lt;input type="hidden"    id="hapcolor1" name="hapcolor1" value="B71919"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  console.log (this.field.id); //prints "inputid"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-4633800490870842741?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/4633800490870842741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=4633800490870842741' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/4633800490870842741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/4633800490870842741'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/onchange-handler-for-colorpicker.html' title='onChange handler for the colorpicker'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-5949899029144293777</id><published>2007-08-06T00:34:00.001-04:00</published><updated>2007-08-06T00:37:31.872-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><category scheme='http://www.blogger.com/atom/ns#' term='jQuery'/><title type='text'>jQuery!</title><content type='html'>So I've been trying to update all of the pie wedge colors in real time as the color picker runs.  To do so I have to have a quick and efficient way of grabbing, traversing, and setting specific DOM elements.  &lt;a herf="http://jquery.com/"&gt;jQuery&lt;/a&gt;, this fabulous javascript library does all that and more!  It's super fast.  But the documentation is a little harder to understand than for prototype.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-5949899029144293777?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/5949899029144293777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=5949899029144293777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/5949899029144293777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/5949899029144293777'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/jquery.html' title='jQuery!'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-7843815629567462221</id><published>2007-08-01T12:34:00.001-04:00</published><updated>2007-08-01T12:36:31.250-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><title type='text'>another bug to fix</title><content type='html'>Fart!  If you click away from the default map type on the viewer screen (say go from 'satellite' to 'map') you lose the ability to drag the pies and color them.  It's bizarre, but if you resize the pies you get back some of the draggability and can recolor them....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-7843815629567462221?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/7843815629567462221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=7843815629567462221' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7843815629567462221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7843815629567462221'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/08/another-bug-to-fix.html' title='another bug to fix'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-7439367146041755768</id><published>2007-07-31T15:17:00.001-04:00</published><updated>2007-07-31T15:22:01.822-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='weekly update'/><title type='text'>Weekly update</title><content type='html'>Most of this week has been spent on the include/exclude data and data management feature.  It's not quite complete yet.  I've run into a lot of difficulty getting the event handlers to update the appropriate javascript variables.  &lt;br /&gt;&lt;br /&gt;This week I:&lt;br /&gt;Updated the website with a working version (including color picker).&lt;br /&gt;Worked on getting data manager working.&lt;br /&gt;&lt;br /&gt;Next week's plan:&lt;br /&gt;Finish data management page.&lt;br /&gt;Start legend/logo export feature.&lt;br /&gt;Look into copyright permissions info from google.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-7439367146041755768?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/7439367146041755768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=7439367146041755768' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7439367146041755768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7439367146041755768'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/weekly-update_31.html' title='Weekly update'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6731030462138560599</id><published>2007-07-26T16:11:00.000-04:00</published><updated>2007-07-26T16:12:49.439-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='homepage'/><title type='text'>Updated public version</title><content type='html'>&lt;a href="http://www.phylogeoviz.org/version_1.02/"&gt;Version 1.02&lt;/a&gt; is up.  Now users can edit their colors and their data input is simpler.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6731030462138560599?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6731030462138560599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6731030462138560599' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6731030462138560599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6731030462138560599'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/updated-public-version.html' title='Updated public version'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6034869241407603169</id><published>2007-07-26T16:10:00.001-04:00</published><updated>2007-07-26T16:11:27.136-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data input'/><title type='text'>Removed need to input pop number and hap number</title><content type='html'>I simplified the input format requirements.  The user no longer has to input the number of populations and haplotypes on the first line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6034869241407603169?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6034869241407603169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6034869241407603169' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6034869241407603169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6034869241407603169'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/removed-need-to-input-pop-number-and.html' title='Removed need to input pop number and hap number'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-4588026730867795272</id><published>2007-07-22T22:49:00.000-04:00</published><updated>2007-07-22T22:54:18.337-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='weekly update'/><title type='text'>Weekly update</title><content type='html'>This week I:&lt;br /&gt;1. Got my code into SVN.  I feel safer already.&lt;br /&gt;2. Made the input protocol more flexible.&lt;br /&gt;3. Allow users to set own population names.&lt;br /&gt;4. Allow users to change haplotype colors.&lt;br /&gt;5. Updated website.&lt;br /&gt;&lt;br /&gt;Next week I will:&lt;br /&gt;1. Update website with new version.&lt;br /&gt;2. Get code into repository.&lt;br /&gt;3. Add grouping of haplotypes feature.&lt;br /&gt;4. Add include/exclude data screen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-4588026730867795272?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/4588026730867795272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=4588026730867795272' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/4588026730867795272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/4588026730867795272'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/weekly-update_22.html' title='Weekly update'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-7973450363974432973</id><published>2007-07-22T22:41:00.000-04:00</published><updated>2007-07-22T22:49:21.179-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>Color picker working!!!</title><content type='html'>After some heartache, I finally got the colorpicker working.  Now the user can change the colors for each of the haplotypes on the preview pane.  I used &lt;a href="http://www.knallgrau.at/code/colorpicker"&gt;Knallgrau's color picker&lt;/a&gt; as a base for this.  &lt;br /&gt;&lt;br /&gt;I ran into many problems trying to get an event handler to fire correctly.  I tried at first to have the pie colors update simultaneously with the color picker's.  I wanted to associate an event handler with changes to the input field's value (string of HTML color type), but for some reason the value is hidden from the event handler.  Eventually, I tied an event handler to clicking the 'ok' button of the color picker.  There is only one color picker display for all of the haplotypes though, so I had to loop through them all to find the one that had changed.  Then we loop through the corresponding pie slice and reset their fill color.  Remarkably, this is super fast.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-7973450363974432973?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/7973450363974432973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=7973450363974432973' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7973450363974432973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7973450363974432973'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/color-picker-working.html' title='Color picker working!!!'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6981083078131247585</id><published>2007-07-22T17:58:00.000-04:00</published><updated>2007-07-22T18:05:22.823-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Setting the default map type in Google Maps</title><content type='html'>So I ran into a silly bug trying to set the default map type (default, satellite, or hybrid) on a google map.  Basically I kept getting an error and the map wouldn't load even though I triple checked the constant's name, etc.  Turns out that the order that you call setMap commands matters.  Turns out that the setCenter() command must be given first before any other alterations to the map can be done.  Here's the code for setting the map to satellite view by default:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    map.setCenter(new GLatLng(36.739067, -77.905517), 5);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;    var givenmaptypes = map.getMapTypes();&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;    map.setMapType(givenmaptypes[1]);  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I think you can set the maptype within the setCenter function call as well.  This &lt;a href="http://groups.google.com/group/Google-Maps-API/browse_thread/thread/ff5b45ea2b532d22/89cbe0a85f0f5d47?lnk=gst&amp;q=setting+satellite&amp;amp;rnum=4#89cbe0a85f0f5d47"&gt;Google Maps API thread&lt;/a&gt; was useful as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6981083078131247585?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6981083078131247585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6981083078131247585' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6981083078131247585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6981083078131247585'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/setting-default-map-type-in-google-maps.html' title='Setting the default map type in Google Maps'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-8693834038762350692</id><published>2007-07-17T17:41:00.000-04:00</published><updated>2007-07-17T17:43:09.152-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new feature'/><title type='text'>Can specify own names of populations</title><content type='html'>Added ability of user to set their own population names. (version 1.01).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-8693834038762350692?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/8693834038762350692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=8693834038762350692' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/8693834038762350692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/8693834038762350692'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/can-specify-own-names-of-populations.html' title='Can specify own names of populations'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-82509573841133569</id><published>2007-07-17T16:57:00.000-04:00</published><updated>2007-07-17T17:00:03.993-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='website update'/><category scheme='http://www.blogger.com/atom/ns#' term='new version'/><category scheme='http://www.blogger.com/atom/ns#' term='bug fix'/><title type='text'>Updated website, fixed extra whitespace bug, uploaded new version 1.0</title><content type='html'>Fleshed out the website with a bit more content.  Hopefully made the instructions easier to follow.&lt;br /&gt;&lt;br /&gt;Fixed the whitespace bug in the input form.  Now the program doesn't crash with beginning or trailing whitespace and accepts data delimited both by tabs and/or spaces.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-82509573841133569?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/82509573841133569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=82509573841133569' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/82509573841133569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/82509573841133569'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/updated-website-fixed-extra-whitespace.html' title='Updated website, fixed extra whitespace bug, uploaded new version 1.0'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-5666152530318987932</id><published>2007-07-17T16:53:00.000-04:00</published><updated>2007-07-17T16:57:38.157-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='notes'/><title type='text'>Symbolic links in UNIX</title><content type='html'>Just a note to self here:&lt;br /&gt;&lt;br /&gt;To create a symbolic link use the following command:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; ln -s [source file or directory] [target name]&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Note: I can't figure out how to overwrite sym-links to point to new things.  It's easiest to delete the old link, then write the new one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-5666152530318987932?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/5666152530318987932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=5666152530318987932' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/5666152530318987932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/5666152530318987932'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/symbolic-links-in-unix.html' title='Symbolic links in UNIX'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-9003304786580477449</id><published>2007-07-17T15:24:00.001-04:00</published><updated>2007-07-17T15:25:09.427-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='escape characters'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>Escape Characters link</title><content type='html'>Note to self: helpful escape character link:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.digitalmediaminute.com/reference/entity/index.php"&gt;http://www.digitalmediaminute.com/reference/entity/index.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-9003304786580477449?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/9003304786580477449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=9003304786580477449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/9003304786580477449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/9003304786580477449'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/escape-characters-link.html' title='Escape Characters link'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-7747816211602137675</id><published>2007-07-17T15:01:00.000-04:00</published><updated>2007-07-17T15:09:44.114-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><category scheme='http://www.blogger.com/atom/ns#' term='bug fix'/><title type='text'>bugs fixed -- comment console.logs out</title><content type='html'>So I was running into the problem that the program worked fine on my machine but was puking on David's.  The problem turned out to be how I was debugging my programs.  I've been outputting debugging info to a console log readable in the Firebug program.  If you don't have Firebug installed, the console functions are not understandable and the browser barfs.  So after commenting out all my console logs, the problem went away.&lt;br /&gt;&lt;br /&gt;I also noticed the bug that if you moved a pie and zoomed the map, the pies would not be in the right location.  Turns out that I had been updating the population centers twice (once on drag, then again on zoom with the same move state), so was getting erroneous placement info.  Once again, turned out to be an easy fix.  Just commented out the second population updater in the zoom event handler.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-7747816211602137675?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/7747816211602137675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=7747816211602137675' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7747816211602137675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7747816211602137675'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/bugs-fixed-comment-consolelogs-out.html' title='bugs fixed -- comment console.logs out'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-3900265415405780368</id><published>2007-07-17T14:59:00.000-04:00</published><updated>2007-07-17T15:01:01.142-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><title type='text'>Does NOT work in Internet Explorer</title><content type='html'>PhyloGeoViz does NOT work in IE.  But it does work in Firefox.  Have no idea why it doesn't work in IE.  This will be a bear to work out I think.  I don't know if it's worth it.  Any arguments why I should or should not take the time to fix it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-3900265415405780368?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/3900265415405780368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=3900265415405780368' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3900265415405780368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3900265415405780368'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/does-not-work-in-internet-explorer.html' title='Does NOT work in Internet Explorer'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6604636283483172822</id><published>2007-07-17T14:57:00.000-04:00</published><updated>2007-07-17T14:59:19.108-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><title type='text'>slow run time</title><content type='html'>One thing I noticed when running PhyloGeoViz with my full dataset (~85 pops and ~40 haplotypes) was that the pie generation is pretty slow.  I'll have to look to ways to speed it up.  In the meantime, I need to put up some sort of disclaimer to the user.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6604636283483172822?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6604636283483172822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6604636283483172822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6604636283483172822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6604636283483172822'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/slow-run-time.html' title='slow run time'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-1660452665497331493</id><published>2007-07-15T16:35:00.000-04:00</published><updated>2007-07-15T16:49:47.169-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='weekly update'/><title type='text'>Weekly update</title><content type='html'>Sorry for the lack of posts, I was away at the &lt;a href="http://www.2007.botanyconference.org/"&gt;Botany 2007&lt;/a&gt; conference in Chicago.  Things went great at the conference.  I managed to get the PhyloGeoViz skeleton mostly working prior to the conference and was able to actually input my own data into the program!  It was a great moment.  I then created most of my talk's slides based on this output.  I pitched the project and &lt;a href="https://www.nescent.org/wg_phyloinformatics/Phyloinformatics_Summer_of_Code_2007"&gt;NESCent's Phyloinformatics Summer of Code&lt;/a&gt; and &lt;a href="http://code.google.com/soc/2007/"&gt;Google's Summer of Code&lt;/a&gt; programs at the end of my talk.  Several people approached me afterwards, and they seemed very interested in participating next year!  So hopefully I was able to do some recruiting.&lt;br /&gt;&lt;br /&gt;On the coding front, I fixed a bad bug that was causing the program to barf in versions of Firefox without the debugger plugin.  Unfortunately, the code still doesn't work in Internet Explorer.  I also fixed a bug relating to dragging and zooming pies.&lt;br /&gt;&lt;br /&gt;To do for this week:&lt;ul&gt;&lt;li&gt;Catch up on the project blog and chronicle what changes I've made to the code and my bug fixes.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Write function that will output the legend as overlay data in the exported kml.&lt;/li&gt;&lt;li&gt;Write function that can change the boundaries of the bins for the different pie sizes.&lt;/li&gt;&lt;li&gt;Write feature so that user can choose whether all the pies are the same size or have relative sizes.&lt;/li&gt;&lt;li&gt;Write a color picker function for changing the haplotype colors.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-1660452665497331493?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/1660452665497331493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=1660452665497331493' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/1660452665497331493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/1660452665497331493'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/weekly-update.html' title='Weekly update'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-8925547914393057839</id><published>2007-07-02T11:30:00.001-04:00</published><updated>2007-07-02T11:35:40.981-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><title type='text'>Bug fixed</title><content type='html'>Turns out php was trying to interpret the xml header declaration as php.  Adding an echo statement cleared out &lt;a href="http://phylogeoviz.blogspot.com/2007/07/bug-help.html"&gt;this bug&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;Thanks, Jack for pointing this out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-8925547914393057839?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/8925547914393057839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=8925547914393057839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/8925547914393057839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/8925547914393057839'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/bug-fixed.html' title='Bug fixed'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-3822432635142879288</id><published>2007-07-02T11:30:00.000-04:00</published><updated>2007-07-02T11:37:24.950-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plan'/><category scheme='http://www.blogger.com/atom/ns#' term='weekly update'/><title type='text'>Weekly plan</title><content type='html'>This week is a bit frantic because I leave for the &lt;a href="http://www.2007.botanyconference.org/"&gt;Botany conference&lt;/a&gt; on Saturday.  I've been making a big push to have PhyloGeoViz ready for an alpha release and debut there.    Here's my to do list for this week:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Transfer &lt;a href="http://phylogeoviz.org/"&gt;homepage&lt;/a&gt; style to the other app pages so the look is consistent.  &lt;/li&gt;&lt;li&gt;Figure out export.php bug on server so that it will run!&lt;/li&gt;&lt;li&gt;Write function that will output the legend as overlay data in the exported kml.&lt;/li&gt;&lt;li&gt;Write function that can change the boundaries of the bins for the different pie sizes.&lt;/li&gt;&lt;li&gt;Write feature so that user can choose whether all the pies are the same size or have relative sizes.&lt;/li&gt;&lt;li&gt;Write a color picker function for changing the haplotype colors.&lt;/li&gt;&lt;li&gt;Import and manipulate my own data to create slide for talk!!!&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-3822432635142879288?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/3822432635142879288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=3822432635142879288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3822432635142879288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3822432635142879288'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/weekly-plan.html' title='Weekly plan'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-1804607491485462976</id><published>2007-07-02T11:16:00.001-04:00</published><updated>2007-07-02T11:21:36.748-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='homepage'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Beautiful site design -- Thanks, Jack!</title><content type='html'>Another project this weekend was to create a nicer looking home for the app on the web.  The main page for the project will be at &lt;a href="http://phylogeoviz.org/"&gt;http://phylogeoviz.org/&lt;/a&gt;.  &lt;a href="http://jacksonfox.org/"&gt;Jack&lt;/a&gt; helped me out with some CSS stuff and put together a great looking page for the project.  It's great having a web designer in the family!  Anyways, the front page looks great and I'll get to linking it with the actual app later this week.&lt;br /&gt;&lt;br /&gt;Thanks, Jack!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-1804607491485462976?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/1804607491485462976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=1804607491485462976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/1804607491485462976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/1804607491485462976'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/beautiful-site-design-thanks-jack.html' title='Beautiful site design -- Thanks, Jack!'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-8821102083846256665</id><published>2007-07-02T11:02:00.001-04:00</published><updated>2007-07-02T11:07:15.172-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Bug!  help!</title><content type='html'>I've got &lt;a href="http://www.oenimal.net/erica/version_0.2/"&gt;Version 0.2&lt;/a&gt; up, but unfortunately the export php script fails!  Oh no!  Of course, the script runs fine on my machine and environment, but on the server no longer functions.  Why, oh why!  Here's the error:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Parse error: syntax error, unexpected T_STRING in /home/.nayla/zeppox/oenimal.net/erica/version_0.2/export.php on line 5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I thought it might be a php version issue, so updated the php version on the server, so now we're both running php  5.2.2.  But the error remains.  Maybe it's a security issue with php?  Anyways, any ideas??&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-8821102083846256665?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/8821102083846256665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=8821102083846256665' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/8821102083846256665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/8821102083846256665'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/bug-help.html' title='Bug!  help!'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-1108381408671549410</id><published>2007-07-02T10:52:00.000-04:00</published><updated>2007-07-02T11:02:05.156-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Earth'/><category scheme='http://www.blogger.com/atom/ns#' term='weekly update'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Version 0.2 up</title><content type='html'>Busy, busy week.  &lt;a href="http://www.oenimal.net/erica/version_0.2/"&gt;Version 0.2&lt;/a&gt; is up!  I managed to get the export function working.  The app can now write a kml file that can be read by Google Earth.  This was a bit tricky because I had to fix several functions that weren't updating some of the variables properly after an event changed their state.  In any case, that's working now.&lt;br /&gt;&lt;br /&gt;I was also able to implement a few new features on the preview page.  The pies can now be different sizes based on the population's sample size.  The pies can also be increased or decreased in diameter.  Also, I can now generate legend data.  I'm showing the haplotype labels and their corresponding colors and the sample size to pie diameter legend data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-1108381408671549410?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/1108381408671549410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=1108381408671549410' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/1108381408671549410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/1108381408671549410'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/version-02-up.html' title='Version 0.2 up'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-3892042270799515020</id><published>2007-07-02T10:49:00.000-04:00</published><updated>2007-07-02T10:52:29.959-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='drawing circles'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>Drawing div circles using javascript</title><content type='html'>For the legend I had to generate circles of certain pixel sizes.  To do so, I used Walter Zorn's helpful &lt;a href="http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm"&gt;javascript graphics library&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-3892042270799515020?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/3892042270799515020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=3892042270799515020' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3892042270799515020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3892042270799515020'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/07/drawing-div-circles-using-javascript.html' title='Drawing div circles using javascript'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-2297484920251425392</id><published>2007-06-25T11:17:00.000-04:00</published><updated>2007-06-25T11:35:47.049-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plan'/><category scheme='http://www.blogger.com/atom/ns#' term='weekly update'/><title type='text'>Weekly update</title><content type='html'>This past week focused on development of a basic &lt;a href="http://oenimal.net/erica/data_input/"&gt;data input&lt;/a&gt; page.  I decided to use form variables (at least to start with) as the way to pass information between pages.  I had to learn how to write the html to allow that plus some php to parse the passed information.  I also had to figure out how to pass the variables between php and javascript to get the input data and viewer scripts I'd written to get along.  Anyways, as a result I have a rudimentary input page tied to my viewer now.  I, of course, still need to clean it up, add error handling, different input types, etc.  But it's a start!&lt;br /&gt;&lt;br /&gt;On the administrative side of things, I added my project blog to the &lt;a href="http://planet-soc.com/"&gt;Planet SoC&lt;/a&gt; site.  Basically it's a neat aggregation of a bunch of blogs concerning many different Google Summer of Code projects.  I also updated the wiki with my design doc.&lt;br /&gt;&lt;br /&gt;To do for this week:&lt;br /&gt;Get basic output page written and in synchrony with the other pages.&lt;br /&gt;If time, add some functionality to the viewer (like changing colors).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-2297484920251425392?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/2297484920251425392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=2297484920251425392' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/2297484920251425392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/2297484920251425392'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/weekly-update_25.html' title='Weekly update'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-216414498822061796</id><published>2007-06-25T00:38:00.000-04:00</published><updated>2007-06-25T00:43:26.772-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data input'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Skeleton of data input working</title><content type='html'>I got a &lt;a href="http://oenimal.net/erica/data_input/"&gt;skeleton of the data input&lt;/a&gt; working this week.  Basically, the input text field is just a large textarea form field.  Then I use a php script to parse out the variables, then use the javascript code I used before to generate the map pies.  Data input could certainly be cleaned up, but this was just so I could learn one way of passing data from page to page (through form variables).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-216414498822061796?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/216414498822061796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=216414498822061796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/216414498822061796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/216414498822061796'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/skeleton-of-data-input-working.html' title='Skeleton of data input working'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-759248667274542796</id><published>2007-06-18T21:39:00.000-04:00</published><updated>2007-06-18T21:44:04.381-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='drawing circles'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Able to generate many pies</title><content type='html'>I got the script working to &lt;a href="http://www.duke.edu/~yet2/gsoc/many%20random%20pies.html"&gt;generate and manage many pies&lt;/a&gt; at once.  The script generates 10 pies placed randomly on the map with random haplotype distributions with random (but consistent!) colors.  The pies are draggable and zoomable, and the DOM node structure remains consistent with zooming.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-759248667274542796?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/759248667274542796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=759248667274542796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/759248667274542796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/759248667274542796'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/able-to-generate-many-pies.html' title='Able to generate many pies'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-3008368393569459583</id><published>2007-06-18T17:38:00.001-04:00</published><updated>2007-06-18T17:42:02.339-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plan'/><category scheme='http://www.blogger.com/atom/ns#' term='wiki'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>updated project wiki to include design doc</title><content type='html'>Finally got around to putting the &lt;a href="http://phylogeoviz.blogspot.com/2007/06/detailed-design-document-draft-1.html"&gt;design doc&lt;/a&gt; up on the wiki.  I didn't get a chance to incorporate the &lt;a href="http://phylogeoviz.blogspot.com/2007/06/meeting-with-david-design-doc-changes.html"&gt;haplotype grouping feature&lt;/a&gt; into the design, but I image it would mean added a table of haplotyes x group identifier on the manual data input and the data management pages.  Also, I'd like to incorporate Norm's suggestions of a &lt;a href="http://phylogeoviz.blogspot.com/2007/06/more-features-to-add.html"&gt;grayscale feature and export as .ai feature&lt;/a&gt; eventually too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-3008368393569459583?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/3008368393569459583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=3008368393569459583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3008368393569459583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3008368393569459583'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/updated-project-wiki-to-include-design.html' title='updated project wiki to include design doc'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-3712016095724500217</id><published>2007-06-18T17:03:00.000-04:00</published><updated>2007-06-18T17:06:23.232-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>More features to add</title><content type='html'>I was showing off the pie viewer prototype to Norm, and he had some great suggestions for features.&lt;br /&gt;&lt;br /&gt;A black/white/grayscale option.  Many journals prefer black and white figures, so it'd be great to be able to color pies with grayscale and maybe patterns.&lt;br /&gt;&lt;br /&gt;Be able to save as an Illustrator or other vector based document.  I'm creating all these svg's, so allowing output to be read by an svg master manipulator seems smart.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-3712016095724500217?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/3712016095724500217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=3712016095724500217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3712016095724500217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3712016095724500217'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/more-features-to-add.html' title='More features to add'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6682114739897167983</id><published>2007-06-18T11:43:00.001-04:00</published><updated>2007-06-18T11:56:40.540-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='weekly update'/><title type='text'>Weekly update</title><content type='html'>This past week I:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Met with David and got feedback on my design document.&lt;/li&gt;&lt;li&gt;Wrote a &lt;a href="http://www.duke.edu/%7Eyet2/gsoc/a%20zoomable%20polygon%20pie.html"&gt;map preview app&lt;/a&gt; that uses javascript and generates a random pie on a google map that is draggable and zoomable. &lt;/li&gt;&lt;/ul&gt;Next week's goals:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Update design document; post it to the wiki.&lt;/li&gt;&lt;li&gt;Decide on how to pass information from page to page (through form variables, writing/reading a data file, a database server like MySQL).&lt;/li&gt;&lt;li&gt;Design a data structure to be used.&lt;/li&gt;&lt;li&gt;Write a simple input page that allows uploading of a data file.&lt;/li&gt;&lt;li&gt;Link input page to preview page (the pie viewer that was written last week).&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6682114739897167983?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6682114739897167983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6682114739897167983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6682114739897167983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6682114739897167983'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/weekly-update_18.html' title='Weekly update'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6206469993992730313</id><published>2007-06-18T10:46:00.000-04:00</published><updated>2007-06-18T11:42:31.639-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='drawing circles'/><category scheme='http://www.blogger.com/atom/ns#' term='lat long'/><category scheme='http://www.blogger.com/atom/ns#' term='algorithm'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>getting the preview pane working</title><content type='html'>I spent most of this week trying to get the basic functionality of the preview pane working.  The goals were to draw a map with randomly generated pie charts and colors where the pies were draggable and zoomed appropriately.  I succeeded in generating this &lt;a href="http://www.duke.edu/~yet2/gsoc/a%20zoomable%20polygon%20pie.html"&gt;zoomable and draggable pie chart&lt;/a&gt;.  Try it out.  The page generates a pie with random slices and colors.  Try dragging the pie, zooming to new levels, and try dragging again.&lt;br /&gt;&lt;br /&gt;These are the steps that I took to build that code:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Draw a circle on a map.&lt;/li&gt;&lt;li&gt;Draw multiple circles on a map.&lt;/li&gt;&lt;li&gt;Make the circles draggable.&lt;/li&gt;&lt;li&gt;Draw a pie on a map.&lt;/li&gt;&lt;li&gt;Make the pie draggable.&lt;/li&gt;&lt;li&gt;Make the pie zoomable.&lt;/li&gt;&lt;li&gt;Make the pie zoomable and draggable.&lt;/li&gt;&lt;/ol&gt;I ran into various bugs along the way that made this problem really challenging.  Here are some of the implementation details:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Drawing the circles in Google Maps (GM) is actually easier than in Google Earth because you can easily calculate the pixel coordinates of the 90 vertices that comprise the circle.  GM provides functions like fromDivPixelToLatLng() and fromLatLngToDivPixel() that then make switching back and forth to latlong coordinates easier, and you don't have to do all the complicated haversine computations yourself.  &lt;/li&gt;&lt;li&gt;Making the circles draggable was a little difficult because you have to wrap the created circle svg's within appropriate HTML div elements.  This turned out to be somewhat complicated because it involved manipulating the DOM node tree that simultaneously updated our array of svg elements.  &lt;/li&gt;&lt;li&gt;Drawing the pies instead of circles added another layer of complexity because not only does each svg of a pie slice need to be wrapped in its own div but then all the slices of the same pie need to be wrapped together in another div that was made draggable.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;One bug I ran into was how to get the pie pieces to fit together seamlessly.  The random numbers generated for the dimensions of each slice didn't correspond exactly with the 90 evenly spaced vertices (one vertex every 5 degrees), but some simple rounding and modulo type operations fixed that.  That means that the pies are not exact representations of the input data, they may be off 5 degrees or so for each slice, but I'm guessing most humans won't be able to notice that. &lt;/li&gt;&lt;li&gt;So making the new pie divs draggable wasn't a problem, but making it work with the zoom function was a bear.  After zooming, the pie would either become undraggable, we'd see too many copies of the pie, and/or not all of the copies would be the same or in the correct places.  There were several issues to overcome.  First, I had to wipe and redraw the overlays containing the pies.  Second, I had to repackage the functions so that I could save and access the random data that had been generated (i.e. the slice angle data, slice colors).  Third, I had to update the location information of the pie after it was dragged.  The first two tasks were not bad, but the last bug took the longest to fix.&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;At first, I tried to get the new location info from calculating the center point of the encapsulating div.  Several problems with that approach: I could get the info for the left top corner of the div, but the height and width were zero, and the div's size was not only just large enough to fit the pie (the width of the div was not equal to the diameter of the circle) as I had assumed, and finally I realized that what was returned by style.left and style.top was NOT the coordinates of the top left corner but rather the offset of the coordinates in pixels.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I could use the offset in pixels to calculate the new lat and long for the center of the pie.  However, to convert from pixels to latlng units I needed to use a different function that incorporated zoom level information (different zooms will have different latlng to pixel relationships).  This involves declaring a GProjection variable to get the fromLatLngToPixel(latlng, zoomLevel) function.  Whew!  But finally, we have pies we can move and zoom.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6206469993992730313?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6206469993992730313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6206469993992730313' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6206469993992730313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6206469993992730313'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/getting-preview-pane-working.html' title='getting the preview pane working'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-817806370933733131</id><published>2007-06-18T10:25:00.000-04:00</published><updated>2007-06-18T18:44:39.696-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Links to useful documentation for working with javascript and Google Maps</title><content type='html'>&lt;a href="http://www.prototypejs.org/"&gt;Prototype&lt;/a&gt; is an excellent javascript library that basically implements all those functions that you wish came standard but didn't.  Yay!  Thanks to Cyrus and Jack who pointed this out to me.  The &lt;a href="http://www.prototypejs.org/api"&gt;documentation&lt;/a&gt; is pretty good too.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.w3schools.com/jsref/default.asp"&gt;Javascript documentation&lt;/a&gt;.  Fairly helpful, but not very complete.  I ended up buying &lt;a href="http://www.oreilly.com/catalog/jscript5/"&gt;O'Reilly's javascript book&lt;/a&gt; this weekend to supplement this.  The book's proven to be extremely helpful so far.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.w3schools.com/htmldom/default.asp"&gt;HTML DOM reference&lt;/a&gt;.  Helpful, but doesn't have an 'DOM Element' section, which is annoying.  The O'Reilly book does though, which once again is great.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.mozilla.org/en/docs/DOM:element"&gt;HTML DOM Element reference&lt;/a&gt;.  On Mozilla's development site.  Has links to other references on javascript that might be worth checking out.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.w3schools.com/tags/tag_style.asp"&gt;General HTML Tag reference&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/apis/maps/documentation/reference.html"&gt;Google Maps API reference&lt;/a&gt;.  It has all the functions, but it's a bit difficult to parse.  It can be difficult to find what a function belongs to -- the headings need to be set apart more.  Also, some example syntax would be helpful.  All in all, it's a necessary resource, but difficult to understand.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http://groups.google.com/group/Google-Maps-API/web/examples-tutorials-gpolygon-gpolyline"&gt;GPolygon class examples&lt;/a&gt;.  On the Google Maps API forum.  Many helpful links that showed how they implemented circles, making them draggable, resizable, etc.  Very useful reference.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://getfirebug.com/"&gt;Firebug debugger&lt;/a&gt;.  I've been using this debugger for inside website stuff.  It's generally awesome.  You can view the DOM hierarchy, set break points, and generally debug your code with it.  Only complaints so far are that the debugging functionality appears to be a line off for some reason and sometimes the program fails to recognize the breakpoints you set (just blows right through them).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-817806370933733131?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/817806370933733131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=817806370933733131' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/817806370933733131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/817806370933733131'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/links-to-useful-documentation-for.html' title='Links to useful documentation for working with javascript and Google Maps'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-2583942623443566870</id><published>2007-06-18T10:08:00.000-04:00</published><updated>2007-06-18T10:25:00.990-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thoughts'/><category scheme='http://www.blogger.com/atom/ns#' term='minutes'/><category scheme='http://www.blogger.com/atom/ns#' term='meeting'/><category scheme='http://www.blogger.com/atom/ns#' term='David'/><title type='text'>Meeting with David -- design doc changes</title><content type='html'>Met with David this week to go over my design document.  Generally the comments were good, and we mostly talked about adding some features and how to pass data from page to page.  Here are some notes and thoughts from the meeting:&lt;br /&gt;&lt;br /&gt;Features to add:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I should add a feature on the 'manage data' page to group haplotypes together.&lt;/li&gt;&lt;li&gt;On the preview page there should be an expand option to make the preview map pane larger.&lt;/li&gt;&lt;li&gt;Instead of having a special .pgv format for my application, can we fit everything within a .kml that our viewer can read as well?&lt;/li&gt;&lt;/ul&gt;Passing data:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The next big design decision is how to pass the data from page to page.  We have several options:&lt;/li&gt;&lt;li&gt;All through form variables?  &lt;/li&gt;&lt;li&gt;By using a database server?  &lt;/li&gt;&lt;li&gt;By writing and accessing our own output files?  &lt;/li&gt;&lt;li&gt;What kind of data structure should be used to hold the data?  &lt;/li&gt;&lt;/ul&gt;We also talked about what languages to implement all this in.  I had been planning on using php for all the server talking stuff and javascript for within the webpage stuff, but David made the point that using two languages is probably totally unnecessary, can javascript be enough?  I think that sounds great to just learn one.  The only problem I see is that it may be difficult (or impossible) to do server interactive stuff using javascript.  I'll have to investigate this more.&lt;br /&gt;&lt;br /&gt;From this meeting, it became clear what my next step should be: to build a skeleton application.  The goals are to&lt;br /&gt;&lt;ol&gt;&lt;li&gt;be able to display pies on a map&lt;/li&gt;&lt;li&gt;to link (and be able to pass data) from the input page to the display page.&lt;/li&gt;&lt;/ol&gt;David also encouraged me to use the programming resources at NESCent (namely Xianhua), so maybe next week after I've gotten my feet wet with javascript, we can meet up with Xianhua and ask some more detailed implementation questions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-2583942623443566870?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/2583942623443566870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=2583942623443566870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/2583942623443566870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/2583942623443566870'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/meeting-with-david-design-doc-changes.html' title='Meeting with David -- design doc changes'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-3122806795308703078</id><published>2007-06-18T10:07:00.000-04:00</published><updated>2007-06-18T10:08:35.452-04:00</updated><title type='text'>Apologies -- a little behind on blogging</title><content type='html'>Sorry, got a bit behind on blogging.  The next few posts concern my progress this past week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-3122806795308703078?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/3122806795308703078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=3122806795308703078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3122806795308703078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3122806795308703078'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/apologies-little-behind-on-blogging.html' title='Apologies -- a little behind on blogging'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-3190003196275300556</id><published>2007-06-10T23:03:00.000-04:00</published><updated>2007-06-10T23:14:03.032-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='weekly update'/><title type='text'>Weekly update</title><content type='html'>This past week I put together a draft of my &lt;a href="http://phylogeoviz.blogspot.com/2007/06/detailed-design-document-draft-1.html"&gt;design document&lt;/a&gt;.  I tried to be as comprehensive as possible and made some mock ups for each page the user will encounter.  Any comments on it are appreciated! &lt;br /&gt;&lt;br /&gt;After doing all this design work I realize that I need to learn a lot more javascript than I had expected.  While I'll still be exporting KML to Google Earth, I'll be previewing the visualizations a lot more in Google Maps which uses javascript.  This puts me a little behind, because I'll have to get caught up on javascript this week too.&lt;br /&gt;&lt;br /&gt;To do this week:&lt;ul&gt;&lt;li&gt;Meet with David and get feedback on design doc.&lt;/li&gt;&lt;li&gt;Make changes to design doc; post on wiki.&lt;/li&gt;&lt;li&gt;Familiarize self with javascript fundamentals&lt;/li&gt;&lt;li&gt;Implement the basic pie chart generation functionality. Functionality should include:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Draw a pie on a google map.&lt;/li&gt;&lt;li&gt;Plots multiple objects (working up to pie charts, but starting with placemarks) on a map.&lt;/li&gt;&lt;li&gt;Basic import of data.&lt;/li&gt;&lt;li&gt;Basic export to kml.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-3190003196275300556?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/3190003196275300556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=3190003196275300556' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3190003196275300556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3190003196275300556'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/weekly-update_10.html' title='Weekly update'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-193150143250138312</id><published>2007-06-10T20:29:00.000-04:00</published><updated>2007-06-10T23:02:23.872-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plan'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Detailed design document, draft 1</title><content type='html'>&lt;a href="http://www.duke.edu/%7Eyet2/gsoc/design%20docs/input-page.png"&gt;&lt;img src="http://www.duke.edu/%7Eyet2/gsoc/design%20docs/input-page-400.png" /&gt;&lt;/a&gt;&lt;br /&gt;If the user selects 'input manually',&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.duke.edu/%7Eyet2/gsoc/design%20docs/man-input.png"&gt;&lt;img src="http://www.duke.edu/%7Eyet2/gsoc/design%20docs/man-input-400.png" /&gt;&lt;/a&gt;&lt;br /&gt;The default numbers of haplotypes and populations are set to 10.  Users can update these values to get the appropriate number of rows and columns in the data matrix.  Unless the data matrix is small, the user will likely have to scroll within the table to input all the data.  To facilitate this the population, lat, and long columns and the header row will be frozen.  After the data is saved, the application checks the input.  If the data is validated, we go to&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.duke.edu/%7Eyet2/gsoc/design%20docs/data-management.png"&gt;&lt;img src="http://www.duke.edu/%7Eyet2/gsoc/design%20docs/data-management-400.png" /&gt;&lt;/a&gt;&lt;br /&gt;We arrive at this page once the data have been validated (whether input by hand or uploaded).  The purpose of this page is to allow the user to include/exclude populations and/or haplotypes.  By default all populations and haplotypes are included.  After any edits the user is taken to&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.duke.edu/%7Eyet2/gsoc/design%20docs/map-page.png"&gt;&lt;img src="http://www.duke.edu/%7Eyet2/gsoc/design%20docs/map-page-400.png" /&gt;&lt;/a&gt;&lt;br /&gt;This window previews and allows the user to edit the visualization.  There are 3 possible visualizations:  1) Show just the sampling localities.  On this option, the map options 'haplotype color', 'pie size (absolute)', and 'pie size (relative)' are grayed out.  2) Display with circles relative to the sample size for each locality. In this case, the map option 'marker appearance' is grayed out. 3) Display full haplotype information for each locality.  In this case, the map option 'marker appearance' is grayed out. &lt;br /&gt;&lt;br /&gt;When editing any of the map options a panel will pop out with options for that task.  Map option definitions:&lt;ul&gt;&lt;li&gt;marker appearance: select what icons you want to identify each population&lt;/li&gt;&lt;li&gt;haplotype color: select colors for each haplotype&lt;/li&gt;&lt;li&gt;pie size (absolute): set the max diameter for each circle or pie&lt;/li&gt;&lt;li&gt;pie size (relative): choose if pies are all the same size or relative to the sample size; allows the user to set the bounds on the sample size bins&lt;/li&gt;&lt;/ul&gt;The map itself is fully functional.  Users can zoom in, pan, and access satellite imagery as they can in other google maps applications.  Furthermore, the users can click on drag any of the markers, circles, or pies to reposition them.  This should be very useful especially for avoiding overlapping pies.  If there's time, I'd like to add a button here for 'auto-fix overlapping pies', where the application detects collisions and repositions the pies for the user.&lt;br /&gt;&lt;br /&gt;Below the preview screen is the legend.  It shows the current color of each haplotype as well as the relative circle sizes and their corresponding sample sizes.  &lt;br /&gt;&lt;br /&gt;I know on the mock-up the preview screen is fairly small.  However, the page will scale with the window, so it should be big enough for most folks.  I will also consider moving the 'map options' below the map, so the map can be bigger.  I was thinking, though, that the user might find it annoying to constantly scroll up and down to see the effects of the 'map options'.&lt;br /&gt;&lt;br /&gt;Now to export the finalized map and legend.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.duke.edu/~yet2/gsoc/design%20docs/export.png"&gt;&lt;img src="http://www.duke.edu/~yet2/gsoc/design%20docs/export-400.png"&gt;&lt;/a&gt;&lt;br /&gt;From this page the user can export the visualization in four ways.  It's important for the user to do the repositioning, coloring, and other editing work here before exporting to Google Earth.  It's not possible to click and drag polygons in Google Earth as it is in Google Maps. If the user selects the .jpg option, they will be prompted to choose either saving the map and legend together or separately.  The other formats handle the map and legend separately anyways.&lt;br /&gt;&lt;br /&gt;Error handling: If the application has trouble reading the input file, then the validation will fail and generate this error page.&lt;br /&gt;&lt;a href="http://www.duke.edu/~yet2/gsoc/design%20docs/error-page.png"&gt;&lt;img src="http://www.duke.edu/~yet2/gsoc/design%20docs/error-page-400.png"&gt;&lt;/a&gt;&lt;br /&gt;The user is then directed back to either uploading or manually inputting their data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-193150143250138312?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/193150143250138312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=193150143250138312' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/193150143250138312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/193150143250138312'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/detailed-design-document-draft-1.html' title='Detailed design document, draft 1'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-5256675347653609771</id><published>2007-06-10T19:31:00.000-04:00</published><updated>2007-06-10T23:28:10.107-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plan'/><category scheme='http://www.blogger.com/atom/ns#' term='thoughts'/><category scheme='http://www.blogger.com/atom/ns#' term='flow chart'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Overall flow chart for the application</title><content type='html'>&lt;a href="http://www.duke.edu/~yet2/gsoc/design%20docs/flow-chart.png"&gt;&lt;img src="http://www.duke.edu/%7Eyet2/gsoc/design%20docs/flow-chart-400.png" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;In words:&lt;br /&gt;The user starts by inputting their data.  There are three options for data input.  After the data has been input, we validate that the data is appropriate and interpretable.  If not, we send an error message to the user, and ask them to resubmit their data.  If the data input is successful, we display the data back to the user and allow the user to include/exclude any populations and/or haplotypes.  Following data management, the user is taken to the preview visualization page.  Here a google map is displayed showing a visualization of the data.  There are various map and view options here that update the page.  The user can also return to the data management screen and edit previous choices.  Finally, the visualization can be exported in four formats.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-5256675347653609771?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/5256675347653609771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=5256675347653609771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/5256675347653609771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/5256675347653609771'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/overall-flow-chart-for-application.html' title='Overall flow chart for the application'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-4192525445821208385</id><published>2007-06-03T21:51:00.000-04:00</published><updated>2007-06-03T22:08:19.296-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='weekly update'/><title type='text'>Weekly update</title><content type='html'>This past week I...&lt;ul&gt;&lt;li&gt;Explored Google Earth and its APIs.&lt;/li&gt;&lt;li&gt;Figured out an algorithm for calculating vertices for drawing "circles" on a map.&lt;/li&gt;&lt;li&gt;Figured out how to write a pie chart in KML.&lt;/li&gt;&lt;li&gt;Explored Google Maps APIs.&lt;/li&gt;&lt;li&gt;Learned some javascript.&lt;/li&gt;&lt;li&gt;Learned how to embed Google Maps in a web page.&lt;/li&gt;&lt;li&gt;Have a better idea of what the overall design of the program will be like.&lt;/li&gt;&lt;/ul&gt;Next week the focus is on fleshing out the application's design.  I will...&lt;ul&gt;&lt;li&gt;Produce a page by page description of what the user sees.&lt;/li&gt;&lt;li&gt;To do so I will consider:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;How to input data.  Are they going to upload files, input in a text box?  What format?&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;How to export data.  Format?  Data persistence?  Can users store data, results, maps, etc.?&lt;/li&gt;&lt;li&gt;What is the viewer?  Google earth?  Google maps?&lt;/li&gt;&lt;li&gt;How large are the pie charts going to be in comparison with the geography?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How do we deal with the problem of overlapping pie charts?&lt;/li&gt;&lt;li&gt;How are we going to color the pie charts?  What if there are large numbers of haplotypes, how do we color them all distinctly and usefully?&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;The results of these decisions will be a comprehensive design document posted on the wiki.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-4192525445821208385?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/4192525445821208385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=4192525445821208385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/4192525445821208385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/4192525445821208385'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/weekly-update.html' title='Weekly update'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-3714727639647147471</id><published>2007-06-03T21:33:00.000-04:00</published><updated>2007-06-03T21:47:27.042-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Some notes on Javascript</title><content type='html'>To use the Google Maps API's I'll need to know javascript.  Here are some things I learned today:&lt;br /&gt;&lt;br /&gt;Javascript has funny objects.  Even functions are objects.  And there's a lot inheritance going on.&lt;br /&gt;&lt;br /&gt;For instance, if you want to create a new function that is a subtype of some class; you must implement all the appropriate "Abstract Methods" of that class.&lt;br /&gt;&lt;br /&gt;Javascript ties everything to your html document through the DOM and DOM events.  Examples of DOM elements are &amp;lt;div&amp;gt;, &amp;lt;body&amp;gt;, etc.  DOM events are events that are generated by certain actions in the document like loading, clicking, moving, dragging, etc.  Easiest way to think of GM is that each map instance is tied to a specific &amp;lt;div&amp;gt; or other element in your DOM.  Event handlers are functions that get called when a certain event occurs and then does something.&lt;br /&gt;&lt;br /&gt;Some useful websites:&lt;br /&gt;&lt;a href="http://www.google.com/apis/maps/documentation/reference.html"&gt;Google Maps API&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.w3schools.com/tags/default.asp"&gt;HTML tag list&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.w3schools.com/js/js_examples_3.asp"&gt;Javascript DOM reference&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-3714727639647147471?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/3714727639647147471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=3714727639647147471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3714727639647147471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3714727639647147471'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/some-notes-on-javascript.html' title='Some notes on Javascript'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-5919947666239228832</id><published>2007-06-03T21:18:00.000-04:00</published><updated>2007-06-03T21:31:12.745-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Maps'/><title type='text'>Playing with Google Maps</title><content type='html'>Yay!  After playing around with Google Maps I feel fairly confident that we'll be able to at least preview the maps in GM and allow the user to manipulate the document in various ways.&lt;br /&gt;&lt;br /&gt;For instance, I was able to create a &lt;a href="http://www.duke.edu/~yet2/gsoc/movable%20rectangle%20example.html"&gt;rectangle overlay that was then draggable&lt;/a&gt;.  You can imagine users dragging the pie charts around to avoid collisions and so forth.  Pretty neat functionality!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-5919947666239228832?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/5919947666239228832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=5919947666239228832' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/5919947666239228832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/5919947666239228832'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/playing-with-google-maps.html' title='Playing with Google Maps'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-507888319345277305</id><published>2007-06-03T18:33:00.000-04:00</published><updated>2007-06-03T18:55:19.404-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Earth'/><category scheme='http://www.blogger.com/atom/ns#' term='drawing circles'/><category scheme='http://www.blogger.com/atom/ns#' term='algorithm'/><title type='text'>image overlays vs. polygons idea revisited</title><content type='html'>I played around with the idea of using image overlays to create the pies vs. &lt;a href="http://phylogeoviz.blogspot.com/2007/06/my-first-pie.html"&gt;using polygons&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;Overlays&lt;br /&gt;Pros: In GE you can easily grab and move, resize, or rotate the image.  This way, the user wouldn't totally be reliant on our application to manipulate the pie charts.&lt;br /&gt;Cons: The images could get ugly if increased in size by too much.  Also, we'd lose the ability to turn different aspects of the pies on and off (like the labels, particular haplotypes, etc.).  And we wouldn't be able to change the colors of the different pie pieces without returning to the application.&lt;br /&gt;&lt;br /&gt;Polygons&lt;br /&gt;Pros: There's a lot of information retained in the file hierarchy.  The user can turn various components on and off and recolor them easily.  Plus, the image is likely to be crisper.&lt;br /&gt;Cons: The user cannot move or resize the pies without going back to our application.&lt;br /&gt;&lt;br /&gt;I think that having the ability to access the components of the pies (haplotypes, labels) easily outweighs the hassle of resizing and moving.  To get around the hassle, our program will have to have some sort of collision detection mechanism, and some easy way to resize pies.  Can we preview the map on google maps before exporting to GE?  and allow the users to change things there?  That may be the best work around.  So I'll continue down the polygon path and leave behind image overlays.&lt;br /&gt;&lt;br /&gt;Another thought on overlays: It would be nice to have a species distribution overlay function, where the user uploads an image file with the species distribution and can stretch it to fit the map.  Also, I wonder if someone's already made overlays or paths of things of common interest, like where the ice margin was at the LGM, or if there's a repository of species distribution data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-507888319345277305?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/507888319345277305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=507888319345277305' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/507888319345277305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/507888319345277305'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/image-overlays-vs-polygons-idea.html' title='image overlays vs. polygons idea revisited'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-9144171586400465422</id><published>2007-06-03T18:16:00.000-04:00</published><updated>2007-06-03T18:20:36.888-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KML'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Earth'/><category scheme='http://www.blogger.com/atom/ns#' term='drawing circles'/><title type='text'>my first pie!</title><content type='html'>I got my first pie working!  It &lt;a href="http://www.duke.edu/~yet2/gsoc/my-first-pie.jpg"&gt;looks good&lt;/a&gt;.  Not oblong anymore.  And I figure using 360 vertices should make generating pie pieces of any size easier.  I don't think it adds that much bulk to the code either, but if it's a problem we can always go down to 20 or so points.&lt;br /&gt;&lt;br /&gt;I placed the label and pie pieces in different folders so you can click off the labels easier.  Here's the &lt;a href="http://www.duke.edu/~yet2/gsoc/my%20first%20pie.kml"&gt;KML&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-9144171586400465422?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/9144171586400465422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=9144171586400465422' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/9144171586400465422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/9144171586400465422'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/my-first-pie.html' title='my first pie!'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-7400005621175429064</id><published>2007-06-03T17:51:00.001-04:00</published><updated>2007-06-03T17:52:16.873-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes'/><category scheme='http://www.blogger.com/atom/ns#' term='KML'/><title type='text'>Lat and Long in KML</title><content type='html'>While you can enter coordinates in "lat, long" pairs in the finder, in KML, within the &lt;coordinates&gt; tag, the order is &lt;i&gt;"longitude, latitude, altitude"&lt;/i&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-7400005621175429064?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/7400005621175429064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=7400005621175429064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7400005621175429064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7400005621175429064'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/lat-and-long-in-kml.html' title='Lat and Long in KML'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-443775287923230935</id><published>2007-06-01T17:04:00.000-04:00</published><updated>2007-06-01T17:20:23.042-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drawing circles'/><category scheme='http://www.blogger.com/atom/ns#' term='algorithm'/><title type='text'>finally have formula that's working to calculate locations of vertices</title><content type='html'>So, after poring over ink_polaroid's &lt;a href="http://bbs.keyhole.com/ubb/showflat.php/Cat/0/Number/23634/page/vc/fpart/all/vc/1"&gt;solution&lt;/a&gt; for what seems like forever, I finally figured out what I was doing wrong!  Just a note: PHP and Excel's arguments for the atan2 function are &lt;strong&gt;reversed&lt;/strong&gt;.  What a headache for something so simple.&lt;br /&gt;&lt;br /&gt;Here's the algorithm for calculating the latitude, phi2, and longitude, lambda2, of a point distance, d (in meters), away from a point with latitude, phi1, longitude, lambda1, and angle, theta (from vertical, parallel to longitude lines).&lt;br /&gt;&lt;br /&gt;d_rad = d/6378137 (6378137 m is radius of Earth at the equator)&lt;br /&gt;phi2 (in radians) = asin(sin(phi1)*cos(d_rad) + cos(phi1)*sin(d_rad)*cos(theta))&lt;br /&gt;dlon = atan2(sin(theta)*sin(d_rad)*cos(phi1), cos(d_rad) - sin(phi1)*sin(phi2))&lt;br /&gt;lambda2 (in radians) = Modulus(lambda1+dlon+PI, 2PI) - PI&lt;br /&gt;&lt;br /&gt;Remember to change everything back into degrees for GE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-443775287923230935?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/443775287923230935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=443775287923230935' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/443775287923230935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/443775287923230935'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/finally-have-formula-thats-working-to.html' title='finally have formula that&apos;s working to calculate locations of vertices'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-1603277675415255875</id><published>2007-06-01T14:13:00.000-04:00</published><updated>2007-06-01T14:14:43.204-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Earth'/><category scheme='http://www.blogger.com/atom/ns#' term='drawing circles'/><title type='text'>how about overlays instead of polygons?</title><content type='html'>Just another possibility -- how about using pie charts as overlays instead of polygons?  Just another thing to explore this weekend...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-1603277675415255875?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/1603277675415255875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=1603277675415255875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/1603277675415255875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/1603277675415255875'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/how-about-overlays-instead-of-polygons.html' title='how about overlays instead of polygons?'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6152300346705544435</id><published>2007-06-01T14:05:00.001-04:00</published><updated>2007-06-01T14:11:38.447-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Earth'/><category scheme='http://www.blogger.com/atom/ns#' term='drawing circles'/><title type='text'>oblong circles</title><content type='html'>I tried a bunch of tweaks to the formula that calculates the positions of the 20 vertices comprising the circle.  Unfortunately, all of them are off enough that the circle is still oblong, and it seriously morphs depending on where on the globe the central point is.  The formula that I ended up working was: &lt;br /&gt;&lt;br /&gt;Length of a degree of longitude = cos (latitude) * 111.325 kilometers&lt;br /&gt;&lt;br /&gt;from &lt;a href="http://www.ncgia.ucsb.edu/giscc/units/u014/u014.html"&gt;this source&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So my conclusion is that this formula must not be accurate enough.  I spent most of the rest of the day yesterday searching various google earth forums, and happened on &lt;a href="http://bbs.keyhole.com/ubb/showflat.php/Cat/0/Number/23634/page/vc/fpart/all/vc/1"&gt;this post&lt;/a&gt;.  It seems to calculate the vertices using the &lt;a href="http://en.wikipedia.org/wiki/Great-circle_distance"&gt;haversine formula and great circle distances&lt;/a&gt;.  I think this is the next method to explore.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6152300346705544435?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6152300346705544435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6152300346705544435' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6152300346705544435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6152300346705544435'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/06/oblong-circles.html' title='oblong circles'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-4990954059664765210</id><published>2007-05-29T15:54:00.001-04:00</published><updated>2007-05-29T16:57:05.932-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='algorithm'/><title type='text'>Algorithm for drawing a circle</title><content type='html'>Given:&lt;br /&gt;A starting location with longitude, clong, and latitude, clat all in decimal degrees.&lt;br /&gt;The radius, r, in km of the final circle.&lt;br /&gt;Points that define the circle are 0, pi/10, 2pi/10, 3pi/10, 4pi/10, 5pi/10, 6pi/10, 7pi/10, 8pi/10, 9pi/10, pi, 11pi/10, 12pi/10, 13pi/10, 14pi/10, 15pi/10, 16pi/10, 17pi/10, 18pi/10, 19pi/10, angles from the central point with radius, r.&lt;br /&gt;&lt;br /&gt;For each of 20 points that define the circle:&lt;br /&gt;theta, the angle in radians, that changes from the horizontal for each point.&lt;br /&gt;&lt;br /&gt;1. Calculate (x, y), the cartesian point that is x km east, y km north relative to the central point.&lt;br /&gt;*a. x = r*cos(theta)&lt;br /&gt;*b. y = r*sin(theta)&lt;br /&gt;&lt;br /&gt;2. Calculate y'', the latitude of the point in decimal degrees.&lt;br /&gt;*a. y' = y/111.12km/degree &lt;br /&gt;*b. y'' = clat + y'&lt;br /&gt;&lt;br /&gt;3. Calculate x'', the longitude of the point in decimal degrees.&lt;br /&gt;*a. x' = x/[(111.320 + .373*sin(y''))*cos(y'')]/degree&lt;br /&gt;*b. x'' = clong + x'&lt;br /&gt;&lt;br /&gt;--tested this --&lt;br /&gt;This doesn't quite work.  The 'circle' isn't so much a circle but a flat heart shaped thing.  If I use clat instead of y'' in the calculation of x', it looks more symmetrical, but it is still a &lt;a href="http://www.duke.edu/~yet2/gsoc/oval-circle.jpg"&gt;bit stretched&lt;/a&gt; in the vertical direction.  Here's the &lt;a href="http://www.duke.edu/~yet2/gsoc/polygon%20practice2.kml"&gt;KML&lt;/a&gt;.  Hmmm...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-4990954059664765210?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/4990954059664765210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=4990954059664765210' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/4990954059664765210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/4990954059664765210'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/05/algorithm-for-drawing-circle.html' title='Algorithm for drawing a circle'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6221249790131788376</id><published>2007-05-29T15:16:00.000-04:00</published><updated>2007-05-29T15:53:47.083-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lat long'/><title type='text'>latitude longitude facts</title><content type='html'>1 minute of latitude = 1852 meters (very close approximation)&lt;br /&gt;1 degree of latitude = 111.12 km&lt;br /&gt;1 degree of longitude = (111.320 + 0.373sin²φ)cosφ km, where φ is latitude&lt;br /&gt;(information from wikipedia)&lt;br /&gt;For 21 points (last points overlap), each point is 18 degrees away from one another.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6221249790131788376?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6221249790131788376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6221249790131788376' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6221249790131788376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6221249790131788376'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/05/latitude-longitude-facts.html' title='latitude longitude facts'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-4166972433595120726</id><published>2007-05-29T15:13:00.001-04:00</published><updated>2007-05-29T15:16:12.126-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes'/><category scheme='http://www.blogger.com/atom/ns#' term='escape characters'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>note to self: escape characters in html</title><content type='html'>Remember:&lt;br /&gt;&lt;br /&gt;&amp;lt; = &amp;amp;lt;&lt;br /&gt;&amp;gt; = &amp;amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-4166972433595120726?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/4166972433595120726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=4166972433595120726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/4166972433595120726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/4166972433595120726'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/05/note-to-self-escape-characters-in-html.html' title='note to self: escape characters in html'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-8761812352771410017</id><published>2007-05-29T13:22:00.001-04:00</published><updated>2007-05-29T15:12:46.453-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes'/><category scheme='http://www.blogger.com/atom/ns#' term='KML'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Earth'/><title type='text'>Playing around with Google Earth</title><content type='html'>Notes:&lt;br /&gt;&lt;br /&gt;You can easily move placemarks by accessing their 'properties' then clicking and dragging.  You can NOT easily move polygons in the same manner.  Maybe that should be a design consideration.&lt;br /&gt;&lt;br /&gt;Found a great application that makes all sorts of graphs in GE, called &lt;a href="http://www.sgrillo.net/googleearth/gegraph.htm"&gt;GE-Graph&lt;/a&gt;.&lt;br /&gt;He (?) makes the circles as groups of 21 points (first and last the same), so not a true circle.&lt;br /&gt;&lt;br /&gt;If you want multiple placemarks within the same file, they must be enclosed by a &amp;lt;Document&amp;gt;&amp;lt;/Document&amp;gt; tag.  Otherwise, GE complains about having too many 'roots'.&lt;br /&gt;&lt;br /&gt;Within the &amp;lt;Document&amp;gt; tag you can define a lot of styles using &amp;lt;style id="foo"&amp;gt;&amp;lt;/style&amp;gt; then reference those styles in the document using &amp;lt;styleUrl&amp;gt;#foo&amp;lt;/styleUrl&amp;gt;.&lt;br /&gt;&lt;br /&gt;Within a &amp;lt;Placemark&amp;gt; you can only have one point, polygon, etc.  Otherwise, it only shows the last one.  Unfortunately you can't click on polygon's to view their properties or description.  It seems like the easiest way is to create two placemarks for each location.  One that is a point, that the user can click on easily, the other the pie chart.  Put these data in different folders (&amp;lt;Folder&amp;gt;&amp;lt;/Folder&amp;gt;) so you can easily turn off the labels.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-8761812352771410017?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/8761812352771410017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=8761812352771410017' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/8761812352771410017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/8761812352771410017'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/05/playing-around-with-google-earth.html' title='Playing around with Google Earth'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6902158356950092771</id><published>2007-05-25T15:44:00.000-04:00</published><updated>2007-05-25T15:56:09.388-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TortoiseSVN'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><title type='text'>Learning to use Subversion</title><content type='html'>Here are some pages I found useful in getting TortoiseSVN set up on my machine and talking to my source code repository hosted by google.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://internetducttape.com/2007/03/03/howto_google_code_hosting_subversion_tortoisesvn/"&gt; Explicit, simple instructions with screen shots&lt;/a&gt;.  &lt;br /&gt;&lt;a href="http://software.newsforge.com/article.pl?sid=05/06/02/1454229&amp;tid=130"&gt;Somewhat more complicated instructions, but more detailed&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.google.com/apis/gadgets/tools.html#Host"&gt;Google's hosting page walkthrough&lt;/a&gt;.&lt;br /&gt;&lt;a href="http://tortoisesvn.net/docs/release/TortoiseSVN_en/index.html"&gt;Manual for TortoiseSVN&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6902158356950092771?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6902158356950092771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6902158356950092771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6902158356950092771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6902158356950092771'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/05/learning-to-use-subversion.html' title='Learning to use Subversion'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6927396821879923457</id><published>2007-05-25T10:49:00.000-04:00</published><updated>2007-05-25T10:53:37.971-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code repository'/><title type='text'>Set up code repository with google</title><content type='html'>Set up &lt;a href="http://code.google.com/p/phylogeoviz/"&gt;code repository&lt;/a&gt; with google.  It was pretty easy to set up, but of course has no content yet.  I'm not totally sure how to get set up using subversion yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6927396821879923457?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6927396821879923457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6927396821879923457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6927396821879923457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6927396821879923457'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/05/set-up-code-repository-with-google.html' title='Set up &lt;a href=&quot;http://code.google.com/p/phylogeoviz/&quot;&gt;code repository&lt;/a&gt; with google'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-7442514123917554183</id><published>2007-05-18T17:26:00.001-04:00</published><updated>2007-05-18T17:39:57.017-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thoughts'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Exploring PHP</title><content type='html'>I finished working through the &lt;a href="http://us2.php.net/manual/en/tutorial.php"&gt;simple PHP tutorial&lt;/a&gt; today.  It was pretty helpful.  Here are my notes:&lt;br /&gt;&lt;br /&gt;Hint: "It's not working!?! Why?!?"&lt;ul&gt;&lt;li&gt;Check: Is Apache turned on?  duh...&lt;/li&gt;&lt;/ul&gt;php tag:&lt;ul&gt;&lt;li&gt;&amp;lt?php to start a php tag&lt;/li&gt;&lt;li&gt;?&amp;gt to end the tag&lt;/li&gt;&lt;li&gt;Use the tag within an html file to jump in and out of php.&lt;/li&gt;&lt;li&gt;Can jump in and out of php/html within a php block even.&lt;/li&gt;&lt;/ul&gt;Variable info:&lt;ul&gt;&lt;li&gt;Variables always start with a '$'.&lt;/li&gt;&lt;li&gt;Can see all reserved variables through phpinfo().&lt;/li&gt;&lt;li&gt;Variables can be pretty much the same types (bool, int, string, etc.) that they could be in C++, but you don't need to declare them that way.  Also some mixed types and type casting is allowed.&lt;/li&gt;&lt;/ul&gt;Helpful functions: &lt;ul&gt;&lt;li&gt;strpos($haystack, 'needle'); //finds the string needle within the variable haystack.  Returns the position, or FALSE.&lt;/li&gt;&lt;li&gt;int count (mixed $var [, int $mode] ); //Returns the number of elements in var, which is typically an array, since anything else will have one element.&lt;/li&gt;&lt;li&gt;PHP can access html form info easily.  See tutorial for help.&lt;/li&gt;&lt;/ul&gt;Things to explore:&lt;ul&gt;&lt;li&gt;It seems like you can use php alone as well, without html surrounding it.  Is that true?&lt;ul&gt;&lt;li&gt;For instance, &amp;lt?php phpinfo(); ?&amp;gt works fine in its own file.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;What is "Model View Controller"?  It sounds like a way of organizing your code to make it more readable and understandable.&lt;/li&gt;&lt;li&gt;The PHP manual is pretty helpful and has a lot of examples and documentation for functions, global variables, etc.  I'm impressed with how easy it is to understand.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-7442514123917554183?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/7442514123917554183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=7442514123917554183' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7442514123917554183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7442514123917554183'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/05/exploring-php.html' title='Exploring PHP'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-3034760427513617050</id><published>2007-05-16T15:17:00.000-04:00</published><updated>2007-05-16T15:19:31.020-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wiki'/><title type='text'>Wiki updates</title><content type='html'>I edited the &lt;a href="https://www.nescent.org/wg_EvoViz/Main_Page"&gt;EvoViz&lt;/a&gt; site and added PhylogeoViz to the list of programs.  I've got to come up with a better name.  Phylogeoviz is pretty boring.  Ah well, that can come later on in development.  I also added the detailed project plan to the wiki.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-3034760427513617050?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/3034760427513617050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=3034760427513617050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3034760427513617050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3034760427513617050'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/05/wiki-updates_16.html' title='Wiki updates'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6260618908029598178</id><published>2007-05-15T21:26:00.000-04:00</published><updated>2007-05-15T21:56:52.432-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plan'/><category scheme='http://www.blogger.com/atom/ns#' term='weekly update'/><title type='text'>Detailed project plan</title><content type='html'>Here's my preliminary weekly project plan.  Dates refer to the beginning of that work week.  Any comments are appreciated!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Now til Start:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Phase 0: Getting development environment set up&lt;ul&gt;&lt;li&gt;Set up homepage, wiki, repositories, etc.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;May 28&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Phase 1: Exploratory phase&lt;ul&gt;&lt;li&gt;Learn how to embed maps on a webpage.&lt;/li&gt;&lt;li&gt;Learn the relationship between Google Earth and Google Maps.&lt;/li&gt;&lt;li&gt;How are they the same, how are they different? What can you do with one that you can't do with the other?&lt;/li&gt;&lt;li&gt;Explore KML and general XML.&lt;/li&gt;&lt;li&gt;Explore Google Earth and Google Maps APIs.&lt;/li&gt;&lt;li&gt;Create a pie chart using KML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;June 4&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Finish exploratory work if neccessary.&lt;/li&gt;&lt;li&gt;Phase 2: Finalize design&lt;ul&gt;&lt;li&gt;Page by page description of what the user sees.&lt;/li&gt;&lt;li&gt;How to input data.  Are they going to upload files, input in a text box?  What format?&lt;/li&gt;&lt;li&gt;How to export data.  Format?  Data persistence?  Can users store data, results, maps, etc.?&lt;/li&gt;&lt;li&gt;What is the viewer?  Google earth?  Google maps?&lt;/li&gt;&lt;li&gt;How large are the pie charts going to be in comparison with the geography?  How do we deal with the problem of overlapping pie charts?&lt;/li&gt;&lt;li&gt;How are we going to color the pie charts?  What if there are large numbers of haplotypes, how do we color them all distinctly and usefully?&lt;/li&gt;&lt;li&gt;The results of these decisions will be a comprehensive design document posted on the wiki.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;June 11&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Implement the basic pie chart generation functionality. Functionality should include:&lt;ul&gt;&lt;li&gt;Basic import of data.&lt;/li&gt;&lt;li&gt;Basic KML output writer.&lt;/li&gt;&lt;li&gt;Function that draws a pie chart.&lt;/li&gt;&lt;li&gt;Function that plots objects (working up to pie charts, but starting with placemarks) on a map.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Write corresponding documentation.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;June 18&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Combine pie chart generation and chart plotting functionality.&lt;/li&gt;&lt;li&gt;Write the functions that allow adjustments to the output (e.g. changing pie sizes, allowing the user to change haplotype colors, etc).&lt;/li&gt;&lt;li&gt;Write corresponding documentation.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;June 18&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Work on a function that allows the user to move pie charts around spatially (and to save those movements).&lt;/li&gt;&lt;li&gt;Write corresponding documentation.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;June 25&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Write the functions that display the KML back to the browser.&lt;/li&gt;&lt;li&gt;Write corresponding documentation.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;July 2&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Prepare for Botany conference.&lt;/li&gt;&lt;li&gt;Get code submitted to Google for midterm code check in.&lt;/li&gt;&lt;li&gt;Get a prototype of the viewer available for download.&lt;/li&gt;&lt;li&gt;Make sure I'm meeting the midterm evaluation criteria&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;July 9&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Work on bugs that arose from earlier code.&lt;/li&gt;&lt;li&gt;Revisit full data manager design.  Finalize UI design.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;July 16&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Implement UI for the data import functionality.&lt;/li&gt;&lt;li&gt;Expand (?) data files that are acceptable (haplotype, genotype, etc.)&lt;/li&gt;&lt;li&gt;Write the corresponding documentation.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;July 23&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Implement UI for customizing data analysis.&lt;ul&gt;&lt;li&gt;Example: the user should be able to select what loci/alleles/populations to include/exclude in the analyses.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;July 30&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Implement UI for output data manipulation.&lt;ul&gt;&lt;li&gt;Example: the user should be able to change the relative pie sizes, move pies around, change haplotype colors, etc.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;August 6&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Implement functions that allow the user to save the map visualization (e.g. jpg) or to save the KML file.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;August 13&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Perform user tests.&lt;/li&gt;&lt;li&gt;Ensure that the viewer and the data manager are well integrated.&lt;/li&gt;&lt;li&gt;Deposit code with Google.&lt;/li&gt;&lt;li&gt;Update website with new product, and all documentation.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;August 20&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Done coding.  Final evaluations.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6260618908029598178?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6260618908029598178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6260618908029598178' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6260618908029598178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6260618908029598178'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/05/detailed-project-plan.html' title='Detailed project plan'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6896075313084963065</id><published>2007-05-15T16:08:00.000-04:00</published><updated>2007-05-15T21:55:35.429-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Installing PHP</title><content type='html'>I downloaded and installed &lt;a href="http://www.php.net/"&gt;PHP 5.2.2&lt;/a&gt;.  Unfortunately, nothing happened.  Somehow, the installer hadn't updated Apache's httpd conf file (which is inside the conf directory) to load php correctly.  I think for most people the installer sets this file up for you automatically.  Anyways, the useful directions I followed are &lt;a href="http://us2.php.net/manual/en/install.windows.apache2.php"&gt;here&lt;/a&gt;, where basically you insert 3 lines into the httpd file.  Now I have "hello world" going on!  Yay!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6896075313084963065?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6896075313084963065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6896075313084963065' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6896075313084963065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6896075313084963065'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/05/installing-php.html' title='Installing PHP'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-8922484250279043522</id><published>2007-05-15T16:03:00.000-04:00</published><updated>2007-05-15T16:08:21.537-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><title type='text'>Installing Apache</title><content type='html'>Well, that's harder than it looks.  I downloaded &lt;a href="http://www.apache.org/"&gt;Apache&lt;/a&gt; for me to practice with a web server.  For some reason it installed but was unable to start.  Turns out that the port it wanted to use (port 80) was already in use by another program (turn out that Skype was the culprit!).  I turned off Skype's ability to use that port, and voila!  I now am hosting a page that says, "It works!".  Great!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-8922484250279043522?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/8922484250279043522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=8922484250279043522' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/8922484250279043522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/8922484250279043522'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/05/installing-apache.html' title='Installing Apache'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6853638518490794172</id><published>2007-05-13T22:46:00.000-04:00</published><updated>2007-05-25T10:55:08.558-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plan'/><category scheme='http://www.blogger.com/atom/ns#' term='weekly update'/><title type='text'>Goals for this week</title><content type='html'>&lt;s&gt;Complete detailed project plan, submit it to David, post on wiki.&lt;/s&gt;&lt;br /&gt;&lt;s&gt;Focus on how to generate these KML files:&lt;/s&gt;&lt;br /&gt;&lt;s&gt;Install Apache and PHP on laptop.&lt;/s&gt;&lt;br /&gt;&lt;s&gt;Investigate PHP.&lt;/s&gt;&lt;br /&gt;Investigate java as an alternative.&lt;br /&gt;&lt;s&gt;Set up code repository on google.&lt;/s&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6853638518490794172?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6853638518490794172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6853638518490794172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6853638518490794172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6853638518490794172'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/05/goals-for-this-week.html' title='Goals for this week'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-7525874949870073347</id><published>2007-05-13T22:31:00.000-04:00</published><updated>2007-05-13T22:35:53.045-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wiki'/><title type='text'>Wiki updates</title><content type='html'>I worked on adding the project to the &lt;a href="https://www.nescent.org/wg_phyloinformatics/Phyloinformatics_Summer_of_Code_2007"&gt;Phylo SoC wiki&lt;/a&gt;, and creating the &lt;a href="http://www.nescent.org/wg_phyloinformatics/PhyloSoC:phylogeoviz"&gt;wiki home&lt;/a&gt; for the project.  Was a bit more time intensive than I had expected.  I put the overall project plan up, but haven't added the detailed timeline yet.  I'll need to do that this week.&lt;br /&gt;&lt;br /&gt;I also made this blog public.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-7525874949870073347?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/7525874949870073347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=7525874949870073347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7525874949870073347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/7525874949870073347'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/05/wiki-updates.html' title='Wiki updates'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-6369581478265089156</id><published>2007-05-13T19:52:00.000-04:00</published><updated>2007-05-13T20:08:10.650-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KML'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Earth'/><category scheme='http://www.blogger.com/atom/ns#' term='thoughts'/><title type='text'>Researching KML</title><content type='html'>So I'm on google earth's KML tutorial page.  Some highlights and considerations:&lt;br /&gt;&lt;br /&gt;Google Earth (GE) can draw some pretty cool polygons and such.  However, the edges of these polygons are defined directly by lat/longs.  I'm not sure how this will play into generating these coordinates per population as appropriate to the data.  The pies would  be defined by multiple points, not points all connected to some central point, so centering, etc may be tricky.&lt;br /&gt;&lt;br /&gt;GE's KML seems pretty similar to html markup styles.  I don't think it'll be too hard to learn.  It looks like you can define global styles (&amp;lt;style id=""&amp;gt;) that you then can call appropriately.&lt;br /&gt;&lt;br /&gt;You can link to stuff on the network as well.  Check out "Network Links" in the future.  You can link to static stuff (images, another kml file, etc.), but you can link to dynamically generated stuff too.  For instance, you can connect to a cgi script.  Also, you can send info about the current use (page view, what's highlighted, etc.), then use that info to generate some new kml, then feed that back to the user's GE.  This could be a way to incorporate user feedback into the system.  But it sounds like it could be tricky.&lt;br /&gt;&lt;br /&gt;Another trick: to add html markups, use the CDATA element.  Example, add:&lt;br /&gt;&lt;![CDATA[&lt;br /&gt;...all usual html coded stuff here...&lt;br /&gt;]]&gt;&lt;br /&gt;Otherwise, you'll have to escape all the &lt; and &gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-6369581478265089156?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/6369581478265089156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=6369581478265089156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6369581478265089156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/6369581478265089156'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/05/researching-kml.html' title='Researching KML'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-9117439087002173480</id><published>2007-05-13T19:51:00.000-04:00</published><updated>2007-05-13T19:52:53.985-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thoughts'/><category scheme='http://www.blogger.com/atom/ns#' term='paper'/><category scheme='http://www.blogger.com/atom/ns#' term='David'/><title type='text'>Knowles recent paper</title><content type='html'>David sent me this &lt;a href="http://www.bioone.org/archive/0014-3820/61/3/pdf/i0014-3820-61-3-477.pdf"&gt;recent paper&lt;/a&gt; from the Knowles camp that has some nice graphics associated with it.  Judging from the pie chart designs, it looks like the graphics were created in Illustrator.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-9117439087002173480?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/9117439087002173480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=9117439087002173480' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/9117439087002173480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/9117439087002173480'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/05/knowles-recent-paper.html' title='Knowles recent paper'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-3607963990308414147</id><published>2007-05-07T14:13:00.000-04:00</published><updated>2007-05-07T14:16:35.403-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thoughts'/><title type='text'>Google Earth Workshop - from CIT</title><content type='html'>Run by Andrea Novicki through the Center for Instructional Technology.&lt;br /&gt;&lt;br /&gt;Interesting, inspiring workshop.  Went over how to create placemarks, what polygon, paths, overlays are.  Basically did a tour of the general functionality of Google Earth.  Interesting features I didn't know about: &lt;br /&gt;can do 3D polygons&lt;br /&gt;can have timelines, show changes over time&lt;br /&gt;can implement tours&lt;br /&gt;has a "ruler" to measure distances along paths, etc&lt;br /&gt;&lt;br /&gt;Most important new thing: can share maps through the google earth community.  Lots of neat maps already available, you can share your work easily.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-3607963990308414147?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/3607963990308414147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=3607963990308414147' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3607963990308414147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/3607963990308414147'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/05/google-earth-workshop-from-cit.html' title='Google Earth Workshop - from CIT'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685462697478637165.post-668786760633120411</id><published>2007-04-27T17:04:00.000-04:00</published><updated>2007-05-13T20:09:47.228-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plan'/><category scheme='http://www.blogger.com/atom/ns#' term='minutes'/><category scheme='http://www.blogger.com/atom/ns#' term='meeting'/><title type='text'>Minutes from meeting 1 with David, Hilmar, and Xianhua</title><content type='html'>Yesterday I had my first meeting with my mentor, David, and others from NESCent (Hilmar and Xianhua).  See the "meeting1 agenda.txt" for agenda items.&lt;br /&gt;&lt;br /&gt;We answered most of the (I) general IT support questions.&lt;ul&gt;&lt;li&gt;We'll be using some corner of EvoViz for documentation, ideas, pages, project plan, etc.  David reassured me that he doesn't have ny particular format or structure in mind for the page.&lt;/li&gt;&lt;li&gt;I should set up the code repository through google.&lt;/li&gt;&lt;li&gt;The development/testing server will be hosted by NESCent&lt;/li&gt;&lt;li&gt;For now the project homepage can be the wiki.  We can reevaluate later if there needs to be an 'official' page somewhere.&lt;/li&gt;&lt;li&gt;For mailing list help, wg-phyloinformatics sounds right.&lt;/li&gt;&lt;/ul&gt;A lot of the meeting centered on what language should I learn and be used for the application.  Hilmar said, why not C++!?!  David is partial to java because he wants to learn it.  There was a lot of confusion about java and javascript on my part(which later Jack cleared up).  Hilmar mentioned that javascript is difficult because there is no debugger.  Xianhua mentioned that PHP is not object-oriented like C++.  Their suggestions were for me to consider the following in my decision: what do I want to get out of this summer? better understanding of java? php?  let that guide my decision.  What libraries are available in each language that would be useful?  I think Xianhua mentioned grass funtions or open source GIS functions in C, hmmm... Hilmar made it sound like they could make any of these languages work server side at NESCent.  &lt;br /&gt;&lt;br /&gt;We didn't discuss the project plan or overall timeline, or expectations too much.  I told David multiple times that I am unable to devote full time to this project.  I did mention keeping the project to something within 10-15hrs/week.  He seemed ok with this.  Hilmar said that we are evaluated based on our completion of milestones based on our project plan.  I think that just means I need to make a realistic plan with the scope of 120-150 hours total for the project.&lt;br /&gt;&lt;br /&gt;Things to do in the next two weeks:&lt;br /&gt;Research languages.&lt;br /&gt;Decide on a language.&lt;br /&gt;Do phase 0.&lt;br /&gt;Write up detailed (weekly) project plan.&lt;br /&gt;Post things to the wiki.&lt;br /&gt;Post things to NESCent's SoC wiki.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685462697478637165-668786760633120411?l=phylogeoviz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phylogeoviz.blogspot.com/feeds/668786760633120411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685462697478637165&amp;postID=668786760633120411' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/668786760633120411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685462697478637165/posts/default/668786760633120411'/><link rel='alternate' type='text/html' href='http://phylogeoviz.blogspot.com/2007/04/minutes-from-meeting-1-with-david.html' title='Minutes from meeting 1 with David, Hilmar, and Xianhua'/><author><name>Erica</name><uri>http://www.blogger.com/profile/06212880434950195764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://www.duke.edu/~yet2/little-erica-mii.jpg'/></author><thr:total>0</thr:total></entry></feed>
