<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Ilya's Blog</title><link>https://ilyabiz.com/</link><description>Recent content on Ilya's Blog</description><generator>Hugo</generator><language>en-DE</language><copyright>2026 Ilya Bizyaev</copyright><lastBuildDate>Fri, 23 Feb 2024 23:17:07 +0000</lastBuildDate><atom:link href="https://ilyabiz.com/feed.xml" rel="self" type="application/rss+xml"/><item><title>cursor-shape-v1 in Chromium and Electron</title><link>https://ilyabiz.com/2024/02/cursor-shape-v1-in-chromium-and-electron/</link><pubDate>Fri, 23 Feb 2024 23:17:07 +0000</pubDate><guid isPermaLink="false">https://ilyabiz.com/?p=777</guid><description>&lt;p&gt;Just in time for KDE Plasma 6, &lt;a href="https://chromereleases.googleblog.com/2024/02/stable-channel-update-for-desktop_20.html"&gt;Chromium 122&lt;/a&gt; and &lt;a href="https://github.com/electron/electron/releases/tag/v29.0.0" title="Electron 29"&gt;Electron 29&lt;/a&gt; have been released! They contain &lt;a href="https://chromium-review.googlesource.com/c/chromium/src/+/5196950" title="patch"&gt;my patch&lt;/a&gt; that adds support for Wayland&amp;rsquo;s new &lt;a href="https://wayland.app/protocols/cursor-shape-v1" title="cursor-shape-v1"&gt;cursor-shape-v1&lt;/a&gt; extension protocol.&lt;/p&gt;
&lt;p&gt;When running natively in a Plasma 6 Wayland session, up-to-date Chromium-based browsers and Electron apps should now always use the correct mouse cursor theme and have the cursor drawn in the correct size, even when running in a Flatpak sandbox.&lt;/p&gt;
&lt;p&gt;You can enable Chromium&amp;rsquo;s native Wayland support by setting &lt;a href="chrome://flags/#ozone-platform-hint"&gt;chrome://flags/#ozone-platform-hint&lt;/a&gt; to “Auto” or with a &lt;a href="https://wiki.archlinux.org/title/chromium#Native_Wayland_support" title="command-line flag"&gt;command-line flag&lt;/a&gt;. There are &lt;a href="https://wiki.archlinux.org/title/Wayland#Electron" title="multiple ways"&gt;multiple ways&lt;/a&gt; to apply this preference to Electron apps as well.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Just in time for KDE Plasma 6, <a href="https://chromereleases.googleblog.com/2024/02/stable-channel-update-for-desktop_20.html">Chromium 122</a> and <a href="https://github.com/electron/electron/releases/tag/v29.0.0" title="Electron 29">Electron 29</a> have been released! They contain <a href="https://chromium-review.googlesource.com/c/chromium/src/+/5196950" title="patch">my patch</a> that adds support for Wayland&rsquo;s new <a href="https://wayland.app/protocols/cursor-shape-v1" title="cursor-shape-v1">cursor-shape-v1</a> extension protocol.</p>
<p>When running natively in a Plasma 6 Wayland session, up-to-date Chromium-based browsers and Electron apps should now always use the correct mouse cursor theme and have the cursor drawn in the correct size, even when running in a Flatpak sandbox.</p>
<p>You can enable Chromium&rsquo;s native Wayland support by setting <a href="chrome://flags/#ozone-platform-hint">chrome://flags/#ozone-platform-hint</a> to “Auto” or with a <a href="https://wiki.archlinux.org/title/chromium#Native_Wayland_support" title="command-line flag">command-line flag</a>. There are <a href="https://wiki.archlinux.org/title/Wayland#Electron" title="multiple ways">multiple ways</a> to apply this preference to Electron apps as well.</p>
<p>To check whether an app runs natively on Wayland or relies on the XWayland compatibility layer, you can look up <code>kwin</code> in any KRunner-enabled search bar (e.g. in the app launcher) and select “Open KWin debug console”.</p>
<p>Hope this helps! 😃</p>
]]></content:encoded></item><item><title>Summer update!</title><link>https://ilyabiz.com/2019/07/summer-update/</link><pubDate>Tue, 30 Jul 2019 20:03:39 +0000</pubDate><guid isPermaLink="false">https://ilyabiz.com/?p=459</guid><description>&lt;p&gt;It&amp;rsquo;s been a long while since I posted to my blog, and I apologize for the unpleasant period of boring silence, but I hope to make up for some of it with a brief overview of what happened to me since my last update 🙂&lt;/p&gt;
&lt;p&gt;First and foremost, I would like to express the gratitude for my second year of university, which was the most exhausting period of studies that I&amp;rsquo;ve had so far but taught me a great deal of patience, focus, and perseverance. Also, I cannot but mention that never have I valued friendship as much as I do now. I was able to pass my exams with satisfying grades, and while I do not yet feel ready to dive into the next academic year, I am a lot more confident about its success.&lt;/p&gt;</description><content:encoded><![CDATA[<p>It&rsquo;s been a long while since I posted to my blog, and I apologize for the unpleasant period of boring silence, but I hope to make up for some of it with a brief overview of what happened to me since my last update 🙂</p>
<p>First and foremost, I would like to express the gratitude for my second year of university, which was the most exhausting period of studies that I&rsquo;ve had so far but taught me a great deal of patience, focus, and perseverance. Also, I cannot but mention that never have I valued friendship as much as I do now. I was able to pass my exams with satisfying grades, and while I do not yet feel ready to dive into the next academic year, I am a lot more confident about its success.</p>
<p><img alt="Three large pink snail sculptures on a lawn" loading="lazy" src="/2019/07/summer-update/pink-snails.jpg"></p>
<p>Next, I would like to thank KDE for the most exciting learning experience I could wish for: the <a href="https://plasma-mobile.org/2019/03/11/2019-03-11-plasma-mobile-sprint-in-berlin/">Plasma Mobile sprint in Berlin</a> that I was lucky to attend. I have never met so many passionate developers in one place before, and learning from them, as well as contributing my humble bits of knowledge, was priceless.</p>
<p>And a special thanks to Linus and Jonah for showing me around the city 😃</p>
<p><img alt="Plasma Mobile developers gathered around a table at the Berlin sprint" loading="lazy" src="/2019/07/summer-update/plasma-mobile-sprint.jpg"></p>
<p>Finally, I am incredibly thankful to Google for having me as a Software Engineering intern in Munich this summer 😃</p>
<p>Making Linux application support in Chrome OS easier to manage for schools, enterprises and individuals is by far the biggest contribution to the Linux ecosystem that I can possibly make. Most googlers I had a chance to meet are very positive, cheerful and helpful. My first feature has landed the Chromium codebase today, and I am very excited and motivated for the rest of my work here.</p>
<p><img alt="Munich New Town Hall and Frauenkirche under cloudy skies" loading="lazy" src="/2019/07/summer-update/munich-city-hall.jpg"></p>
<p><img alt="Chrome dinosaur and cactus figures displayed at Google" loading="lazy" src="/2019/07/summer-update/chrome-dinosaur.jpg"></p>
<p>To make sure you don&rsquo;t have to wait another half a year to hear from me, I&rsquo;m sharing <a href="https://www.instagram.com/ilya_bizyaev/">my Instagram</a>; I seem to be more responsible at posting pics of cute stuff around me than at serious blogging 🙂</p>
<p>I wanted to keep this update short and easy to read. If, however, I managed to get you interested and craving for more info, feel free to reach out to me!.</p>
<p>And have a great summer! 😄</p>
]]></content:encoded></item><item><title>2018 — what a year!</title><link>https://ilyabiz.com/2018/12/2018-what-a-year/</link><pubDate>Sat, 29 Dec 2018 00:21:52 +0000</pubDate><guid isPermaLink="false">https://ilyabiz.com/?p=404</guid><description>&lt;p&gt;2018, my favorite year so far, has come to its end. So, I decided to recap what happened in my life this year, as well as to tell about events I haven&amp;rsquo;t covered yet.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Snow-covered path through a park during heavy snowfall" loading="lazy" src="https://ilyabiz.com/2018/12/2018-what-a-year/snowy-park.jpg"&gt;&lt;/p&gt;
&lt;p&gt;2018 was the first year for me that started with exams. Not that I haven&amp;rsquo;t spent holidays studying for exams before, though, so with some persistence and tangerine fuel 🍊 I &lt;a href="https://ilyabiz.com/2018/02/exams-are-over-new-studies-coming/"&gt;passed&lt;/a&gt; them all good enough and had a week of TV series and open source contribution before the upcoming semester. With some help from Halium project maintainers and a steep learning curve, I was finally able to conquer graphics libraries on an x86 Android phone and &lt;a href="https://ilyabiz.com/2018/02/halium-on-asus-zenfone-5/"&gt;start a Wayland compositor&lt;/a&gt;. At the same time, my efforts on the Russian-speaking KDE community became visible, as our friendly local group &lt;a href="https://ilyabiz.com/2018/02/kde-russia/"&gt;crossed&lt;/a&gt; a symbolic border of 1000 members!&lt;/p&gt;</description><content:encoded><![CDATA[<p>2018, my favorite year so far, has come to its end. So, I decided to recap what happened in my life this year, as well as to tell about events I haven&rsquo;t covered yet.</p>
<p><img alt="Snow-covered path through a park during heavy snowfall" loading="lazy" src="/2018/12/2018-what-a-year/snowy-park.jpg"></p>
<p>2018 was the first year for me that started with exams. Not that I haven&rsquo;t spent holidays studying for exams before, though, so with some persistence and tangerine fuel 🍊 I <a href="/2018/02/exams-are-over-new-studies-coming/">passed</a> them all good enough and had a week of TV series and open source contribution before the upcoming semester. With some help from Halium project maintainers and a steep learning curve, I was finally able to conquer graphics libraries on an x86 Android phone and <a href="/2018/02/halium-on-asus-zenfone-5/">start a Wayland compositor</a>. At the same time, my efforts on the Russian-speaking KDE community became visible, as our friendly local group <a href="/2018/02/kde-russia/">crossed</a> a symbolic border of 1000 members!</p>
<p>The new courses at university were difficult at first, so I had to really focus on my studies. I had a nice weekend break at the <a href="/2018/05/cpp-russia-2018/">C++ Russia</a> conference, but otherwise had been immersed, and that helped me catch up and finish the freshman year <a href="/2018/06/summertime/">proudly</a>. 🏆</p>
<p>In July, August, and September I could finally participate in the world of free software again. I was mostly focused on Plasma Mobile, KDE&rsquo;s mobile platform, and KDE Russia. I prepared and gave an introductory talk about <a href="/2018/08/plasma-mobile-at-a-demoparty/">GNU/Linux on mobile devices</a>, then developed and launched the <a href="/2018/09/new-kde-ru-website/">kde.ru website</a>. I&rsquo;m thankful to Chaos Constructions conference managers and local FOSS news platforms for the chance to promote KDE&rsquo;s amazing work to wider audiences. 📱</p>
<h2 id="vk-hackathon">VK Hackathon</h2>
<p>As part of an amateur yet motivated team, I was working on a corporate assistant application for the State Hermitage Museum. Our aim was to provide a 3-in-1 cross-platform solution: a task management system, an internal messenger and a navigation system (Hermitage is <em>huge</em>). The deadline was tough, but we managed to deliver a working prototype.</p>



  <div class="youtube-embed ">
    <iframe
      allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen"
      loading="eager"
      referrerpolicy="strict-origin-when-cross-origin"
      src="https://www.youtube-nocookie.com/embed/tZJVR8ZdT4o?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0"
      title="VK Hackathon Demo"
    ></iframe>
  </div>


<div class="gallery gallery-cols-2"><img alt="Kaidan channels list used by the Hermitage Assistant" loading="lazy" src="/2018/12/2018-what-a-year/kaidan-channels.png">
<img alt="Hermitage Assistant navigation menu on a phone" loading="lazy" src="/2018/12/2018-what-a-year/hermitage-assistant-menu.png"></div>

<p><img alt="Hermitage Assistant desktop dashboard with tasks, messages, and places" loading="lazy" src="/2018/12/2018-what-a-year/hermitage-assistant-desktop.jpg"></p>
<p>Our application was not selected by case managers, but the atmosphere of passionate hacking is unforgettable. Besides, some of my work <a href="/2018/11/automatic-qml-import-by-qt-deployment-tools/">went upstream</a> and will benefit many applications to come 🙂</p>
<p><img alt="Four members of the team at the VK Hackathon" loading="lazy" src="/2018/12/2018-what-a-year/vk-hackathon-team.jpg"></p>
<h2 id="icpc-neerc-2018">ICPC NEERC 2018</h2>
<p>My second time in this competitive programming contest as a Technical Committee assistant. It is an amazing experience, as well as a steep learning curve. Thanks to everyone who participated in this year&rsquo;s programming competitions at ITMO University, both teams and fellow volunteers! 👨‍💻💪</p>
<p><img alt="Ilya holding a silver volunteer certificate at ICPC NEERC 2018" loading="lazy" src="/2018/12/2018-what-a-year/icpc-volunteer.jpg"></p>
<h2 id="rust">Rust</h2>
<p>An ordinary algorithm class assignment can become a challenging experiment if you give up on your habits and try solving it using a different programming language, like <a href="https://www.rust-lang.org">Rust</a>. I&rsquo;ve had a deep dive into the Rust ecosystem, <a href="/2018/12/rust-for-algorithms/">implementing some algorithms</a>, trying a <a href="https://github.com/amethyst/amethyst">game framework</a> and building a <a href="https://servo.org">research web browser</a> (with small <a href="https://github.com/servo/servo/pull/22569">fixes</a> along the way).</p>
<p>I&rsquo;ll definitely continue learning the ways of oxidized metal in 2019! 📔</p>
<p><img alt="Cartoon knight representing the Rust programming language" loading="lazy" src="/2018/12/2018-what-a-year/rust-knight.png"></p>
<h2 id="to-the-awesome-new-year">To the awesome new year!</h2>
<p>Let 2019 be even better for us all! Thank you for reading, and all the best in 2019! 😃</p>
]]></content:encoded></item><item><title>Rust for algorithms</title><link>https://ilyabiz.com/2018/12/rust-for-algorithms/</link><pubDate>Sun, 23 Dec 2018 20:54:31 +0000</pubDate><guid isPermaLink="false">https://ilyabiz.com/?p=383</guid><description>&lt;p&gt;&lt;img alt="Rust logo over colorful source code" loading="lazy" src="https://ilyabiz.com/2018/12/rust-for-algorithms/rust-code-logo.png"&gt;&lt;/p&gt;
&lt;p&gt;This week I was assigned to implement a number of string related algorithms that perform substring search and count, calculate helper functions and build performant structures on them, etc. Algorithms themselves were not too complicated, so I decided to challenge myself and solve the problems using Rust (instead of my main language C++).&lt;/p&gt;
&lt;p&gt;Now that I&amp;rsquo;ve &lt;a href="https://github.com/IlyaBizyaev/rust-experiments"&gt;solved&lt;/a&gt; the task, I can tell a bit about my experience, things that I found convenient or complicated. I&amp;rsquo;m a beginner in Rust, but if my idea of the language is interesting to you, read on! 🙂&lt;/p&gt;</description><content:encoded><![CDATA[<p><img alt="Rust logo over colorful source code" loading="lazy" src="/2018/12/rust-for-algorithms/rust-code-logo.png"></p>
<p>This week I was assigned to implement a number of string related algorithms that perform substring search and count, calculate helper functions and build performant structures on them, etc. Algorithms themselves were not too complicated, so I decided to challenge myself and solve the problems using Rust (instead of my main language C++).</p>
<p>Now that I&rsquo;ve <a href="https://github.com/IlyaBizyaev/rust-experiments">solved</a> the task, I can tell a bit about my experience, things that I found convenient or complicated. I&rsquo;m a beginner in Rust, but if my idea of the language is interesting to you, read on! 🙂</p>
<p>The assignment I had to solve is part of my Algorithms and Data Structures course at ITMO University. It has been published on the Codeforces competitive programming platform that has recently <a href="https://codeforces.com/blog/entry/62423?locale=en">moved to ITMO</a>. The version of Rust available on Codeforces is 1.26, so I haven&rsquo;t yet had a chance to check out the new features of <a href="https://blog.rust-lang.org/2018/12/06/Rust-1.31-and-rust-2018.html">Rust 2018 edition</a>.</p>
<p>Searching for an IDE for Rust, I&rsquo;ve chosen CLion with JetBrains&rsquo; official <a href="https://intellij-rust.github.io">Rust plugin</a>. This IDE is proprietary, but of all IDEs and editors I checked only CLion provided debugging out of the box. I also enjoyed VSCode quite much, but couldn&rsquo;t get any plugins that provide debug support to work with Rust. I am aware of some efforts to support <a href="https://github.com/KDE/kdev-rust">Rust in KDevelop</a>, as well as of an official <a href="https://github.com/rust-lang/rust.vim">Vim plugin</a>, but decided to stick to something I use regularly anyway.</p>
<p><img alt="Rust source code open in CLion" loading="lazy" src="/2018/12/rust-for-algorithms/clion-rust-code.png"></p>
<p>In the end, I solved 12 of 13 tasks using Rust and wrote some extra code for personal tests. I published all of it in a <a href="https://github.com/IlyaBizyaev/rust-experiments/">GitHub repository</a>, in case it might be useful for someone.</p>
<p><img alt="String algorithm problems on Codeforces" loading="lazy" src="/2018/12/rust-for-algorithms/codeforces-problems.png"></p>
<p>Generally, the C++ → Rust switch felt pretty natural. With Rust, it takes a lot more time to persuade the compiler that the code is worth building, but it actually helps to fix bugs, and in the end you&rsquo;re thankful to the borrow checker for its hard work. Then a number of issues gets fixed during a couple of first launches, when the program panics on integer overflows and out-of-bounds array indexes. And finally, a nice static analyzer called clippy suggests some final touches to optimize and prettify the code. Compiler errors feel unexpectedly pleasant and friendly after GCC&rsquo;s text walls.</p>
<p><img alt="Rust compiler error for mismatched types" loading="lazy" src="/2018/12/rust-for-algorithms/mismatched-types-error.png"></p>
<p><img alt="Rust compiler error suggesting a format string" loading="lazy" src="/2018/12/rust-for-algorithms/format-string-error.png"></p>
<p>Built-in collections were sufficient for the programs I needed to write. Not much to say here really, except for that data structures want to be cloned rather than copied to avoid memory errors.</p>
<p>Sadly, there&rsquo;s a couple of negative aspects I discovered, both related to performance. First is that rustc <a href="https://mail.mozilla.org/pipermail/rust-dev/2013-April/003557.html">does not support tail call optimization (TCO)</a>, and likely won&rsquo;t anytime soon. That was a big disappointment for me because there are so many algorithms out there that are described in a recursive manner, have proper asymptotics limits, but expect a compiler to do the optimization. Of course, they <a href="https://cs.stackexchange.com/a/67918">can be rewritten using loops</a>, but usually you want to stick to idiomatic implementations and not reinvent.</p>
<p>Second, the file IO speed. Buffered file input-output in Rust is as fast as <code>fstream</code> in C++ <em>unless</em> the latter is &ldquo;optimized&rdquo; with <code>sync_with_stdio(false)</code>, <code>tie(nullptr)</code> and no flushes (like <code>std::endl</code>). It&rsquo;s the sole reason for that 13th program to not be submitted in Rust: it was really hitting the time limit. And even though it may seem to be a rare case, it can play its role in competitive programming.</p>
<p>To sum up, I loved Rust for its strict yet friendly compiler, a nice standard library, and a nice community ready to help (check out <a href="ircs://irc.mozilla.org/rust">#rust</a> on irc.mozilla.org!). There are many cool libraries out there, and I am very eager to try <a href="https://github.com/kde/rust-qt-binding-generator">Qt with Rust</a> as soon as I get some free time.</p>
<p>Other than that — have to go now! 🙂 Thanks for bearing with me if you made it to this sentence. Stick around for more random posts about the stuff I enjoy, and have a great day! 😃</p>
]]></content:encoded></item><item><title>Automatic QML import by Qt deployment tools</title><link>https://ilyabiz.com/2018/11/automatic-qml-import-by-qt-deployment-tools/</link><pubDate>Sun, 25 Nov 2018 22:57:05 +0000</pubDate><guid isPermaLink="false">https://ilyabiz.com/?p=360</guid><description>&lt;p&gt;There was a small problem with Qt&amp;rsquo;s deployment tools that could, however, cause some struggle for beginners. windeployqt, macdeployqt and linuxdeployqt could not add a third-party Qt Quick module (i.e. one that is not located inside Qt&amp;rsquo;s installation directory, like &lt;a href="https://www.kde.org/products/kirigami/"&gt;Kirigami&lt;/a&gt;) to the resulting bundle.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Kirigami QML module files in a file manager" loading="lazy" src="https://ilyabiz.com/2018/11/automatic-qml-import-by-qt-deployment-tools/kirigami-qml-module.png"&gt;&lt;/p&gt;
&lt;p&gt;It was, of course, possible to workaround the issue by copying the missing files to their expected locations with &lt;a href="https://invent.kde.org/network/kaidan/-/blob/163523212016418dcc10929aefe4abecf692c127/utils/build-mac.sh#L173"&gt;a script&lt;/a&gt; or manually. For non-systemwide Qt installations, there was also an option of installing the libraries by side with Qt&amp;rsquo;s own modules. However, these are still platform-dependent workarounds we shouldn&amp;rsquo;t rely on long-term.&lt;/p&gt;</description><content:encoded><![CDATA[<p>There was a small problem with Qt&rsquo;s deployment tools that could, however, cause some struggle for beginners. windeployqt, macdeployqt and linuxdeployqt could not add a third-party Qt Quick module (i.e. one that is not located inside Qt&rsquo;s installation directory, like <a href="https://www.kde.org/products/kirigami/">Kirigami</a>) to the resulting bundle.</p>
<p><img alt="Kirigami QML module files in a file manager" loading="lazy" src="/2018/11/automatic-qml-import-by-qt-deployment-tools/kirigami-qml-module.png"></p>
<p>It was, of course, possible to workaround the issue by copying the missing files to their expected locations with <a href="https://invent.kde.org/network/kaidan/-/blob/163523212016418dcc10929aefe4abecf692c127/utils/build-mac.sh#L173">a script</a> or manually. For non-systemwide Qt installations, there was also an option of installing the libraries by side with Qt&rsquo;s own modules. However, these are still platform-dependent workarounds we shouldn&rsquo;t rely on long-term.</p>
<p>I faced this issue when trying to package <a href="https://kaidan.im">Kaidan</a>, a Qt Quick XMPP client, as an AppImage. After a <a href="https://github.com/probonopd/linuxdeployqt/issues/319">discussion</a> with linuxdeployqt&rsquo;s contributors and some research, I found that internally the tool uses <code>qmlimportscanner</code> to locate the imported modules, but only passes <code>QT_INSTALL_QML</code> (Qt&rsquo;s own modules location) to the scanner. It was clearly missing an option to list custom import paths, like <code>-qmlimport</code>. That was easy to fix, <a href="https://github.com/probonopd/linuxdeployqt/pull/320">and so I did</a>.</p>
<p>linuxdeployqt is a fork of macdeployqt, and so I decided it makes sense to upstream my changes. I <a href="https://forum.qt.io/topic/95157/deploying-3rdparty-qt-quick-plugins-on-macos">made sure</a> I&rsquo;m not missing anything, then started a <a href="https://codereview.qt-project.org/242083">Gerrit revision</a>.</p>
<p>While my changes were pending approval, I looked into windeployqt&rsquo;s sources and submitted a <a href="https://codereview.qt-project.org/242315">matching revision</a> to that tool.</p>
<p>When <a href="https://github.com/probonopd/linuxdeployqt/commit/8b3ded6a4ce66a88a48463caec92a7306e2d0069">all</a> <a href="https://code.qt.io/cgit/qt/qttools.git/commit/?h=dev&amp;id=24189b5f0935914a979b7e9d3786bec8f9f019bc">three</a> <a href="https://code.qt.io/cgit/qt/qttools.git/commit/?h=dev&amp;id=3d3ec897712f590e9e4e5ffad4b7017e235295cb">commits</a> had been merged, I <a href="https://codereview.qt-project.org/244161">documented</a> my changes.</p>
<h3 id="conclusion">Conclusion</h3>
<p>Starting with Qt 5.13 there&rsquo;ll be an option in Qt deployment tools ( <code>-qmlimport</code>) to specify custom import paths for Qt Quick libraries. As a nice bonus, this option also allows to choose between multiple versions of a library installed at different locations. For a more in-depth explanation of the change, please refer to <a href="https://github.com/probonopd/linuxdeployqt/issues/319#issuecomment-426755469">this comment</a>.</p>
<p>Contributing to Qt is not that difficult, and making even a small useful change feels so nice 🙂</p>
<p><img alt="Kaidan XMPP login screen running on macOS" loading="lazy" src="/2018/11/automatic-qml-import-by-qt-deployment-tools/kaidan-login.jpg"></p>
<p>If you hesitated to try <a href="https://www.kde.org/products/kirigami/">Kirigami</a> in your project because of deployment quirks, give it a go now! Join us on <a href="irc://chat.freenode.net/kde-kirigami">IRC</a> or <a href="https://matrix.to/#/#kirigami:matrix.org">Matrix</a>, take a look at the <a href="https://api.kde.org/kirigami-index.html">docs</a> and have fun creating! 😃</p>
]]></content:encoded></item><item><title>New KDE.ru website</title><link>https://ilyabiz.com/2018/09/new-kde-ru-website/</link><pubDate>Tue, 18 Sep 2018 13:47:10 +0000</pubDate><guid isPermaLink="false">https://ilyabiz.com/?p=298</guid><description>&lt;p&gt;&lt;img alt="KDE Russia website showing a group photo and product information" loading="lazy" src="https://ilyabiz.com/2018/09/new-kde-ru-website/kde-russia-website.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Today, on September 18th, 2018, the Russian-speaking KDE community launches its updated website on &lt;a href="https://kde.ru"&gt;KDE.ru&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The new website serves as the main page for the Russian-speaking community. It provides localized information about the community, product download links and the list of social network pages we maintain. It is also meant to help new members get involved in KDE&amp;rsquo;s projects, particularly in our translation and promotion efforts.&lt;/p&gt;</description><content:encoded><![CDATA[<p><img alt="KDE Russia website showing a group photo and product information" loading="lazy" src="/2018/09/new-kde-ru-website/kde-russia-website.jpg"></p>
<p>Today, on September 18th, 2018, the Russian-speaking KDE community launches its updated website on <a href="https://kde.ru">KDE.ru</a>.</p>
<p>The new website serves as the main page for the Russian-speaking community. It provides localized information about the community, product download links and the list of social network pages we maintain. It is also meant to help new members get involved in KDE&rsquo;s projects, particularly in our translation and promotion efforts.</p>
<p>The website was created by me and Alexander Potashev on top of <a href="https://t.me/JBBGameich">Jonah Brüchert</a>&rsquo;s work for <a href="https://plasma-mobile.org">plasma-mobile.org</a>. It <a href="https://invent.kde.org/websites/kde-ru">uses Jekyll</a> and is now hosted on official KDE servers. It replaces the old forum that has significantly lost its users in the past years.</p>
<p>If you like our work, please share the website with your friends and subscribers! 🙂 If you find mistakes, report them in <a href="https://vk.me/kde_ru">VK group messages</a>, <a href="/contacts">contact me</a> or open a Phabricator revision with a fix.</p>
<p>We would like to thank Ben Cooksley for his help with website deployment, all the users who participated in beta testing, and everyone who helped polish the content.</p>
]]></content:encoded></item><item><title>Plasma Mobile at a demoparty?</title><link>https://ilyabiz.com/2018/08/plasma-mobile-at-a-demoparty/</link><pubDate>Tue, 28 Aug 2018 08:58:18 +0000</pubDate><guid isPermaLink="false">https://ilyabiz.com/?p=249</guid><description>&lt;p&gt;&lt;a href="https://2018.chaosconstructions.ru/en/start.html"&gt;Chaos Constructions&lt;/a&gt; is an annual computer festival held in Saint Petersburg, Russia. It is centered around &lt;a href="https://en.wikipedia.org/wiki/Demoscene"&gt;demoscene&lt;/a&gt; — a form of computer art where participants write programs that produce short audiovisual presentations. Apart from the demoscene contests, you can enjoy computer-related seminars, live acts, and a computer exhibition.&lt;/p&gt;
&lt;figure&gt;
&lt;img loading="lazy" src="ay-music.jpg"
alt="ZX Spectrum AY-music event at Chaos Constructions 2018"/&gt; &lt;figcaption&gt;
&lt;p&gt;CC'2018, ZX Spectrum AY-music&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;img loading="lazy" src="chaos-talk.jpg"
alt="A seminar at Chaos Constructions 2018"/&gt; &lt;figcaption&gt;
&lt;p&gt;Talks, seminars&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;img loading="lazy" src="computer-exhibition.jpg"
alt="Computer exhibition with retro hardware and gaming consoles"/&gt; &lt;figcaption&gt;
&lt;p&gt;Computer exhibition, retro gaming consoles&lt;/p&gt;</description><content:encoded><![CDATA[<p><a href="https://2018.chaosconstructions.ru/en/start.html">Chaos Constructions</a> is an annual computer festival held in Saint Petersburg, Russia. It is centered around <a href="https://en.wikipedia.org/wiki/Demoscene">demoscene</a> — a form of computer art where participants write programs that produce short audiovisual presentations. Apart from the demoscene contests, you can enjoy computer-related seminars, live acts, and a computer exhibition.</p>
<figure>
    <img loading="lazy" src="ay-music.jpg"
         alt="ZX Spectrum AY-music event at Chaos Constructions 2018"/> <figcaption>
            <p>CC'2018, ZX Spectrum AY-music</p>
        </figcaption>
</figure>

<figure>
    <img loading="lazy" src="chaos-talk.jpg"
         alt="A seminar at Chaos Constructions 2018"/> <figcaption>
            <p>Talks, seminars</p>
        </figcaption>
</figure>

<figure>
    <img loading="lazy" src="computer-exhibition.jpg"
         alt="Computer exhibition with retro hardware and gaming consoles"/> <figcaption>
            <p>Computer exhibition, retro gaming consoles</p>
        </figcaption>
</figure>

<p>On 25-26th of August I was lucky to be there and give an introductory talk about Plasma Mobile, Halium and other projects that aim for a complete GNU/Linux experience on smartphones and tablets.</p>
<p><img alt="Ilya giving a talk about Plasma Mobile" loading="lazy" src="/2018/08/plasma-mobile-at-a-demoparty/plasma-mobile-talk.jpg"></p>
<p><img alt="Ilya speaking at Chaos Constructions" loading="lazy" src="/2018/08/plasma-mobile-at-a-demoparty/speaker-portrait.jpg"></p>
<p>That was my first talk at a big event, and I was very emotional and nervous. Nevertheless, the talk went just fine, people were interested in our work around Plasma Mobile, and we had a long discussion about the future of GNU/Linux on mobiles as we see it.</p>
<p>I plan to turn my talk into a big blog post (or a series, if appropriate) so that all the stuff I collected and learned could be useful for more people. Stay tuned!</p>
<p>I would like to thank event organizers for the amazing experience and a chance to talk about my passion to the smart geeky crowd of Chaos Constructions! 🙂</p>
<p>Also, a big shout-out to @JBBGameich, Bhushan Shah, and @NotKit for their help with putting my device into shape for the talk.</p>
<figure>
    <img loading="lazy" src="kirigami-gallery.jpg"
         alt="Kirigami Gallery running on a Plasma Mobile phone"/> <figcaption>
            <p>Kirigami Gallery</p>
        </figcaption>
</figure>

<figure>
    <img loading="lazy" src="telegram.jpg"
         alt="Telegram running on a Plasma Mobile phone"/> <figcaption>
            <p>Telegram</p>
        </figcaption>
</figure>

<figure>
    <img loading="lazy" src="discover.jpg"
         alt="Discover (software center) running on a Plasma Mobile phone"/> <figcaption>
            <p>Discover Software Center</p>
        </figcaption>
</figure>

<p>If you would like to join Plasma Mobile development, you can always find interesting tasks <a href="https://invent.kde.org/plasma/plasma-mobile/-/issues">here</a> and <a href="https://invent.kde.org/groups/plasma-mobile/-/issues">here</a>.</p>
<p>For more news of the Russian KDE community, join us at <a href="https://vk.com/kde_ru">vk.com/kde_ru</a> or <a href="https://t.me/kde_ru">t.me/kde_ru</a>.</p>
]]></content:encoded></item><item><title>Summertime!</title><link>https://ilyabiz.com/2018/06/summertime/</link><pubDate>Wed, 27 Jun 2018 19:55:34 +0000</pubDate><guid isPermaLink="false">https://ilyabizyaev.wordpress.com/?p=211</guid><description>&lt;p&gt;THE EXAMS ARE OVER! Finally!&lt;/p&gt;
&lt;p&gt;My university freshman year has come to its end. I have successfully passed all the exams (yep, math included), so I&amp;rsquo;m ready to embrace summer adventures!&lt;/p&gt;
&lt;p&gt;Well&amp;hellip; after a bit of sleep, ok? 🙂&lt;/p&gt;</description><content:encoded><![CDATA[<p>THE EXAMS ARE OVER! Finally!</p>
<p>My university freshman year has come to its end. I have successfully passed all the exams (yep, math included), so I&rsquo;m ready to embrace summer adventures!</p>
<p>Well&hellip; after a bit of sleep, ok? 🙂</p>
]]></content:encoded></item><item><title>C++ Russia 2018</title><link>https://ilyabiz.com/2018/05/cpp-russia-2018/</link><pubDate>Tue, 22 May 2018 16:52:54 +0000</pubDate><guid isPermaLink="false">https://ilyabizyaev.wordpress.com/?p=202</guid><description>&lt;p&gt;Better late than never, right? 🙂&lt;/p&gt;
&lt;p&gt;I finally got a small break from the endless studies, so I decided to share my experience during &lt;a href="https://cppconf.ru"&gt;C++ Russia 2018&lt;/a&gt;, an amazing C++ developer conference that I was lucky to attend as a volunteer.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Ilya wearing a C++ Russia 2018 volunteer shirt" loading="lazy" src="https://ilyabiz.com/2018/05/cpp-russia-2018/volunteer-selfie.jpg"&gt;&lt;/p&gt;
&lt;p&gt;The conference is a fun 3-day-long event hosted by the C++ Russia User Group, and an opportunity to listen to deep knowledge and practical wisdom of speakers from all over the world. This year&amp;rsquo;s keynote speaker was Jon Kalb, a C++ developer with 25-years of experience.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Better late than never, right? 🙂</p>
<p>I finally got a small break from the endless studies, so I decided to share my experience during <a href="https://cppconf.ru">C++ Russia 2018</a>, an amazing C++ developer conference that I was lucky to attend as a volunteer.</p>
<p><img alt="Ilya wearing a C++ Russia 2018 volunteer shirt" loading="lazy" src="/2018/05/cpp-russia-2018/volunteer-selfie.jpg"></p>
<p>The conference is a fun 3-day-long event hosted by the C++ Russia User Group, and an opportunity to listen to deep knowledge and practical wisdom of speakers from all over the world. This year&rsquo;s keynote speaker was Jon Kalb, a C++ developer with 25-years of experience.</p>
<p>I managed to attend a number of talks, including:</p>
<ul>
<li><strong>Interactive C++ Compilation (REPL): The Lean Way</strong> by Viktor Kirilov</li>
<li><strong>C++ No-Launch Code Debugging</strong> by Anastasia Kazakova</li>
<li><strong>Building in Docker with Conan</strong> by Evgeny Lukyanets</li>
<li><strong>Concept Based Testing</strong> by Dietmar Kühl</li>
<li><strong>CMake Pitfalls and Where to Find Them</strong> by Dmitry Kozhevnikov</li>
<li><strong>WebAssembly Transition: Is It Worth It?</strong> by Pavel Bulatov</li>
</ul>
<p><img alt="Dietmar Kühl giving a talk about concept-based testing" loading="lazy" src="/2018/05/cpp-russia-2018/concepts-testing-talk.jpg"></p>
<p>I have also met many interesting people, some developers I previously messaged with, and made new friends 🙂</p>
<p>I would like to thank Sergey Platonov, the event manager, for this awesome experience.</p>
<figure>
    <img loading="lazy" src="registration-table.jpg"
         alt="The C&#43;&#43; Russia registration table ready for attendees"/> <figcaption>
            <p>Registration Awaits!</p>
        </figcaption>
