<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.0">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2021-10-12T16:08:14+00:00</updated><id>/feed.xml</id><title type="html">Matt Hampel’s Blog</title><entry><title type="html">Raster maps are like Myst, vector maps are like Doom</title><link href="/2021/10/12/maps.html" rel="alternate" type="text/html" title="Raster maps are like Myst, vector maps are like Doom" /><published>2021-10-12T00:00:00+00:00</published><updated>2021-10-12T00:00:00+00:00</updated><id>/2021/10/12/maps</id><content type="html" xml:base="/2021/10/12/maps.html">&lt;p&gt;An insightful explainer of raster and vector maps from Brandon Liu, who is
building out &lt;a href=&quot;https://protomaps.com/&quot;&gt;protomaps&lt;/a&gt;.&lt;/p&gt;</content><author><name></name></author><summary type="html">An insightful explainer of raster and vector maps from Brandon Liu, who is building out protomaps.</summary></entry><entry><title type="html">Rental inspections in Ann Arbor</title><link href="/2021/03/30/rentals.html" rel="alternate" type="text/html" title="Rental inspections in Ann Arbor" /><published>2021-03-30T07:13:00+00:00</published><updated>2021-03-30T07:13:00+00:00</updated><id>/2021/03/30/rentals</id><content type="html" xml:base="/2021/03/30/rentals.html">&lt;p&gt;In June of 2020, I built a map showing all the
&lt;a href=&quot;https://matth.org/ann-arbor-rentals&quot;&gt;rental properties in Ann Arbor&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Of course, it isn’t really &lt;em&gt;all&lt;/em&gt; the rentals in Ann Arbor, just those registered
with the city’s rental inspection program.&lt;/p&gt;

&lt;p&gt;As with my &lt;a href=&quot;https://matth.org/adus&quot;&gt;ADU project&lt;/a&gt;, my goal was for this map
to be built with libraries that would still be functional 10 years from now.
It has no exeternal dependencies. I wrote about that process in a
&lt;a href=&quot;https://matth.org/2020/03/29/adus.html&quot;&gt;post last year&lt;/a&gt;&lt;/p&gt;</content><author><name></name></author><summary type="html">In June of 2020, I built a map showing all the rental properties in Ann Arbor.</summary></entry><entry><title type="html">Where can you build an Accessory Dwelling Unit (ADU) in Ann Arbor?</title><link href="/2020/03/29/adus.html" rel="alternate" type="text/html" title="Where can you build an Accessory Dwelling Unit (ADU) in Ann Arbor?" /><published>2020-03-29T07:13:00+00:00</published><updated>2020-03-29T07:13:00+00:00</updated><id>/2020/03/29/adus</id><content type="html" xml:base="/2020/03/29/adus.html">&lt;p&gt;Over the weeknd, I built a map showing where you can build an &lt;a href=&quot;https://matth.org/adus&quot;&gt;Accessory Dwelling
Unit (ADU) in Ann Arbor&lt;/a&gt;. It maps all of Ann Arbor’s
parcels and highlights the ones that are zoned correctly.&lt;/p&gt;

&lt;p&gt;My goal was for this map to still work 10 years from now. So I built it
entirely without external dependencies. That ended up being a bit harder than
I thought it would be.&lt;/p&gt;

&lt;p&gt;You could make this a lot more quickly and easily if you didn’t add that
constraint. Loading the shapefile in QGIS and then exporting an image would be pretty
speedy. Or you could load the dataset directly into Mapbox and publish a map there.&lt;/p&gt;

&lt;h2 id=&quot;toolbox&quot;&gt;Toolbox&lt;/h2&gt;

&lt;p&gt;There’s a huge set of geo tools out there and they are a tangled mess.
But it’s getting better. I can’t step through how to set it all up, but if you
want to do something similar,  I’m coming into this project with PostGIS and
GDAL installed on my Mac with homebrew.&lt;/p&gt;

&lt;h2 id=&quot;constraints&quot;&gt;Constraints&lt;/h2&gt;

