<?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: Nicholas</title>
    <description>The latest articles on DEV Community by Nicholas (@eren_poger).</description>
    <link>https://dev.to/eren_poger</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%2F3993828%2Fc19a7c67-2e75-4dc0-85ea-b43cde21a54e.jpg</url>
      <title>DEV Community: Nicholas</title>
      <link>https://dev.to/eren_poger</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/eren_poger"/>
    <language>en</language>
    <item>
      <title>Wow, this week was really intense!</title>
      <dc:creator>Nicholas</dc:creator>
      <pubDate>Thu, 01 Oct 2026 15:53:42 +0000</pubDate>
      <link>https://dev.to/eren_poger/wow-this-week-was-really-intense-303o</link>
      <guid>https://dev.to/eren_poger/wow-this-week-was-really-intense-303o</guid>
      <description>&lt;p&gt;Hey guys ;)&lt;/p&gt;

&lt;p&gt;You know, sometimes I feel like I don’t know what to write, because it’s post time, and sometimes there are so many interesting things that I don’t know how to make it short (I’m too lazy to write all the details). Okay, so let’s move step by step.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resume
&lt;/h2&gt;

&lt;p&gt;Okay, I think it’s better to start with something easy. So, yep I wrote a resume for myself. And it was really hard, but only in my head. I always thought that if you didn’t work, you couldn’t write a good resume. Maybe it’s particularly true, I don’t know, but at least it's better if you will give it a shot. &lt;strong&gt;Maybe it’s not perfect, but it helps you realize and summarize all the way that you came as a developer.&lt;/strong&gt;&lt;br&gt;
So what have I written here?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A bit about me. I wrote that I’m a CS student, wrote about my experience and why am I looking for a job.&lt;/li&gt;
&lt;li&gt;Skills. It’s the easiest part, just write about languages, tools and other stuff that you have used.&lt;/li&gt;
&lt;li&gt;Projects. I think this point is very important, because it shows that you really have some experience, even if you didn’t work before.&lt;/li&gt;
&lt;li&gt;Education, I think it’s just a formal thing.&lt;/li&gt;
&lt;li&gt;The next one is supposed to be certifications, but I don’t have one yet, so I just wrote about my learning and development.&lt;/li&gt;
&lt;li&gt;And some additional information, about experience and maybe language mastery.
And that is all. Simple resume, maybe no one will like it, &lt;strong&gt;I don’t know, but it’s better to do something, than not to do it and then just regret it.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  New logo
&lt;/h2&gt;

&lt;p&gt;Here everything is easy. My friend’s logo was more cool and simpler, so I’ll work with it. Now about the first idea. So originally I thought about symbolism. Aster means Star from Latin. So, when I was just lying in the bed and was trying to sleep I saw a picture, a falling star. I know it's kinda strange, but then I understand that it’s pretty cool, like a star falling from the sky, some little star in the background and the main Star is broken, to show letter A. And even star should fall from left side to right, because Aster because of doing and creating Right things. Wow, actually it is more bizarre than I thought.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdl1op3lmxddtm49zzbce.jpg" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdl1op3lmxddtm49zzbce.jpg" alt="Aster logo idea" width="744" height="1052"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yep and here is how I imagined it. &lt;/p&gt;
&lt;h2&gt;
  
  
  Presentation for Aster
&lt;/h2&gt;

&lt;p&gt;Okay here I’ll be really short, it’s just a presentation for investors. My project will be in the Sikorsky Challenge. As far as I know it’s just a competition of startapps. In the presentation I have to create 10 slides. About main competitors, business model, main problems and goals of the project. So in short it’s just marketing stuff. &lt;/p&gt;
&lt;h2&gt;
  
  
  Aster Finances
&lt;/h2&gt;

&lt;p&gt;And finally Aster. So I worked this week with an interface, and as a result I created a simple interface even with spend and income categories. How did I add categories? Just a big json file (approximately 800 rows).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    “expenses” : [
        {
            “id”: “”,
            “name”: “”,
            “img”: “”,
            “subcategories”: [
                        {
                            “id”: ””,
                            “name”: ””,
                            “img”: ””,
}
]
}
],
“income” : []
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yep, the next huge problem is images for all subcategories and categories. 15 expenses categories and 9 income categories, and many many subcategories. It will be really fun. But after that I finally could start writing new db functions.&lt;/p&gt;

&lt;p&gt;Here is how it looks like now&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdxp5uz527wj8ig2m61il.jpg" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdxp5uz527wj8ig2m61il.jpg" alt="Expenses categories" width="800" height="678"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9a7srujv3ko83te5mvci.jpg" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9a7srujv3ko83te5mvci.jpg" alt="Income categories" width="800" height="678"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, that’s all, see you next time ;)&lt;/p&gt;

</description>
      <category>python</category>
      <category>devlive</category>
      <category>programming</category>
    </item>
    <item>
      <title>Guys I need your feedback for logo</title>
      <dc:creator>Nicholas</dc:creator>
      <pubDate>Tue, 29 Sep 2026 11:33:15 +0000</pubDate>
      <link>https://dev.to/eren_poger/guys-i-need-your-feedback-for-logo-2je6</link>
      <guid>https://dev.to/eren_poger/guys-i-need-your-feedback-for-logo-2je6</guid>
      <description>&lt;p&gt;Hey guys ;)&lt;br&gt;
