<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Alexey Skobk.in – Posts</title><link>https://skobk.in/en/posts/</link><description>Recent content in Posts on Alexey Skobk.in</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><lastBuildDate>Thu, 05 Feb 2026 05:26:02 +0300</lastBuildDate><atom:link href="https://skobk.in/en/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Meshtastic (feat. side2k) - Sporadic Podcast EP06</title><link>https://skobk.in/en/2026/02/sporadic-podcast-ep06-meshtastic-feat-side2k/</link><pubDate>Thu, 05 Feb 2026 05:26:02 +0300</pubDate><guid>https://skobk.in/en/2026/02/sporadic-podcast-ep06-meshtastic-feat-side2k/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This time we&amp;rsquo;ll discuss &lt;a href="https://meshtastic.org"target="_blank" rel="noopener"&gt;Meshtastic&lt;/a&gt; - a decentralized
&lt;a href="https://ru.wikipedia.org/wiki/%D0%9E%D0%B4%D0%BD%D0%BE%D1%80%D0%B0%D0%BD%D0%B3%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B5%D1%82%D1%8C"target="_blank" rel="noopener"&gt;P2P&lt;/a&gt;
&lt;a href="https://ru.wikipedia.org/wiki/%D0%AF%D1%87%D0%B5%D0%B8%D1%81%D1%82%D0%B0%D1%8F_%D1%82%D0%BE%D0%BF%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F"target="_blank" rel="noopener"&gt;mesh&lt;/a&gt; network
built from cheap radio modules, which can be used as an alternative means of communication both in the city and in places where there is no cellular service at all.&lt;/p&gt;
&lt;iframe width="100%" height="112" frameborder="0" scrolling="no" style="width: 100%; height: 112px; overflow: hidden;" src="https://p.skobk.in/@sporadic_podcast/episodes/ep06-meshtastic-feat-side2k/embed"&gt;&lt;/iframe&gt;</description></item><item><title>School 21 (feat. @mitsuha_s) - Sporadic Podcast EP05</title><link>https://skobk.in/en/2025/03/sporadic-podcast-ep05-school-21-mitsuha-s/</link><pubDate>Tue, 11 Mar 2025 14:10:00 +0300</pubDate><guid>https://skobk.in/en/2025/03/sporadic-podcast-ep05-school-21-mitsuha-s/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;iframe width="100%" height="112" frameborder="0" scrolling="no" style="width: 100%; height: 112px; overflow: hidden;"
src="https://p.skobk.in/@sporadic_podcast/episodes/ep05-school21-mitsuha-s/embed"&gt;
&lt;/iframe&gt;
&lt;p&gt;In this episode, our guest tells the story of how she went through the School 21 “pool” to try her hand at studying IT.&lt;/p&gt;
&lt;p&gt;Guest: &lt;a href="https://mastodon.ml/@mitsuha_s"target="_blank" rel="noopener"&gt;https://mastodon.ml/@mitsuha_s&lt;/a&gt;&lt;/p&gt;</description></item><item><title>F-Men - Dr.Q (part 3) - Fediverse, the Internet and Life - Sporadic Podcast EP04</title><link>https://skobk.in/en/2024/09/sporadic-podcast-ep04-f-men-drq-part-3/</link><pubDate>Tue, 17 Sep 2024 05:32:13 +0300</pubDate><guid>https://skobk.in/en/2024/09/sporadic-podcast-ep04-f-men-drq-part-3/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;iframe width="100%" height="112" frameborder="0" scrolling="no" style="width: 100%; height: 112px; overflow: hidden;"
src="https://p.skobk.in/@sporadic_podcast/episodes/f-men-drq-part-3/embed"&gt;
&lt;/iframe&gt;
&lt;p&gt;The closing episode of the series with Dr.Q. Here we talk about the Fediverse, the internet, and just a little bit about everyday life.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://p.skobk.in/@sporadic_podcast/"target="_blank" rel="noopener"&gt;Subscription and links&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://p.skobk.in/@sporadic_podcast/feed.xml"target="_blank" rel="noopener"&gt;RSS feed&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>F-Men - Dr.Q (part 2) - Work - Sporadic Podcast EP03</title><link>https://skobk.in/en/2024/09/sporadic-podcast-ep03-f-men-drq-part-2/</link><pubDate>Thu, 12 Sep 2024 14:55:20 +0300</pubDate><guid>https://skobk.in/en/2024/09/sporadic-podcast-ep03-f-men-drq-part-2/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;iframe width="100%" height="112" frameborder="0" scrolling="no" style="width: 100%; height: 112px; overflow: hidden;"
src="https://p.skobk.in/@sporadic_podcast/episodes/f-men-drq-part-2/embed"&gt;
&lt;/iframe&gt;
&lt;p&gt;Today our guest is &lt;a href="https://mastodon.ml/@drq"target="_blank" rel="noopener"&gt;Dr.Q&lt;/a&gt;! Or rather, his other half. Or a third?&lt;/p&gt;
&lt;p&gt;In this part we talk about his professional work as a system administrator.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://p.skobk.in/@sporadic_podcast/"target="_blank" rel="noopener"&gt;Subscription and links&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://p.skobk.in/@sporadic_podcast/feed.xml"target="_blank" rel="noopener"&gt;RSS feed&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>F-Men - Dr.Q (part 1) - Sporadic Podcast EP02</title><link>https://skobk.in/en/2024/09/sporadic-podcast-ep02-f-men-drq-part-1/</link><pubDate>Thu, 12 Sep 2024 14:52:32 +0300</pubDate><guid>https://skobk.in/en/2024/09/sporadic-podcast-ep02-f-men-drq-part-1/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;iframe width="100%" height="112" frameborder="0" scrolling="no" style="width: 100%; height: 112px; overflow: hidden;"
src="https://p.skobk.in/@sporadic_podcast/episodes/f-men-drq-part-1/embed"&gt;
&lt;/iframe&gt;
&lt;p&gt;Today our guest is &lt;a href="https://mastodon.ml/@drq"target="_blank" rel="noopener"&gt;Dr.Q&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;We talk about the things that make us who we are, and you may get to know Doc a little better.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://p.skobk.in/@sporadic_podcast/"target="_blank" rel="noopener"&gt;Subscription and links&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://p.skobk.in/@sporadic_podcast/feed.xml"target="_blank" rel="noopener"&gt;RSS feed&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>やめて ください！(Learning Japanese) - Sporadic Podcast EP01</title><link>https://skobk.in/en/2024/07/sporadic-podcast-ep01-yamete-kudasai/</link><pubDate>Thu, 25 Jul 2024 14:34:00 +0300</pubDate><guid>https://skobk.in/en/2024/07/sporadic-podcast-ep01-yamete-kudasai/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;iframe width="100%" height="112" frameborder="0" scrolling="no" style="width: 100%; height: 112px; overflow: hidden;"
src="https://p.skobk.in/@sporadic_podcast/episodes/yamete-kudasai/embed"&gt;
&lt;/iframe&gt;
&lt;p&gt;What will you do if your friend gets a job offer from another country? Learn the language together, of course!&lt;/p&gt;
&lt;p&gt;In this episode &lt;a href="https://quietplace.xyz/@blue"target="_blank" rel="noopener"&gt;@blue@quietplace.xyz&lt;/a&gt;,
&lt;a href="https://mitra.do.rayslava.com/@rayslava"target="_blank" rel="noopener"&gt;@rayslava@mitra.do.rayslava.com&lt;/a&gt; and I
talk about learning Japanese, various other language quirks related to other languages like Korean,
English or Russian, and also just share a couple of stories.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://p.skobk.in/@sporadic_podcast/"target="_blank" rel="noopener"&gt;Subscriptions and links&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://p.skobk.in/@sporadic_podcast/feed.xml"target="_blank" rel="noopener"&gt;RSS feed&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Where people are fleeing Twitter to, or what Mastodon and the Fediverse are</title><link>https://skobk.in/en/2022/11/twitter-to-mastodon-migration/</link><pubDate>Mon, 07 Nov 2022 16:23:32 +0300</pubDate><guid>https://skobk.in/en/2022/11/twitter-to-mastodon-migration/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Today I have a video for you on a topic that is not that popular in the Russian-speaking segment yet.
Let&amp;rsquo;s try to fix that!&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;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.com/embed/ZKIZciBvCIA?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;By the way, I&amp;rsquo;ve been on Mastodon for a long time already: &lt;a href="https://gts.skobk.in/@skobkin"target="_blank" rel="noopener"&gt;@skobkin@gts.skobk.in&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Come join me too.&lt;/p&gt;</description></item><item><title>Linus Torvalds on Linux desktop problems - debconf14</title><link>https://skobk.in/en/2021/07/linus-torvalds-linux-on-desktop-problems/</link><pubDate>Wed, 28 Jul 2021 20:08:44 +0300</pubDate><guid>https://skobk.in/en/2021/07/linus-torvalds-linux-on-desktop-problems/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;My translation and voice-over of part of the questions and answers session with Linus Torvalds at debconf14. The cut includes questions and
answers on the topics of Linux desktop problems, application packaging, Linux distros and so on.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;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.com/embed/8BNFACoLe_c?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Mini-review of the ASUS ROG Zephyrus G15 GA502IU (Ryzen 7 4800HS, GTX 1660 Ti Max-Q)</title><link>https://skobk.in/en/2020/06/asus-rog-g15-review/</link><pubDate>Thu, 18 Jun 2020 01:53:04 +0300</pubDate><guid>https://skobk.in/en/2020/06/asus-rog-g15-review/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2020/06/totiweic8cv20lhf_setting_000_1_90_end_500.jpg" alt="" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;This post is the extended version of the review of the &lt;a href="https://www.asus.com/Laptops/ROG-Zephyrus-G15/Tech-Specs/"target="_blank" rel="noopener"&gt;laptop&lt;/a&gt; posted on
the store&amp;rsquo;s website. The review on the store&amp;rsquo;s website had to be cut down significantly due to the review length limit.&lt;/p&gt;
&lt;h2&gt;Preface&lt;span class="hx:absolute hx:-mt-20" id="preface"&gt;&lt;/span&gt;
&lt;a href="#preface" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Right away it&amp;rsquo;s worth noting that this review is mostly focused on the nuances and flaws of this particular model.
The fact that there are more of them listed than the pros doesn&amp;rsquo;t mean the model is simply awful. My goal is to provide the maximum
possible understanding of all the nuances that I managed to discover myself. It is up to the reader to further judge
how important each nuance is.&lt;/p&gt;
&lt;p&gt;And if you want to see this laptop being praised - welcome to YouTube, where there are
&lt;a href="https://www.youtube.com/results?search_query=ASUS&amp;#43;G15&amp;#43;review"target="_blank" rel="noopener"&gt;a bunch of reviews&lt;/a&gt; proclaiming the laptop lineup on
the Ryzen 4000 series to be the greatest event of the decade.&lt;/p&gt;
&lt;h2&gt;Pros&lt;span class="hx:absolute hx:-mt-20" id="pros"&gt;&lt;/span&gt;
&lt;a href="#pros" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;In general&lt;span class="hx:absolute hx:-mt-20" id="in-general"&gt;&lt;/span&gt;
&lt;a href="#in-general" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Powerful CPU&lt;/li&gt;
&lt;li&gt;Decent GPU&lt;/li&gt;
&lt;li&gt;Not bad cooling&lt;/li&gt;
&lt;li&gt;There is a version without Windows (a difference of ~&lt;strong&gt;11%&lt;/strong&gt; in price)&lt;/li&gt;
&lt;li&gt;It comes with a card for ASUS&amp;rsquo;s &amp;ldquo;&lt;a href="https://www.asus.com/ru/support/article/608"target="_blank" rel="noopener"&gt;premium&lt;/a&gt;&amp;rdquo; service. Worth clarifying that during
the &amp;ldquo;quarantine&amp;rdquo; it barely functions at all.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2020/06/asus_rog_g15_guts_main-1024x675.jpg" alt="Cooling system" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;True at the time of writing&lt;span class="hx:absolute hx:-mt-20" id="true-at-the-time-of-writing"&gt;&lt;/span&gt;
&lt;a href="#true-at-the-time-of-writing" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;It was released and appeared in Russian stores earlier than anywhere else&lt;/li&gt;
&lt;li&gt;It costs RELATIVELY sane money (for a new item in this price category)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Cons&lt;span class="hx:absolute hx:-mt-20" id="cons"&gt;&lt;/span&gt;
&lt;a href="#cons" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;For everyone&lt;span class="hx:absolute hx:-mt-20" id="for-everyone"&gt;&lt;/span&gt;
&lt;a href="#for-everyone" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;In this particular model the 16 gigabytes of memory come as two modules, one of which is soldered to the board. It would have been better
if a single 16 GB module were used - then one could add a second one and get 32 gigabytes of dual-channel memory. In other words, an upgrade
is possible, but far from optimal.&lt;/li&gt;
&lt;li&gt;You need to remember that a &lt;a href="https://en.wikipedia.org/wiki/Max_q"target="_blank" rel="noopener"&gt;Max-Q&lt;/a&gt; GPU is not something even cooler, but quite the opposite -
a version &lt;a href="https://www.tomshardware.com/reviews/max-q-definition-nvidia-graphics-cards-gpus-laptop,6339.html"target="_blank" rel="noopener"&gt;clocked lower to reduce power consumption&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The two screws of the back panel are of different sizes. If you&amp;rsquo;re going to take it apart - remember which screw was where, otherwise you risk damaging
the case. One of the YouTube reviewers &lt;a href="https://youtu.be/odqtceT301s?t=718"target="_blank" rel="noopener"&gt;screwed the long screw in where&lt;/a&gt;
the short one was supposed to go and got a bulge on the case next to the touchpad. The bottom part of the case is plastic,
which makes the chance of damaging it even higher.&lt;/li&gt;
&lt;li&gt;No webcam. Not a very important downside for me personally, but in the era of remote work it can matter quite a bit.&lt;/li&gt;
&lt;li&gt;The screen is decent, but not perfect. Depending on the unit, backlight bleed may be visible to varying degrees on a black background.
It doesn&amp;rsquo;t bother me, but there are people who really dislike it.&lt;/li&gt;
&lt;li&gt;The specifics of the cooling system exhaust. For some this will NOT be a downside. But some people prefer the exhaust to go up near
the display, or at least out the back only. This laptop releases air at the back and on the right side - it heats up whatever is standing
to the right of it quite noticeably (a mouse, for example). On your lap it can also be uncomfortable depending on the position. Though this
will most likely be the case with almost any reasonably powerful laptop. Either performance, or cool knees.&lt;/li&gt;
&lt;li&gt;The screen opening angle is not very large.&lt;/li&gt;
&lt;li&gt;The keyboard is somewhat of an acquired taste. It can be relatively hard to get used to due to the somewhat &amp;ldquo;shifted&amp;rdquo;, asymmetric
layout. It only affects those who don&amp;rsquo;t look at the keyboard while working.&lt;/li&gt;
&lt;li&gt;Under full load the power adapter gets very hot.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2020/06/zgirjxrrfe4alyvs_setting_000_1_90_end_500.jpg" alt="Fully opened display" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;Maximum screen opening angle&lt;/p&gt;
&lt;h3&gt;For advanced users&lt;span class="hx:absolute hx:-mt-20" id="for-advanced-users"&gt;&lt;/span&gt;
&lt;a href="#for-advanced-users" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="https://www.nix.ru/autocatalog/ssd_crucial/SSD-512-Gb-M2-2280-M-Micron-2200-MTFDHBA512TCK-3D-TLC_438172.html"target="_blank" rel="noopener"&gt;SSD from Micron&lt;/a&gt;
ships with OEM firmware, which rules out the possibility of updating it with
&lt;a href="https://www.micron.com/products/ssd/storage-executive-software"target="_blank" rel="noopener"&gt;the utility from Micron&lt;/a&gt;
even if such an update is released. The only way to get an update would be if ASUS releases one (unlikely).&lt;/li&gt;
&lt;li&gt;The same proprietary services like &lt;a href="https://rog.asus.com/us/innovation/armoury_crate/"target="_blank" rel="noopener"&gt;Armoury Crate&lt;/a&gt;. Without them
the OS itself won&amp;rsquo;t react to the hotkeys controlling the backlight and the fans. The latter can be compensated with
&lt;a href="https://github.com/FlyGoat/RyzenAdj"target="_blank" rel="noopener"&gt;RyzenAdj&lt;/a&gt; or its frontend &lt;a href="https://www.ryzencontroller.com/"target="_blank" rel="noopener"&gt;Ryzen Controller&lt;/a&gt;
(&lt;a href="https://gitlab.com/ryzen-controller-team/ryzen-controller"target="_blank" rel="noopener"&gt;Gitlab&lt;/a&gt;), the former - most likely by nothing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;For those using Linux&lt;span class="hx:absolute hx:-mt-20" id="for-those-using-linux"&gt;&lt;/span&gt;
&lt;a href="#for-those-using-linux" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;del&gt;Either on the very latest kernels, or&lt;/del&gt; on the kernels built by
&lt;a href="https://manjaro.org/"target="_blank" rel="noopener"&gt;Manjaro&lt;/a&gt; (20.0.2, 20.0.3) it is possible with this laptop
to end up in a situation where the built-in SSD drops out of the system completely. The kernel
starts complaining about access errors almost immediately after the installer
requests the list of partitions, and the SSD stops showing up everywhere until
the power is turned off (a reboot doesn&amp;rsquo;t fix the problem). Because of
this I first thought my laptop had a defective SSD. &lt;del&gt;It&amp;rsquo;s
not certain that the SSD problem is tied to the specific kernel version -
possibly,&lt;/del&gt; Most likely it&amp;rsquo;s a quirk of the Manjaro build, &lt;del&gt;or
of &lt;a href="https://calamares.io/"target="_blank" rel="noopener"&gt;Calamares&lt;/a&gt; (the local installer)&lt;/del&gt;. But the very
fact that the SSD disappears under certain circumstances is not very
pleasant and is something of a warning sign.&lt;br&gt;
&lt;strong&gt;UPD:&lt;/strong&gt; Kernels 5.0.x, 5.3.x, 5.4.x on Mint didn&amp;rsquo;t cause any problems with the
SSD (although the 5.0.x kernel lacks iwlwifi support for the required chip).
On 5.7.x in Gentoo everything works stably except for some
vendor features like the Armoury Crate alternative, which is fixed
by the patches described in the addenda below.&lt;/li&gt;
&lt;li&gt;All the control over the keyboard backlight, the fans and the rest works
through the proprietary Armoury Crate, for which there is currently in Linux &lt;del&gt;no
means of control. That is, in Linux the keyboard backlight won&amp;rsquo;t work, there will be no way to switch the cooling system
operating modes and the performance profiles&lt;/del&gt; (CPU schedulers and hacks for Ryzen like
&lt;a href="https://github.com/FlyGoat/RyzenAdj"target="_blank" rel="noopener"&gt;RyzenAdj&lt;/a&gt; can still be
used).&lt;br&gt;
&lt;strong&gt;UPD&lt;/strong&gt;: See the updates at the bottom of the post.&lt;/li&gt;
&lt;li&gt;The battery health preservation function (charging up to 60 or 80 percent),
apparently, is also controlled almost entirely in software by the
&amp;ldquo;&lt;a href="https://www.microsoft.com/en-us/p/myasus/9n7r5s6b0zzh"target="_blank" rel="noopener"&gt;My ASUS&lt;/a&gt;&amp;rdquo; application.
&lt;del&gt;In Linux charging always goes up to 100% even if you had previously set a different limit in
Windows.&lt;/del&gt; On laptops where this is configured in
UEFI/BIOS such functionality works in any system.&lt;br&gt;
&lt;strong&gt;UPD&lt;/strong&gt;: See update #4 at the bottom.&lt;/li&gt;
&lt;li&gt;If you want reliable operation in Linux - perhaps it&amp;rsquo;s worth waiting
for other laptops on the Ryzen 4000 series from MSI or the new Lenovo models -
the latter outright promised Linux certification.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2020/06/asus_rog_g15_ssd_problems_manjaro-1024x703.jpg" alt="SSD problems in Manjaro 20.0.2" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;SSD problems in Manjaro 20.0.2&lt;/p&gt;
&lt;p&gt;If you have run into a similar SSD problem in Linux too -
tell me about it in the comments.&lt;/p&gt;
&lt;h2&gt;Summary&lt;span class="hx:absolute hx:-mt-20" id="summary"&gt;&lt;/span&gt;
&lt;a href="#summary" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;It is clear that ASUS wanted to break into the market and for some time be
the only ones providing laptops with AMD 4000 series CPUs.
On the whole they succeeded, though not without some nuances.&lt;/p&gt;
&lt;p&gt;If there is no need to grab a laptop on the new CPU series as soon as possible,
I would personally recommend waiting and seeing what the other
manufacturers come up with. There is a chance that their solutions will be more thought-through
and polished.&lt;/p&gt;
&lt;p&gt;For the average user who is used to installing all the junk the
manufacturer recommends, most likely there will be no difference at all - here in
general it&amp;rsquo;s a safe buy - the machine is powerful.&lt;/p&gt;
&lt;p&gt;If you want to expand the memory - this particular sub-model is possibly
not the most optimal choice.&lt;/p&gt;
&lt;p&gt;For those who like to keep things junk-free or use something other than Windows altogether
it may be worth looking at other alternatives. Though in general
the laptop can be used in Linux. Though some of the conveniences will be unavailable
(at the moment almost everything is already available). If anything - keep in mind that
an item without defects can only be returned within 10 days and in fully
preserved condition and packaging.&lt;/p&gt;
&lt;p&gt;Overall the machine is powerful, but somewhat debatable in its nuances. I recommend
evaluating and choosing again after the release of the analogs from the main
competitors - MSI (&lt;a href="https://www.msi.com/Laptop/Bravo-15-A4DX"target="_blank" rel="noopener"&gt;Bravo 15&lt;/a&gt;),
HP (&lt;a href="https://www.omen.com/us/en/laptops/2020-omen-15-amd.html"target="_blank" rel="noopener"&gt;Omen 15&lt;/a&gt;) and especially Lenovo
(&lt;a href="https://www.notebookcheck.net/Lenovo-Legion-5-with-AMD-Ryzen-4800H-is-now-customizable.463396.0.html"target="_blank" rel="noopener"&gt;Legion 5&lt;/a&gt;, etc).&lt;/p&gt;
&lt;p&gt;It is possible that &lt;strong&gt;at least for a while the 4800HS and 4900HS CPUs are an ASUS exclusive&lt;/strong&gt;. All the models I&amp;rsquo;ve seen from other
manufacturers &lt;em&gt;at the moment&lt;/em&gt; come with the &lt;a href="https://www.amd.com/ru/products/apu/amd-ryzen-7-4800h"target="_blank" rel="noopener"&gt;4800H&lt;/a&gt; variant, which
differs by an increased thermal package of 45 Watts (as opposed to 35 Watts on the 4800HS). &lt;a href="https://www.notebookcheck-ru.com/AMD-Ryzen-7-4800HS.458562.0.html"target="_blank" rel="noopener"&gt;More on 4800H vs 4800HS&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Update #1 (18.06.2020)&lt;span class="hx:absolute hx:-mt-20" id="update-1-18062020"&gt;&lt;/span&gt;
&lt;a href="#update-1-18062020" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Someone dropped a link in the comments to the review on the store&amp;rsquo;s website to a project that should solve at least part of the problems with
ASUS laptops in Linux - Rog Core: &lt;a href="https://github.com/flukejones/rog-core"target="_blank" rel="noopener"&gt;https://github.com/flukejones/rog-core&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;At the moment &lt;a href="https://github.com/flukejones/rog-core/issues/12"target="_blank" rel="noopener"&gt;a discussion&lt;/a&gt; about GA502IU support is going on.&lt;/p&gt;
&lt;p&gt;Many thanks to the person who shared the link to this project.&lt;/p&gt;
&lt;h2&gt;Update #2 (21.06.2020)&lt;span class="hx:absolute hx:-mt-20" id="update-2-21062020"&gt;&lt;/span&gt;
&lt;a href="#update-2-21062020" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;When choosing a Linux distro, it may make sense to pay attention
to which is the newest kernel version available in that distro. And
here are a few reasons for that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;5.6+
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.phoronix.com/scan.php?page=news_item&amp;amp;px=ASUS-TUF-Ryzen-Thermal-Fix"target="_blank" rel="noopener"&gt;&lt;strong&gt;ASUS TUF Laptops With Ryzen Are Now Patched To Stop Overheating On Linux&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.phoronix.com/scan.php?page=news_item&amp;amp;px=Linux-5.6-Navi-GPU-Reset"target="_blank" rel="noopener"&gt;Linux 5.6 Flipping On GPU Reset Support For AMD Renoir + Radeon Navi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.phoronix.com/scan.php?page=news_item&amp;amp;px=Linux-5.6-HWMON-Changes"target="_blank" rel="noopener"&gt;Linux 5.6 &amp;ldquo;HWMON&amp;rdquo; Changes Sent In With Big AMD Improvements&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;5.7+
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.phoronix.com/scan.php?page=news_item&amp;amp;px=AMDGPU-Starts-5.7-Fixes"target="_blank" rel="noopener"&gt;AMDGPU Driver Sees More Fixes For Linux 5.7 Development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.phoronix.com/scan.php?page=news_item&amp;amp;px=AMDGPU-Initial-Batch-Linux-5.7"target="_blank" rel="noopener"&gt;Initial Batch Of Radeon Graphics Driver Changes For Linux 5.7&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Update #3 (22.06.2020)&lt;span class="hx:absolute hx:-mt-20" id="update-3-22062020"&gt;&lt;/span&gt;
&lt;a href="#update-3-22062020" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;With the 5.7.4 kernel, the &lt;a href="https://lab.retarded.farm/zappel/asus-rog-zephyrus-g14/-/tree/master/kernel_patches"target="_blank" rel="noopener"&gt;set of patches&lt;/a&gt;
for the G14 (they fit the G15 too), &lt;a href="https://lab.retarded.farm/zappel/asus-rog-zephyrus-g14"target="_blank" rel="noopener"&gt;the right kernel and firmware settings&lt;/a&gt;
and &lt;a href="https://github.com/flukejones/rog-core"target="_blank" rel="noopener"&gt;Rog Core&lt;/a&gt; the laptop is usable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The throttling mentioned above, caused by improper power and cooling management, is gone&lt;/li&gt;
&lt;li&gt;The keyboard backlight works and reacts to the hotkeys (Fn+Up, Fn+Down) even without an X server&lt;/li&gt;
&lt;li&gt;The display backlight is adjustable properly too&lt;/li&gt;
&lt;li&gt;The fans can be cycled between &lt;a href="https://github.com/flukejones/rog-core#use"target="_blank" rel="noopener"&gt;three modes&lt;/a&gt;
(numbers according to the &lt;code&gt;/etc/rogcore.conf&lt;/code&gt; configuration):
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;silent&lt;/code&gt; (&lt;code&gt;2&lt;/code&gt;) - the &amp;ldquo;quiet&amp;rdquo; mode, where once a certain temperature is reached, throttling and slowdowns begin in the name of quiet operation&lt;/li&gt;
&lt;li&gt;&lt;code&gt;normal&lt;/code&gt; (&lt;code&gt;0&lt;/code&gt;) - the &amp;ldquo;normal&amp;rdquo; mode. Doesn&amp;rsquo;t differ very much from &lt;code&gt;boost&lt;/code&gt;, but on average the fans spin slower&lt;/li&gt;
&lt;li&gt;&lt;code&gt;boost&lt;/code&gt; (&lt;code&gt;1&lt;/code&gt;) - the &amp;ldquo;loud&amp;rdquo; one, the fastest fan rotation mode under increasing load&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ACPI returns the temperature of the CPU, the built-in GPU and the fan rotation speeds&lt;/li&gt;
&lt;li&gt;Sound works (it didn&amp;rsquo;t come up right away)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;amdgpu-pci-0600
Adapter: PCI adapter
vddgfx: N/A
vddnb: N/A
edge: &amp;#43;50.0°C (crit = &amp;#43;0.0°C, hyst = &amp;#43;0.0°C)
k10temp-pci-00c3
Adapter: PCI adapter
Tctl: &amp;#43;59.2°C
Tdie: &amp;#43;59.2°C
asus-isa-0000
Adapter: ISA adapter
cpu_fan: 3700 RPM&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You can look at my kernel configuration for this laptop
&lt;a href="https://bitbucket.org/skobkin/linux-config/src/master/laptop/asus_rog_g15_ga502iu/"target="_blank" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Update #4 (04.07.2020)&lt;span class="hx:absolute hx:-mt-20" id="update-4-04072020"&gt;&lt;/span&gt;
&lt;a href="#update-4-04072020" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;One of the recent Rog Core updates added the ability to control the maximum battery charge level.&lt;/p&gt;
&lt;p&gt;Overall, with a fresh patched kernel in place, I personally no longer feel like I&amp;rsquo;m missing anything in Linux on this laptop.&lt;/p&gt;
&lt;p&gt;I think that once these patches are upstream, this model can be considered suitable for an average Linux user.&lt;/p&gt;
&lt;h2&gt;Update #5 (24.08.2020)&lt;span class="hx:absolute hx:-mt-20" id="update-5-24082020"&gt;&lt;/span&gt;
&lt;a href="#update-5-24082020" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The developer of the rog-core utility has started developing a new utility,
&lt;a href="https://gitlab.com/asus-linux/asus-nb-ctrl"target="_blank" rel="noopener"&gt;asus-nb-ctrl&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Also, a DKMS module &lt;a href="https://gitlab.com/asus-linux/hid-asus-rog"target="_blank" rel="noopener"&gt;&lt;code&gt;hid_asus_rog&lt;/code&gt;&lt;/a&gt; has appeared, which replaces the stock module
&lt;code&gt;hid_asus&lt;/code&gt; and enables support for Fn key combinations for backlight adjustment and fan mode switching on new ASUS laptops.&lt;/p&gt;
&lt;p&gt;The development discussion is happening in &lt;a href="https://discord.gg/PVyFzWj"target="_blank" rel="noopener"&gt;Discord&lt;/a&gt; here.&lt;/p&gt;
&lt;h2&gt;Update #6 (14.10.2020)&lt;span class="hx:absolute hx:-mt-20" id="update-6-14102020"&gt;&lt;/span&gt;
&lt;a href="#update-6-14102020" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The &lt;a href="https://kernelnewbies.org/Linux_5.9#x86"target="_blank" rel="noopener"&gt;Linux 5.9&lt;/a&gt; kernel has accepted
&lt;a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=13bceda68fb9ef388ad40d355ab8d03ee64d14c2"target="_blank" rel="noopener"&gt;a patch&lt;/a&gt;
for the asus-nb-wmi driver. All that&amp;rsquo;s left is to wait for
&lt;a href="https://www.spinics.net/lists/linux-input/msg68977.html"target="_blank" rel="noopener"&gt;the patch&lt;/a&gt; with
Fn key combination support for the hid_asus driver to be accepted, and then the kernel patches will no longer be needed.&lt;/p&gt;
&lt;h2&gt;Update #7 (07.11.2020)&lt;span class="hx:absolute hx:-mt-20" id="update-7-07112020"&gt;&lt;/span&gt;
&lt;a href="#update-7-07112020" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The Linux 5.11 kernel &lt;a href="https://www.phoronix.com/scan.php?page=news_item&amp;amp;px=ASUS-N-Key-Keyboard-Linux-5.11"target="_blank" rel="noopener"&gt;will get&lt;/a&gt;
support for ASUS ROG N-Key keyboards.&lt;/p&gt;
&lt;p&gt;If I haven&amp;rsquo;t forgotten anything, this covers all the functions of these laptops unsupported by the kernel.&lt;/p&gt;
&lt;p&gt;Congratulations to everyone involved :)&lt;/p&gt;
&lt;h2&gt;Update #8 (11.06.2021)&lt;span class="hx:absolute hx:-mt-20" id="update-8-11062021"&gt;&lt;/span&gt;
&lt;a href="#update-8-11062021" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The Linux 5.12 kernel supports everything necessary, and &lt;a href="https://gitlab.com/asus-linux/asusctl"target="_blank" rel="noopener"&gt;asusctl&lt;/a&gt; (the evolution of rog-core)
lets you control all of it and shows notifications when switching power consumption modes.&lt;/p&gt;
&lt;p&gt;Also, a website with information for owners of recent ASUS laptops with Linux has appeared:
&lt;a href="https://asus-linux.org"target="_blank" rel="noopener"&gt;asus-linux.org&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>How to help scientists fight CoVID-19 (and other diseases) without doing anything</title><link>https://skobk.in/en/2020/06/folding-at-home-quick-start/</link><pubDate>Fri, 05 Jun 2020 21:07:10 +0300</pubDate><guid>https://skobk.in/en/2020/06/folding-at-home-quick-start/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Folding@home"target="_blank" rel="noopener"&gt;Folding@Home&lt;/a&gt; (F@H, FAH)
— a distributed computing project for running computer simulations of protein molecule folding. The project
was launched on October 1, 2000 by scientists from Stanford University.&lt;/p&gt;
&lt;p&gt;&amp;ndash; Wikipedia&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In the video below, starting at &lt;a href="https://youtu.be/W1VltUD0C44?t=518"target="_blank" rel="noopener"&gt;8:40&lt;/a&gt;
the biologist Alexander Panchin talks about the Folding@Home project:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://youtu.be/W1VltUD0C44?t=518"target="_blank" rel="noopener"&gt;https://youtu.be/W1VltUD0C44?t=518&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This post is a quick guide on how to join the distributed computing effort.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to the Folding@Home project website, to the client download section:
&lt;a href="https://foldingathome.org/start-folding/"target="_blank" rel="noopener"&gt;foldingathome.org/start-folding&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;From there it all depends on your OS. If you have a Mac - I unfortunately can&amp;rsquo;t tell you anything, but I think everything
is just as simple as in the other OSes. If you have Linux - you don&amp;rsquo;t need my advice - you install the package from the official repository
of your distro and off you go folding proteins. If it&amp;rsquo;s Windows - you will be shown a link to download the client
installer, which will look like &amp;ldquo;&lt;code&gt;fah-installer_x.y.z_x86.exe&lt;/code&gt;&amp;rdquo; (where x, y, z is the version number).&lt;/li&gt;
&lt;li&gt;Download the client. Run the installation.&lt;/li&gt;
&lt;li&gt;The simplest option is to pick Express Install. If you know what you&amp;rsquo;re doing - you pick &amp;ldquo;Custom install&amp;rdquo; and go ahead.&lt;/li&gt;
&lt;li&gt;After the installation, either the installer will launch the client for you if you didn&amp;rsquo;t uncheck the corresponding checkbox,
or we launch the Folding@HOME client manually via the menu or a shortcut.&lt;/li&gt;
&lt;li&gt;The client starts and a control panel opens in your browser at
&lt;a href="https://client.foldingathome.org/"target="_blank" rel="noopener"&gt;client.foldingathome.org&lt;/a&gt;.
Don&amp;rsquo;t be surprised, this is normal. The control panel was loaded from their server, but it connects to the client installed
on your PC.&lt;/li&gt;
&lt;li&gt;If everything went according to plan, the client will offer two options: &amp;ldquo;Fold as Anonymous&amp;rdquo; or &amp;ldquo;Set up identity&amp;rdquo;.&lt;br&gt;
The first is for those who don&amp;rsquo;t care at all how and how much they contribute.&lt;br&gt;
The second is for those who want to participate in the rankings personally, create a team with friends or join an already existing one.&lt;/li&gt;
&lt;li&gt;If you decided to contribute non-anonymously, then we choose &amp;ldquo;Set up an identity&amp;rdquo; and press &amp;ldquo;Start folding&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Next you will be asked to enter a username, a team number and a passkey. All of these are optional, but if you chose
this option, it&amp;rsquo;s worth specifying at least the username. If you created a team with friends or want to join
someone&amp;rsquo;s team, you also need to enter its number. If you set a passkey - you can be sure that only your points for the completed
work will be credited to you. F@H also promises bonus points to those who secured themselves with a passkey for completing
tasks ahead of schedule.
Before choosing a username it&amp;rsquo;s worth visiting the statistics portal and checking that it isn&amp;rsquo;t taken by anyone:
&lt;a href="https://stats.foldingathome.org/donors"target="_blank" rel="noopener"&gt;stats.foldingathome.org/donors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;In general, some time after you have entered these settings your computer will start executing the distributed computing tasks.&lt;/li&gt;
&lt;li&gt;You can also change the settings to choose the load level on your PC and the computing mode.&lt;br&gt;
Try different options and pick the one that suits you best - it doesn&amp;rsquo;t interfere with work and doesn&amp;rsquo;t cause the computer
to overheat. Powerful computers can run in Full mode and you will barely notice that Folding@HOME
is doing the calculations. On such configurations the calculations may only get in the way of heavy tasks like video editing,
design systems, software builds or running games.
&lt;ul&gt;
&lt;li&gt;Power is the average level of load on your PC. Three load levels can be chosen:
&lt;ul&gt;
&lt;li&gt;Light (light)&lt;/li&gt;
&lt;li&gt;Medium (medium)&lt;/li&gt;
&lt;li&gt;Full (full, maximum).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;When - when the calculations will be performed.
&lt;ul&gt;
&lt;li&gt;While I&amp;rsquo;m working - the calculations always run, including while you are working at the computer.&lt;/li&gt;
&lt;li&gt;Only when idle - the client will try to run the calculations only when the computer isn&amp;rsquo;t loaded with anything else.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Above you can choose which projects you want to help with the calculations. In the dropdown labeled
&amp;ldquo;I support research fighting&amp;rdquo; there may be different projects depending on the client version.
At the time of writing the following options were available there:
&lt;ul&gt;
&lt;li&gt;Any disease - research into any diseases&lt;/li&gt;
&lt;li&gt;COVID-19 - the coronavirus everyone knows about&lt;/li&gt;
&lt;li&gt;Alzheimer&amp;rsquo;s - &lt;a href="https://en.wikipedia.org/wiki/Alzheimer%27s_disease"target="_blank" rel="noopener"&gt;Alzheimer&amp;rsquo;s&lt;/a&gt; disease&lt;/li&gt;
&lt;li&gt;Cancer - research into cancer diseases&lt;/li&gt;
&lt;li&gt;Huntington&amp;rsquo;s - &lt;a href="https://en.wikipedia.org/wiki/Huntington%27s_disease"target="_blank" rel="noopener"&gt;Huntington&amp;rsquo;s&lt;/a&gt; disease
(remember &amp;ldquo;&lt;a href="https://en.wikipedia.org/wiki/Thirteen_%28House%29"target="_blank" rel="noopener"&gt;Thirteen&lt;/a&gt;&amp;rdquo; from House M.D.)&lt;/li&gt;
&lt;li&gt;Parkinson&amp;rsquo;s - &lt;a href="https://en.wikipedia.org/wiki/Parkinson%27s_disease"target="_blank" rel="noopener"&gt;Parkinson&amp;rsquo;s&lt;/a&gt; disease
(remember &lt;a href="https://en.wikipedia.org/wiki/Michael_J._Fox"target="_blank" rel="noopener"&gt;Michael J. Fox&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;High Priority - picking the priority tasks.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;After choosing the settings you can close the control panel in the browser - the client will keep working in the background.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;An example of what the control panel looks like once all the settings are done:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2020/06/fah_web-1024x747.png" alt="" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;An important note: the client may need some time to find a task for the calculations. Also, the client won&amp;rsquo;t necessarily
always keep your PC loaded - it depends on the availability of free tasks (and the computing capacity of the network).&lt;/p&gt;
&lt;p&gt;Once your PC receives one or more tasks - the panel will start displaying their execution status:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2020/06/fah_web_working-1024x750.png" alt="" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;You can always open the web control panel at the same address
&lt;a href="https://client.foldingathome.org/"target="_blank" rel="noopener"&gt;client.foldingathome.org&lt;/a&gt;
or use the advanced control panel if you pick the &amp;ldquo;Advanced control&amp;rdquo; item from the menu of the Folding@Home icon in the tray:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2020/06/fah_tray_menu.png" alt="" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;You can also &lt;a href="https://foldingathome.org/statistics/"target="_blank" rel="noopener"&gt;create a team&lt;/a&gt;
with friends and keep track together of what contribution you have made to the research. Or you can join an already
&lt;a href="https://stats.foldingathome.org/teams-monthly"target="_blank" rel="noopener"&gt;existing team&lt;/a&gt; and help it climb up the rankings.&lt;/p&gt;
&lt;p&gt;Happy folding!&lt;/p&gt;</description></item><item><title>Secret messages in the Doom (2016) soundtrack - Mick Gordon at GDC</title><link>https://skobk.in/en/2020/02/doom-secret-messages-voice-over/</link><pubDate>Sat, 08 Feb 2020 18:40:00 +0300</pubDate><guid>https://skobk.in/en/2020/02/doom-secret-messages-voice-over/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Recently I came across a video of Mick Gordon&amp;rsquo;s talk at GDC, where he told the story of how the soundtrack for
Doom was created, what difficulties they had to face and how those were solved.&lt;/p&gt;
&lt;p&gt;The talk didn&amp;rsquo;t go without some funny moments either. One of them, where Mick tells about the easter eggs he left
in the soundtrack, I decided to translate and voice over.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;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.com/embed/tULJ4GFfyOw?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;Also, if your English is good, I can recommend watching
&lt;a href="https://www.youtube.com/watch?v=U4FNBMZsqrY"target="_blank" rel="noopener"&gt;the full talk&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>RosKomNadzor's excuses about the blocks</title><link>https://skobk.in/en/2018/05/rkn-illegal-censorship/</link><pubDate>Tue, 15 May 2018 12:35:33 +0300</pubDate><guid>https://skobk.in/en/2018/05/rkn-illegal-censorship/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;My inquiry&lt;span class="hx:absolute hx:-mt-20" id="my-inquiry"&gt;&lt;/span&gt;
&lt;a href="#my-inquiry" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;As of today, almost a month has passed since RosKomNadzor blocked my resources.
No, there is no contradiction in the fact that the block is still active at the moment you are reading this post - I rented a VPS in Germany
to proxy the requests to my main server and repointed the DNS to this proxy. This fact alone once again
demonstrates the whole absurdity of the blocking situation. But let&amp;rsquo;s not stop at the small stuff and read what
&lt;strong&gt;RosKomNadzor replied&lt;/strong&gt; to my inquiry meant to find out the reasons for the blocking of my servers. When my servers were
blocked by subnet (51.15.0.0/16), I wrote to the &amp;ldquo;&lt;em&gt;hotline&lt;/em&gt;&amp;rdquo;, which had been created to
counter the spread of &amp;ldquo;&lt;em&gt;false information&lt;/em&gt;&amp;rdquo; about unlawful blockings.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Good afternoon. Yesterday, for some reason, my resources and the auxiliary services hosted on the servers with the following
addresses:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;51.15.37.92&lt;/li&gt;
&lt;li&gt;51.15.70.45&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;were blocked. I would like to clarify the reason for the blocking of these resources.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Their reply&lt;span class="hx:absolute hx:-mt-20" id="their-reply"&gt;&lt;/span&gt;
&lt;a href="#their-reply" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;For a long time nobody replied to me and I even thought they had just written that
&lt;a href="https://rkn.gov.ru/news/rsoc/news56980.htm"target="_blank" rel="noopener"&gt;news item&lt;/a&gt;
for show and were ignoring all the letters. However, today I received a reply. Well then, let&amp;rsquo;s find out what I am guilty of and
why I (and a huge number of other resources at the online.net provider) got blocked.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Hello.&lt;/p&gt;
&lt;p&gt;We hereby notify you that, under the decision of the Tagansky District Court of the city of Moscow dated 13.04.2018 in case
No. 2-1779/2018, Roskomnadzor and other persons are obliged to cease creating the technical conditions for the reception,
transmission, delivery and (or) processing of the electronic messages of Internet users distributed via
information systems and (or) programs for electronic computers whose operation is provided by
Telegram Messenger Limited Liability Partnership. The IP addresses you specified, 51.15.37.92 and 51.15.70.45, are part of the subnet
51.15.0.0/16, used to ensure the operation of the communication Internet services of the specified organizer
of information dissemination on the Internet, and a corresponding notification to this effect was sent to the hosting provider. In order to
exclude a network address from the feed sent to the hosting provider, a message about
the measures taken to cease creating the technical conditions for the operation of the Telegram application must be sent. On the basis of such
a message Roskomnadzor conducts a verification and, after this fact is confirmed, access to the corresponding network
address and the information resources located on it is resumed. For further information we recommend that you
contact your hosting provider and (or) telecom operator. It should be noted that Russian
hosting providers, in the vast majority of cases, comply with the requirements of Russian legislation and extremely rarely
allow their resources to be blocked.&lt;/p&gt;
&lt;p&gt;Consultant of the hotline for questions concerning the implementation of Articles 15.1-15.3 of the Federal
Law &amp;ldquo;On Information, Information Technologies and Information Protection&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Needless to say, there is no Telegram server-side infrastructure on my personal servers? RosKomNadzor is a typical representative
of a government agency. They don&amp;rsquo;t care whether they cause anyone financial losses or violate someone&amp;rsquo;s freedom of speech or the right to
free access to information. They are empowered to disrupt the operation of Internet services, but bear no
responsibility whatsoever for unlawful blockings or abuse of official authority. Their reply shows that they don&amp;rsquo;t consider
themselves obliged to explain why they decided that blocking an entire huge subnet was acceptable - and even more so,
my personal resources. And yes, let me remind you that this irresponsible agency was granted such powers under the banner of
&lt;a href="https://ru.wikipedia.org/wiki/%D0%A4%D0%B5%D0%B4%D0%B5%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B7%D0%B0%D0%BA%D0%BE%D0%BD_%E2%84%96_139-%D0%A4%D0%97_%D0%BE%D1%82_28_%D0%B8%D1%8E%D0%BB%D1%8F_2012_%D0%B3%D0%BE%D0%B4%D0%B0"target="_blank" rel="noopener"&gt;protecting children&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;UPD as of 08.06.2018&lt;span class="hx:absolute hx:-mt-20" id="upd-as-of-08062018"&gt;&lt;/span&gt;
&lt;a href="#upd-as-of-08062018" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Just recently RosKomNadzor unblocked about 7 million addresses, including the &lt;code&gt;51.15.0.0/16&lt;/code&gt; subnet, where
my services are hosted as well. Naturally, no replies to my follow-up requests or any apologies ever arrived.&lt;/p&gt;
&lt;p&gt;There is a &lt;a href="https://t.me/usher2/156"target="_blank" rel="noopener"&gt;hypothesis&lt;/a&gt; that this is connected to the &amp;ldquo;direct line&amp;rdquo; live broadcast.
&lt;img src="https://skobk.in/wp-content/uploads/2018/05/rkn_skobkin_3.png" alt="" data-zoomable loading="lazy" /&gt;&lt;/p&gt;</description></item><item><title>My set of PhpStorm plugins</title><link>https://skobk.in/en/2017/11/my-phpstorm-plugins-list/</link><pubDate>Thu, 30 Nov 2017 22:38:51 +0300</pubDate><guid>https://skobk.in/en/2017/11/my-phpstorm-plugins-list/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-amber-200 hx:bg-amber-100 hx:text-amber-900 hx:dark:border-amber-200/30 hx:dark:bg-amber-900/30 hx:dark:text-amber-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/&gt;&lt;/svg&gt;Warning&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a 2017 list of plugins. It remains only partially relevant: since then, some of the plugins may have been
built into PhpStorm, renamed, abandoned or replaced by modern IDE capabilities.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Today is quite an interesting day.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Release of &lt;a href="https://secure.php.net/archive/2017.php#id2017-11-30-1"target="_blank" rel="noopener"&gt;PHP
7.2.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Release of Symfony
&lt;a href="https://symfony.com/blog/symfony-3-4-curated-new-features"target="_blank" rel="noopener"&gt;3.4&lt;/a&gt; and &lt;a href="https://symfony.com/4"target="_blank" rel="noopener"&gt;4.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Release of &lt;a href="https://blog.jetbrains.com/phpstorm/2017/11/phpstorm-2017-3-release/"target="_blank" rel="noopener"&gt;PhpStorm
2017.3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In a pathetic attempt to make it a little more interesting, I will publish here the list of plugins that I use when working in
&lt;a href="https://www.jetbrains.com/phpstorm/"target="_blank" rel="noopener"&gt;PhpStorm&lt;/a&gt;.&lt;/p&gt;
&lt;h1&gt;A brief preface&lt;/h1&gt;&lt;p&gt;This list of plugins is neither complete nor mandatory to install. It is just a &amp;ldquo;snapshot&amp;rdquo; of part of my current plugin
list that I decided to write about. I may have accidentally written here about a plugin that ships &amp;ldquo;out of the box&amp;rdquo;, or treated a third-party plugin as one of those and left it out. Before installing each plugin, it is worth reading about it and judging whether
you personally need it. I can also recommend searching the plugin repositories for keywords related to your work&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;it can make your work noticeably more comfortable in small ways. Then again, if you have bought PhpStorm, this probably needs no
explanation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;The gist&lt;/h1&gt;&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2017/11/screenshot_16858.png" alt="" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/9525--env-files-support"target="_blank" rel="noopener"&gt;.env files support&lt;/a&gt; PHP projects have caught up with the idea
of unifying application environment configuration through environment variables. In Symfony 3.3 itself (4.0 and Flex), the Dotenv
component can already be used for configuration.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7495--ignore"target="_blank" rel="noopener"&gt;.ignore&lt;/a&gt; Lately I almost never use the .gitignore file generation functionality, but it still helps me with path autocompletion&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/4230-bashsupport"target="_blank" rel="noopener"&gt;BashSupport&lt;/a&gt;
Writing shell scripts is often useful for automation. This plugin can make that task more comfortable too.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2017/11/screenshot_17553.png" alt="Bitbucket Linky" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/8015-bitbucket-linky"target="_blank" rel="noopener"&gt;Bitbucket Linky&lt;/a&gt; When developing with Bitbucket
as your code hosting, it lets you quickly get a link to a directory, file, commit or line right from the context menu
or a hotkey. It also lets you create a Pull Request right from the changes tab in the Version Control panel -
a feature I use very often.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7572-bootstrap-3"target="_blank" rel="noopener"&gt;Bootstrap 3&lt;/a&gt;
An extensive set of live templates for Bootstrap 3/4&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/6630-command-line-tool-support"target="_blank" rel="noopener"&gt;Command Line Tool
Support&lt;/a&gt; Integration of CLI tools into the IDE. Over
time I stopped using it, having switched to drop-down consoles like &lt;a href="http://guake-project.org/"target="_blank" rel="noopener"&gt;Guake&lt;/a&gt;
(&lt;a href="https://www.kde.org/applications/system/yakuake/"target="_blank" rel="noopener"&gt;Yakuake&lt;/a&gt;, &lt;a href="https://github.com/lanoxx/tilda"target="_blank" rel="noopener"&gt;Tilda&lt;/a&gt;, etc) and &lt;a href="https://www.gnu.org/software/screen/"target="_blank" rel="noopener"&gt;GNU
Screen&lt;/a&gt;, but it may be useful to someone.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7251-dynamicreturntypeplugin"target="_blank" rel="noopener"&gt;DynamicReturnTypePlugin&lt;/a&gt;
A plugin that improves the analysis and display of the return types of functions and methods by various means
(additional code analysis, JSON schemas).&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7294-editorconfig"target="_blank" rel="noopener"&gt;EditorConfig&lt;/a&gt;
Like .env files support, this is another &lt;a href="http://editorconfig.org/"target="_blank" rel="noopener"&gt;unification initiative&lt;/a&gt;, only in this case
for the configuration of a text editor or IDE&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2017/11/ul-li-item-5.gif" alt="Emmet Everywhere" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7450-emmet-everywhere"target="_blank" rel="noopener"&gt;EmmetEverywhere&lt;/a&gt;
A plugin that can be useful to those who have to create a lot of similar (and not so similar) markup. It gives you the ability to use &lt;a href="https://emmet.io/"target="_blank" rel="noopener"&gt;Emmet&lt;/a&gt; (&lt;a href="https://habrahabr.ru/post/175747/"target="_blank" rel="noopener"&gt;the evolution of Zen Coding&lt;/a&gt;,
an intuitive CSS-like syntax and HTML code generator).&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/5047-go-language-golang-org-support-plugin"target="_blank" rel="noopener"&gt;Go language (golang.org) support
plugin&lt;/a&gt; Adds basic Go support
to PhpStorm. Unfortunately, the plugin used to be more capable, but now that JetBrains have released a separate IDE
for &lt;a href="https://golang.org/"target="_blank" rel="noopener"&gt;Go&lt;/a&gt; (&lt;a href="https://www.jetbrains.com/go/"target="_blank" rel="noopener"&gt;GoLand&lt;/a&gt;), you will either have to switch to it or
settle for what there is.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/264-jsintentionpowerpack"target="_blank" rel="noopener"&gt;JavaScript Intention Power
Pack&lt;/a&gt; Adds a bunch of different intentions to the
JavaScript editor. Personally I rarely use it, since I mostly work on the backend.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2017/11/screenshot_15112.png" alt="JSONOnlineViewer" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7838-jsononlineviewer"target="_blank" rel="noopener"&gt;JSONOnlineViewer&lt;/a&gt;
Can be useful, for example, when debugging APIs.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7793-markdown-support"target="_blank" rel="noopener"&gt;Markdown
support&lt;/a&gt; Useful when writing README.md and the like.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7141-mongo-plugin"target="_blank" rel="noopener"&gt;Mongo Plugin&lt;/a&gt;
Integrates a simple MongoDB interface into the IDE, similar to &amp;ldquo;Database Tools and SQL&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7822-options-completion-plugin"target="_blank" rel="noopener"&gt;Options completion
plugin&lt;/a&gt; Parses &lt;a href="https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc.md#examples-12"target="_blank" rel="noopener"&gt;the phpDoc description of associative arrays&lt;/a&gt; and uses that
data for autocompletion.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7577-php-1up-"target="_blank" rel="noopener"&gt;PHP 1Up!&lt;/a&gt; A pack of
inspections, shortcuts and other goodies.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2017/11/screenshot_14258.png" alt="PHP Advanced AutoComplete" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7276-php-advanced-autocomplete"target="_blank" rel="noopener"&gt;PHP Advanced AutoComplete&lt;/a&gt; Autocompletion of the
parameters of functions built into PHP.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7320-php-annotations"target="_blank" rel="noopener"&gt;PHP
Annotations&lt;/a&gt; Makes working with annotations more convenient,
imports missing classes automatically, handles aliases, etc. Especially useful when working with Symfony and &lt;a href="http://www.doctrine-project.org/projects/orm.html"target="_blank" rel="noopener"&gt;Doctrine
ORM&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7631-php-composer-json-support"target="_blank" rel="noopener"&gt;PHP composer.json
support&lt;/a&gt; Validation, inspections, autocompletion and
useful hints (add &lt;a href="https://packagist.org/packages/roave/security-advisories"target="_blank" rel="noopener"&gt;roave/security-advisories&lt;/a&gt;) when
working with &lt;a href="https://getcomposer.org/doc/04-schema.md"target="_blank" rel="noopener"&gt;composer.json&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7656-php-inheritdoc-helper"target="_blank" rel="noopener"&gt;PHP inheritDoc
helper&lt;/a&gt; Collapses inheritDoc, showing the data from the parent description on top of it, and gives hints on when it is worth adding one.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2017/11/CxvFEssXUAAweNk.jpg" alt="PHP Inspections (EA Extended)" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7622-php-inspections-ea-extended-"target="_blank" rel="noopener"&gt;Php Inspections (EA Extended)&lt;/a&gt; A static
analyzer. Adds a large number of useful inspections that help you improve, simplify and make your code more
predictable and secure. Also, in November of this year a &lt;a href="https://plugins.jetbrains.com/plugin/10215-php-inspections-ea-ultimate-"target="_blank" rel="noopener"&gt;paid version&lt;/a&gt; extending the functionality appeared, focusing on
performance, code maintainability and security, probably born out of the author&amp;rsquo;s
&lt;a href="https://habrahabr.ru/post/274439/"target="_blank" rel="noopener"&gt;reflections&lt;/a&gt; like these. At the very least, the free (EA Extended) version of the plugin
can safely be put on the &amp;ldquo;must have&amp;rdquo; list.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7746-php-regexp-support"target="_blank" rel="noopener"&gt;PHP RegExp
Support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/8133-php-toolbox"target="_blank" rel="noopener"&gt;PHP Toolbox&lt;/a&gt;
More goodies for autocompletion and type analysis. They allow using your own configuration.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7722-phpunit-autocomplete-assistant"target="_blank" rel="noopener"&gt;PHPUnit Autocomplete
Assistant&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2017/11/with-material-theme-ui.png" alt="Rainbow Brackets" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/10080-rainbow-brackets"target="_blank" rel="noopener"&gt;Rainbow Brackets&lt;/a&gt; I only started using this plugin quite
recently. It lets you color all the brackets in different colors pairwise. This makes it possible to quickly assess visually the logical separation in blocks or complex conditions, where previously it might have been necessary to place the cursor on a specific bracket so that the IDE highlighted its pair. Unfortunately, the plugin does not go deep into code analysis and simply paints
the brackets pairwise, so as a side effect you can observe lines of code following one another where
the only brackets are painted in different colors.&lt;/li&gt;
&lt;li&gt;REST Client This is a plugin built into PhpStorm. However, if you have never used it before - it is worth a try. It can considerably simplify API debugging and other similar tasks.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7589-sensiolabsinsight"target="_blank" rel="noopener"&gt;SensioLabsInsight&lt;/a&gt;
Integration of the code quality analysis service from SensioLabs (the Symfony developers) into PhpStorm.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2017/11/screenshot_14511.png" alt="Symfony plugin 1" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/7219-symfony-plugin"target="_blank" rel="noopener"&gt;Symfony Plugin&lt;/a&gt; A plugin improving the support of the Symfony
framework versions 2.* and above in PhpStorm. By analyzing the Symfony cache it adds various autocompletion-related functionality
(DI container configurations, DQL queries, template and asset paths, Twig extensions, etc.) and code navigation. When developing on Symfony - a &amp;ldquo;must have&amp;rdquo;. It is also worth using the native &lt;a href="https://plugins.jetbrains.com/plugin/7143-framework-mvc-structure-support"target="_blank" rel="noopener"&gt;Framework MVC Structure
Suppor&lt;/a&gt; along with it. Some time ago it also absorbed the functionality of another plugin, previously known as &lt;a href="https://github.com/xenji/phpstorm-symfony2-plugin"target="_blank" rel="noopener"&gt;Symfony2 - Clickable
Views&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.jetbrains.com/help/phpstorm/managing-tasks-and-contexts.html"target="_blank" rel="noopener"&gt;Task
Management&lt;/a&gt; Like the REST Client, it is built
into PhpStorm. It allows integrating with task trackers (Redmine, Jira and others), task-related
autocompletion, and managing development contexts (if you haven&amp;rsquo;t tried it -
&lt;a href="https://www.jetbrains.com/help/phpstorm/managing-tasks-and-contexts.html#work-with-context"target="_blank" rel="noopener"&gt;give it a try!&lt;/a&gt;),
automatically creating and switching branches according to tasks, generating commit messages, time tracking
(with the help of an additional Time Tracking plugin) and more.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are, of course, not all the plugins I have enabled at the moment, but the ones I wanted to write about and recommend trying. If you have any corrections or additions, or you want to write about a plugin that personally helps you a lot to increase productivity or save your nerves - the post comments are right there for you. Productive and comfortable work to you!&lt;/p&gt;</description></item><item><title>Don't Shoot the Messenger - a translation</title><link>https://skobk.in/en/2017/03/dont-shoot-the-messenger/</link><pubDate>Thu, 30 Mar 2017 15:00:32 +0300</pubDate><guid>https://skobk.in/en/2017/03/dont-shoot-the-messenger/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a translation of a 2017 text by Markus Ra, head of Telegram&amp;rsquo;s support team&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;After the recent terrorist attacks, government representatives around the world have again started demanding backdoors in
messengers with end-to-end encryption. At the same time, journalists covering these statements also made their usual pile of mistakes. Thanks to these mistakes, I (Markus Ra, head of Telegram&amp;rsquo;s support team - trans. note) received many questions from puzzled Telegram users. So let&amp;rsquo;s clarify a few things.&lt;/p&gt;
&lt;h2&gt;How secure is my information in Telegram?&lt;span class="hx:absolute hx:-mt-20" id="how-secure-is-my-information-in-telegram"&gt;&lt;/span&gt;
&lt;a href="#how-secure-is-my-information-in-telegram" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Telegram &lt;strong&gt;secret chats&lt;/strong&gt; use end-to-end encryption. This means that no one, including Telegram, can
decrypt the data exchanged by the participants of a conversation. To protect data outside secret chats, Telegram
uses a distributed infrastructure. &lt;strong&gt;Cloud chat&lt;/strong&gt; data is stored in different data centers around the world,
which are under the control of different legal entities and in different jurisdictions. The encryption keys are split into parts
and are never stored in the same place as the information encrypted with them. As a result, forcing Telegram to hand over any
information requires several court orders from different jurisdictions. Thanks to this infrastructure, neither a single
state, nor a bloc of like-minded countries can interfere with your private conversations and freedom of expression. Telegram
can be compelled to hand over information only if the issue turns out to be so serious and global that such an order
gets approved in different legal systems around the world.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;To date, Telegram has not handed over a single byte of user information to third parties, including governments.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;But what about terrorists?&lt;span class="hx:absolute hx:-mt-20" id="but-what-about-terrorists"&gt;&lt;/span&gt;
&lt;a href="#but-what-about-terrorists" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Let&amp;rsquo;s look at how terrorist organizations can use messengers and, more importantly, what we can do
to hinder them.&lt;/p&gt;
&lt;h3&gt;Private messages&lt;span class="hx:absolute hx:-mt-20" id="private-messages"&gt;&lt;/span&gt;
&lt;a href="#private-messages" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;What people fear most is that terrorists will use apps offering encryption to secretly
exchange messages for planning and coordinating their attacks. If you don&amp;rsquo;t try to understand the problem, it may seem
tempting to simply ban end-to-end encryption to keep terrorists from exchanging secure messages. But
the bitter truth is that &lt;strong&gt;this will not work&lt;/strong&gt;. To achieve their goal, terrorists are ready to endure many hardships and
deprivations. Including death. So if you ban the existing secure messengers or build backdoors into them, they
will immediately resort to one of the following options:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Building their own apps.&lt;/strong&gt; The technology for creating
secure messengers is publicly available knowledge. These days anyone can build a messenger with end-to-end
encryption. These newly minted apps will most likely lack many shiny features and will have to be
installed manually, bypassing Apple iTunes and Google Play, but they will work. There are rumors that &lt;a href="http://fortune.com/2016/01/13/isis-has-its-own-secure-messaging-app/"target="_blank" rel="noopener"&gt;ISIS members have had
their own app&lt;/a&gt; since January 2016.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Using a code language.&lt;/strong&gt;
&lt;a href="https://en.wikipedia.org/wiki/Steganography"target="_blank" rel="noopener"&gt;Steganography&lt;/a&gt; is a fancy word for hiding information in
plain sight. You can safely use public or wiretapped communication channels if only you and the recipient
of the message know what &amp;ldquo;Uncle David is going to the store tomorrow&amp;rdquo; means.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Using other means of communication&lt;/strong&gt;. You, as an ordinary
user, would not want to buy a new phone, make a call, write one message and then throw the
device in the trash. But &lt;a href="https://arstechnica.com/tech-policy/2016/03/paris-terrorist-attacks-burner-phones-not-encryption/"target="_blank" rel="noopener"&gt;that is exactly how the terrorists in Paris
communicated&lt;/a&gt; to
organize and carry out the ISIS attacks in Europe.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As you may have noticed, in many cases the terrorists did not even have to change anything. They already have very
viable means as an alternative to secure messengers. On the other hand, you don&amp;rsquo;t. Ordinary people
are not ready to deal with the problems of apps with poor usability, not to mention burner phones or secret
languages for the sake of privacy. As a result, the only thing government backdoors will achieve is the return of
mass surveillance and the leaking of your personal information to hackers or corrupt officials.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h3&gt;Public messages&lt;span class="hx:absolute hx:-mt-20" id="public-messages"&gt;&lt;/span&gt;
&lt;a href="#public-messages" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;But none of the above means that we cannot throw obstacles in the terrorists&amp;rsquo; way. Another key goal of terrorists,
for which they use mass communication services, is &lt;strong&gt;spreading their ideas and getting information about their
attacks to the largest possible number of people&lt;/strong&gt;. It is for exactly this reason that various kinds of terrorist organizations have
recently started moving to social media like Twitter, Facebook and others to publish their content and
threats. Telegram is unique in that it has &lt;a href="https://telegram.org/blog/channels"target="_blank" rel="noopener"&gt;channels&lt;/a&gt; - a tool for sending
messages to an unlimited audience. Naturally, terrorists tried to use this tool to broadcast ISIS content. But, like other services, Telegram &lt;a href="https://t.me/ISISwatch/2"target="_blank" rel="noopener"&gt;took measures&lt;/a&gt; to drive them off this
public platform. Terrorist channels keep appearing - just as they do on other services. But complaints about them come in practically
instantly and they are shut down within hours - long before they manage to attract anyone. And yet, no matter how hard Telegram and other services try, the terrorists have a very powerful ally
that helps them spread their messages.&lt;/p&gt;
&lt;h3&gt;Painting a dire picture&lt;span class="hx:absolute hx:-mt-20" id="painting-a-dire-picture"&gt;&lt;/span&gt;
&lt;a href="#painting-a-dire-picture" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;What keeps terrorism alive is not the weapons the terrorists use and not the messages they exchange - they have a long history, rich in improvisation, in both areas. There is one element that truly fuels this phenomenon: the media.&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt; And it is no secret that terrorist organizations invest large
amounts of money in their coverage in the press. When you &lt;a href="https://byrslf.co/some-numbers-on-terror-6d15b8769db9#.dkvn2zcx2"target="_blank" rel="noopener"&gt;look at the
numbers&lt;/a&gt;, any other causes of death and destruction (save, perhaps,
for &lt;a href="http://jamanetwork.com/journals/jama/article-abstract/374932"target="_blank" rel="noopener"&gt;falling vending machines&lt;/a&gt; and
the like) will eclipse terrorist attacks, however cruel and unjust they may be.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Cancer, heart disease, traffic accidents and even soap on the bathroom floor kill more people &lt;strong&gt;every day&lt;/strong&gt; than terrorists do
in any year you pick.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So the terrorists&amp;rsquo; main task is to convince you that their outrageous acts matter more than the roughly 150,000 deaths that
&lt;a href="http://www.who.int/mediacentre/factsheets/fs310/en/"target="_blank" rel="noopener"&gt;happen every day&lt;/a&gt; from &lt;a href="http://www.businessinsider.com/death-risk-statistics-terrorism-disease-accidents-2017-1"target="_blank" rel="noopener"&gt;other
causes&lt;/a&gt;. They want to distort
our perception, to make us feel danger comes &lt;em&gt;precisely from them&lt;/em&gt;, and not from the huge number of other
threats that surround us &lt;em&gt;in reality&lt;/em&gt;. Unfortunately, the mass media eagerly focus their attention
on terrorists. After all, alarming news brings many views and advertising money - especially when
it contains gripping photos of the victims. This is how fear spreads on the wings of a press greedy for clicks and views, and
is fanned by politicians eager to gain more power while bearing less responsibility.&lt;/p&gt;
&lt;h3&gt;Playing on fear&lt;span class="hx:absolute hx:-mt-20" id="playing-on-fear"&gt;&lt;/span&gt;
&lt;a href="#playing-on-fear" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;We must never forget that terrorist organizations are, first and foremost, hunting for our fear. They will
do anything to make us feel unsafe in our own cities and homes. But we are very many, and they
are too few for these attempts, however painful for the victims, to be anything more than a drop in the
sea of natural dangers that we have learned to live with and cope with. We must not panic and become a victim of
the various forces that will exploit our fear of terrorism for their own purposes. Instead, we should help comfort and
support the victims and their families - especially if we are somehow connected to them, however unlikely that may
be.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;And we must always remember that terrorists fight for our minds within our minds. In the end, victory depends precisely on
us.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A translation of &lt;a href="http://telegra.ph/Dont-Shoot-the-Messenger"target="_blank" rel="noopener"&gt;the post&lt;/a&gt; by Markus Ra, head of Telegram&amp;rsquo;s support team.&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;It is &lt;a href="http://edition.cnn.com/2010/OPINION/09/29/schneier.web.surveillance/index.html"target="_blank" rel="noopener"&gt;impossible&lt;/a&gt; to build a backdoor
that will only be used by &amp;ldquo;the good guys&amp;rdquo;. If a service has a backdoor, it is exclusively a matter of
time before hackers find an unofficial way to obtain your information. And if you live in South America,
Russia, China or one of the many similar regions, you may find that the &lt;em&gt;official&lt;/em&gt; use of these same
backdoors can differ greatly from what you might expect from societies where the law is strictly observed.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Indeed, &lt;a href="http://www.digitalhistory.uh.edu/topic_display.cfm?tcid=94"target="_blank" rel="noopener"&gt;terrorism did not exist&lt;/a&gt; in its
current form until the mid-19th century, when newspapers and telegraph networks first merged the world&amp;rsquo;s information
flows.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Happy Programmer's Day! A Festive Song.</title><link>https://skobk.in/en/2016/09/programmers-song/</link><pubDate>Mon, 12 Sep 2016 02:48:34 +0300</pubDate><guid>https://skobk.in/en/2016/09/programmers-song/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This post retains the external SoundCloud and MP3 embeds. If the player or the file link do not work, the cause may be the
external hosting, not the post text.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2016/09/artworks-color.png" alt="" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;At the end of the work week, my good friend &lt;a href="https://vk.com/samarioff"target="_blank" rel="noopener"&gt;Ivan&lt;/a&gt; came up with the idea for a song, along with its lyrics, in our corporate chat. And since the Monday after that weekend was to be our professional holiday - Programmer&amp;rsquo;s Day - I couldn&amp;rsquo;t pass it by: I unpacked the guitar, recorded a backing track, and then asked my friend &lt;a href="https://github.com/artss"target="_blank" rel="noopener"&gt;Artyom&lt;/a&gt; to record the vocals. And here is what came out of it. Soundcloud:&lt;/p&gt;
&lt;iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/282460104&amp;amp;auto_play=false&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;visual=true"&gt;&lt;/iframe&gt;
&lt;p&gt;HTML5:&lt;/p&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://f.skobk.in/music/skobk.in/bunch_of_utilites.mp3" type="audio/mpeg"&gt;
&lt;/audio&gt;
&lt;p&gt;&lt;a href="https://f.skobk.in/music/skobk.in/bunch_of_utilites.mp3"target="_blank" rel="noopener"&gt;Download MP3&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I sit and take code from someone else&amp;rsquo;s git,&lt;br&gt;
And I don&amp;rsquo;t see a single familiar line.&lt;br&gt;
I wandered all over Google, there and back,&lt;br&gt;
And returned, unable to piece the chunks together.&lt;/p&gt;
&lt;p&gt;But if there&amp;rsquo;s a pack of utilities on the disk,&lt;br&gt;
Then things are not so bad for today&amp;rsquo;s build.&lt;br&gt;
If you and I can put a release together for production,&lt;br&gt;
Then our team lead&amp;rsquo;s head doesn&amp;rsquo;t hurt.&lt;/p&gt;
&lt;p&gt;And no one wanted the server to glitch on us,&lt;br&gt;
And no one wanted to release crap code to production,&lt;br&gt;
Without refactoring, production will be utter mayhem,&lt;br&gt;
We refactor with you before the release to production.&lt;/p&gt;
&lt;p&gt;And if there&amp;rsquo;s a pack of utilities on the disk,&lt;br&gt;
Then everything is just fine for today&amp;rsquo;s build.&lt;br&gt;
So we can put a release together for production with you,&lt;br&gt;
And our team lead&amp;rsquo;s head doesn&amp;rsquo;t hurt.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Dual-booting Gentoo Linux and Microsoft Windows with rEFInd on a UEFI machine</title><link>https://skobk.in/en/2015/08/gentoo-linux-dual-boot-using-refind/</link><pubDate>Mon, 31 Aug 2015 04:22:44 +0300</pubDate><guid>https://skobk.in/en/2015/08/gentoo-linux-dual-boot-using-refind/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-amber-200 hx:bg-amber-100 hx:text-amber-900 hx:dark:border-amber-200/30 hx:dark:bg-amber-900/30 hx:dark:text-amber-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/&gt;&lt;/svg&gt;Warning&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a 2015 guide that assumes an almost fully manual kernel build and installation.
By now many of these processes are automated, and this guide should not be treated as general recommended practice.
I recommend reading the &lt;a href="https://wiki.gentoo.org/wiki/Main_Page"target="_blank" rel="noopener"&gt;Gentoo Wiki&lt;/a&gt; for more up-to-date instructions.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2015/08/refind.png" alt="refind" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;In the Gentoo Handbook, the chapter on &lt;a href="https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Bootloader"target="_blank" rel="noopener"&gt;bootloader
configuration&lt;/a&gt; offers us several options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Bootloader#Default:_Using_GRUB2"target="_blank" rel="noopener"&gt;GRUB2&lt;/a&gt;
The familiar first version of GRUB was at some point replaced by the second one. The new version was created based on the
&lt;a href="http://www.nongnu.org/pupa/"target="_blank" rel="noopener"&gt;PUPA&lt;/a&gt; project. It can work both in regular BIOS mode and in EFI mode.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Bootloader#Alternative:_Using_LILO"target="_blank" rel="noopener"&gt;LILO&lt;/a&gt;
An outdated bootloader that is hardly used anywhere anymore. Does not support EFI.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Bootloader#Alternative:_Using_efibootmgr"target="_blank" rel="noopener"&gt;The kernel as the
bootloader&lt;/a&gt; The Linux
kernel can be built with EFI Stub support, giving you the ability to boot straight into it, bypassing third-party
bootloaders. Naturally, this option does not involve booting into Microsoft Windows (unless, of course, that is done
through the BIOS/EFI boot menu, which requires additional actions from the user to choose the other OS).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;However, these are not all the available options. As an alternative, you can also use native EFI bootloaders -
for example, &lt;a href="http://www.rodsbooks.com/refind/"target="_blank" rel="noopener"&gt;rEFInd&lt;/a&gt;. That is what this post is about.&lt;/p&gt;
&lt;h2&gt;Preface&lt;span class="hx:absolute hx:-mt-20" id="preface"&gt;&lt;/span&gt;
&lt;a href="#preface" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;First, as tradition goes, I want to remind you that some actions in this post (for example, mounting a partition in Linux)
require root privileges. However, in the examples below I will not include the &lt;code&gt;sudo&lt;/code&gt; command. It is also worth noting that
this example makes some assumptions: Secure Boot is disabled; &lt;code&gt;/boot&lt;/code&gt; is on a separate partition; the hard drive
has a GPT partition table; Microsoft Windows was installed before Gentoo Linux and the EFI partition already exists; no initrd is used with the kernel; plus some other unimportant details. None of this really matters once you understand the underlying principle, which
is quite simple. Moreover, it is important to understand that these principles will work on any distribution with minor changes.&lt;/p&gt;
&lt;h2&gt;Installation&lt;span class="hx:absolute hx:-mt-20" id="installation"&gt;&lt;/span&gt;
&lt;a href="#installation" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The first half of the actions needed to organize booting in EFI mode is installing the bootloader. Its distribution
can be taken from the &lt;a href="http://www.rodsbooks.com/refind/getting.html"target="_blank" rel="noopener"&gt;project website&lt;/a&gt;. There we need to grab the latest
version via the &amp;ldquo;A binary zip file&amp;rdquo; link.&lt;/p&gt;
&lt;h3&gt;Copying&lt;span class="hx:absolute hx:-mt-20" id="copying"&gt;&lt;/span&gt;
&lt;a href="#copying" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h4&gt;Linux&lt;span class="hx:absolute hx:-mt-20" id="linux"&gt;&lt;/span&gt;
&lt;a href="#linux" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;First, let&amp;rsquo;s unpack the bootloader archive.&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ unzip refind-bin-0.9.0.zip&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;In the archive we will see installation scripts, instructions, a license and so on. Since we are going to install the bootloader
manually, only the &lt;code&gt;refind&lt;/code&gt; folder is of interest to us. In it we will find the bootloader itself (&lt;code&gt;refind_ia32.efi refind_x64.efi&lt;/code&gt;),
the driver directories (&lt;code&gt;drivers_ia32 drivers_x64&lt;/code&gt;), a sample config (&lt;code&gt;refind.conf-sample&lt;/code&gt;) and the utility directories
(&lt;code&gt;tools_ia32 tools_x64&lt;/code&gt;).&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ &lt;span class="nb"&gt;cd&lt;/span&gt; refind-bin-0.9.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ ls refind
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;drivers_ia32 drivers_x64 icons refind.conf-sample refind_ia32.efi refind_x64.efi tools_ia32 tools_x64&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Since our architecture is amd64, also often called x64, we can remove the unneeded files right away.&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ rm -rf refind/&lt;span class="o"&gt;{&lt;/span&gt;drivers_ia32,refind_ia32.efi,tools_ia32&lt;span class="o"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If you wish, you can also delete the unneeded OS icons in the &lt;code&gt;refind/icons&lt;/code&gt; directory. Now we need to
mount the EFI partition. Most of the following actions require root privileges, so you can run &lt;code&gt;sudo -i&lt;/code&gt; in advance.
The EFI partition is fairly easy to identify: most often it is 100 megabytes in size and its partition type/code is &lt;code&gt;EF00&lt;/code&gt;.&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# mount /boot&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# mkdir /boot/efi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# gdisk -l /dev/sda&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Number Start &lt;span class="o"&gt;(&lt;/span&gt;sector&lt;span class="o"&gt;)&lt;/span&gt; End &lt;span class="o"&gt;(&lt;/span&gt;sector&lt;span class="o"&gt;)&lt;/span&gt; Size Code Name
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="m"&gt;2048&lt;/span&gt; &lt;span class="m"&gt;598015&lt;/span&gt; 291.0 MiB &lt;span class="m"&gt;2700&lt;/span&gt; Basic data partition
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="m"&gt;598016&lt;/span&gt; &lt;span class="m"&gt;614399&lt;/span&gt; 8.0 MiB EF02
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-----------------------------------------------------------------------------
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="m"&gt;614400&lt;/span&gt; &lt;span class="m"&gt;817151&lt;/span&gt; 99.0 MiB EF00 EFI system partition
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-----------------------------------------------------------------------------
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;4&lt;/span&gt; &lt;span class="m"&gt;817152&lt;/span&gt; &lt;span class="m"&gt;1079295&lt;/span&gt; 128.0 MiB 0C01 Microsoft reserved ...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;5&lt;/span&gt; &lt;span class="m"&gt;1079296&lt;/span&gt; &lt;span class="m"&gt;327837695&lt;/span&gt; 155.8 GiB &lt;span class="m"&gt;0700&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;6&lt;/span&gt; &lt;span class="m"&gt;327837696&lt;/span&gt; &lt;span class="m"&gt;328759295&lt;/span&gt; 450.0 MiB &lt;span class="m"&gt;2700&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;7&lt;/span&gt; &lt;span class="m"&gt;328759296&lt;/span&gt; &lt;span class="m"&gt;330330111&lt;/span&gt; 767.0 MiB &lt;span class="m"&gt;0700&lt;/span&gt; Basic data partition
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;8&lt;/span&gt; &lt;span class="m"&gt;330330112&lt;/span&gt; &lt;span class="m"&gt;937699327&lt;/span&gt; 289.6 GiB &lt;span class="m"&gt;0700&lt;/span&gt; Basic data partition
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# lsblk&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sda 8:0 &lt;span class="m"&gt;0&lt;/span&gt; 447.1G &lt;span class="m"&gt;0&lt;/span&gt; disk
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├─sda1 8:1 &lt;span class="m"&gt;0&lt;/span&gt; 291M &lt;span class="m"&gt;0&lt;/span&gt; part
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├─sda2 8:2 &lt;span class="m"&gt;0&lt;/span&gt; 8M &lt;span class="m"&gt;0&lt;/span&gt; part
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;------------------------------------------------------------------
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├─sda3 8:3 &lt;span class="m"&gt;0&lt;/span&gt; 99M &lt;span class="m"&gt;0&lt;/span&gt; part
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;------------------------------------------------------------------
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├─sda4 8:4 &lt;span class="m"&gt;0&lt;/span&gt; 128M &lt;span class="m"&gt;0&lt;/span&gt; part
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├─sda5 8:5 &lt;span class="m"&gt;0&lt;/span&gt; 155.8G &lt;span class="m"&gt;0&lt;/span&gt; part /media/windows
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├─sda6 8:6 &lt;span class="m"&gt;0&lt;/span&gt; 450M &lt;span class="m"&gt;0&lt;/span&gt; part
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├─sda7 8:7 &lt;span class="m"&gt;0&lt;/span&gt; 767M &lt;span class="m"&gt;0&lt;/span&gt; part /boot
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└─sda8 8:8 &lt;span class="m"&gt;0&lt;/span&gt; 289.6G &lt;span class="m"&gt;0&lt;/span&gt; part /
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# mount /dev/sda3 /boot/efi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ls /boot/efi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;EFI Temp&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Let&amp;rsquo;s copy the bootloader to our EFI partition.&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cp -r /home/skobkin/tmp/refind-bin-0.9.0/refind /boot/efi/EFI/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;Windows&lt;span class="hx:absolute hx:-mt-20" id="windows"&gt;&lt;/span&gt;
&lt;a href="#windows" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;First, unpack the rEFInd archive somewhere in advance. For example, let it be &lt;code&gt;C:\tmp\refind-bin-0.9.0\&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2015/08/DSC6416_crop.jpg" alt="Working with diskpart" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;In most cases, Windows will prevent mounting the EFI partition, so the simplest option is to use a modern analogue of &amp;ldquo;safe mode with command prompt&amp;rdquo;. You can get there by choosing Restart in the shutdown menu while holding down the Shift key at the same time, then choosing &amp;ldquo;Troubleshooting&amp;rdquo; →
&amp;ldquo;Advanced options&amp;rdquo; → &amp;ldquo;Command prompt&amp;rdquo;. A command prompt opens before us, in which we need to perform the same actions as when copying in Linux, adjusted for the operating
system. First let&amp;rsquo;s mount the partition using the &lt;code&gt;diskpart&lt;/code&gt; utility. It has a fairly intuitive text interface
with a command prompt, where the important thing to know is that there are generic commands &lt;code&gt;list&lt;/code&gt; (print a list) and &lt;code&gt;select&lt;/code&gt; (pick an item) for
entities such as &lt;code&gt;disk&lt;/code&gt; (a physical disk) and &lt;code&gt;partition&lt;/code&gt; (a partition). An example of mounting a disk:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ps" data-lang="ps"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;diskpart&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Then, in the utility&amp;rsquo;s command prompt:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ps" data-lang="ps"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;list&lt;/span&gt; &lt;span class="nf"&gt;disk&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;select&lt;/span&gt; &lt;span class="nf"&gt;disk&lt;/span&gt; &lt;span class="mf"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;list&lt;/span&gt; &lt;span class="nf"&gt;partition&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;select&lt;/span&gt; &lt;span class="nf"&gt;partition&lt;/span&gt; &lt;span class="mf"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;assign&lt;/span&gt; &lt;span class="err"&gt;letter=u&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;We selected the second partition on the first disk and assigned the letter U to it. Now, assuming the pre-unpacked
rEFInd is located at the path mentioned above, we copy it with the following command:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ps" data-lang="ps"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;cp&lt;/span&gt; &lt;span class="nf"&gt;C:\tmp\refind-bin-0.9.0\refind&lt;/span&gt; &lt;span class="err"&gt;U:\EFI\&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Configuration (Windows and Linux)&lt;span class="hx:absolute hx:-mt-20" id="configuration-windows-and-linux"&gt;&lt;/span&gt;
&lt;a href="#configuration-windows-and-linux" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Now let&amp;rsquo;s copy the config.&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /boot/efi/EFI/refind
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cp refind.conf-sample refind.conf&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;And edit it. As you may notice, the config is quite well documented, so instead of simply copying the sample below I suggest familiarizing yourself with the
settings.&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# refind.conf
timeout 3
resolution 1024 768
showtools shell,memtest,gdisk,windows_recovery,about,reboot,shutdown,firmware
scanfor manual
default_selection &amp;#34;Gentoo Linux&amp;#34;
menuentry &amp;#34;Gentoo Linux&amp;#34; {
icon /EFI/refind/icons/os_gentoo.png
ostype Linux
volume boot
loader /vmlinuz-4.1.6-gentoo-skobkin
options &amp;#34;root=/dev/sda8 ro&amp;#34;
}
menuentry &amp;#34;Windows 10 Pro&amp;#34; {
loader \EFI\Microsoft\Boot\bootmgfw.efi
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The settings are described &lt;a href="http://www.rodsbooks.com/refind/configfile.html"target="_blank" rel="noopener"&gt;here&lt;/a&gt;. For the simplest configuration
only a few of them matter to us:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;volume boot&lt;/code&gt; Points to the partition where the kernel is located. For
a reference in this form to work, the partition must have a label.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;loader /vmlinuz-4.1.6-gentoo-skobkin&lt;/code&gt; Path to the kernel file relative to
the root of the partition above. If the &lt;code&gt;volume&lt;/code&gt; option is not specified - relative to the root of the EFI partition.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;options &amp;quot;root=/dev/sda8 ro&amp;quot;&lt;/code&gt; Path to the partition where the filesystem root
is located. Depending on whether initrd is built into the kernel, it may become possible to specify the partition by UUID and label.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Activation&lt;span class="hx:absolute hx:-mt-20" id="activation"&gt;&lt;/span&gt;
&lt;a href="#activation" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Now, in order for EFI to be able to launch our bootloader, we need to add it to the store of bootloader configurations.
This can be done in several ways.&lt;/p&gt;
&lt;h3&gt;Windows&lt;span class="hx:absolute hx:-mt-20" id="windows-1"&gt;&lt;/span&gt;
&lt;a href="#windows-1" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h4&gt;bcdedit&lt;span class="hx:absolute hx:-mt-20" id="bcdedit"&gt;&lt;/span&gt;
&lt;a href="#bcdedit" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;This option does not require third-party software and is performed, just like mounting the EFI partition in Windows, in the command prompt of the
&amp;ldquo;Troubleshooting&amp;rdquo; screen (see &lt;a href="#windows"&gt;copying in Windows&lt;/a&gt;). There we run two commands. The first creates a
bootloader entry, and the second sets its name.&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ps" data-lang="ps"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;bcdedit&lt;/span&gt; &lt;span class="nv"&gt;/set&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;bootmgr&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nf"&gt;path&lt;/span&gt; &lt;span class="nf"&gt;\EFI\refind\refind_x64.efi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;bcdedit&lt;/span&gt; &lt;span class="nv"&gt;/set&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;bootmgr&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nf"&gt;description&lt;/span&gt; &lt;span class="nf"&gt;&amp;#34;rEFInd&lt;/span&gt; &lt;span class="nf"&gt;boot&lt;/span&gt; &lt;span class="err"&gt;manager&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;Easy UEFI&lt;span class="hx:absolute hx:-mt-20" id="easy-uefi"&gt;&lt;/span&gt;
&lt;a href="#easy-uefi" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;As a very simple alternative to bcdedit you can use the &lt;a href="http://www.easyuefi.com/index-us.html"target="_blank" rel="noopener"&gt;Easy
UEFI&lt;/a&gt; utility, which lets you change bootloader settings right from within the booted Windows OS. You will need to create an entry for rEFInd, select the EFI partition and specify the path to the bootloader.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2015/08/Image-2.png" alt="Creating a rEFInd bootloader entry" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;Linux&lt;span class="hx:absolute hx:-mt-20" id="linux-1"&gt;&lt;/span&gt;
&lt;a href="#linux-1" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;To register the bootloader from Linux, the system must already be booted in EFI mode. This can be achieved either by loading the kernel directly (if it has EFI Stub) from an EFI Shell, or by booting any LiveCD that runs in EFI
mode. Let&amp;rsquo;s use the efibootmgr utility (available in the repositories of many distributions):&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;efibootmgr -c -l &lt;span class="se"&gt;\\&lt;/span&gt;EFI&lt;span class="se"&gt;\\&lt;/span&gt;refind&lt;span class="se"&gt;\\&lt;/span&gt;refind_x64.efi -L &lt;span class="s2"&gt;&amp;#34;rEFInd boot manager&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;First boot&lt;span class="hx:absolute hx:-mt-20" id="first-boot"&gt;&lt;/span&gt;
&lt;a href="#first-boot" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Now that you have finished, all that is left is to check whether &amp;ldquo;rEFInd boot manager&amp;rdquo; is in first place in the boot priorities of the BIOS (EFI) menu and, if not, fix that. If you did everything correctly, the bootloader will start and
offer you to choose an OS to boot.&lt;/p&gt;
&lt;h2&gt;Links&lt;span class="hx:absolute hx:-mt-20" id="links"&gt;&lt;/span&gt;
&lt;a href="#links" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.rodsbooks.com/refind/"target="_blank" rel="noopener"&gt;http://www.rodsbooks.com/refind/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://superuser.com/questions/662823/how-do-i-mount-the-efi-partition-on-windows-8-1-so-that-it-is-readable-and-write"target="_blank" rel="noopener"&gt;http://superuser.com/questions/662823/how-do-i-mount-the-efi-partition-on-windows-8-1-so-that-it-is-readable-and-write&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Bootloader"target="_blank" rel="noopener"&gt;https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Bootloader&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Extensible_Firmware_Interface"target="_blank" rel="noopener"&gt;https://en.wikipedia.org/wiki/Extensible_Firmware_Interface&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Framebuffer in Gentoo with uvesafb and nvidia-drivers without initrd</title><link>https://skobk.in/en/2015/01/gentoo-nvidia-drivers-uvesafb-framebuffer-without-initrd/</link><pubDate>Sun, 04 Jan 2015 19:06:25 +0300</pubDate><guid>https://skobk.in/en/2015/01/gentoo-nvidia-drivers-uvesafb-framebuffer-without-initrd/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-amber-200 hx:bg-amber-100 hx:text-amber-900 hx:dark:border-amber-200/30 hx:dark:bg-amber-900/30 hx:dark:text-amber-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/&gt;&lt;/svg&gt;Warning&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a historical article from 2015 about old Gentoo settings, &lt;code&gt;uvesafb&lt;/code&gt;, GRUB2 and the proprietary NVIDIA drivers.
The material is no longer relevant for modern systems and has only historical value.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;As you may know, when using the proprietary &lt;code&gt;nvidia-drivers&lt;/code&gt; driver, it is impossible to use a framebuffer through &lt;code&gt;nouveau&lt;/code&gt;
or the in-kernel framebuffer for NVIDIA, because they conflict with the driver used by the X server. The only way to get a working
console framebuffer without crutches like unloading nouveau before starting the X server is to use
&lt;code&gt;uvesafb&lt;/code&gt;. However, the vast majority of guides describe &lt;a href="http://wiki.gentoo.org/wiki/Uvesafb"title="uvesafb on the Gentoo Wiki"target="_blank" rel="noopener"&gt;configuring uvesafb&lt;/a&gt; in combination with &lt;a href="http://wiki.gentoo.org/wiki/Initramfs"title="initramfs on the Gentoo Wiki"target="_blank" rel="noopener"&gt;initrd&lt;/a&gt;, which
is useless if the kernel is built without its support. Naturally, you need to follow &lt;a href="http://wiki.gentoo.org/wiki/NVidia/nvidia-drivers/ru"title="nvidia-drivers on the Gentoo Wiki"target="_blank" rel="noopener"&gt;all the
instructions&lt;/a&gt; that are required
for the NVIDIA drivers to work without conflicts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enable module support&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;[*] Enable loadable module support ---&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Enable MTRR&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;Processor type and features ---&amp;gt;
[*] MTRR (Memory Type Range Register) support&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Disable the built-in kernel framebuffer drivers for NVIDIA video cards&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;Device Drivers ---&amp;gt;
Graphics support ---&amp;gt;
Frame buffer Devices ---&amp;gt;
&amp;lt;*&amp;gt; Support for frame buffer devices ---&amp;gt;
&amp;lt; &amp;gt; nVidia Framebuffer Support
&amp;lt; &amp;gt; nVidia Riva support&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Build DRM as a module or turn it off in the kernel entirely (NVIDIA uses
its own DRM)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;Device drivers ---&amp;gt;
Graphics support ---&amp;gt;
&amp;lt; &amp;gt; Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;On my system, with DRM built into the kernel, &lt;code&gt;dmesg&lt;/code&gt; showed errors and a conflict with the &lt;code&gt;nvidia&lt;/code&gt; driver, but, strangely enough,
everything ended up working. When I removed the module, the errors disappeared along with it.&lt;/p&gt;
&lt;p&gt;This is where the path diverges from the usual guide, since we do not use initrd at boot. The kernel needs uvesafb support enabled
as a module:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;Device Drivers ---&amp;gt;
&amp;lt;*&amp;gt; Connector - unified userspace &amp;lt;-&amp;gt; kernelspace linker ---&amp;gt;
Graphics support ---&amp;gt;
[*] Support for frame buffer devices ---&amp;gt;
[*] Enable firmware EDID
&amp;lt;M&amp;gt; Userspace VESA VGA graphics support
[*] Simple framebuffer support&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;And build the packages required by uvesafb:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;emerge -aq v86d&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Now we configure the uvesafb module to load with parameters:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;modules&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;uvesafb&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;module_uvesafb_args&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;mode_option=1920x1080-24 mtrr=2 scroll=ywrap&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;An alternative to &lt;code&gt;module_uvesafb_args&lt;/code&gt; is creating a config in &lt;code&gt;/etc/modprobe.d/&lt;/code&gt; with the same parameters:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;options uvesafb mode_option=1920x1080-24 mtrr=2 scroll=ywrap&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Here it is important to set the parameters matching your current system configuration:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;mode_option - resolution and color depth (you can also specify the refresh rate as &lt;code&gt;1920x1080-24@60&lt;/code&gt;, but it is better to keep the automatic value)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;mtrr - the available MTRR mode. You can find out which modes are available in
the &lt;code&gt;/proc/mtrr&lt;/code&gt; file. The mapping table looks like this:&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;0 - Disabled (equivalent to nomtrr) (default)
1 - Uncacheable
2 - Write-back
3 - Write-combining
4 - Write-through&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;scroll - the scrolling mode. The typical value is ywrap. See
the &lt;a href="https://www.kernel.org/doc/Documentation/fb/uvesafb.txt"title="uvesafb on kernel.org"target="_blank" rel="noopener"&gt;documentation&lt;/a&gt; for details.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can now build the kernel and install it. If you have a separate partition for &lt;code&gt;/boot&lt;/code&gt;, you need to mount it first:
&lt;code&gt;mount /boot&lt;/code&gt;. Also, if some modules were removed and the kernel version did not change, it may be a good idea to also delete the currently installed modules from &lt;code&gt;/lib64/modules/&lt;/code&gt;. This can be done, for example, like this:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rm -rf /lib64/modules/&lt;span class="sb"&gt;`&lt;/span&gt;uname -r&lt;span class="sb"&gt;`&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;In /usr/src/linux run:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;make -j4 &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; make modules_install &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; make install&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Now let&amp;rsquo;s tweak the GRUB2 config (for the first version of GRUB the settings will be different):&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;GRUB_GFXMODE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1920x1080
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;GRUB_GFXPAYLOAD_LINUX&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;keep&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;By the way, with the first parameter we have also set a high resolution in GRUB2. All that remains is to generate a new config
for GRUB2:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;grub2-mkconfig -o /boot/grub/grub.cfg&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Don&amp;rsquo;t forget that it is also a good idea to rebuild the drivers - especially if the kernel version has changed:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;emerge -aq nvidia-drivers&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Unmount &lt;code&gt;/boot&lt;/code&gt; and reboot to check.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2015/01/DSC3375_crop.jpg" alt="Gentoo uvesafb" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;Good luck! Useful information:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://gentoo-en.vfose.ru/wiki/Framebuffer"target="_blank" rel="noopener"&gt;http://gentoo-en.vfose.ru/wiki/Framebuffer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wiki.gentoo.org/wiki/NVidia/nvidia-drivers/ru"target="_blank" rel="noopener"&gt;http://wiki.gentoo.org/wiki/NVidia/nvidia-drivers/ru&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wiki.gentoo.org/wiki/Uvesafb"target="_blank" rel="noopener"&gt;http://wiki.gentoo.org/wiki/Uvesafb&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.kernel.org/doc/Documentation/fb/uvesafb.txt"target="_blank" rel="noopener"&gt;https://www.kernel.org/doc/Documentation/fb/uvesafb.txt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wiki.gentoo.org/wiki/GRUB2#Configuration"target="_blank" rel="noopener"&gt;http://wiki.gentoo.org/wiki/GRUB2#Configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.archlinux.org/index.php/uvesafb"target="_blank" rel="noopener"&gt;https://wiki.archlinux.org/index.php/uvesafb&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Jenkins. Building a project on a Bitbucket commit</title><link>https://skobk.in/en/2014/09/jenkins-build-on-bitbucket-commit/</link><pubDate>Sat, 20 Sep 2014 21:50:25 +0300</pubDate><guid>https://skobk.in/en/2014/09/jenkins-build-on-bitbucket-commit/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This article is outdated but has been kept for historical purposes.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2014/09/8251351500_4e9811a400_z.jpg" alt="Bitbucket logo" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;In the &lt;a href="https://skobk.in/en/2014/09/jenkins-linux-installation/"title="Installing Jenkins on Linux"&gt;previous post&lt;/a&gt; I described
how to install Jenkins on a server running a Debian-family Linux distribution. In this one I will briefly describe
how to teach Jenkins to run a build on a commit (a push of commits) to a Bitbucket repository branch. This pairing
is set up in two stages: first we enable a remote trigger in the job settings, and then we add a hook in the
repository settings.&lt;/p&gt;
&lt;h2&gt;Configuring the job in Jenkins&lt;span class="hx:absolute hx:-mt-20" id="configuring-the-job-in-jenkins"&gt;&lt;/span&gt;
&lt;a href="#configuring-the-job-in-jenkins" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2014/09/shot_2014_09_20__20_14_22.png" alt="Remote job triggering" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;Go to the page of our project and choose &amp;ldquo;Configure&amp;rdquo; in the panel. There, in the &amp;ldquo;Build Triggers&amp;rdquo; section, we need
to allow remote build triggering by enabling the &amp;ldquo;Trigger builds remotely (e.g., from scripts)&amp;rdquo; checkbox and setting
a token. The token is needed so that only you can trigger the project build, and attackers or bots probing the
URLs have no way to stage a DoS against you. You can generate it or make one up. The main thing is that it is long
enough to rule out a lucky guess or brute forcing. There is no need to write it down, since it is always available in
the job settings in plain text.&lt;/p&gt;
&lt;h2&gt;Setting up the hook in Bitbucket&lt;span class="hx:absolute hx:-mt-20" id="setting-up-the-hook-in-bitbucket"&gt;&lt;/span&gt;
&lt;a href="#setting-up-the-hook-in-bitbucket" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Let&amp;rsquo;s go to the repository settings and pick the &amp;ldquo;Hooks&amp;rdquo; section, then create a new hook of the &amp;ldquo;Jenkins&amp;rdquo; type. You will
be presented with a dialog where the following data has to be entered:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Csrf Enabled This checkbox means that protection against
&lt;a href="https://en.wikipedia.org/wiki/Cross-site_request_forgery"target="_blank" rel="noopener"&gt;CSRF attacks&lt;/a&gt; is enabled in your Jenkins security settings. It is best
to enable it in the settings and, accordingly, check this box. To do that, go to &amp;ldquo;Manage Jenkins&amp;rdquo; -
&amp;ldquo;Configure Global Security&amp;rdquo; and check &amp;ldquo;Prevent Cross Site Request Forgery exploits&amp;rdquo;, then select &amp;ldquo;Default
Crumb Issuer&amp;rdquo;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Endpoint Here you need to provide the URL of your Jenkins. However, things are a bit
trickier than they seem, and the token alone will not be enough if you have restricted access to the system. Building the
address requires additional data from your Jenkins account. Click on your login in the upper right corner,
choose &amp;ldquo;Configure&amp;rdquo; and in the &amp;ldquo;API Token&amp;rdquo; section reveal the token of your Jenkins account (not to be confused with the
build job trigger token) using the &amp;ldquo;Show API Token&amp;hellip;&amp;rdquo; button. Now we have the data needed to compose the hook URL - let&amp;rsquo;s substitute it into
the standard address pattern that includes the login and password:&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;http://&amp;lt;User ID&amp;gt;:&amp;lt;API Token&amp;gt;@&amp;lt;Jenkins domain&amp;gt;:&amp;lt;Jenkins port&amp;gt;/&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;So if Jenkins runs at &lt;code&gt;http://my-jenkins.tld:8080/&lt;/code&gt;, our User ID is &lt;code&gt;skobkin&lt;/code&gt;, and the account
token is &lt;code&gt;asklasdashdkjasdkjas&lt;/code&gt;, we get an address of the form&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;http://skobkin:asklasdashdkjasdkjas@my-jenkins.tld:8080/&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Module name By default you can leave this empty. But if you wish,
you can specify that commits to particular modules (directories) should trigger a build in Jenkins.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Project name Here you need to specify the name of the job in Jenkins
that will be run on a commit.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Token And here you provide the token that you set in the
remote job trigger settings.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A description of the settings listed above in English can be found
&lt;a href="https://confluence.atlassian.com/display/BITBUCKET/Jenkins&amp;#43;hook&amp;#43;management"target="_blank" rel="noopener"&gt;here&lt;/a&gt;. Now you can save the hook and
test the setup in action.&lt;/p&gt;
&lt;h2&gt;Alternatives&lt;span class="hx:absolute hx:-mt-20" id="alternatives"&gt;&lt;/span&gt;
&lt;a href="#alternatives" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;Repository polling&lt;span class="hx:absolute hx:-mt-20" id="repository-polling"&gt;&lt;/span&gt;
&lt;a href="#repository-polling" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;One replacement option is the &amp;ldquo;Poll SCM&amp;rdquo; option in the &amp;ldquo;Build Triggers&amp;rdquo; section of a Jenkins job. However, this
method works via CRON and performs redundant work compared to the method described above.&lt;/p&gt;
&lt;h3&gt;BitBucket Plugin&lt;span class="hx:absolute hx:-mt-20" id="bitbucket-plugin"&gt;&lt;/span&gt;
&lt;a href="#bitbucket-plugin" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;In addition, you can find a &lt;a href="https://wiki.jenkins-ci.org/display/JENKINS/BitBucket&amp;#43;Plugin"target="_blank" rel="noopener"&gt;plugin&lt;/a&gt; that allows
defining arbitrary hooks with POST requests on Bitbucket. Its downside is that it does not use a token and, if access to the system is
open, it may allow anyone to trigger a build regardless of repository events. Although, in the opposite case
it can help provide somewhat greater flexibility.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;span class="hx:absolute hx:-mt-20" id="conclusion"&gt;&lt;/span&gt;
&lt;a href="#conclusion" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;This fairly simple approach lets you set up an automatic Jenkins build of a project on a Bitbucket commit.
It is important to understand that the remote trigger mechanism is universal, and you will be able to set up similar
actions on commits to Github without much trouble, or even trigger a build with your own script from your repository or workstation.&lt;/p&gt;</description></item><item><title>Installing Jenkins on Linux</title><link>https://skobk.in/en/2014/09/jenkins-linux-installation/</link><pubDate>Fri, 19 Sep 2014 19:50:50 +0300</pubDate><guid>https://skobk.in/en/2014/09/jenkins-linux-installation/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This article is outdated but has been kept for historical purposes.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2014/09/headshot.png" alt="Jenkins logo" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;At some point, almost any serious developer has to face a phenomenon such as &lt;a href="https://en.wikipedia.org/wiki/Continuous_integration"target="_blank" rel="noopener"&gt;continuous
integration&lt;/a&gt;. One of the tools for
organizing CI is &lt;a href="http://jenkins-ci.org/"target="_blank" rel="noopener"&gt;Jenkins&lt;/a&gt; - a fork of &lt;a href="http://hudson-ci.org/"target="_blank" rel="noopener"&gt;Hudson&lt;/a&gt;. Let&amp;rsquo;s install
it and perform the most basic configuration. I will give an example of installing it on Debian 7. This article is also suitable for installation on
many Debian-family distributions. On others, some details will differ due to differences in the package management system.&lt;/p&gt;
&lt;h2&gt;Prerequisites&lt;span class="hx:absolute hx:-mt-20" id="prerequisites"&gt;&lt;/span&gt;
&lt;a href="#prerequisites" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;A machine with a Debian-family distribution is available&lt;/li&gt;
&lt;li&gt;You have root privileges on that machine&lt;/li&gt;
&lt;li&gt;1 or more GB of RAM In general, recommendations for the amount of
RAM vary widely. Some recommend an amount &amp;ldquo;with headroom&amp;rdquo; of 16 gigabytes or more for large projects, while others
get by with 512 megabytes. I personally settled on 1 gigabyte as a starting point, since Jenkins
is written in Java, and software written in that language loves to eat memory.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation&lt;span class="hx:absolute hx:-mt-20" id="installation"&gt;&lt;/span&gt;
&lt;a href="#installation" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Personally, I perform the whole installation process as the root user, but since this practice is not recommended, you can
simply prefix the commands with sudo. Or you can step over to the dark side of the Force and do, for example, &lt;code&gt;sudo -i&lt;/code&gt;. First,
let&amp;rsquo;s add the repository PGP key and the repository itself to our system:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key &lt;span class="p"&gt;|&lt;/span&gt; apt-key add -
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; deb http://pkg.jenkins-ci.org/debian binary/ &amp;gt; /etc/apt/sources.list.d/jenkins.list&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;update the package list in the APT cache&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aptitude update&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;and install Jenkins itself&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aptitude install jenkins&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2014/09/shot_2014_09_19__20_16_09.png" alt="Jenkins dashboard after installation" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;Jenkins dashboard after installation&lt;/p&gt;
&lt;p&gt;After installation it starts automatically and you can go straight to the web interface, which lives on port
8080 of your server. As you may notice, it is open to the outside world and not protected in any way. It&amp;rsquo;s time to configure
authentication and access rights.&lt;/p&gt;
&lt;h2&gt;Initial configuration&lt;span class="hx:absolute hx:-mt-20" id="initial-configuration"&gt;&lt;/span&gt;
&lt;a href="#initial-configuration" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Here you need to decide how you want to authenticate in the system: through accounts stored in Jenkins
itself, or through an external service (Bitbucket, Github, etc.). If you plan to use an external service, you need
to install its plugin. In the case of Bitbucket, that is the &amp;ldquo;Bitbucket OAuth Plugin&amp;rdquo;. If not, just skip the plugin
installation and read on.&lt;/p&gt;
&lt;h3&gt;Installing the plugin using Bitbucket as an example&lt;span class="hx:absolute hx:-mt-20" id="installing-the-plugin-using-bitbucket-as-an-example"&gt;&lt;/span&gt;
&lt;a href="#installing-the-plugin-using-bitbucket-as-an-example" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2014/09/shot_2014_09_19__20_26_41.png" alt="shot_2014_09_19__20_26_41" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;To install the plugin, go to &amp;ldquo;Manage Jenkins&amp;rdquo; - &amp;ldquo;Manage Plugins&amp;rdquo; - &amp;ldquo;Available&amp;rdquo; and select the plugin you need. I recommend
using the filter for a quick search. We click &amp;ldquo;Download now and install after restart&amp;rdquo; for a clean plugin
installation with a restart. In the installation window that appears, check the box &amp;ldquo;Restart Jenkins when installation is complete and
no jobs are running&amp;rdquo; and wait for the installation with a reboot. The page should refresh by itself. After the installation you can
return to the main page and continue configuring.&lt;/p&gt;
&lt;h3&gt;Configuring authentication and access rights&lt;span class="hx:absolute hx:-mt-20" id="configuring-authentication-and-access-rights"&gt;&lt;/span&gt;
&lt;a href="#configuring-authentication-and-access-rights" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Our Jenkins is still available to the first person who walks in, and it warns us about it with the message&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Unsecured Jenkins allows anyone on the network to launch processes on your behalf. Consider at least enabling
authentication to discourage misuse.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So let&amp;rsquo;s configure the access rights and the login mechanism. For this we need to go to &amp;ldquo;Manage Jenkins&amp;rdquo; again,
and there click the &amp;ldquo;Setup Security&amp;rdquo; button in the upper right corner. In the settings window that appears, enable the security settings with the
&amp;ldquo;Enable security&amp;rdquo; checkbox. Next we need to choose how user authentication will happen. By
default several methods are available. We are interested in &amp;ldquo;Jenkins&amp;rsquo; own user database&amp;rdquo; if we want to log in with credentials
stored in Jenkins itself, or &amp;ldquo;Bitbucket OAuth Plugin&amp;rdquo; if we want to log in through Bitbucket.&lt;/p&gt;
&lt;h3&gt;Authentication through the built-in Jenkins database&lt;span class="hx:absolute hx:-mt-20" id="authentication-through-the-built-in-jenkins-database"&gt;&lt;/span&gt;
&lt;a href="#authentication-through-the-built-in-jenkins-database" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;There is not much to configure here. Though perhaps it is worth forbidding user registration by unchecking
&amp;ldquo;Allow users to sign up&amp;rdquo;.&lt;/p&gt;
&lt;h3&gt;Authentication through Bitbucket&lt;span class="hx:absolute hx:-mt-20" id="authentication-through-bitbucket"&gt;&lt;/span&gt;
&lt;a href="#authentication-through-bitbucket" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;For this method we need to go to our Bitbucket account settings and register an application. To
do this, go to your account page, click &amp;ldquo;Manage account&amp;rdquo; and go to the &amp;ldquo;OAuth&amp;rdquo; section. Here we add an
application with the &amp;ldquo;Add consumer&amp;rdquo; button. Then we get the &amp;ldquo;Key&amp;rdquo;, which we put into &amp;ldquo;Client ID&amp;rdquo;, and the &amp;ldquo;Secret&amp;rdquo;, which
we copy into &amp;ldquo;Client Secret&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2014/09/shot_2014_09_19__20_42_57.png" title="Adding an application on Bitbucket" alt="Adding an application on Bitbucket" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Adding an application on Bitbucket&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2014/09/shot_2014_09_19__20_43_11.png" title="API data for the application" alt="API data for the application" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;API data for the application&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2014/09/shot_2014_09_19__20_43_30.png" title="Data entered in the Jenkins settings" alt="Data entered in the Jenkins settings" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Data entered in the Jenkins settings&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;h2&gt;Configuring access rights&lt;span class="hx:absolute hx:-mt-20" id="configuring-access-rights"&gt;&lt;/span&gt;
&lt;a href="#configuring-access-rights" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Now that we have configured the login, we need to lock out strangers. Several methods can be used for this, the simplest being
&amp;ldquo;Matrix-based security&amp;rdquo;. The main thing here is to do two things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Give the &amp;ldquo;Anonymous&amp;rdquo; user access to the &amp;ldquo;Read&amp;rdquo; action in the
&amp;ldquo;View&amp;rdquo; category, otherwise Jenkins may not work correctly&lt;/li&gt;
&lt;li&gt;At the same time, without saving the settings beforehand, create
the user under which the system will be administered from now on, otherwise after applying these settings you
will not be able to log into the Jenkins interface. If you authenticate through an external service - specify your
username on that service&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2014/09/shot_2014_09_19__20_56_59.png" alt="Setting access rights during initial configuration" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;Setting access rights during initial configuration&lt;/p&gt;
&lt;p&gt;Double-check the settings and click the &amp;ldquo;Save&amp;rdquo; button.&lt;/p&gt;
&lt;h2&gt;First login or user creation&lt;span class="hx:absolute hx:-mt-20" id="first-login-or-user-creation"&gt;&lt;/span&gt;
&lt;a href="#first-login-or-user-creation" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;After saving the settings you will either get the login form or be redirected to the external authentication service.&lt;/p&gt;
&lt;h3&gt;Login with the built-in user database&lt;span class="hx:absolute hx:-mt-20" id="login-with-the-built-in-user-database"&gt;&lt;/span&gt;
&lt;a href="#login-with-the-built-in-user-database" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Jenkins will direct you to the login form. You don&amp;rsquo;t have a user yet, so remove the extra part from the URL and go to the
root of the web interface - you will be shown the user creation form.&lt;/p&gt;
&lt;h3&gt;Login through Bitbucket&lt;span class="hx:absolute hx:-mt-20" id="login-through-bitbucket"&gt;&lt;/span&gt;
&lt;a href="#login-through-bitbucket" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2014/09/shot_2014_09_19__21_02_37.png" alt="Confirming access through Bitbucket" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;Confirming access through Bitbucket&lt;/p&gt;
&lt;p&gt;With Bitbucket or another external service there is no need to register, so you only need to confirm on that
service that you trust the application. After that you will return to the system as a full-fledged administrator (if, of course, you
gave your account such rights).&lt;/p&gt;
&lt;h2&gt;Regaining access&lt;span class="hx:absolute hx:-mt-20" id="regaining-access"&gt;&lt;/span&gt;
&lt;a href="#regaining-access" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;If you made a mistake while configuring access rights and Jenkins did not let you in, don&amp;rsquo;t panic. You can turn off security in
the config:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nano /var/lib/jenkins/config.xml&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;In the file that opens, replace the line&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xhtml" data-lang="xhtml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;useSecurity&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;true&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;useSecurity&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;with&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xhtml" data-lang="xhtml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;useSecurity&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;false&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;useSecurity&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;and restart Jenkins:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;service jenkins restart&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Now your Jenkins is open to the whole world again. Go back to configuring the login options and access rights.&lt;/p&gt;
&lt;h2&gt;What&amp;rsquo;s next?&lt;span class="hx:absolute hx:-mt-20" id="whats-next"&gt;&lt;/span&gt;
&lt;a href="#whats-next" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Next you can start installing the plugins your projects need and creating jobs. But that is for later.
UPD: &lt;a href="https://skobk.in/en/2014/09/jenkins-build-on-bitbucket-commit/"title="Jenkins. Building a project on a Bitbucket commit"&gt;Automating builds on a Bitbucket commit&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Neil deGrasse Tyson - God of the gaps [Russian voiceover]</title><link>https://skobk.in/en/2014/07/neil-degrasse-tyson-lacoons-god-russian-voiceover/</link><pubDate>Tue, 08 Jul 2014 08:07:49 +0300</pubDate><guid>https://skobk.in/en/2014/07/neil-degrasse-tyson-lacoons-god-russian-voiceover/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;I have long been interested in the talks of various scientists who popularize science, and I often observe that translation is a big problem. At best — there are subtitles. At worst — only the original. For those who know English well, no problem. But for those who are unable to understand speech &amp;ldquo;on the fly&amp;rdquo;, it is a big problem. And subtitles are by no means always a solution — you cannot leave a video running and go about your business. Today I came across one such video, available only with subtitles, and I wanted to voice it over. There was no time to put it off — otherwise, amid other matters, the idea would have been forgotten and the enthusiasm would have faded. I had to secure myself a sleepless night. And here is the result.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;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.com/embed/bIKjZDBpKik?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;The voiceover took roughly four times longer than the video itself runs. And that is excluding the video preparation, timing adjustments, editing and rendering. Useful experience. During the recording I already optimized the process several times and started working faster. Is it worth trying to voice over other videos? P.S. As for the oddities and the stumbling speech — in my defense I will say that the subtitles I took as the basis are rather sloppy in places. Where it was utterly unbearable, I fixed them. Where it was tolerable, I read them as they were. After all, there was not that much time.&lt;/p&gt;</description></item><item><title>4talk - yet another XMPP messenger</title><link>https://skobk.in/en/2013/10/4talk-yet-another-xmpp-messenger/</link><pubDate>Fri, 11 Oct 2013 00:39:23 +0300</pubDate><guid>https://skobk.in/en/2013/10/4talk-yet-another-xmpp-messenger/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;The project has shut down, the article is kept for historical purposes.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Not so long ago, &lt;a href="http://lurkmore.to/%d0%92%d0%bd%d0%b5%d0%b7%d0%b0%d0%bf%d0%bd%d0%be"target="_blank" rel="noopener"&gt;SUDDENLY&lt;/a&gt;, I was given the chance to take part in testing a new messenger from former QIP developers. Here is my review of &lt;a href="http://4talk.im"target="_blank" rel="noopener"&gt;4talk&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;What? Where? When?&lt;span class="hx:absolute hx:-mt-20" id="what-where-when"&gt;&lt;/span&gt;
&lt;a href="#what-where-when" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Before that happened, the information I had heard about the project was so fragmentary that it left me with a completely wrong idea. It is hard to say now whether that was good or bad. My first thought was that RIR had decided to &lt;a href="http://izvestia.ru/news/553488"target="_blank" rel="noopener"&gt;remake QIP&lt;/a&gt; from scratch under a new brand, &lt;a href="http://www.siliconrus.com/2013/07/eksklyuziv-sergey-kravtsov-gendirektor-kompanii-russkie-internet-resheniya-pro-uhod-iz-rbk-razvitie-i-ugasanie-messendzhera-qip/"target="_blank" rel="noopener"&gt;to avoid conflicting with RBC&lt;/a&gt;. I was pleased. But after a while, a small piece of insider information — the lack of support for &lt;a href="http://juick.com/skobkin-ru/"target="_blank" rel="noopener"&gt;Juick.com&lt;/a&gt;, which I use actively — made me wary. However, I knew nothing else, and the project was kept in fairly good secrecy — it was next to impossible to even find screenshots of the chat window on the open web. After some time, I was invited to take part in the testing. I immediately asked several clarifying questions, and my doubts only grew stronger. The new messenger was completely isolated from the other networks and was not at all the new multi-protocol client I had assumed it to be. At this point I seriously wondered whether I needed this testing at all, considering that it was closed and I was not particularly eager to chat only with a handful of testers. However, two factors tipped the scales: my good attitude toward the ex-QIP team, and the lucky coincidence that three of my friends happened to be among the testers. I agreed.&lt;/p&gt;
&lt;h2&gt;Let the fight begin!&lt;span class="hx:absolute hx:-mt-20" id="let-the-fight-begin"&gt;&lt;/span&gt;
&lt;a href="#let-the-fight-begin" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The first thing I did was install 4talk on my old &lt;a href="http://market.yandex.ru/model.xml?modelid=7023082&amp;amp;hid=91491"target="_blank" rel="noopener"&gt;HTC Wildfire S&lt;/a&gt;. It should be noted that at that time it was not only already a rather old and weak model, but had also been additionally slowed down by moving a bunch of software to the flash card by creating &lt;a href="https://en.wikipedia.org/wiki/Symbolic_link"target="_blank" rel="noopener"&gt;symlinks&lt;/a&gt;, as a result of which it lagged mercilessly. I expected anything from the client except normal operation — modern mobile software is mostly very heavy and performs terribly on old devices. 4talk, however, refused to lag and worked fine. I could not test on the old device for long, because the degraded battery made it impossible, and a new &lt;a href="http://market.yandex.ru/model.xml?modelid=9323494&amp;amp;hid=91491"target="_blank" rel="noopener"&gt;Lenovo P770&lt;/a&gt; was already on its way to me from China.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2013/10/Screenshot_2013-10-11-00-01-30.png" alt="4talk - resource usage on Android" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;Once it arrived, I immediately installed 4talk and decided to use it 24x7, to evaluate the messenger and, in parallel, check how long the new device could live without charging. Here 4talk and the Lenovo pleasantly surprised me: in always-connected mode, with automatic switching from Wi-Fi to 3G when the former was unavailable, the smartphone could run for more than two days without charging. In the smartphone&amp;rsquo;s list of resource usage by programs, I had to scroll down a whole screenful to reach 4talk, since it used significantly less than the Google services (~41%). In parallel, I moved on to testing the desktop version. It is worth noting that 4talk is an end-user product, maximally simplified in line with all modern trends. Those who like QIP or Miranda may feel a certain discomfort. There is a minimum of settings in the program, and the features follow a principle closer to Apple products: few, but beautiful and simple. Moreover, the desktop client is essentially an appendage to the mobile one, and one should not expect anything extra from it. One of the important features of this messenger is that it is tied to your mobile phone number and does not require regular &lt;a href="https://en.wikipedia.org/wiki/Authentication"target="_blank" rel="noopener"&gt;authentication&lt;/a&gt;. A new device is activated by sending a code to your number via SMS, and after entering it nothing more is required of you. There are no logins and passwords here. More precisely, your phone number is the login, and it serves as your identifier (it is used in the jid), while passwords work on an &lt;a href="https://en.wikipedia.org/wiki/One-time_password"target="_blank" rel="noopener"&gt;OTP&lt;/a&gt; scheme. But for the end user everything is much simpler. The service concept also includes the OMMG principle — Open Mobile Messenger Graph. This means that if there is a person in your smartphone&amp;rsquo;s phone book who has you in theirs, a contact between you will be established automatically and you will see each other in the client&amp;rsquo;s roster.&lt;/p&gt;
&lt;h2&gt;What can i do?&lt;span class="hx:absolute hx:-mt-20" id="what-can-i-do"&gt;&lt;/span&gt;
&lt;a href="#what-can-i-do" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Actually, before installing, many people may ask themselves: &amp;ldquo;But why?&amp;rdquo;. Perfectly logical. Let&amp;rsquo;s look at some of 4talk&amp;rsquo;s &lt;a href="http://ru.wikipedia.org/wiki/%d0%a4%d0%b8%d1%87%d0%b0"target="_blank" rel="noopener"&gt;features&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Message delivery. This is not a special feature but what any messenger should do, judging by its name. 4talk runs on the &lt;a href="http://wiki.jrudevels.org/XMPP"target="_blank" rel="noopener"&gt;XMPP&lt;/a&gt; protocol with its own implementations of some of the functions.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Authentication"target="_blank" rel="noopener"&gt;Authentication&lt;/a&gt; by mobile phone number. Registration and connecting new devices to an account are performed via the mobile phone. You enter the number, receive a message with a one-time code, enter it, and the device is tied to the account.&lt;/li&gt;
&lt;li&gt;History synchronization. Those who use &amp;ldquo;&lt;a href="http://lurkmore.to/%d0%9a%d0%be%d0%bc%d0%bf%d1%8c%d1%8e%d1%82%d0%b5%d1%80%d0%bd%d1%8b%d0%b9_%d1%81%d0%bb%d0%b5%d0%bd%d0%b3#.D0.92"target="_blank" rel="noopener"&gt;vanilla&lt;/a&gt;&amp;rdquo; XMPP know that there is an &lt;a href="http://wiki.jrudevels.org/XEP"target="_blank" rel="noopener"&gt;XEP&lt;/a&gt; for &lt;a href="http://xmpp.org/extensions/xep-0136.html"target="_blank" rel="noopener"&gt;storing history on the server&lt;/a&gt;. It is used almost nowhere, and therefore achieving adequate history synchronization is rather difficult. Skype, on the other hand, has a rather strange history implementation, thanks to which you can turn on another device and receive, say, a whole day&amp;rsquo;s conversation as unread messages. Another interesting thing here is that deleting your own messages in a conversation is supported. Deletion happens on all devices at once, including on the other party&amp;rsquo;s side. Moreover, according to the developers, the history is deleted on the server as well. (see screenshots)&lt;/li&gt;
&lt;li&gt;Mobility. 4talk was originally designed as a mobile messenger. Therefore it works very well on mobile devices and consumes their resources carefully. (see screenshots)&lt;/li&gt;
&lt;li&gt;BB codes. The Windows and Android clients support BB-code. Moreover, implicitly — there are no interface elements responsible for text formatting. That is, automatic formatting of things like quotes and image links will work. You can even type the BB codes you are used to from QIP and they will work fine. But doing it comfortably in one click will not work. A good reason to surprise your friends. However, it is worth keeping in mind that, at least at the moment, the mobile version renders the formatting of outgoing messages not as well as the desktop one. (see screenshots)&lt;/li&gt;
&lt;li&gt;Multi-user chats / &lt;a href="http://wiki.jrudevels.org/Conference"target="_blank" rel="noopener"&gt;MUC / conferences&lt;/a&gt;. Like many other modern messengers, 4talk supports multi-user chats. The capabilities here are the same as in ordinary dialogs. Unlike XMPP, a notification is shown when someone is typing. It is much more reminiscent of Skype conferences than of the original MUC. (see screenshots)&lt;/li&gt;
&lt;li&gt;File transfer via the cloud. Since file transfer is one of the most problematic features in any messenger, the 4talk developers chose a workaround — transfer via the cloud. The advantages are obvious: the file can be received on any device, and there is no need for a white IP address or router port forwarding for sending to work. The disadvantages, unfortunately, are there too: a limit on the size of the transferred file (30 megabytes at the moment), the file being stored on someone else&amp;rsquo;s servers, and a transfer speed limit when on a local network. Also worth noting is the tracking of the state of received files on the computer: if a file has been deleted, the conversation window will offer to download it again.&lt;/li&gt;
&lt;li&gt;Multimedia messages. Multimedia messages can be of different types: images, video, audio. All of them work via the cloud file transfer mentioned above and are displayed interactively in the conversation. That is, if you take a photo on your smartphone and send it to your conversation partner, they can view it right from the conversation, both on Windows and on Android. Voice recordings work the same way: they can also be made and listened to on any device. Note the two-minute limit on recording length. (see screenshots)&lt;/li&gt;
&lt;li&gt;Contact sharing. The messenger implements convenient sharing of contacts with the other party. (see screenshots)&lt;/li&gt;
&lt;li&gt;Geo messages. A convenient feature that lets you put a marker on a map and send it to one or several conversation partners. True, there is a shortcoming here too for now: a marker cannot be created from the PC (viewing received markers works fine). I suppose this will be fixed over time. (see screenshots)&lt;/li&gt;
&lt;li&gt;Device authorization management. To raise the security level, there is the ability to deactivate a device. The deactivation of any other device can be performed from one of the authorized devices. During this procedure, the entire message history is deleted on the device being deactivated. (see screenshots and video)&lt;/li&gt;
&lt;li&gt;Spell checking / spellcheck. Many programs support spell checking via plugins. But few messengers can boast of this capability &amp;ldquo;out of the box&amp;rdquo;. (see screenshots)&lt;/li&gt;
&lt;li&gt;One-click installation. In principle, such an installer feature surprises no one these days. But it is there, and many users will like it. About the other side of the coin — at the end of the review. (see screenshots)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Transport_Layer_Security"target="_blank" rel="noopener"&gt;SSL&lt;/a&gt;. All traffic sent and received by 4talk is encrypted with SSL, which makes it impossible to read the correspondence by intercepting traffic on a router or sniffing an unencrypted wireless connection. If a certificate check fails, the connection is terminated.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What has been seen cannot be unseen&lt;span class="hx:absolute hx:-mt-20" id="what-has-been-seen-cannot-be-unseen"&gt;&lt;/span&gt;
&lt;a href="#what-has-been-seen-cannot-be-unseen" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;Android&lt;span class="hx:absolute hx:-mt-20" id="android"&gt;&lt;/span&gt;
&lt;a href="#android" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;h4&gt;Old interface&lt;span class="hx:absolute hx:-mt-20" id="old-interface"&gt;&lt;/span&gt;
&lt;a href="#old-interface" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/Screenshot_2013-10-10-23-27-13.png" title="4talk roster" alt="4talk roster" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;4talk roster&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/Screenshot_2013-10-10-23-29-01.png" title="Shit-smiley. The best smiley ever." alt="Shit-smiley. The best smiley ever." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Shit-smiley. The best smiley ever.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/Screenshot_2013-10-10-23-30-03.png" title="You can send a contact and a location." alt="You can send a contact and a location." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;You can send a contact and a location.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/Screenshot_2013-10-10-23-29-57.png" title="Sending a contact in 4talk" alt="Sending a contact in 4talk" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Sending a contact in 4talk&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/Screenshot_2013-10-10-23-32-07.png" title="Pop-up messages over everything" alt="Pop-up messages over everything" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Pop-up messages over everything&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;h4&gt;New interface&lt;span class="hx:absolute hx:-mt-20" id="new-interface"&gt;&lt;/span&gt;
&lt;a href="#new-interface" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/Screenshot_2013-10-24-18-41-17.png" title="Chat on a 4.5″ screen." alt="Chat on a 4.5″ screen." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Chat on a 4.5″ screen.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/IMG_20131024_192043.jpg" title="Chat on a 10.1″ screen." alt="Chat on a 10.1″ screen." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Chat on a 10.1″ screen.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/Screenshot_2013-10-10-23-32-07.png" title="Pop-up messages over everything" alt="Pop-up messages over everything" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Pop-up messages over everything&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/Screenshot_2013-11-04-21-00-06.png" title="Geo tags on Android. Choosing a location." alt="Geo tags on Android. Choosing a location." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Geo tags on Android. Choosing a location.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/2013-11-04-20-54-50.png" title="Geo tags on Android. Choosing a location, with a bug on a Lenovo P770 running custom firmware." alt="Geo tags on Android. Choosing a location, with a bug on a Lenovo P770 running custom firmware." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Geo tags on Android. Choosing a location, with a bug on a Lenovo P770 running custom firmware.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/2013-11-04-20-53-24.png" title="Geo tags on Android. As seen in chat." alt="Geo tags on Android. As seen in chat." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Geo tags on Android. As seen in chat.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/2013-11-06-01-39-31.png" title="A received contact in chat" alt="A received contact in chat" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;A received contact in chat&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/2013-11-06-01-39-39.png" title="Viewing a received contact" alt="Viewing a received contact" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Viewing a received contact&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/2013-11-05-23-17-00.png" title="The new attachments panel" alt="The new attachments panel" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;The new attachments panel&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/2013-11-06-02-36-09.png" title="— Do you see 4talk? — No — Neither do I. But it&amp;#39;s there." alt="— Do you see 4talk? — No — Neither do I. But it’s there." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;— Do you see 4talk? — No — Neither do I. But it&amp;#39;s there.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/2013-11-06-02-49-48.png" title="Recording a voice message" alt="Recording a voice message" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Recording a voice message&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/2013-11-06-02-54-58.png" title="Voice messages in chat" alt="Voice messages in chat" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Voice messages in chat&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/2013-11-06-04-35-26.png" title="Authentication on Android" alt="Authentication on Android" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Authentication on Android&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;h3&gt;Windows&lt;span class="hx:absolute hx:-mt-20" id="windows"&gt;&lt;/span&gt;
&lt;a href="#windows" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/shot_2013_10_11__00_31_56.png" title="Settings in the PC version" alt="Settings in the PC version" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Settings in the PC version&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/shot_2013_10_11__00_29_16.png" title="Chat in the PC version" alt="Chat in the PC version" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Chat in the PC version&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/shot_2013_11_04__17_11_30.png" title="Multi-user chat with the developers" alt="Multi-user chat with the developers" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Multi-user chat with the developers&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/shot_2013_11_04__17_08_15.png" title="Photo display on Windows. Shartolka." alt="Photo display on Windows. Shartolka." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Photo display on Windows. Shartolka.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/shot_2013_11_04__20_50_21.png" title="Geo tag display on Windows" alt="Geo tag display on Windows" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Geo tag display on Windows&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/shot_2013_11_05__15_20_10.png" title="Deauthorizing a device on PC" alt="Deauthorizing a device on PC" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Deauthorizing a device on PC&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/Screenshot_2013-11-04-21-00-06.png" title="Geo tags on Android. Choosing a location." alt="Geo tags on Android. Choosing a location." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Geo tags on Android. Choosing a location.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/shot_2013_11_05__15_41_31.png" title="Spell checking on Windows" alt="Spell checking on Windows" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Spell checking on Windows&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/shot_2013_11_06__01_09_54.png" title="History deletion on Windows" alt="History deletion on Windows" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;History deletion on Windows&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/shot_2013_11_06__02_10_25.png" title="BB-code. The [code] tag." alt="BB-code. The code tag." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;BB-code. The [code] tag.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/shot_2013_11_06__02_55_24.png" title="Voice messages on Windows" alt="Voice messages on Windows" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Voice messages on Windows&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/shot_2013_11_06__04_34_16.png" title="One-click installation" alt="One-click installation" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;One-click installation&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2013/10/shot_2013_11_06__04_38_09.png" title="Inserting YouTube links" alt="Inserting YouTube links" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Inserting YouTube links&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;h3&gt;Device deactivation&lt;span class="hx:absolute hx:-mt-20" id="device-deactivation"&gt;&lt;/span&gt;
&lt;a href="#device-deactivation" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;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.com/embed/flFEVsFAvGI?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2&gt;On a sad note&lt;span class="hx:absolute hx:-mt-20" id="on-a-sad-note"&gt;&lt;/span&gt;
&lt;a href="#on-a-sad-note" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;Closedness&lt;span class="hx:absolute hx:-mt-20" id="closedness"&gt;&lt;/span&gt;
&lt;a href="#closedness" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Although 4talk left an overall good impression, it is by no means a perfect messenger. For me personally, a big downside is its closedness. For example, using Juick in 4talk is impossible. The absence of S2S is a logical move in this case, but for me, an adherent of XMPP as an open standard for decentralized communication, it is not the best quality of service. Besides, the desktop version is a side project, so there is hardly any point in waiting for versions for operating systems other than Windows and Mac OS X (there is no such version yet). As a user of an OS zoo that includes Linux systems, this inconveniences me too.&lt;/p&gt;
&lt;h3&gt;Departing from system principles in favor of the user&lt;span class="hx:absolute hx:-mt-20" id="departing-from-system-principles-in-favor-of-the-user"&gt;&lt;/span&gt;
&lt;a href="#departing-from-system-principles-in-favor-of-the-user" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;It is also worth noting a tendency typical of modern software that panders to the user in every way. By default, installation goes to the %APPDATA%\4talk directory, which is not quite right from the point of view of software installation principles in Windows (Hi, Google Chrome!). True, this does allow the user to install the program without UAC prompts, including on a work computer, without having access to an administrator account. Installation into Program Files is possible when running the installer manually with administrative rights and choosing that directory. However, in that case 4talk&amp;rsquo;s operation may not be entirely correct in some cases. One would like to believe that this is a childhood disease of the testing stage and that over time 4talk will learn to work &amp;ldquo;properly&amp;rdquo; just as well as it installs &amp;ldquo;in one click&amp;rdquo; for regular users.&lt;/p&gt;
&lt;h3&gt;No way to turn OMMG off&lt;span class="hx:absolute hx:-mt-20" id="no-way-to-turn-ommg-off"&gt;&lt;/span&gt;
&lt;a href="#no-way-to-turn-ommg-off" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;As strange as it may sound, this is a downside for me too. After all, I would like to manage my contact list myself and, consequently, see in it only the people I want to see, not absolutely everyone with whom there is a mutual phone-book entry.&lt;/p&gt;
&lt;h2&gt;Summary&lt;span class="hx:absolute hx:-mt-20" id="summary"&gt;&lt;/span&gt;
&lt;a href="#summary" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The service is quite good and will definitely find its niche. However, I, as an idealist for the freedom of everything (software, communication and so on), would prefer that most of these functions be implemented as an evolution of the existing XMPP servers, with a client made that is not tied to any specific service. Unfortunately, this contradicts the 4talk concept and the most popular ways of monetizing services, which is understandable. Despite this, I can recommend trying this client and deciding for yourself how convenient it is. I would also like to note the good approach to working on the product. To write this review, I got in touch with the developers, who willingly answered all my questions and clarified some of the finer points of how the client works.&lt;/p&gt;
&lt;h2&gt;Links&lt;span class="hx:absolute hx:-mt-20" id="links"&gt;&lt;/span&gt;
&lt;a href="#links" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.4talk.im"target="_blank" rel="noopener"&gt;4talk website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vk.com/4talk"target="_blank" rel="noopener"&gt;4talk page on VKontakte&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Fixing GPS on the HTC Wildfire S running CyanogenMod 7.</title><link>https://skobk.in/en/2012/07/gps-fix-htc-wildfire-s-cm7/</link><pubDate>Wed, 25 Jul 2012 17:33:08 +0300</pubDate><guid>https://skobk.in/en/2012/07/gps-fix-htc-wildfire-s-cm7/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This article is outdated but kept for historical purposes.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2012/07/screenshot-1343225163333.png" title="GPS Status &amp;amp; Toolbox" alt="GPS Status &amp; Toolbox" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;GPS Status &amp;amp; Toolbox&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Many users of the &lt;a href="http://code.google.com/p/cm7-wildfire-s/"target="_blank" rel="noopener"&gt;CyanogenMod 7 port for the HTC Wildfire S&lt;/a&gt; may have run into the fact that GPS on this firmware simply does not work or takes an extremely long time to get a position fix. Positioning on these devices works via &lt;a href="https://en.wikipedia.org/wiki/Assisted_GPS"target="_blank" rel="noopener"&gt;A-GPS&lt;/a&gt;, in which base stations and a support server (a &lt;a href="https://en.wikipedia.org/wiki/Assisted_GPS#Standards"target="_blank" rel="noopener"&gt;SUPL server&lt;/a&gt;) are used for the initial position fix. Also, positioning requires precise time and its synchronization via the &lt;a href="https://en.wikipedia.org/wiki/Network_Time_Protocol"target="_blank" rel="noopener"&gt;NTP protocol&lt;/a&gt;. The thing is that this CyanogenMod port ships with a somewhat incorrect /etc/gps.conf config. To make GPS work correctly, the correct NTP and SUPL entries need to be specified in the config. An NTP server can be chosen on the &lt;a href="http://www.pool.ntp.org/ru/use.html"target="_blank" rel="noopener"&gt;pool.ntp.org&lt;/a&gt; website. For Russia, the optimal choice is ru.pool.ntp.org, for Ukraine — ua.pool.ntp.org, for Belarus — by.pool.ntp.org. Next, we specify the SUPL server supl.google.com and port 7276. In the end, we get a config roughly like this:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;NTP_SERVER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; ru.pool.ntp.org
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;XTRA_SERVER_1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://xtra1.gpsonextra.net/xtra.bin
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;XTRA_SERVER_2&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://xtra2.gpsonextra.net/xtra.bin
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;XTRA_SERVER_3&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://xtra3.gpsonextra.net/xtra.bin
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;SUPL_HOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;supl.google.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;SUPL_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;7276&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;After that, you can reboot the device and test the GPS. For testing, you can use the &lt;a href="https://play.google.com/store/apps/details?id=com.eclipsim.gpsstatus2"target="_blank" rel="noopener"&gt;GPS Status &amp;amp; Toolbox&lt;/a&gt; utility, which can not only show the GPS status but also refresh the satellite information to speed up a cold start.&lt;/p&gt;</description></item><item><title>KVM VPS on Proxmox behind NAT with port forwarding and DHCP</title><link>https://skobk.in/en/2012/03/kvm-vps-proxmox-with-port-forwarding/</link><pubDate>Wed, 28 Mar 2012 17:17:21 +0300</pubDate><guid>https://skobk.in/en/2012/03/kvm-vps-proxmox-with-port-forwarding/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Often, when a server is rented from some hosting provider, it comes with one or several IP addresses. If the server is &amp;ldquo;bare-metal&amp;rdquo; and all services are installed directly on the OS, sharing resources among themselves as best they can, this problem may never arise. But if a clean separation of the server&amp;rsquo;s resources by means of virtualization is planned, then at some point you may find yourself needing either additional IP addresses, or a NAT setup with port forwarding. Provided, of course, that the services face the outside world.&lt;/p&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;Post updated on 07.03.2023 to bring it up to date.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-amber-200 hx:bg-amber-100 hx:text-amber-900 hx:dark:border-amber-200/30 hx:dark:bg-amber-900/30 hx:dark:text-amber-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/&gt;&lt;/svg&gt;Warning&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This post has partially aged. The principles described in it still work — PVE 9+ was recently configured in exactly the same way. But it should not be used as a step-by-step guide, since various details, such as the firewall persisting across reboots, have changed, and some of the settings are now better done by means of PVE itself or in other files.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;Network bridge&lt;span class="hx:absolute hx:-mt-20" id="network-bridge"&gt;&lt;/span&gt;
&lt;a href="#network-bridge" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Setting up NAT for several virtual machines is fairly simple. Proxmox supports creating network bridges &amp;ldquo;out of the box&amp;rdquo; (although it is more convenient to do this directly in the config file, since PVE eats the comments and changes the formatting). For our purposes, we will create the bridge &lt;code&gt;vmbr1&lt;/code&gt; with the IP address &lt;code&gt;192.168.100.1&lt;/code&gt; and the standard netmask &lt;code&gt;255.255.255.0&lt;/code&gt;, which puts all 256 addresses at our disposal.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2012/03/shot_2012_03_28__16_56_55.png" title="Proxmox. Network bridge." alt="Proxmox. Network bridge." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Proxmox. Network bridge.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Once it is working, open &lt;code&gt;/etc/network/interfaces&lt;/code&gt; and slightly edit the configuration of the created bridge:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;auto vmbr1
iface vmbr1 inet static
address 192.168.100.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
post-up echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s &amp;#39;192.168.100.0/24&amp;#39; -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s &amp;#39;192.168.100.0/24&amp;#39; -o vmbr0 -j MASQUERADE&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Here we allow the virtual machines on &lt;code&gt;vmbr1&lt;/code&gt; to access the internet through &lt;code&gt;vmbr0&lt;/code&gt;. It is worth noting that the last two lines, which add and remove the firewall rules, may differ, because in my case the main interface of the server is the &lt;code&gt;vmbr0&lt;/code&gt; bridge and the network is configured on it. In my setup it is used for several virtual machines to get real IP addresses from the external gateway. If your network is configured on &lt;code&gt;eth0&lt;/code&gt;, then it is &lt;code&gt;eth0&lt;/code&gt; that should be there instead of &lt;code&gt;vmbr0&lt;/code&gt;. Otherwise there is no difference at all.&lt;br&gt;
Also, &lt;code&gt;ip_forward&lt;/code&gt; can be enabled in &lt;code&gt;/etc/sysctl.conf&lt;/code&gt;.&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;net.ipv4.ip_forward=1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;Port forwarding&lt;span class="hx:absolute hx:-mt-20" id="port-forwarding"&gt;&lt;/span&gt;
&lt;a href="#port-forwarding" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Next, suppose certain ports need to be forwarded to the right virtual machines. This can be done with iptables:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iptables -A PREROUTING -t nat -i vmbr0 -p tcp -d %ext_ip_on_vmbr0% --dport %ext_port% -j DNAT --to %int_ip_on_vmbr1%:%int_port%&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Where:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;%ext_ip_on_vmbr0%&lt;/code&gt; — the external IP address located on &lt;code&gt;vmbr0&lt;/code&gt;. If this parameter is omitted, the port will be forwarded from all addresses on that bridge.&lt;br&gt;
&lt;code&gt;%ext_port%&lt;/code&gt; — the external port through which the server will be accessed from the internet.&lt;br&gt;
&lt;code&gt;%int_ip_on_vmbr1%&lt;/code&gt; — the internal IP of the virtual machine on &lt;code&gt;vmbr1&lt;/code&gt;.&lt;br&gt;
&lt;code&gt;%int_port%&lt;/code&gt; — the internal port on which the service inside the virtual machine will run.&lt;/p&gt;
&lt;p&gt;And after applying the rules for the needed ports, you can check that everything is correct:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iptables -L -t nat
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Chain PREROUTING &lt;span class="o"&gt;(&lt;/span&gt;policy ACCEPT&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;target prot opt &lt;span class="nb"&gt;source&lt;/span&gt; destination
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;DNAT tcp -- anywhere xxx.yyy.ru tcp dpt:33122 to:192.168.100.2:22
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;DNAT tcp -- anywhere xxx.yyy.ru tcp dpt:33222 to:192.168.100.3:22
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Chain OUTPUT &lt;span class="o"&gt;(&lt;/span&gt;policy ACCEPT&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;target prot opt &lt;span class="nb"&gt;source&lt;/span&gt; destination
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Chain POSTROUTING &lt;span class="o"&gt;(&lt;/span&gt;policy ACCEPT&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;target prot opt &lt;span class="nb"&gt;source&lt;/span&gt; destination
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;MASQUERADE all -- 192.168.100.0/24 anywhere&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;Saving the firewall rules&lt;span class="hx:absolute hx:-mt-20" id="saving-the-firewall-rules"&gt;&lt;/span&gt;
&lt;a href="#saving-the-firewall-rules" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;If everything is correct — all that is left is to make sure the rules are restored on reboot.&lt;/p&gt;
&lt;h3&gt;The new way&lt;span class="hx:absolute hx:-mt-20" id="the-new-way"&gt;&lt;/span&gt;
&lt;a href="#the-new-way" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Use the &lt;code&gt;iptables-persistent&lt;/code&gt; package.&lt;/p&gt;
&lt;h3&gt;The old way&lt;span class="hx:absolute hx:-mt-20" id="the-old-way"&gt;&lt;/span&gt;
&lt;a href="#the-old-way" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;For this you can use &lt;code&gt;iptables-save&lt;/code&gt; and the network initialization scripts.&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iptables-save &amp;gt; /etc/iptables.up.rules&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Let&amp;rsquo;s create a rule-loading script:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nano /etc/network/if-pre-up.d/iptables&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;And write into it the command that loads the rules from the previously saved file:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/sbin/iptables-restore &amp;lt; /etc/iptables.up.rules&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Don&amp;rsquo;t forget to make this file executable:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chmod +x /etc/network/if-pre-up.d/iptables&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;A simpler alternative is to install the &lt;code&gt;iptables-persistent&lt;/code&gt; package, which will save the rules itself on shutdown or reboot and load them again at boot. More details — &lt;a href="http://www.thomas-krenn.com/en/wiki/Saving_Iptables_Firewall_Rules_Permanently"target="_blank" rel="noopener"&gt;here&lt;/a&gt; (in English).&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s it. Port forwarding works.&lt;/p&gt;
&lt;h2&gt;Network configuration in the guest OS&lt;span class="hx:absolute hx:-mt-20" id="network-configuration-in-the-guest-os"&gt;&lt;/span&gt;
&lt;a href="#network-configuration-in-the-guest-os" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;Manual configuration (static)&lt;span class="hx:absolute hx:-mt-20" id="manual-configuration-static"&gt;&lt;/span&gt;
&lt;a href="#manual-configuration-static" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;The simplest option is to set the virtual machine&amp;rsquo;s address manually. In the simplest cases, you can make use of this.&lt;/p&gt;
&lt;p&gt;To do this, specify the following parameters in the guest OS settings:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# The primary network interface&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;allow-hotplug eth0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;iface eth0 inet static&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;address 192.168.100.2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;netmask 255.255.255.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;gateway 192.168.100.1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;address&lt;/code&gt; - the IP address of this machine. Naturally, every machine in this subnet must have a different one.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;netmask&lt;/code&gt; - the subnet mask. Exactly the same as the one specified when creating the network bridge.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;gateway&lt;/code&gt; - the IP address on which the host itself sits, through which routing to the external network will take place.&lt;/p&gt;
&lt;h3&gt;Dynamic configuration (DHCP)&lt;span class="hx:absolute hx:-mt-20" id="dynamic-configuration-dhcp"&gt;&lt;/span&gt;
&lt;a href="#dynamic-configuration-dhcp" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;To avoid configuring the network manually, you can install a DHCP server. This will be especially useful if the subnet will contain many virtual machines — there will be no need to configure the network on each one by hand.&lt;/p&gt;
&lt;h4&gt;The new way: dnsmasq&lt;span class="hx:absolute hx:-mt-20" id="the-new-way-dnsmasq"&gt;&lt;/span&gt;
&lt;a href="#the-new-way-dnsmasq" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Install the server:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt-get install dnsmasq&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Configure the settings in &lt;code&gt;/etc/dnsmasq.conf&lt;/code&gt;:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Disable DNS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Listen NAT interface&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;interface&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;vmbr1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Strictly binding to the bridge&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;bind-interfaces
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Optionally set a domain name&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#domain=example.org&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Set default gateway&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dhcp-option&lt;span class="o"&gt;=&lt;/span&gt;3,192.168.100.1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Set DNS servers to announce&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dhcp-option&lt;span class="o"&gt;=&lt;/span&gt;6,8.8.8.8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Push default route&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#dhcp-option=121,0.0.0.0/0,192.168.100.1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Dynamic range of IPs to make available to LAN PC and the lease time.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Ideally set the lease time to 5m only at first to test everything works okay before you set long-lasting records.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dhcp-range&lt;span class="o"&gt;=&lt;/span&gt;192.168.100.10,192.168.100.100,720h
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Provide IPv6 DHCP leases, the range is constructed using the network interface as prefix&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#dhcp-range=::f,::ff,constructor:enp0s0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# If you’d like to have dnsmasq assign static IPs to some clients, bind the LAN computers NIC MAC addresses:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#dhcp-host=aa:bb:cc:dd:ee:ff,192.168.100.50&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#dhcp-host=aa:bb:cc:ff:dd:ee,192.168.100.51&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;The old way: isc-dhcp-server&lt;span class="hx:absolute hx:-mt-20" id="the-old-way-isc-dhcp-server"&gt;&lt;/span&gt;
&lt;a href="#the-old-way-isc-dhcp-server" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-amber-200 hx:bg-amber-100 hx:text-amber-900 hx:dark:border-amber-200/30 hx:dark:bg-amber-900/30 hx:dark:text-amber-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/&gt;&lt;/svg&gt;Warning&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;&lt;strong&gt;Addition of 07.03.2023&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The use of this server is no longer recommended. Over the years it has performed poorly, causing various problems, and the last time it was installed it simply refused to work at all.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Install the server:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt-get install isc-dhcp-server&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;In the &lt;code&gt;/etc/dhcp/dhcpd.conf&lt;/code&gt; file most of the parameters can be left unchanged, but the &lt;code&gt;authoritative;&lt;/code&gt; directive needs to be uncommented. It may also be useful to increase the address lease time with the following parameters:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;default-lease-time 40320;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;max-lease-time 40320;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;And, most importantly, the settings of our subnet need to be described:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# NAT subnet on vmbr1
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.2 192.168.100.254;
option routers 192.168.100.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Here &lt;code&gt;range&lt;/code&gt; is the range of addresses the DHCP server will hand out. &lt;code&gt;domain-name-servers&lt;/code&gt; are the DNS servers that will be used on the guest machines. In this example, that is Google Public DNS.&lt;/p&gt;
&lt;p&gt;Next, in the &lt;code&gt;/etc/default/isc-dhcp-server&lt;/code&gt; file, we configure which interfaces our server will listen on:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Separate multiple interfaces with spaces, e.g. &amp;#34;eth0 eth1&amp;#34;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;INTERFACES&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;vmbr1&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;For extra reliability, you can also shield it from external requests with a firewall.&lt;/p&gt;
&lt;p&gt;After the configuration, restart the DHCP&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;service isc-dhcp-server restart&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;Conclusion&lt;span class="hx:absolute hx:-mt-20" id="conclusion"&gt;&lt;/span&gt;
&lt;a href="#conclusion" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;The setup is finished. The guest machines will now receive their network settings automatically during OS installation.&lt;/p&gt;</description></item><item><title>Why I will no longer buy games on Origin</title><link>https://skobk.in/en/2012/03/ea-origin-must-die/</link><pubDate>Tue, 27 Mar 2012 17:29:50 +0300</pubDate><guid>https://skobk.in/en/2012/03/ea-origin-must-die/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Disclaimer&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a historical note from 2012 about the Origin client and EA&amp;rsquo;s support of that time. The author has not used their services since then and does not rule out that the situation may have changed.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2012/03/1507148_u5348d273r4592o203i2695x1995pxxxx_pixelated.jpg" title="Battlefield 2 key from plati.ru." alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Battlefield 2 key from plati.ru.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;In July 2011 I bought a &lt;a href="http://plati.ru/asp/pay.asp?id_d=984882"target="_blank" rel="noopener"&gt;Battlefield 2 license&lt;/a&gt; from a &lt;a href="http://plati.ru/asp/seller.asp?id_s=55798"target="_blank" rel="noopener"&gt;popular and reliable seller&lt;/a&gt; on plati.ru. It was exactly the time when EA were still reworking their &amp;ldquo;Store&amp;rdquo; into Origin, migrating accounts and generally doing all sorts of unseemly things to their websites. Because of those migrations, I ended up with a confusing mess of accounts. But that is not what this post is about. I activated my BF2 license right in the game. The key got tied to my account and the game worked perfectly. The problem was that, since I had bought only the key, I had no game disc: I downloaded the distribution from the seller&amp;rsquo;s server or from torrents, I no longer remember which. Now, in March 2012, I wanted to play Battlefield 2 again and was thinking about buying Battlefield 3 on Origin. The new platform had already started to develop and had become a relative competitor to Steam, where all of my purchased games live. It is worth noting, of course, that there can be no talk of competitiveness in terms of prices and the number of games available. Steam is the absolute leader in discounts and assortment. The distribution, downloaded almost a year before, was nowhere to be found on my hard drive — apparently I deleted it by accident during one of my clean-ups. And that is when I thought: Origin is actually a good thing. Storing games in Steam is convenient, and it will be the same there. Besides, I already had Red Alert 3 and Battlefield 2142 purchased on Origin, and Battlefield 2 itself &lt;a href="http://store.origin.com/store/eaemea/ru_RU/pd/productID.78869400/"target="_blank" rel="noopener"&gt;was already available&lt;/a&gt; there. I wrote to &lt;a href="https://help.ea.com/"target="_blank" rel="noopener"&gt;EA support&lt;/a&gt; about my situation. The main part of my request:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I would like to tie my copy of Battlefield to my current Origin account for convenience and because of the missing disc (all I have left is the key and the installed version of the game).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The answer caught up with me two weeks later, when I had already forgotten about the request and about Battlefield 2:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We apologize for such a late response to your request. Please tell us, does the problem still persist? If not, please simply ignore this letter. If the problem remains, call us back at + 7 499 999 24 07, from 11.00 to 23.00, Monday through Friday. Thank you for your understanding.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The response pleased me twice over. First, with its categorical indifference to the customer, without even an attempt to understand what I had actually written to them. Second, with the suggestion to call Moscow, which is, by the way, a paid call for me. If it had been an &amp;ldquo;8-800&amp;rdquo; toll-free line, it would not have been quite so inconvenient. I returned to the support site and wrote that the problem could not have failed to persist, because support had done nothing. This time the answer came the next day, which made me happy. Nothing foreshadowed trouble:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Thank you for contacting Electronic Arts customer support. We are truly sorry that you are having difficulties with Battlefield 2. We apologize for such a late response to your request. Please send us the following information:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The name of the game or expansion pack.&lt;/li&gt;
&lt;li&gt;A copy or a screenshot of the receipt for this product.&lt;/li&gt;
&lt;li&gt;A screenshot of the confirmation email containing the code (product key). (For Steam users, a screenshot of their game library with the product code visible.)&lt;/li&gt;
&lt;li&gt;A photo of the game box showing the key itself, the manual and, if you have one, the receipt confirming the purchase.&lt;/li&gt;
&lt;li&gt;Please include the date the photo was taken.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;I was delighted — it seemed a live human being from support had finally paid attention to me. I quickly dashed off a reply:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;The name of the game or expansion pack. Battlefield 2&lt;/li&gt;
&lt;li&gt;A copy or a screenshot of the receipt for this product. Attached file &amp;ldquo;shot_2012_03_27__15_41_39.png&amp;rdquo;&lt;/li&gt;
&lt;li&gt;A screenshot of the confirmation email containing the code (product key). Attached file &amp;ldquo;shot_2012_03_27__15_44_41.png&amp;rdquo;. The message itself does not contain the code, because the code was attached to the receipt (a screenshot of which I attached as well) as a file attachment.&lt;/li&gt;
&lt;li&gt;A photo of the game box showing the key itself, the manual and, if you have one, the receipt confirming the purchase. Attached file &amp;ldquo;1507148_u5348d273r4592o203i2695x1995pxxxx.jpg&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Please include the date the photo was taken. The file information of the box photo says the photograph was taken on 28.06.2011. I purchased the game on 18.07.2011 (visible on the screenshot of the paid receipt).&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;I was filled with determination and was already expecting the problem to finally be solved. But it was not to be:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Thank you for contacting Electronic Arts customer support. We are truly sorry that you are having difficulties with your game from EA. Unfortunately, EA does not support secondary games or codes from third-party sources or unlicensed distributors. &lt;strong&gt;Your code was flagged as suspicious by our team.&lt;/strong&gt; You should contact the supplier of your code for further investigation and support. Unfortunately, we cannot provide you with any support, because your code was not purchased from EA or our licensed distributor. In the future we strongly recommend that you purchase our products in the EA store or from our licensed partners to prevent problems like this.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In reply I asked what on earth &amp;ldquo;flagged as suspicious&amp;rdquo; was supposed to mean, and pointed out that the seller had more than fourteen thousand sales and not a single negative review, and that my key had activated without any problems (had it already been activated, I would not have been able to tie it to my account). I asked why, having paid money for a license, I was also getting a &amp;ldquo;suspicious&amp;rdquo; flag. No answer to my questions followed. All they did was try to buy me off — if reducing the amount of money I would still have to spend on them can even be called buying someone off.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Keys purchased on plati.ru have very often already been used by someone else, we do not support this seller. Buy games in the Origin digital client. We regret the inconvenience caused and, as an apology, we are offering a 15% discount on your next purchase on Origin.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Because they failed to immediately tie the game I had activated to my EA account — the account they had &amp;ldquo;converted&amp;rdquo; into an Origin account — I get a &amp;ldquo;suspicious&amp;rdquo; flag on my game key.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2012/03/shot_2012_03_27__18_26_44.png" title="EA. Encoding glitches." alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;EA. Encoding glitches.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;For a long time I had been watching how their website works: it mangles encodings, drops my personal information and keeps asking me to log in. Now, having seen how their tech support works, I understand that I have not the slightest desire to be this company&amp;rsquo;s customer.&lt;/p&gt;</description></item><item><title>Configuring and optimizing Windows 7 and Windows 8 for an SSD.</title><link>https://skobk.in/en/2012/03/ssd-windows7/</link><pubDate>Fri, 23 Mar 2012 00:19:31 +0300</pubDate><guid>https://skobk.in/en/2012/03/ssd-windows7/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2012/03/Vertex3_Max_IOPS_1.png" title="OCZ Vertex 3" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;OCZ Vertex 3&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-amber-200 hx:bg-amber-100 hx:text-amber-900 hx:dark:border-amber-200/30 hx:dark:bg-amber-900/30 hx:dark:text-amber-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/&gt;&lt;/svg&gt;Warning&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a historical article from 2012 about Windows 7/8 and the SSDs of that era. For modern versions of Windows and modern SSDs, some of the recommendations are outdated, and some settings may degrade the performance, reliability or convenience of your system.&lt;/p&gt;
&lt;p&gt;At this point the material is an archival note rather than a current how-to.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Everyone, hopefully, knows that &lt;a href="https://en.wikipedia.org/wiki/Solid-state_drive"target="_blank" rel="noopener"&gt;SSD&lt;/a&gt; drives are fast but sensitive to frequent writes. Consequently, to make an SSD last as long as possible as a system drive, you can minimize the write load on it. This is achieved through various system tweaks, which is what I will look at in this post. &lt;em&gt;An important note. Before choosing Windows optimizations, it is recommended to read &lt;a href="http://www.outsidethebox.ms/14402/"target="_blank" rel="noopener"&gt;this article&lt;/a&gt;. Choose the optimizations according to your needs. There is no need to apply them all. For an inexperienced user, applying absolutely all of the optimizations can cause a drop in performance and other system problems. If you don&amp;rsquo;t know exactly what you are doing — it is better not to do it.&lt;/em&gt; Here are some settings that can help extend the life of an SSD and, possibly, increase performance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Switch the SATA controller to &lt;a href="https://en.wikipedia.org/wiki/Advanced_Host_Controller_Interface"target="_blank" rel="noopener"&gt;AHCI&lt;/a&gt; mode in the BIOS settings. If you haven&amp;rsquo;t done this for Windows 7 with SATA drives yet, it is long overdue, especially with an SSD. Switching this mode on an already installed Windows system will render it unbootable. For switching on a live system, it is worth reading &lt;a href="http://www.sukhoi.ru/forum/showthread.php?t=64673"target="_blank" rel="noopener"&gt;this guide&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enable write caching on the disk. In Device Manager, select the SSD and configure it accordingly:&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2012/03/ssd_write_cache.png" title="ssd_write_cache" alt="SSD. Enabling write caching on the SSD." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;ssd_write_cache&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Those who have a UPS can enable the second option as well. Not having one, I left it off.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Turn off search indexing. &lt;em&gt;Attention. This optimization only makes sense if you rarely use Windows search&lt;/em&gt;. In the properties of the partition located on the SSD, uncheck the box that allows indexing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2012/03/ssd_disable_index1.png" title="Turning off search indexing for the partition on the SSD." alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Turning off search indexing for the partition on the SSD.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Right-click on &amp;ldquo;Computer&amp;rdquo;, choose the second item (&amp;ldquo;Manage&amp;rdquo; in the English version), and disable the Windows search service there.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2012/03/ssd_disable_index2.png" title="Disabling the Windows search indexing service." alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Disabling the Windows search indexing service.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;If Microsoft Live Desktop or Google Desktop are installed on the computer, it is useful to remove them, because they regularly do their own indexing.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Turn off scheduled defragmentation. &lt;em&gt;Newer systems like Windows 8 should adapt to SSDs by default. Therefore it is not recommended to disable defragmentation, since on these systems a TRIM optimizer will be used for SSDs instead of the defragmenter&lt;/em&gt;. Open the Windows defragmenter via the Start menu and disable scheduled operation there.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2012/03/ssd_disable_defrag2.png" title="Disabling scheduled defragmentation." alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Disabling scheduled defragmentation.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In the same place where you disabled the indexing service, disable the defragmentation service.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2012/03/ssd_disable_defrag.png" title="Disabling the defragmentation service in Windows." alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Disabling the defragmentation service in Windows.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Disable &lt;a href="https://en.wikipedia.org/wiki/Prefetcher"target="_blank" rel="noopener"&gt;Prefetch&lt;/a&gt; and &lt;a href="http://habrahabr.ru/post/92165/"target="_blank" rel="noopener"&gt;Superfetch&lt;/a&gt;. Windows 7 is designed for SSD drives and disables Superfetch for them. If you want to make sure this is really the case, you can check the following values in the registry: the key &lt;strong&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters&lt;/strong&gt;, the value &lt;strong&gt;EnableSuperfetch&lt;/strong&gt; must be equal to zero, and the value &lt;strong&gt;EnablePrefetcher&lt;/strong&gt; must also be equal to zero.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Disable the page file. An SSD is best used with a large amount of RAM. In that situation you can disable the page file, which slows the system down and wears out the SSD. Right-click on &amp;ldquo;Computer&amp;rdquo;, choose Properties, then &amp;ldquo;Advanced system settings&amp;rdquo;, go to the &amp;ldquo;Advanced&amp;rdquo; tab and choose the performance settings. There, on yet another &amp;ldquo;Advanced&amp;rdquo; tab, go into the virtual memory settings and remove the page file from all drives.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2012/03/ssd_pagefile_off.png" title="Disabling the page file." alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Disabling the page file.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;After disabling the page file on each partition, don&amp;rsquo;t forget to click the &amp;ldquo;Set&amp;rdquo; button. If you have little RAM and really need the page file, it is better to move it to a partition that is not on the SSD. Applying these settings may require a reboot, about which the system will notify you.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disable System Restore. &lt;em&gt;Not recommended for users who actually use System Restore. The recommendation applies to those who use partition images or third-party software&lt;/em&gt;. In the same &amp;ldquo;Advanced system settings&amp;rdquo;, select the &amp;ldquo;System protection&amp;rdquo; tab and disable reservation on all drives (or only on the SSD).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2012/03/ssd_system_protection_off.png" title="Disabling system protection on the SSD." alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Disabling system protection on the SSD.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disable hibernation. In the &amp;ldquo;Start&amp;rdquo; menu, type &lt;strong&gt;cmd&lt;/strong&gt;, right-click the cmd icon and choose &amp;ldquo;Run as administrator&amp;rdquo;. Enter the following command:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;powercfg -h off&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Enable &lt;a href="https://en.wikipedia.org/wiki/TRIM"target="_blank" rel="noopener"&gt;TRIM&lt;/a&gt;. Windows 7 and 8 should enable TRIM for SSDs, but this can be checked. To query the status or set the TRIM usage parameters you need a command prompt with administrator rights, just like for disabling hibernation. Query the current status:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;fsutil behavior query disabledeletenotify&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If the value is zero, TRIM is enabled. If not, it has to be enabled:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;fsutil behavior &lt;span class="nb"&gt;set&lt;/span&gt; disabledeletenotify &lt;span class="m"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Configure the file system. To increase performance and the lifespan of the SSD, you can disable recording of the file last access time. Open regedit (Start-&amp;gt;Run, or simply the WIN+R hotkey) and in the key &lt;strong&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem&lt;/strong&gt; change, or, if it is missing, create a DWORD value &amp;ldquo;&lt;strong&gt;NtfsDisableLastAccessUpdate&lt;/strong&gt;&amp;rdquo; equal to one. This can also be disabled from the command line:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;fsutil behavior &lt;span class="nb"&gt;set&lt;/span&gt; disablelastaccess &lt;span class="m"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2012/03/ssd_disable_last_access.png" title="Disabling recording of the file last access time." alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Disabling recording of the file last access time.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;If the system does not use old DOS applications that require old short file names, you can disable storing DOS 8.3 format file names. For this, set the &lt;strong&gt;NtfsDisable8dot3nameCreation&lt;/strong&gt; parameter equal to one. Increasing the memory available to the file system by setting &lt;strong&gt;NtfsMemoryUsage&lt;/strong&gt; (DWORD) to &amp;ldquo;2&amp;rdquo; is also useful.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Move the browser cache to RAM or another HDD. Opera simply allows you to disable the disk cache:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2012/03/ssh_opera_memory_cache.png" title="Disabling the disk cache in Opera." alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Disabling the disk cache in Opera.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Firefox requires a slightly more complex tweak: type &lt;strong&gt;about:config&lt;/strong&gt; in the address bar, double-click &lt;strong&gt;browser.cache.disk.enable&lt;/strong&gt; and switch it to &lt;strong&gt;False&lt;/strong&gt;. Right-click anywhere, choose &lt;strong&gt;New&lt;/strong&gt;, &lt;strong&gt;Integer&lt;/strong&gt;, create the option &amp;ldquo;&lt;strong&gt;browser.cache.memory.capacity&lt;/strong&gt;&amp;rdquo; and enter the option value in kilobytes: 32768 for 32 megabytes, 131072 for 128 megabytes, and so on.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Move the temporary folders to another partition. In &amp;ldquo;Advanced system settings&amp;rdquo;, on the &amp;ldquo;Advanced&amp;rdquo; tab, choose &amp;ldquo;Environment Variables&amp;rdquo; and set the TMP and TEMP variables for both the user and the whole system so that they point to a directory located off the SSD.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2012/03/ssd_temp_directories.png" title="Moving the temporary directories in Windows." alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Moving the temporary directories in Windows.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;After that, you can clean out the directories where the temporary files used to live.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Move the user folders to other drives. Practically all user folders, such as &amp;ldquo;My Documents&amp;rdquo;, &amp;ldquo;Desktop&amp;rdquo;, &amp;ldquo;My Music&amp;rdquo; and so on, can be moved to other drives. For this it is enough to create the corresponding directories on another drive, then go to C:\Users%Your_Username%, right-click the folder you need and move the folder to the other location. After choosing the target directory, the system will offer to move the contents there as well, so you don&amp;rsquo;t have to copy anything manually.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2012/03/ssd_move_user_folders.png" title="Moving Windows user folders." alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Moving Windows user folders.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you have a lot of RAM and want to speed up the programs that use temporary files, or your browser cannot be configured to use only memory for its cache, you can move the temporary files and the browser cache to a RamDisk. If you move the temporary directories to a RamDisk, you need to take care that it is large enough for unpacking large installation packages and is available right after the system boots (before user login). If the RamDisk is not available before login, installing updates with a reboot may end in an error. Also, not all RamDisks provide a noticeable performance boost.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To find out the health of your SSD, you can look at its &lt;a href="https://en.wikipedia.org/wiki/S.M.A.R.T."target="_blank" rel="noopener"&gt;S.M.A.R.T.&lt;/a&gt; information using special utilities from the manufacturer or universal tools like &lt;a href="http://ssd-life.ru/SSDLifeFree.exe"target="_blank" rel="noopener"&gt;SSD Life&lt;/a&gt;. For more exotic tweaks, you can read &lt;a href="http://habrahabr.ru/post/64773/"target="_blank" rel="noopener"&gt;the discussion on Habrahabr&lt;/a&gt;. And for extra joy, you can read the post &amp;ldquo;&lt;a href="http://habrahabr.ru/post/96896/"target="_blank" rel="noopener"&gt;How I killed an SSD in two months&lt;/a&gt;&amp;rdquo;. UPD: It may also be useful to read &lt;a href="http://forums.overclockers.ru/viewtopic.php?p=6924258#p6924258"target="_blank" rel="noopener"&gt;this&lt;/a&gt;. &lt;strong&gt;UPD2:&lt;/strong&gt; To avoid falling into total paranoia while waiting for your SSD to die within a month, it is recommended to read &lt;a href="http://www.outsidethebox.ms/14402/"title="How long will your SSD live?"target="_blank" rel="noopener"&gt;this&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>An open-source pastebin service script.</title><link>https://skobk.in/en/2012/02/code-skobkin-ru-opensource/</link><pubDate>Mon, 06 Feb 2012 21:52:45 +0300</pubDate><guid>https://skobk.in/en/2012/02/code-skobkin-ru-opensource/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;The project is no longer maintained and has been archived.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Warning: since this post was published, the service has been completely rewritten, and the new version can be found in the &lt;a href="https://git.skobk.in/skobkin/copypaste2"target="_blank" rel="noopener"&gt;copypaste2&lt;/a&gt; repository.&lt;/p&gt;
&lt;p&gt;The information about the outdated version is left below. Not so long ago I decided to release to the public my small script for running a service similar to pastebin.com. Since I was switching from svn to git at the same time, I created a repository for the project on Bitbucket.&lt;/p&gt;
&lt;p&gt;You can download the sources or help the project here:
&lt;a href="https://bitbucket.org/skobkin/code.skobkin.ru/"target="_blank" rel="noopener"&gt;https://bitbucket.org/skobkin/code.skobkin.ru/src&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The project description and a small amount of API documentation are on the &lt;a href="https://bitbucket.org/skobkin/code.skobkin.ru/wiki/"target="_blank" rel="noopener"&gt;Wiki page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In addition, the service has been added to the &amp;ldquo;Services&amp;rdquo; menu on my website.&lt;/p&gt;</description></item><item><title>A Cure for Forgetfulness - Multi Password Recovery</title><link>https://skobk.in/en/2011/04/obzor-multi-password-recovery/</link><pubDate>Wed, 27 Apr 2011 03:20:46 +0300</pubDate><guid>https://skobk.in/en/2011/04/obzor-multi-password-recovery/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a copy of my review written for the Softkey resources&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;These days you have to keep very large volumes of information in your head. It is the information age, after all! At
some point, all of us find ourselves in situations where something important has been forgotten. The article should
have been written yesterday, but you only remembered it today. Writing an article, everyday problems, personal life&amp;hellip;
But what if, for a moment, we imagine a more local problem: a user has forgotten their email password. There are two
ways this can go - the user recovers the password through the reminder system, if there is one, or the user is left
without their account because the password could not be recovered.&lt;/p&gt;
&lt;h3&gt;Introduction&lt;span class="hx:absolute hx:-mt-20" id="introduction"&gt;&lt;/span&gt;
&lt;a href="#introduction" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;The problem of keeping information such as passwords safe comes up for ordinary users very often. The passwords issued
by various services upon registration are hard to &lt;a href="https://en.wikipedia.org/wiki/Brute-force_attack"target="_blank" rel="noopener"&gt;crack by brute force&lt;/a&gt;, but they are
completely impossible to memorize. You can come up with memorable and uncrackable passwords, but even that will not
save you from the day when the password is forgotten and you find yourself standing before a login form, powerless to
do anything. Modern browsers and other programs that require entering logins and passwords try to meet the user
halfway by offering to remember passwords. On the one hand, this is devilishly convenient - press CTRL+Enter in Opera
and log into your favorite site without even recalling your credentials. On the other hand, it becomes that much
easier to forget them. And so the moment arrives when the password is forgotten and the password reminder does not
work for some reason. Give up the mailbox? Not an option. You most likely have VKontakte accounts registered on it,
forum accounts and so on. This is where Multi Password Recovery comes to the rescue - a utility for recovering
passwords from a great number of popular programs. If you saved a password in your browser or ICQ client, it can help
you. The list of supported software contains a great many programs popular in wide and narrow circles alike, among
which the most notable are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;E-Mail clients: Mozilla Thunderbird, Opera mail, Outlook, The Bat!,
Becky, Mail.Ru Agent, Windows Live Mail&lt;/li&gt;
&lt;li&gt;Browsers: Opera, Mozilla Firefox, Internet Explorer, Google Chrome,
Apple Safari&lt;/li&gt;
&lt;li&gt;IM clients (messengers): QIP 2005, Miranda IM, ICQ (99-2003, Lite
4-5), MSN Messenger, &amp;amp;RQ, Trillian, Google Talk, PSI, Windows Live Messenger, Pidgin, QIP.Online&lt;/li&gt;
&lt;li&gt;FTP clients: Windows\Total Commander, FAR Manager, CuteFTP, FileZilla,
WinSCP&lt;/li&gt;
&lt;li&gt;Poker clients: PokerStarts, Partypoker&lt;/li&gt;
&lt;li&gt;Download managers: Download Master, FlashGet&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition, the program recovers data such as Windows registration keys, ASP.NET accounts, passwords from Microsoft
Access databases and other valuable information.&lt;/p&gt;
&lt;h3&gt;Blast from the Past&lt;span class="hx:absolute hx:-mt-20" id="blast-from-the-past"&gt;&lt;/span&gt;
&lt;a href="#blast-from-the-past" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;The program is distributed in two forms: an installer and a portable version. In the first case the installation is
simple and needs no description. In the second case installation is simply not required - you can carry the program on
a flash drive and run it straight from it, which can be useful for system administrators who are constantly being
asked about forgotten passwords. A new version of the program was released recently, in which some functions were
improved and a problem that could have undermined user trust in the program was fixed - the previous version was
&lt;a href="http://www.virustotal.com/file-scan/report.html?id=2a0ece45815235349288259df7815b5fa8d9eb47e50a91983e3f9a7d0800b03e-1299673768"title="Antivirus scan report on VirusTotal.com"target="_blank" rel="noopener"&gt;detected&lt;/a&gt; as a virus by some antiviruses. The new version fares &lt;a href="http://www.virustotal.com/file-scan/report.html?id=51dcb9020276a99cdd46cb15ace0d6c184457b5b9a7f954a6346975e0b5f9131-1300319526"title="VirusTotal.com report for the new version of the program"target="_blank" rel="noopener"&gt;considerably
better&lt;/a&gt;; the most popular antiviruses no longer raise suspicion. After launch, the main program window
appears and a search is performed for programs present in the system and the passwords saved in them.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-1.jpg" title="MPR - gathering information" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;MPR - gathering information&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Once the information gathering is finished, we are presented with a tree of the collected information and a report on
the process.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-2.jpg" title="MPR - report" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;MPR - report&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;The report contains summary information about problems encountered during gathering, the total amount of collected
data, and advice to check the password auditor if the passwords found are too simple.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-3.jpg" title="MPR - Windows key" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;MPR - Windows key&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;The first thing available is system information: the user name, language and display settings, the operating system
version and its registration key, the Internet Explorer version, information about RAM, system disks, system folders,
processes, installed programs and startup entries. For the most part this information is only useful to advanced users
and is, in essence, excessive for a program of this kind, since it is presented in a rather inconvenient form and
dedicated system information tools do this job better. The exception is obtaining the license key of the installed
Windows copy, which can come in handy if the license sticker or product box has been lost. Saved program passwords are
shown as text in the right part of the window.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-5.jpg" title="MPR - Opera passwords" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;MPR - Opera passwords&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;In the browsers section, passwords are listed in detail with the address of the page where they were entered and the
login they belong to. In the case of Opera, the passwords are shown as a single list of the form:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Site&lt;/li&gt;
&lt;li&gt;Login&lt;/li&gt;
&lt;li&gt;Password&lt;/li&gt;
&lt;li&gt;If other logins and passwords are saved, their list is displayed as well&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;also listed there is the login and password for Opera Link - the system for synchronizing bookmarks and other browser
settings.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-4.jpg" title="MPR - Chrome passwords" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;MPR - Chrome passwords&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;In the case of the Chrome browser, password entries are displayed as separate branches in the tree on the left,
sorted by site and login. It is worth noting that if Chrome is running, the passwords saved in it are not collected.
Otherwise the passwords are presented in the same manner.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-6.jpg" title="MPR - VPN password" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;MPR - VPN password&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;For example, in the screenshot above you can see recovered credentials for a
&lt;a href="https://en.wikipedia.org/wiki/Virtual_private_network"target="_blank" rel="noopener"&gt;VPN&lt;/a&gt; connection. Also, if you have the portable version of the program installed and it does not
appear in the list of installed programs but you need to recover a password, the manual password recovery wizard comes
to the rescue. It can be invoked through the &amp;ldquo;Other&amp;rdquo; menu, &amp;ldquo;Wizard&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-7.jpg" title="MPR - Manual recovery 1" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;MPR - Manual recovery 1&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Here you need to select the desired program, after which Multi Password Recovery will instruct you on which file you
need to specify to recover the passwords.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-10.jpg" title="MPR - Manual recovery 2" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;MPR - Manual recovery 2&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;After these steps the passwords will be displayed in the usual form, as in the screenshots above. Also in the &amp;ldquo;Other&amp;rdquo;
menu you will find the option to recover passwords from asterisked fields. By holding CTRL and clicking on a field
with asterisks, you will quite likely be able to see the password hidden behind them. The same menu contains a
function for copying the SAM file, which only works on 32-bit systems, so I could not verify that it works on Windows
7 64-bit. It allows you to copy the SAM file containing information about the Windows accounts on the computer and
then, if necessary, recover the passwords with the appropriate software. The program also includes a secure password
generator, configurable by several parameters: the alphabet to generate from and the number of characters.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-8.jpg" title="MPR - Password generator" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;MPR - Password generator&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Another useful feature is the password audit. This function will help dispel any illusions about how strong your
passwords are. It lists all passwords that are easy to find via a &lt;a href="https://en.wikipedia.org/wiki/Dictionary_attack"target="_blank" rel="noopener"&gt;dictionary
attack&lt;/a&gt; and
&lt;a href="https://en.wikipedia.org/wiki/Password_cracking"target="_blank" rel="noopener"&gt;other&lt;/a&gt;
types of attacks. For advanced users and system administrators, the &lt;a href="https://en.wikipedia.org/wiki/Command-line_interface"target="_blank" rel="noopener"&gt;command
line&lt;/a&gt; functionality may come in handy. The program has been translated into many European languages and,
naturally, English and Russian. As a bonus, the author offers a self-unfolding Tetris in the &amp;ldquo;About&amp;rdquo; section. It is
hypnotic.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-12.jpg" title="MPR - Tetris in About" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;MPR - Tetris in About&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;This review was prepared for &lt;a href="http://softkey.info"target="_blank" rel="noopener"&gt;Softkey.info&lt;/a&gt;&lt;/p&gt;</description></item><item><title>World of Tanks Crosshair Sway Patcher</title><link>https://skobk.in/en/2011/04/patcher-kachaniya-pritsela-world-of-tanks/</link><pubDate>Sat, 02 Apr 2011 12:30:21 +0300</pubDate><guid>https://skobk.in/en/2011/04/patcher-kachaniya-pritsela-world-of-tanks/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-amber-200 hx:bg-amber-100 hx:text-amber-900 hx:dark:border-amber-200/30 hx:dark:bg-amber-900/30 hx:dark:text-amber-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/&gt;&lt;/svg&gt;Warning&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a historical note from 2011 about an old version of World of Tanks. The patcher is long obsolete: starting
with version 0.6.4, crosshair sway can be disabled in the game settings.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Many people already know that crosshair sway in World of Tanks is handled client-side and is not verified in any way.
Because of this, the developers decided to add the ability to turn off crosshair sway in the upcoming patch 0.6.4.
However, the patch will most likely only ship in the summer. So I decided to write a patcher so that any player could
disable it right now. Instructions for patching it with a HEX editor are already available online.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skobk.in/wp-content/uploads/2011/04/tankpatcher.png" alt="World of Tanks patcher" data-zoomable loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;Briefly, in order to patch the client, in each tank&amp;rsquo;s file you need to find the binary sequence starting with &lt;code&gt;FAR0&lt;/code&gt;
and ending with the byte &lt;code&gt;0x03&lt;/code&gt; and change the numbers to zeros. That is exactly what my patch does. Usage
instructions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to the game folder, then into &lt;code&gt;\res\scripts\item_defs\vehicles\&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Go into one nation&amp;rsquo;s folder and select the tank files with the mouse. Tank files only, because it patches
EVERYTHING you give it. Files like &lt;code&gt;list.xml&lt;/code&gt; and others that are not tank files must not be patched.&lt;/li&gt;
&lt;li&gt;Drag and drop them onto the program file.&lt;/li&gt;
&lt;li&gt;You should see a picture roughly like the one on the screenshot.&lt;/li&gt;
&lt;li&gt;Repeat for the remaining nations.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If the client does not start, it means you patched an extra file or patched something incorrectly. Restore the tank
files from the backup (Tank-File.xml.bak) and try again, paying closer attention this time. Tip: if you are unsure or
afraid of breaking the client, make an archive of the nation folders (ussr, usa, germany), then try patching your main
tank (or any of the ones sitting in your garage), then start the client and take it for a drive. If there is no sway,
repeat with the rest of the tanks. Good luck on the battlefield!&lt;/p&gt;</description></item><item><title>One Ring to Rule Them All. A Hidden Administrator Review.</title><link>https://skobk.in/en/2011/03/obzor-hidden-administrator/</link><pubDate>Thu, 31 Mar 2011 14:31:29 +0300</pubDate><guid>https://skobk.in/en/2011/03/obzor-hidden-administrator/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a copy of my review written for the Softkey resources&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-amber-200 hx:bg-amber-100 hx:text-amber-900 hx:dark:border-amber-200/30 hx:dark:bg-amber-900/30 hx:dark:text-amber-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/&gt;&lt;/svg&gt;Warning&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This material describes old remote administration software.
For modern setups the author recommends open solutions such as &lt;a href="https://rustdesk.com"target="_blank" rel="noopener"&gt;RustDesk&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The internet is weaving its web ever deeper into our lives; network technologies are applied wherever one can imagine
them. Cloud technologies, thin clients, network operating systems keep developing&amp;hellip; A technological breakthrough? Not
at all. It has always been this way. The saying applies here: &amp;ldquo;Everything new is well-forgotten old&amp;rdquo;. In this case,
not even forgotten. When there was no such concept as a personal computer,
&lt;a href="https://en.wikipedia.org/wiki/Computer_terminal"title="Article about terminals on Wikipedia"target="_blank" rel="noopener"&gt;terminals&lt;/a&gt; were used everywhere. An operator got access to the
resources of a remote system from a distance. Nowadays these principles are applied to entirely different areas.
Among them one can single out: system administration, technical support, distance learning and other uses of
solutions for remote work with information. It is hard to imagine a large enterprise with its own infrastructure
where remote management solutions are not used. Any self-respecting system administrator, if the opportunity exists,
will install a remote administration system on the
[client](&lt;a href="https://en.wikipedia.org/wiki/Client_%28computing%29"target="_blank" rel="noopener"&gt;https://en.wikipedia.org/wiki/Client_(computing)&lt;/a&gt; &amp;ldquo;Article about &amp;ldquo;Client&amp;rdquo; on
Wikipedia.&amp;rdquo;) machines. One such system is Hidden Administrator - a full-fledged solution for remote management,
demonstration and observation.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-21.jpg" title="Hidden Administrator - Client" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Hidden Administrator - Client&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;h3&gt;Features&lt;span class="hx:absolute hx:-mt-20" id="features"&gt;&lt;/span&gt;
&lt;a href="#features" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;The list of functions includes the standard capabilities of remote administration programs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Display and control of the remote desktop. The most basic
functionality of any remote control program for the Windows family of operating systems.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-13.jpg" title="Hidden Administrator - Remote control" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Hidden Administrator - Remote control&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Overall, it works well over a local network, but there are scaling problems. For some reason the window does not
open immediately at a size that displays the entire remote desktop. When trying to resize it, it is rather hard to
pick a window size exactly matching the original image on the remote computer, which leads to two problems: no
smoothing when scaling (which affects the look of system fonts) and imprecise positioning of the remote mouse
pointer.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-61.jpg" title="Hidden administrator - selection glitch" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Hidden administrator - selection glitch&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multi-screen mode. Displaying the screens of many remote computers
on a single monitor. Supports displaying up to 256 computers. Clicking on any of the screens enables control and
viewing of the remote monitor (see the screenshot above).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-31.jpg" title="Hidden Administrator - Multi-screen mode" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Hidden Administrator - Multi-screen mode&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;The list of available computers is displayed on the right. By clicking on a computer on the right or on an empty
cell on the left, you can assign the display of a remote screen to the cell you want.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;File manager. Allows access to the file system of the remote
computer.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-91.jpg" title="Hidden administrator - File manager. Drag&amp;amp;Drop" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Hidden administrator - File manager. Drag&amp;amp;Drop&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;The official website claims support for &lt;a href="https://en.wikipedia.org/wiki/Drag_and_drop"title="Article about Drag&amp;amp;Drop
on Wikipedia"target="_blank" rel="noopener"&gt;Drag&amp;amp;Drop&lt;/a&gt;, but for some reason it only works in one direction - when copying files from the remote computer (see
the screenshot). Otherwise the file manager repeats the functionality typical of programs of this kind, works with
function keys and has some settings.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Remote command line.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-101.jpg" title="Hidden Administrator - command line" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Hidden Administrator - command line&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;An equivalent of working with &lt;a href="https://en.wikipedia.org/wiki/Cmd.exe"title="Article about the command line interpreter on
Wikipedia"target="_blank" rel="noopener"&gt;cmd&lt;/a&gt; locally. But sometimes the output of lines glitches when working with utilities like ping, tracert and
similar ones, which do not output several lines at once. The glitch is that a line break either does not happen or
happens in the wrong place (see the screenshot).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Automatic discovery of servers on the network. Even though the test
virtual machine had its own IP address on the router and was in fact on the local network, automatic discovery did
not find it. But it was found through another discovery mode - by the &amp;ldquo;MSHOME&amp;rdquo; workgroup.&lt;/li&gt;
&lt;li&gt;Remote video viewing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-131.jpg" title="Hidden administrator - Remote video" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Hidden administrator - Remote video&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;It captures the video overlay on the remote computer and displays the image on the local one. It works with Media
Player Classic but does not work with Flash video in the browser. Also, the video refresh rate is rather low, so
watching a movie will not work out.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Remote sound streaming.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-15.jpg" title="Hidden Administrator - Remote sound" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Hidden Administrator - Remote sound&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Similar to remote video, it transmits sound from the remote machine. I was unable to verify that the function
works. Possibly because of the virtual machine, possibly for some other reason. However, the graph does display
the remote sound.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Remote process manager.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-16.jpg" title="Hidden Administrator - Process manager" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Hidden Administrator - Process manager&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Here you can also observe functionality typical of task managers, as well as the ability to hide and show windows.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;User activity monitoring.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-17.jpg" title="Hidden Administrator - Monitoring" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Hidden Administrator - Monitoring&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Here you can see the history of page visits in Internet Explorer, document printing and work with USB devices. In
all cases, exporting the report to HTML is available.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Wake-on-LAN"title="Article about Wake On Lan on Wikipedia."target="_blank" rel="noopener"&gt;Wake On
Lan&lt;/a&gt;. Allows turning a machine on remotely over the network. Can be convenient for switching on
machines en masse without having to walk around the premises. This requires corresponding support from the
hardware of the remote machines.&lt;/li&gt;
&lt;li&gt;Video recording and taking screenshots of the remote desktop.&lt;/li&gt;
&lt;li&gt;Working with the windows of remote DOS applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-19.jpg" title="Hidden administrator - remote DOS windows" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Hidden administrator - remote DOS windows&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;However, Cyrillic from the command line is transmitted incorrectly. No problems were noticed when working with
Latin characters.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Shutting down and rebooting the remote computer.&lt;/li&gt;
&lt;li&gt;Working with the remote registry.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-20.jpg" title="Hidden administrator - remote registry" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Hidden administrator - remote registry&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://www.hidadmin.ru/"title="Official website of Hidden Administrator"target="_blank" rel="noopener"&gt;official website&lt;/a&gt; claims full-fledged work with
the registry as an equivalent of the &lt;a href="http://wiki.drweb.com/index.php/%d0%a0%d0%b5%d0%b4%d0%b0%d0%ba%d1%82%d0%be%d1%80_%d1%80%d0%b5%d0%b5%d1%81%d1%82%d1%80%d0%b0_%28Regedit%29"title="Article about Regedit on
DrWeb Wiki"target="_blank" rel="noopener"&gt;regedit&lt;/a&gt; utility; however, only string values can be created (as in regedit by default). There is no choice of
the type of value being created. Likewise, there is no import-export of registry branches. Otherwise, the registry
editor in Hidden Administrator really does resemble regedit. Among other things, separate registry settings are
available, such as: allow\deny desktop, allow\deny registry editing and the like.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sending single notification messages and a full-fledged chat with
the user of the remote computer.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-18.jpg" title="Hidden administrator - chat" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Hidden administrator - chat&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Getting and transferring the clipboard.&lt;/li&gt;
&lt;li&gt;Getting information about the remote system.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-211.jpg" title="Hidden administrator - system info" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Hidden administrator - system info&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Summary information is collected about the computer name, user name, video card, operating system, processor type,
RAM and hard disk.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Remote printing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-22.jpg" title="Hidden administrator - Remote printing" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Hidden administrator - Remote printing&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;It should be noted right away that it only works with &lt;a href="https://en.wikipedia.org/wiki/Rich_Text_Format"title="Article about RTF files on
Wikipedia"target="_blank" rel="noopener"&gt;RTF&lt;/a&gt; or &lt;a href="https://en.wikipedia.org/wiki/Text_file"title="Article about TXT on Wikipedia"target="_blank" rel="noopener"&gt;TXT&lt;/a&gt; files. Support for
&lt;a href="http://ru.wikipedia.org/wiki/DOC_%28%d1%80%d0%b0%d1%81%d1%88%d0%b8%d1%80%d0%b5%d0%bd%d0%b8%d0%b5_%d0%b8%d0%bc%d0%b5%d0%bd%d0%b8_%d1%84%d0%b0%d0%b9%d0%bb%d0%b0%29"title="Article about DOC files"target="_blank" rel="noopener"&gt;DOC&lt;/a&gt; or
&lt;a href="https://en.wikipedia.org/wiki/OpenDocument"title="Article about Open Document on Wikipedia"target="_blank" rel="noopener"&gt;ODT&lt;/a&gt; files could not be found.&lt;/p&gt;
&lt;h3&gt;Security&lt;span class="hx:absolute hx:-mt-20" id="security"&gt;&lt;/span&gt;
&lt;a href="#security" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;The official website of the program separately mentions the security aspects provided by Hidden Administrator:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Connection encryption. Intercepting the connection and &lt;a href="https://en.wikipedia.org/wiki/Packet_analyzer"title="About Sniffing on Wikipedia"target="_blank" rel="noopener"&gt;packet
analysis&lt;/a&gt; will not help an attacker capture any information.&lt;/li&gt;
&lt;li&gt;Password protection of the server. Only an administrator, and only with the password assigned on the server, can
connect to the remote computer.&lt;/li&gt;
&lt;li&gt;Configuring access rights for controlling the remote computer.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/Image-52.jpg" title="Hidden administrator - server access rights" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Hidden administrator - server access rights&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;h3&gt;Conclusion&lt;span class="hx:absolute hx:-mt-20" id="conclusion"&gt;&lt;/span&gt;
&lt;a href="#conclusion" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;The Hidden Administrator program provides quite broad capabilities for administering remote computers, accessing
their files, training personnel and monitoring them. Among the disadvantages, one can note that not all of the
declared functions work the way they are expected to, and corporate users may choose other products instead. One may
hope that this review will help the author improve his product and raise it to a new level. This review was prepared
for &lt;a href="http://softkey.info/"target="_blank" rel="noopener"&gt;Softkey.info&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Enabling Friendly Fire on a Killing Floor Server</title><link>https://skobk.in/en/2011/03/killing-floor-friendly-fire/</link><pubDate>Tue, 29 Mar 2011 01:28:55 +0300</pubDate><guid>https://skobk.in/en/2011/03/killing-floor-friendly-fire/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is an old note on configuring a Killing Floor server. Before using it, check the current server documentation,
the config paths and the availability of links: commands and file locations may have changed.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Friendly fire is when a member of a team deals damage to another member of the same team. In Killing Floor, enabling
FF makes the game harder, lets you experience it in a whole new light and pushes players to be more careful. To enable
FF, you need to do the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Find the Killing Floor server directory. On Windows, the path
will be approximately: &lt;code&gt;C:\Program Files\Steam&lt;/code&gt; or (64-bit systems): &lt;code&gt;C:\Program Files (x86)\Steam&lt;/code&gt;
If your server runs on Linux, then you already know where you downloaded the server distribution.&lt;/li&gt;
&lt;li&gt;Go to the &amp;ldquo;System&amp;rdquo; directory and open the KillingFloor.ini file. In
a Linux console this can be done with the &lt;code&gt;nano KillingFloor.ini&lt;/code&gt; command&lt;/li&gt;
&lt;li&gt;Find the &lt;code&gt;[KFmod.KFGameType]&lt;/code&gt; section. In nano (Linux) this can
be done by pressing CTRL+W and entering the desired string&lt;/li&gt;
&lt;li&gt;Find the &lt;code&gt;FriendlyFireScale=0.000000&lt;/code&gt; parameter in this section&lt;/li&gt;
&lt;li&gt;Change the parameter to the desired value from 0 to 1, keeping in mind that 0 =
0%, 0.1 = 10%, 1 = 100%&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Enjoy the game!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://kf-wiki.com/wiki/Friendly_fire"target="_blank" rel="noopener"&gt;Official source&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>My Pushnoy Tab Transcriptions</title><link>https://skobk.in/en/2011/03/moi-taby-pushnogo/</link><pubDate>Sun, 20 Mar 2011 04:07:27 +0300</pubDate><guid>https://skobk.in/en/2011/03/moi-taby-pushnogo/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;Not all of the sources may still be available at the time of reading.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/pushnoy_tabs.png" title="Galileo tabs in PDF - screenshot" alt="Galileo tabs in PDF - screenshot" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Galileo tabs in PDF - screenshot&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;I have written tabs for two Pushnoy compositions: &lt;strong&gt;Galileo Rock Titles&lt;/strong&gt; and &lt;strong&gt;Grandpa Mo&lt;/strong&gt; (Дедушка Мо).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Galileo Rock Titles&lt;/strong&gt;&lt;/p&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="http://www.files.pushnoy.ru/mesa-vs-digi/DIGITECH.mp3" type="audio/mpeg"&gt;
&lt;/audio&gt;
&lt;p&gt;&lt;strong&gt;Grandpa Mo (Дедушка Мо)&lt;/strong&gt;&lt;/p&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="http://www.pushnoy.ru/resource/_audio/Pushnoy-ru_DEDushka.mp3" type="audio/mpeg"&gt;
&lt;/audio&gt;
&lt;p&gt;Download the tabs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://skobk.in/wp-content/uploads/2011/03/pushnoy_ru-galileo.pdf"&gt;Pushnoy - Galileo (tabs PDF)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://skobk.in/wp-content/uploads/2011/03/pushnoy_ru-galileo.gp5"&gt;Pushnoy - Galileo (tabs GP5)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://skobk.in/wp-content/uploads/2011/03/pushnoy_ru-dedushka_mo.pdf"&gt;Pushnoy - Grandpa Mo (tabs PDF)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://skobk.in/wp-content/uploads/2011/03/pushnoy_ru-dedushka_mo.gp5"&gt;Pushnoy - Grandpa Mo (tabs GP5)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &amp;ldquo;Galileo&amp;rdquo; tabs are not finished yet; they only fully cover the version from the &lt;a href="https://web.archive.org/web/20210226094109/http://pushnoy-ru.livejournal.com/22309.html"target="_blank" rel="noopener"&gt;preamp
test&lt;/a&gt;.
&amp;ldquo;Grandpa Mo&amp;rdquo; was transcribed a bit roughly, but the guitar part is mostly correct. The bass needs a complete rework, because
it is no good at all (I don&amp;rsquo;t play bass). The same tabs are available on
&lt;a href="http://www.gtp-tabs.ru/tabs/4879-pushnoi_aleksandr.html"target="_blank" rel="noopener"&gt;gtp-tabs.ru&lt;/a&gt;, but the version here is the newest and most complete. For
example, in this version palm muting has been added to &amp;ldquo;Galileo&amp;rdquo; and the rhythm of the intro has been fixed.&lt;/p&gt;</description></item><item><title>Making a Paper Tank. Sort of Origami.</title><link>https://skobk.in/en/2011/03/delaem-tank-iz-bumagi-kak-by-origami/</link><pubDate>Wed, 16 Mar 2011 02:34:47 +0300</pubDate><guid>https://skobk.in/en/2011/03/delaem-tank-iz-bumagi-kak-by-origami/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Having gotten hooked on &lt;a href="http://game.worldoftanks.ru/"target="_blank" rel="noopener"&gt;World of Tanks&lt;/a&gt; and, accordingly, on tanks to a degree, and having seen a tank assembly pattern posted on the forum of our clan &lt;a href="http://ironsquad.ru/"title="The Iron Squad clan. With the whip — off for the gingerbread."target="_blank" rel="noopener"&gt;Iron Squad&lt;/a&gt;, I decided that I absolutely had to make one. And I did :)&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/5500/skobkin-ru.2b/0_3d433_1878ce48_L.jpg" title="The Paper Tiger" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;The Paper Tiger&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;A few photos of the build process and the patterns themselves are below the cut. &lt;strong&gt;Photos of the process:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/5701/skobkin-ru.2a/0_3cb3e_a1af2e60_L.jpg" title="Started cutting" alt="Started cutting" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Started cutting&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/5501/skobkin-ru.2a/0_3cb40_497dbac_L.jpg" title="The Tiger after an arty strike" alt="The Tiger after an arty strike" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;The Tiger after an arty strike&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/5900/skobkin-ru.2b/0_3d421_b8b13af4_L.jpg" title="The wheels" alt="The wheels" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;The wheels&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/4907/skobkin-ru.2b/0_3d420_2efe8091_L.jpg" title="The turret" alt="The turret" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;The turret&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/5601/skobkin-ru.2b/0_3d41f_73b54083_L.jpg" title="Running gear and hull" alt="Running gear and hull" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Running gear and hull&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/5500/skobkin-ru.2b/0_3d422_1026f370_L.jpg" title="The gun with its mantlet" alt="The gun with its mantlet" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;The gun with its mantlet&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/5207/skobkin-ru.2b/0_3d423_a4fd5797_L.jpg" title="The stowage bins" alt="The stowage bins" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;The stowage bins&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/5301/skobkin-ru.2b/0_3d424_b58a2e11_L.jpg" title="Turret, gun, mantlet" alt="Turret, gun, mantlet" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Turret, gun, mantlet&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/4511/skobkin-ru.2b/0_3d425_ba2294a7_L.jpg" title="The turret on the running gear" alt="The turret on the running gear" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;The turret on the running gear&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/4511/skobkin-ru.2b/0_3d426_2b5e150_L.jpg" title="Almost face-on" alt="Almost face-on" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Almost face-on&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/6000/skobkin-ru.2b/0_3d427_fe6b8e32_L.jpg" title="Scary?" alt="Scary?" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Scary?&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/5107/skobkin-ru.2b/0_3d428_21931388_L.jpg" title="With the tracks" alt="With the tracks" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;With the tracks&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/4511/skobkin-ru.2b/0_3d429_17a68383_L.jpg" title="Almost done" alt="Almost done" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Almost done&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/4511/skobkin-ru.2b/0_3d42a_2ee26c5d_L.jpg" title="Almost done, from above" alt="Almost done, from above" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Almost done, from above&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/5700/skobkin-ru.2b/0_3d42b_93d05703_L.jpg" title="And what part is this? O_o" alt="And what part is this? O_o" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;And what part is this? O_o&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/5600/skobkin-ru.2b/0_3d42c_cf4977e2_L.jpg" title="Finished!" alt="Finished!" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Finished!&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/5602/skobkin-ru.2b/0_3d42d_9d642792_L.jpg" title="Face-on" alt="Face-on" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Face-on&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/5702/skobkin-ru.2b/0_3d42e_5761b668_L.jpg" title="From the rear at an angle" alt="From the rear at an angle" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;From the rear at an angle&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/5701/skobkin-ru.2b/0_3d42f_e678f0a2_L.jpg" title="In profile" alt="In profile" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;In profile&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/5500/skobkin-ru.2b/0_3d433_1878ce48_L.jpg" title="With the nick and clan :)" alt="With the nick and clan :)" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;With the nick and clan :)&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;The assembly patterns and the original of the model: open the full version via the link and print it on an A4 sheet.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/5500/skobkin-ru.2b/0_3d4b9_9a953af3_orig.gif" title="The Tiger model for cutting out" alt="The Tiger model for cutting out" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;The Tiger model for cutting out&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;And here&amp;rsquo;s the original of the little tank:&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/img-fotki.yandex.ru/get/5602/skobkin-ru.2b/0_3d4b8_eb8a803b_L.jpg" title="The Tiger model — the original" alt="The Tiger model — the original" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;The Tiger model — the original&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://juick.com/skobkin-ru/1146412"target="_blank" rel="noopener"&gt;Discussion on Juick&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;More advanced models can be found &lt;a href="https://web.archive.org/web/20130126032809/http://gosu-wot.com/tag/tank-iz-bumagi/"target="_blank" rel="noopener"&gt;here&lt;/a&gt;. I hope yours turns out well too!&lt;/p&gt;</description></item><item><title>Opera 11 Review. Part Two</title><link>https://skobk.in/en/2011/03/opera-11-chast-vtoraya/</link><pubDate>Wed, 16 Mar 2011 00:00:15 +0300</pubDate><guid>https://skobk.in/en/2011/03/opera-11-chast-vtoraya/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a copy of my review written for the Softkey resources&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a historical review of Opera 11. Widgets, extensions and the links to old Opera services belong to the
former ecosystem and may be unavailable.&lt;/p&gt;
&lt;p&gt;After the browser was sold, the former team has been working on &lt;a href="https://vivaldi.com"target="_blank" rel="noopener"&gt;Vivaldi&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;In the &lt;a href="https://skobk.in/en/2011/03/opera-11-chast-pervaya/"&gt;previous article&lt;/a&gt; we did not cover all the useful features of the Opera browser.
Fortunately, the browser is still full of surprises, and in this article we will continue looking at its most notable
features, and also examine the new features of the latest version. I am sure some of them you were not even aware of,
while others may strike you as very useful. Spell checking, BitTorrent support, geolocation, tab grouping - and so on
and so forth.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Spell checking&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/181.jpg" title="Opera 11 - spell checking" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Opera 11 - spell checking&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Writing correctly just got easier: the tenth version introduced spell checking with dictionaries for many languages.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Widgets&lt;/strong&gt; This functionality was built into Opera in the ninth
version. Widgets were small applications in windows of arbitrary style and shape that ran inside the browser and
displayed information from various services. For example, the &lt;a href="http://widgets.opera.com/ru/widget/14481/"target="_blank" rel="noopener"&gt;VKontakte
widget&lt;/a&gt; and the &lt;a href="http://widgets.opera.com/widget/12872/"target="_blank" rel="noopener"&gt;Yandex
weather widget&lt;/a&gt; were popular. Starting with the tenth version, widgets can be run outside the browser like
ordinary applications, which made Opera widgets a more powerful and convenient tool.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sessions&lt;/strong&gt; This functionality already has a truly long history, as
it was added back in the second version of Opera, in 1996. Do you use the browser for work, browse entertainment
sites and get lost among the tabs? Or perhaps your family members use the browser too? Sessions can help here. The
set of open tabs can be saved as a session and a new one started. And when they are needed again - you can load the
session and return to work or entertainment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://en.wikipedia.org/wiki/BitTorrent"target="_blank" rel="noopener"&gt;BitTorrent&lt;/a&gt; support&lt;/strong&gt;
Added in the ninth version. This is probably the only feature in Opera that initially earned a bad reputation due
to an unsuccessful implementation. The problem was that for some reason it did not work with most
&lt;a href="https://en.wikipedia.org/wiki/BitTorrent_tracker"target="_blank" rel="noopener"&gt;torrent trackers&lt;/a&gt; and the files simply would not download. However, the support remains and some progress is
being made. Perhaps over time the built-in torrent client will become a full-fledged one.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Search&lt;/strong&gt; Opera has quite a lot of search capabilities, each of
which noticeably simplifies finding the information you need. Let us look at them.
&lt;ul&gt;
&lt;li&gt;Search from the address bar In Opera you do not have to use the
search field. Just type a search query into the address bar and a search will be performed in the search engine
set as default for the address bar. In addition, you can use search engine shortcuts: by typing &amp;ldquo;g softkey&amp;rdquo; you
will search for &amp;ldquo;softkey&amp;rdquo; in Google; typing &amp;ldquo;y softkey&amp;rdquo; will perform the search through &amp;ldquo;Yandex&amp;rdquo;. Furthermore,
when working with the address bar, the search covers not only search engines but also history, bookmarks and the
text of visited web pages.&lt;/li&gt;
&lt;li&gt;Find in page If you select find in page from the menu or press the
familiar CTRL+F combination, or the period key in the English layout - you can search for words and sentences on
the page. Pressing the comma in the English layout searches within links.&lt;/li&gt;
&lt;li&gt;Your own search In Opera you can configure any search. It is very
simple to do: just go to the page with that search, right-click on the search field and select &amp;ldquo;Create search&amp;rdquo;.
This way you will be able to search your favorite news site or torrent tracker.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Geolocation&lt;/strong&gt; Some services and websites require knowing your
location in order to work. Starting with the tenth version, Opera provides geolocation capabilities. The location
is determined depending on where the browser is running. If it is a GPS-equipped device, the location will be
determined with high precision via GPS. Otherwise the location will be determined based on the network address.
Naturally, the location cannot be determined automatically unless you specifically allow it for a particular site,
so users need not worry about anyone learning their whereabouts. In addition, before using this feature Opera
suggests reading the license agreement, which explains the main aspects related to it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Page display settings&lt;/strong&gt; Opera allows a variety of page appearance
settings: convenient zooming (introduced in the second version, scaling not only text but also media content),
fit-to-width (since the eighth version), disabling images (from the very first version) and some features like
object outlines that can be useful to developers or to those who research and analyze websites.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automatic page refresh&lt;/strong&gt; This feature is not key, but it deserves a
mention as unique. Sometimes it is useful to keep an eye on information on a changing page, for example to watch
snapshots from a street web camera. Right-clicking brings up the refresh menu where you can set any interval.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Opera Dragonfly&lt;/strong&gt; A tool that can be useful to a narrow circle of
people - developers. It noticeably simplifies &lt;a href="https://en.wikipedia.org/wiki/Debugging"target="_blank" rel="noopener"&gt;debugging&lt;/a&gt; websites.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;New features&lt;/strong&gt; Many of the new features in the eleventh version were made at the request of the browser&amp;rsquo;s user
community. For example, on the pages of the IT resource &lt;a href="http://habrahabr.ru/"target="_blank" rel="noopener"&gt;&amp;ldquo;Habrahabr&amp;rdquo;&lt;/a&gt; the company&amp;rsquo;s Russian representative regularly talks with the
internet community and publishes press releases from Opera. It has also become a tradition to hold the regular
&lt;a href="http://habrahabr.ru/search/?q=%D0%BE%D0%BF%D0%B5%D1%80%D0%BD%D1%8B%D0%B9&amp;#43;%D1%85%D0%B0%D0%B1%D1%80%D0%B0%D0%B3%D0%BE%D1%81%D1%82%D1%8C"target="_blank" rel="noopener"&gt;&amp;ldquo;Opera Habra
guest&amp;rdquo;&lt;/a&gt;
event, where questions are collected in advance, then translated and answered by senior company employees. Last time
these questions were &lt;a href="http://habrahabr.ru/company/opera/blog/109270/"target="_blank" rel="noopener"&gt;answered&lt;/a&gt; by the developers of the Opera Desktop Team themselves. Next on the list is an
interview with the company&amp;rsquo;s CEO, Jon von Tetzchner. All in all a rather sensible policy, considering that most of
Opera&amp;rsquo;s already small share of desktop users worldwide is in Russia and the CIS countries. So let us see which user
requests the developers responded to, what they added and what they changed.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tab grouping&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/6.jpg" title="Opera 11 - tab grouping" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Opera 11 - tab grouping&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Perhaps one of the most significant changes, made on Opera Software&amp;rsquo;s own initiative without requests from users.
Dragging one tab onto another creates a tab group. It can be collapsed and expanded. This innovation will be very
useful to those who like to work with dozens of open tabs.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Extension support&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/7.jpg" title="Opera 11 - extensions" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Opera 11 - extensions&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Users had been asking the developers for this for a very long time; the two main competing browsers already had
this capability. Now Opera can boast of it too. Not yet at the same level as, say, Firefox, but users can already
install an extension in a couple of clicks. The &lt;a href="https://addons.labs.opera.com/addons/extensions/"target="_blank" rel="noopener"&gt;official extension
repository&lt;/a&gt; of Opera already offers about a hundred and fifty extensions for various purposes. No fewer are
under review and will become available for installation very soon. Extensions make certain actions in the browser
easier or add new capabilities. For example, there are extensions for a
&lt;a href="https://addons.labs.opera.com/addons/extensions/details/translate/1.1/?display=en"target="_blank" rel="noopener"&gt;translator&lt;/a&gt;,
the &lt;a href="https://addons.labs.opera.com/addons/extensions/details/lastpass/1.70.13/?display=en"target="_blank" rel="noopener"&gt;LastPass password manager&lt;/a&gt;,
a &lt;a href="https://addons.labs.opera.com/addons/extensions/details/shorten-url/1.5.0/?display=en"target="_blank" rel="noopener"&gt;URL shortener&lt;/a&gt;,
a &lt;a href="https://addons.labs.opera.com/addons/extensions/details/virustotal-extension/1.0/?display=en"target="_blank" rel="noopener"&gt;web antivirus&lt;/a&gt; and other useful things.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gesture &lt;a href="http://ru.wikibooks.org/wiki/Opera/%d0%96%d0%b5%d1%81%d1%82%d1%8b_%d0%bc%d1%8b%d1%88%d1%8c%d1%8e"target="_blank" rel="noopener"&gt;visualization&lt;/a&gt;
Undoubtedly, an excellent innovation of earlier Opera versions was the gestures, but they were not very easy to
understand and rather obscure. The user either had to read the browser&amp;rsquo;s help documentation or learn by trial and
error. Now everything has changed: if you press and hold the right mouse button, the user is shown a visual menu of
gestures.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/51.jpg" title="Opera 11 - gesture visualization" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Opera 11 - gesture visualization&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Moving the mouse in different directions, the user can see which combinations are available for use. Moreover, the
visualization is made so that if the user already knows the combinations and does not hold the mouse in place for
long, the hints will not appear. This makes learning easier and does not get in the way of experienced users at
all.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improved updating Now Opera&amp;rsquo;s auto-update will update not only the
browser, but also Unite applications and extensions.&lt;/li&gt;
&lt;li&gt;New address bar&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/8.jpg" title="Opera 11 - new address bar" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Opera 11 - new address bar&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;It now shows more clearly whether the site uses a secure connection, whether it is a
&lt;a href="https://en.wikipedia.org/wiki/Phishing"target="_blank" rel="noopener"&gt;phishing&lt;/a&gt; site, and displays additional information when needed. In
addition, addresses are now shortened and only the bare minimum of necessary information is displayed, such as the
domain and the page being requested. If the user needs to copy the address - clicking it reveals the full address,
and copying poses no problems.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Search suggestions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/9.jpg" title="Opera 11 - search suggestions" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Opera 11 - search suggestions&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Now this convenient feature exists not only on Google or &amp;ldquo;Yandex&amp;rdquo;, but also in the browser&amp;rsquo;s address bar and search
box. Something only Chrome could previously boast.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Loading plugins only when needed Helps speed up the work of sites
overloaded with media content on not very powerful computers, loading only the content the user actually needs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt; And so I have tried to introduce you to this browser. Historically, unlike other products such as
Mozilla Firefox or Google Chrome, Opera was hardly advertised at all, and its popularity worldwide is small. However,
I recommend giving it a try. Perhaps you will like the browser and your surfing will become more comfortable. This
review was prepared for &lt;a href="http://softkey.info"target="_blank" rel="noopener"&gt;Softkey.info&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Opera 11 Review. Part One</title><link>https://skobk.in/en/2011/03/opera-11-chast-pervaya/</link><pubDate>Tue, 15 Mar 2011 17:01:57 +0300</pubDate><guid>https://skobk.in/en/2011/03/opera-11-chast-pervaya/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a copy of my review written for the Softkey resources&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a historical review of Opera 11. The described features, Opera Unite and the links to old Opera services
belong to that era of the browser and may no longer exist.&lt;/p&gt;
&lt;p&gt;After the browser was sold, the former team has been working on &lt;a href="https://vivaldi.com"target="_blank" rel="noopener"&gt;Vivaldi&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If you live in the CIS and used the Internet over a dial-up modem - you have certainly heard of the Opera browser.
Back then it earned a reputation as a good alternative to the slow and resource-hungry Internet Explorer, making
surfing the Web easier. Time does not stand still; the endless race for support of internet technologies, page load
speeds and interface beauty goes on. Every search engine offers browsers with its own search, social networks uniting
millions of users keep growing. The browser has already become part of our lives, a daily tool for practically any
modern person. Let us see what Opera can offer us today. &lt;strong&gt;Introduction&lt;/strong&gt; The development of this browser has been
going on for more than fifteen years. Only &lt;a href="https://en.wikipedia.org/wiki/Netscape_Navigator"target="_blank" rel="noopener"&gt;Netscape
Navigator&lt;/a&gt; has such a rich development history, but we will not see new versions of it, as the project
was shut down in 2008. Until 2000, Opera was a paid program. In that year the Shareware license gave way to free
distribution: in Opera 5, instead of a trial period and paid registration, a small advertising banner appeared. The
ads could be removed by purchasing a license. This went on until the turning point - the release of version 8.5 in
September 2005. Opera for personal computers became completely free, and the advertising was removed. Despite all the
changes to the ways the browser was distributed and licensed, Opera was always one of the innovator browsers, always
bringing in something new and more convenient that was borrowed by other products. From its very first version, back
then still MultiTorg Opera 1.0, the browser already had a multiple document interface - several sites opened in one
browser window. And that was in 1995. Later the decision was made to switch to tabbed navigation between open pages.
Starting with the fourth version, a &lt;a href="https://en.wikipedia.org/wiki/Opera_Mail"target="_blank" rel="noopener"&gt;mail client&lt;/a&gt; appeared in Opera. With the seventh version the browser switched to a new
engine and was practically rewritten; sites began loading and working faster in it. The eighth version brought many
technical changes, simplified the user interface and added a presentation mode. The new interface delighted users in
the ninth version. In version 9.2, &lt;a href="https://en.wikipedia.org/wiki/Speed_Dial"target="_blank" rel="noopener"&gt;&amp;ldquo;Speed
Dial&amp;rdquo;&lt;/a&gt; was introduced. Version 9.5 brought a new feature, &lt;a href="http://ru.wikipedia.org/wiki/Opera_Link"target="_blank" rel="noopener"&gt;Opera
Link&lt;/a&gt;, which allows synchronizing bookmarks, Speed Dial and other personalized browser features between the
devices it is installed on. With the tenth version, Opera switched to a new engine again in order to speed up its
work and improve support for international web standards. In this review I will tell you about the new version of the
program - Opera 11. Its active development was in full swing quite recently, and the developers kept sharing the new
features and plans for further development in their &lt;a href="http://my.opera.com/desktopteam/blog/"target="_blank" rel="noopener"&gt;blog&lt;/a&gt;.
&lt;strong&gt;Main features and interface&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/12.jpg" title="Opera 11 - appearance" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Opera 11 - appearance&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;The interface of Opera 11 is made in a modern style; in full-screen mode the tabs are located in the window title bar.
The program supports integration with Windows 7. Let me stipulate in advance that only the most interesting functions
and capabilities will be described, because covering everything Opera can do would not fit even in two articles, and
besides, similar functions exist in other browsers.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Browser This is Opera&amp;rsquo;s main function, and it has existed since 1994 -
at the very beginning of development. As for features, apart from the constant drive toward speed and better
support for web standards, there is nothing special to note. A browser is a browser. It works with tabs, supports
various display settings, quick disabling of image display (or showing only already loaded ones), zooming, search
from the address bar, editing pages and applying the changes on them, built-in blocking of ads and pop-ups and many
other functions typical of a browser. Moreover, since the tenth version Opera passes the
&lt;a href="http://acid3.acidtests.org/"target="_blank" rel="noopener"&gt;Acid3&lt;/a&gt; test with 100 points out of the possible 100.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mouse gestures This function was introduced in the fifth version and
still has not appeared in other browsers (extensions excepted). Even though few users know about this feature, it
really is one of the main conveniences of this browser. Gestures in Opera are simple: hold down the right mouse
button, then move the cursor in the desired direction. Here is the list of the main gestures:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Left - the same as the &amp;ldquo;Back&amp;rdquo; button on the browser panel.&lt;/li&gt;
&lt;li&gt;Right - the same as &amp;ldquo;Forward&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Down - open a new tab, or open a link in a new tab, if the click was on a link.&lt;/li&gt;
&lt;li&gt;Up - stop loading the page.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Password manager This useful function appeared in the seventh version
of Opera. After you enter a site&amp;rsquo;s password, the program offers to save it. If the user agrees and the password is
saved, then the next time the login and password fields will be highlighted.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/111.jpg" title="Opera 11 - password manager" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Opera 11 - password manager&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;To log into a site without typing the password manually, you can click the key icon on the panel (it appears when a
saved password exists for the site). You can also use gestures and hotkeys - the right gesture or CTRL+Enter.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Content blocking This function appeared in the ninth version of the
browser. It allows configuring blocking of images, Flash and other content. With &lt;a href="http://habrahabr.ru/blogs/opera/86709/"target="_blank" rel="noopener"&gt;enough
ingenuity&lt;/a&gt; you can set up a full-fledged filter against any advertising. If you need to block a
certain banner, right-click on the page and select &amp;ldquo;Block content&amp;rdquo;, then click on the objects you want to block and
confirm the choice.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Site settings Introduced in the ninth version. It became possible to
set parameters for each site: &lt;a href="https://en.wikipedia.org/wiki/Cascading_Style_Sheets"target="_blank" rel="noopener"&gt;style
sheets&lt;/a&gt;,
&lt;a href="https://en.wikipedia.org/wiki/UserJS"target="_blank" rel="noopener"&gt;UserJS&lt;/a&gt;, character encodings, &lt;a href="https://en.wikipedia.org/wiki/HTTP_cookie"target="_blank" rel="noopener"&gt;cookies&lt;/a&gt;,
geolocation and other parameters.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Themes (skins)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/121.jpg" title="Opera 11 - themes" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Opera 11 - themes&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;The ability to change the look of the program to your own taste has long attracted users. In Opera you can change
the appearance of all controls. In the appearance settings you can download and install many themes that vary the
look of the browser. A catalog of themes can also be browsed on the &lt;a href="http://my.opera.com/community/customize/skins/"target="_blank" rel="noopener"&gt;Opera
website&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Trash can On the tab bar there is a button with which you can see
which sites were visited during the session and closed afterwards. This way you can reopen a site that was closed
accidentally. The whole history of working with the tab is preserved; going back and forward remains available.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Toolbar"target="_blank" rel="noopener"&gt;Toolbars&lt;/a&gt; and panels
This function appeared in the sixth version of Opera. Opera has various toolbars:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Main toolbar. It hosts access buttons similar to the &amp;ldquo;File&amp;rdquo; menu or, in Opera&amp;rsquo;s case, &amp;ldquo;Page&amp;rdquo;. Disabled by
default.&lt;/li&gt;
&lt;li&gt;Bookmarks toolbar. Favorite bookmarks can be kept right on the panel in the place you want, ready to be opened
at any moment. Disabled by default.&lt;/li&gt;
&lt;li&gt;Tab toolbar. It hosts the tabs with open sites and the &amp;ldquo;Trash can&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Status toolbar. Addresses are displayed there when hovering over links; it also holds the indicator buttons
controlling &lt;a href="http://ru.wikipedia.org/wiki/Opera_Link"target="_blank" rel="noopener"&gt;Opera Link&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Opera_Unite"target="_blank" rel="noopener"&gt;Opera
Unite&lt;/a&gt;, &lt;a href="http://ru.wikipedia.org/wiki/Opera_Turbo"target="_blank" rel="noopener"&gt;Opera Turbo&lt;/a&gt;, the button for showing panels and the site display
settings.&lt;/li&gt;
&lt;li&gt;Address toolbar. Here you find the address bar and the &amp;ldquo;Back&amp;rdquo;, &amp;ldquo;Forward&amp;rdquo;, &amp;ldquo;Home page&amp;rdquo;, &amp;ldquo;Reload&amp;rdquo; control buttons,
the password manager button appears here, and the search bar is displayed. Also, in the new version, extension
buttons are shown here.&lt;/li&gt;
&lt;li&gt;Navigation toolbar. It holds various service buttons that may duplicate some menu items. Disabled by default.&lt;/li&gt;
&lt;li&gt;Panels toolbar. Another clever find of Opera&amp;rsquo;s. This toolbar offers quick access to Opera functions such as
search, mail, the RSS reader, the download manager, bookmarks, Opera Unite applications, browser history, the
channels and servers of &lt;a href="https://en.wikipedia.org/wiki/IRC"target="_blank" rel="noopener"&gt;IRC chats&lt;/a&gt;, the contacts manager, window management, notes and more.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Users can change the settings of all the panels, move them around, add elements to them. For example, to your own
taste you can place the tab toolbar at the side of the window, which can be handy for owners of widescreen monitors.
The user can also enable and disable any toolbar. In addition, any link can be placed on any toolbar, and if you
drop a link onto the side panels toolbar you can set up quite interesting things, for example add a translator
there.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/15.jpg" title="Opera 11 - toolbars" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Opera 11 - toolbars&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Opera Link This unquestionably useful innovative function appeared in
version 9.5. Thanks to it, the user can be sure that wherever and whenever they install their browser, they will be
able to access their bookmarks, their Speed Dial page with favorite sites, their notes, the history of typed site
addresses, the list of search engines and the content blocking rules. Even if your favorite browser is unavailable,
all of this information can be accessed on the &lt;a href="https://link.opera.com/"target="_blank" rel="noopener"&gt;Opera Link&lt;/a&gt; site. To start using this function, you need to register in the Opera
Link menu or on the Opera site. If you have already registered on one of the Opera sites, you can use the username
from that registration to log in from the browser. As a pleasant bonus - Opera products for mobile (and not only)
platforms also support Opera Link. This means that if you install Opera Mini or Opera Mobile on your phone or
communicator, your bookmarks, Speed Dial and typed address history will always be with you. In terms of
convenience, Opera has no equals here.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Opera Unite This interesting tool, not known to everyone, appeared in
Opera 10.10. Any Opera user can easily enable their own tiny Opera Unite web server. You can install Unite
applications on this server from the &lt;a href="http://unite.opera.com/applications/"target="_blank" rel="noopener"&gt;Opera site&lt;/a&gt;. With Unite applications the user can create &lt;a href="http://unite.opera.com/application/172/"target="_blank" rel="noopener"&gt;a gallery
of their own pictures and
photos&lt;/a&gt;, &lt;a href="http://unite.opera.com/application/162/"target="_blank" rel="noopener"&gt;share their music
collection with everyone&lt;/a&gt; with online music playback, &lt;a href="http://unite.opera.com/application/412/"target="_blank" rel="noopener"&gt;create a
chat&lt;/a&gt;, a &lt;a href="http://unite.opera.com/application/132/"target="_blank" rel="noopener"&gt;file sharing service&lt;/a&gt; or &lt;a href="http://unite.opera.com/application/531/"target="_blank" rel="noopener"&gt;stream the image&lt;/a&gt; from
their webcam to the Internet.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Opera Turbo A technology that appeared in the tenth version of Opera.
It is intended for surfing the Web over a bad, slow or expensive metered connection. It works quite simply: all
information exchange goes through special Opera servers, where all the information is compressed with an efficiency
of up to 80% and only then passed on to the user&amp;rsquo;s computer, which minimizes traffic exchange and saves money. The
function can be very useful to owners of 3G\EDGE modems with metered plans.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Opera_Mail"target="_blank" rel="noopener"&gt;Opera Mail&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/161.jpg" title="Opera 11 - Opera Mail" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Opera 11 - Opera Mail&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;The mail client has existed in Opera since version 4.0. It is now combined with the news client and the
&lt;a href="https://en.wikipedia.org/wiki/News_aggregator"target="_blank" rel="noopener"&gt;RSS aggregator&lt;/a&gt;. Opera Mail supports the popular mail standards
&lt;a href="https://en.wikipedia.org/wiki/Post_Office_Protocol"target="_blank" rel="noopener"&gt;POP3&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol"target="_blank" rel="noopener"&gt;IMAP&lt;/a&gt;,
&lt;a href="https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol"target="_blank" rel="noopener"&gt;SMTP&lt;/a&gt;,
&lt;a href="https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol#Extensions"target="_blank" rel="noopener"&gt;ESMTP&lt;/a&gt;,
newsgroups, &lt;a href="https://en.wikipedia.org/wiki/Atom_%28web_standard%29"target="_blank" rel="noopener"&gt;Atom&lt;/a&gt; and RSS. The client can be configured for any mailbox on
popular services: &amp;ldquo;Yandex&amp;rdquo;, Google, Mail.ru and others.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;IRC chats&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/17.jpg" title="Opera 11 - IRC" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Opera 11 - IRC&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Even though IRC has long fallen out of fashion, Opera still supports this kind of chat. This functionality appeared
as part of the Opera Mail client.&lt;/p&gt;
&lt;p&gt;The continuation and a review of the new features - in the &lt;a href="https://skobk.in/en/2011/03/opera-11-chast-vtoraya/"title="Opera 11. Part Two"&gt;next article&lt;/a&gt;. This review was prepared
for &lt;a href="http://softkey.info"target="_blank" rel="noopener"&gt;Softkey.info&lt;/a&gt;&lt;/p&gt;</description></item><item><title>AntiVir Professional Review</title><link>https://skobk.in/en/2011/03/obzor-antivir-professional/</link><pubDate>Tue, 15 Mar 2011 16:27:48 +0300</pubDate><guid>https://skobk.in/en/2011/03/obzor-antivir-professional/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a copy of my review written for the Softkey resources&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-amber-200 hx:bg-amber-100 hx:text-amber-900 hx:dark:border-amber-200/30 hx:dark:bg-amber-900/30 hx:dark:text-amber-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/&gt;&lt;/svg&gt;Warning&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This review covers an old version of Avira AntiVir Professional and reflects the state of the antivirus market at the
time of publication. Do not use it as current advice on choosing security software.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;There are quite a lot of antivirus solutions in the software world - and that is understandable, these days it is
simply impossible to work on a computer without a good antivirus! Every antivirus vendor tries to win over new clients
with various goodies, be it a pretty interface, a cheap license, bonus programs, eloquent articles in magazines and
other marketing tricks. So let us take a look at what the budget antivirus solution from Avira - AntiVir Professional&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;is like. Hardly anyone these days can afford to work under Windows without an antivirus. And justifiably so -
computer viruses await the user everywhere: on social networks, in messengers (ICQ, Jabber, MSN and the like), on file
sharing services, CD\DVD discs, flash drives and very many other places. After picking up a Trojan, your computer will
hand over your personal information, the credentials of your social networks and communication tools and much more.
Or it may become part of a huge botnet participating in attacks on servers or spreading spam. One such defender
against information threats is Avira AntiVir Professional. This product is paid, however Avira provides the option to
get a free 30-day trial key. You can do this on the
&lt;a href="http://www.avira.com/en/products-test-license"target="_blank" rel="noopener"&gt;official website&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation&lt;span class="hx:absolute hx:-mt-20" id="installation"&gt;&lt;/span&gt;
&lt;a href="#installation" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/1.jpg" title="Antivir personal - language selection" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Antivir personal - language selection&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;The standard installer includes support for multiple languages,
including Russian. Depending on the type of installer (online or offline, for installation without internet), either
the download of the latest antivirus version will begin, or you will immediately be offered a choice between a full
and a custom installation.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/3.jpg" title="Antivir personal - installation type" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Antivir personal - installation type&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;In the case of a full installation, the user is asked only the bare minimum of questions. In the case of a custom
installation, the user can decide where the antivirus will be installed and which components they need.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/4.jpg" title="Antivir personal - installation components" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Antivir personal - installation components&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;After the installation is complete, a small configuration wizard is launched, offering to choose the sensitivity level
of the heuristics, that is, how the antivirus will react to suspicious files that are not yet present in the antivirus
databases. This makes it possible to fight new viruses that have not yet been detected.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/5.jpg" title="Antivir personal - heuristic configuration" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Antivir personal - heuristic configuration&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Also, the user will be offered a choice of which kinds of programs the antivirus should detect: programs violating
privacy (SPR), &lt;a href="https://en.wikipedia.org/wiki/Backdoor_%28computing%29"target="_blank" rel="noopener"&gt;backdoor clients&lt;/a&gt; (BDC), games, programs packed with non-standard
&lt;a href="https://en.wikipedia.org/wiki/Executable_compression"target="_blank" rel="noopener"&gt;packers&lt;/a&gt;, hoax programs, dubious applications (APPL), &lt;a href="https://en.wikipedia.org/wiki/Dialer"target="_blank" rel="noopener"&gt;dialers for premium-rate
numbers&lt;/a&gt;, joke programs
(Jokes), spyware, adware, files with hidden extensions,
&lt;a href="https://en.wikipedia.org/wiki/Phishing"target="_blank" rel="noopener"&gt;phishing&lt;/a&gt; programs. Next, the antivirus will offer to choose the launch mode. On a normal
start, Avira launches after the user has logged into the system; with a safe start, it is launched before the user
logs in, which improves security but increases system boot time. In addition, you can specify mail server settings for
sending notifications. After all the settings, Avira will offer to run a short system scan on first launch.&lt;/p&gt;
&lt;h2&gt;Interface&lt;span class="hx:absolute hx:-mt-20" id="interface"&gt;&lt;/span&gt;
&lt;a href="#interface" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The antivirus interface has stuck to the company&amp;rsquo;s signature look for
several versions in a row now. Only minor changes and improvements are made, so if you are upgrading from a previous
version, you should have no trouble adjusting. In the main &amp;ldquo;Overview&amp;rdquo; section, on the &amp;ldquo;Status&amp;rdquo; tab, you can monitor
the state of the antivirus.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/11.jpg" title="Antivir personal - main window" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Antivir personal - main window&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Here you will find all the necessary information about the state of the protection modules, the date of the last
update and the license expiration date. Here you can also disable\enable protection, run a quick system scan, an
update, or renew the license. The settings and the online help are also accessible from this window. The &amp;ldquo;Events&amp;rdquo; tab
contains service information on all program modules. &amp;ldquo;Reports&amp;rdquo; lets you view the results of previous computer scans
and protection triggers. The &amp;ldquo;Local protection&amp;rdquo; section allows managing computer protection in two forms: on-demand
scanning, or &amp;ldquo;Scan&amp;rdquo;, and permanent, &amp;ldquo;&lt;a href="http://ru.wikipedia.org/wiki/%d0%9f%d1%80%d0%be%d0%b0%d0%ba%d1%82%d0%b8%d0%b2%d0%bd%d0%b0%d1%8f_%d0%b7%d0%b0%d1%89%d0%b8%d1%82%d0%b0"target="_blank" rel="noopener"&gt;proactive&lt;/a&gt;&amp;rdquo; protection. On the &amp;ldquo;Scan&amp;rdquo; tab you can pick
the most convenient templates for scanning the computer for viruses. There you will find a scan of all drives, a scan
of running processes, or a scan of the Windows folder. A custom scan mode is also available, where the user chooses
which files and folders to scan themselves. The &amp;ldquo;Guard&amp;rdquo; tab is more informative than actionable, since active computer
protection is already running; it merely displays information about the recently scanned objects and statistics on
detected malicious objects.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/14.jpg" title="Antivir personal - protection" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Antivir personal - protection&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;The &amp;ldquo;Online protection&amp;rdquo; section contains two tabs: &amp;ldquo;MailGuard&amp;rdquo; and &amp;ldquo;WebGuard&amp;rdquo;. The first handles scanning incoming
mail received by email clients. The second covers protection while browsing pages in the browser and downloading files
from websites. &amp;ldquo;WebGuard&amp;rdquo; is similar to &amp;ldquo;Guard&amp;rdquo; in local protection and is informative in nature. The &amp;ldquo;Management&amp;rdquo;
section has two tabs: &amp;ldquo;Quarantine&amp;rdquo; and &amp;ldquo;Scheduler&amp;rdquo;. Quarantine stores malicious objects neutralized as a result of
scans or protection triggers. If desired, they can be restored. The &amp;ldquo;Scheduler&amp;rdquo; allows running tasks such as updates
and computer scans on a schedule. When creating scheduler tasks, all the same scan templates from &amp;ldquo;Local protection&amp;rdquo;
are available, as well as various run intervals.&lt;/p&gt;
&lt;h2&gt;Menu&lt;span class="hx:absolute hx:-mt-20" id="menu"&gt;&lt;/span&gt;
&lt;a href="#menu" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The menu bar largely duplicates the column of sections with their tabs, but there are other useful items too. &amp;ldquo;Scan
boot record&amp;rdquo; - scans the boot record of the selected hard disk or partition for virus bootloaders. &amp;ldquo;Virus list&amp;rdquo; -
search for viruses in the antivirus database. &amp;ldquo;Download Rescue-CD&amp;rdquo; - Avira can download the image of a rescue disc
with the latest antivirus version; booting from it, the user can perform an emergency repair of the computer in case
of an infection or a lockout from logging into the system.&lt;/p&gt;
&lt;h2&gt;Settings&lt;span class="hx:absolute hx:-mt-20" id="settings"&gt;&lt;/span&gt;
&lt;a href="#settings" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Entering the settings, we see the following window:&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/13.jpg" title="Antivir personal - standard settings" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Antivir personal - standard settings&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;In AntiVir Personal, the settings are organized into profiles. That is, the user can create several sets of settings
for all occasions. The standard user settings are unremarkable and easy to understand, especially since each settings
section has a description in the language selected during installation. In this mode, only the most essential minimum
of parameters is available; everything else works on standard settings optimized for the average user. If finer tuning
is required, expert mode comes to the rescue.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/16.jpg" title="Antivir personal - expert settings" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Antivir personal - expert settings&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;In this mode, many settings interesting and useful to the advanced user appear. Let us consider some of them:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;System file integrity check&lt;/strong&gt; On every on-demand scan, Windows system files are checked for changes that could have been introduced by malicious programs. If a change is detected, the user receives a warning. This feature requires a lot of resources, so it is disabled by default.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optimized search&lt;/strong&gt; The antivirus &amp;ldquo;politely&amp;rdquo; uses the computer&amp;rsquo;s resources, yielding to user programs when necessary. This feature can be useful on old computers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ignore files and paths on network drives&lt;/strong&gt; Allows reducing scan time by excluding files and folders located on the network from the scan list. Can be useful if the networked computers already have an antivirus.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Actions on detection.&lt;/strong&gt; For advanced users this setting may be interesting. Upon detecting a suspicious object or a virus, the antivirus will ask what to do with the object in interactive mode. It is possible to select a default action that will be applied if the user makes no choice.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Exclusions.&lt;/strong&gt; In this section you can define an exclusion list - files and\or folders that the antivirus will not scan. It is worth noting that the exclusion lists for on-demand scanning and proactive protection are separate.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;ldquo;Drive-By&amp;rdquo; protection&lt;/strong&gt; Allows blocking suspicious frames on downloaded web pages, which also improves browsing safety.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Password&lt;/strong&gt; The user can set a password and the operations that require entering it. Operations protected this way include disabling protection modules, changing settings, handling scan results with repair, deletion and other equally important actions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update settings&lt;/strong&gt; Such as, for example, configuring the update source. You can not only specify a preferred update server (this can be a local mirror at an enterprise or on a local network), but also configure updating from a network share.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Email notifications&lt;/strong&gt; This function can be useful to system administrators or to those who want to monitor the security of several computers. Notifications can be sent in case of important events in the protection modules, such as virus detection or a malfunction. Notifications about various events of the antivirus update system are also available.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Virus scanning&lt;span class="hx:absolute hx:-mt-20" id="virus-scanning"&gt;&lt;/span&gt;
&lt;a href="#virus-scanning" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The scan process window immediately delights with its &amp;ldquo;Luke Filewalker&amp;rdquo;
title. You can tell right away that they love Lucas&amp;rsquo;s creative work. The window interface is quite minimalist in terms
of controls, yet informative at the same time.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/18.jpg" title="Antivir personal - virus scanning" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Antivir personal - virus scanning&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;In this particular case, there were no viruses on my computer, which is perhaps why the &amp;ldquo;Virus information&amp;rdquo; link could
be clicked to no effect. No windows appeared, no site opened. &amp;ldquo;Help&amp;rdquo;, however, opened at the first request and told me
who Luke Filewalker is and what Force is with him.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2011/03/19.jpg" title="Antivir personal - help" alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Antivir personal - help&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;If the standard default user settings are in effect, AntiVir will display a list of malicious objects after the scan
and offer to repair them. If interactive notifications were enabled in the expert settings, the antivirus will stop
the scan when it finds a virus and offer to choose an action. An option with automatic actions without warning is also
possible. It is available in the settings too.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;span class="hx:absolute hx:-mt-20" id="conclusion"&gt;&lt;/span&gt;
&lt;a href="#conclusion" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Avira AntiVir Professional is a worthy representative of the antivirus software family. Let me note some of its
features. Advantages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A good virus scanner. Good detection of malicious programs&lt;/li&gt;
&lt;li&gt;Speed&lt;/li&gt;
&lt;li&gt;Low demands on computer resources&lt;/li&gt;
&lt;li&gt;Separation of settings into expert and standard&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Disadvantages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The translation is not very good in places&lt;/li&gt;
&lt;li&gt;Development takes place outside Russia. Fresh local threats may be detected later than in domestic products.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Having experience with the free Avira AntiVir Free version, I can say that the antivirus works well even on weak
machines, without slowing down the system, which is a significant factor. The product&amp;rsquo;s interface does not follow the
latest trends of competing products. AntiVir&amp;rsquo;s credo is rather simplicity and functionality than modern design. And
indeed, when everything works properly, you rarely need to see the antivirus interface at all. And with such an
important task as protecting the user&amp;rsquo;s computer from viruses, Avira copes very well. This review was prepared for
&lt;a href="http://softkey.info"target="_blank" rel="noopener"&gt;Softkey.info&lt;/a&gt;&lt;/p&gt;</description></item><item><title>World Of Tanks Tank Calculator</title><link>https://skobk.in/en/2010/12/kal-kulyator-tankov-world-of-tanks/</link><pubDate>Thu, 09 Dec 2010 19:36:15 +0300</pubDate><guid>https://skobk.in/en/2010/12/kal-kulyator-tankov-world-of-tanks/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This project has been irrelevant for a &lt;strong&gt;very long time&lt;/strong&gt; now. The post is kept for historical purposes.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;After watching the pre-battle calculations in World Of Tanks for a long time, I finally decided to write a tank calculator.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://skobk.in/en/kal-kulyator-tankov/"&gt;The calculator&amp;rsquo;s page on my site&lt;/a&gt; — you can download the program there.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://web.archive.org/web/20130323130736/http://forum.worldoftanks.ru/index.php?/topic/35576-%D0%BA%D0%B0%D0%BB%D1%8C%D0%BA%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80-%D1%82%D0%B0%D0%BD%D0%BA%D0%BE%D0%B2-world-of-tanks/"target="_blank" rel="noopener"&gt;Discussion on the official forum&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://web.archive.org/web/20101213054416/http://community.livejournal.com/world_of_tanks/802892.html"target="_blank" rel="noopener"&gt;Discussion in the World of Tanks LiveJournal community&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://web.archive.org/web/20130317182321/http://www.wotblog.ru/2010/12/09/%D0%BA%D0%B0%D0%BB%D1%8C%D0%BA%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80-%D1%82%D0%B0%D0%BD%D0%BA%D0%BE%D0%B2-world-of-tanks/"target="_blank" rel="noopener"&gt;A post on WoTblog.ru&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Installing a TeamSpeak 3 Server on Linux.</title><link>https://skobk.in/en/2010/10/ustanovka-servera-teamspeak-3-na-linux/</link><pubDate>Tue, 19 Oct 2010 03:20:00 +0300</pubDate><guid>https://skobk.in/en/2010/10/ustanovka-servera-teamspeak-3-na-linux/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-amber-200 hx:bg-amber-100 hx:text-amber-900 hx:dark:border-amber-200/30 hx:dark:bg-amber-900/30 hx:dark:text-amber-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/&gt;&lt;/svg&gt;Warning&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a historical guide from 2010. It is outdated: the TeamSpeak Server versions, download links, init scripts, system commands and configuration recommendations have changed since then. If you need a TeamSpeak Server, find an up-to-date guide for your operating system and the current server version.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;Instead of TeamSpeak I recommend using the free software &lt;a href="https://skobk.in/en/mumble/"&gt;Mumble&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;My loose translation of one short manual on setting up your own TeamSpeak server. First you need to add the teamspeak user; to do that, run the following command as the superuser:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adduser --disabled-login teamspeak&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Now you need to download the archive with the program (64-bit in my case)&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wget http://ftp.4players.de/pub/hosted/ts3/r ... a22.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;(Check whether a newer version has been released) unpack it&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar xzf teamspeak3-server_linux-amd64-3.0.0-beta22.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Move it to the right place&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mv teamspeak3-server_linux-amd64 /opt/ts3&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;And give the teamspeak user permissions on the directory&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chown -R teamspeak /opt/ts3&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If you look inside /opt/ts3 you will see that start and stop scripts already exist (ts3server_startscript.sh), and those are exactly what we&amp;rsquo;ll use. Let&amp;rsquo;s create a file in init.d by entering the following command and typing in this text:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cat &amp;gt; /etc/init.d/teamspeak&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The text:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/sh
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;### BEGIN INIT INFO&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Provides: teamspeak&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Required-Start: networking&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Required-Stop:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Default-Start: 2 3 4 5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Default-Stop: S 0 1 6&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Short-Description: TeamSpeak Server Daemon&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Description: Starts/Stops/Restarts the TeamSpeak Server Daemon&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;### END INIT INFO&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;set&lt;/span&gt; -e
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;DESC&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;TeamSpeak Server&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;teamspeak
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;USER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;teamspeak
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/opt/ts3
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;DAEMON&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$DIR&lt;/span&gt;/ts3server_startscript.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#PIDFILE=/var/run/$NAME.pid&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;SCRIPTNAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/etc/init.d/&lt;span class="nv"&gt;$NAME&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Gracefully exit if the package has been removed.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;test&lt;/span&gt; -x &lt;span class="nv"&gt;$DAEMON&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;exit&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;$DIR&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo -u teamspeak ./ts3server_startscript.sh &lt;span class="nv"&gt;$1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Now press ENTER and CTRL-D and the text will be written to the file. Let&amp;rsquo;s set the permissions on it&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chmod &lt;span class="m"&gt;755&lt;/span&gt; /etc/init.d/teamspeak&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Everything is ready. Try running the script&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/etc/init.d/teamspeak start&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Be sure to remember the login, password and token — you will need them to authenticate as the administrator on the server. You can find the logs in /opt/ts3/logs/. All that&amp;rsquo;s left to do is make sure the script runs at system startup. You can add it there with the command:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;update-rc.d teamspeak defaults&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If your system has a firewall — make sure the TeamSpeak ports are open. To see which ports Teamspeak uses, run the command:&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;netstat -lnp &lt;span class="p"&gt;|&lt;/span&gt; grep ts3
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tcp &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; 0.0.0.0:10011 0.0.0.0: * LISTEN 30232/ts3server_lin
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tcp &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; 0.0.0.0:30033 0.0.0.0: * LISTEN 30232/ts3server_lin
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;udp &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; 0.0.0.0:9987 0.0.0.0: * 30232/ts3server_lin&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="Copy code"
aria-label="Copy code"
data-copied-label="Copied!"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;I&amp;rsquo;ll add on my own behalf that the guide doesn&amp;rsquo;t quite match the current state of things, and I didn&amp;rsquo;t follow it exactly myself when installing.&lt;/p&gt;
&lt;p&gt;via &lt;a href="https://robert.penz.name/296/howto-install-teamspeak-3-server-on-ubuntu-10-04-lucid/"target="_blank" rel="noopener"&gt;Original post&lt;/a&gt;&lt;/p&gt;</description></item><item><title>DropBox. Drop-the-Box and what it's all about.</title><link>https://skobk.in/en/2010/09/obzor-dropbox/</link><pubDate>Thu, 16 Sep 2010 02:35:26 +0300</pubDate><guid>https://skobk.in/en/2010/09/obzor-dropbox/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a copy of my review written for the Softkey resources.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-amber-200 hx:bg-amber-100 hx:text-amber-900 hx:dark:border-amber-200/30 hx:dark:bg-amber-900/30 hx:dark:text-amber-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/&gt;&lt;/svg&gt;Warning&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a 2010 review of Dropbox. The behavior of the Public folder, the Linux client, the plans and the file sharing features have changed since then, so this text should not be used as a current how-to.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="http://dropbox.skobk.in/referer"target="_blank" rel="noopener"&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/mirrored/www.dropbox.com/static/13141/images/logo.png" title="DropBox Logo" alt="DropBox" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;DropBox Logo&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Many people have probably heard something about &lt;a href="http://dropbox.skobk.in/referer"target="_blank" rel="noopener"&gt;DropBox&lt;/a&gt; — a service where people store files, make backups and post files for download. But let&amp;rsquo;s take a slightly closer look at what it is and what it&amp;rsquo;s used for. Generally speaking, according to Wikipedia, DropBox is &lt;a href="https://en.wikipedia.org/wiki/Cloud_storage"target="_blank" rel="noopener"&gt;cloud storage&lt;/a&gt;. Does that sound unclear? Simply put, it&amp;rsquo;s a service that keeps your files on its own servers.&lt;/p&gt;
&lt;h3&gt;Theory. The advantages.&lt;span class="hx:absolute hx:-mt-20" id="theory-the-advantages"&gt;&lt;/span&gt;
&lt;a href="#theory-the-advantages" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Let&amp;rsquo;s go through the advantages according to the same Wikipedia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The client pays only for the storage space they actually use, rather than paying to rent a server whose resources they may not even use in full.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With DropBox things are even more interesting. By default you are given free access to 2 gigabytes of storage. If you sign up through a link from another DropBox member, you are credited with another 250 megabytes. By inviting your friends, you can grow your quota up to 10 gigabytes.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/09/dropbox1.jpg" title="DropBox usage status." alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;DropBox usage status.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Also, if you need more space, you can purchase one of the two paid plans: Pro 50 or Pro 100 — 50 and 100 gigabytes respectively.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The client doesn&amp;rsquo;t have to bother with acquiring, supporting and maintaining their own data storage infrastructure, which ultimately reduces overall production costs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With DropBox everything is really simple. All you have to do is register an account and download the client program.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All the procedures for backing up and preserving data integrity are carried out by the cloud center&amp;rsquo;s provider, without involving the client in the process.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By dropping files into the DropBox folder, you automatically upload them to the storage. No additional actions are needed.&lt;/p&gt;
&lt;h3&gt;Theory and practice. How does it work?&lt;span class="hx:absolute hx:-mt-20" id="theory-and-practice-how-does-it-work"&gt;&lt;/span&gt;
&lt;a href="#theory-and-practice-how-does-it-work" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;It&amp;rsquo;s all very simple: forget the fairy tales — to start using DropBox you need to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://dropbox.skobk.in/referer"target="_blank" rel="noopener"&gt;Register on the site&lt;/a&gt; (this is a referral link from the comments; you&amp;rsquo;ll get a bonus of &lt;strong&gt;500&lt;/strong&gt; megabytes when signing up)&lt;/li&gt;
&lt;li&gt;Download and install the client&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are client versions for &lt;a href="https://www.dropbox.com/downloading?os=win"target="_blank" rel="noopener"&gt;Windows&lt;/a&gt;, &lt;a href="https://www.dropbox.com/downloading?os=lnx"target="_blank" rel="noopener"&gt;Linux&lt;/a&gt;, &lt;a href="https://www.dropbox.com/downloading?os=mac"target="_blank" rel="noopener"&gt;Mac OS X&lt;/a&gt; and even for &lt;a href="https://www.dropbox.com/anywhere"target="_blank" rel="noopener"&gt;mobile devices&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Drop files into DropBox&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A folder called &amp;ldquo;My Dropbox&amp;rdquo; will appear on your computer. During installation you can choose where the DropBox folder will live. This is a useful feature if you don&amp;rsquo;t want to keep your DropBox files on the &amp;ldquo;C&amp;rdquo; drive in Windows. It can also come in handy if you have two systems installed, for example: Windows and a Linux distribution. &lt;em&gt;Hint: Under Windows the DropBox folder will always be named &amp;ldquo;My Dropbox&amp;rdquo;, while on a Linux system it&amp;rsquo;s &amp;ldquo;Dropbox&amp;rdquo;. To avoid keeping two copies of your files on one machine and to make exchanging files between the systems easier, the simplest thing is to create a &lt;a href="https://en.wikipedia.org/wiki/Symbolic_link"target="_blank" rel="noopener"&gt;symlink&lt;/a&gt; named &amp;ldquo;Dropbox&amp;rdquo; pointing to the &amp;ldquo;My Dropbox&amp;rdquo; directory on an NTFS drive. Or the other way around, whichever you prefer.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Practice. Why would you need this?&lt;span class="hx:absolute hx:-mt-20" id="practice-why-would-you-need-this"&gt;&lt;/span&gt;
&lt;a href="#practice-why-would-you-need-this" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Storing files&lt;/li&gt;
&lt;li&gt;Syncing files between computers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On computers running under the same account, files will always sync as long as there is network access. If there is a local network, files will be transferred between the computers locally. The use case is very simple: on your home computer you drop the file you need into the Dropbox folder, take your laptop to work (or simply sync your work computer), and the file is downloaded there right away.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;File change history with the ability to roll back&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When a file changes, DropBox remembers the changes, and if necessary you can roll back to an older version of the file from the saved copy. It&amp;rsquo;s certainly not &lt;a href="https://en.wikipedia.org/wiki/Apache_Subversion"target="_blank" rel="noopener"&gt;SVN&lt;/a&gt;, but it&amp;rsquo;s convenient and doesn&amp;rsquo;t take up space on your hard drive, unlike the version control features built into the OS.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Backup&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This feature will mostly come in handy for system administrators and owners of servers and websites on VDS. If you&amp;rsquo;re interested in how DropBox can be used for backups, you can read the relevant articles on Habrahabr: &lt;strong&gt;&lt;a href="http://habrahabr.ru/blogs/sysadm/63617/"target="_blank" rel="noopener"&gt;Backing up with no expenses&lt;/a&gt;.&lt;/strong&gt; That article is what drew my attention to DropBox. &lt;a href="http://habrahabr.ru/blogs/personal/69856/"target="_blank" rel="noopener"&gt;A simple homemade data backup, part 2 (Python + DropBox)&lt;/a&gt; &lt;a href="http://habrahabr.ru/blogs/personal/74532/"target="_blank" rel="noopener"&gt;A variant of a simple backup system in Python, Bash and Git&lt;/a&gt; &lt;a href="http://habrahabr.ru/blogs/personal/89864/"target="_blank" rel="noopener"&gt;Automatic config backup with DropBox&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Public files&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A Public folder appears inside &amp;ldquo;My Dropbox&amp;rdquo;; you can give out direct links to the files in it:&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/09/dropbox-public-link-e1284592264640.jpg" title="Dropbox. Getting a link." alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Dropbox. Getting a link.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;In case it&amp;rsquo;s not obvious what this could be useful for — imagine you need to upload a file somewhere for a person who may not be online, or who can&amp;rsquo;t receive a file via ICQ\Jabber\email. You simply copy the file into Public or a directory inside Public, the file immediately starts uploading to the DropBox servers, you get a link to it and hand it to the person. No human verification, no ads, no sluggish sites. The person downloads the file via a direct link without artificial speed limits. And of course, there&amp;rsquo;s no storage time limit. The file will be removed from the server only when you delete it yourself.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Gallery&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A Photos folder appears in the Dropbox folder. By creating folders with photographs inside it, you automatically create online albums. You can see an example here: &lt;a href="http://www.dropbox.com/gallery/2542860/1/dropbox?h=74f66f"target="_blank" rel="noopener"&gt;http://www.dropbox.com/gallery/2542860/1/dropbox?h=74f66f&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Shared folders&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Besides everything described above, you can also team up with other DropBox users and set up &amp;ldquo;Shared folders&amp;rdquo;. To do this, create any folder and specify the e-mail addresses of the people who will be invited to share the files of the common folder. As soon as those people accept the invitations that arrive in their e-mail, you&amp;rsquo;ll be able to exchange files with them. All participants of the exchange get this folder. If one of the participants puts a file in their copy of the folder, it appears for everyone. If someone modifies it, it changes for everyone. If they delete it — likewise. For example, I created a &amp;ldquo;test-share-folder&amp;rdquo; and sent an invitation to my friend &lt;a href="http://juick.com/iCat/"target="_blank" rel="noopener"&gt;@iCat&lt;/a&gt;. He accepted it, and the folder with all its files immediately synced to him.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/09/dropbox-shared-folder.jpg" title="Dropbox. Shared folder." alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Dropbox. Shared folder.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;As soon as I upload a file to the folder, he gets a notification:&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/09/dropbox-file-popup.jpg" title="Dropbox. File popup." alt="" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;Dropbox. File popup.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;h3&gt;Practice. A personal case.&lt;span class="hx:absolute hx:-mt-20" id="practice-a-personal-case"&gt;&lt;/span&gt;
&lt;a href="#practice-a-personal-case" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;I use DropBox to store screenshots and publish them on websites and forums. The standard system screenshot tool saves screenshots into this folder; all I do is set a name and copy the link.&lt;/li&gt;
&lt;li&gt;I keep program settings, such as Opera&amp;rsquo;s, in DropBox. My urlfilter.ini lives there, with the banner blocking rules in it. True, with the release of version 10.7 this will become less relevant, since that file will be synchronized through Opera Sync. However, this doesn&amp;rsquo;t stop you from keeping any other settings in DropBox.&lt;/li&gt;
&lt;li&gt;Keeping messenger history. If you create a &lt;a href="https://en.wikipedia.org/wiki/Symbolic_link"target="_blank" rel="noopener"&gt;symlink&lt;/a&gt; (linux) or an &lt;a href="http://www.computerra.ru/gid/rtfm/system/38547/"target="_blank" rel="noopener"&gt;NTFS link&lt;/a&gt; (windows) pointing to your messenger&amp;rsquo;s history folder in DropBox, all the computers where this is done will share a single common history.&lt;/li&gt;
&lt;li&gt;And of course, I exchange files with friends through shared folders&lt;/li&gt;
&lt;li&gt;&lt;a href="http://habrahabr.ru/blogs/personal/85616/"target="_blank" rel="noopener"&gt;Remote torrent loading&lt;/a&gt;. If the computer with the torrent client has no public IP for the client&amp;rsquo;s web interface, or the client doesn&amp;rsquo;t support one, or there are other obstacles: you can drop torrents into the DropBox folder, say, at work, and at home the torrent client will pick up the new torrent files from the folder and start downloading them.&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s worth mentioning third-party services like Airdropper (thanks to &lt;a href="http://juick.com/johan/"target="_blank" rel="noopener"&gt;@johan&lt;/a&gt;) that let you extend Dropbox&amp;rsquo;s capabilities. Airdropper itself allows your friends to upload files to your Dropbox even if they don&amp;rsquo;t have an account. You just give them a guest link, and they can upload the file they need right through their browser.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://techmeat.net/dropbox.html"target="_blank" rel="noopener"&gt;Dropbox for an HTML coder&lt;/a&gt; and designer as a means to coordinate work and simplify showing the result to the client. Thanks to &lt;a href="http://techmeat.habrahabr.ru/"target="_blank" rel="noopener"&gt;TecHMeaT&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;In conclusion.&lt;span class="hx:absolute hx:-mt-20" id="in-conclusion"&gt;&lt;/span&gt;
&lt;a href="#in-conclusion" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;DropBox is a very convenient and quite powerful tool despite its outward simplicity. It&amp;rsquo;s definitely worth trying if you need to perform the tasks described in this article or need similar functionality. &lt;a href="https://www.dropbox.com/"target="_blank" rel="noopener"&gt;The official Dropbox website.&lt;/a&gt; &lt;a href="https://en.wikipedia.org/wiki/Dropbox_%28service%29"target="_blank" rel="noopener"&gt;Dropbox on Wikipedia.&lt;/a&gt; &lt;strong&gt;UPD:&lt;/strong&gt; I&amp;rsquo;ve maxed out my free quota. I can put up your referral links in turn, without any guarantees. Requests — in the comments. &lt;strong&gt;UPD2:&lt;/strong&gt; since more referral links came in than I expected, each link will stay up for 1 day or until the first referral. Please be honest: if you get a referral, mention it in the comments so I can switch to the next link. Also, if I bring in a referral from among my own acquaintances, I switch to the next link.&lt;/p&gt;</description></item><item><title>LeechCraft. A Cross-Platform All-in-One.</title><link>https://skobk.in/en/2010/08/leechcraft-krossplatformennyiy-kombayn/</link><pubDate>Fri, 20 Aug 2010 01:48:56 +0300</pubDate><guid>https://skobk.in/en/2010/08/leechcraft-krossplatformennyiy-kombayn/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:flex-col hx:rounded-lg hx:border hx:py-4 hx:px-4 hx:border-gray-200 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;p class="hx:flex hx:items-center hx:font-medium"&gt;&lt;svg height=16px class="hx:inline-block hx:align-middle hx:mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;&lt;p&gt;This is a historical article from 2010. The LeechCraft project has been effectively abandoned since 2014, so this review is only of historical interest.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-juick-e1282264402546.jpg" title="leechcraft-juick" alt="The LeechCraft tag on Juick. LeechCraft is popular." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-juick&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Lately &lt;a href="http://juick.com/last?tag=leechcraft"target="_blank" rel="noopener"&gt;leechcrafts&lt;/a&gt; have been mentioned a lot on Juick, and someone even suggested &lt;a href="http://juick.com/Esc/879936"target="_blank" rel="noopener"&gt;approving the &amp;ldquo;hacking on leechcrafts&amp;rdquo; meme&lt;/a&gt;. I decided not to let a potential meme go unnoticed and write a short review of this program — all the more so since the topic of all-in-one suites is, in a certain sense, interesting to me. I went to the &lt;a href="http://leechcraft.org/"target="_blank" rel="noopener"&gt;leechcraft.org&lt;/a&gt; website and downloaded the latest version for Windows. After installing it I experienced déjà vu. &amp;ldquo;This is Opera with a media player, an auto screenshotter and other odds and ends,&amp;rdquo; I thought. Only it&amp;rsquo;s an Opera that is very slow in how it responds, as I found out later. Which is understandable, really: Opera is a commercial product, while LeechCraft is a private free-software project done for the fun of it.&lt;/p&gt;
&lt;h2&gt;Browser&lt;span class="hx:absolute hx:-mt-20" id="browser"&gt;&lt;/span&gt;
&lt;a href="#browser" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-bro1.jpg" title="leechcraft-bro1" alt="Browser slowdowns in LeechCraft" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-bro1&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Pages load worse than in a proper Opera or in Google Chrome, which also uses WebKit — though a &lt;a href="http://juick.com/skobkin-ru/880419#3"target="_blank" rel="noopener"&gt;slightly different one&lt;/a&gt;. They load in bursts and slowly, and until a page has finished loading you can&amp;rsquo;t scroll it properly.&lt;/p&gt;
&lt;h2&gt;Player&lt;span class="hx:absolute hx:-mt-20" id="player"&gt;&lt;/span&gt;
&lt;a href="#player" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A media player? I&amp;rsquo;m sure I&amp;rsquo;ve seen this somewhere before. &lt;a href="http://www.getsongbird.com/"target="_blank" rel="noopener"&gt;Songbird&lt;/a&gt;, right? A browser-player. I considered that combination silly.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-lmp1.jpg" title="leechcraft-lmp1" alt="The LeechCraft media player is unavailable." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-lmp1&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;In Songbird I could play something right away, but here the player icon was unavailable for some reason. The first thing at hand was Georges Bizet&amp;rsquo;s Habanera. I tried to open it via &amp;ldquo;Open With&amp;rdquo;. Another surprise was waiting for me there. I remember that LeechCraft installed itself into the &lt;code&gt;C://Program files/..../LeechCraft&lt;/code&gt; folder. In my opinion, this installation method only makes sense for products of a single company, which will quite likely all end up on the same computer; but when it&amp;rsquo;s known that LeechCraft is precisely an all-in-one that replaces a lot of software, it could just install into &lt;code&gt;%programfiles%\Leechcraft&lt;/code&gt;. Well, whatever — I found it through the shortcut. But the leechcraft doesn&amp;rsquo;t like classical music, and instead of the Habanera it opened Habrahabr. Maybe the problem is that the names sound alike, or maybe it&amp;rsquo;s simply that I hadn&amp;rsquo;t closed Habr before closing the leechcraft :) But fact is fact — the music doesn&amp;rsquo;t play.&lt;/p&gt;
&lt;h2&gt;RSS&lt;span class="hx:absolute hx:-mt-20" id="rss"&gt;&lt;/span&gt;
&lt;a href="#rss" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-agre1.jpg" title="leechcraft-agre1" alt="The RSS aggregator in LeechCraft" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-agre1&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Here I opened Aggregator — everything feels somehow familiar again (just like in Opera), except the tags sticking out on the left get in the way. They could probably be laid out in a more convenient way. Switching between quotes from iBash, I noticed the same thing that had caught my eye in the browser — a certain lag in responsiveness, so to speak. In short, after selecting a quote, some time passes before it appears. Quote rendering, apparently, also runs on WebKit, which may explain the problem, but this lag still feels awfully dead. Perhaps because the program sort of freezes and the list item only changes when the RSS entry has already appeared; perhaps because the program gives no indication whatsoever that it is about to freeze for a moment — no hourglass cursor or, on Windows 7, the shimmering spinning circles. The tabs, by the way, don&amp;rsquo;t close immediately either.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-bro2.jpg" title="leechcraft-bro2" alt="The missing address bar" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-bro2&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;I dragged the left panel, which had bothered me plenty, up to the top, and returned to the browser, where a surprise was waiting for me. The address bar was gone. I opened another tab — it wasn&amp;rsquo;t there either. In the end I did figure out that the address bar is also a panel, one that had somehow slid off-screen while I was moving the left panel in another module of the program.&lt;/p&gt;
&lt;h2&gt;IRC&lt;span class="hx:absolute hx:-mt-20" id="irc"&gt;&lt;/span&gt;
&lt;a href="#irc" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-irc1.jpg" title="leechcraft-irc1" alt="A first look at IRC in LeechCraft" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-irc1&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;I typed &lt;code&gt;irc://irc.forestnet.org&lt;/code&gt; into the address bar. Opera would open a chat in this case, and if I hadn&amp;rsquo;t previously entered login information, a setup wizard would open. The leechcraft also opened something — though I couldn&amp;rsquo;t tell what. I clicked the red cross and the healing came: the black and white squares went away, and clicking the blue cross brought them back.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-irc2-e1282261843674.jpg" title="leechcraft-irc2" alt="The IRC channel login window in LeechCraft" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-irc2&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;So, this is the console of an IRC client that isn&amp;rsquo;t going to connect to the server until I order it to manually? In vain. I started exploring the interface in search of some &amp;ldquo;Connect&amp;rdquo; or &amp;ldquo;New server&amp;rdquo;, and soon found a modest little arrow next to a button labeled &amp;ldquo;&amp;hellip;&amp;rdquo; and used it to get to the connection window:&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-irc3.jpg" title="leechcraft-irc3" alt="An encoding problem on an IRC channel in LeechCraft" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-irc3&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Feeling like revisiting the old days, I entered the URL of the Deeptown room. And another surprise. However, typing &lt;code&gt;/charset UTF-8&lt;/code&gt; set everything back to normal. Then, entering the same room from Opera with 1251 as the default encoding, I realized everything was fine and the encodings were my mistake. I should have chosen either a different server port or a different encoding. I decided to connect to one of the channels — &lt;code&gt;#help&lt;/code&gt;. There had to be some living soul sitting there whom I could use to check how IRC works here.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-irc4.jpg" title="leechcraft-irc4" alt="Talking to myself between Opera and LeechCraft" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-irc4&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Said and done. I type &lt;code&gt;/join #help&lt;/code&gt; and see the welcome message of the &lt;code&gt;#help&lt;/code&gt; channel. But here&amp;rsquo;s the catch: I&amp;rsquo;m still in the same &lt;code&gt;#deeptown&lt;/code&gt; chat. Entering the &lt;code&gt;#help&lt;/code&gt; channel from Opera, I&amp;rsquo;m there — but in the leechcraft there&amp;rsquo;s neither a tab nor the slightest hint of another channel.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-irc5.jpg" title="leechcraft-irc5" alt="LeechCraft handles IRC channels incorrectly" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-irc5&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-irc6.jpg" title="leechcraft-irc6" alt="LeechCraft posts to the wrong channel, as seen from Opera." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-irc6&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;I write a message in the chat in the leechcraft after connecting to &lt;code&gt;#help&lt;/code&gt;, and it goes to &lt;code&gt;#deeptown&lt;/code&gt;. All in all, IRC in the leechcraft is very, very mediocre. The only thing in its defense is that IRC isn&amp;rsquo;t among the main advertised features, and Chatter itself is described as a &amp;ldquo;Simple IRC client&amp;rdquo;.&lt;/p&gt;
&lt;h2&gt;Bit-Torrent&lt;span class="hx:absolute hx:-mt-20" id="bit-torrent"&gt;&lt;/span&gt;
&lt;a href="#bit-torrent" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Here I decided to take a risk and check how true &amp;ldquo;lets you download torrents even faster&amp;rdquo; really was. I went to rutracker.org and remembered the beginning of this post. The site loaded sluggishly, and text was entered into the input field in bursts until the last little object on the page had finished loading.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-torr-1.jpg" title="leechcraft-torr-1" alt="The torrent file download window in LeechCraft" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-torr-1&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;I typed &amp;ldquo;Linux&amp;rdquo; into the search and sorted the torrents by size. Among the very small torrents of texts and the very large torrents of disk images there was a small LMMS torrent; I selected it and hit &amp;ldquo;Download &lt;code&gt;.torrent&lt;/code&gt;&amp;rdquo;. That&amp;rsquo;s when LeechCraft detected a binary entity.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-torr-2.jpg" title="leechcraft-torr-2" alt="The file selection window in LeechCraft" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-torr-2&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;After clicking the only possible &amp;ldquo;Browse&amp;rdquo; button I got the typical Qt file selection window, which, of course, didn&amp;rsquo;t show the list of folders I had favorited in Windows Explorer. By the way, I couldn&amp;rsquo;t create a new folder there either, so I had to open Explorer and create it there. I selected that folder and was thrown back to the window with the single Browse option, while on the right a notification popped up saying something had downloaded. It was clearly not the torrent, since the torrent does weigh 26 megabytes and only one second had passed since I chose the location. However, contrary to my expectations, nothing happened after the torrent file was downloaded.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-torr-3.jpg" title="leechcraft-torr-3" alt="The torrent download window in LeechCraft" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-torr-3&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Then I found an &amp;ldquo;Open several torrents&amp;rdquo; item in the &amp;ldquo;Tools&amp;rdquo; menu and specified the folder where the torrent file had been saved and where to download the torrent&amp;rsquo;s contents.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-torr-4.jpg" title="leechcraft-torr-4" alt="The network graph in LeechCraft" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-torr-4&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Nothing happened this time either — except, perhaps, the graph in the status bar coming to life. Things started appearing in the folder I had specified, and after a while they were fully there. It really was LMMS. With some struggle, the torrent did get downloaded.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-crash1.jpg" title="leechcraft-crash1" alt="LeechCraft crashed." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-crash1&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Then I started closing all the tabs by pressing &lt;code&gt;CTRL+W&lt;/code&gt;, got to the last tab and pressed it once more: LeechCraft delighted me once again.&lt;/p&gt;
&lt;h2&gt;In conclusion&lt;span class="hx:absolute hx:-mt-20" id="in-conclusion"&gt;&lt;/span&gt;
&lt;a href="#in-conclusion" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I decided I&amp;rsquo;d had enough leechcrafts for one day, and that I would either poke at it tomorrow or abandon it until one of the new versions.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-bro3.jpg" title="leechcraft-bro3" alt="The login page failed to load" data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-bro3&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;It was time to publish the article to the blog, but having entered the blog through LeechCraft and tried to log in, I got yet another error. This time the page wouldn&amp;rsquo;t load. On the second attempt I did get into the blog&amp;rsquo;s dashboard and decided to compose the post about the leechcraft inside the leechcraft itself.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://skobk.in/wp-content/uploads/2010/08/leechcraft-bro4.jpg" title="leechcraft-bro4" alt="LeechCraft opened the page inside the editor." data-zoomable loading="lazy" /&gt;
&lt;figcaption&gt;leechcraft-bro4&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;But, unfortunately, a surprise awaited me here too. When I entered a link incorrectly in the editor and clicked it to fix it, LeechCraft followed the link in the editor window. I was curious whether the changes I had made to the post had survived, but going back I realized that WordPress had auto-saved the post shortly before I clicked the link. As it turned out, this is a problem with Qt&amp;rsquo;s WebKit, which doesn&amp;rsquo;t always keep pace with the main development branch of this engine. I saved the post anyway and, to be on the safe side, went to finish writing it in Opera.&lt;/p&gt;
&lt;h2&gt;Thoughts&lt;span class="hx:absolute hx:-mt-20" id="thoughts"&gt;&lt;/span&gt;
&lt;a href="#thoughts" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;LeechCraft is an interesting and possibly promising project that lacks a designer&amp;rsquo;s approach to usability. I have written programs myself, and still do from time to time, and I&amp;rsquo;ve run into the problem of a user failing to understand the logic of how a program works.&lt;/li&gt;
&lt;li&gt;The all-in-one concept is quite interesting. There is the ability to tag almost everything. I didn&amp;rsquo;t really try this option out, but it should be interesting and, possibly, convenient — naturally, provided the design changes toward better usability.&lt;/li&gt;
&lt;li&gt;Despite what you may have thought after reading this — the program is quite usable; you only need to understand its logic. For example, on Linux distributions it can be a good alternative to other browsers.&lt;/li&gt;
&lt;li&gt;The program has a similar and more powerful competitor — Opera. But in some respects the ideas and the implementation differ. For example, Opera has no tag-centric approach and no built-in media player (by default, that is; it&amp;rsquo;s achievable there too through the Unite extensions and widgets). There is also a certain group of users who don&amp;rsquo;t want to use Opera because of its closed source code or other considerations. For them, LeechCraft may turn out to be a &amp;ldquo;geeky&amp;rdquo; alternative.&lt;/li&gt;
&lt;li&gt;The program can be recommended to experienced users, especially those who have been &amp;ldquo;looking for their software&amp;rdquo; and could never find it.&lt;/li&gt;
&lt;li&gt;My review is not impartial: it is a first impression of an unfamiliar program and the problems discovered while getting acquainted with it. Besides the problems, the functionality is also partially described.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;P.S. All possible plugins were selected during installation, yet of the menus available to the user I saw only the capabilities of a small part of them. Some features are hidden in the settings, but it seemed to me that certain menu entries were missing.&lt;/p&gt;</description></item><item><title>Export from e2 to WordPress. First attempt.</title><link>https://skobk.in/en/2010/08/e-ksport-iz-e2-v-wordpress-pervaya-proba/</link><pubDate>Wed, 18 Aug 2010 03:33:45 +0300</pubDate><guid>https://skobk.in/en/2010/08/e-ksport-iz-e2-v-wordpress-pervaya-proba/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The time has finally come: I&amp;rsquo;ve put together a script for exporting from e2 Selecta to WordPress — e2wp. The imported entries can already be found in this blog; they&amp;rsquo;re there, they&amp;rsquo;re readable, it&amp;rsquo;s just that most of the links and images are dead by now, so these entries will serve as a kind of memorial to my old blog. By the way, I&amp;rsquo;m &lt;a href="http://code.google.com/p/e2wp/"target="_blank" rel="noopener"&gt;releasing the script publicly on Google Code&lt;/a&gt;, in case it turns out useful to someone. Quick instructions: &lt;strong&gt;Back up the database first!&lt;/strong&gt; Take the e2Notes table from the e2 blog, load it into the WordPress database, point the script at that database, check everything and run it. If something doesn&amp;rsquo;t work, write in the comments.&lt;/p&gt;</description></item><item><title>First Post</title><link>https://skobk.in/en/2010/07/pervaya-zapis/</link><pubDate>Mon, 26 Jul 2010 03:47:32 +0300</pubDate><guid>https://skobk.in/en/2010/07/pervaya-zapis/</guid><description>
&lt;div class="hx:overflow-x-auto hx:mt-6 hx:flex hx:rounded-lg hx:border hx:py-2 hx:ltr:pr-4 hx:rtl:pl-4 hx:contrast-more:border-current hx:contrast-more:dark:border-current hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200"&gt;
&lt;div class="hx:ltr:pl-3 hx:ltr:pr-2 hx:rtl:pr-3 hx:rtl:pl-2"&gt;&lt;svg height=1.2em class="hx:inline-block hx:align-middle" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"&gt;&lt;path stroke-linecap="round" stroke-linejoin="round" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"/&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class="hx:w-full hx:min-w-0 hx:leading-7"&gt;
&lt;div class="hx:mt-6 hx:leading-7 hx:first:mt-0"&gt;This post is machine-translated.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;My main blog is opening once again. This by no means affects my &lt;a href="http://juick.com/skobkin-ru/"target="_blank" rel="noopener"&gt;microblog on Juick&lt;/a&gt;; I&amp;rsquo;ll simply be able to use this place to write up various articles, post pictures, photos and other assorted stuff.&lt;/p&gt;</description></item></channel></rss>