&lt;p&gt;I knew everything would have to fit in on static site – no servers.
Third-party services are out.
(A) I’m not about to spend $5 a month on this little side project.
And (B) I love Mapbox but they will probably make a lot of cash pivoting to Mars
satellite mapping or something (good on them) and then my tiny map would just stop working.&lt;/p&gt;

&lt;p&gt;My orignal thought was to use &lt;a href=&quot;https://leafletjs.com/&quot;&gt;Leaflet&lt;/a&gt;.
It’s been around 10 years and it’s going to be around in 10 years. Solid like a rock. Good choice.&lt;/p&gt;

&lt;p&gt;But then I’d have to fire up &lt;a href=&quot;https://github.com/mapbox/mapbox-studio-classic&quot;&gt;Mapbox Studio Classic&lt;/a&gt;
and fight with it in the latest MacOS. If I wanted to add any interactivity, that
would be a pain involving remembering how to do &lt;a href=&quot;https://github.com/mapbox/utfgrid-spec&quot;&gt;UTFGrid tiles&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I’m suspicious that vector renderers like &lt;a href=&quot;https://github.com/mapbox/mapbox-gl-js&quot;&gt;Mabpox GL JS&lt;/a&gt; won’t
function in browsers in 10 years but &lt;a href=&quot;https://twitter.com/bdon&quot;&gt;bdon&lt;/a&gt; convinced me
that either GL JS or &lt;a href=&quot;https://github.com/tangrams/tangram&quot;&gt;Tangram&lt;/a&gt; are probably fine.
Start the clock.&lt;/p&gt;

&lt;h2 id=&quot;basemap&quot;&gt;Basemap&lt;/h2&gt;

&lt;p&gt;It’s hard to navigate without a labeled base street map. The best open source for
those is OpenStreetMap. And the best way to get OpenStreetMap data on your computer
in managable little bundles is the &lt;a href=&quot;https://protomaps.com/extracts&quot;&gt;minutely custom OSM extracts from Protomaps&lt;/a&gt;.
I just drew a &lt;a href=&quot;https://protomaps.com/extracts/acd533f7-3ce7-43a6-8547-01a30a756df3&quot;&gt;rough box in Washtenaw County&lt;/a&gt; and went from there.&lt;/p&gt;

&lt;p&gt;To get the OSM data onto a map, you need to render it out into vector tiles.
Conveniently, &lt;a href=&quot;https://github.com/systemed/tilemaker&quot;&gt;Tilemaker&lt;/a&gt; has a brew formula.&lt;/p&gt;

&lt;p&gt;The configuration is a bit mysterious. You need a decent understanding of OSM tagging
to do antything custom, and the actual configuration happens in JSON and … lua?
I’m not saying lua is a bad decision, but I’ve never worked with it. Happily,
they include a default configuration that probably has what you need
out of the box.&lt;/p&gt;

&lt;h2 id=&quot;parcels&quot;&gt;Parcels&lt;/h2&gt;

&lt;p&gt;The Washtenaw County parcel data is a little tricky to get at. Property taxes
fund a huge part of our local government and you’d think the data on who owns
what (and at what valuation) would be more public. There is a nice
&lt;a href=&quot;https://gisappsecure.ewashtenaw.org/mapwashtenaw/&quot;&gt;online map viewer&lt;/a&gt;, or you
can FOIA the data. I work at a &lt;a href=&quot;https://landgrid.com&quot;&gt;company that focuses on parcel data&lt;/a&gt; so I was
able to skip ahead on this one.&lt;/p&gt;

&lt;h2 id=&quot;zoning&quot;&gt;Zoning&lt;/h2&gt;

&lt;p&gt;Ann Arbor has an &lt;a href=&quot;https://www.a2gov.org/services/data/Pages/default.aspx&quot;&gt;open data portal&lt;/a&gt;
of sorts and it’s got a zoning shapefile. I loaded that into PostGIS using ogr2ogr:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ogr2ogr -f PostgreSQL pg:'user=matth host=localhost port=5432' -nln mi_washtenaw_zoning -s_srs 'epsg:2253' -t_srs 'epsg:4326' -nlt GEOMETRY -lco precision=NO /Users/matth/Downloads/AA_Zoning_Districts/AA_Zoning_Districts.shp
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And thenjoined it up to the parcel data:&lt;/p&gt;

