<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>Nikolay Kostov's Blog</title>
<link>https://nikolay.it</link>
<description>Nikolay Kostov's Blog</description>
<item>
    <title>Which AI Describes CCTV Footage Best in 2026? Gemini 3.8 Flash vs Pegasus 1.5 and 1.6</title>
    <link>https://nikolay.it/Blog/2026/10/Which-AI-Describes-CCTV-Footage-Best-in-2026-Gemini-3-8-Flash-vs-Pegasus-1-5-and-1-6/130</link>
    <description>&lt;p&gt;Google released Gemini 3.8 Flash in September and Twelve Labs released Pegasus 1.6 in October, so I ran both, plus Pegasus 1.5 (my current default), on 34 minutes of real surveillance footage (night, infrared, motion-triggered recording, people far from the camera) and scored five configurations against 46 moments I had verified frame by frame. Gemini 3.8 Flash at high resolution wins on accuracy, errors and long clips at about Pegasus&#39; price; Pegasus 1.6 is no more accurate than 1.5, just five times faster; and none of them saw a scuffle between people 90 pixels tall at night.&lt;/p&gt;</description>
    <pubDate>Thu, 08 Oct 2026 15:02:14 +03:00</pubDate>
    <guid>https://nikolay.it/Blog/2026/10/Which-AI-Describes-CCTV-Footage-Best-in-2026-Gemini-3-8-Flash-vs-Pegasus-1-5-and-1-6/130</guid>
</item>
<item>
    <title>Which Speech-to-Text Engine Is Best for Bulgarian in 2026? I Benchmarked Nine</title>
    <link>https://nikolay.it/Blog/2026/09/Which-Speech-to-Text-Engine-Is-Best-for-Bulgarian-in-2026-I-Benchmarked-Nine/129</link>
    <description>&lt;p&gt;Five months after standardising on ElevenLabs Scribe v2 for Bulgarian transcription, I re-ran nine speech-to-text engines (ElevenLabs, Speechmatics enhanced and Melia 1, OpenAI gpt-transcribe, gpt-4o-transcribe-diarize and whisper-1, xAI Grok Voice Transcribe 2.0, local Whisper large-v3, and a two-engine combination) on 2 h 41 min of my own varied recordings, scored against hand-corrected transcripts. Scribe v2 still wins on word error rate, recall and speaker attribution; gpt-transcribe silently drops hard passages, whisper-1 loops, and Grok does not support Bulgarian yet.&lt;/p&gt;</description>
    <pubDate>Sun, 20 Sep 2026 08:11:12 +03:00</pubDate>
    <guid>https://nikolay.it/Blog/2026/09/Which-Speech-to-Text-Engine-Is-Best-for-Bulgarian-in-2026-I-Benchmarked-Nine/129</guid>
</item>
<item>
    <title>Award: Second Place at the DataArt Proggy-Buggy Contest 2026</title>
    <link>https://nikolay.it/Blog/2026/07/Award-Second-Place-at-the-DataArt-Proggy-Buggy-Contest-2026/128</link>
    <description>&lt;p&gt;I won &lt;strong&gt;Second Place&lt;/strong&gt; in the Professionals category of the international DataArt Proggy-Buggy Towel Contest 2026 &amp;mdash; an algorithmic programming competition held on 6 June 2026.&lt;/p&gt;</description>
    <pubDate>Thu, 16 Jul 2026 14:36:57 +03:00</pubDate>
    <guid>https://nikolay.it/Blog/2026/07/Award-Second-Place-at-the-DataArt-Proggy-Buggy-Contest-2026/128</guid>
</item>
<item>
    <title>Celebrating a Decade as a Microsoft Certified Trainer</title>
    <link>https://nikolay.it/Blog/2023/12/Celebrating-a-Decade-as-a-Microsoft-Certified-Trainer/127</link>
    <description>&lt;p&gt;This December marks a significant milestone in my professional journey &amp;ndash; 10 years as a Microsoft Certified Trainer (MCT). Since earning this certification on December 23, 2014, I&#39;ve been privileged to witness and contribute to the ever-evolving world of technology.&lt;/p&gt;