This post is a bit unusual, but I really need your help and opinion. So right now I’m working on a new logo for Aster. And I really need to know is it good? And if it isn’t, then what’s wrong with it? I'll be glad to hear from all of you, thanks.&lt;br&gt;
Here it is&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo28il51h0e1q7xh0p1eh.jpg" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo28il51h0e1q7xh0p1eh.jpg" alt="Aster new logo" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More about idea of logo and other I'll tell in next post. So, yep bye bye and thanks for all of you.&lt;br&gt;
Oops, here is second version of logo. So, which is better?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc2jlhjusyrx0jjk4owl8.jpg" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc2jlhjusyrx0jjk4owl8.jpg" alt=" " width="800" height="800"&gt;&lt;/a&gt; &lt;/p&gt;

</description>
      <category>showdev</category>
      <category>design</category>
      <category>ui</category>
    </item>
    <item>
      <title>Aster and finances</title>
      <dc:creator>Nicholas</dc:creator>
      <pubDate>Thu, 24 Sep 2026 16:22:15 +0000</pubDate>
      <link>https://dev.to/eren_poger/aster-and-finances-102a</link>
      <guid>https://dev.to/eren_poger/aster-and-finances-102a</guid>
      <description>&lt;p&gt;Hey guys ;)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy6dnzdh0uicotz2oexho.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy6dnzdh0uicotz2oexho.gif" alt="Hello gif" width="498" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I don’t know what to say. Because this week was kinda lazy. I mean I spent a few hours actually writing a code. But at least I wrote something. So, it was scraper, just to get a table from Wikipedia with all currencies in the world. After that I just wrote some static Streamlit interface just to try it. Interesting fact, Streamlit allows you to use HTML or markdown with method markdown(). And that’s all for this week.&lt;/p&gt;

&lt;p&gt;Interestingly enough, I installed sway to my EndeavourOS. I got scared because after powering off by button Linux couldn’t mount the Windows disc that I use to save all code and games. But after using commands I fixed it, and then successfully set up sway. If someone need it here is command for fixing disc problem:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo ntfsfix -d /dev/sda2
sudo mount -t ntfs3 -o uid=1000,gid=1000,rw,user,exec,umask=000,force /dev/sda2 /mnt/win_d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fskj92y04w2v9d4kvnz70.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fskj92y04w2v9d4kvnz70.gif" alt="Fixing gif" width="498" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yep and that’s all. So next step I need to create some spend and income adding interface and then add database functions. Oh yeah, and now I’m also writing posts on CoderLegion. So yep, for now it’s all, see you next time.&lt;/p&gt;

</description>
      <category>python</category>
      <category>linux</category>
      <category>programming</category>
    </item>
    <item>
      <title>I think it’s time for Aster’s come back. Or just what to do when you finished your project.</title>
      <dc:creator>Nicholas</dc:creator>
      <pubDate>Thu, 17 Sep 2026 15:44:26 +0000</pubDate>
      <link>https://dev.to/eren_poger/i-think-its-time-for-asters-come-back-or-just-what-to-do-when-you-finished-your-project-3an5</link>
      <guid>https://dev.to/eren_poger/i-think-its-time-for-asters-come-back-or-just-what-to-do-when-you-finished-your-project-3an5</guid>
      <description>&lt;p&gt;Hey guys ;)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy8dtflazo3t4tiv4mkzv.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy8dtflazo3t4tiv4mkzv.gif" alt="Hello gif" width="360" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So as the title said I’ve finished my Music Classification project. You could check it here &lt;a href="https://github.com/kolyapisarenko/Music-Genres-Classification" rel="noopener noreferrer"&gt;Music Classification Project&lt;/a&gt;.&lt;br&gt;
Sorry that I didn’t deploy this app. I hope if someone will be interested in it, then this person will just copy my repo.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can I tell you?
&lt;/h2&gt;

&lt;p&gt;Actually I don’t know, this project was pretty easy, because only librosa was new for me. All the other libraries I’ve used before. Maybe I just should say the main points of how to transform data into models. I guess that will be good.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdwlti5y6y7pm26g91dc9.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdwlti5y6y7pm26g91dc9.gif" alt="Plan gif" width="498" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  First step
&lt;/h2&gt;

&lt;p&gt;Maybe it will be unexpected, but you should choose a topic in which you’re interested. I think it’s important for every project you’re working on. &lt;strong&gt;If you don’t have fun with it, then why are you doing it?&lt;/strong&gt;&lt;br&gt;
For example all my projects built on my interests and hobbies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Second step
&lt;/h2&gt;

&lt;p&gt;Now, you need data. It’s good if you will find an amazing dataset for your topic, or you just could scrape all data manually. The more proper data you have, the more accurate your model will be. I mean if we only have 10 students for example and half of them are good students and the other half are bad, then how to classify an average student?&lt;/p&gt;

&lt;h2&gt;
  
  
  Third step
&lt;/h2&gt;

&lt;p&gt;Here you need to work with data I guess. Clean it, fill None values, normalize data and split data into training and test datasets. That’s easy, maybe normalization is a bit difficult, because you should choose for example between StandardScaler and MinMaxScaler. &lt;strong&gt;Also for some models you need to encode target&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final step
&lt;/h2&gt;

&lt;p&gt;Choose the right model and make it accurate. Yep there are Regression models and Classification models, and there are Linear models, ensemble models and so on. How to choose right? You need to read a bit of theory.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwq3i3cdm5tvwdysc4ck8.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwq3i3cdm5tvwdysc4ck8.gif" alt="Difficult choise" width="480" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s next?
&lt;/h2&gt;