</figure>

<figure>
    <img loading="lazy" src="plasma-presentation-room.jpg"
         alt="KDE Plasma displayed in a C&#43;&#43; Russia presentation room"/> <figcaption>
            <p>KDE software lights up the place!</p>
        </figcaption>
</figure>

<figure>
    <img loading="lazy" src="volunteer-team.jpg"
         alt="Five volunteers behind the scenes at C&#43;&#43; Russia 2018"/> <figcaption>
            <p>The Brave Team behind the scenes</p>
        </figcaption>
</figure>

]]></content:encoded></item><item><title>KDE Russia</title><link>https://ilyabiz.com/2018/02/kde-russia/</link><pubDate>Sat, 03 Feb 2018 20:02:04 +0000</pubDate><guid isPermaLink="false">https://ilyabizyaev.wordpress.com/?p=194</guid><description>&lt;p&gt;This January, an amazing milestone has been passed by the Russian KDE community: &lt;a href="https://vk.com/kde_ru"&gt;our VK group&lt;/a&gt;, main local community page, got more than a thousand subscribers!&lt;/p&gt;
&lt;p&gt;Globally, that doesn&amp;rsquo;t sound like much, but that&amp;rsquo;s really a lot for a local page of a FOSS community!&lt;/p&gt;
&lt;p&gt;&lt;img alt="KDE Russia VK community page with 1,068 members" loading="lazy" src="https://ilyabiz.com/2018/02/kde-russia/kde-russia-vk-page.jpg"&gt;&lt;/p&gt;
&lt;p&gt;My participation started more than a year ago, and throughout the year we&amp;rsquo;ve been covering all major events in community life, helping new users find their ways in FOSS and KDE in particular, inviting everyone to participate and do whatever they can to make the bright future of software freedom closer.&lt;/p&gt;</description><content:encoded><![CDATA[<p>This January, an amazing milestone has been passed by the Russian KDE community: <a href="https://vk.com/kde_ru">our VK group</a>, main local community page, got more than a thousand subscribers!</p>
<p>Globally, that doesn&rsquo;t sound like much, but that&rsquo;s really a lot for a local page of a FOSS community!</p>
<p><img alt="KDE Russia VK community page with 1,068 members" loading="lazy" src="/2018/02/kde-russia/kde-russia-vk-page.jpg"></p>
<p>My participation started more than a year ago, and throughout the year we&rsquo;ve been covering all major events in community life, helping new users find their ways in FOSS and KDE in particular, inviting everyone to participate and do whatever they can to make the bright future of software freedom closer.</p>
<p><img alt="KDE Russia VK post showing Plasma Mobile on several phones" loading="lazy" src="/2018/02/kde-russia/plasma-mobile-vk-post.jpg"></p>
<p>This year we made a friendly <a href="https://t.me/kde_ru">Telegram chat</a> and bridged it to an IRC channel (#kde_ru); I developed a bot that publishes news from our page to the chat and delivers them personally. We established a good relationship with local openSUSE and Qt communities.</p>
<p>No doubt, there&rsquo;s a lot to be done to make our community a brighter, stronger, more welcoming place. But I am proud of what we have achieved and look forward with passion.</p>
<p>If you speak Russian and would like to help spread the word about free software, you are always welcome to join us! 😃</p>
]]></content:encoded></item><item><title>Halium on ASUS ZenFone 5</title><link>https://ilyabiz.com/2018/02/halium-on-asus-zenfone-5/</link><pubDate>Sat, 03 Feb 2018 17:38:45 +0000</pubDate><guid isPermaLink="false">https://ilyabizyaev.wordpress.com/?p=191</guid><description>&lt;p&gt;&lt;a href="https://halium.org"&gt;Halium&lt;/a&gt; is a hardware abstraction layer developed collaboratively by multiple open source communities (KDE, UBPorts, Mer, LuneOS) to enable Android devices to run GNU/Linux distributions.&lt;/p&gt;
&lt;p&gt;I had posted this news on Twitter some time ago, but I&amp;rsquo;m still happy that my port got mature enough to deliver hardware-accelerated graphics:&lt;/p&gt;
&lt;p&gt;&lt;img alt="ASUS ZenFone 5 running a hardware-accelerated spiral demo with Halium" loading="lazy" src="https://ilyabiz.com/2018/02/halium-on-asus-zenfone-5/halium-zenfone.jpg"&gt;&lt;/p&gt;
&lt;p&gt;This port is quite special as the phone has an x86 CPU, a PowerVR GPU and a closed-source HWComposer. To make it possible, I authored a number of patches to Libhybris and Halium; as of now, most of them have been merged. I am going to continue my work on the device.&lt;/p&gt;</description><content:encoded><![CDATA[<p><a href="https://halium.org">Halium</a> is a hardware abstraction layer developed collaboratively by multiple open source communities (KDE, UBPorts, Mer, LuneOS) to enable Android devices to run GNU/Linux distributions.</p>
<p>I had posted this news on Twitter some time ago, but I&rsquo;m still happy that my port got mature enough to deliver hardware-accelerated graphics:</p>
<p><img alt="ASUS ZenFone 5 running a hardware-accelerated spiral demo with Halium" loading="lazy" src="/2018/02/halium-on-asus-zenfone-5/halium-zenfone.jpg"></p>
<p>This port is quite special as the phone has an x86 CPU, a PowerVR GPU and a closed-source HWComposer. To make it possible, I authored a number of patches to Libhybris and Halium; as of now, most of them have been merged. I am going to continue my work on the device.</p>
]]></content:encoded></item><item><title>Exams are over, new studies coming</title><link>https://ilyabiz.com/2018/02/exams-are-over-new-studies-coming/</link><pubDate>Sat, 03 Feb 2018 16:47:42 +0000</pubDate><guid isPermaLink="false">https://ilyabizyaev.wordpress.com/?p=189</guid><description>&lt;p&gt;Hello blog, no news from me for a while 😅&lt;/p&gt;
&lt;p&gt;Studies at the university are really overwhelming, and I feel that passing my first exams was a major step in my life.&lt;/p&gt;
&lt;p&gt;Despite my week off coming to its end already, I still haven&amp;rsquo;t done many things I planned: my brain felt exhausted, and I couldn&amp;rsquo;t help spending time watching TV series and stuff 🙂&lt;/p&gt;
&lt;p&gt;Anyway, I still have some news to share, and so I will in next blog posts.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Hello blog, no news from me for a while 😅</p>
<p>Studies at the university are really overwhelming, and I feel that passing my first exams was a major step in my life.</p>
<p>Despite my week off coming to its end already, I still haven&rsquo;t done many things I planned: my brain felt exhausted, and I couldn&rsquo;t help spending time watching TV series and stuff 🙂</p>
<p>Anyway, I still have some news to share, and so I will in next blog posts.</p>
]]></content:encoded></item><item><title>Studies</title><link>https://ilyabiz.com/2017/09/studies/</link><pubDate>Fri, 08 Sep 2017 11:10:26 +0000</pubDate><guid isPermaLink="false">https://ilyabizyaev.wordpress.com/2017/09/08/studies/</guid><description>&lt;p&gt;ITMO University is a very welcoming place, and I enjoy so much being here 🙂&lt;/p&gt;
&lt;figure&gt;
&lt;img loading="lazy" src="welcome-event.jpg"
alt="ITMO University welcome event outside the Baltic House"/&gt; &lt;figcaption&gt;
&lt;p&gt;Welcome party!&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;img loading="lazy" src="new-friends.jpg"
alt="New ITMO University students gathered on a lawn"/&gt; &lt;figcaption&gt;
&lt;p&gt;New friends!&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;img loading="lazy" src="student-documents.jpg"
alt="A grade book and student ID"/&gt; &lt;figcaption&gt;
&lt;p&gt;Student docs&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Also, I finally have a stable web connection.&lt;/p&gt;
&lt;p&gt;P.S. And all in all, St Petersburg is not THAT rainy?&lt;/p&gt;</description><content:encoded><![CDATA[<p>ITMO University is a very welcoming place, and I enjoy so much being here 🙂</p>
<figure>
    <img loading="lazy" src="welcome-event.jpg"
         alt="ITMO University welcome event outside the Baltic House"/> <figcaption>
            <p>Welcome party!</p>
        </figcaption>
</figure>

<figure>
    <img loading="lazy" src="new-friends.jpg"
         alt="New ITMO University students gathered on a lawn"/> <figcaption>
            <p>New friends!</p>
        </figcaption>
</figure>

<figure>
    <img loading="lazy" src="student-documents.jpg"
         alt="A grade book and student ID"/> <figcaption>
            <p>Student docs</p>
        </figcaption>
</figure>

<p>Also, I finally have a stable web connection.</p>
<p>P.S. And all in all, St Petersburg is not THAT rainy?</p>
]]></content:encoded></item><item><title>ITMO University</title><link>https://ilyabiz.com/2017/08/itmo-university/</link><pubDate>Wed, 23 Aug 2017 05:29:37 +0000</pubDate><guid isPermaLink="false">https://ilyabizyaev.wordpress.com/2017/08/23/itmo-university/</guid><description>&lt;p&gt;In a couple of hours I&amp;rsquo;m leaving my home city and going to Saint Petersburg, where I&amp;rsquo;m going to study for a software engineer in ITMO University for 4 years. I&amp;rsquo;ll be there tomorrow, but I probably won&amp;rsquo;t have a stable Internet connection for a while. If I don&amp;rsquo;t answer your messages, it&amp;rsquo;s just that I can&amp;rsquo;t 😉&lt;/p&gt;
&lt;p&gt;Best wishes 😃&lt;/p&gt;</description><content:encoded><![CDATA[<p>In a couple of hours I&rsquo;m leaving my home city and going to Saint Petersburg, where I&rsquo;m going to study for a software engineer in ITMO University for 4 years. I&rsquo;ll be there tomorrow, but I probably won&rsquo;t have a stable Internet connection for a while. If I don&rsquo;t answer your messages, it&rsquo;s just that I can&rsquo;t 😉</p>
<p>Best wishes 😃</p>
]]></content:encoded></item><item><title>Mountain Re-View</title><link>https://ilyabiz.com/2017/07/mountain-re-view/</link><pubDate>Tue, 11 Jul 2017 16:22:44 +0000</pubDate><guid isPermaLink="false">https://ilyabizyaev.wordpress.com/?p=160</guid><description>&lt;p&gt;Hey blog! How about a new blog post? 🙂&lt;/p&gt;
&lt;p&gt;There have been no messages from me for a while, mostly due to my exams, and I feel guilty of the silence. Now that&amp;rsquo;s high time I write about my experience.&lt;/p&gt;
&lt;p&gt;The most important event in my life for the past few months is the Google Code-In trip. It was an amazing opportunity to meet so many interesting people, see lots of stunning views, visit lots of amazing places, hear talks about topics I&amp;rsquo;ve never thought of before and make new friends.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Hey blog! How about a new blog post? 🙂</p>
<p>There have been no messages from me for a while, mostly due to my exams, and I feel guilty of the silence. Now that&rsquo;s high time I write about my experience.</p>
<p>The most important event in my life for the past few months is the Google Code-In trip. It was an amazing opportunity to meet so many interesting people, see lots of stunning views, visit lots of amazing places, hear talks about topics I&rsquo;ve never thought of before and make new friends.</p>
<figure>
    <img loading="lazy" src="golden-gate-kde-meetup.jpg"
         alt="Sergey Popov, Kevin Funk and Ilya at the Golden Gate Bridge"/> <figcaption>
            <p>A small KDE meetup 😄 (Sergey Popov, Kevin Funk and me)</p>
        </figcaption>
