<?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-5081137459980209833</id><updated>2012-02-16T18:51:27.629-08:00</updated><category term='high performance'/><category term='flash'/><category term='openlayers'/><category term='proxy'/><category term='postgres'/><category term='dom'/><category term='cache'/><category term='workflow'/><category term='cluster'/><category term='license manager'/><category term='dbf'/><category term='tomcat'/><category term='idl'/><category term='mapnik'/><category term='sidebar'/><category term='geowebcache'/><category term='excel'/><category term='css'/><category term='sld'/><category term='arcgis server'/><category term='wms manager'/><category term='xxamp'/><category term='python'/><category term='analysis'/><category term='ud campus map'/><category term='projection'/><category term='actionscript'/><category term='vbscript'/><category term='openstreetmaps'/><category term='linux'/><category term='apache'/><category term='vba'/><category term='jet'/><category term='cad'/><category term='google maps'/><category term='mysql'/><category term='arcsde'/><category term='php'/><category term='kml'/><category term='envi'/><category term='acccess'/><category term='arcmap'/><category term='IIS'/><category term='wordpress'/><category term='regex'/><category term='jquery'/><category term='custom'/><category term='extent'/><category term='geoserver'/><category term='arcims'/><category term='sql'/><category term='notepad++'/><category term='arcgis'/><category term='drupal'/><category term='pear'/><category term='statistics'/><category term='data'/><category term='widget'/><category term='json'/><title type='text'>Ben Mearns</title><subtitle type='html'>my tech blog</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default?start-index=101&amp;max-results=100'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>111</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-2492479036607556531</id><published>2012-02-03T06:41:00.000-08:00</published><updated>2012-02-03T11:04:20.452-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='cluster'/><category scheme='http://www.blogger.com/atom/ns#' term='arcgis server'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='arcgis'/><category scheme='http://www.blogger.com/atom/ns#' term='high performance'/><title type='text'>ArcGIS on a High Performance cluster: Part 1, Linux</title><content type='html'>Now that we have our &lt;a href="http://www.it.udel.edu/research-computing/articles/community-cluster-named-honor-ud-prof-emeritus-david-l-mills" target="_blank"&gt;new community cluster running at UD&lt;/a&gt;&amp;nbsp; it's time to learn how I can optimize GIS software for that environment.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;The first hurdle is operating system &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ArcInfo Workstation used to be a great way to run Esri/ArcGIS geoprocessing tasks on *nix boxes.&amp;nbsp; However, it seems the last version of ArcInfo Workstation that ran on Linux was 9.1.&amp;nbsp; I'd contacted Esri about obtaining a copy of 9.1, but apparently it is out of production and they do not have any copies of the software that they'd be able to send to me.&lt;br /&gt;&lt;br /&gt;So basically the workstation/desktop route is out not available at this time.&amp;nbsp; But there is more than one way to skin a cat: ArcGIS Server 10 (AGS) runs on Linux.&lt;br /&gt;&lt;br /&gt;I've recently seen &lt;a href="http://help.arcgis.com/en/arcgisserver/10.0/help/arcgis_server_java_help/index.html#//00920000002t000000" target="_blank"&gt;documentation which suggests geoprocessing models can be leveraged by publishing them as geoprocessing services through ArcGIS Server&lt;/a&gt;.&amp;nbsp; I have heard at the Esri conference, and in some &lt;a href="http://blogs.esri.com/dev/blogs/arcgisjava/archive/2010/06/02/arcgis-10-for-java_2f00_linux-developers.aspx" target="_blank"&gt;documentation &lt;/a&gt;that success has even been reported in distributed tasks, such as building caches, through the SOM/SOC architecture that is available out of the box in AGS.&amp;nbsp; Could this architecture be extended to distribute geoprocessing tasks?&lt;br /&gt;&lt;br /&gt;Taking a different tack, AGS exposes the geoprocessing object through a Python wrappers.&amp;nbsp; That means that we should be able to programatically run our software on Linux through Python.&amp;nbsp; Python also has wrappers or libraries for multithreading and MPI (distributed), so the implications for taking advantage of our cluster are especially exciting.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Note: There are some &lt;a href="http://help.arcgis.com/en/arcgisserver/10.0/help/arcgis_server_java_help/index.html#//00920000002t000000" target="_blank"&gt;differences &lt;/a&gt;to be expected, such as with file path conventions and name lengths.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Next: Multithreading&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.esri.com/en/knowledgebase/techarticles/detail/31903"&gt;http://support.esri.com/en/knowledgebase/techarticles/detail/31903&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-2492479036607556531?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/2492479036607556531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=2492479036607556531' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2492479036607556531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2492479036607556531'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2012/02/arcgis-on-high-performance-cluster-part.html' title='ArcGIS on a High Performance cluster: Part 1, Linux'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-6775350798680382889</id><published>2012-01-25T08:18:00.000-08:00</published><updated>2012-01-25T08:18:11.959-08:00</updated><title type='text'>The Atlas of Visual Complexity</title><content type='html'>&lt;span class="caption"&gt;Very cool dynamic cartograms for visualizing economic complexity: atlas.media.mit.edu&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-6775350798680382889?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/6775350798680382889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=6775350798680382889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6775350798680382889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6775350798680382889'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2012/01/atlas-of-visual-complexity.html' title='The Atlas of Visual Complexity'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-2673898871357368349</id><published>2012-01-19T06:34:00.000-08:00</published><updated>2012-01-19T06:34:56.649-08:00</updated><title type='text'>Surface Climate Data</title><content type='html'>I am consulting on a research project involving bridge decay.  For this project we needed to locate a number of surface atmosphere chemical data (some sulfure oxides and chloride) as well as data on precipitation, snowfall, and min/max temperature.&lt;br /&gt;&lt;br /&gt;Here are some sources we found:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Cl, SO4, precipitation etc.: National Atmospheric Deposition Program, &lt;a href="http://nadp.sws.uiuc.edu/"&gt;http://nadp.sws.uiuc.edu/&lt;/a&gt; ... the  National Trends Network (NTN) data was the best&lt;/li&gt;&lt;li&gt;SO2: &lt;a href="http://www.epa.gov/airtrends/sulfur.html"&gt;http://www.epa.gov/airtrends/sulfur.html&lt;/a&gt; ... a KML is even available from this link&lt;/li&gt;&lt;li&gt;Snowfall, Min/max tempurature (precip is also available): Daily by state,  &lt;a href="http://cdiac.ornl.gov/ftp/ushcn_daily/"&gt;http://cdiac.ornl.gov/ftp/ushcn_daily/&lt;/a&gt;, Monthly, &lt;a href="http://cdiac.ornl.gov/ftp/ushcn_v2_monthly/"&gt;http://cdiac.ornl.gov/ftp/ushcn_v2_monthly/&lt;/a&gt;&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/5081137459980209833-2673898871357368349?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/2673898871357368349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=2673898871357368349' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2673898871357368349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2673898871357368349'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2012/01/climate-data.html' title='Surface Climate Data'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-1995309226277761552</id><published>2012-01-17T09:03:00.000-08:00</published><updated>2012-01-17T09:03:15.400-08:00</updated><title type='text'>NetCDF</title><content type='html'>NetCDF is a format well suited for environmental research given the inherent multi-dimensionality of the environment and environmental research topics.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;I have not worked much with NetCDF data, and recently ran into some trouble importing &lt;a href="https://www.bodc.ac.uk/data/online_delivery/gebco/"&gt;gridded bathymetric data sets&lt;/a&gt; (GEBCO) into ArcGIS.&lt;br /&gt;&lt;br /&gt;When importing into ArcGIS I attempted to use Multidimension Tools &amp;gt; Make NetCDF Raster Layer.&amp;nbsp; &lt;a href="http://help.arcgis.com/en/arcgisdesktop/10.0/pdf/netcdf-tutorial.pdf"&gt;This tutorial from Esri&lt;/a&gt; describes this procedure.&amp;nbsp; Unlike in the tutorial, default values were not populated for tool parameters, and as I was unable to ascertain these values, I could not run the tool.&lt;br /&gt;&lt;br /&gt;My next option was to learn more about the data set from GDAL's gdalinfo command.&amp;nbsp; After recompiling with the netcdf libraries, I was able to run gdalinfo on the data set, but it returned a rather sparse result that did not illuminate any of the parameters that I needed.&amp;nbsp; This contrasts with the result show in the &lt;a href="http://www.gdal.org/frmt_netcdf.html" target="_blank"&gt;GDAL documentation for netcdf&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I then attempted to load NetCDF directly into ENVI and IMAGINE -- common geospatial image proecessing programs -- I could not load it successfully into either of these.&lt;br /&gt;&lt;br /&gt;I was somewhat more successful with IDL.&amp;nbsp; &lt;a href="http://www.atmos.umd.edu/%7Egcm/usefuldocs/hdf_netcdf/IDL_hdf-netcdf.html" target="_blank"&gt;IDL is able to read NetCDF and report on its structure&lt;/a&gt;. However, the commands for interacting with the results objects are unwieldy at best.&amp;nbsp; This is an option that requires more investigation.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gmt.soest.hawaii.edu/" target="_blank"&gt;The GMT&lt;/a&gt; use NetCDF as the native package format, and GEBCO and others seem to base their NetCDF format off of GMT's specifications.&amp;nbsp; The &lt;a href="http://gmt.soest.hawaii.edu/gmt/html/man/grdinfo.html" target="_blank"&gt;grdinfo command&lt;/a&gt; under GMT gives some information about the data set, but still nothing that can be used in ArcGIS.&amp;nbsp; This also requires more investigation, as there are many commands for working with NetCDF.&lt;br /&gt;&lt;br /&gt;Finally the data set was able to be opened by &lt;a href="http://www.gebco.net/data_and_products/grid_display_software/" target="_blank"&gt;GEBCO's specialized display software&lt;/a&gt; (which is produced by the data provider).&lt;br /&gt;&lt;br /&gt;I will be adding more to this post as I learn more about NetCDF and perhaps the peculiarities of this particular data set ... why use open standards if you need a data provider created tool to open the data?? &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-1995309226277761552?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/1995309226277761552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=1995309226277761552' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/1995309226277761552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/1995309226277761552'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2012/01/netcdf.html' title='NetCDF'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-6496679306578820296</id><published>2011-12-20T06:43:00.000-08:00</published><updated>2011-12-20T06:43:09.988-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='postgres'/><title type='text'>Importing Data Dump into Postgres</title><content type='html'>I needed to take four steps to import an Oracle binary dump into PostgreSQL&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open Oracle dump with something like notepad++ or grap and do a find/replace for all the binary characters (these can be highlighted in notepad++) and replace them with something like a pipe character ("|")&lt;/li&gt;&lt;li&gt;If you know the special characters that are not compatible with UTF-8, then do find/replace on these too now ... otherwise you can do this after running the copy command (step 5), since that will give an error for each non UTF-8-able line/character &lt;/li&gt;&lt;li&gt;Open the piped file in Excel and replace with tabs.&amp;nbsp; Tabs are the standard delimiter in Postgres and by saving out of Excel, you get a uniform number of columns for each record, thereby avoiding "missing data for column" when executing the "copy" command&lt;/li&gt;&lt;li&gt;Create a table in Postgres with the number of columns seen in Excel, using generic data type such as text&lt;/li&gt;&lt;li&gt;execute the copy command ... no delimiters param need be given, since it's tabs &lt;pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;COPY data FROM 'C:/temp/data.txt'&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-6496679306578820296?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/6496679306578820296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=6496679306578820296' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6496679306578820296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6496679306578820296'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/12/importing-data-dump-into-postgres.html' title='Importing Data Dump into Postgres'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-4545403016992072528</id><published>2011-11-15T13:17:00.001-08:00</published><updated>2011-11-15T13:17:41.708-08:00</updated><title type='text'>ArcGIS Weighted Overlay Error #999999</title><content type='html'>&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: black; font-family: Verdana, Arial, Helvetica, sans-serif, sans-serif; font-size: 13px; margin-bottom: 8px; margin-left: 8px; margin-right: 8px; margin-top: 8px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Client was getting error 999999 (generic) error when running weighted overlay analysis. &amp;nbsp;Fixed this by changing Windows environment variable for temporary folders to c:\Windows\Temp from the users temporary directory, which had a complicated file name&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-4545403016992072528?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/4545403016992072528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=4545403016992072528' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4545403016992072528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4545403016992072528'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/11/arcgis-weighted-overlay-error-999999.html' title='ArcGIS Weighted Overlay Error #999999'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-101540106064143453</id><published>2011-10-10T07:27:00.000-07:00</published><updated>2011-10-25T11:01:54.831-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geoserver'/><title type='text'>Caching (GWC) Imagery</title><content type='html'>Issues I've run into while caching imagery on Geoserver/GWC&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Out of Memory Errors (java.lang.OutOfMemoryError: PermGen space): Solved this (as suggested &lt;a href="http://stackoverflow.com/questions/88235/how-to-deal-with-java-lang-outofmemoryerror-permgen-space-error"&gt;here&lt;/a&gt;) by adding -Xms48m -Xmx256M -XX:MaxPermSize=128m to Geoserver's startup.bat/startup.sh on the line that starts the JVM (for me it was line 120)&lt;/li&gt;&lt;li&gt;also &lt;a href="http://osgeo-org.1803224.n2.nabble.com/Problem-loading-geotiff-related-to-java-heap-space-td6444817.html"&gt;found a post&lt;/a&gt; suggesting adding UseCompressedOops fixed some issues with caching imagery ... from &lt;/li&gt;&lt;/ul&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;"%RUN_JAVA%" -DGEOSERVER_DATA_DIR="%GEOSERVER_DATA_DIR%" -Djava.awt.headless=true -DSTOP.PORT=8079 -DSTOP.KEY=geoserver -jar start.jar&lt;/code&gt;&lt;/pre&gt;to &lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;"%RUN_JAVA%" -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSClassUnloadingEnabled -Xms48m -Xmx512M -XX:MaxPermSize=256m -XX:+UseCompressedOops -DGEOSERVER_DATA_DIR="%GEOSERVER_DATA_DIR%" -Djava.awt.headless=true -DSTOP.PORT=8079 -DSTOP.KEY=geoserver -jar start.jar&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ERROR [seed.MTSeeder] - Problem communicating with GeoServer : was getting this error because a DB parameter had recently changed (DB name)&lt;/li&gt;&lt;li&gt;Error ... Could not list layers for this store, an error occurred retrieving them ... then something about null argument ... this was also fixed with these memory options&lt;/li&gt;&lt;li&gt;I also found it necessary to scale down my imagery using the outsize parameter&amp;nbsp; with gdal translate &lt;/li&gt;&lt;/ul&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;gdal_translate -of GTiff -co "TILED=YES" -outsize 50% 50% input-file.tif output-file.tif&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I think I may also have been having trouble not adding a world file (possibly prj) which I then created with ArcGIS (not sure how to do that with GDAL, since that saves the geographic info directly to the TIFF)&lt;/li&gt;&lt;/ul&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/5081137459980209833-101540106064143453?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/101540106064143453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=101540106064143453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/101540106064143453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/101540106064143453'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/10/caching-gwc-imagery.html' title='Caching (GWC) Imagery'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-4687184406285625903</id><published>2011-10-05T08:17:00.000-07:00</published><updated>2011-10-05T08:19:10.770-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>JQuery Each Iterator</title><content type='html'>Is your each iterator not working on an Array?  Try constructing the array as an object instead.  Jquery v1.3.2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-4687184406285625903?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/4687184406285625903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=4687184406285625903' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4687184406285625903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4687184406285625903'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/10/jquery-each-iterator.html' title='JQuery Each Iterator'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-6963929042429955594</id><published>2011-09-22T09:56:00.000-07:00</published><updated>2011-09-22T10:04:47.653-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='idl'/><category scheme='http://www.blogger.com/atom/ns#' term='envi'/><category scheme='http://www.blogger.com/atom/ns#' term='license manager'/><title type='text'>Setting LM_LICENSE_FILE Environment Variable for ENVI/IDL 4.8 on Pre-Lion MacOS</title><content type='html'>To set an environment variable for ENVI/IDL on a pre-Lion MacOS System, I would recommend using the environment.plist file.  This persists through whatever shells you have installed as well as in X Windows (and therefore when you double-click the ENVI executable from the MacOS GUI).  I did not find any correct documentation for doing this from ITT or NASA.&lt;br /&gt;&lt;br /&gt;1.  Install the software&lt;br /&gt;3.  Define the environment variable in the file ~/.MacOSX/environment.plist&lt;br /&gt;----- Open the Terminal&lt;br /&gt;----- You will probably have to create the directory ... mkdir ~/.MacOSX)&lt;br /&gt;----- ... and the file vi  ~/.MacOSX/environment.plist&lt;br /&gt;&lt;br /&gt;Paste the following into vi in Insert mode (press i) and save (:x) ... if you have more than one environment variable, make sure to add another key/string pair ... make sure you subsistute PORT and HOST below&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;!--?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?--&amp;gt;&amp;lt;!--?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?--&amp;gt;&lt;br /&gt;&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;dict&amp;gt;&lt;br /&gt;   &amp;lt;key&amp;gt;LM_LICENSE_FILE&amp;lt;/key&amp;gt;&lt;br /&gt;   &amp;lt;string&amp;gt;PORT@HOST&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;lt;/dict&amp;gt;&lt;br /&gt;&amp;lt;/plist&amp;gt;&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&amp;lt;dict&amp;gt;&amp;lt;/dict&amp;gt;&lt;br /&gt;&amp;lt;/plist&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;4.  Close terminal&lt;br /&gt;&lt;br /&gt;You should now be able to use ENVI/IDL.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-6963929042429955594?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/6963929042429955594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=6963929042429955594' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6963929042429955594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6963929042429955594'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/09/setting-lmlicensefile-environment.html' title='Setting LM_LICENSE_FILE Environment Variable for ENVI/IDL 4.8 on Pre-Lion MacOS'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-497702451176373060</id><published>2011-09-01T13:00:00.000-07:00</published><updated>2011-09-01T13:25:17.132-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geowebcache'/><category scheme='http://www.blogger.com/atom/ns#' term='geoserver'/><title type='text'>Openlayers Geoserver WMS Caching with GWC</title><content type='html'>Now that Geowebcache is integrated with Geoserver and WMS (among other OGC service types), map tile-caching is supposed to be really simple.  I found this not to be the case.  Among other challenges, document is lacking or blatantly wrong.  Here are a couple key concepts that I learned the hard way:&lt;br /&gt;&lt;br /&gt;Use the demo from the Geowebcache section  (http://localhost:8080/geoserver/gwc/demo) NOT the regular OL "Layer  Preview" which does not use the correct gridset parameters (nice demo,  eh?)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Issues I was having with labeling and tiles are mostly solved by  creating a database view from the centroids of polygons to be labeled and label  these instead, and include in a layer group.&lt;br /&gt;&lt;br /&gt;Don't use the "Recycle Tiles" option ... especially if you don't have  native JAI.  This causes a memory leak and subsequently causes the  server to crawl/crash after X requests.  Also you probably shouldn't tweak max render time/memory unless you have to (despite documentation saying that this helps performance ... would this be helpful at another time?  I don't know).&lt;br /&gt;&lt;br /&gt;Despite documentation saying to use the &lt;a href="http://docs.geoserver.org/latest/en/user/geowebcache/using.html"&gt;wms endpoint and that no special endpoint is needed&lt;/a&gt; ... a special endpoint is needed ... it's of this format http://host:8080/geoserver/gwc/service/wms&lt;br /&gt;&lt;br /&gt;The gridset scheme is static and opaque, unless a custom config file is created.  The documentation gives the impression that the integration of WMS/GWC creates arbitrary gridsets given wms grid request characteristics.  One could could create their own geowebcache.xml (saved to GEOSERVER/webapps/WEB-INF/geowebcache.xml ... though there is some confusion about that). See more about geowebcache, the gridset schema, and geowebcache.xml &lt;a href="http://geowebcache.org/docs/current/concepts/gridsets.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Don't pass anything on the wms request that you don't have to!  Forums and documentation say that you need to pass things like tilesOrigin, which will cause the request to fail most of the time.&lt;br /&gt;&lt;br /&gt;GWC saves tiles to your data directory under the gwc folder.  You should check here to make sure tiling is working.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-497702451176373060?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/497702451176373060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=497702451176373060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/497702451176373060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/497702451176373060'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/09/openlayers-geoserver-wms-caching-with.html' title='Openlayers Geoserver WMS Caching with GWC'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-5905379268841390707</id><published>2011-08-24T12:55:00.000-07:00</published><updated>2011-08-24T13:03:31.567-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='regex'/><category scheme='http://www.blogger.com/atom/ns#' term='notepad++'/><title type='text'>Lookbehind/Lookahead Assertion with Npp Regex</title><content type='html'>Today I was looking for a way to get the last character of a pattern so that I could replace it.  In this example, I wanted to find the last pipe in a record like 8|34346|.  Normally with regex, one could do this using a lookbehind assertion.  To do this with notepad++ you must utilize the implicit search buffer, by using a \1 in the replace field (for example, to access the first set in the buffer).&lt;br /&gt;&lt;br /&gt;So by searching on: 1|10007|someemail@someplace.com|lastname,first name|X&lt;br /&gt;&lt;br /&gt;"Find What:" ([0-9]*[|][0-9]*)[|]&lt;br /&gt;"Replace With:" \1%&lt;br /&gt;&lt;br /&gt;I could get: 1|10007%someemail@someplace.com|lastname,first name|X&lt;br /&gt;&lt;br /&gt;BIG THANKS TO DEAN NAIRN!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-5905379268841390707?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/5905379268841390707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=5905379268841390707' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5905379268841390707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5905379268841390707'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/08/lookbehindlookahead-assertion-with-npp.html' title='Lookbehind/Lookahead Assertion with Npp Regex'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-3287206822552351270</id><published>2011-08-03T06:42:00.000-07:00</published><updated>2011-08-03T06:51:31.642-07:00</updated><title type='text'>Lay Interpretation of Cancer Incidence</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-VOEcaYG1lsc/TjlSMDK4s8I/AAAAAAAABtk/97u6yylA4vo/s1600/cancer.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 247px; height: 320px;" src="http://4.bp.blogspot.com/-VOEcaYG1lsc/TjlSMDK4s8I/AAAAAAAABtk/97u6yylA4vo/s320/cancer.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5636626775593759682" /&gt;&lt;/a&gt;&lt;br /&gt;Cancer is a big deal, and the potential environmental factors make mapping incidence very appealing.  This has made maps a handy device for newspapers and other "lay" interpretations, which typically don't employee rigorous statistical tests for significance.  &lt;a href="http://sites.udel.edu/victorp/"&gt;Victor Perez&lt;/a&gt;, a researcher at UD wants to investigate the ways cancer incidence is discussed in these lay publications.  As a discursive preliminary step in this study, Dr. Perez asked me to help him prepare a map that would show what a random incidence of cancer cases might look like.  To do this I used the "generate random points" tool using data on census tracts (Total Population from Census 2000) and given average Delaware cancer incidence.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-3287206822552351270?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/3287206822552351270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=3287206822552351270' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3287206822552351270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3287206822552351270'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/08/lay-interpretation-of-cancer-incidence.html' title='Lay Interpretation of Cancer Incidence'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-VOEcaYG1lsc/TjlSMDK4s8I/AAAAAAAABtk/97u6yylA4vo/s72-c/cancer.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-4107057046506223787</id><published>2011-07-27T10:49:00.000-07:00</published><updated>2011-07-28T06:00:13.113-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arcsde'/><category scheme='http://www.blogger.com/atom/ns#' term='postgres'/><title type='text'>SDE Errors</title><content type='html'>"ERROR: ESRI: error getting spatial references for srid = " &lt;br /&gt;&lt;br /&gt;... uses public.sde_spatial_references instead of sde.sde_coordinate_systems, so cannot use standard srid ... only have a selection of srid's of loaded features ... therefore use srid defined in public.sde_spatial_references&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"DBMS table not found xxx State ID = 9"&lt;br /&gt;&lt;br /&gt;... was getting this error after the SDE had become corrupted b/c client was using PG Admin instead of ArcGIS Desktop to do schema changing operations (deleting tables).  Clearly these actions should be done with Desktop in the future (Catalog).  To fix this I deleted the SDE and reconfigured with the SDE Post-Installer.  This may also be fixable using &lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;sdetable -o unregister&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt; or some switch combo on sdegdbrepair&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-4107057046506223787?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/4107057046506223787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=4107057046506223787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4107057046506223787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4107057046506223787'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/07/sde-errors.html' title='SDE Errors'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-4677718673467156212</id><published>2011-06-28T14:20:00.000-07:00</published><updated>2011-06-28T14:34:09.938-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arcsde'/><category scheme='http://www.blogger.com/atom/ns#' term='postgres'/><title type='text'>ArcSDE/Postgres Error 000210, Could not Copy Features</title><content type='html'>It seems like there is an out of the box error in ArcSDE which causes geodatabase operations like Import Feature to fail out of the box (giving a 000210 error, Could not Copy Feature).  In my case, it was because my db user name "postgres", which is usually a default, was not included as a schema in the deafault database.  This might be solved by calling the user "sde", but in my case I solved it by simply creating a new schema in the default database beside the existing sde schema.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-4677718673467156212?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/4677718673467156212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=4677718673467156212' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4677718673467156212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4677718673467156212'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/06/arcsdepostgres-error-000210-could-not.html' title='ArcSDE/Postgres Error 000210, Could not Copy Features'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-3446506759552584656</id><published>2011-06-14T12:41:00.001-07:00</published><updated>2011-06-14T12:42:56.587-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgres'/><title type='text'>postgres max integer in an alphanumeric column</title><content type='html'>select max(to_number(substring(COLUMNNAME from '([0-9].*)'),'99999')) from TABLENAME&lt;br /&gt;&lt;br /&gt;removes letters from a mixed column ... can be used for generating a new id&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-3446506759552584656?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/3446506759552584656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=3446506759552584656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3446506759552584656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3446506759552584656'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/06/postgres-max-integer-in-alphanumeric.html' title='postgres max integer in an alphanumeric column'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-3340257919356560463</id><published>2011-05-10T16:49:00.000-07:00</published><updated>2011-05-10T16:50:57.263-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arcgis'/><title type='text'>Intersect ArcGIS Bug</title><content type='html'>There is a bug in ArcGIS with the intersect tool (I noticed it when intesecting lines as polylines) that causes the result to be an empty table.  To fix this I exported all tables being intersected to a new location (and the output to point there as well).  This resulted in the expected output.&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-3340257919356560463?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/3340257919356560463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=3340257919356560463' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3340257919356560463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3340257919356560463'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/05/intersect-arcgis-bug.html' title='Intersect ArcGIS Bug'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-5521760322779917688</id><published>2011-04-28T08:11:00.000-07:00</published><updated>2011-04-28T10:16:31.526-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arcgis'/><title type='text'>Flipped Polar Coordinate System</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-9oGIsjfX4tc/TbmFNsTK9CI/AAAAAAAABs4/6wb7t6mGgTU/s1600/blog_ant1.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 297px; height: 278px;" src="http://4.bp.blogspot.com/-9oGIsjfX4tc/TbmFNsTK9CI/AAAAAAAABs4/6wb7t6mGgTU/s320/blog_ant1.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5600654081888285730" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/-ehOV-vnlWvg/TbmFOARdZPI/AAAAAAAABtA/7bNMyJhg84o/s1600/blog_ant2.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 281px; height: 258px;" src="http://1.bp.blogspot.com/-ehOV-vnlWvg/TbmFOARdZPI/AAAAAAAABtA/7bNMyJhg84o/s320/blog_ant2.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5600654087249814770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Problem: NIC/NSIDC Antarctica data was appearing flipped 180 dg, without coordinate system or projection defined.  When other polar data, thought to be in the same coordinate system/projection was placed with this data, the other data appears to be flipped 180 in the right orientation (though the data in question is still flipped).  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Solution: Modify the projection of the data in question to have a central meridian of 180 instead of 0 (with "define projection" using a custom projection based the other data).  THE DATA VIEW PROJECTION MUST ALSO BE SET TO THE PROJECTION OF THE "GOOD" DATA (e.g. 0 Meridian, Polar Stereographic)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-5521760322779917688?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/5521760322779917688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=5521760322779917688' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5521760322779917688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5521760322779917688'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/04/flipped-polar-coordinate-system.html' title='Flipped Polar Coordinate System'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-9oGIsjfX4tc/TbmFNsTK9CI/AAAAAAAABs4/6wb7t6mGgTU/s72-c/blog_ant1.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-5455609127808206774</id><published>2011-03-26T09:36:00.001-07:00</published><updated>2011-03-27T08:07:42.853-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='statistics'/><category scheme='http://www.blogger.com/atom/ns#' term='analysis'/><title type='text'>On Simple Structure and Factor Analysis</title><content type='html'>"&lt;span style="font-style:italic;"&gt;I had become increasingly unhappy with L. L. Thurstone's principle of so-called simple structure and his widely accepted idea that variables are best explained if based on a minimum number of "factors", on only one "factor" if possible. As far as I can see, varieties in nature are nowhere put on single poles, phenomena generally arise from relations of underlying building blocks, from interaction of components and complex combinations. On all levels of inanimate and animate organization wholes emerge from interweaving parts. I could not understand why factor analysts were doggedly attempting to construe a world of utterly independent "dimensions" and associated constructs in splendid isolation.&lt;/span&gt;" (David M. Glover)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-5455609127808206774?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/5455609127808206774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=5455609127808206774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5455609127808206774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5455609127808206774'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/03/on-simple-structure-and-factor-analysis.html' title='On Simple Structure and Factor Analysis'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-2305795978766698381</id><published>2011-03-07T08:09:00.000-08:00</published><updated>2011-03-07T08:12:50.516-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notepad++'/><title type='text'>notepad ++ special characters as replace string</title><content type='html'>While copy over a newline special character will show up in the "find" field of the "find &amp;amp; replace" dialog if one of these is present in a highlight, these cannot be copied/pasted into the "replace" field notepad ++ allows an extended set of special characters to be used both in the find AND replace fields ... so for example if you replace ";" with ";&lt;span class="Apple-style-span" style="font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; font-size: 13px; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; "&gt;\r\n", with the "extended" option checked on, you will get a new line after every ";"&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-2305795978766698381?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/2305795978766698381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=2305795978766698381' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2305795978766698381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2305795978766698381'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/03/notepad-special-characters-as-replace.html' title='notepad ++ special characters as replace string'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-348001280668495243</id><published>2011-02-14T18:48:00.000-08:00</published><updated>2011-02-14T18:55:34.763-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openstreetmaps'/><category scheme='http://www.blogger.com/atom/ns#' term='arcgis'/><title type='text'>ArcGIS Editor for OpenStreetMap</title><content type='html'>&lt;div&gt;I recently had a chance to test out &lt;a href="http://esriosmeditor.codeplex.com/"&gt;ArcGIS Editor for OpenStreetMap&lt;/a&gt; (1.1 Beta3), an open source toolbox for interacting with &lt;a href="http://www.openstreetmap.org/"&gt;OpenStreetMap&lt;/a&gt; (OSM).  OSM, a popular open-source data repository, gained extra traction in the &lt;a href="http://wiki.openstreetmap.org/wiki/WikiProject_Haiti"&gt;US after the Haitian Earthquake&lt;/a&gt;.  This growth came from NGOs, and from some ArcGIS shops with open source leanings, &lt;a href="http://www.azavea.com/blogs/atlas/2010/03/when-will-esri-support-openstreetmap/"&gt;who advocated on behalf of an extension to OSM from ArcGIS&lt;/a&gt;. I've been interacting heavily with OSM in building and maintaining the University of Delaware Map (&lt;a href="http://www.udel.edu/maps"&gt;UD Map&lt;/a&gt;).  The data schema for UD Map is based on the OpenStreetMap schema, and interfaces with OpenStreetMap for data updates and publishing.  As the project demanded it, and as a test of the new tools, I used the toolkit to publish some pending campus base layers.  Alas, this trial ended disappointingly, leaving only manual editing of the vector layer. &lt;i&gt;Append&lt;/i&gt;, which could have been used to join the vector input to the OSM polygon layer, did not work as expected: The OSM changeset was not updated, and therefore could not be uploaded to OSM for processing.  The tools still look very useful for doing manual editing of OSM data and adding OSM data as fully editable vector layers in a map ... and of course, as code to be expanded upon ... this story is to be continued :-)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-348001280668495243?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/348001280668495243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=348001280668495243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/348001280668495243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/348001280668495243'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/02/arcgis-editor-for-openstreetmap.html' title='ArcGIS Editor for OpenStreetMap'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-4799974976717960300</id><published>2011-02-03T13:19:00.000-08:00</published><updated>2011-02-03T13:21:24.227-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ud campus map'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>jquery accordion breaks out of containers on ie7 (ie6?)</title><content type='html'>fixed this issue by giving css position:relative on parent container further up the tree (in this case was the tabs parent)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-4799974976717960300?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/4799974976717960300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=4799974976717960300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4799974976717960300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4799974976717960300'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/02/jquery-accordion-breaks-out-of.html' title='jquery accordion breaks out of containers on ie7 (ie6?)'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-847665230472600542</id><published>2011-02-03T12:20:00.000-08:00</published><updated>2011-02-03T12:42:52.348-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ud campus map'/><title type='text'>Google Spreadsheet Data API</title><content type='html'>I gave a &lt;a href="https://docs.google.com/present/view?id=dx7rb3j_104dxjkq8c6"&gt;presentation&lt;/a&gt; to the U. of Delaware WebDev group and IT-CS&amp;amp;S (RDMS) on the topic of using data from Google Docs Spreadsheets for consumption in a scripted workflow.  I'm using this in the UD Map for automatically incorporate rendering decisions from OCM.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The gist is that you open an https stream with headers for&lt;br /&gt;authorizing, capture an authorization token on the response, open&lt;br /&gt;another stream returning an xml of the table, and parse that.  In&lt;br /&gt;addition, you could form the url for the second stream with parameters&lt;br /&gt;that query the column of interest, for example.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is the presentation:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, 'Sans serif'; font-size: 12px; "&gt;&lt;a id="publishedSlideshowUrl" class="tabcontent" target="_blank" href="https://docs.google.com/present/view?id=dx7rb3j_104dxjkq8c6" style="color: rgb(17, 42, 187); font-family: Arial, sans-serif; font-size: 12px !important; "&gt;https://docs.google.com/present/view?id=dx7rb3j_104dxjkq8c6&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is some sample code (excuse references to my database/tables):&lt;/div&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;function do_post_request($url, $data, $optional_headers = null)&lt;br /&gt;{&lt;br /&gt; echo "Begin do_post_request \n";&lt;br /&gt; $params = array('http' =&gt; array(&lt;br /&gt;    'method' =&gt; 'POST',&lt;br /&gt;    'content' =&gt; $data&lt;br /&gt;  ));&lt;br /&gt; if ($optional_headers !== null) {&lt;br /&gt;$params['http']['header'] = $optional_headers;&lt;br /&gt; }&lt;br /&gt; $ctx = stream_context_create($params);&lt;br /&gt; $fp = @fopen($url, 'rb', false, $ctx);&lt;br /&gt; if (!$fp) {&lt;br /&gt;throw new Exception("Problem with $url, $php_errormsg");&lt;br /&gt; }&lt;br /&gt; $response = @stream_get_contents($fp);&lt;br /&gt; if ($response === false) {&lt;br /&gt;throw new Exception("Problem reading data from $url, $php_errormsg");&lt;br /&gt; }&lt;br /&gt; return $response;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function doFromGoogle(){&lt;br /&gt;echo "Begin doFromGoogle \n";&lt;br /&gt;define("GURL", "https://www.google.com/accounts/ClientLogin");&lt;br /&gt;define("SPREADSHEETREFKEY", "***YOURKEYHERE***");&lt;br /&gt;&lt;br /&gt;//creates post to google auth, creates $auth string from google&lt;br /&gt;$dataArr = array();&lt;br /&gt;$dataArr['accountType'] = 'GOOGLE';&lt;br /&gt;$dataArr['Email'] = '***YOUREMAILHERE***';&lt;br /&gt;$dataArr['Passwd'] = '***YOURPASSWORDHERE***';&lt;br /&gt;$dataArr['service'] = 'wise'; //name for spreadsheet data service&lt;br /&gt;$dataArr['source'] = '***YOURSORUCENAMEHERE***'; //this may be optional&lt;br /&gt;&lt;br /&gt;$dataStr = http_build_query($dataArr);&lt;br /&gt;&lt;br /&gt;$opt_headers = 'application/x-www-form-urlencoded';&lt;br /&gt;&lt;br /&gt;$responseStr = do_post_request(GURL, $dataStr, $opt_headers);&lt;br /&gt;$responseArr = explode("\n",$responseStr); //breaking apart request to get auth token&lt;br /&gt;$auth = explode("=", $responseArr[2]);&lt;br /&gt;$auth = $auth[1];&lt;br /&gt;&lt;br /&gt;$authStr = 'Authorization: GoogleLogin auth=' . $auth;&lt;br /&gt;$url = 'https://spreadsheets.google.com/feeds/list/' . SPREADSHEETREFKEY . '/1/private/full';&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$opts = array(&lt;br /&gt; 'http'=&gt;array(&lt;br /&gt;'method'=&gt;"GET",&lt;br /&gt;'header'=&gt;"$authStr"&lt;br /&gt; )&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;$context = stream_context_create($opts);&lt;br /&gt;&lt;br /&gt;// ini_set('Authorization', "$authStr");&lt;br /&gt;&lt;br /&gt;$handle = fopen($url, "r", false, $context);&lt;br /&gt;$contents = stream_get_contents($handle);&lt;br /&gt;fclose($handle);&lt;br /&gt;&lt;br /&gt;$xml = new SimpleXMLElement($contents);&lt;br /&gt;&lt;br /&gt;$fullquery = null;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$count = 0;&lt;br /&gt;foreach ($xml-&gt;entry as $entry){&lt;br /&gt;$count = $count + 1;&lt;br /&gt;$id = $entry-&gt;children('http://schemas.google.com/spreadsheets/2006/extended')-&gt;osmid;&lt;br /&gt;$render = $entry-&gt;children('http://schemas.google.com/spreadsheets/2006/extended')-&gt;dorender;&lt;br /&gt;$label = $entry-&gt;children('http://schemas.google.com/spreadsheets/2006/extended')-&gt;dolabel;&lt;br /&gt;$labelname = $entry-&gt;children('http://schemas.google.com/spreadsheets/2006/extended')-&gt;labelname;&lt;br /&gt;$maxzoom = $entry-&gt;children('http://schemas.google.com/spreadsheets/2006/extended')-&gt;maxzoom;&lt;br /&gt;$minzoom = $entry-&gt;children('http://schemas.google.com/spreadsheets/2006/extended')-&gt;minzoom;&lt;br /&gt;$labelname = addslashes ($labelname);&lt;br /&gt;&lt;br /&gt;//$color = $entry-&gt;children('http://schemas.google.com/spreadsheets/2006/extended')-&gt;color;&lt;br /&gt;&lt;br /&gt;//print "$id, $count \n $render \n $label \n $labelname";&lt;br /&gt;print "$id  $maxzoom $minzoom\n";&lt;br /&gt;&lt;br /&gt;$query = null;&lt;br /&gt;&lt;br /&gt;if($render &lt;&gt; ''){&lt;br /&gt; $query .= "UPDATE master SET dorender = '" . $render . "' where osm_id = $id and dorender &lt;&gt; '" . $render ."';\n";&lt;br /&gt;}&lt;br /&gt;if($label &lt;&gt; ''){&lt;br /&gt; $query .= "UPDATE master SET dolabel = '" . $label . "'where osm_id = $id and dolabel &lt;&gt; '" . $label ."';\n";&lt;br /&gt;}&lt;br /&gt;if($labelname &lt;&gt; ''){&lt;br /&gt; $query .= "UPDATE master SET labelname = '" . $labelname . "'where osm_id = $id and labelname &lt;&gt; '" . $labelname ."';\n\n";&lt;br /&gt;}&lt;br /&gt;if($maxzoom &lt;&gt; ''){&lt;br /&gt; $query .= "UPDATE master SET maxzoom = '" . $maxzoom . "'where osm_id = $id;\n\n";&lt;br /&gt;}&lt;br /&gt;if($minzoom &lt;&gt; ''){&lt;br /&gt; $query .= "UPDATE master SET minzoom = '" . $minzoom . "'where osm_id = $id;\n\n";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$fullquery .= $query;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//print($query);&lt;br /&gt;$result = pg_query($fullquery) or die('Query failed: ' . pg_last_error());&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-847665230472600542?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/847665230472600542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=847665230472600542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/847665230472600542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/847665230472600542'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/02/google-spreadsheet-data-api.html' title='Google Spreadsheet Data API'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-4671194005475778136</id><published>2011-01-13T13:59:00.000-08:00</published><updated>2011-01-13T14:09:04.997-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><title type='text'>Replacing Tomcat .jsp pages with Apache httpd .php pages</title><content type='html'>It turned out that this task was much easier than I'd expected.  Here are the steps I took:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Edit the httpd.conf file (default path: C:\Apache2.2\conf\httpd.conf).  Remove tomcat references to the services (JkMount).  Add Redirect 301 lines to .php proxy&lt;/li&gt;&lt;li&gt;Create php proxy which is referenced by Redirect 301.  Arguments are passed by the redirect, which can be handled by this proxy.  Here is the code I used for a single argument, but could easily be extended to other arguments.  This also saves arguments that are not handled to a log file: &lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;$out = array();&lt;br /&gt;$log = '';&lt;br /&gt;&lt;br /&gt;foreach($_GET as $key =&amp;gt; $value){&lt;br /&gt;   if (strpos($key, 'max')){};&lt;br /&gt;   switch ($key) {&lt;br /&gt;       case bldgcode:&lt;br /&gt;           $out['id'] = $value;&lt;br /&gt;           break;&lt;br /&gt;       default:&lt;br /&gt;           $log .= 'key is ' . $key . ' and value is ' . $value . "\n";&lt;br /&gt;           break;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$fp = fopen('log', 'a');&lt;br /&gt;fwrite($fp, $log);&lt;br /&gt;fclose($fp);&lt;br /&gt;&lt;br /&gt;$url = 'http://maps.rdms.udel.edu/map/index.php?' . http_build_query($out);&lt;br /&gt;&lt;br /&gt;header("Location: $url");&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-4671194005475778136?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/4671194005475778136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=4671194005475778136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4671194005475778136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4671194005475778136'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2011/01/replacing-tomcat-jsp-pages-with-apache.html' title='Replacing Tomcat .jsp pages with Apache httpd .php pages'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-6932354157551091188</id><published>2010-12-23T13:00:00.000-08:00</published><updated>2010-12-23T13:01:26.744-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgres'/><title type='text'>WHERE NOT IN and NULL in Postgresql</title><content type='html'>NULL values trip up the WHERE NOT IN condition in Postgres.  To fix this behavior, use a conditional (not null) in the subquery.&lt;div&gt;&lt;br /&gt;source: &lt;a href="http://www.depesz.com/index.php/2008/08/13/nulls-vs-not-in/"&gt;http://www.depesz.com/index.php/2008/08/13/nulls-vs-not-in/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-6932354157551091188?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/6932354157551091188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=6932354157551091188' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6932354157551091188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6932354157551091188'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/12/where-not-in-and-null-in-postgresql.html' title='WHERE NOT IN and NULL in Postgresql'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-3374864993745182437</id><published>2010-11-10T09:04:00.000-08:00</published><updated>2010-11-10T09:16:02.152-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ud campus map'/><category scheme='http://www.blogger.com/atom/ns#' term='openstreetmaps'/><title type='text'>Duplicate OSM Features in UD Campus Map</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "&gt;&lt;div&gt;I noticed a couple places where we have two polygons on top of each other (particularly for parking polygons) in the UD Campus Map. I just wanted to note, if you're trying to modify an existing polygon on the map, make sure that you're changing the existing shape, rather than adding a new one (otherwise we're loosing attributes on the exisiting shape).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here are two screenshots to demonstrate what I'm talking about (note that only the second polygon retains attribute information/properties as listed in the right-hand sidebar), though it appears the first polygon was intended to replace the second.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/_QNy_7A5izKI/TNrTDb8iPuI/AAAAAAAABsc/4EJrSOCAkyo/s512/editing-example.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 335px; height: 512px;" src="http://lh6.ggpht.com/_QNy_7A5izKI/TNrTDb8iPuI/AAAAAAAABsc/4EJrSOCAkyo/s512/editing-example.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "&gt;I've fixed this problem by adding nodes to the second polygon (the original one that has attributes/properties) and dragging them to match the footprint of the first (new, intended to replace the first), and deleting that one.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-3374864993745182437?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/3374864993745182437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=3374864993745182437' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3374864993745182437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3374864993745182437'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/11/duplicate-osm-features-in-ud-campus-map.html' title='Duplicate OSM Features in UD Campus Map'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_QNy_7A5izKI/TNrTDb8iPuI/AAAAAAAABsc/4EJrSOCAkyo/s72-c/editing-example.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-1602174794579926175</id><published>2010-11-09T08:35:00.000-08:00</published><updated>2010-11-09T08:37:33.278-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ud campus map'/><category scheme='http://www.blogger.com/atom/ns#' term='openlayers'/><title type='text'>Zoom to extent of new vector layer in OL</title><content type='html'>Zooming to the maximum extent of all features in a vector layer does not work unless all features have been loaded.  Therefore it is necessary to register an event handler, as demonstrated below ('layer' is any object of class OpenLayers.Layer.Vector):&lt;br /&gt;&lt;br /&gt;layer.events.register('featuresadded', map,function(){this.zoomToExtent(layer.getDataExtent())});&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-1602174794579926175?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/1602174794579926175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=1602174794579926175' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/1602174794579926175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/1602174794579926175'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/11/zoom-to-extent-of-new-vector-layer-in.html' title='Zoom to extent of new vector layer in OL'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-251764620788130108</id><published>2010-10-08T11:10:00.000-07:00</published><updated>2010-10-08T11:22:15.054-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='excel'/><category scheme='http://www.blogger.com/atom/ns#' term='arcgis'/><category scheme='http://www.blogger.com/atom/ns#' term='arcmap'/><title type='text'>Random Feature Selection</title><content type='html'>I met with a gentleman today who needed to select random streets in Wilmington in order to do a field survey of urban forestry there. Here are the steps we took to do so:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-Use Excel and the RANDBETWEEN function to generate random numbers in a range = total number of features (in this case, streets in Wilmington). Drag this equation down a column = number of features in sample. Once this has been done, save/export (I usually like to use DBF for ArcGIS)&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;b class="bterm"&gt;&lt;/b&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;b class="bterm"&gt;RANDBETWEEN&lt;/b&gt;(&lt;b class="bterm"&gt;bottom&lt;/b&gt;,&lt;b class="bterm"&gt;top&lt;/b&gt;)&lt;/p&gt;&lt;p&gt;&lt;b class="runinhead"&gt;Bottom&lt;/b&gt; is the smallest integer RANDBETWEEN will return.&lt;/p&gt;&lt;p&gt;&lt;b class="runinhead"&gt;Top&lt;/b&gt; is the largest integer RANDBETWEEN will return.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;- with data added to ArcGIS, use "Frequency" tool to check that no duplicate values were generated&lt;/p&gt;&lt;p&gt;- do a regular one to one join, dropping out all values that don't match. The result will be a random set of features -- in this case, street segments.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_QNy_7A5izKI/TK9g1D-KfhI/AAAAAAAABqk/4Du6EDZcTBo/s1600/randomstreets.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 347px;" src="http://4.bp.blogspot.com/_QNy_7A5izKI/TK9g1D-KfhI/AAAAAAAABqk/4Du6EDZcTBo/s400/randomstreets.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5525741732522262034" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-251764620788130108?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/251764620788130108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=251764620788130108' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/251764620788130108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/251764620788130108'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/10/random-feature-selection.html' title='Random Feature Selection'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_QNy_7A5izKI/TK9g1D-KfhI/AAAAAAAABqk/4Du6EDZcTBo/s72-c/randomstreets.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-7937418049950449533</id><published>2010-10-07T07:09:00.000-07:00</published><updated>2011-02-01T06:13:58.057-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kml'/><category scheme='http://www.blogger.com/atom/ns#' term='google maps'/><title type='text'>View KML Source from MyMaps</title><content type='html'>Google MyMaps allows you to export KML by using the "Export to Google Earth" feature.   If you copy/paste the URL that this button links to you get a KML, but it is a network reference to the actual KML.  If you copy/paste the URL referenced in this KML in your browser, you'll get a warning "&lt;span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: pre-wrap; "&gt;{errorText:"Unable to contact server."}&lt;/span&gt;".  To get past this warning, you must decode the encoded URL reference.  That means getting rid of all the "&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;amp;&lt;/a&gt;" strings.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For example, change:&lt;/div&gt;&lt;div&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;http://maps.google.com/maps/ms?ie=UTF8&amp;amp;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;amp;&lt;/a&gt;hl=en&amp;amp;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;amp;&lt;/a&gt;&lt;/span&gt;vps=1&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;&amp;amp;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;amp&lt;/a&gt;;&lt;/span&gt;jsv=250a&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;&amp;amp;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;amp&lt;/a&gt;;&lt;/span&gt;oe=UTF8&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;&amp;amp;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;amp&lt;/a&gt;;&lt;/span&gt;msa=0&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;&amp;amp;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;amp&lt;/a&gt;;&lt;/span&gt;msid=113097578162956796020.00048fc123b72558b50ff&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;&amp;amp;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;amp&lt;/a&gt;;&lt;/span&gt;output=kml&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;to &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml"&gt;http://maps.google.com/maps/ms?ie=UTF8&amp;amp;;hl=en&amp;amp;vps=1&amp;amp;jsv=250a&amp;amp;oe=UTF8&amp;amp;msa=0&amp;amp;msid=113097578162956796020.00048fc123b72558b50ff&amp;amp;output=kml&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and you'll get the actual kml.  You do not need to do this within any script or program, since those tend to encode URLs anyway.  However, it is very useful for debugging issues with KML.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-7937418049950449533?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/7937418049950449533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=7937418049950449533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7937418049950449533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7937418049950449533'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/10/view-kml-source-from-mymaps.html' title='View KML Source from MyMaps'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-2603203405891826616</id><published>2010-10-01T07:37:00.000-07:00</published><updated>2010-10-01T07:38:38.410-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sld'/><category scheme='http://www.blogger.com/atom/ns#' term='geoserver'/><title type='text'>Geoserver Labeling, Font Changes</title><content type='html'>Wierd Geoserver Behavior (bug): font changed from Arial to some kind of serif font for no apparent reason.  I fixed this by clearing all caches and restarting the Geoserver service.  I'm still not sure what caused the issue.&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-2603203405891826616?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/2603203405891826616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=2603203405891826616' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2603203405891826616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2603203405891826616'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/10/geoserver-labeling-font-changes.html' title='Geoserver Labeling, Font Changes'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-5178956151079659759</id><published>2010-10-01T06:09:00.000-07:00</published><updated>2010-10-01T07:09:55.470-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arcgis'/><title type='text'>Animal Movement and Home Range Options for ArcGIS</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "&gt;The &lt;span class="il" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 204); color: rgb(34, 34, 34); background-position: initial initial; background-repeat: initial initial; "&gt;Animal&lt;/span&gt; Movement Extension was written in Avenue, and development stopped many years ago.  Therefore, &lt;span class="il" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 204); color: rgb(34, 34, 34); background-position: initial initial; background-repeat: initial initial; "&gt;Animal &lt;/span&gt;Movement Extension is not available for ArcGIS 9.x or 10.&lt;br /&gt;&lt;br /&gt;There are a couple of options if you'd like to move forward with ArcGIS&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A lot of people using &lt;span class="il" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 204); color: rgb(34, 34, 34); background-position: initial initial; background-repeat: initial initial; "&gt;Animal&lt;/span&gt; Movement extension migrated to Hawths Tools, to be able to use ArcGIS.  Hawths tools offered many of the functions in &lt;span class="il" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 204); color: rgb(34, 34, 34); background-position: initial initial; background-repeat: initial initial; "&gt;Animal&lt;/span&gt; Movement, though Hawths tools is also now a discontinued project, and will not work with newer versions of ArcGIS (9.2 was the last version it worked with).&lt;/li&gt;&lt;li&gt;Hawths tools has been been merged into the Geospatial Modeling Environment, which works with ArcGIS 10.  You can download this and find more info at: &lt;a href="http://www.spatialecology.com/gme/" target="_blank" style="color: rgb(42, 93, 176); "&gt;http://www.spatialecology.com/&lt;wbr&gt;gme/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.spatialecology.com/gme/" target="_blank" style="color: rgb(42, 93, 176); "&gt;&lt;/a&gt;Home Range Tools for ArcGIS works on ArcGIS 9.x, and is available at &lt;a href="http://nhsbig.inhs.uiuc.edu/wes/home_range.html" target="_blank" style="color: rgb(42, 93, 176); "&gt;http://nhsbig.inhs.uiuc.edu/&lt;wbr&gt;wes/home_range.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;There is a lot of work going on with Agent Based modeling right now.  I met with an agent based modeling working group at the ESRI conference.  They've developed an extension for ArcGIS based on repast called Agent Analyst: &lt;a href="http://www.institute.redlands.edu/agentanalyst/" target="_blank" style="color: rgb(42, 93, 176); "&gt;http://www.institute.redlands.&lt;wbr&gt;edu/agentanalyst/&lt;/a&gt; .   I didn't hear about any scenarios involving wildlife movement, buy there is a book coming out, and I would assume those scenarios might be discussed. I'll keep my ear to the ground on this one&lt;/li&gt;&lt;li&gt;There are also contributed and native tools and scripts that could be used to perform many of these functions if strung together in the right order&lt;/li&gt;&lt;/ul&gt;Other Resources&lt;/span&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  &gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px;"&gt;&lt;a href="http://snr.unl.edu/powell/teaching/nres896/density_HR/nres896_links.htm"&gt;http://snr.unl.edu/powell/teaching/nres896/density_HR/nres896_links.htm&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  &gt;&lt;a href="http://warnercnr.colostate.edu/class_info/fw663/"&gt;http://warnercnr.colostate.edu/class_info/fw663/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-5178956151079659759?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/5178956151079659759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=5178956151079659759' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5178956151079659759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5178956151079659759'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/10/animal-movement-and-home-range-options.html' title='Animal Movement and Home Range Options for ArcGIS'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-5980384947998889398</id><published>2010-09-29T07:17:00.001-07:00</published><updated>2010-09-29T07:39:42.130-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sld'/><category scheme='http://www.blogger.com/atom/ns#' term='geoserver'/><category scheme='http://www.blogger.com/atom/ns#' term='ud campus map'/><title type='text'>Geoserver SLD Polygon Labels Repeat</title><content type='html'>Fix: had specified larger tile size for earlier debugging.  Switch tilesize back to 256 to fix label repeat on polygons.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-5980384947998889398?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/5980384947998889398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=5980384947998889398' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5980384947998889398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5980384947998889398'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/09/geoserver-sld-polygon-labels-repeat.html' title='Geoserver SLD Polygon Labels Repeat'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-752644611113285492</id><published>2010-09-28T12:54:00.000-07:00</published><updated>2010-09-28T13:11:14.542-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sld'/><category scheme='http://www.blogger.com/atom/ns#' term='geoserver'/><category scheme='http://www.blogger.com/atom/ns#' term='ud campus map'/><title type='text'>FIX!  Geoserver not displaying labels</title><content type='html'>I've been having an extremely frustrating problem over the last month ... in one word: labeling.  My latest labeling challenge, was that Geoserver refused to show label&lt;span class="Apple-style-span"&gt;s for many buildings.  I tried all kinds of things ... isolating the buildings layer, checking my query order, changing&lt;/span&gt; conflicts/overlap options ... pretty much anything I could think of to get labels to display. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally, I figured it out!  There is an obscured parameter in older ('stable') versions of Geoserver, which was finally exposed through SLD vendorOption in the latest release of Geoserver/Geotools.   This parameter &lt;span class="Apple-style-span" style="font-family: Tahoma, 'Lucida Sans Unicode', 'Lucida Grande', Verdana, sans-serif; font-size: 13px; color: rgb(38, 37, 35); line-height: 17px; "&gt;MIN_GOODNESS_FIT &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(38, 37, 35); line-height: 17px; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;is used when labeling polygons in particular.  Based on  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, 'Lucida Sans Unicode', 'Lucida Grande', Verdana, sans-serif; font-size: 13px; color: rgb(38, 37, 35); line-height: 17px; "&gt;MIN_GOODNESS_FIT &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: georgia; font-size: medium; color: rgb(38, 37, 35); line-height: 17px; "&gt;geotools determines if From geoserver docs: &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: georgia; font-size: medium; color: rgb(38, 37, 35); line-height: 17px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: georgia; font-size: medium; color: rgb(38, 37, 35); line-height: 17px; "&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, 'Lucida Sans Unicode', 'Lucida Grande', Verdana, sans-serif; font-size: 13px; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: georgia; color: rgb(38, 37, 35); line-height: 17px; "&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, 'Lucida Sans Unicode', 'Lucida Grande', Verdana, sans-serif; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Geoserver will remove labels if they are a particularly bad fit for the geometry they are labeling.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: georgia; color: rgb(38, 37, 35); line-height: 17px; "&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, 'Lucida Sans Unicode', 'Lucida Grande', Verdana, sans-serif; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: georgia; color: rgb(38, 37, 35); line-height: 17px; "&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, 'Lucida Sans Unicode', 'Lucida Grande', Verdana, sans-serif; border-collapse: collapse; "&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;The label is sampled approximately at every letter. The distance from these points to the polygon is determined and each sample votes based on how close it is to the polygon&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: georgia; font-size: medium; color: rgb(38, 37, 35); line-height: 17px; "&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, 'Lucida Sans Unicode', 'Lucida Grande', Verdana, sans-serif; font-size: 13px; border-collapse: collapse; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: georgia; font-size: medium; color: rgb(38, 37, 35); line-height: 17px; "&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, 'Lucida Sans Unicode', 'Lucida Grande', Verdana, sans-serif; font-size: 13px; border-collapse: collapse; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px; line-height: 17px;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; font-family: georgia; font-size: medium; "&gt;so labels are removed if letters are beyond a certain threshold from the polygon.  T&lt;b&gt;hat meant that small buildings (especially ones with longish names) would never be labeled.  &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px; line-height: 17px;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; font-family: georgia; font-size: medium; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px; line-height: 17px;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; font-family: georgia; font-size: medium; "&gt;However, in Geoserver 2.1 the SLD VendorOption "goodnessOfFit" is exposed&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px; line-height: 17px;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; font-family: georgia; font-size: medium; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px; line-height: 17px;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; font-family: georgia; font-size: medium; "&gt;Syntax follows this example:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px; line-height: 17px;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; font-family: georgia; font-size: medium; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="line-height: 17px; font-size: medium;"&gt;&lt;vendoroption name="goodnessOfFit"&gt;0.3&lt;/vendoroption&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="line-height: 17px; font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="line-height: 17px; font-size: medium;"&gt;the default value is 0.5, so anything lower will allow more lables to be placed.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="line-height: 17px; font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="line-height: 17px; font-size: medium;"&gt;For more, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://docs.geoserver.org/latest/en/user/styling/sld-reference/labeling.html"&gt;http://docs.geoserver.org/latest/en/user/styling/sld-reference/labeling.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Issue discussion:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://jira.codehaus.org/browse/GEOT-1868"&gt;http://jira.codehaus.org/browse/GEOT-1868&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://jira.codehaus.org/browse/GEOT-2446?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#issue-tabs"&gt;http://jira.codehaus.org/browse/GEOT-2446?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#issue-tabs&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, 'Lucida Sans Unicode', 'Lucida Grande', Verdana, sans-serif; font-size: 13px; color: rgb(38, 37, 35); line-height: 17px; border-collapse: collapse; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: georgia; font-size: medium; color: rgb(38, 37, 35); line-height: 17px; "&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, 'Lucida Sans Unicode', 'Lucida Grande', Verdana, sans-serif; font-size: 13px; border-collapse: collapse; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-752644611113285492?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/752644611113285492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=752644611113285492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/752644611113285492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/752644611113285492'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/09/fix-geoserver-not-displaying-labels.html' title='FIX!  Geoserver not displaying labels'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-7803844907333512173</id><published>2010-09-16T12:23:00.001-07:00</published><updated>2010-09-16T12:24:36.429-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geoserver'/><category scheme='http://www.blogger.com/atom/ns#' term='ud campus map'/><category scheme='http://www.blogger.com/atom/ns#' term='mapnik'/><title type='text'>Geoserver WebTileCache</title><content type='html'>I was ultimately not able to deal with cutoff labels in Mapnik (or labels not being placed because of tile/overlap issues), so I went with Geoserver for the UD campus map project.  The WebTileCache automatically tilecaches all services ... only challenge is to use SLD for styling.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-7803844907333512173?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/7803844907333512173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=7803844907333512173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7803844907333512173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7803844907333512173'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/09/geoserver-webtilecache.html' title='Geoserver WebTileCache'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-8488474489494511552</id><published>2010-08-27T08:30:00.000-07:00</published><updated>2010-08-27T08:37:21.209-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ud campus map'/><category scheme='http://www.blogger.com/atom/ns#' term='mapnik'/><title type='text'>Mapnik label cut off strategies</title><content type='html'>I've been spending a lot of time dealing with mapnik labels/shields being cut off.  Here are some strategies:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;change the "buffer_size" property of the map object in the mapnik xml ... you can also direclty change this in generate_tiles.py (which comes with osm mapnik package).  I don't think the mapnik xml was being read in my case.  When I changed the line self.m.buffer_size to = 0, my cutoff problems disappear&lt;/li&gt;&lt;li&gt;you'll need to do some tweaking with the order layers are defined within mapnik/cascadenik&lt;/li&gt;&lt;li&gt;also tweaking of text-allow-overlap and text-avoid-edges (these are cascadenik properties, there are similarly named ones for mapnik alone)&lt;/li&gt;&lt;li&gt;you may need to merge segments of the same road&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;To sum up: my strategy was first getting all my ordering straightened out with how layers are defined/ordered within mapnik/cascadenik.  I then turned most layers to text-avoid-edges and text-allow-overlap to true.  I set the buffer value to 0 in the .py file that I was using to render my tiles (in the osm package).  Then moving around stuff that overlapped badly and will possibly need to merge segments of the same road.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-8488474489494511552?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/8488474489494511552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=8488474489494511552' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8488474489494511552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8488474489494511552'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/08/mapnik-label-cut-off-strategies.html' title='Mapnik label cut off strategies'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-8656022533994859866</id><published>2010-08-10T05:22:00.000-07:00</published><updated>2010-08-10T05:24:45.502-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mapnik'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>ImportError: No module named mapnik</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium; "&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;I'm still not sure what exactly causes this error: "ImportError: No module named mapnik" .. clearly Python is not finding the mapnik bindings, but why?  I think it might be related to a new install of ArcGIS, which installs a new version of Python.  I am also trying to figure out how exactly to fix this.  Recently I relaunched "cmd" and that worked.&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-8656022533994859866?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/8656022533994859866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=8656022533994859866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8656022533994859866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8656022533994859866'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/08/importerror-no-module-named-mapnik.html' title='ImportError: No module named mapnik'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-8578094392177638566</id><published>2010-07-29T05:50:00.001-07:00</published><updated>2010-07-29T05:52:13.506-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>python zipfile.py MemoryError</title><content type='html'>Was getting the following error on zipfile.py (actually while attempting to run a cascadenik script):        &lt;div&gt;        newdata = self.dc.decompress(newdata)&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;MemoryError&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I fixed this error by changing the compression algorithm that my .zip was being created with to "STORE" (i.e. no compression).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-8578094392177638566?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/8578094392177638566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=8578094392177638566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8578094392177638566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8578094392177638566'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/07/python-zipfilepy-memoryerror.html' title='python zipfile.py MemoryError'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-4785138544191653767</id><published>2010-04-21T11:23:00.000-07:00</published><updated>2010-04-21T11:32:54.182-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>python cgi with xxamp/apache on windows</title><content type='html'>I recently figured out that a web service class I was dealing with (WFS in OpenLayers) would only accept requests through a proxy script (despite the requests were sent to my local machine!).  OpenLayers has a .cgi &lt;a href="http://trac.openlayers.org/browser/trunk/openlayers/examples/proxy.cgi"&gt;proxy script&lt;/a&gt; which runs through Python, and here's how I got it to work:&lt;br /&gt;&lt;br /&gt;1.  Download &lt;a href="http://trac.openlayers.org/browser/trunk/openlayers/examples/proxy.cgi?format=raw"&gt;proxy.cgi&lt;/a&gt; to the cgi-bin folder within xampp (or wherever it is), and install Python.  I used version 2.5&lt;br /&gt;2.  Follow &lt;a href="http://blog.chomperstomp.com/installing-python-mod_python-on-xampp/"&gt;these instructions&lt;/a&gt; to setup Apache for running python&lt;br /&gt;3. Finally, make sure you change the "shebang" line at the top of proxy.cgi  from #!/usr/bin/env python to #!c:/python25/python (if python.exe is installed at C:\Python25\python.exe)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-4785138544191653767?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/4785138544191653767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=4785138544191653767' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4785138544191653767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4785138544191653767'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/04/python-cgi-with-xxampapache-on-windows.html' title='python cgi with xxamp/apache on windows'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-8198517906858641311</id><published>2010-03-15T05:58:00.001-07:00</published><updated>2010-03-15T06:00:21.572-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arcgis server'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='cache'/><category scheme='http://www.blogger.com/atom/ns#' term='google maps'/><title type='text'>Tilecaching MXD/ArcGIS Server to file/folder-based only (e.g. google, mapnik)</title><content type='html'>So it seems like there's no automated way to go from mxd to file/folder based (rather than web service) tile cache.  The best I could do was use maptiler/gdal2tiles (maptiler is a very nice gui for gdal2tiles) to cache raster layers.  This will fuse multiple raster layers, but doesn't handle vectors.  If you want to pass vectors through here you can always convert to raster with some other tool but you'll end up loosing any scale dependencies.  Please note, you'll likely have to incorporate a part of their auto-generated code for google maps, since the file naming doesn't completely conform to x/y/z google scheme naming.  I've included my modified tile provider class for the gmap_overlays submodule (part of the gmap addons submod collection ... lives in PATH_TO_DRUPAL\sites\all\modules\gmap_addons\gmap_overlays\js), which handles output from maptiler/gdal2tiles.&lt;br /&gt;&lt;br /&gt;note: exposing as wms and using tilecache might be a good idea, but this non-automated solution that is OK for me right now&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-8198517906858641311?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/8198517906858641311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=8198517906858641311' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8198517906858641311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8198517906858641311'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/03/tilecaching-mxdarcgis-server-to.html' title='Tilecaching MXD/ArcGIS Server to file/folder-based only (e.g. google, mapnik)'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-2519288569023729463</id><published>2010-03-11T13:06:00.000-08:00</published><updated>2010-03-19T10:27:51.142-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arcgis server'/><category scheme='http://www.blogger.com/atom/ns#' term='cache'/><title type='text'>AGS error: #000569: Failed to generate cache. All server contexts failed to cache map.</title><content type='html'>I was getting the following error when trying to cache a map service in ArcGIS Server/ArcCatalog: 000569: Failed to generate cache. All server contexts failed to cache map.&lt;br /&gt;&lt;br /&gt;I ultimately resolved this issue by upgrading my server software (ArcGIS Desktop) to the same version as my client (in my case 9.3.1 service pack 1).  Caching only within a feature, which in my case was a three county polygon that was much larger than the area I wanted to cache, greatly improved performance ... I'm not sure if it even would have worked without that.&lt;br /&gt;&lt;br /&gt;Note: if postinstallation hangs while upgrading server software check out this post: http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&amp;d=32766&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-2519288569023729463?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/2519288569023729463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=2519288569023729463' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2519288569023729463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2519288569023729463'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/03/ags-error-000569-failed-to-generate.html' title='AGS error: #000569: Failed to generate cache. All server contexts failed to cache map.'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-1701602676055912710</id><published>2010-03-04T11:02:00.001-08:00</published><updated>2010-03-04T11:05:28.849-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><title type='text'>Drupal SWFTools Error</title><content type='html'>Was getting the following error: "You are missing some Flash content that should appear here! Perhaps your browser cannot display it, or maybe it did not initialize correctly." on Chrome and I.E. only.  Figured out that by changing the embed method under Embedding settings (Home&gt;Administer&gt;Site configuration&gt;SWF Tools&gt;Embedding settings) back to "Direct embedding - do not use JavaScript replacement" from " SWFObject 2 - JavaScript" I no longer get this error&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-1701602676055912710?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/1701602676055912710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=1701602676055912710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/1701602676055912710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/1701602676055912710'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/03/drupal-swftools-error.html' title='Drupal SWFTools Error'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-8013373539360708875</id><published>2010-03-04T06:48:00.001-08:00</published><updated>2010-03-04T06:56:04.399-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='google maps'/><title type='text'>Tile basemap through Views/GMaps module (Drupal)</title><content type='html'>To add a tiled basemap to a gmap created with views (and the gmaps) module:&lt;br /&gt;&lt;br /&gt;1.  First make sure that you have a gmap set up through views.  This is a good tutorial: http://groups.drupal.org/node/19614&lt;br /&gt;&lt;br /&gt;2.  Next download the GMap Addons module, if you haven't already done so&lt;br /&gt;&lt;br /&gt;3.  Create a map tile structure using something like tilecache, mapcruncher, or ArcGIS (you can generate a map with the google maps scheme, just not sure where to get an xml that would adequately describe the scheme to ArcGIS)&lt;br /&gt;&lt;br /&gt;4.  Finally add a tile overlay macro within the style (GMap) configuration for this view.  Use the following form: &lt;br /&gt;&lt;br /&gt;[gmap |overlay=tile:http://host/tilesdirectory/{Z}/{X}/{Y}.png]&lt;br /&gt;&lt;br /&gt;... notice you don't need to substitute anything for Z, X, or Y ... these correspond to folder numbering as generated with tilecache (or other tiling program) using the google maps scheme.  &lt;br /&gt;&lt;br /&gt;If you save the view you should now be able to see your basemap in a page generated by that view.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-8013373539360708875?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/8013373539360708875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=8013373539360708875' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8013373539360708875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8013373539360708875'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/03/tile-basemap-through-viewsgmaps-module.html' title='Tile basemap through Views/GMaps module (Drupal)'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-3483189497253488542</id><published>2010-02-04T11:36:00.001-08:00</published><updated>2010-02-04T13:15:45.607-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arcims'/><title type='text'>Migrating ArcIMS to a new machine</title><content type='html'>1. Install Apache (2.2.x, to c:\Apache2.2\, in my case) and Tomcat (6.0.x, to c:\Tomcat6.0\, in my case) make sure each is able to launch independently.  You might need to install Java JDK and set environment variables JAVA_HOME and JRE_HOME to the JDK directory&lt;br /&gt;2. Download mod_jk (1.2.28 httpd-2.2.3,  in my case).  Install by dragging mod_jk-xxx.so to the Apache modules folder and renaming mod_jk.so.  Add this line to httpd.conf: LoadModule jk_module modules/mod_jk.so&lt;br /&gt;3. Add a workers.properties file to the apache conf directory.  This file sets options for your ajp (probably ajp13).  Make sure it points to your JDK, Tomcat home directory, etc.&lt;br /&gt;4. Install ArcIMS with the 'custom' option during post-install.  Make sure that you select the JDK you already installed.&lt;br /&gt;5.  Copy over old aimsacl.xml from webapps\servlet\WEB-INF\classes.  Give * permissions to all your apps for testing, you can change later if necessary&lt;br /&gt;6. Copy over old old apps from the Tomcat webapps directory. Make sure WEB-INF\classes\Authenticate.properties is pointing to the new aimsacl.xml&lt;br /&gt;7. Use AIMS administrator to set up map service, using similiar settings as old service.  Note: on my install 'Output', 'Website', and 'Axl' are all under the Apache htdocs directory&lt;br /&gt;8. Add all applicable webapps directories to httpd.conf as in the following (substituting 'example' for your own app): &lt;br /&gt;JkMount /example ajp13&lt;br /&gt;JkMount /example/* ajp13&lt;br /&gt;9.  Change any connection properties in your webapps to match new machine&lt;br /&gt;10. Restart Apache, Tomcat, enjoy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-3483189497253488542?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/3483189497253488542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=3483189497253488542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3483189497253488542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3483189497253488542'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/02/migrating-arcims-to-new-machine.html' title='Migrating ArcIMS to a new machine'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-4498231680448366932</id><published>2010-01-25T06:08:00.000-08:00</published><updated>2010-01-25T06:11:24.138-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='json'/><category scheme='http://www.blogger.com/atom/ns#' term='postgres'/><title type='text'>json_encode pg_fetch_array</title><content type='html'>For some reason you need to run the result of pg_fetch_array through a loop and store in another array to be able to encode as JSON ... here's an example:&lt;br /&gt;&lt;br /&gt;// Connecting, selecting database&lt;br /&gt;$dbconn = pg_connect("host=HOSTNAME dbname=DBNAME user=DBUSER password=PASSWORD")&lt;br /&gt; or die('Could not connect: ' . pg_last_error());&lt;br /&gt;&lt;br /&gt;// Performing SQL query&lt;br /&gt;$query = "SELECT * FROM mytable";&lt;br /&gt;$result = pg_query($query) or die('Query failed: ' . pg_last_error());&lt;br /&gt;&lt;br /&gt;$resultArray = array();&lt;br /&gt;while ($row = pg_fetch_array($result, null, PGSQL_ASSOC)) {&lt;br /&gt;  $resultArray[] = $row;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;echo json_encode($resultArray);&lt;br /&gt;&lt;br /&gt;// Free resultset&lt;br /&gt;pg_free_result($result);&lt;br /&gt;&lt;br /&gt;// Closing connection&lt;br /&gt;pg_close($dbconn);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-4498231680448366932?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/4498231680448366932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=4498231680448366932' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4498231680448366932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4498231680448366932'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/01/jsonencode-pgfetcharray.html' title='json_encode pg_fetch_array'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-7980179238443806996</id><published>2010-01-22T07:06:00.000-08:00</published><updated>2010-06-14T11:00:38.780-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ud campus map'/><category scheme='http://www.blogger.com/atom/ns#' term='openstreetmaps'/><category scheme='http://www.blogger.com/atom/ns#' term='openlayers'/><title type='text'>Mapnik ... success!</title><content type='html'>Here's how I imported, rendered, and served OSM data through mapnik, locally:&lt;br /&gt;&lt;br /&gt;1.  Do all downloads/installs ... python (2.5 worked for me), postgres/postgis (8.3 worked), osm2pgsql, mapnik, rendering/mapnik utilities for OSM&lt;br /&gt;2.  Follow info below on osm2pgsql&lt;br /&gt;3.  Make sure mapnik bindings are registered with Python, run the demo under demo\python to make sure mapnik works, here are &lt;a href="http://wiki.openstreetmap.org/wiki/Mapnik/Installation#For_Microsoft_Windows_.28Windows_2000_and_above.29"&gt;pretty good instructions from the OSM wiki&lt;/a&gt;&lt;br /&gt;4.  Follow this &lt;a href="http://svn.openstreetmap.org/applications/rendering/mapnik/README"&gt;readme&lt;/a&gt; to run generate_xml.py and generate_tiles.py.  Use my tips below if you get stuck ... also make sure you keep your coordinates straight ... these scripts won't throw an error, they'll just crash&lt;br /&gt;5.  Once you've generated tiles stick them in a web accessible location and use t&lt;a href="http://wiki.openstreetmap.org/wiki/OpenLayers_Simple_Example"&gt;his tutorial to get them working with OpenLayers&lt;/a&gt; ... note the "bespoke" section, which shows how to add your custom tiles&lt;br /&gt;&lt;br /&gt;... now to customize the rendering I only need to modify the map.xml file created by generate_xml.py ... I could do this manually or might look into the qgis plugin ... also cascadenik looks cool&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-7980179238443806996?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/7980179238443806996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=7980179238443806996' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7980179238443806996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7980179238443806996'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/01/mapnik-success.html' title='Mapnik ... success!'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-3934255672049141942</id><published>2010-01-21T08:32:00.000-08:00</published><updated>2010-01-21T08:49:28.851-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ud campus map'/><category scheme='http://www.blogger.com/atom/ns#' term='openstreetmaps'/><title type='text'>OSM2PGSQL</title><content type='html'>After getting mapnik installed and running I realized:&lt;br /&gt;&lt;br /&gt;1.  &lt;span style="font-weight:bold;"&gt;generate_tiles/generate_xml&lt;/span&gt; (and the rest of the render utilities) are really necessaryfor rendering OSM through mapnik.  Therefore, you must download &lt;span style="font-weight:bold;"&gt;both&lt;/span&gt; mapnik through the mapnik site but also the mapnik OSM rendering tools which you can get through SVN at http://svn.openstreetmap.org/applications/rendering/mapnik/&lt;br /&gt;2.  you must &lt;span style="font-weight:bold;"&gt;download world coastlines&lt;/span&gt; to get the osm/mapnik utilities to run as detailed &lt;a href="http://svn.openstreetmap.org/applications/rendering/mapnik/README"&gt;here&lt;/a&gt; (if you're getting an error about 'world_boundaries', that's why)&lt;br /&gt;3.  you &lt;span style="font-weight:bold;"&gt;must&lt;/span&gt; use OSM2PGSQL to import your osm data into postgres ... you can do this through &lt;span style="font-weight:bold;"&gt;osmosis&lt;/span&gt;, but it &lt;span style="font-weight:bold;"&gt;won't work&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Helpful hints with OSM2PGSQL&lt;br /&gt;&lt;br /&gt;1.  you must run the included .sql in order to create the proper spatial reference information for the projection mapnik likes&lt;br /&gt;2.  you must create the database with a postgis template&lt;br /&gt;3.  you might need to export through JSOM and encode as UTM8 ... I did this as a safeguard this time and it worked ... if you're having trouble, try this&lt;br /&gt;&lt;br /&gt;Related errors:&lt;br /&gt; failed: ERROR:  AddGeometryColumns() - invalid SRID&lt;br /&gt;CONTEXT:  SQL statement "SELECT AddGeometryColumn('','', $1 , $2 , $3 , $4 , $5 )"&lt;br /&gt;PL/pgSQL function "addgeometrycolumn" line 4 at SQL statement&lt;br /&gt;&lt;br /&gt;relation "planet_osm_polygon" does not exist&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-3934255672049141942?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/3934255672049141942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=3934255672049141942' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3934255672049141942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3934255672049141942'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/01/osm2pgsql.html' title='OSM2PGSQL'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-4149608877704565835</id><published>2010-01-20T05:59:00.000-08:00</published><updated>2010-01-20T06:39:49.106-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ud campus map'/><category scheme='http://www.blogger.com/atom/ns#' term='openstreetmaps'/><title type='text'>Loading OSM with OSMOSIS</title><content type='html'>Now that I've decided to locally render OSM data for the campus, I need to get the OSM data for the maximum extent of campus areas into a local database (both Mapnik and I prefer Postgres).  I initially tried doing this by using OSM2PGSQL, but that ultimately failed ... not completely sure why.&lt;br /&gt;&lt;br /&gt;Here are the steps I took to load this data into Postgres using OSMOSIS:&lt;br /&gt;&lt;br /&gt;Required installations: Postgres with Postgis, OSMOSIS ... tested environment: osmosis 0.32, postgres 8.3, Windows XP&lt;br /&gt;&lt;br /&gt;1. Download desired extent from OSM using JOSM ... save the downloaded data as *.OSM&lt;br /&gt;2. Convert this .osm file to UTM8 encoding (e.g. using notepad++)&lt;br /&gt;3. Login to postgres, create a new database based on postgis template&lt;br /&gt;4. Run pgsql_simple_schema_0.6.sql, which is located in the osmosis install location in the 'script' directory&lt;br /&gt;5. Open a command line and run: PATH_TO_OSMOSIS_BATCH_FILE --read-xml file="PATH_TO_OSM_FILE" --write-pgsql host="HOST_NAME" database="DB_NAME" user="USER_NAME" password="PASSWORD", for example: C:\qgis_projects\render\osmosis-latest-bin\osmosis-0.32\bin\osmosis.bat --read-xml file="C:\qgis_projects\render\newark_josm_utm8.osm" --write-pgsql host="localhost" database="gis" user="postgres" password="mypassword"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-4149608877704565835?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/4149608877704565835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=4149608877704565835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4149608877704565835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4149608877704565835'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/01/loading-osm-with-osmosis.html' title='Loading OSM with OSMOSIS'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-3483568319422638810</id><published>2010-01-12T13:12:00.000-08:00</published><updated>2010-01-15T08:17:12.734-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ud campus map'/><category scheme='http://www.blogger.com/atom/ns#' term='openstreetmaps'/><title type='text'>Plugging away with OSM</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Update: &lt;/span&gt;Success!  Was able to convert to OSM with &lt;a href="http://users.rowan.edu/~reiser/osm/"&gt;Export_to_OSM.py&lt;/a&gt;, all was needed was to change some paths in the code.  Uploads via &lt;a href="http://wiki.openstreetmap.org/index.php/JOSM"&gt;JOSM&lt;/a&gt; using the Open, and Merge commands (I recommend also adding some tag so you can query these out later if you need to do anything with them), then Upload.  Watch as I add more layers on www.openstreetmap.org!&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Old Post:&lt;/span&gt; &lt;span style="font-style:italic;"&gt;It now seems I'll be able to use OpenStreetMaps either as the repository and rendering system for the full campus map, or as a selective baselayer for national data (for directions).  The answer will depend, in a large part, on whether I am able to get campus layers into OSM. &lt;br /&gt;&lt;br /&gt;I have worked with multiple OSM editors: JOSM, markaarter, and the QGIS OSM plugin and none will successfully take a shapefile, allow import into OSM format, and then upload to the OSM servers.  I have tried conversion to KML and GPX, since these are formats accepted by one or the other of these editors ... still no dice. &lt;br /&gt;&lt;br /&gt;There are scripts and programs which were specifically created to &lt;a href="http://wiki.openstreetmap.org/wiki/Import/Shapefile"&gt;convert SHP&lt;/a&gt; (and all kinds of other formats) to OSM.  I've checked out some of these programs osm2shp, &lt;a href="http://wiki.openstreetmap.org/wiki/Shp-to-osm.jar" title="Shp-to-osm.jar"&gt;shp-to-osm.jar&lt;/a&gt; even gml2osm ... problem is that they assume you want to map all the shapefile attributes ... seems like it could be a lot of extra work to figure these out for every layer I want to upload.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-3483568319422638810?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/3483568319422638810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=3483568319422638810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3483568319422638810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3483568319422638810'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/01/plugging-away-with-osm.html' title='Plugging away with OSM'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-6158146817970656060</id><published>2010-01-04T12:17:00.001-08:00</published><updated>2010-01-04T13:27:40.907-08:00</updated><title type='text'>Installing QGIS with osgeo4w, express crashes</title><content type='html'>Installing QGIS with a standalone installer is definitely the way to go for someone with little time, no need for other osgeo4w libraries or features in newer ('unstable') releases.&lt;br /&gt;&lt;br /&gt;However, as I need other osgeo4w packages as well as features in the 'unstable' release (unstable is somewhat of a misnomer, as I understand, really is just shorthand for saying it has features that aren't fully supported as in the 1.x version), I wanted to install with the &lt;a href="http://trac.osgeo.org/osgeo4w/"&gt;osgeo4w&lt;/a&gt; package.  For some reason osgeo4w crashes when I try to use the express install option, though I needed to use the advanced install anyway in order to get unstable qgis.&lt;br /&gt;&lt;br /&gt;Steps for this are as follows&lt;br /&gt;&lt;ol&gt;&lt;li&gt;download osgeo4w from http://trac.osgeo.org/osgeo4w/&lt;/li&gt;&lt;li&gt;open installer, select advanced install&lt;/li&gt;&lt;li&gt;select the following packages to install: qgis (unstable if you want, which was 1.4 at the time I wrote this), qt4-libs, libpq, zlib, geos, gdal16, ogdi, expat, proj (you will need to rename, &lt;a href="http://n2.nabble.com/Problems-re-installing-on-WinXP-64-td2227752.html"&gt;read this&lt;/a&gt;), xerces-c, hdf4, hdf5, libjpeg,libgeotiff,libpng,libtiff, netcdf,libjpeg12, sqllite3, tcltk, zlib1 (install zlib and make a duplicate renamed to zlib1.dll), curl, iconv, sip, pyqt4,&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-6158146817970656060?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/6158146817970656060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=6158146817970656060' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6158146817970656060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6158146817970656060'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/01/installing-qgis-with-osgeo4w-express.html' title='Installing QGIS with osgeo4w, express crashes'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-7372434595990879941</id><published>2010-01-04T11:11:00.001-08:00</published><updated>2010-01-04T11:33:07.072-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ud campus map'/><category scheme='http://www.blogger.com/atom/ns#' term='openstreetmaps'/><title type='text'>Basemap, prority renderers/services based on extent?</title><content type='html'>A new idea: use custom service/renderer within a given extent and cloud service outside of that extent ... tag campus layers accordingly, so they're picked up by custom renderer&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-7372434595990879941?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/7372434595990879941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=7372434595990879941' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7372434595990879941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7372434595990879941'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/01/basemap-prority-renderersservices-based.html' title='Basemap, prority renderers/services based on extent?'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-5974670299743125166</id><published>2010-01-04T05:50:00.000-08:00</published><updated>2010-01-04T06:33:49.321-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ud campus map'/><category scheme='http://www.blogger.com/atom/ns#' term='openstreetmaps'/><title type='text'>Directions, directions</title><content type='html'>So I am returning in the new year with a major task at hand: finish work on UD campus maps.  As I recall, the major loose end from where I left off was the matter of the basemap -- which resurrected old considerations about maintaining all layers on a cloud site (i.e. openstreetmaps) and send all operations to be dealt with on a local spatial database.  During this diversion from the previous course I need to also keep in mind: the basemap issue only comes up because I want to offer national directions to campus in the same interface as the rest of the campus map ... otherwise I could just use local layers without need for larger extent basemap layers.&lt;br /&gt;&lt;br /&gt;The OSM scenario is very appealing for a number of reasons:&lt;br /&gt;-cloud hosting would free up local resources here&lt;br /&gt;-the OSM platform is well designed according to collaborative logic, that would allow updates by data stewards on campus, if we were to move in that direction&lt;br /&gt;-OSM is open source, it's free to us, and is very interoperable with other open software ... that would help in efforts to support open source on campus&lt;br /&gt;-possibly better performance on the cloud&lt;br /&gt;-use of existing renderers allows us to leverage existing cartographic/labeling rules&lt;br /&gt;&lt;br /&gt;Disadvantages&lt;br /&gt;-layers could be edited by a third party with poor editing skills, inaccurate data, or malicious intent&lt;br /&gt;-limited control over appearance of the map&lt;br /&gt;-strange issues with spatial referencing ... OSM and existing UD layers do not agree ... these are also off with navteq streets, so problem is independent of OSM ... should note that the issue is probably not significant without sidewalks, since these tend to be more closely located to streets than buildings to streets&lt;br /&gt;-still unresolved data sensitivity issues (we need to contact all data "owners")&lt;br /&gt;-tendency to neglect local resources ... no redundancy&lt;br /&gt;&lt;br /&gt;These disadvantages could mostly be overcome, but would probably require quite a bit of work, with some of the advantages becoming mooted&lt;br /&gt;-OSM data could be stored locally, taking advantage of some tag which signifies campus data ... that is what UMd does.  However, that is probably impractical for the national dataset (UMd only has part of the DC region), and would moot any advantages to using the cloud ... would however help with redundancy&lt;br /&gt;-A custom renderer could be used to achieve more control over appearance ... this may be unwieldy to setup ... could try to tweak tags, etc. in OSM data as a work around ... could Mapnik default rendering be adequate?&lt;br /&gt;-spatial referencing issues are independent of OSM&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-5974670299743125166?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/5974670299743125166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=5974670299743125166' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5974670299743125166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5974670299743125166'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2010/01/directions-directions.html' title='Directions, directions'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-256858651625327949</id><published>2009-12-21T15:06:00.000-08:00</published><updated>2009-12-21T15:11:46.867-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data'/><category scheme='http://www.blogger.com/atom/ns#' term='excel'/><category scheme='http://www.blogger.com/atom/ns#' term='dbf'/><category scheme='http://www.blogger.com/atom/ns#' term='arcgis'/><title type='text'>Table to table bug (ArcGIS)?</title><content type='html'>Is there a bug with the "table to table" tool in ArcGIS when using it to export a DBF from an Excel file (XLS, XLSX)?  I don't know.  BUT, I would avoid using any Excel files in ArcGIS.  This would be one of many poorly documented bugs ... support for Excel in ArcGIS is a weak link, and you really don't want to be basing multistep analysis off some poorly imported data (trust me!).  So you have an XLSX file that is more than the limit of rows for XLS ... how do you get it to DBF (since Excel 2007 doesn't export DBF).  If you have MS Access, I would recommend going that route.  I tried this out with a file that I was getting super incorrect output on, and it worked.  Seems like a nice, clean, consistent solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-256858651625327949?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/256858651625327949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=256858651625327949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/256858651625327949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/256858651625327949'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/12/table-to-table-bug-arcgis.html' title='Table to table bug (ArcGIS)?'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-2407046356667489249</id><published>2009-12-21T14:28:00.000-08:00</published><updated>2009-12-22T05:33:22.500-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ud campus map'/><category scheme='http://www.blogger.com/atom/ns#' term='openstreetmaps'/><category scheme='http://www.blogger.com/atom/ns#' term='google maps'/><title type='text'>Cloud basemaps, so elusive</title><content type='html'>I wanted to use openstreetmaps as the base data layer for the new UD Campus Maps, but am running into the same labeling issues as when I use a google maps base layer ... labels are prerendered to appear on streets, cities, etc. of course not taking into account placement of "UD"  layers (e.g. buildings).  When the two are displayed together there is a very unsightly overlapping effect.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_QNy_7A5izKI/Sy_7by93__I/AAAAAAAAAnc/yxC3Z4hIK_0/s1600-h/layel-clash-example.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 238px;" src="http://4.bp.blogspot.com/_QNy_7A5izKI/Sy_7by93__I/AAAAAAAAAnc/yxC3Z4hIK_0/s320/layel-clash-example.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5417825331706331122" /&gt;&lt;/a&gt;&lt;br /&gt;So the way around this is to use a custom renderer, which is actually quite a bit of work ... the custom renderer requires a large amount of space, not to mention an initial span of CPU time.  It also requires that I create custom style specs, which address all sorts of issues, including a plethora of OSM tags, as well as all the details about base layer appearence ... all to be done manually of course.&lt;br /&gt;&lt;br /&gt;... not to mention, the existing baselayers seem to be disagree with cloud services ever so slightly&lt;br /&gt;&lt;br /&gt;CloudMade offers a very cool service for rendering custom basemaps from OSM data, all through an efficient GUI, and they even host it for you.  Trouble is their terms do not seem to permit "non-personal" use, :.(&lt;br /&gt;&lt;br /&gt;Sooo, I can:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;set up a custom render, which *might* require a lot of space/time, and *might* require a lot of work in symbolization, and will consume local resources instead of leveraging the cloud&lt;br /&gt;&lt;li&gt;*or* use ArcGIS server to tilecache a national basemap ... having much the same disadvantages as above, except that I have a better idea of how much time/resources it will take&lt;br /&gt;&lt;li&gt;*or* render on top of satellite data (which doesn't really look that good, and not very informative for directions), plus requiring me to create custom label and symbol scaling and symbology for Newark basemap details (tending to be less attractive than those already available in the cloud, and causing disuniformity with surrounding areas)&lt;br /&gt;&lt;li&gt;*or* I can mask the extent of all "UD layers" and use this as the default extent for the map, putting in some scale sensitivity which causes UD detailed layers to disappear when viewed at a larger "regional" scale and instead showing some extent rectangle ... then showing these layers again when at a closer zoom (having some of the same drawbacks of disuniformity/attractiveness)&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;... as of today the last option seems the best ... I sure hope it bares fruit, we need to get this project rolling!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-2407046356667489249?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/2407046356667489249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=2407046356667489249' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2407046356667489249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2407046356667489249'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/12/cloud-basemaps-so-ellusive.html' title='Cloud basemaps, so elusive'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_QNy_7A5izKI/Sy_7by93__I/AAAAAAAAAnc/yxC3Z4hIK_0/s72-c/layel-clash-example.JPG' height='72' width='72'/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-8091500380115090124</id><published>2009-12-16T05:40:00.000-08:00</published><updated>2009-12-16T05:45:24.946-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arcgis'/><title type='text'>unexpected rows in tables</title><content type='html'>Occasionally, the number of rows in a table* is not really the number of rows in the table. Sometimes this peculiarity only makes itself known when you export a table and only see a subset of the total rows in the original attribute table ... where all the other rows go to?  &lt;br /&gt;&lt;br /&gt;One reason that this happens (perhaps the most common), is that when you use the "keep only matches" option when doing a join, the non-matched rows are kinda there, and kinda not.  To fix this you would need to go back and use the "keep non-matched" option.&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;*as counted by the "Records (1 out of x)" at the bottom of an attribute table window&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-8091500380115090124?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/8091500380115090124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=8091500380115090124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8091500380115090124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8091500380115090124'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/12/unexpected-rows-in-tables.html' title='unexpected rows in tables'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-7067345027382594622</id><published>2009-10-01T07:05:00.000-07:00</published><updated>2011-06-02T12:45:08.776-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arcgis'/><category scheme='http://www.blogger.com/atom/ns#' term='license manager'/><title type='text'>license server down or not responding -96,7</title><content type='html'>was getting an error like "license server down or not responding -96,7" when trying to get ArcGIS to run on a Vista machine.  Seems like the problem was that since the host name could not be set (I could not browse to the license server and therefore it could not be set through the ArcGIS Administrator dialog) the host's license file wasn't validating (although the machine I was setting up could ping the host).  I got around this by setting all registry entries = "Not_Set" (actually were "@Not_Set") to the name/port of my license server&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-7067345027382594622?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/7067345027382594622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=7067345027382594622' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7067345027382594622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7067345027382594622'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/10/license-server-down-or-not-responding.html' title='license server down or not responding -96,7'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-3477322204052384697</id><published>2009-08-27T13:23:00.000-07:00</published><updated>2009-08-27T13:24:20.414-07:00</updated><title type='text'>area cropped when skinning flv to swf</title><content type='html'>try using the noscale option and enlarging the dimensions exported ... you can use negative margins on the html output to make it look decent&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-3477322204052384697?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/3477322204052384697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=3477322204052384697' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3477322204052384697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3477322204052384697'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/08/area-cropped-when-skinning-flv-to-swf.html' title='area cropped when skinning flv to swf'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-9135970157577210551</id><published>2009-08-17T11:58:00.000-07:00</published><updated>2009-08-17T13:25:06.399-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='regex'/><title type='text'>notepad++ insert carriage return</title><content type='html'>In notepad++ you can easily find a carriage return by copying a section of texxt with a carriage return in it and doing ctrl+f or ctrl+h to replace, but you cannot copy that block and paste into the replace box.  I found the answer for this here: http://bytes.com/topic/net/answers/767637-find-replace-insert-return-character&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;In the replace area, type&lt;br /&gt;&lt;br /&gt;\1\r\n\2 -- \1 is the first group, \r\n is a carriage return and a new&lt;br /&gt;line, \2 is the second group.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-9135970157577210551?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/9135970157577210551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=9135970157577210551' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/9135970157577210551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/9135970157577210551'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/08/notepad-insert-carriage-return.html' title='notepad++ insert carriage return'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-8700353591630467338</id><published>2009-07-17T10:16:00.000-07:00</published><updated>2009-07-17T11:41:45.258-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arcsde'/><category scheme='http://www.blogger.com/atom/ns#' term='arcgis server'/><title type='text'>connecting to sde</title><content type='html'>Connecting to my new SDE was exceedingly difficult.  I'm not sure if it's because it was built on postgres, but ... geez!&lt;br /&gt;&lt;br /&gt;Here are a few items you should be aware of&lt;br /&gt;&lt;ul&gt;&lt;li&gt;contrary to ESRI's documentation, you need to do a very important piece of configuration on the client, namely add a reference to the service in the services file which is found (for most Windows users) at C:\WINDOWS\system32\drivers\etc\services.  At the bottom add the following line (replacing servicename with the name of your sde service):  service name serviceportnumber/tcp #ArcSDE for RDBMS&lt;/li&gt;&lt;li&gt;make sure your server is listed in the pg_hba.conf file (in your postgres data folder)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;this entry must also be in the same file on the server, and also in C:\Program Files\ArcGIS\ArcSDE\pgexe\etc\services.sde, but that's usually less of a problem since the post-install takes care of it&lt;/li&gt;&lt;li&gt;if you add your port number in the server field in the "connection properties" from your client (in my case arccatalog), it will return an error&lt;/li&gt;&lt;li&gt;make sure your desktop software is the same major version as the sde (example: 9.3 to 9.3)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;references:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;http://forums.esri.com/Thread.asp?c=2&amp;amp;f=1717&amp;amp;t=142803&lt;/li&gt;&lt;/ul&gt;hint: was getting the following error: "Failed to connect to the&lt;br /&gt;specified server. Entry for SDE instance not found in service file" ... note 1 above, particularly on the client side, fixed that&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-8700353591630467338?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/8700353591630467338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=8700353591630467338' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8700353591630467338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8700353591630467338'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/07/connecting-to-sde.html' title='connecting to sde'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-5219957928074190163</id><published>2009-07-15T07:56:00.000-07:00</published><updated>2009-07-15T07:58:38.489-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><title type='text'>setting percent property as3</title><content type='html'>when setting percent height property in AS3 was getting the following erro"1084: Syntax error: expecting identifier before semicolon" ... was because I need to use percentHeight, percentWidth, etc. for percentage properties ... I believe this is similar to HTML DOM&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-5219957928074190163?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/5219957928074190163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=5219957928074190163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5219957928074190163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5219957928074190163'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/07/setting-percent-property-as3.html' title='setting percent property as3'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-5910662778988437033</id><published>2009-06-23T05:59:00.000-07:00</published><updated>2009-06-23T06:06:22.683-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='envi'/><title type='text'>Importing ESRI GRID to ENVI</title><content type='html'>I'm not sure if ENVI documentation is lousy or just not searchable, but I could not find any good information on how to import ESRI GRID to ENVI ... and the ENVI UI is so unintuitive (hint to ITTVIS, why not just streamline the whole "external file" thing into the same "open image" command used to import geotiffs and the like?) as to make a simple task need explaining!&lt;br /&gt;&lt;br /&gt;THIS FUNCTIONALITY IS ONLY AVAILABLE IN THE WIN 32 VERSION!&lt;br /&gt;&lt;br /&gt;1.  File &gt; Open External File &gt; IP Formats &gt; ESRI GRID&lt;br /&gt;2.  Navigate to the hdr.adf within the folder with the same name as the vector you are trying to open and open this&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-5910662778988437033?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/5910662778988437033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=5910662778988437033' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5910662778988437033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5910662778988437033'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/06/importing-esri-grid-to-envi.html' title='Importing ESRI GRID to ENVI'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-4780700440490887982</id><published>2009-06-22T05:32:00.000-07:00</published><updated>2009-06-22T05:44:58.927-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>"select * into" in mysql</title><content type='html'>"select * into" is not allowed in mysql.  Here is an example to get around this limitation:    &lt;br /&gt;&lt;br /&gt;CREATE TABLE newtable SELECT * FROM oldtable&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;originally found &lt;a href="http://www.alexschultz.co.uk/weblog/2006/05/working_around_.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-4780700440490887982?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/4780700440490887982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=4780700440490887982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4780700440490887982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4780700440490887982'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/06/select-into-in-mysql.html' title='&quot;select * into&quot; in mysql'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-3115281695109814404</id><published>2009-06-08T12:36:00.000-07:00</published><updated>2009-06-08T12:37:11.929-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>find/replace text mysql</title><content type='html'>update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, ‘find this string’, ‘replace found string with this string’);&lt;br /&gt;&lt;br /&gt;from: http://www.mydigitallife.info/2007/04/23/how-to-find-and-replace-text-in-mysql-database-using-sql/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-3115281695109814404?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/3115281695109814404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=3115281695109814404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3115281695109814404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3115281695109814404'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/06/findreplace-text-mysql.html' title='find/replace text mysql'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-470091722971190314</id><published>2009-04-20T11:07:00.000-07:00</published><updated>2009-04-20T11:08:43.421-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arcgis'/><title type='text'>Classify Dialog does not open</title><content type='html'>Problem: Classify dialog does not open when hitting button "Classify ..." under Spatial Analyst "Reclassify" tool&lt;br /&gt;&lt;br /&gt;Solution: Was trying to do this on an image (JPG).  Must convert to a native ArcGIS grid to get the Classify dialog with histogram.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-470091722971190314?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/470091722971190314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=470091722971190314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/470091722971190314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/470091722971190314'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/04/classify-dialog-does-not-open.html' title='Classify Dialog does not open'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-7503480566115270581</id><published>2009-03-17T07:25:00.001-07:00</published><updated>2009-03-17T07:31:48.662-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cad'/><title type='text'>EveryDWG CAD Command Line</title><content type='html'>&lt;a href="http://www.opendwg.org/guestfiles"&gt;EveryDWG&lt;/a&gt; is a utility provided by the &lt;a href="http://www.opendwg.org/"&gt;Open Design Alliance&lt;/a&gt;, a consortium of firms mostly organized around DWG and other CAD standards, for doing conversion from all versions of DWG to DXF (DXF is the more interchangeable format).  I was having a hard time getting this utility to work from the command line -- whenever I'd run the command I'd getting a window giving me information about proper syntax.  The only trouble is THE SYNTAX USED IN THE WINDOW IS NOT CORRECT!  The window says "Command line format is: Quoted input folder Quoted Output folder", but if you actually put quotes on these the command doesn't run and you're back in the same place!   Here is an example of the proper syntax:&lt;br /&gt;&lt;br /&gt;everydwg C:\TEMP C:\TEMP\OUTPUT ACAD2000 DXF 0 1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-7503480566115270581?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/7503480566115270581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=7503480566115270581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7503480566115270581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7503480566115270581'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/03/everydwg-cad-command-line.html' title='EveryDWG CAD Command Line'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-2688279019878003800</id><published>2009-03-13T12:36:00.000-07:00</published><updated>2009-03-13T14:07:50.947-07:00</updated><title type='text'>make on windows (GNU), dmake</title><content type='html'>finally found a suitable (and open source!) make executable for windows 64x, dmake.  &lt;a href="http://maps.rdms.udel.edu/software/utilities/dmake-4.11-20080107-SHAY.zip"&gt;I posted it&lt;/a&gt; on a serve I control, so now it'll always be available (it's GNU)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-2688279019878003800?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/2688279019878003800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=2688279019878003800' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2688279019878003800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2688279019878003800'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/03/finally-found-suitable-and-open-source.html' title='make on windows (GNU), dmake'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-4698079275767263988</id><published>2009-03-12T06:35:00.000-07:00</published><updated>2009-03-12T06:36:06.975-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><title type='text'>Blocks not displaying in their regions?</title><content type='html'>Blocks not displaying in their regions?  Delete the block and then create it again and add again to the appropriate region.  This worked for me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-4698079275767263988?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/4698079275767263988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=4698079275767263988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4698079275767263988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4698079275767263988'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/03/blocks-not-displaying-in-their-regions.html' title='Blocks not displaying in their regions?'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-7023846067035102519</id><published>2009-03-11T11:04:00.000-07:00</published><updated>2009-04-24T06:22:13.682-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>copy mysql tables</title><content type='html'>mysql&gt; create database db2; \! /usr/local/mysql/bin/mysqldump -u root –password=pass db1 | /usr/local/mysql/bin/mysql -u root –password=pass db2 &lt;br /&gt;&lt;br /&gt;originally seen on: &lt;a href="http://mywheel.net/blog/index.php/2006/01/05/mysql-duplicate-database-quick-tip/"&gt;http://mywheel.net/blog/index.php/2006/01/05/mysql-duplicate-database-quick-tip/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-7023846067035102519?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/7023846067035102519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=7023846067035102519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7023846067035102519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7023846067035102519'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/03/copy-mysql-tables.html' title='copy mysql tables'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-4741866389613490557</id><published>2009-02-11T10:08:00.000-08:00</published><updated>2010-09-16T12:26:03.502-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='regex'/><category scheme='http://www.blogger.com/atom/ns#' term='notepad++'/><title type='text'>wildcard regex in notepad</title><content type='html'>The general wildcard regex for notepad (simliar to % in sql) is (.*). &lt;br /&gt;&lt;br /&gt;So to match both of these lines:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&amp;lt;/option&amp;gt;&amp;lt;option value="COM"&amp;gt;COMPAQ ALPHA UNIX&lt;br /&gt;&amp;lt;/option&amp;gt;&amp;lt;option value="DGV"&amp;gt;DATA GENERAL AOS/VS&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The regex/search value looks like:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&amp;lt;/option&amp;gt;&amp;lt;option value="(.*)"&amp;gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Just don't forget to toggle search mode to "regular expression"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-4741866389613490557?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/4741866389613490557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=4741866389613490557' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4741866389613490557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4741866389613490557'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/02/wildcard-regex-in-notepad.html' title='wildcard regex in notepad'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-8059629229661834612</id><published>2009-02-02T06:49:00.001-08:00</published><updated>2009-02-02T06:57:00.834-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>all changes cause syntax error, python</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Problem&lt;/span&gt;: getting a syntax error whenever making any change to a py (python) file&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Solution&lt;/span&gt;: stop editing py file in regular text editor, needed to edit within development environment, such as &lt;a href="http://sourceforge.net/projects/pywin32/"&gt;pywin&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-8059629229661834612?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/8059629229661834612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=8059629229661834612' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8059629229661834612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8059629229661834612'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/02/all-changes-cause-syntax-error-python.html' title='all changes cause syntax error, python'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-9106522219754988683</id><published>2009-02-02T06:45:00.000-08:00</published><updated>2009-02-02T06:57:32.244-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>load csv to mysql from local file</title><content type='html'>LOAD DATA LOCAL INFILE '[path to your csv]'&lt;br /&gt;INTO TABLE [table to import into, must be created before running with proper columns]&lt;br /&gt;FIELDS TERMINATED BY ','&lt;br /&gt;LINES TERMINATED BY '\n'&lt;br /&gt;([field 1], [field 2], [field 3], [...]);&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.modwest.com/help/kb6-253.html"&gt;link to original article&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-9106522219754988683?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/9106522219754988683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=9106522219754988683' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/9106522219754988683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/9106522219754988683'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/02/load-csv-to-mysql-from-local-file.html' title='load csv to mysql from local file'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-4532067264641284109</id><published>2009-02-02T06:43:00.001-08:00</published><updated>2009-02-02T06:44:59.434-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>removing carriage return/new line character in mysql</title><content type='html'>on importing a csv to mysql I saw these little black square characters, which were carriage return symbols of course.  To remove these little artifacts run the following query:&lt;br /&gt;&lt;br /&gt;update [table_name] set [field_name] = replace([field_name],'\r','');&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-4532067264641284109?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/4532067264641284109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=4532067264641284109' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4532067264641284109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4532067264641284109'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/02/removing-carriage-returnnew-line.html' title='removing carriage return/new line character in mysql'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-109325410108199363</id><published>2009-02-02T06:41:00.000-08:00</published><updated>2009-02-02T06:58:17.992-08:00</updated><title type='text'>terminal server has exceeded max number of allowed connections</title><content type='html'>if you get the error just run the following command to override the error:&lt;br /&gt;&lt;br /&gt;mstsc -v:0.0.0.0 /f -console&lt;br /&gt;&lt;br /&gt;(substitute ip for 0.0.0.0)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forums.serverbeach.com/archive/index.php/t-1984.html"&gt;link to original article&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-109325410108199363?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/109325410108199363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=109325410108199363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/109325410108199363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/109325410108199363'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2009/02/terminal-server-has-exceeded-max-number.html' title='terminal server has exceeded max number of allowed connections'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-7458448628693495772</id><published>2008-12-10T08:07:00.001-08:00</published><updated>2008-12-10T08:08:03.719-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><title type='text'>distinct Drupal user list with views</title><content type='html'>having trouble displaying a DISTINCT user list with views?  This problem often arises because you need to choose the 'user' type view when you are first creating the new view.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-7458448628693495772?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/7458448628693495772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=7458448628693495772' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7458448628693495772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7458448628693495772'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/12/distinct-drupal-user-list-with-views.html' title='distinct Drupal user list with views'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-9024321760157623114</id><published>2008-12-09T06:52:00.001-08:00</published><updated>2008-12-09T06:53:48.096-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><title type='text'>Drupal Views Templates and CCK $fields Array</title><content type='html'>Having difficulty accessing the $fields array under your Drupal Views template?  Are you sure you have named your template correctly (for instance, if you have named it with 'field' instead of 'fields' the template will apply to individual fields, for which the $fields array is not exposed)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-9024321760157623114?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/9024321760157623114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=9024321760157623114' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/9024321760157623114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/9024321760157623114'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/12/drupal-views-templates-and-cck-fields.html' title='Drupal Views Templates and CCK $fields Array'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-8353962862330778516</id><published>2008-12-04T07:04:00.000-08:00</published><updated>2008-12-05T11:01:39.469-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='xxamp'/><title type='text'>How to migrate Drupal to xampp for Development</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_QNy_7A5izKI/STl6ivSjHgI/AAAAAAAAAcw/XaoXhJeIqv4/s1600-h/druplicon_large.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 174px; height: 200px;" src="http://1.bp.blogspot.com/_QNy_7A5izKI/STl6ivSjHgI/AAAAAAAAAcw/XaoXhJeIqv4/s200/druplicon_large.jpg" alt="" id="BLOGGER_PHOTO_ID_5276383175669652994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Occasionally it is important to work on a local development machine.  For this task I often use the xampp package, which mirrors a standard lamp stack.&lt;br /&gt;&lt;br /&gt;To migrate an existing remote drupal site do the following:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;install xampp at c:\xampp&lt;/li&gt;&lt;li&gt;modify c:\xampp\apache\conf\httpd.conf&lt;/li&gt;&lt;ol&gt;&lt;li&gt;the line 'Listen 80' to 'Listen 88'&lt;/li&gt;&lt;li&gt;If you had Clean URLs on your remote site (i.e. localhost/drupal/admin instead of localhost/drupal/?q=admin)&lt;br /&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;#LoadModule rewrite_module modules/mod_rewrite.so' to ' LoadModule rewrite_module modules/mod_rewrite.so' (take out the #)&lt;/li&gt;&lt;/ol&gt;&lt;ol&gt;&lt;li&gt;AllowOverride None to &lt;span style="font-family:arial;"&gt;AllowOverride All&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;start apache and mysql from the xampp interface (you may need to change mysql configuration)&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;copy over the following folders to a new 'drupal_remote_site' folder on your local machine&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Themes&lt;/li&gt;&lt;li&gt;Modules&lt;/li&gt;&lt;li&gt;Files&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;if you don't already have the &lt;a href="http://drupal.org/project/backup_migrate"&gt;Backup and Migrate&lt;/a&gt; module on your remote machine, install it&lt;/li&gt;&lt;li&gt;backup your database on the remote machine, copy this into the local folder 'drupal_remote_site' &lt;/li&gt;&lt;li&gt;install the same version of drupal on your local machine which you had on your remote -- note: this downloads as a tarball which must be expanded and copied into within c:\xampp\htdocs\drupal (rename the copied folder as drupal from drupal-6.5 for instance)&lt;/li&gt;&lt;li&gt;copy in your themes, modules, and files folder into this new drupal folder&lt;/li&gt;&lt;li&gt;go to http://localhost:88/drupal/install.php, this will install necessary tables,etc. into the db&lt;/li&gt;&lt;li&gt;now enable the Backup and Migrate module on the local machine&lt;/li&gt;&lt;li&gt;use the 'Restore/Import DB' tab in drupal to import your db&lt;/li&gt;&lt;li&gt;voila, all should be back to normal&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-8353962862330778516?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/8353962862330778516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=8353962862330778516' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8353962862330778516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8353962862330778516'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/12/how-to-migrate-drupal-to-xampp-for.html' title='How to migrate Drupal to xampp for Development'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_QNy_7A5izKI/STl6ivSjHgI/AAAAAAAAAcw/XaoXhJeIqv4/s72-c/druplicon_large.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-3756468698057511184</id><published>2008-12-03T10:50:00.001-08:00</published><updated>2008-12-03T10:55:24.944-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><title type='text'>The $fields array in Drupal (CCK)</title><content type='html'>the $fields array is very important for accessing field content when doing custom theming.  Unfortunately field names are not well documented, nor are they intuitive.  For example, the field name for a node:link field is view_node.  In order to track down names of my fields I usually use print_r ... the trick here is that you must look for 'stdClass Object', almost always the index giving these objects as values are the names of the fields used within the $fields array.&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;[field_image_fid] =&gt; stdClass Object         (             [content] =&gt;&lt;br /&gt;&lt;br /&gt;can be accessed in your tpl.php by:&lt;br /&gt;$fields['field_image_fid']-&gt;content&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-3756468698057511184?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/3756468698057511184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=3756468698057511184' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3756468698057511184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3756468698057511184'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/12/fields-array-in-drupal-cck.html' title='The $fields array in Drupal (CCK)'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-2108014077961785659</id><published>2008-11-25T07:28:00.001-08:00</published><updated>2008-11-25T07:53:19.135-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><title type='text'></title><content type='html'>having trouble with no "active" class being generated for menu's or primary/secondary links (&lt;li&gt;) in Drupal 6.x?  It has been documented that 6.x has issues with generating an active class ... at 6.5 the active &lt;li&gt; is classed as "&lt;span class="attribute-value"&gt;active-trail", so if you are bringing in a theme that worked at 5.x this might be the issue. &lt;br /&gt;&lt;br /&gt;For me it was a naming issue within my primary links configuration (the same would be true for a menu).  You must use a Drupal recognizable path such as "&lt;front&gt;" for your homepage or "data" for a page at "http://www.yoursite.com/data".  To avoid this, make sure to select this menu when creating new content.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-2108014077961785659?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/2108014077961785659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=2108014077961785659' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2108014077961785659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2108014077961785659'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/11/having-trouble-with-no-active-class.html' title=''/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-1771805055051455165</id><published>2008-11-10T11:13:00.001-08:00</published><updated>2008-11-13T07:08:31.365-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dom'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'></title><content type='html'>with the php domdocument class was getting the following error:&lt;br /&gt;&lt;br /&gt;Warning: main() [function.main]: unterminated entity reference 64-bit&lt;br /&gt;&lt;br /&gt;this error was occurring when trying to set the name of an anchor element ... the same error popped up when setting both within the constructor and through the nodeValue method.  I haven't tested the solution via the constructor, but by wrapping the value with the built-in htmlspecialchars(), I solved this error&lt;br /&gt;&lt;br /&gt;i.e.:&lt;br /&gt;$anchornode = $doc-&gt;createElement('a');&lt;br /&gt;$anchornode-&gt;nodeValue = htmlspecialchars("$somevalue");&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-1771805055051455165?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/1771805055051455165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=1771805055051455165' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/1771805055051455165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/1771805055051455165'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/11/with-php-domdocument-class-was-getting.html' title=''/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-29602492068607930</id><published>2008-11-10T10:33:00.000-08:00</published><updated>2008-11-10T10:48:21.328-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dom'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>create dom html with php, getelementbyid doesn't work</title><content type='html'>I leverage the domdocument php class to create elegant, dynamic html documents via the dom tree.  However, I was finding that the "getelementbyid" method was not returning elements as expected.  The reason for this is that I had not defined a DTD, which is necessary in this case because we only specify that we are saving as HTML at the end of the process, so the domdocument object is only understood as generic XML, which has no predefined "id."  To create a DTD use this code (here using 4.01 transitional html):&lt;br /&gt;&lt;br /&gt;$doc = new DOMDocument();&lt;br /&gt;$doc-&gt;loadHTML('&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;;');&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-29602492068607930?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/29602492068607930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=29602492068607930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/29602492068607930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/29602492068607930'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/11/create-dom-html-with-php-getelementbyid.html' title='create dom html with php, getelementbyid doesn&apos;t work'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-6412867318484153394</id><published>2008-11-10T07:29:00.000-08:00</published><updated>2008-11-10T07:35:48.161-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='postgres'/><category scheme='http://www.blogger.com/atom/ns#' term='pear'/><title type='text'></title><content type='html'>there are so many options with pear's db library for php, I sometimes forget the optimal code for getting a sql result as an array that I can easily use within php.  The code below fully demonstrates connecting to and getting an associative array with an 'order by' field as the array key.  This code is for a postgres rdms, but could easily be modified for mysql, sqlserver, etc.  Parameters are in caps surrounded by '%' in the form %PARAMETER%.&lt;br /&gt;&lt;br /&gt;require_once 'DB.php';&lt;br /&gt;&lt;br /&gt;$dsn = "pgsql://%LOGIN%:%PASSWORD%@%HOST%/%DBNAME%";&lt;br /&gt;$dbh =&amp;amp; DB::connect ($dsn);&lt;br /&gt;if (PEAR::isError($dbh)) {&lt;br /&gt;    die($dbh-&gt;getMessage());&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$dbh-&gt;setFetchMode(DB_FETCHMODE_ASSOC);&lt;br /&gt;$res =&amp;amp; $dbh-&gt;getAssoc('%SQL STATEMENT, USE 'ORDER BY' TO DEFINE ARRAY KEY%');&lt;br /&gt;&lt;br /&gt;if (PEAR::isError($res)) {&lt;br /&gt;    die($res-&gt;getMessage());&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-6412867318484153394?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/6412867318484153394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=6412867318484153394' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6412867318484153394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6412867318484153394'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/11/there-are-so-many-options-with-pears-db.html' title=''/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-108574464352262288</id><published>2008-09-30T08:04:00.000-07:00</published><updated>2008-09-30T08:08:31.349-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='projection'/><category scheme='http://www.blogger.com/atom/ns#' term='arcmap'/><title type='text'></title><content type='html'>When defining projection from ArcCatalog (shapefile properties) I get an error message "Failed to Alter the Spatial Reference".  If I try to do this from the "Define Projection" geoprocessing tool (ArcToolbox) I get this error insted: "Cannot create a projection file for filepath Failed to execute (DefineProjection).&lt;br /&gt;&lt;br /&gt;I solved this problem by accesing the shapefile through a mapped drive (a.k.a. "Z:\") within ArcCatalog, rather than its \\server\drive$ pathname.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-108574464352262288?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/108574464352262288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=108574464352262288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/108574464352262288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/108574464352262288'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/09/when-defining-projection-from.html' title=''/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-149822686057564438</id><published>2008-09-19T08:12:00.000-07:00</published><updated>2008-09-19T08:19:39.902-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arcgis server'/><category scheme='http://www.blogger.com/atom/ns#' term='cache'/><title type='text'></title><content type='html'>There are multiple caching levels to be mindful of with a typical ArcGIS Server environment.  This factor often makes debugging difficult.  Below I have made an expanding list of issues related to cahcing as well as the various cache levels to clear when debugging.&lt;br /&gt;&lt;br /&gt;Issues related to caching: query does not return correct field as defined in 'outFields' query property&lt;br /&gt;&lt;br /&gt;Cache Levels&lt;br /&gt;&lt;ol&gt;&lt;li&gt;AGS web service cache, this can be cleared by restarting the AGS web service from ArcCatalog or by web admin interface&lt;/li&gt;&lt;li&gt;Tile cache, cleared by 'deleting cache', and then reconfiguring tile cache within service properties of the web service&lt;/li&gt;&lt;li&gt;Web browser cache, cleared by clearing cache of web browser&lt;/li&gt;&lt;li&gt;REST API cache, cleared by going to http://yourserveraddress/ArcGIS/rest/admin/cache and clearing cache manually&lt;/li&gt;&lt;li&gt;KML cache, if using a Google hosted KML with your application, to have this load dynamically you need to add a random number to the end of your kml address ... google it!&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-149822686057564438?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/149822686057564438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=149822686057564438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/149822686057564438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/149822686057564438'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/09/there-are-multiple-caching-levels-to-be.html' title=''/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-2164998048103453223</id><published>2008-09-16T21:26:00.000-07:00</published><updated>2008-09-17T14:11:48.886-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><title type='text'></title><content type='html'>To do a non-boolean conditional insert in SQL Server (the "where exists" clause is best for boolean), use the "where in" clause along with an inner join, in the following form:&lt;br /&gt;&lt;br /&gt;INSERT INTO [Destination Table]([Destination Field1],[Destination Field2],[...])&lt;br /&gt;SELECT [Origin Field1],[Origin Field2],[...]&lt;br /&gt;FROM [Origin Table]&lt;br /&gt;WHERE ([Test Field A, could be from origin] Not In (select [Test Field B] from&lt;br /&gt;[Test Table, could be destination]));&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-2164998048103453223?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/2164998048103453223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=2164998048103453223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2164998048103453223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/2164998048103453223'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/09/to-do-non-boolean-conditional-insert-in.html' title=''/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-5332817480169455833</id><published>2008-08-18T09:28:00.000-07:00</published><updated>2008-08-18T09:31:58.671-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google maps'/><title type='text'>Gmaps: GEvent and "a is not defined"</title><content type='html'>I was getting the (generic and fairly common) "a is not defined" (on line 287 of main.js I believe) javascript error with gmaps when trying to add a GEvent click event listener.  I intially thought it was an issue with my some map layers with ArcGIS Javascript Extension for Google Maps, but I resolved this issue by sticking the even handler in the initialize function.  For some reason gmaps must not have been available at the scope of the even handler outside this function ... the gmap object was being instantiated inside this function, yet the variable was first declared outside the function in the first lines of the application ... strange.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-5332817480169455833?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/5332817480169455833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=5332817480169455833' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5332817480169455833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5332817480169455833'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/08/gmaps-gevent-and-is-not-defined.html' title='Gmaps: GEvent and &quot;a is not defined&quot;'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-3631103620032159236</id><published>2008-08-14T09:26:00.001-07:00</published><updated>2008-08-14T09:26:49.140-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='workflow'/><title type='text'>Flash Map Workflow, described</title><content type='html'>&lt;p class="MsoNormal"&gt;Thematic groups created in ArcMap and enhanced with Adobe Illustrator (AI), were saved as separate AI files (by region) and further organized as AI “layers.”&lt;span style=""&gt;  &lt;/span&gt;Note that a layer should be created for every group of shapes which would be always dealt with in the same way in an animation.&lt;span style=""&gt;  &lt;/span&gt;For example, if a group of lines would appear and disappear together and never separately, they should be organized into a layer.&lt;span style=""&gt;  &lt;/span&gt;These layers later correspond to symbols in the Flash application.&lt;span style=""&gt;    &lt;/span&gt;All layers were then selected and copied/pasted into Flash at once.&lt;span style=""&gt;  &lt;/span&gt;Flash has the ability to implicitly import AI layers as Flash layers copied and pasted into it.&lt;span style=""&gt;  &lt;/span&gt;Note that the “paste in place” command should be used in order to guarantee uniform positioning across layers copied/pasted from different AI files -- the dimensions of the Flash canvas must be the same as the AI document for this to work. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The Flash Actionscript program then deals with all user interaction and data display.&lt;span style=""&gt;  &lt;/span&gt;Symbols are displayed/not displayed, fade in/out, or are magnified based on program functions referencing the symbols indicated by other user interface symbols (buttons, etc.) which are invoked by user interaction. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-3631103620032159236?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/3631103620032159236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=3631103620032159236' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3631103620032159236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3631103620032159236'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/08/flash-map-workflow-described.html' title='Flash Map Workflow, described'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-7375600343332469535</id><published>2008-08-14T09:21:00.000-07:00</published><updated>2008-08-14T09:23:49.133-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='extent'/><category scheme='http://www.blogger.com/atom/ns#' term='google maps'/><title type='text'>New Tool: Map Extent Calculator</title><content type='html'>I just created a small tool for calculating decimal degree map extents&lt;span style="font-weight: bold;"&gt; :&lt;br /&gt;&lt;br /&gt;you can access it &lt;a href="http://130.91.165.87/mapextent.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-7375600343332469535?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/7375600343332469535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=7375600343332469535' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7375600343332469535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7375600343332469535'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/08/new-tool-map-extent-calculator.html' title='New Tool: Map Extent Calculator'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-1306040399227468386</id><published>2008-08-11T06:09:00.000-07:00</published><updated>2008-08-11T06:14:59.221-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arcgis server'/><title type='text'>add arcgis service remotely from arccatalog</title><content type='html'>when adding a service to a remote arcgis server you cannot browse to the actual location of the mxd or geodatabase on the remote server.  windows file sharing addresses do not work.  you must use the address on the local machine exactly as if you were accessing the mxd from the local machine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-1306040399227468386?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/1306040399227468386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=1306040399227468386' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/1306040399227468386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/1306040399227468386'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/08/add-arcgis-service-remotely-from.html' title='add arcgis service remotely from arccatalog'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-1679754058699985992</id><published>2008-08-05T13:41:00.000-07:00</published><updated>2008-08-05T13:42:36.977-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><title type='text'></title><content type='html'>this is a nice pear db query which returns an associative array&lt;br /&gt;&lt;br /&gt;$data = $sqlconnectionobject -&gt;getAssoc('sql statement here',true, array(), DB_FETCHMODE_ASSOC, true);&lt;br /&gt;&lt;br /&gt;        if (PEAR::isError($data)) {&lt;br /&gt;            die($data-&gt;getMessage());&lt;br /&gt;        }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-1679754058699985992?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/1679754058699985992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=1679754058699985992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/1679754058699985992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/1679754058699985992'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/08/this-is-nice-pear-db-query-which.html' title=''/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-774546294716331180</id><published>2008-08-01T06:01:00.000-07:00</published><updated>2008-08-20T05:58:29.548-07:00</updated><title type='text'>Setting up a Tiling/Caching Google Maps/ArcGIS Server Solution</title><content type='html'>Setting up a Setting up a Tiling/Caching Google Maps/ArcGIS Server Solution has gotten much easier with the advent of ArcGIS Server 9.3 and its REST-ful &lt;a href="http://resources.esri.com/help/9.3/ArcGISServer/apis/javascript/arcgis/help/jshelp_start.htm"&gt;Javascript API&lt;/a&gt;.  Specifically, the &lt;a href="http://resources.esri.com/arcgisserver/apis/javascript/gmaps/index.cfm?fa=home"&gt;ArcGIS JavaScript Extension for Google Maps&lt;/a&gt; makes creating this kind of mashup almost a breeze ;)&lt;br /&gt;&lt;br /&gt;added 8/20/08: &lt;a href="http://webhelp.esri.com/arcgisserver/9.3/dotNet/index.htm#designing_overlay_gm_mve.htm"&gt;this link at an ESRI site really helped a lot &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1.  reproject shapefiles into world mercator web projection (only available in 9.3)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_QNy_7A5izKI/SJcUy9PdJ_I/AAAAAAAAASw/iU8Mq-Kic5Q/s1600-h/projection_toWebMapAPIs.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_QNy_7A5izKI/SJcUy9PdJ_I/AAAAAAAAASw/iU8Mq-Kic5Q/s320/projection_toWebMapAPIs.GIF" alt="" id="BLOGGER_PHOTO_ID_5230672357879523314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.  add new service from mxd containing that/those shapefiles&lt;br /&gt;&lt;br /&gt;3.  enable tiling in the "service properties" for your web service.  You should use the google/virtual earth tiling scheme&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_QNy_7A5izKI/SJcVotqgKcI/AAAAAAAAAS4/bmJKr4U6Hlk/s1600-h/loadTileScheme.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_QNy_7A5izKI/SJcVotqgKcI/AAAAAAAAAS4/bmJKr4U6Hlk/s320/loadTileScheme.GIF" alt="" id="BLOGGER_PHOTO_ID_5230673281410935234" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4.  paste the service url into the &lt;a href="http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/gmaps/help/google_start.htm"&gt;example code &lt;/a&gt;for the extension&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-774546294716331180?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/774546294716331180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=774546294716331180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/774546294716331180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/774546294716331180'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/08/setting-up-tilingcaching-google.html' title='Setting up a Tiling/Caching Google Maps/ArcGIS Server Solution'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_QNy_7A5izKI/SJcUy9PdJ_I/AAAAAAAAASw/iU8Mq-Kic5Q/s72-c/projection_toWebMapAPIs.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-6259482084609403810</id><published>2008-07-23T11:08:00.001-07:00</published><updated>2008-07-23T11:13:15.023-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arcgis server'/><category scheme='http://www.blogger.com/atom/ns#' term='arcmap'/><title type='text'>ArcGIS Server, not able to "input layers" for cache, or preview map in ArcCatalog</title><content type='html'>In trying to make an ArcGIS server (9.3) caching service I was initially not seeing any option for the required "input layers" parameter in the cache manager (through service properties). &lt;br /&gt;&lt;br /&gt;Afterwards I noticed that I was unable to preview the map service in ArcCatalog (though coordinates were visible at the bottom of that frame).&lt;br /&gt;&lt;br /&gt;This issue was probably fixed by changing properties to include all arcgis server related accounts (used "everyone", just to make sure it was a permissions issue) as having read permissions for the individual shapefiles participating in the mxd I was trying to publish.&lt;br /&gt;&lt;br /&gt;It may have also been fixed by not initially specifying a cache directory when creating the service through ArcCatalog, but probably not.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-6259482084609403810?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/6259482084609403810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=6259482084609403810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6259482084609403810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6259482084609403810'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/07/arcgis-server-not-able-to-input-layers.html' title='ArcGIS Server, not able to &quot;input layers&quot; for cache, or preview map in ArcCatalog'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-4953969579321150471</id><published>2008-07-02T18:43:00.000-07:00</published><updated>2008-07-02T18:46:23.224-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arcmap'/><title type='text'>Arcmap geocoding error</title><content type='html'>Was getting the following error when trying to geocode, though I suspect it might come up whenever a feature class cannot be created which would have an invalid data table (dbf) associated with it:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Create Feature Class&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;There was an error trying to process this table.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Operation failed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt; Remove any unnecessary fields from the table&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-4953969579321150471?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/4953969579321150471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=4953969579321150471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4953969579321150471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4953969579321150471'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/07/arcmap-geocoding-error.html' title='Arcmap geocoding error'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-5998606787919506702</id><published>2008-07-01T22:33:00.000-07:00</published><updated>2008-07-01T22:40:27.694-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='acccess'/><category scheme='http://www.blogger.com/atom/ns#' term='workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='arcmap'/><title type='text'>Workflow: Access to Arcmap and Back</title><content type='html'>&lt;ol&gt;&lt;li&gt;export as .xls (with no formatting option)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;open w/ excel 2003 or earlier.  press ctrl + A twice, do &lt;a href="http://benmearns.blogspot.com/2008/04/ever-wondered-how-to-adjust-all-columns.html"&gt;column autofit&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;convert all double number fields to number w/ adequate number of sig digits (6 is good for decimal degrees)&lt;/li&gt;&lt;li&gt;export as dbf&lt;/li&gt;&lt;li&gt;import dbf to arcmap&lt;/li&gt;&lt;li&gt;when creating shp via geoprocessing/etc name 6 chars/less and no special chars&lt;/li&gt;&lt;li&gt;close arcmap&lt;/li&gt;&lt;li&gt;import into access&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-5998606787919506702?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/5998606787919506702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=5998606787919506702' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5998606787919506702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/5998606787919506702'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/07/workflow-access-to-arcmap-and-back.html' title='Workflow: Access to Arcmap and Back'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-7426837430163059284</id><published>2008-06-25T10:04:00.000-07:00</published><updated>2008-06-25T10:12:38.496-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='postgres'/><title type='text'>postgres to mysql workflow</title><content type='html'>&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;postgres to mysql workflow&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;1.  Export database from postgres to plain text sql.  You should do this with the pgAdmin III tool by right clicking on the db you want to export and choosing "Backup ..."  this will take you to the following screen, where you should select options as displayed below (notice the "Plain" and "Insert" options are checked):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_QNy_7A5izKI/SGJ7XPIuWJI/AAAAAAAAASo/eErLomb9dko/s1600-h/postgres_backup.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_QNy_7A5izKI/SGJ7XPIuWJI/AAAAAAAAASo/eErLomb9dko/s320/postgres_backup.JPG" alt="" id="BLOGGER_PHOTO_ID_5215866957578786962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span&gt;2.  Once you have exported your plaintext sql you must create tables in mysql into which you can insert your data.  Do this by copying the CREATE statement appearing in the "SQL Pane" (after you have clicked/selected a table) in pgAdmin III into the MySQL query line and execute this.  Do this for every table you want to import&lt;br /&gt;&lt;br /&gt;3.     Now run insert statements ... if you get errors, make sure the table structure of the new table is the same as your old table (and insert statement)&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-7426837430163059284?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/7426837430163059284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=7426837430163059284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7426837430163059284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7426837430163059284'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/06/postgres-to-mysql-workflow.html' title='postgres to mysql workflow'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_QNy_7A5izKI/SGJ7XPIuWJI/AAAAAAAAASo/eErLomb9dko/s72-c/postgres_backup.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-3725324498789766731</id><published>2008-06-24T06:10:00.000-07:00</published><updated>2010-12-01T07:27:00.422-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgres'/><title type='text'>Import/Copy CSV/data to Postgres</title><content type='html'>&lt;div&gt;I recently was having trouble importing CSV to postgres.  The trouble was with empty trailing columns (the first row had an empty trailing column).  I found that a tab delimited file (export from excel, using export as ms-dos text) allowed me to avoid warnings about empty columns.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;was getting this error in postgres while trying to run the "COPY" command from sql:&lt;br /&gt;&lt;br /&gt;WARNING:  nonstandard use of escape in a string literal&lt;br /&gt;&lt;br /&gt;This error was followed by a description of where the error was occuring, which was showing the error in the wrong place.  To fix this issue, make sure that all slashes (such as in file paths) are "/" rather than "\"&lt;br /&gt;&lt;br /&gt;Here is an example of a proper COPY command:&lt;br /&gt;&lt;br /&gt;COPY count_crime TO 'c:/temp/temp.csv' USING DELIMITERS ','&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-3725324498789766731?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/3725324498789766731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=3725324498789766731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3725324498789766731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/3725324498789766731'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/06/was-getting-this-error-in-postgres.html' title='Import/Copy CSV/data to Postgres'/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-1367040109077860747</id><published>2008-06-12T11:52:00.000-07:00</published><updated>2008-06-12T11:57:41.264-07:00</updated><title type='text'></title><content type='html'>was getting the following error after installing php 5.2.6 on IIS with IIS CGI configuration:&lt;br /&gt;&lt;br /&gt;PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Program Files\PHP\ext\php_pgsql.dll' - The specified module could not be found. in Unknown on line 0&lt;br /&gt;&lt;br /&gt;I resolved this by replacing the .dll in this location with my .dll from a previous install (php 5.2.5) ... you can probably use the .dll from any version&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-1367040109077860747?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/1367040109077860747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=1367040109077860747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/1367040109077860747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/1367040109077860747'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/06/was-getting-following-error-after.html' title=''/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-4793314265564505241</id><published>2008-06-04T08:51:00.000-07:00</published><updated>2008-06-04T09:20:35.003-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vbscript'/><category scheme='http://www.blogger.com/atom/ns#' term='vba'/><category scheme='http://www.blogger.com/atom/ns#' term='arcmap'/><title type='text'></title><content type='html'>are you getting field value with with the leading zeros excluded, but are joining to a field with the zeros included?  this is a common issue with census tract numbers, for instance.&lt;br /&gt;&lt;br /&gt;you can use the vbscript below in arcmap or other vba data programs to generate a six character value with leading zeros, where the value is less than six characters&lt;br /&gt;&lt;br /&gt;*remember new field MUST BE TEXT format, else will always loose leading zeros!&lt;br /&gt;&lt;br /&gt;parameters:&lt;br /&gt;short_text_field:  shortened field which longer field will be based on&lt;br /&gt;need to change the loop condition to the longer number of characters involved (here is 6)&lt;br /&gt;&lt;br /&gt;dim txtShort&lt;br /&gt;txtShort = CStr([short_text_field])&lt;br /&gt;Do Until len(txtShort) = 6&lt;br /&gt;txtShort = "0" &amp;amp; txtShort&lt;br /&gt;Loop&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-4793314265564505241?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/4793314265564505241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=4793314265564505241' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4793314265564505241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/4793314265564505241'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/06/are-you-getting-field-value-with-with.html' title=''/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-9130562367693690924</id><published>2008-05-20T13:32:00.001-07:00</published><updated>2008-05-20T13:33:35.756-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'></title><content type='html'>I was getting the following error on my web browser:&lt;br /&gt;&lt;br /&gt;"The directory name is invalid."&lt;br /&gt;&lt;br /&gt;I assumed this was a PHP error, and indeed is probably related in some way to PHP, but realized that this was coming up instead of a 404 error ... I'm not sure why.&lt;br /&gt;&lt;br /&gt;I just typed the correct URL and the page worked.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-9130562367693690924?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/9130562367693690924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=9130562367693690924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/9130562367693690924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/9130562367693690924'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/05/i-was-getting-following-error-on-my-web.html' title=''/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-7274198097445709676</id><published>2008-04-29T08:21:00.000-07:00</published><updated>2008-04-29T08:23:59.219-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='pear'/><title type='text'></title><content type='html'>having problems with your pear install on a drive other than c (d?) on iis?  you must run the pear install .bat from the cmd prompt referencing the pear install .bat on that drive.  otherwise, pear is configured to run on the c drive, and therefore doesn't work.  this tip from the cml dba, karl dailey.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-7274198097445709676?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/7274198097445709676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=7274198097445709676' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7274198097445709676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/7274198097445709676'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/04/having-problems-with-your-pear-install.html' title=''/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-6394242822289071301</id><published>2008-04-23T07:01:00.000-07:00</published><updated>2008-04-23T07:03:57.171-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><title type='text'></title><content type='html'>a common task I come across is the need to create a table of "distinct" records based upon "uniqueness" of values in a given field. &lt;br /&gt;&lt;pre&gt;SELECT * INTO new_distinct_table FROM [old_non_distinct_table] WHERE [some_unique_field] In (SELECT Max([some_unique_field&lt;br /&gt;]) FROM [old_non_distinct_table&lt;br /&gt;] GROUP BY [non_unique_field_of_interest]);&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5081137459980209833-6394242822289071301?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/6394242822289071301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=6394242822289071301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6394242822289071301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6394242822289071301'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/04/common-task-i-come-across-is-need-to.html' title=''/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-6195418641869401775</id><published>2008-04-23T06:09:00.001-07:00</published><updated>2008-04-23T06:13:16.427-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='postgres'/><title type='text'></title><content type='html'>I had earlier shown how to do an update query based on a field from another table in MS Access.  Here is the syntax for postgres:&lt;br /&gt;&lt;br /&gt;UPDATE to_table SET to_column = from_column from from_table where to_table.primary_key= from_table.foreign_key;&lt;br /&gt;&lt;br /&gt;handy notes for this query:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;append in postgres is || (double pipe)&lt;/li&gt;&lt;li&gt;cast in postgres is like column_to_cast::type_to_cast&lt;br /&gt;&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/5081137459980209833-6195418641869401775?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/6195418641869401775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=6195418641869401775' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6195418641869401775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/6195418641869401775'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/04/i-had-earlier-shown-how-to-do-update.html' title=''/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5081137459980209833.post-8762387733610968225</id><published>2008-04-20T11:39:00.000-07:00</published><updated>2008-04-20T12:17:45.367-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xxamp'/><title type='text'></title><content type='html'>using xxamp for a lamp (linux,mysql, php) environment to do development on php?  perhaps you are already running an iis server (or even the others through iis) ... in that case the default ports for webhost and mysql db will already be in use.  to get apache to listen on other ports you will have to change the "listen" and "server" parameters in respective httpd.conf.  For mysql .cnf the parameters are "port" at 20 and 27&lt;br /&gt;&lt;br /&gt;you should do this at least for:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;http: in C:\xampp\apache\conf\httpd.conf&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ssl: in C:\xampp\apache\conf\extra\httpd-ssl.conf&lt;br /&gt;&lt;/li&gt;&lt;li&gt;mysql: C:\xampp\mysql\bin\my.cnf&lt;/li&gt;&lt;/ol&gt;you may also want to change port values for mysql in:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;C:\xampp\mysql\bin\mysqld-nt.exe&lt;/li&gt;&lt;li&gt;C:\xampp\apache\bin\php.ini (line 795)&lt;/li&gt;&lt;/ul&gt;add the following lines to administer your server with phpmyadmin (at line 20 in C:\xampp\phpMyAdmin\config.inc.php), with whatever your new port number is in the section noted below&lt;br /&gt;&lt;ul&gt;&lt;li&gt;$cfg['Servers'][$i]['host'] = 'localhost';&lt;/li&gt;&lt;li&gt;$cfg['Servers'][$i]['port'] = 'whatever your new port number is';&lt;br /&gt;&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/5081137459980209833-8762387733610968225?l=benmearns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://benmearns.blogspot.com/feeds/8762387733610968225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5081137459980209833&amp;postID=8762387733610968225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8762387733610968225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5081137459980209833/posts/default/8762387733610968225'/><link rel='alternate' type='text/html' href='http://benmearns.blogspot.com/2008/04/using-xxamp-for-lamp-linuxmysql-php.html' title=''/><author><name>Ben Mearns</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-fJyxK3__h3U/AAAAAAAAAAI/AAAAAAAABug/nA4jtuXlhyw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