&lt;p&gt;Again the title said everything already. I’m going to come back to my Aster - personal assistant project. Actually I had 3 options - Chess Project, Aster and brand new AI for Cuphead.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F93p4jgxip38bpxlwlsef.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F93p4jgxip38bpxlwlsef.gif" alt="Cuphead gif" width="104" height="123"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But I think I need to work with Aster, at least upgrade it, and it would be great to make Aster “alive”. So, for the next few weeks I’ll be writing about Aster. That’s all for today, see you guys later 😘&lt;/p&gt;

</description>
      <category>python</category>
      <category>machinelearning</category>
      <category>github</category>
    </item>
    <item>
      <title>Which classification have I used? As I know it should be KNN, but stuff wasn’t so easy.</title>
      <dc:creator>Nicholas</dc:creator>
      <pubDate>Thu, 10 Sep 2026 17:01:15 +0000</pubDate>
      <link>https://dev.to/eren_poger/which-classification-have-i-used-as-i-know-it-should-be-knn-but-stuff-wasnt-so-easy-4hd2</link>
      <guid>https://dev.to/eren_poger/which-classification-have-i-used-as-i-know-it-should-be-knn-but-stuff-wasnt-so-easy-4hd2</guid>
      <description>&lt;p&gt;Hey guys ;)&lt;/p&gt;

&lt;p&gt;This time I also don’t have much to say. But let’s try to explore some interesting things that happened this week.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff53hmygttskq2mlizxzx.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff53hmygttskq2mlizxzx.gif" alt="Hello gif" width="640" height="332"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Back to Uni
&lt;/h2&gt;

&lt;p&gt;So, the most important reason why I have less time to work is University. But I must confess that I heard something that gave me more power to continue my journey. So, this week I worked on Music Classification only yesterday. On Monday and Tuesday I was just bored or something like that and didn't write any code. Then one lecture in uni gave me motivation and understanding that there are still so many things in the world that I don’t know yet. Maybe it’s the reason why I’m moving forward.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe7nmp9agqyi0ls1n5ah3.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe7nmp9agqyi0ls1n5ah3.gif" alt="Deep thoughts" width="374" height="374"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Music Classifier
&lt;/h2&gt;

&lt;p&gt;Now I could say that the project is almost done. Yep it’s kinda strange, but learning models is the easiest part. So first I trained the KNN model, when I got 68% test accuracy I decided to change model. The first option was Random Forest, it gave me 78% accuracy. +10%, pretty impressive, but I still wanted more. So then I chose the XGBoost model. And finally I got 85% accuracy. Yep maybe it’s not perfect, maybe it would be great to gain 90% accuracy, but for now I think the model is pretty accurate. Here I’ll add some images (Confusion matrix and Top-15 important features).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5y3am16lrce2qn5o4ufh.png" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5y3am16lrce2qn5o4ufh.png" alt="Confusion matrix" width="800" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmgl3t8go7g078olwzhld.png" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmgl3t8go7g078olwzhld.png" alt="Feature importance" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So what do I need to do? Today I wanna finish the main part of the project. Write predict.py which will load trained models, extract all features, normalize features, and predict genres. And next week I need to write README and add some conclusions into notebook. Maybe compare KNN, Random Forest and XGBoost. I don't know yet what I’ll write there.&lt;/p&gt;




&lt;h2&gt;
  
  
  May I know your favorite songs?
&lt;/h2&gt;

&lt;p&gt;I just wanna test my classifier later, so it’d be great to check it on your favorite songs. Yep, there will be one problem, my classifier only knows 10 genres, all of them you could see on the Confusion Matrix plot.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flzjp61yk52om6gj9r32r.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flzjp61yk52om6gj9r32r.gif" alt="Curious me" width="436" height="498"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;So it’s all for today, see you later guys 😘&lt;/p&gt;

</description>
      <category>python</category>
      <category>machinelearning</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Summer is over. But I continue my funny journey</title>
      <dc:creator>Nicholas</dc:creator>
      <pubDate>Thu, 03 Sep 2026 17:02:00 +0000</pubDate>
      <link>https://dev.to/eren_poger/summer-is-over-but-i-continue-my-funny-journey-8n</link>
      <guid>https://dev.to/eren_poger/summer-is-over-but-i-continue-my-funny-journey-8n</guid>
      <description>&lt;p&gt;Hey guys ;)&lt;br&gt;
Summer ended, but September's days are still so hot. Hope you’re doing well.&lt;/p&gt;

&lt;p&gt;So I actually don’t remember if I told you about my new project in my last post. Maybe I only said that it will be a KNN based project. It was hard to choose an interesting project to build. I mean I don’t wanna do something big, because I still should finish the Chess Project. So after a few hours of struggling and conversations with ChatGPT I decided that I should try to build Music Genre Classification and for interface use Streamlit.&lt;/p&gt;

&lt;p&gt;So actually I don’t know what to say, because this project is much easier than the previous. I’ll use GTZAN Dataset for training KNN, yesterday I built a feature extractor from an audio file. Today I added the Streamlit interface. Next week I’ll train KNN, save it using Joblib and then launch a full pipeline. So as I said, the project is pretty easy and I don’t have to say much about it. &lt;/p&gt;

&lt;p&gt;But I’d like to hear your favorite song and when the app is done, I’ll check its genre.&lt;/p&gt;

