Эрик Власкин
/
Recent content on Эрик ВласкинЭрик Власкин/solid_black.png
/solid_black.png
Hugo -- 0.156.0ru2023年3月28日 22:30:00 +0000java.lang.UnsatisfiedLinkError в Java: причины и исправление
/java.lang.unsatisfiedlinkerror-%D0%B2-java-%D0%BF%D1%80%D0%B8%D1%87%D0%B8%D0%BD%D1%8B-%D0%B8-%D0%B8%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5/
2023年3月28日 22:30:00 +0000/java.lang.unsatisfiedlinkerror-%D0%B2-java-%D0%BF%D1%80%D0%B8%D1%87%D0%B8%D0%BD%D1%8B-%D0%B8-%D0%B8%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5/<p>Ошибка <em><strong>java.lang.UnsatisfiedLinkError</strong></em> - это одна из распространённых ошибок, которые могут возникнуть при разработке и запуске Java-приложений. Эта ошибка связана с невозможностью загрузить нативную библиотеку в Java-программу. В этой статье мы рассмотрим, что такое нативные библиотеки, причины возникновения ошибки <em><strong>UnsatisfiedLinkError</strong></em> и как её можно исправить.</p>
<h2 id="что-такое-нативные-библиотеки">Что такое нативные библиотеки?</h2>
<p>Нативные библиотеки — это программные компоненты, написанные на языке, отличном от Java, и предназначенные для использования в Java-приложениях. Эти библиотеки обычно используются для работы с операционной системой, аппаратным обеспечением или другими системными ресурсами, которые не могут быть доступны внутри Java-виртуальной машины.</p>IDO: инструмент привлечения финансирования для блокчейн-проектов
/ido-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82-%D0%BF%D1%80%D0%B8%D0%B2%D0%BB%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-%D1%84%D0%B8%D0%BD%D0%B0%D0%BD%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D0%B4%D0%BB%D1%8F-%D0%B1%D0%BB%D0%BE%D0%BA%D1%87%D0%B5%D0%B9%D0%BD-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D0%B2/
2023年3月27日 21:30:00 +0000/ido-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82-%D0%BF%D1%80%D0%B8%D0%B2%D0%BB%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-%D1%84%D0%B8%D0%BD%D0%B0%D0%BD%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D0%B4%D0%BB%D1%8F-%D0%B1%D0%BB%D0%BE%D0%BA%D1%87%D0%B5%D0%B9%D0%BD-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D0%B2/<p>Блокчейн-технологии и криптовалюты предоставили новые возможности для создания и развития новых проектов, но одним из главных вызовов, с которыми сталкиваются стартапы в этой области, является привлечение финансирования. <em><strong>IDO (Initial DEX Offering)</strong></em> - это новый метод продажи токенов, который помогает проектам привлекать финансирование от широкой аудитории инвесторов, несмотря на отсутствие обширной сети связей и доступа к крупным инвесторам.</p>
<p>В отличие от <em><strong>ICO (Initial Coin Offering)</strong></em>, где проекты продавали свои токены напрямую инвесторам, <em><strong>IDO</strong></em> представляет собой продажу токенов на <em>децентрализованной бирже (DEX)</em>, что делает этот процесс более прозрачным и безопасным для всех участников.</p>Установка VPN-сервера Pritunl в Oracle Linux 7.9
/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-vpn-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0-pritunl-%D0%B2-oracle-linux-7.9/
2021年12月18日 23:30:21 +0000/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-vpn-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0-pritunl-%D0%B2-oracle-linux-7.9/<p>Добавление репозитория MongoDB:</p>
<div class="highlight"><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;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo tee /etc/yum.repos.d/mongodb-org-4.4.repo <span style="color:#e6db74"><< EOF
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">[mongodb-org-4.4]
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">name=MongoDB Repository
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.4/x86_64/
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">gpgcheck=1
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">enabled=1
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">EOF</span>
</span></span></code></pre></div><p>Добавление репозитория Pritunl:</p>
<div class="highlight"><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;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo tee /etc/yum.repos.d/pritunl.repo <span style="color:#e6db74"><< EOF
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">[pritunl]
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">name=Pritunl Repository
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">baseurl=https://repo.pritunl.com/stable/yum/oraclelinux/7/
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">gpgcheck=1
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">enabled=1
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">EOF</span>
</span></span></code></pre></div><p>Отключаем <code>iptables-services</code> и <code>firewalld</code>, чтобы не возникло конфликтов с правилами маршрутизации Pritunl:</p>
<div class="highlight"><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;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo yum -y remove iptables-services
</span></span><span style="display:flex;"><span>sudo systemctl stop firewalld.service
</span></span><span style="display:flex;"><span>sudo systemctl disable firewalld.service
</span></span></code></pre></div><p>Установка и активация Pritunl и MongoDB:</p>
<div class="highlight"><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;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo yum -y install oracle-epel-release-el7
</span></span><span style="display:flex;"><span>sudo yum-config-manager --enable ol7_developer_epel
</span></span><span style="display:flex;"><span>sudo yum -y update
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A
</span></span><span style="display:flex;"><span>gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A > key.tmp; sudo rpm --import key.tmp; rm -f key.tmp
</span></span><span style="display:flex;"><span>sudo yum -y install pritunl mongodb-org
</span></span><span style="display:flex;"><span>sudo systemctl enable mongod pritunl
</span></span><span style="display:flex;"><span>sudo systemctl start mongod pritunl
</span></span></code></pre></div><p>Заменяем пакет <code>openvpn</code> из EPEL репозитория на <code>pritunl-openvpn</code> из репозитория Pritunl:</p>Памятка по GnuPG
/%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%BA%D0%B0-%D0%BF%D0%BE-gnupg/
2021年11月21日 23:37:04 +0000/%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%BA%D0%B0-%D0%BF%D0%BE-gnupg/<p>Генерация ключей шифрования:</p>
<pre tabindex="0"><code>gpg --full-gen-key
</code></pre><p>Просмотр публичных ключей:</p>
<pre tabindex="0"><code>gpg -k
</code></pre><p>Просмотр приватных ключей:</p>
<pre tabindex="0"><code>gpg -K
</code></pre><p>Шифрование:</p>
<pre tabindex="0"><code>gpg -e -a -r $KEYCHAIN file
</code></pre><p>Расшифровка:</p>
<pre tabindex="0"><code>gpg -d -o file file.asc
</code></pre><p>Экспорт публичных ключей:</p>
<pre tabindex="0"><code>gpg --export -a $KEYCHAIN > pub.gpg.asc
</code></pre><p>Экспорт приватных ключей:</p>
<pre tabindex="0"><code>gpg --export-secret-key -a $KEYCHAIN > sec.gpg.asc
</code></pre><p>Удаление приватных ключей:</p>
<pre tabindex="0"><code>gpg --delete-secret-keys $KEYCHAIN
</code></pre><p>Удаление публичных ключей:</p>
<pre tabindex="0"><code>gpg --delete-keys $KEYCHAIN
</code></pre><p>Импорт ключей:</p>
<pre tabindex="0"><code>gpg --import pub.gpg.asc
</code></pre><pre tabindex="0"><code>gpg --import sec.gpg.asc
</code></pre><ul>
<li><strong>$KEYCHAIN</strong> - связка ключей, в простейшем случае - электронная почта, указанная при генерации ключей</li>
</ul>Установка Ubuntu [Краткое руководство]
/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-ubuntu-%D0%BA%D1%80%D0%B0%D1%82%D0%BA%D0%BE%D0%B5-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE/
2021年8月12日 22:14:54 +0000/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-ubuntu-%D0%BA%D1%80%D0%B0%D1%82%D0%BA%D0%BE%D0%B5-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE/<p>При загрузке из Live CD образа ОС выбрать язык и нажать “Попробовать Ubuntu”.</p>
<h2 id="разметка-жёсткого-диска">Разметка жёсткого диска</h2>
<p>Рекомендации:</p>
<ul>
<li>Для разметки рекомендую использовать GParted (он честно считает объём дискового пространства, в отличие от утилиты разметки, предлагаемой во время установки Ubuntu).</li>
<li>На SSD рекомендую оставлять 10% неразмеченного дискового пространства.</li>
<li>В случае EFI рекомендую выделять от 128МБ на раздел EFI.</li>
<li>Под раздел подкачки рекомендую выделять дисковое пространство равное объёму оперативной памяти. Если оперативы много (от 32ГБ), то можно выделить меньше дискового пространства на своё усмотрение.</li>
</ul>
<p>Последовательность шагов:</p>Добавление точки монтирования в fstab
/%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%82%D0%BE%D1%87%D0%BA%D0%B8-%D0%BC%D0%BE%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D0%B2-fstab/
2021年7月08日 00:00:00 +0300/%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%82%D0%BE%D1%87%D0%BA%D0%B8-%D0%BC%D0%BE%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D0%B2-fstab/<p>Узнаём <em><strong>UUID</strong></em> монтируемого раздела диска:</p>
<pre tabindex="0"><code>sudo blkid
</code></pre><p>Создаём директорию монтирования (пример):</p>
<pre tabindex="0"><code>sudo mkdir /mnt/backup
</code></pre><p>Открываем файл <em><strong>/etc/fstab</strong></em> в текстовом редакторе и добавляем строку (пример):</p>
<pre tabindex="0"><code>UUID=40ef6e19-5ebe-43c9-a3fa-7330d2b6be28 /mnt/backup ext4 defaults 0 2
</code></pre><p><strong>Важно:</strong> Не забываем поменять <em>UUID</em>, <em>директорию монтирования</em> и <em>тип файловой системы</em> на свои.</p>
<p>Подробнее про каждое значение, прописанное в данной строке, можно прочитать на
<a href="https://wiki.archlinux.org/title/Fstab_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29"><em>Arch Wiki</em></a>.</p>
<p><strong>Источник:</strong> <a href="https://wiki.archlinux.org/title/Fstab_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29"><em>fstab</em> на <em>Arch Wiki</em></a></p>Показатель рентабельности инвестированного капитала
/%D0%BF%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C-%D1%80%D0%B5%D0%BD%D1%82%D0%B0%D0%B1%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%B8%D0%BD%D0%B2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE-%D0%BA%D0%B0%D0%BF%D0%B8%D1%82%D0%B0%D0%BB%D0%B0/
2021年6月26日 00:00:00 +0300/%D0%BF%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C-%D1%80%D0%B5%D0%BD%D1%82%D0%B0%D0%B1%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%B8%D0%BD%D0%B2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE-%D0%BA%D0%B0%D0%BF%D0%B8%D1%82%D0%B0%D0%BB%D0%B0/<p>В этот раз хочется затронуть тему инвестиций, а если быть точнее тему мультипликаторов.</p>
<p>На мой взгляд, одним из самых удобных мультипликаторов для подбора привлекательных акций является <em>ROIC (Return on Invested Capital)</em>,
он же <em>ROC (Return on Capital)</em>, он же <em>показатель рентабельности инвестированного капитала</em>. Значение данного мультипликатора
выражается в процентах и показывает то, какую прибыль принесёт каждая вложенная условная единица капитала. По нему можно
объективно оценить насколько эффективно интересующая компания обращается с вложенными деньгами своих акционеров и держателей
долга для получения прибыли.</p>Удаление пункта Ubuntu из UEFI (остатки ubuntu/grub)
/%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D1%83%D0%BD%D0%BA%D1%82%D0%B0-ubuntu-%D0%B8%D0%B7-uefi/
2020年11月28日 15:31:18 +0300/%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D1%83%D0%BD%D0%BA%D1%82%D0%B0-ubuntu-%D0%B8%D0%B7-uefi/<p>Запись <em>Ubuntu</em> из <em>UEFI</em> можно удалить тремя способами:</p>
<ol>
<li>Через <em>BIOS</em>, с помощью опции <em>Delete Boot Option</em>;</li>
<li>С помощью <code>efibootmngr</code> (в Live CD Ubuntu);</li>
<li>С помощью <a href="https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/bcdedit"><code>bcdedit</code></a> (в <em>Windows</em>).</li>
</ol>
<p>Но после перезагрузки компьютера, пункт Ubuntu снова появляется в списке доступных вариантов загрузки!</p>
<p>Чтобы этого не произошло, необходимо удалить с системного раздела <em>EFI</em> папку <em>ubuntu</em>.</p>
<p>Сделать это можно с помощью следующих действий:</p>
<ol>
<li>Загружаемся в <em>Windows</em> и запускаем командную строку от имени администратора;</li>
<li>Запускаем <a href="https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/bcdedit"><em>DiskPart</em></a> (команда <code>diskpart</code>);</li>
<li>Просматриваем список доступных дисков (команда <code>list disk</code>);</li>
<li>Выбираем диск, на котором находится раздел <em>EFI</em> (команда <code>select disk #</code>);</li>
<li>Просматриваем разделы жёсткого диска (команда <code>list volume</code>);</li>
<li>Выбираем раздел с <em>EFI</em> (команда <code>select volume ##</code>);</li>
<li>Присваиваем этому разделу букву (команда <code>assign</code>) и выходим из <a href="https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/bcdedit"><em>DiskPart</em></a> (команда <code>exit</code>);</li>
<li>Переходим на новый диск, которому была присвоена буква, и просматриваем доступные директории (команда <code>dir</code>);</li>
<li>Переходим в директорию <em>boot</em> и удаляем в ней директорию <em>ubuntu</em> (команда <code>rmdir ubuntu</code>). Далее переходим на диск «C» и снова запускаем <a href="https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/bcdedit"><em>DiskPart</em></a>;</li>
<li>Выбираем раздел с <em>EFI</em>, вышеописанным способом (пункты 3-6), и отсоединяем его (команда <code>remove</code>). После выходим и перезагружаем компьютер.</li>
</ol>
<p><strong>Источник:</strong> <a href="https://forum.ubuntu.ru/index.php?topic=239344.0">Форум русскоязычного сообщества Ubuntu</a></p>