</figure>

<figure>
    <img loading="lazy" src="gci-winners.jpg"
         alt="Google Code-In winners taking a group selfie on a boat"/> <figcaption>
            <p>Missing all of them&hellip;</p>
        </figcaption>
</figure>

<figure>
    <img loading="lazy" src="google-office-friends.jpg"
         alt="Sergey Popov, Ivan Smirnov and Ilya outside a Google office"/> <figcaption>
            <p>Ivan Smirnov told us a bit about his work at Google</p>
        </figcaption>
</figure>

<p>With all the planes, trains and buses, it was also a big journey with an 11-hour time difference from my home.</p>
<figure>
    <img loading="lazy" src="jfk-airport.jpg"
         alt="Ilya at John F. Kennedy International Airport"/> <figcaption>
            <p>Me at the New York airport (JFK)</p>
        </figcaption>
</figure>

<p>I am SO thankful to the Google Open Source team, particularly Stephanie and Mary, for their continuous work on making Google a hospitable place for students, mentors and parents from all over the world. They paid special attention to the food (yummy!) and even invited whales 🙂</p>
<figure>
    <img loading="lazy" src="google-open-source-team.jpg"
         alt="Ilya, Stephanie, Mary and Sergey at Google"/> <figcaption>
            <p>Me, Stephanie, Mary and Sergey!</p>
        </figcaption>