&lt;p&gt;So see you next time, hope with more interesting info 😘&lt;/p&gt;

</description>
      <category>python</category>
      <category>knn</category>
    </item>
    <item>
      <title>Unexpected, but Secret Santa is cooked. Let's explore bit more about role of Django here.</title>
      <dc:creator>Nicholas</dc:creator>
      <pubDate>Thu, 27 Aug 2026 10:42:15 +0000</pubDate>
      <link>https://dev.to/eren_poger/unexpected-but-secret-santa-is-cooked-lets-explore-bit-more-about-role-of-django-here-2bn3</link>
      <guid>https://dev.to/eren_poger/unexpected-but-secret-santa-is-cooked-lets-explore-bit-more-about-role-of-django-here-2bn3</guid>
      <description>&lt;p&gt;Hey guys ;)&lt;br&gt;
Hope you’re doing well, summer is almost over and some of us will go back to University (for example me) or maybe even some of us will even go to school. My summer was pretty good, actually I’ve finished 2 projects and 1 is in the final stage (yep I still remember about the Chess Project 😂). Okay, let’s move to the main topic of this post.&lt;/p&gt;


&lt;h2&gt;
  
  
  Secret Santa done.
&lt;/h2&gt;

&lt;p&gt;Actually almost done, I mean all logic and design were cooked, there is still one task - README.md. I’m going to do it after finishing this post. Secret Santa now available for everyone, you could access it via this link &lt;a href="https://secret-santa-baf4.onrender.com/" rel="noopener noreferrer"&gt;https://secret-santa-baf4.onrender.com/&lt;/a&gt;&lt;br&gt;
&lt;em&gt;But you need to wait about 50 secs because I deployed it with free Render trial (at least deployed, not localhost XD )&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  What can my Secret Santa do ?
&lt;/h2&gt;

&lt;p&gt;Okay, Santa working with a simple data pipeline, first you enter all required data and then just send an email. Now more detailed.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Participants input with 3 modes:

&lt;ul&gt;
&lt;li&gt;manual input mode;&lt;/li&gt;
&lt;li&gt;file input mode;&lt;/li&gt;
&lt;li&gt;Faker script generator mode;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Party general info (name, time, date, location, host email)&lt;/li&gt;
&lt;li&gt;Results and sending email&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What more interesting &lt;strong&gt;All this you could do for free&lt;/strong&gt;, even sending the emails.&lt;/p&gt;


&lt;h2&gt;
  
  
  More technical info about Django
&lt;/h2&gt;

&lt;p&gt;I couldn’t say that after this little project I became a super Django user, I’m a beginner (I even didn’t finish my tutorial). But I’ll tell you some important stuff that I’ve learned.&lt;br&gt;
In a previous post I described basics like views and urls in general. Today I wanna talk about how Django sees data.&lt;/p&gt;

&lt;p&gt;So basically when we talk about big websites it has a database. Django allows work with different databases and changes nothing in logic. So for working with data usually you need 2 things - &lt;strong&gt;model and form&lt;/strong&gt;. I think all we know is what it is. &lt;strong&gt;The model describes something and how it should look, form could be built on this model and then you just create form inside of view and transfer it to the frontend&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But what to do, if I don’t need to save my data to the database. We use for it sessions(cookies). &lt;strong&gt;My pipeline is simple, I collect data from participants form, save it to request.sessions["participants"], do the same for party info and in result page use pop method, which clear all sessions data after using it&lt;/strong&gt;. So what I’ve done in Secret Santa.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Created forms with specific fields (like CharField, IntegerField, FileField and EmailField). All fields are available in Django.Forms.&lt;/li&gt;
&lt;li&gt;Import created forms in views.py. We need to create 2 forms. One for the POST method and the other just an empty form. And obviously we need to add our form into the context dictionary.&lt;/li&gt;
&lt;li&gt;And finally we could access forms in HTML.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You could create Forms based on Models (for this in Form Class after all fields add Meta Class) or just ordinary Form. The difference in Model form will be very strict, if you change Form and forgot to change Model then you’ll get some troubles.&lt;/p&gt;


&lt;h2&gt;
  
  
  How to send an email ?
&lt;/h2&gt;

&lt;p&gt;Actually I thought that it would be the hardest part of the project. But I was wrong. First of all the situation is similar to databases. You write logic once, then just change settings in settings.py. So what do we need to send an email? &lt;/p&gt;

&lt;p&gt;We could use many different APIs, like Resend or Brevo. But the problem is that you need an email domain for this. I don’t have one. But you could still do something.&lt;br&gt;
&lt;strong&gt;And it’s Google&lt;/strong&gt;. All you need is to add 2 step verification for your account and create an App and get a password for it. Save your email (&lt;em&gt;account where you created the App&lt;/em&gt;) and password (usually 16 symbols) to the .env file, and that’s all. Now you could use @gmail.com domain for sending email for everyone you want. So it’s looks like that&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;from: &lt;a href="mailto:your_email@gmail.com"&gt;your_email@gmail.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;to: &lt;a href="mailto:secret_santa_participant@gmail.com"&gt;secret_santa_participant@gmail.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;reply_to: &lt;a href="mailto:party_host@gmail.com"&gt;party_host@gmail.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;It was really easier than I thought. I was planning to finish Secret Santa and some KNN projects by the summer end. But the KNN project I’ll start next week, I hope it will be interesting, and the more important it will be enough for getting my first job, yep I wanna try my luck on freelance.&lt;/p&gt;

