<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Заметки за 2020 год on igonin.ru</title><link>https://igonin.ru/posts/2020/</link><description>Recent content in Заметки за 2020 год on igonin.ru</description><generator>Hugo</generator><language>ru-RU</language><lastBuildDate>Sat, 12 Sep 2020 18:09:45 +0400</lastBuildDate><atom:link href="https://igonin.ru/posts/2020/index.xml" rel="self" type="application/rss+xml"/><item><title>Настройка SDL 2 в Visual Studio 2019 Community</title><link>https://igonin.ru/posts/2020/09/setting-up-sdl2-on-visual-studio-2019-community/</link><pubDate>Sat, 12 Sep 2020 18:09:45 +0400</pubDate><guid>https://igonin.ru/posts/2020/09/setting-up-sdl2-on-visual-studio-2019-community/</guid><description>&lt;p&gt;В силу природной лени эксперименты с графическими эффектами я решил продолжить в современном окружении на C++ и использовать SDL2 для вывода графики. В этой заметке покажу процесс настройки окружения. Это будет базовый каркас для дальнейшей работы.&lt;/p&gt;
&lt;p&gt;Для начала нужно скачать и установить Visual Studio 2019 Community. Сделать это можно по ссылке &lt;a href="https://visualstudio.microsoft.com/ru/vs/"&gt;https://visualstudio.microsoft.com/ru/vs/&lt;/a&gt;. И при установке выбрать пакет «Разработка классических приложений на C++».&lt;/p&gt;
&lt;figure class="media-wide media-wide--natural" style="--media-width: 1242px"&gt;
 &lt;a class="media-wide__link" href="https://igonin.ru/posts/2020/09/setting-up-sdl2-on-visual-studio-2019-community/visual-studio-installer.png"&gt;
 &lt;img
 src="https://igonin.ru/posts/2020/09/setting-up-sdl2-on-visual-studio-2019-community/visual-studio-installer.png"
 width="1242"
 height="619"
 loading="lazy"
 decoding="async"
 alt="И при установке выбрать пакет «Разработка классических приложений на C&amp;#43;&amp;#43;»."
 /&gt;
 &lt;/a&gt;
 
 &lt;/figure&gt;