&lt;p&gt;As a software engineer and expert witness in Bulgarian courts, my role as an MCT has been enriched by diverse experiences. Over these years, I&#39;ve shared knowledge, embraced learning, and watched numerous students and professionals grow.&lt;/p&gt;
&lt;p&gt;As my certification approaches its expiry on December 24, 2024, I reflect on a decade of growth, challenges, and achievements. This journey has been more than just a professional endeavor; it has been a vital part of my identity.&lt;/p&gt;
&lt;p&gt;I am grateful for the community, experiences, and opportunities that being an MCT has offered. Here&#39;s to continuous learning and the next phase of this exciting journey!&lt;/p&gt;</description>
    <pubDate>Sun, 10 Dec 2023 08:11:11 +02:00</pubDate>
    <guid>https://nikolay.it/Blog/2023/12/Celebrating-a-Decade-as-a-Microsoft-Certified-Trainer/127</guid>
</item>
<item>
    <title>Video: Building Web Apps with ExpressJS (Bulgarian)</title>
    <link>https://nikolay.it/Blog/2023/12/Video-Building-Web-Apps-with-ExpressJS-Bulgarian/126</link>
    <description>&lt;p&gt;Video lecture about creating web applications with ExpressJS.&lt;/p&gt;
&lt;p&gt;The video is recorded in 2014 in a training I was delivering in Telerik School Academy.&lt;/p&gt;
&lt;p&gt;In my lecture on creating web applications with ExpressJS, I began by exploring Connect for NodeJS, emphasizing its role as the backbone for middleware in web applications. We then dove into ExpressJS, covering its architecture, routing, and integration with NodeJS modules, complemented by practical demonstrations. The session progressed to discussing views and layouts, where I showcased how to use template engines for dynamic content rendering. A significant focus was on &#39;Working with Data&#39;, where I demonstrated handling different data forms and performing CRUD operations. The lecture concluded by addressing common and advanced scenarios in ExpressJS, including cookies, sessions and authentication, ensuring the attendees gained a comprehensive understanding of ExpressJS in practical web application development.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Topics covered:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;2&quot; data-line-end=&quot;3&quot;&gt;Connect for NodeJS&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;3&quot; data-line-end=&quot;4&quot;&gt;ExpressJS&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;4&quot; data-line-end=&quot;5&quot;&gt;Views and layout&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;5&quot; data-line-end=&quot;6&quot;&gt;Working with Data&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;6&quot; data-line-end=&quot;8&quot;&gt;Common and Advanced Scenarios&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Tue, 05 Dec 2023 08:17:01 +02:00</pubDate>
    <guid>https://nikolay.it/Blog/2023/12/Video-Building-Web-Apps-with-ExpressJS-Bulgarian/126</guid>
</item>
<item>
    <title>Video: jQuery Plugins (Bulgarian)</title>
    <link>https://nikolay.it/Blog/2023/11/Video-jQuery-Plugins-Bulgarian/125</link>
    <description>&lt;p&gt;Video lecture about creating plugins for jQuery.&lt;/p&gt;
&lt;p&gt;The video is recorded in 2015 in a training I was delivering in Telerik Academy.&lt;/p&gt;
&lt;p&gt;In the lecture I presented, we began by addressing the foundational concepts of jQuery Plugins, emphasizing their primary functions and roles within web development. From there, I introduced the audience to jQueryUI, elucidating its vast array of user interface interactions, widgets, and associated effects. As we delved deeper, I dedicated a segment to the detailed process of crafting custom plugins, offering attendees a step-by-step guide to the procedure. I also took the opportunity to touch upon the vital concept of implementing chaining, explaining its significance in optimizing code structure and functionality. To round off the lecture, I provided an in-depth overview of plugin options, showcasing the myriad ways they can be tailored and adapted to suit varied developmental needs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Topics covered:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;2&quot; data-line-end=&quot;4&quot;&gt;jQuery Plugins
&lt;ul&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;3&quot; data-line-end=&quot;4&quot;&gt;jQueryUI&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;4&quot; data-line-end=&quot;5&quot;&gt;Creating Custom Plugins&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;5&quot; data-line-end=&quot;6&quot;&gt;Implementing chaining&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;6&quot; data-line-end=&quot;8&quot;&gt;Plugins Options&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Thu, 02 Nov 2023 07:49:12 +02:00</pubDate>
    <guid>https://nikolay.it/Blog/2023/11/Video-jQuery-Plugins-Bulgarian/125</guid>