&lt;p&gt;So, see ya in September, hope you have a nice summer.&lt;br&gt;
Oh yeah, I’ll add a link to my X post with 3 videos, where I tried to show Secret Santa, but there were 2 fails 😂.&lt;br&gt;
&lt;iframe class="tweet-embed" id="tweet-2092911178183766208-374" src="https://platform.twitter.com/embed/Tweet.html?id=2092911178183766208"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-2092911178183766208-374');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2092911178183766208&amp;amp;theme=dark"
  }



&lt;/p&gt;

</description>
      <category>python</category>
      <category>django</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Is it possible to code while learning something new? Of course, it’s more fun.</title>
      <dc:creator>Nicholas</dc:creator>
      <pubDate>Wed, 19 Aug 2026 16:08:37 +0000</pubDate>
      <link>https://dev.to/eren_poger/is-it-possible-to-code-while-learning-something-new-of-course-its-more-fun-1lhd</link>
      <guid>https://dev.to/eren_poger/is-it-possible-to-code-while-learning-something-new-of-course-its-more-fun-1lhd</guid>
      <description>&lt;p&gt;Hey guys;)&lt;br&gt;
Long time no see.&lt;/p&gt;

&lt;h2&gt;
  
  
  General
&lt;/h2&gt;

&lt;p&gt;Actually I wanna change my blog format. Now I’m planning to do a &lt;strong&gt;few posts on X, and then 1-2 times per week do a big post here&lt;/strong&gt;. And I wanna try not only to show what I’ve done, but also how to do it. Some kind of teaching I don’t know yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  New project. What is it about?
&lt;/h2&gt;

&lt;p&gt;Okay, so since my last post I’ve finished Yakaboo Sales Analysis. You could check it here - &lt;a href="https://github.com/kolyapisarenko/Yakaboo-Books-Sales-Analyser" rel="noopener noreferrer"&gt;Yakaboo Project&lt;/a&gt;.&lt;br&gt;
The new project is basic - it’s Secret Santa. But if I wrote just an algorithm it wouldn't be so interesting. So I decided to add Django here and make some websites. But here was a problem, I’ve never worked with Django before. But thanks to &lt;strong&gt;Corey Schafer&lt;/strong&gt; I learnt some basics and even built something. &lt;em&gt;I’ll show the video in the end&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  A bit about Django
&lt;/h2&gt;

&lt;p&gt;So it’s a great framework which allows us to build websites using Python. In the beginning I thought that I’ll explain almost everything that I’ve learnt, but I don’t think it’s necessary. So in short, to begin writing you should do&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a project directory and venv (of course you could do it without venv).&lt;/li&gt;
&lt;li&gt;Install Django.&lt;/li&gt;
&lt;li&gt;Create the project using django-admin startproject name_of_project.&lt;/li&gt;
&lt;li&gt;Create an app using django-admin startapp name_of_app&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After that we could do what we wanted.&lt;/p&gt;

&lt;h2&gt;
  
  
  Another amazing library
&lt;/h2&gt;

&lt;p&gt;One of my favorite libraries is Faker, which allows generating data. I used it for creating participants (their full name, email and wishlist) for a party. That was the easiest part, after that I started exploring Django. So, I’ll skip all the theories and say only the most important.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To write html and css inside the app directory you need to create templates (for html) and static (for css and js, about js I’m not sure), and inside these directories create a folder with the same name as app name.&lt;/li&gt;
&lt;li&gt;Inside the views.py file you create a function which returns html response and gives arguments which we could use inside html.&lt;/li&gt;
&lt;li&gt;After creating views functions you could use it in the url of the app, add a pattern to the project and don’t forget to add the app into project settings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Okay now it’s time to watch some results for now.&lt;br&gt;
&lt;a href="https://x.com/NicholaDevua/status/2090096246950187072?s=20" rel="noopener noreferrer"&gt;Link to video&lt;/a&gt;&lt;br&gt;
See you in the next post. I hope it was interesting to read.&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>django</category>
    </item>
    <item>
      <title>A long break from post, but I’ve cocked some stuff like Walter White did.</title>
      <dc:creator>Nicholas</dc:creator>
      <pubDate>Wed, 12 Aug 2026 19:11:00 +0000</pubDate>
      <link>https://dev.to/eren_poger/a-long-break-from-post-but-ive-cocked-some-stuff-like-walter-white-did-41ad</link>
      <guid>https://dev.to/eren_poger/a-long-break-from-post-but-ive-cocked-some-stuff-like-walter-white-did-41ad</guid>
      <description>&lt;p&gt;Hey guys ;)&lt;br&gt;
It’s been a while since my last post. Actually I was a bit busy and forgot to write about progress. And this time I really have what to say. So what happened in short?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scraper ended data extending.&lt;/li&gt;
&lt;li&gt;Pageviews script added pageview info for all 6k books.&lt;/li&gt;
&lt;li&gt;My first analysis notebook is done.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;So, here is a fragment of my extended data before pageviews.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3702itqg4b33ctb9t84k.png" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3702itqg4b33ctb9t84k.png" alt="Extended data" width="799" height="437"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;And here is a fragment of dataset &lt;strong&gt;after pageviews&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbvc76cdy2blzdtqtmci1.png" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbvc76cdy2blzdtqtmci1.png" alt="Pageviews extending" width="800" height="335"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Is pageview extending false?
&lt;/h2&gt;