&lt;p&gt;Далее необходимо скачать библиотеку SDL2 по ссылке &lt;a href="http://libsdl.org/download-2.0.php"&gt;http://libsdl.org/download-2.0.php&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Создание текстуры командой XOR</title><link>https://igonin.ru/posts/2020/08/creating-xor-texture-in-assembler/</link><pubDate>Sat, 29 Aug 2020 22:00:45 +0400</pubDate><guid>https://igonin.ru/posts/2020/08/creating-xor-texture-in-assembler/</guid><description>&lt;p&gt;Как сгенерировать интересную текстуру при помощи всего одной команды?! Ну хорошо, команд будет немного больше.&lt;/p&gt;
&lt;p&gt;Однако, гораздо меньше чем в предыдущей заметке по ассемблеру &lt;a href="https://igonin.ru/posts/2020/05/creating-the-effect-of-fire-in-assembler/"&gt;Создание эффекта огня на ассемблере&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;В качестве каркаса я использовал тот-же код, что и раньше. Если коротко, что делает программа:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Устанавливает графический режим VGA с разрешением 320×200 точек и 256 цветов.&lt;/li&gt;
&lt;li&gt;Записывает палитру-градиент от чёрного к синему.&lt;/li&gt;
&lt;li&gt;Отрисовывает текстуру на весь экран.&lt;/li&gt;
&lt;li&gt;Ждёт нажатия клавиши.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Собственно шаг номер три, а именно процедура &lt;code&gt;drawtex&lt;/code&gt; (79-99 строки), содержит в себе два цикла.&lt;/p&gt;</description></item><item><title>Турция 2015</title><link>https://igonin.ru/posts/2020/08/turkey-2015/</link><pubDate>Sun, 23 Aug 2020 21:17:49 +0400</pubDate><guid>https://igonin.ru/posts/2020/08/turkey-2015/</guid><description>&lt;p&gt;Вторая моя поездка за границу. Турция. Турунч.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.google.com/maps/search/?api=1&amp;amp;query=Zeus%20Turun%C3%A7%20Hotel"&gt;Zeus Turunç Hotel — Google Maps&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Вот что говорит Википедия про посёлок Турунч:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Турунч — турецкий курорт, расположенный в районе &lt;strong&gt;Мармарис&lt;/strong&gt; провинции Мугла, Турция. Он расположен в 20 км к югу от Мармариса на берегу Эгейского моря, в окружении гор Тавр. Посёлок был основан в османский период, первыми жителями были йоруки из Таврских гор. В основном они жили за счёт сельского хозяйства и рыболовства. До 1983 года в посёлке не было электричества. До 1989 года дороги в Турунч были грунтовые.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Сборка клона ZX Spectrum</title><link>https://igonin.ru/posts/2020/07/building-a-zx-spectrum-clone-part-1/</link><pubDate>Thu, 09 Jul 2020 22:03:39 +0400</pubDate><guid>https://igonin.ru/posts/2020/07/building-a-zx-spectrum-clone-part-1/</guid><description>&lt;p&gt;В раннем детстве папа привёл меня к себе на работу и усадил за программатор «Siemens Simatic S5 PG 675» с операционной системой CP/M–86. Сначала я играл на нём в игры, а потом начал пробовать писать что-то сам в интерпретаторе Бейсика. Записывал программы дома в тетрадку, потом набирал на PG. Это были простые программы, которые принимали ввод с клавиатуры и отображали результат.&lt;/p&gt;
&lt;figure class="media-wide media-wide--intrinsic" style="--media-width: 768px"&gt;
 &lt;a class="media-wide__link" href="https://igonin.ru/posts/2020/07/building-a-zx-spectrum-clone-part-1/pg.jpg"&gt;
 &lt;img
 src="https://igonin.ru/posts/2020/07/building-a-zx-spectrum-clone-part-1/pg_hu_89204e03a29c1008.webp"
 srcset="https://igonin.ru/posts/2020/07/building-a-zx-spectrum-clone-part-1/pg_hu_2443cc74b67366b2.webp 720w, https://igonin.ru/posts/2020/07/building-a-zx-spectrum-clone-part-1/pg_hu_89204e03a29c1008.webp 768w"
 sizes="(min-width: 78rem) 68rem, calc(100vw - 2rem)"
 width="768"
 height="576"
 loading="lazy"
 decoding="async"
 alt="Siemens Simatic S5 PG 675"
 /&gt;
 &lt;/a&gt;
 
 &lt;/figure&gt;