</item>
<item>
    <title>Video: jQuery Fundamentals (Bulgarian)</title>
    <link>https://nikolay.it/Blog/2023/10/Video-jQuery-Fundamentals-Bulgarian/124</link>
    <description>&lt;p&gt;Video lecture about the fundamentals of jQuery.&lt;/p&gt;
&lt;p&gt;The video is recorded in 2015 in a training I was delivering in Telerik Academy.&lt;/p&gt;
&lt;p&gt;This informative video serves as a one-stop resource for mastering jQuery, one of the most popular JavaScript libraries in use today. Starting with an introduction to what jQuery is, the video moves on to explore foundational topics like jQuery fundamentals and selectors. From there, delve into more advanced areas including DOM Manipulation, altering DOM elements, and understanding jQuery-specific DOM elements. The video also provides a detailed overview of AJAX&amp;mdash;how to execute AJAX requests and the various methods jQuery provides for AJAX interactions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Topics covered:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;2&quot; data-line-end=&quot;3&quot;&gt;What is jQuery?&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;3&quot; data-line-end=&quot;8&quot;&gt;jQuery Fundamentals
&lt;ul&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;4&quot; data-line-end=&quot;5&quot;&gt;Selectors&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;5&quot; data-line-end=&quot;6&quot;&gt;DOM Manipulation&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;6&quot; data-line-end=&quot;7&quot;&gt;DOM Altering&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;7&quot; data-line-end=&quot;8&quot;&gt;jQuery DOM elements&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;8&quot; data-line-end=&quot;12&quot;&gt;AJAX
&lt;ul&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;9&quot; data-line-end=&quot;10&quot;&gt;jQuery AJAX Methods&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;10&quot; data-line-end=&quot;12&quot;&gt;Executing AJAX Requests&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Sun, 01 Oct 2023 09:25:34 +03:00</pubDate>
    <guid>https://nikolay.it/Blog/2023/10/Video-jQuery-Fundamentals-Bulgarian/124</guid>
</item>
<item>
    <title>Video: Arrays in JavaScript (Bulgarian)</title>
    <link>https://nikolay.it/Blog/2023/09/Video-Arrays-in-JavaScript-Bulgarian/123</link>
    <description>&lt;p&gt;Video lecture about arrays in JavaScript.&lt;/p&gt;
&lt;p&gt;The video is recorded in 2014 in a training I was delivering in Telerik Academy.&lt;/p&gt;
&lt;p&gt;In this comprehensive lecture on Arrays in JavaScript, we delve into multiple facets of this essential data structure, starting with the fundamentals of declaring and creating arrays using either the &lt;code&gt;Array()&lt;/code&gt; constructor or array literals. We then transition into how to access individual array elements through their index. The lecture also discusses the concept of dynamic arrays and how they can be resized and restructured on-the-fly in JavaScript. Finally, we explore various operations that can be performed on arrays, such as concatenation to join arrays, slicing to extract segments, and manipulation techniques like adding, removing, or altering elements. This lecture aims to equip you with a robust understanding of arrays to enhance your JavaScript programming skills.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Topics covered:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;2&quot; data-line-end=&quot;3&quot;&gt;Declaring and Creating Arrays&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;3&quot; data-line-end=&quot;4&quot;&gt;Accessing Array Elements&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;4&quot; data-line-end=&quot;5&quot;&gt;Processing Array Elements&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;5&quot; data-line-end=&quot;6&quot;&gt;Dynamic Arrays&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;6&quot; data-line-end=&quot;11&quot;&gt;Operations with arrays:
&lt;ul&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;7&quot; data-line-end=&quot;8&quot;&gt;Concatenation&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;8&quot; data-line-end=&quot;9&quot;&gt;Slicing&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;9&quot; data-line-end=&quot;11&quot;&gt;Manipulation&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Fri, 01 Sep 2023 09:56:14 +03:00</pubDate>
    <guid>https://nikolay.it/Blog/2023/09/Video-Arrays-in-JavaScript-Bulgarian/123</guid>
</item>
<item>
    <title>Video: Loops in JavaScript (Bulgarian)</title>
    <link>https://nikolay.it/Blog/2023/08/Video-Loops-in-JavaScript-Bulgarian/122</link>
    <description>&lt;p&gt;Video lecture about loops in JavaScript.&lt;/p&gt;