&lt;p&gt;As I said in a previous post, sometimes Wikipedia pageviews give some nonsense data, and it’s true. Barely it gives an exact match, more often it gives the author page, and most of the time it gives 0 or some nonsense. &lt;br&gt;
When I’ll start my second analysis notebook, &lt;strong&gt;I’ll do something about that&lt;/strong&gt;, &lt;em&gt;maybe erase some data, for example if the saved Wiki title is in author or in title, I don’t know yet&lt;/em&gt;.&lt;br&gt;
Here is my pageview script fragment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fktbzfoudyyniizhgz3xa.png" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fktbzfoudyyniizhgz3xa.png" alt="Pageviews code fragment" width="799" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fww1byqjeq8jbkkwx4g97.png" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fww1byqjeq8jbkkwx4g97.png" alt="Pageviews code fragment" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  First conclusions
&lt;/h2&gt;

&lt;p&gt;When I began this project I asked a question, do people read less nowadays? Actually I don’t know. According to my data I couldn’t say that people read less or people read more nowadays. All I could say it’s that people still read some books indeed. &lt;br&gt;
&lt;strong&gt;Again all ,my conclusion here will be true according to my scrapped data, custom standard of books popularity and validity for Ukraine reading culture.&lt;/strong&gt; &lt;br&gt;
So, people prefer physical books more, the most popular author is Hiro Mashima, because of the number of his manga volumes. The most popular publishers are those who produce manga and comics, again because of the number of volumes and parts. The amount of books released in the last 10 years is bigger than the amount of books released 10-20+ years ago. And the most popular categories are manga, comics, autobiography and memoirs, self-improvement and children literature. Charts from notebook I’ll add too.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F94b5wlqp6dwbzuxt6trr.png" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F94b5wlqp6dwbzuxt6trr.png" alt="Format chart" width="483" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvfkb64qy1ewa3wb90s5g.png" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvfkb64qy1ewa3wb90s5g.png" alt="Authors chart" width="800" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fevdk3ea52hznllnekr4f.png" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fevdk3ea52hznllnekr4f.png" alt="Publishers chart" width="800" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3n4j73ioywfyc8cdigaj.png" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3n4j73ioywfyc8cdigaj.png" alt="Release year chart" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fppbb2iykxu0ab6wnq0ri.png" alt="Categories chart" width="800" height="709"&gt;
&lt;/h2&gt;

&lt;p&gt;What do I mean by using the words popular or famous? So in my dataset there are 6k books. And for each analysis I’ve used count. So the most popular author is who has the most amount of books. And I should remind you, that it isn’t some 6k books, it's the best books according to my custom standard.&lt;/p&gt;




&lt;h2&gt;
  
  
  Next step
&lt;/h2&gt;

&lt;p&gt;I think the next step is going to be the last. I don’t know, maybe I’ll do all the code tomorrow, or next week. So what do I need to do?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Analyse books, their popularity according to standard and to pageviews.&lt;/li&gt;
&lt;li&gt;Write something between code.&lt;/li&gt;
&lt;li&gt;Write final conclusion and README.md (with some screenshots to show what this project is about very quickly, without opening notebooks).&lt;/li&gt;
&lt;li&gt;Push and commit everything.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>python</category>
      <category>datascience</category>
      <category>books</category>
      <category>webscraping</category>
    </item>
    <item>
      <title>What do marketing tags, broken author arrays, and an unexpected email from Derek Sivers have in common?</title>
      <dc:creator>Nicholas</dc:creator>
      <pubDate>Sat, 01 Aug 2026 13:38:41 +0000</pubDate>
      <link>https://dev.to/eren_poger/what-do-marketing-tags-broken-author-arrays-and-an-unexpected-email-from-derek-sivers-have-in-165c</link>
      <guid>https://dev.to/eren_poger/what-do-marketing-tags-broken-author-arrays-and-an-unexpected-email-from-derek-sivers-have-in-165c</guid>
      <description>&lt;p&gt;Hey guys 👋&lt;/p&gt;

&lt;p&gt;I don't have a massive technical feature to showcase today, but I do have a solid batch of data pipeline updates, a bug fix story, and a pretty inspiring personal highlight.&lt;/p&gt;

&lt;p&gt;While refining the secondary parser for the Ukrainian book market, I ran into classic data pollution issues, stripped out marketing noise, and got a reminder of why building side projects should be fun.&lt;/p&gt;

&lt;p&gt;Here is the weekly progress report!&lt;/p&gt;

&lt;h2&gt;
  
  
  Fixing the "Comma-in-Category" Bug
&lt;/h2&gt;

&lt;p&gt;After rewriting the extended scraper, I noticed a subtle data formatting bug during early inspection.&lt;/p&gt;

&lt;p&gt;Certain books on retail platforms list multiple authors. My initial DOM selection logic grabbed only the primary author string. However, because of how the HTML elements were structured, the trailing author separators (commas and secondary tags) bled directly into the Category column!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Corrupted: Category = ", Fiction, Bestsellers"
Cleaned:   Category = "Fiction"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To fix this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Updated the scraper logic to properly parse multi-author arrays.&lt;/li&gt;
&lt;li&gt;Manually sanitized and patched 20 affected JSON objects in the clean dataset to keep data integrity intact.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Stripping "Garbage" Categories &amp;amp; Preprocessing
&lt;/h2&gt;