&lt;div class=&quot;language-sql highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;create&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;index&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mi_washtenaw_zoning_geom_idx&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;on&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mi_washtenaw_zoning&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gist&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;wkb_geometry&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;update&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mi_washtenaw&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;zoning&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;zoningclas&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mi_washtenaw_zoning&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;where&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;st_intersects&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;st_centroid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;wkb_geometry&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;wkb_geometry&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;rendering-parcel-tiles&quot;&gt;Rendering parcel tiles&lt;/h2&gt;

&lt;p&gt;I used ogr2ogr to export just the Ann Arbor parcels from Washtenaw County.
you can add in a little sql query to get just the data you need:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ogr2ogr -f GeoJSON mi_washtenaw_parcels.geojson pg:'user=matthhost=localhost port=5432' mi_washtenaw -sql &quot;select * from mi_washtenaw where city='ann-arbor'&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Ann Arbor has about 30,000 properties. That’s way too many to show all of them
on the map at once with GeoJSON, so I knew I’d need to render them out as
vector tiles.&lt;/p&gt;

&lt;p&gt;I used &lt;a href=&quot;https://github.com/mapbox/tippecanoe&quot;&gt;tippecanoe&lt;/a&gt; to turn the
GeoJSON into vector tiles. There are a &lt;em&gt;lot&lt;/em&gt; of setting to play with. Here
are a few that were relevant here:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;output-to-directory&lt;/code&gt;, because I would be hosting the tiles instead of uploading them to mapbox&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;include&lt;/code&gt; to only include certain attributes in the data. Mapbox doesn’t like rendering tiles larger than 512kb, so I
had to slim things down.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;simplify-only-low-zooms&lt;/code&gt; to garauntee that at least the closest zoom level would have the full parcel detail&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;no-tiny-polygon-reduction&lt;/code&gt;, otherwise I got jagged triangles and other polygons instead of parcels&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;no-tile-compression&lt;/code&gt;, the web server would handle this&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;tippecanoe --output-to-directory=parcel_tiles mi_washtenaw_parcels.geojson --read-parallel --include=address --include=zoning --include=ll_gissqft --no-tile-compression -f --coalesce-densest-as-needed --detect-shared-borders --no-tiny-polygon-reduction --simplify-only-low-zooms
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;putting-it-together&quot;&gt;Putting it together&lt;/h2&gt;

&lt;p&gt;Time to put everything on a Mapbox Map!
I followed their standard setup instructions, but I downloaded the JS and CSS
assets to my working directory instead of using the CDN versions.&lt;/p&gt;

&lt;p&gt;There were a couple gotchas, and I found solutions to several in  &lt;a href=&quot;https://github.com/klokantech/mapbox-gl-js-offline-example&quot;&gt;klokantech’s mapbox-gl-js-offline-example repo&lt;/a&gt;.
The biggest one was that the fonts I needed for road labels had to to be rendered to
PBF to be used in Mapbox GL JS (apparently this isn’t the case with Tangram). I
skipped those and used the fonts in kloantech’s example.&lt;/p&gt;

&lt;p&gt;Then, I added in layers for the parcels with a nice subtle styling, plus a layer
that used filters to select only the parcels that match the ADU criteria.&lt;/p&gt;

&lt;p&gt;The map looked good, but it was hard to tell where Ann Arbor ended.
I downloaded the City boundary shapefile from the &lt;a href=&quot;https://www.a2gov.org/services/data/Pages/default.aspx&quot;&gt;data portal&lt;/a&gt;
and saved it as GeoJSON using QGIS, but that didn’t look great as a simple line.&lt;/p&gt;

&lt;p&gt;I used &lt;a href=&quot;https://jsfiddle.net/kmandov/cr2rav7v&quot;&gt;this codepen&lt;/a&gt; plus &lt;a href=&quot;https://turfjs.org/&quot;&gt;Turf.js&lt;/a&gt;
for inspiration on how to turn it into a mask, where the areas outside the City
would be appear only faintly. In the process, I managed to add all the Township
islands – they’ll be back in a future map.&lt;/p&gt;