&lt;p&gt;Видя мой интерес, папа где-то взял на время самодельный клон ZX–Spectrum. Он был в корпусе из текстолита с герконовыми клавишами. А в комплекте была затёртая книжка по «Sinclair BASIC». Первое что я сделал, набрал с книжки пример программы. И когда она заработала моему счастью не было предела. Позже родителями был приобретён «Ленинград–1».&lt;/p&gt;</description></item><item><title>Создание эффекта огня на ассемблере</title><link>https://igonin.ru/posts/2020/05/creating-the-effect-of-fire-in-assembler/</link><pubDate>Wed, 06 May 2020 12:43:44 +0400</pubDate><guid>https://igonin.ru/posts/2020/05/creating-the-effect-of-fire-in-assembler/</guid><description>&lt;p&gt;Как и обещал ранее, в этой заметке покажу как реализовать красивый эффект пламени на ассемблере под DOS в графическом режиме VGA.&lt;/p&gt;
&lt;p&gt;Эффект пламени впервые появился на заре демосцены. В те далёкие времена каждый уважающий себя программист отжигал направо и налево.&lt;/p&gt;
&lt;p&gt;Для повторения данного подвига нам потребуется:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;создать палитру с градиентом от чёрного через красный и жёлтый к белому;&lt;/li&gt;
&lt;li&gt;сгенерировать в самой нижней строке экрана точки со случайным цветом из этой палитры;&lt;/li&gt;
&lt;li&gt;обновлять цвет каждой точки экрана, пробегая по адресному пространству и вычисляя значение путём усреднения цветов смежных точек.&lt;/li&gt;
&lt;li&gt;повторить с пункта 2.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;В качестве каркаса программы я буду использовать код для отрисовки палитры из заметки &lt;a href="https://igonin.ru/posts/2020/04/using-vga-graphics-in-x86-assembly-language/"&gt;Использование VGA графики на ассемблере x86&lt;/a&gt;. Он ещё пригодится, чтобы проверить корректность полученных цветов.&lt;/p&gt;</description></item><item><title>Использование VGA графики на ассемблере x86</title><link>https://igonin.ru/posts/2020/04/using-vga-graphics-in-x86-assembly-language/</link><pubDate>Sat, 11 Apr 2020 17:16:05 +0400</pubDate><guid>https://igonin.ru/posts/2020/04/using-vga-graphics-in-x86-assembly-language/</guid><description>&lt;p&gt;В этой заметке я покажу, как инициализируется графический режим VGA с разрешением 320×200 точек с палитрой в 256 цветов и создам программу, отображающую эту палитру.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Предыдущая заметка: &lt;a href="https://igonin.ru/posts/2020/04/configuring-dosbox-on-ubuntu-for-x86-assembly-programming/"&gt;Настройка DOSBox в Ubuntu для программирования на ассемблере x86&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Сразу хочу отметить свой недочёт в предыдущей заметке про настройку DOSBox и flat assembler. Оказывается, в составе flat assembler есть прекрасный редактор &lt;code&gt;fasmd&lt;/code&gt; (точнее IDE), который больше подойдёт для работы, нежели редактор от Dos Navigator. Например, чтобы скомпилировать и запустить программу, достаточно нажать &lt;code&gt;F9&lt;/code&gt;. Также можно работать сразу с несколькими файлами. Подробная информация по редактору и его горячим клавишам доступна в файле &lt;code&gt;fasmd.txt&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Настройка DOSBox в Ubuntu для программирования на ассемблере x86</title><link>https://igonin.ru/posts/2020/04/configuring-dosbox-on-ubuntu-for-x86-assembly-programming/</link><pubDate>Thu, 09 Apr 2020 16:36:43 +0400</pubDate><guid>https://igonin.ru/posts/2020/04/configuring-dosbox-on-ubuntu-for-x86-assembly-programming/</guid><description>&lt;p&gt;Программирование на PC для меня началось с Turbo Pascal и Turbo Assembler от компании Borland. В то время мой компьютер на базе Intel 80386SX мог нормально работать только в MS-DOS. Накатила ностальгия, и я решил вспомнить основы x86 ассемблера. Для чистоты эксперимента буду использовать условия приближенные к боевым.&lt;/p&gt;
&lt;p&gt;Для начала нужна MS-DOS. Или её аналог. Можно использовать любую виртуальную машину, такую как QEMU или VirtualBox, а затем создать под неё образ системы. Но есть вариант лучше! Вот что говорит нам Википедия про DOSBox:&lt;/p&gt;</description></item><item><title>Сборка корпуса осциллографа DSO FNIRSI 138</title><link>https://igonin.ru/posts/2020/03/oscilloscope-dso-fnirsi-138-case-assembly/</link><pubDate>Mon, 23 Mar 2020 20:45:20 +0400</pubDate><guid>https://igonin.ru/posts/2020/03/oscilloscope-dso-fnirsi-138-case-assembly/</guid><description>&lt;p&gt;Наконец-то пришёл заказанный мной на AliExpress осциллограф DSO FNIRSI 138. В этой заметке я расскажу о этапах сборки его корпуса.&lt;/p&gt;
&lt;p&gt;Данный осциллограф продаётся в виде конструктора, и для него в продаже существует корпус. Тоже в виде конструктора.&lt;/p&gt;
&lt;figure class="media-wide media-wide--intrinsic" style="--media-width: 768px"&gt;
 &lt;a class="media-wide__link" href="https://igonin.ru/posts/2020/03/oscilloscope-dso-fnirsi-138-case-assembly/01.jpg"&gt;
 &lt;img
 src="https://igonin.ru/posts/2020/03/oscilloscope-dso-fnirsi-138-case-assembly/01_hu_caf9d0be3c13bde1.webp"
 srcset="https://igonin.ru/posts/2020/03/oscilloscope-dso-fnirsi-138-case-assembly/01_hu_e07de5942ab32a21.webp 720w, https://igonin.ru/posts/2020/03/oscilloscope-dso-fnirsi-138-case-assembly/01_hu_caf9d0be3c13bde1.webp 768w"
 sizes="(min-width: 78rem) 68rem, calc(100vw - 2rem)"
 width="768"
 height="576"
 loading="lazy"
 decoding="async"
 alt="DSO FNIRSI 138: Данный осциллограф продаётся в виде конструктора."
 /&gt;
 &lt;/a&gt;
 
 &lt;/figure&gt;
