<?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>Forem: Aleksei Borovikov</title>
    <description>The latest articles on Forem by Aleksei Borovikov (@aborov).</description>
    <link>https://forem.com/aborov</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%2F1305865%2Fd0023414-28bc-412d-970a-c47d77c14339.jpeg</url>
      <title>Forem: Aleksei Borovikov</title>
      <link>https://forem.com/aborov</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/aborov"/>
    <language>en</language>
    <item>
      <title>The Unstoppable Rise of AI: Key Takeaways from IBM’s AI Course</title>
      <dc:creator>Aleksei Borovikov</dc:creator>
      <pubDate>Fri, 07 Feb 2025 16:27:35 +0000</pubDate>
      <link>https://forem.com/aborov/the-unstoppable-rise-of-ai-key-takeaways-from-ibms-ai-course-2iel</link>
      <guid>https://forem.com/aborov/the-unstoppable-rise-of-ai-key-takeaways-from-ibms-ai-course-2iel</guid>
      <description>&lt;p&gt;I recently completed IBM’s Introduction to AI course, which reinforced a simple truth—AI is becoming a core part of how we work and live. While many are aware that AI powers chatbots, recommendations, and automation, what stood out to me was its shift toward more adaptive and multimodal systems that process different types of data together.&lt;/p&gt;

&lt;p&gt;Machine learning goes beyond training models; ensuring they perform reliably in real-world scenarios requires careful validation. The way data is split into training, validation, and test sets may seem straightforward, but it plays a crucial role in making AI effective. Generative AI, meanwhile, is reshaping industries by creating realistic videos, personalizing customer experiences, and assisting in medical research.&lt;/p&gt;

&lt;p&gt;Another key takeaway was how AI interacts with other technologies like IoT, cloud computing, and edge computing. These connections are already optimizing logistics, shaping smart cities, and improving real-time decision-making in ways we don’t always notice.&lt;/p&gt;

&lt;p&gt;Ethics and governance were also a major focus. AI has massive potential, but without fairness, transparency, and oversight, it can reinforce biases or create security risks. Companies are taking this seriously, with frameworks like IBM’s pillars of trust and regulations like the EU AI Act shaping the way forward.&lt;/p&gt;

&lt;p&gt;AI adoption isn’t optional anymore—it’s happening everywhere. The real challenge is using it wisely to enhance human capabilities rather than replace them. This course reinforced my commitment to exploring AI’s possibilities and challenges even further.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Learning from Code Reviews: Fostering Collaboration</title>
      <dc:creator>Aleksei Borovikov</dc:creator>
      <pubDate>Fri, 07 Jun 2024 23:52:22 +0000</pubDate>
      <link>https://forem.com/aborov/learning-from-code-reviews-fostering-collaboration-pg0</link>
      <guid>https://forem.com/aborov/learning-from-code-reviews-fostering-collaboration-pg0</guid>
      <description>&lt;p&gt;Just finished watching a &lt;a href="https://www.youtube.com/watch?v=PJjmw9TRB7s"&gt;presentation by Derrick Pryor&lt;/a&gt; about making code reviews more effective. Who knew they were about more than just catching bugs? Apparently, a good code review culture can be a game-changer for learning and teamwork.&lt;/p&gt;

&lt;p&gt;Here's the big takeaway for me: it's all about clear communication.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Authors gotta set the stage.&lt;/strong&gt; Before hitting that submit button, gotta explain why the code changed. This way, reviewers can understand the "what" and "why" behind the code and give better feedback.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reviewers: question, not criticize.&lt;/strong&gt; Instead of just pointing out problems, asking questions helps the author understand the reasoning and learn from it. Makes the whole thing more of a conversation than a one-sided critique.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes me think about code reviews differently.  It's not about people finding mistakes in my code.  It's a chance to learn from my teammates and become a better developer.&lt;/p&gt;

&lt;p&gt;Also, the presentation covered some other cool stuff like dealing with merge conflicts (yikes!) and asynchronous reviews (reviews that happen over time, not all at once). Definitely some things to keep in mind as I keep coding!&lt;/p&gt;

</description>
      <category>codereview</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Database design</title>
      <dc:creator>Aleksei Borovikov</dc:creator>
      <pubDate>Fri, 31 May 2024 17:02:01 +0000</pubDate>
      <link>https://forem.com/aborov/database-design-pdo</link>
      <guid>https://forem.com/aborov/database-design-pdo</guid>
      <description>&lt;p&gt;In database design, handling &lt;strong&gt;many-to-many relationships&lt;/strong&gt; typically requires &lt;strong&gt;a third table&lt;/strong&gt;, often called a &lt;strong&gt;&lt;em&gt;join table&lt;/em&gt;&lt;/strong&gt; or a &lt;strong&gt;&lt;em&gt;junction table&lt;/em&gt;&lt;/strong&gt;. This table records the associations between the two other tables. In contrast, for &lt;strong&gt;one-to-many relationships&lt;/strong&gt;, you do not need a third table. Instead, you usually &lt;strong&gt;&lt;em&gt;add a foreign key column in the table that represents the “many” side&lt;/em&gt;&lt;/strong&gt; of the relationship.&lt;/p&gt;

&lt;h2&gt;
  
  
  Many-to-Many Relationship Example
&lt;/h2&gt;

&lt;p&gt;Suppose you have &lt;code&gt;students&lt;/code&gt; and &lt;code&gt;courses&lt;/code&gt; tables, where each student can enroll in many courses, and each course can have many students. To model this relationship, you would create a third table, often named &lt;code&gt;enrollments&lt;/code&gt;. This join table would include foreign keys referencing the primary keys of the &lt;code&gt;students&lt;/code&gt; and &lt;code&gt;courses&lt;/code&gt; tables.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Student&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
  &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:enrollments&lt;/span&gt;
  &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:courses&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;through: :enrollments&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Course&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
  &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:enrollments&lt;/span&gt;
  &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:students&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;through: :enrollments&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Enrollment&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
  &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:student&lt;/span&gt;
  &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:course&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  One-to-Many Relationship Example
&lt;/h2&gt;

&lt;p&gt;Suppose you have &lt;code&gt;authors&lt;/code&gt; and &lt;code&gt;books&lt;/code&gt; tables, where each author can write many books, but each book is written by only one author. In this case, you would add a foreign key column to the &lt;code&gt;books&lt;/code&gt; table to reference the &lt;code&gt;authors&lt;/code&gt; table.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Author&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
  &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:books&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Book&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
  &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:author&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In summary, a third table is necessary for many-to-many relationships but not for one-to-many relationships.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>datastructures</category>
      <category>data</category>
      <category>database</category>
    </item>
  </channel>
</rss>
