<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Princi Vershwal on Medium]]></title>
        <description><![CDATA[Stories by Princi Vershwal on Medium]]></description>
        <link>https://medium.com/@vershwal?source=rss-a18d6bdbacf3------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*VjrAHzw91QoazCwGM8tfHQ.jpeg</url>
            <title>Stories by Princi Vershwal on Medium</title>
            <link>https://medium.com/@vershwal?source=rss-a18d6bdbacf3------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 15 Jun 2026 01:36:44 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@vershwal/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Vector Tile Support for OpenStreetMap’s iD Editor]]></title>
            <link>https://medium.com/@vershwal/vector-tile-support-for-openstreetmaps-id-editor-40b1cb77f63b?source=rss-a18d6bdbacf3------2</link>
            <guid isPermaLink="false">https://medium.com/p/40b1cb77f63b</guid>
            <category><![CDATA[vector-tiles]]></category>
            <category><![CDATA[openstreetmap]]></category>
            <category><![CDATA[mapbox]]></category>
            <category><![CDATA[google-summer-of-code]]></category>
            <category><![CDATA[gpx]]></category>
            <dc:creator><![CDATA[Princi Vershwal]]></dc:creator>
            <pubDate>Mon, 13 Aug 2018 08:10:59 GMT</pubDate>
            <atom:updated>2018-08-13T08:10:59.866Z</atom:updated>
            <content:encoded><![CDATA[<p><a href="https://en.wikipedia.org/wiki/Protocol_Buffers">Protocolbuffer Binary Format</a>(.pbf) and <a href="https://www.mapbox.com/vector-tiles/specification/">Mapbox Vector Tiles</a>(.mvt) are two popular formats for sharing map data. Prior to this GSoC project, the iD editor in OSM supported GPX data. GPX is an XML schema designed as a common GPS data format for software applications. It can be used to describe waypoints, tracks, and routes.</p><p>The main objective of the project was to add support for vector tile data to iD. MVT and PBF contain data of a particular tile. These files contain data in Protocolbuffer binary format and can have various sets of data like name of cities, or train stations etc. This data can be in the form of points, lines or polygons. A vector tile looks something like this :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/256/0*V1sZRECvQfzaN7zL" /></figure><p>The goal is to draw the data of these tile on iD and it should show up on the screen like this :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*PF9Wj81O_TeePQuH.png" /></figure><p>For implementing the feature the following steps were followed:</p><ol><li><strong>Creating a new layer :</strong> A new mvt layer is created that would accept a pbf/mvt file. d3_request library is used to read the data in arraybuffer format.</li><li><strong>Converting data to GeoJSON :</strong> The arraybuffer data is converted to GeoJSON format before passing to the drawMvt function. <br>For converting vector tile data to GeoJSON data, Mapbox provides with two libraries:<br>1. <a href="https://github.com/mapbox/vt2geojson">vt2geojson</a> <br>2. <a href="https://github.com/mapbox/vector-tile-js">vector-tile-js</a><br>vt2geojson is great for changing vector tiles to GeoJSON from remote URLs or local system files but it works with Node.js only. <br>For iD we have used mapbox’s vector-tile-js, it read Mapbox Vector Tiles and allows access to the layers and features, these features can be further converted to GeoJSON.</li><li><strong>MVT drawing :</strong> This GeoJSON data is pass directly to the D3 draw functions which renders the data. (iD uses D3 for all of our drawing already)</li></ol><p>All the work related to the above steps is <a href="https://github.com/openstreetmap/iD/pull/5072/files#diff-d0fcbc8876afed828b705f6f1a909a33">here</a>.</p><p>4. Next step was writing the tests for the above code. Tests for the code are <a href="https://github.com/openstreetmap/iD/pull/5149/files">here</a>.</p><p><strong>Performance Testing</strong></p><ol><li><strong>Choosing data :</strong> The data which was used to create the vector tiles for testing is this : <a href="https://data.cityofnewyork.us/Environment/2015-Street-Tree-Census-Tree-Data/pi5s-9p35/data">https://data.cityofnewyork.us/Environment/2015-Street-Tree-Census-Tree-Data/pi5s-9p35/data</a><br>It is a dense data consisting of only points.</li><li><strong>Creating MVTs :</strong> Vector tiles were created using the above data using a tool called tippecanoe. Mapbox’s tippecanoe is used to build vector tilesets from large (or small) collections of GeoJSON, Geobuf, or CSV features.</li><li><strong>Tippecanoe</strong> converts GeoJSON data to mbtiles format, these files contain data for more than one tile. <a href="https://github.com/mapbox">Mapbox</a>/<a href="https://github.com/mapbox/mbview">mbview</a> was used to view these tiles in localhost and extract individual tiles from the network tab.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RdDkiRBfYWpEr3UBkJDWDQ.png" /></figure><p>4. This URL when passed to iD draws the vector tile like this :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*0lWU6dWfY-Yqcxb_" /></figure><p><strong>URL used :</strong> <a href="http://preview.ideditor.com/master/#background=Bing&amp;disable_features=boundaries&amp;map=9.00/39.7225/-74.0153&amp;mvt=https://a.tiles.mapbox.com/v4/mapbox.mapbox-terrain-v2,mapbox.mapbox-streets-v7/12/1207/1541.vector.pbf?access_token= &#39;pk.0000.1111&#39;">http://preview.ideditor.com/master/#background=Bing&amp;disable_features=boundaries&amp;map=9.00/39.7225/-74.0153&amp;mvt=https://a.tiles.mapbox.com/v4/mapbox.mapbox-terrain-v2,mapbox.mapbox-streets-v7/12/1207/1541.vector.pbf?access_token= ‘pk.0000.1111’ </a><br># replace value with your mapbox public access token</p><p><strong>Some More Interesting Stuff</strong></p><p>There is much more that can be done with vector tiles. One thing is better styling of the drawings. A very next step is to provide different colors to different layers of the tile data.</p><p>For more discussion, you can follow <a href="https://github.com/openstreetmap/iD/issues/3742">here</a>.<br>My earlier blogs can be found <a href="https://www.openstreetmap.org/user/Princi%20Vershwal/diary">here</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=40b1cb77f63b" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Getting into Outreachy : An open source internship program.]]></title>
            <link>https://medium.com/@vershwal/getting-into-outreachy-an-open-source-internship-program-c09c536c28a7?source=rss-a18d6bdbacf3------2</link>
            <guid isPermaLink="false">https://medium.com/p/c09c536c28a7</guid>
            <category><![CDATA[outreachy]]></category>
            <category><![CDATA[mozilla]]></category>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[women-in-tech]]></category>
            <category><![CDATA[internships]]></category>
            <dc:creator><![CDATA[Princi Vershwal]]></dc:creator>
            <pubDate>Tue, 08 Aug 2017 19:09:34 GMT</pubDate>
            <atom:updated>2017-08-08T19:47:15.877Z</atom:updated>
            <content:encoded><![CDATA[<p><strong>What is Outreachy?</strong></p><p><a href="https://www.gnome.org/outreachy/">Outreachy</a> is a wonderful initiative for women and people from groups underrepresented in free and open source software to get involved. If you are new to open source and searching for an internship that can boost up your confidence in open source, Outreachy would be a great start for you.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/702/1*KJLOHBefMUduHQ2SRK4Acw.png" /></figure><p>Outreachy interns work on a project for an organization under the supervision of a mentor, for 3 months. Various open source<a href="https://wiki.gnome.org/Outreachy/History#Past_Participating_Organizations"> organizations</a>(e.g. Mozilla, GNOME, Wikimedia, Linux kernel to name a few) take part in the Outreachy program. It is similar to the Google Summer of Code program, but a difference is that participation isn’t limited to just students.</p><p>Another major difference is that it happens twice a year. There are both summer and winter rounds. So you don’t have to wait for the entire year but you can start contributing anytime and prepare for the next round which would be some months later.</p><p><strong>My involvement with Outreachy</strong></p><p>Before Outreachy, I had done web and android development projects in my college but I was new to the huge world of open source. My first encounter with open source was in November last year and at that time Outreachy was nowhere in my mind.</p><p>I heard about the program in through a college senior who has earlier participated in Outreachy. I decided to participate in the coming round and started solving good-first-bugs.</p><p>The application period itself gave me a lot of confidence in my skills and work as a developer. I enjoyed it so much that I used to spend my whole day solving bugs here and there or just reading blogs about the program or the participating organizations.</p><p>Finally, there was the result day and I was selected for an internship at Mozilla for round 14.</p><p>I am currently working on Push Notifications for Signin Confirmation in Firefox Accounts. I am really enjoying my work. It is super exciting!!</p><p><strong>Applying for Outreachy?</strong></p><p>If you are planning to apply for the next round of Outreachy, here’s some advice that I can offer:</p><p><strong>Start early</strong></p><p>It is always better to know what is coming up. Try to explore as much as you can before the organizations and projects are announced. If you are a beginner, read about Outreachy, previously participated organizations, and start making contributions. You will learn a lot while contributing.</p><p><strong>Chose your project/organization wisely</strong></p><p>Once the organizations are announced you will be having about 50 projects(from different organization, programming languages, and fields) to choose from, this is great because you can start contributing to the project you are most interested in.</p><p>Explore all the projects and choose one which interests you the most and you feel motivated to work on that project for the next 3–4 months.</p><p><strong>Ask Questions</strong></p><p>Do not hesitate in asking questions even if you think that the question is silly because that one small question can be a block for many days, first search for the solution yourself but if it takes more than a day or two just ask. Outreachy respects the fact that you might be a beginner and everybody is going to respond to your query respectfully.</p><p>If it is an issue/project related doubt ask the mentors, otherwise for any Outreachy related query you can join the #outreachy channel on IRC.</p><p><strong>Stay consistent</strong></p><p>There can be days when you face block after block but stay motivated and don’t stop trying. Don’t get disheartened if your patches are not accepted in early stages. Eventually they would be. They just need a little more polishing. Keep going and one day you will get your PR merged!! :)</p><p><strong>Be respectful</strong></p><p>Always be respectful to your mentors and co participants while communicating. If you see that any fellow participant is stuck on a similar doubt and you feel that you can help, just share your knowledge even if he/she is your competitor. Getting selected is a goal but spreading knowledge and involving more people in open source is a bigger aim of Outreachy.</p><p><strong>Know your project before submitting an application</strong></p><p>You do not have to hurry about submitting a proposal. Get to know about your project, set up the platform, solve bugs and once you get comfortable with the code and platform then submit the application. This way you will have a better idea about the project and this will reflect from your application.</p><p><strong>Don’t get disheartened and learn from the past mistakes</strong></p><p>If you do not get selected for one round of Outreachy don’t be upset. Keep in mind that the next round is just a few months away and the chances of you getting selected in the next round will just get double if you keep contributing.</p><p>If you have any other query regarding Outreachy feel free to drop me an email at vershwal.princi@gmail.com.<br>Happy coding!!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c09c536c28a7" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>