<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Coding on stepansite</title><link>https://stepansite.com/en/tags/coding/</link><description>Recent content in Coding on stepansite</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sun, 26 Feb 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://stepansite.com/en/tags/coding/index.xml" rel="self" type="application/rss+xml"/><item><title>Was profiling python</title><link>https://stepansite.com/en/2023/profiling/</link><pubDate>Sun, 26 Feb 2023 00:00:00 +0000</pubDate><guid>https://stepansite.com/en/2023/profiling/</guid><description>&lt;p&gt;Profiling is 80% of optimization. It can help you to better understand what&amp;rsquo;s happening and find&#10;points for optimization.&#10;I&amp;rsquo;ll be using this simple code to generate example results&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;import&lt;/span&gt; &lt;span style="color:#24292e"&gt;time&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;def&lt;/span&gt; &lt;span style="color:#6639ba"&gt;fibonacci_of&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;n&lt;span style="color:#1f2328"&gt;):&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; n &lt;span style="color:#0550ae"&gt;in&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;&lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;}:&lt;/span&gt; &lt;span style="color:#57606a"&gt;# Base case&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;return&lt;/span&gt; n&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;return&lt;/span&gt; fibonacci_of&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;n &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; fibonacci_of&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;n &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; &lt;span style="color:#0550ae"&gt;2&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;def&lt;/span&gt; &lt;span style="color:#6639ba"&gt;hello_world&lt;/span&gt;&lt;span style="color:#1f2328"&gt;():&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6639ba"&gt;print&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;Hello World!&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; time&lt;span style="color:#0550ae"&gt;.&lt;/span&gt;sleep&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0550ae"&gt;0.01&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#953800"&gt;__name__&lt;/span&gt; &lt;span style="color:#0550ae"&gt;==&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; fibonacci_of&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0550ae"&gt;25&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; hello_world&lt;span style="color:#1f2328"&gt;()&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="cprofile"&gt;cProfile&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://docs.python.org/3/library/profile.html" target="_blank" rel="noreferrer"&gt;cProfile&lt;/a&gt; is built-in Python module for collecting statistics&#10;on how many times different parts of the script are called and how long does each call take.&#10;You can run it from command line and save the results to the binary file for further analyze with &lt;code&gt;-o &amp;lt;filename&amp;gt;&lt;/code&gt; option:&lt;/p&gt;</description></item><item><title>Added the map</title><link>https://stepansite.com/en/2021/places-map/</link><pubDate>Mon, 07 Sep 2020 20:00:00 +0000</pubDate><guid>https://stepansite.com/en/2021/places-map/</guid><description>&lt;p&gt;I tend to forget everything, so I wanted to make a map with the markers of the visited places for a while.&#10;One day I saw someone&amp;rsquo;s &lt;a href="https://gist.github.com/janikvonrotz/37dc61480790b07ab91d88d624caef2b" target="_blank" rel="noreferrer"&gt;gist&lt;/a&gt; and decided to create one for myself.&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;markers are clickable&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&#10;&#10;&#10;&lt;script src='https://api.mapbox.com/mapbox-gl-js/v2.4.1/mapbox-gl.js'&gt;&lt;/script&gt;&#10;&lt;link href='https://api.mapbox.com/mapbox-gl-js/v2.4.1/mapbox-gl.css' rel='stylesheet' /&gt;&#10;&lt;div id='map' style='width: 100%; height: 500px;'&gt;&lt;/div&gt;&#10;&lt;script defer&gt;&#10;mapboxgl.accessToken = "pk.eyJ1Ijoic3RlcGhhbjIxIiwiYSI6ImNsMm5lOHViMTE2YmQzb3BraGtrd2hzdXIifQ.UVLMX1yr359G9FroBX5cdQ";&#10;&#10; &#10;const map = new mapboxgl.Map({&#10; container: "map",&#10; style: "mapbox://styles/mapbox/light-v10?optimize=true",&#10; zoom: 3,&#10; center: [14.0213,47.9296]&#10;});&#10;&#10;&#10;&#10;&#10;fetch("\/2020\/places-map\/places.json")&#10;.then( response =&gt; response.json() )&#10;.then( data =&gt; {&#10; map.loadImage("https://a.tiles.mapbox.com/v4/marker/pin-m+7e7e7e.png?access_token=" + mapboxgl.accessToken, function(error, image) {&#10; if (error) throw error;&#10; map.addImage("custom-marker", image);&#10; &#10; map.addLayer({&#10; id: "markers",&#10; type: "symbol",&#10; &#10; source: {&#10; type: "geojson",&#10; data: data&#10; },&#10; "minzoom": 0.5,&#10; "maxzoom": 15,&#10; layout: {&#10; "icon-image": "custom-marker",&#10; "icon-allow-overlap": true&#10; }&#10; });&#10; });&#10;});&#10;&#10;map.on('click', function(e) {&#10; var features = map.queryRenderedFeatures(e.point, {&#10; layers: ['markers'] &#10; });&#10;&#10; if (!features.length) {&#10; return;&#10; }&#10;&#10; var feature = features[0];&#10;&#10; var popup = new mapboxgl.Popup({ offset: [0, -15] })&#10; .setLngLat(feature.geometry.coordinates)&#10; .setHTML('&lt;h4&gt;' + feature.properties.title + '&lt;/h4&gt;&lt;i&gt;' + feature.properties.date + '&lt;/i&gt;')&#10; .addTo(map);&#10;});&#10;&#10;map.addControl(new mapboxgl.FullscreenControl());&#10;&lt;/script&gt;&#10;&#10;&lt;h2 id="how-to"&gt;How-to&lt;/h2&gt;&#10;&lt;p&gt;Markers data is stored in &lt;a href="https://docs.mapbox.com/help/glossary/geojson/" target="_blank" rel="noreferrer"&gt;GeoJSON&lt;/a&gt; that you can generate using one of online services: &lt;a href="https://geojson.io/" target="_blank" rel="noreferrer"&gt;geojson.io&lt;/a&gt;, &lt;a href="https://geojson.net/" target="_blank" rel="noreferrer"&gt;geojson.net&lt;/a&gt;.&#10;All you have to do is put the marker on the map and click it to add more parameters.&lt;/p&gt;</description></item></channel></rss>