&lt;p&gt;I’m currently finishing up the final data preparation script, specifically handling empty values (&lt;code&gt;NaN&lt;/code&gt;s) and filtering non-standard categories.&lt;/p&gt;

&lt;p&gt;Originally, I expected platform categories to function purely as literary sub-genres (e.g., Sci-Fi, Historical Fiction, Biography). However, e-commerce platforms heavily mix genre metadata with promotional marketing tags:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;"Reader's Choice"&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;"Top Bestsellers 2023"&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;"Must-Read Recommendations"&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These tags provide zero value when trying to analyze actual genre trends over time. My preprocessing script is currently dropping these noise categories along with empty rows to leave a pure, genre-focused analytical dataset.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzdt3sib88yyo4jrzkpcm.png" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzdt3sib88yyo4jrzkpcm.png" alt="Code for cleaning categories" width="800" height="659"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyt74sf5m2ngv1sv4zdhf.png" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyt74sf5m2ngv1sv4zdhf.png" alt="Jsonl fragment" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  An Unexpected Reply from Derek Sivers
&lt;/h2&gt;

&lt;p&gt;On a non-technical note, something really cool happened this week.&lt;/p&gt;

&lt;p&gt;I recently finished reading &lt;em&gt;Anything You Want&lt;/em&gt; by Derek Sivers-a short, brilliant book about entrepreneurship, independence, and doing things your own way. At the end of the book, Derek invites readers to send him an email, introduce themselves, and share what they are working on.&lt;/p&gt;

&lt;p&gt;I decided to write to him, not really expecting a reply. To my surprise, he actually responded! He shared some thoughtful feedback and even recommended a few more great books to check out.&lt;/p&gt;

&lt;p&gt;It was a great reminder that building side projects-whether it's a Python chess engine or a market scraper-should come from a place of curiosity and freedom.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuvv0xi3rsbguo3aj68pn.png" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuvv0xi3rsbguo3aj68pn.png" alt="Email from Derek" width="800" height="153"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Finishing the final &lt;code&gt;NaN&lt;/code&gt; drop and category mapping pass in Pandas.&lt;/li&gt;
&lt;li&gt;Running exploratory data analysis (EDA) to generate our very first trend charts.&lt;/li&gt;
&lt;li&gt;Starting one of Derek's recommended books during my 3-day rest period!&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Have you ever reached out directly to an author or creator who inspired you? How do you handle promotional marketing tags when cleaning e-commerce data? Let's chat in the comments below! 👇&lt;/p&gt;

</description>
      <category>python</category>
      <category>pandas</category>
      <category>datascience</category>
      <category>showdev</category>
    </item>
    <item>
      <title>No APIs?! Analysis is almost here, but I’ve mistaken again.</title>
      <dc:creator>Nicholas</dc:creator>
      <pubDate>Wed, 29 Jul 2026 14:56:14 +0000</pubDate>
      <link>https://dev.to/eren_poger/no-apis-analysis-is-almost-here-but-ive-mistaken-again-54k0</link>
      <guid>https://dev.to/eren_poger/no-apis-analysis-is-almost-here-but-ive-mistaken-again-54k0</guid>
      <description>&lt;p&gt;"Why hit API request limits for 111,000 books when a single log10 formula and direct web scraping can solve the problem?"&lt;/p&gt;

&lt;p&gt;Hey guys ;)&lt;/p&gt;

&lt;p&gt;Looks like my focus is completely locked on data analysis right now. I can’t help it-this project is just too fun.&lt;/p&gt;

&lt;p&gt;Over the past two or three posts, I kept promising that I would enrich my book dataset using the Google Books API and OpenLibrary. Well... forget about the APIs.&lt;/p&gt;

&lt;p&gt;After wrestling with rate limits, poor metadata quality, and HTML structures all week, I dropped the APIs entirely and built my own data enrichment pipeline. Here is how it happened, why I deleted 1,451 scraped books today, and what’s coming next.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Problem with Books APIs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I started planning the data enrichment phase for my 111,000 unique scraped books, I ran into two massive brick walls:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Google Books API Limits:&lt;/strong&gt; The free tier caps you at 1,000 requests per day. At that rate, enriching 111k books would take over three months (I know about payment account and increasing of limits).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenLibrary Limitations:&lt;/strong&gt; It handles Ukrainian literature poorly without exact ISBN matches. Title and Author search combinations gave way too many false positives.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I quickly realized I didn't actually need all 111,000 books. Thousands of them had zero reviews, no ratings, and no active search interest. Processing them was just adding noise.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Filtering the Catalog and Popularity Formula&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To isolate the most relevant titles, I designed a custom metric to score and rank the entire catalog:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;popularity_rating = log10(amount_of_reviews + 1) * rating&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Using the logarithmic scale prevents titles with hundreds of reviews from completely breaking the ranking curve while still giving heavy weight to actual reader engagement.&lt;/p&gt;

&lt;p&gt;This formula immediately isolated ~3,000 highly active titles. I expanded the threshold to capture the top 6,000 books for the final analytical sample.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parsing Metadata Directly&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To analyze publishing trends over time, I needed the exact publication year for a specific edition, not just the general first release year of a work.&lt;/p&gt;

&lt;p&gt;To get that accuracy from APIs, I would need to parse the book's individual URL anyway to extract its ISBN. That's when the realization hit me: If I'm already scraping the specific book pages for ISBNs, why not just scrape the missing metadata directly from Yakaboo?&lt;/p&gt;

