<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sergejs L</title>
    <description>The latest articles on DEV Community by Sergejs L (@lushkovskis).</description>
    <link>https://dev.to/lushkovskis</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3593361%2Fe2f7a64f-277d-4ebd-9776-9827e13a84aa.png</url>
      <title>DEV Community: Sergejs L</title>
      <link>https://dev.to/lushkovskis</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lushkovskis"/>
    <language>en</language>
    <item>
      <title>Building a Weather-Aware Activity Tool with OpenWeather &amp; Mapbox</title>
      <dc:creator>Sergejs L</dc:creator>
      <pubDate>Sat, 22 Nov 2025 20:12:44 +0000</pubDate>
      <link>https://dev.to/lushkovskis/building-a-weather-aware-activity-tool-with-openweather-mapbox-1dbn</link>
      <guid>https://dev.to/lushkovskis/building-a-weather-aware-activity-tool-with-openweather-mapbox-1dbn</guid>
      <description>&lt;p&gt;&lt;a href="https://www.loom.com/share/7edf151365104b3e845a42a99db13f16" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwknwgahmcozk627eytko.gif" alt=" " width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.loom.com/share/7edf151365104b3e845a42a99db13f16" rel="noopener noreferrer"&gt;Loom&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;I recently put together a small project to solve a recurring problem in my daily routine: figuring out whether the weather is actually good enough for outdoor activities like walking or biking. I noticed that looking at the temperature alone wasn’t giving me the full picture, so I built something more visual and informative.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built It
&lt;/h2&gt;

&lt;p&gt;Weather affects outdoor plans in more ways than one—wind, precipitation, humidity, and even how the ground feels when you’re on wheels. I wanted a quick way to assess overall conditions without having to mentally piece together a dozen metrics from different apps.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Tool Does
&lt;/h2&gt;

&lt;p&gt;The heart of the project is a globe interface that displays weather data across different cities. Each location shows key details pulled from OpenWeather, but I also added a custom metric I call the “tire rating.”&lt;br&gt;
This rating gives a quick sense of whether it’s a good day for cycling or similar outdoor activities. It combines several weather factors into a simple, intuitive signal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech Behind It
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;OpenWeather API&lt;/strong&gt; → for real-time weather metrics&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mapbox&lt;/strong&gt; → for the interactive 3D globe&lt;/p&gt;

&lt;p&gt;Custom logic → for calculating the tire rating&lt;/p&gt;

&lt;p&gt;In the video, I walk through how to set everything up with your own API keys so you can experiment with it locally or build on top of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Out &amp;amp; Build On It
&lt;/h2&gt;

&lt;p&gt;The tool is still evolving, and there’s plenty of room for creative extensions—notifications, historical comparisons, activity presets, or even AI-powered suggestions.&lt;/p&gt;

&lt;p&gt;I’d love to hear your thoughts! If you try it out or have ideas for improvements, feel free to share. Your feedback can help shape the next version.&lt;/p&gt;

&lt;p&gt;Tool: &lt;a href="https://weathertier.lovable.app/" rel="noopener noreferrer"&gt;https://weathertier.lovable.app/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>api</category>
      <category>webdev</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Note-to-future-self: commands with long output breaking inside nested VPN</title>
      <dc:creator>Sergejs L</dc:creator>
      <pubDate>Sun, 02 Nov 2025 18:43:25 +0000</pubDate>
      <link>https://dev.to/lushkovskis/note-to-future-self-commands-with-long-output-breaking-inside-nested-vpn-14p6</link>
      <guid>https://dev.to/lushkovskis/note-to-future-self-commands-with-long-output-breaking-inside-nested-vpn-14p6</guid>
      <description>&lt;h2&gt;
  
  
  Context
&lt;/h2&gt;

&lt;p&gt;2 VPNs, ssh works, but vim/nano/large cat hangs the terminal. Same on scp with large files.&lt;br&gt;
Client-only access to VPN configs&lt;/p&gt;
&lt;h2&gt;
  
  
  Solution
&lt;/h2&gt;

&lt;p&gt;Add to .ovpn:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tun-mtu 1400
mssfix 1360
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add to ~/.ssh/config&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Host *
  ServerAliveInterval 10
  ServerAliveCountMax 5
  TCPKeepAlive yes
  Compression yes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>cli</category>
      <category>linux</category>
      <category>networking</category>
    </item>
    <item>
      <title>Note-to-future-self: k8s /metrics hanging</title>
      <dc:creator>Sergejs L</dc:creator>
      <pubDate>Sun, 02 Nov 2025 18:40:39 +0000</pubDate>
      <link>https://dev.to/lushkovskis/note-to-future-self-k8s-metrics-hanging-j53</link>
      <guid>https://dev.to/lushkovskis/note-to-future-self-k8s-metrics-hanging-j53</guid>
      <description>&lt;h2&gt;
  
  
  Context
&lt;/h2&gt;

&lt;p&gt;Clean k8s cluster, just after &lt;code&gt;init&lt;/code&gt; was made. &lt;br&gt;
All auth disabled in &lt;code&gt;config.yml&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;authentication:
  anonymous:
    enabled: true
  webhook:
    enabled: false
authorization:
  mode: AlwaysAllow
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -k https://127.0.0.1:10250/healthz responds with ok 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Problem
&lt;/h2&gt;

&lt;p&gt;These curls hanging:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -k https://127.0.0.1:10250/metrics 
curl -k https://127.0.0.1:10250/stats/summary 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Solution
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo tee /etc/systemd/system/kubelet.service.d/99-metricsfix.conf &amp;lt;&amp;lt;'EOF'
[Service]
Environment="KUBELET_EXTRA_ARGS=--enable-cadvisor-endpoints=false --feature-gates=PodAndContainerStatsFromCRI=true --volume-stats-agg-interval=0 --housekeeping-interval=10m --kubelet-cgroups=/system.slice/kubelet.service"
EOF
sudo systemctl daemon-reload
sudo systemctl restart kubelet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>linux</category>
      <category>devops</category>
      <category>kubernetes</category>
      <category>monitoring</category>
    </item>
  </channel>
</rss>