&lt;p&gt;А поскольку инструкции по сборке корпуса нет, то мы получаем в довесок ещё и пазл.&lt;/p&gt;</description></item><item><title>Интересные ссылки за январь 2020</title><link>https://igonin.ru/posts/2020/02/interesting-links-for-january-2020/</link><pubDate>Sun, 09 Feb 2020 15:30:12 +0400</pubDate><guid>https://igonin.ru/posts/2020/02/interesting-links-for-january-2020/</guid><description>&lt;p&gt;В этой подборке снова ссылки отражающие мои интересы в данный промежуток времени, это – электроника, ZX Spectrum и работа со звуком.&lt;/p&gt;
&lt;h2 id="электроника-и-самоделки"&gt;Электроника и самоделки&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://alexgyver.ru/"&gt;Сайт Алекса Гайвера&lt;/a&gt; – авторские статьи по тематикам Ардуино и электроники, подборки товаров на Aliexpress, в основном инструменты и электронные компоненты для самоделок и ремонта.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/channel/UCgtAOyEQdAyjvm9ATCi_Aig"&gt;YouTube–канал Алекса Гайвера&lt;/a&gt; – канал AlexGyver рассказывает о буднях инженера, который изобретает различные самодельные устройства из доступных материалов, хозтоваров и железок с AliExpress.&lt;/p&gt;</description></item><item><title>Улучшенный Git Log</title><link>https://igonin.ru/posts/2020/02/a-better-git-log/</link><pubDate>Wed, 05 Feb 2020 18:09:18 +0400</pubDate><guid>https://igonin.ru/posts/2020/02/a-better-git-log/</guid><description>&lt;p&gt;Обычный вывод команды &lt;code&gt;git log&lt;/code&gt; показался мне слишком скучным, раздутым и малоинформативным, и я нашёл способ сделать его лучше! Посмотрите какая прелесть получается.&lt;/p&gt;
&lt;p&gt;Добавляем в Git псевдоним &lt;code&gt;lg&lt;/code&gt; для форматированного вывода:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global alias.lg &lt;span style="color:#e6db74"&gt;&amp;#34;log --color --graph --pretty=format:&amp;#39;%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)&amp;lt;%an&amp;gt;%Creset&amp;#39; --abbrev-commit&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;и затем в нашем репозитории вводим:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git lg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Наслаждаемся результатом! Ниже видна разница: было – стало.&lt;/p&gt;
&lt;figure class="media-wide media-wide--natural" style="--media-width: 768px"&gt;
 &lt;a class="media-wide__link" href="https://igonin.ru/posts/2020/02/a-better-git-log/git-log.png"&gt;
 &lt;img
 src="https://igonin.ru/posts/2020/02/a-better-git-log/git-log.png"
 width="768"
 height="512"
 loading="lazy"
 decoding="async"
 alt="Наслаждаемся результатом!"
 /&gt;
 &lt;/a&gt;
 
 &lt;/figure&gt;</description></item><item><title>Как создать ярлык в Ubuntu</title><link>https://igonin.ru/posts/2020/01/how-to-create-a-desktop-shortcuts-on-ubuntu/</link><pubDate>Fri, 24 Jan 2020 22:52:01 +0400</pubDate><guid>https://igonin.ru/posts/2020/01/how-to-create-a-desktop-shortcuts-on-ubuntu/</guid><description>&lt;p&gt;Предположим, что у нас есть некая программа без ярлыка. Я имею в виду иконку, кликнув по которой мы запускаем эту самую программу. Создать её можно следующим образом.&lt;/p&gt;
&lt;p&gt;Ярлыки программ в Ubuntu представлены файлами с расширением &lt;code&gt;.desktop&lt;/code&gt;. Хранятся эти файлы в домашней папке пользователя по адресу &lt;code&gt;~/.local/share/applications&lt;/code&gt;, а созданные для всех пользователей будут находиться по адресу &lt;code&gt;/usr/share/applications&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Собственно способ заключается в том, чтобы создать такой файл и заполнить его необходимыми ключами. Покажу на примере Blender, который у меня уже установлен в папке &lt;code&gt;/opt/blender-2.83-11df5443e5d0-linux-glibc217-x86_64&lt;/code&gt;.&lt;/p&gt;</description></item></channel></rss>