&lt;p&gt;So from Monday until yesterday, I wrote a dedicated secondary parser to process my top 6,000 URL list, extract extended properties, and map them into structured category buckets.&lt;/p&gt;

&lt;p&gt;Here is my best books selection code&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqt7kctazp3xfxmvxkhsg.png" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqt7kctazp3xfxmvxkhsg.png" alt="Best books selection" width="799" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is scraper fragment&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe49xyn6za1cl0jhe92qw.png" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe49xyn6za1cl0jhe92qw.png" alt="Scraper fragment" width="799" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And how I deal with categories for final dataset preprocessing&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2bs5vhls7ny6gaaiwg7b.png" class="article-body-image-wrapper"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2bs5vhls7ny6gaaiwg7b.png" alt="Categories preprocessing" width="799" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The HTML Trap and deleting 1,451 Books&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It wouldn't be a real project without a good mistake.&lt;/p&gt;

&lt;p&gt;While running the extended parser, I noticed that Yakaboo's HTML structure reuses generic CSS classes across different metadata blocks while hiding or omitting unique element IDs. Because of a misplaced selector logic, my parser was extracting Author names and saving them into the Publisher field. 😅&lt;/p&gt;

&lt;p&gt;After 1,451 books were parsed, I caught the bug, wiped the corrupted JSON file, and fixed the DOM selector.&lt;/p&gt;

&lt;p&gt;Today, I’m re-running the script on the top 6,000 clean URLs. The most important lesson in Data Engineering: never give up, even when you have to wipe your output and start over!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summary &amp;amp; What's Next&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; All changes are finally committed and pushed! I'm much more cautious here than in my Chess project, pushing only when the pipeline logic is 100% verified.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Current Task:&lt;/strong&gt; Re-running the extended parser for the top 6k books without the Author/Publisher swap bug.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Next Goal:&lt;/strong&gt; Data cleaning, category normalization, and generating our first analytical charts to answer if people are reading fewer books over time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Have you ever built a custom metric to downsample a massive dataset? What’s your worst HTML scraping horror story? Let’s chat in the comments! 👇&lt;/p&gt;

&lt;p&gt;&lt;em&gt;#python #datascience #webscraping #pandas #showdev&lt;/em&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>datascience</category>
      <category>pandas</category>
      <category>webscraping</category>
    </item>
    <item>
      <title>Weekends with translator for book analysis</title>
      <dc:creator>Nicholas</dc:creator>
      <pubDate>Sat, 25 Jul 2026 11:29:37 +0000</pubDate>
      <link>https://dev.to/eren_poger/weekends-with-translator-for-book-analysis-21bm</link>
      <guid>https://dev.to/eren_poger/weekends-with-translator-for-book-analysis-21bm</guid>
      <description>&lt;p&gt;Hey guys ;)&lt;/p&gt;

&lt;p&gt;Today I’m going to tell you about some progress in books analysis and my plans for the weekend. Let’s start.&lt;/p&gt;

&lt;p&gt;So from my previous post, I’ve been working with the author translation problem. What is it? Okay, so for extending books data I should use some API, and for that I need an ISBN that will give a certain book with 99% accuracy, or use a Title + Author combination. When a book is from a Ukrainian publisher, it will find the book with 80-90% accuracy. But what happens if the book is from a foreign publisher? Well, in fact, the accuracy will definitely be less.&lt;/p&gt;

&lt;p&gt;Another problem was the amount of unique books that I parsed from 16 categories. That amount surprised even me: &lt;strong&gt;117,000 unique books&lt;/strong&gt; and &lt;strong&gt;63,000 unique foreign authors&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;So before I found out the exact amount of unique books, I wrote a script based on the &lt;code&gt;deep-translator&lt;/code&gt; library (Google Translator). My first few requests were done without a rate limit, so my IP got blocked. After that, I added &lt;code&gt;time.sleep(2)&lt;/code&gt;. Even after adding a dictionary for saving unique authors and reducing the number of requests, the execution time was too long - like 8 hours or more.&lt;/p&gt;

&lt;p&gt;After that, I found an interesting library called &lt;code&gt;argostranslate&lt;/code&gt;. The main difference is that it’s an &lt;strong&gt;offline library&lt;/strong&gt;, and it works entirely on laptop resources. The process of translating took only &lt;strong&gt;1h 30 min to 2 hours&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Though someone forgot about saving! For Parquet files, Python needs the &lt;code&gt;pyarrow&lt;/code&gt; library. So I installed &lt;code&gt;pyarrow&lt;/code&gt; and will start the translation process on Monday.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Okay, now about some plans. Of course, for book analysis, the next step after translation is working with an API. Now I’m thinking about a few variants:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Google Books API:&lt;/strong&gt; With an ordinary free account, I have only 1,000 requests per day. If I connect a payment account, I’ll get 50,000 requests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Library API:&lt;/strong&gt; Free, but this API doesn’t have much info about Ukrainian publishers.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So the best option could be Google Books API. But that’s for next week! &lt;/p&gt;

&lt;p&gt;Now it's the weekend, so I can rest, play games, and watch something interesting. Speaking of watching, first I’m going to watch some Django tutorials (because in the future I’ll definitely need it) and maybe something else.&lt;/p&gt;

&lt;p&gt;Have a great weekend!&lt;br&gt;
&lt;em&gt;#python, #dataanalysis, #learning, #buildinpublic&lt;/em&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>learning</category>
      <category>buildinpublic</category>
    </item>
  </channel>
</rss>