</figure>

<figure>
    <img loading="lazy" src="gear-cupcakes.jpg"
         alt="Cupcakes decorated with Google Code-In gears"/> <figcaption>
            <p>Gear cupcakes!</p>
        </figcaption>
</figure>

<figure>
    <img loading="lazy" src="humpback-whale.jpg"
         alt="A humpback whale surfacing among seagulls"/> <figcaption>
            <p>A WHAAALE! 🐋</p>
        </figcaption>
</figure>

<p>I am looking forward to meeting my new friends again.</p>
<p>At the moment, me, Filip Grzywok and Soham Sen (other GPW winners) are working on a cool app. I highly recommend you to follow updates on the development; we expect our project to be released by the end of the summer.</p>
<p>I am also now working on porting Halium, a hardware abstraction layer developed by KDE, UBPorts, Mer and Sailfish, to ASUS ZenFone 5. It&rsquo;s quite difficult for me, but the communities around the project are very helpful (special thanks to Bhushan Shah and JBB) and I learn quite fast. When I succeed with porting, my phone is going to be the first x86 device to run Plasma Mobile!</p>
<p>Currently, I am entering a university. That&rsquo;s an important step in my life, so I am very immersed in it.</p>
<p>That&rsquo;s it! Hope you enjoyed reading and don&rsquo;t feel like having wasted your time. If you want to ask me anything, suggest an idea on improving my blog or just talk, feel free to contact me by any means suggested in &ldquo;Contacts&rdquo;.</p>
<p>Have a great day!</p>
]]></content:encoded></item><item><title>My Google Code-In experience</title><link>https://ilyabiz.com/2017/01/my-google-code-in-experience/</link><pubDate>Sun, 08 Jan 2017 11:07:05 +0000</pubDate><guid isPermaLink="false">https://ilyabizyaev.wordpress.com/?p=41</guid><description>&lt;p&gt;If someone asked me to describe Google Code-In with one word, I would definitely say “amazing”. And that&amp;rsquo;s not just a common word: that&amp;rsquo;s what this contest really makes me feel.&lt;/p&gt;
&lt;p&gt;To begin with, I learned about GCI by chance in a few days after its start. After registration and completing my beginner tasks, I was scrolling through the enormous task list choosing the one for me when I suddenly read “KDE”.&lt;/p&gt;</description><content:encoded><![CDATA[<p>If someone asked me to describe Google Code-In with one word, I would definitely say “amazing”. And that&rsquo;s not just a common word: that&rsquo;s what this contest really makes me feel.</p>
<p>To begin with, I learned about GCI by chance in a few days after its start. After registration and completing my beginner tasks, I was scrolling through the enormous task list choosing the one for me when I suddenly read “KDE”.</p>
<p>I did not know that my favorite community is a participating organization. So I revised my knowledge of Qt, prepared my programming tools and… opened Inkscape! Most of the tasks I completed in Google Code-In are design tasks. I designed a bunch of logo variants for KDE neon and a leaflet for Plasma, helped update application screenshots on kde.org, but what I am really proud of is redesigning 16 (!) activity icons for GCompris.</p>
<p><img alt="Sixteen colorful GCompris activity icons" loading="lazy" src="/2017/01/my-google-code-in-experience/gcompris-activity-icons.png"></p>
<p>I now work on 6 more icons, and it feels like creating an icon pack 🙂</p>
<p>Such focus on design is not accidental: in my opinion, core functionality in open source projects is usually already quite polished due to many developers contributing to it, while design, considered “unimportant”, often lacks. This is not the case of KDE, which is yet another reason for admiration; but I think there are still things to improve, and so I do 😃</p>
<p>On the programming side, I helped fix some Clazy warnings in Dolphin. The perfectionism that is found in every line of code, every guideline and in people&rsquo;s attitude made me reevaluate the amount of effort put in the software I use every day.</p>
<p>I was going to help KDE community, and I found KDE helping me 🙂</p>
<p>During the contest, I learned to use IRC, Phabricator, Git Review Board, CMake and Clazy. Also, my vector drawing skills have greatly improved. I even learned French regions!.. 🙂 This led me to understanding that the word “student”, so commonly used in GCI, does not only mean “high school student”: it also means “Google Code-In student”, and I am proud of being one.</p>
<p>I still have about a week, and I hope to help as many KDE projects as possible, meet new people and prove the world that software can be beautiful! And no matter if I win the contest or not, my KDE journey does not end there.</p>
<p><strong>Thank you, KDE!</strong></p>
]]></content:encoded></item></channel></rss>