&lt;p&gt;The video is recorded in 2014 in a training I was delivering in Telerik Academy.&lt;/p&gt;
&lt;p&gt;Loops are programming constructs that execute a block of code multiple times based on a specific condition or set of conditions. In JavaScript, there are several types of loops, including the &#39;while&#39; loop that executes code as long as a condition is true, and the &#39;do &amp;hellip; while&#39; loop which ensures the code runs at least once before checking the condition. The &#39;for&#39; loop provides a concise way to iterate through a sequence, specifying initialization, condition, and afterthought (like incrementing). Additionally, there are special operators such as &#39;break&#39;, which immediately exits the loop, and &#39;continue&#39;, which skips the rest of the current iteration and proceeds to the next one. Nested loops occur when a loop is placed inside another loop, allowing for complex iteration patterns.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Topics covered:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;2&quot; data-line-end=&quot;3&quot;&gt;What is a Loop?&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;3&quot; data-line-end=&quot;7&quot;&gt;Loops in JavaScript
&lt;ul&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;4&quot; data-line-end=&quot;5&quot;&gt;&lt;em&gt;while&lt;/em&gt; loops&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;5&quot; data-line-end=&quot;6&quot;&gt;&lt;em&gt;do&lt;/em&gt; &amp;hellip; &lt;em&gt;while&lt;/em&gt; loops&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;6&quot; data-line-end=&quot;7&quot;&gt;&lt;em&gt;for&lt;/em&gt; loops&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;7&quot; data-line-end=&quot;9&quot;&gt;Special loop operators
&lt;ul&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;8&quot; data-line-end=&quot;9&quot;&gt;&lt;em&gt;break&lt;/em&gt;, &lt;em&gt;continue&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;9&quot; data-line-end=&quot;11&quot;&gt;Nested loops&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Fri, 11 Aug 2023 11:17:15 +03:00</pubDate>
    <guid>https://nikolay.it/Blog/2023/08/Video-Loops-in-JavaScript-Bulgarian/122</guid>
</item>
<item>
    <title>Video: Operators and Expressions in JavaScript (Bulgarian)</title>
    <link>https://nikolay.it/Blog/2023/07/Video-Operators-and-Expressions-in-JavaScript-Bulgarian/121</link>
    <description>&lt;p&gt;Video lecture about operators and expressions in JavaScript.&lt;/p&gt;
&lt;p&gt;The video is recorded in 2015 in a training I was delivering in Telerik Academy.&lt;/p&gt;
&lt;p&gt;This lecture provides a comprehensive examination of JavaScript operators, encompassing arithmetic, logical, bitwise, comparison, and assignment operators, each with their unique functions in data manipulation and logical flow control. We also touche on operator precedence, explaining how the language interprets multiple operations in an expression. Additionally, we discuss &quot;other operators&quot; like the ternary and typeof operators, culminating with an exploration of expressions in JavaScript&amp;mdash;combinations of values and operators that can be evaluated into a single value, contributing to more effective and efficient code.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Topics covered:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;2&quot; data-line-end=&quot;3&quot;&gt;Operators in JavaScript&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;3&quot; data-line-end=&quot;4&quot;&gt;Arithmetic Operators&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;4&quot; data-line-end=&quot;5&quot;&gt;Logical Operators&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;5&quot; data-line-end=&quot;6&quot;&gt;Bitwise Operators&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;6&quot; data-line-end=&quot;7&quot;&gt;Comparison Operators&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;7&quot; data-line-end=&quot;8&quot;&gt;Assignment Operators&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;8&quot; data-line-end=&quot;9&quot;&gt;Other Operators&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;9&quot; data-line-end=&quot;10&quot;&gt;Operator Precedence&lt;/li&gt;
&lt;li class=&quot;has-line-data&quot; data-line-start=&quot;10&quot; data-line-end=&quot;12&quot;&gt;Expressions&lt;/li&gt;
&lt;/ul&gt;</description>
    <pubDate>Thu, 06 Jul 2023 16:19:08 +03:00</pubDate>
    <guid>https://nikolay.it/Blog/2023/07/Video-Operators-and-Expressions-in-JavaScript-Bulgarian/121</guid>
</item>
</channel>
</rss>