&lt;p&gt;You can &lt;a href=&quot;https://matth.org/adus&quot;&gt;see the final product here&lt;/a&gt;, and &lt;a href=&quot;https://github.com/hampelm/adus/&quot;&gt;the code is here&lt;/a&gt;.&lt;/p&gt;</content><author><name></name></author><summary type="html">Over the weeknd, I built a map showing where you can build an Accessory Dwelling Unit (ADU) in Ann Arbor. It maps all of Ann Arbor’s parcels and highlights the ones that are zoned correctly.</summary></entry><entry><title type="html">Installing GDAL on a Debian Stretch Docker instance</title><link href="/2019/04/02/gdal-debian-stretch.html" rel="alternate" type="text/html" title="Installing GDAL on a Debian Stretch Docker instance" /><published>2019-04-02T07:13:00+00:00</published><updated>2019-04-02T07:13:00+00:00</updated><id>/2019/04/02/gdal-debian-stretch</id><content type="html" xml:base="/2019/04/02/gdal-debian-stretch.html">&lt;p&gt;I had to get GDAL working in a Docker image with Debian Stretch for circleci. Here’s the working dockerfile:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;FROM circleci/ruby:2.6.0-stretch

# GDAL
# RUN sudo apt-get install -y gdal-bin # Nope -- gets us 2.1
RUN sudo apt-get install -y libproj-dev proj-data proj-bin
RUN sudo apt-get install libgeos-dev -y
RUN sudo wget http://download.osgeo.org/gdal/2.4.1/gdal241.zip
RUN sudo unzip gdal241.zip
RUN sudo sudo chmod o+x gdal-2.4.1
RUN cd gdal-2.4.1 &amp;amp;&amp;amp; sudo ./configure --with-pg --with-geos --with-spatialite --with-libkml --with-proj &amp;amp;&amp;amp; sudo make -j4 &amp;amp;&amp;amp; sudo make install
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</content><author><name></name></author><summary type="html">I had to get GDAL working in a Docker image with Debian Stretch for circleci. Here’s the working dockerfile:</summary></entry><entry><title type="html">How to get your New York State PrompTax Access Code for your business</title><link href="/2015/10/20/how-to-get-your-new-york-state-promptax-access.html" rel="alternate" type="text/html" title="How to get your New York State PrompTax Access Code for your business" /><published>2015-10-20T18:30:17+00:00</published><updated>2015-10-20T18:30:17+00:00</updated><id>/2015/10/20/how-to-get-your-new-york-state-promptax-access</id><content type="html" xml:base="/2015/10/20/how-to-get-your-new-york-state-promptax-access.html">&lt;p&gt;You need a PrompTax Access Code to file your withholding statements electronically with the New York State Department of Taxation and Finance. The steps for getting the code are not clearly spelled out anywhere, so I called and got these instructions. &lt;/p&gt;&lt;p&gt;Note that this assumes you already have a NY.gov for your business (the site will prompt you to set one up if you don’t have one &amp;ndash; that’s pretty well documented).&lt;/p&gt;&lt;p&gt;Here are the steps: &lt;br/&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Log in to your Business Online Services account by going to &lt;a href=&quot;http://www.tax.ny.gov/online/&quot;&gt;http://www.tax.ny.gov/online/&lt;/a&gt; and selecting “Log in” (I couldn’t find a direct link.&lt;/li&gt;&lt;li&gt;Under Services on the left side of the page, select “Employment and withholding taxes.”&lt;/li&gt;&lt;li&gt;Select “PrompTax withholding tax/MCTMT” from the expanded menu.&lt;/li&gt;&lt;li&gt;Enroll in PromptTax&lt;/li&gt;&lt;li&gt;After enrolling, select the “Make a payment” button at the bottom of the screen.&lt;/li&gt;&lt;li&gt;Copy and paste your PrompTax Access Code from the payment screen.&lt;br/&gt;&lt;/li&gt;&lt;/ol&gt;</content><author><name></name></author><summary type="html">You need a PrompTax Access Code to file your withholding statements electronically with the New York State Department of Taxation and Finance. The steps for getting the code are not clearly spelled out anywhere, so I called and got these instructions. Note that this assumes you already have a NY.gov for your business (the site will prompt you to set one up if you don’t have one &amp;ndash; that’s pretty well documented).Here are the steps: Log in to your Business Online Services account by going to http://www.tax.ny.gov/online/ and selecting “Log in” (I couldn’t find a direct link.Under Services on the left side of the page, select “Employment and withholding taxes.”Select “PrompTax withholding tax/MCTMT” from the expanded menu.Enroll in PromptTaxAfter enrolling, select the “Make a payment” button at the bottom of the screen.Copy and paste your PrompTax Access Code from the payment screen.</summary></entry><entry><title type="html">no title</title><link href="/2014/08/23/95543859705.html" rel="alternate" type="text/html" title="no title" /><published>2014-08-23T12:56:22+00:00</published><updated>2014-08-23T12:56:22+00:00</updated><id>/2014/08/23/95543859705</id><content type="html" xml:base="/2014/08/23/95543859705.html">&lt;img src=&quot;/tumblr_files/tumblr_narfxyzz5y1rcyozeo2_1280.jpg&quot;/&gt;&lt;br/&gt;&lt;img src=&quot;/tumblr_files/tumblr_narfxyzz5y1rcyozeo1_1280.jpg&quot;/&gt;&lt;br/&gt;&lt;br/&gt;</content><author><name></name></author><summary type="html"></summary></entry><entry><title type="html">no title</title><link href="/2014/08/23/95543779655.html" rel="alternate" type="text/html" title="no title" /><published>2014-08-23T12:54:43+00:00</published><updated>2014-08-23T12:54:43+00:00</updated><id>/2014/08/23/95543779655</id><content type="html" xml:base="/2014/08/23/95543779655.html">&lt;img src=&quot;/tumblr_files/tumblr_narfv7diPx1rcyozeo1_1280.jpg&quot;/&gt;&lt;br/&gt;&lt;img src=&quot;/tumblr_files/tumblr_narfv7diPx1rcyozeo2_1280.jpg&quot;/&gt;&lt;br/&gt;&lt;br/&gt;</content><author><name></name></author><summary type="html"></summary></entry><entry><title type="html">no title</title><link href="/2014/07/07/91010424060.html" rel="alternate" type="text/html" title="no title" /><published>2014-07-07T03:33:37+00:00</published><updated>2014-07-07T03:33:37+00:00</updated><id>/2014/07/07/91010424060</id><content type="html" xml:base="/2014/07/07/91010424060.html">&lt;img src=&quot;/tumblr_files/tumblr_n8bok1tX0D1rcyozeo2_1280.jpg&quot;/&gt;&lt;br/&gt;&lt;img src=&quot;/tumblr_files/tumblr_n8bok1tX0D1rcyozeo1_1280.jpg&quot;/&gt;&lt;br/&gt;&lt;br/&gt;</content><author><name></name></author><summary type="html"></summary></entry><entry><title type="html">no title</title><link href="/2014/06/30/90311620035.html" rel="alternate" type="text/html" title="no title" /><published>2014-06-30T02:31:06+00:00</published><updated>2014-06-30T02:31:06+00:00</updated><id>/2014/06/30/90311620035</id><content type="html" xml:base="/2014/06/30/90311620035.html">&lt;img src=&quot;/tumblr_files/tumblr_n7ymzucEMy1rcyozeo1_1280.jpg&quot;/&gt;&lt;br/&gt;</content><author><name></name></author><summary type="html"></summary></entry><entry><title type="html">no title</title><link href="/2014/06/30/90311516895.html" rel="alternate" type="text/html" title="no title" /><published>2014-06-30T02:29:59+00:00</published><updated>2014-06-30T02:29:59+00:00</updated><id>/2014/06/30/90311516895</id><content type="html" xml:base="/2014/06/30/90311516895.html">&lt;img src=&quot;/tumblr_files/tumblr_n7ymxzn0hk1rcyozeo1_1280.jpg&quot;/&gt;&lt;br/&gt;</content><author><name></name></author><summary type="html"></summary></entry></feed>