<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
	<atom:link href="https://strahinja.org/blog/rss.xml"
		rel="self" type="application/rss+xml" />
	<link>https://strahinja.org/blog/</link>
	<title>Новости //strahinja.org</title>
	<description>Новости са личне странице Страхиње Радића</description>
	<category>Blog</category>
	<category>Personal website</category>
	<category>Programming</category>
	<language>sr-rs</language>
	<copyright>© 1999-2025 Страхиња Радић (Strahinya Radich)</copyright>
	<item>
		<title>Преводилац (ни)је производ</title>
		<link>https://strahinja.org/blog/2025-11/20251118/</link>
		<guid>https://strahinja.org/blog/2025-11/20251118/</guid>
		<pubDate>Tue, 18 Nov 2025 19:01:23 +0100</pubDate>
		<description><![CDATA[
<p>
Јуче сам завршио ажурирање превода <em>Midnight Commander</em>&#8209;а на српски, и, као
што сам <a href="/blog/2022-01/20220112">поменуо</a> пре нешто мање од четири године, наслућивао сам да тај
поступак неће ићи тако глатко. Кратко подсећање: за разлику од 2003. године,
када сам превео (тада<a href="#inline-footnote-1" id="inline-footnote-text-1"><sup>1</sup></a> <em>GNU</em>) <em>Midnight
Commander</em> на српски, сада се уместо стандардног начина локализације слободног
софтвера користи <em>Transifex</em>.  (Стандардно, локализација се обавља тако што се
<em>PO</em> датотеке уређују у уређивачу текста, или специјализованом уређивачу као што
је <em>poedit</em> или мој <a href="https://strahinja.srht.site/poe"><em>poe</em></a>, а затим шаљу <em>git send-email</em>&#8209;ом, или као
нека врста <em>pull/merge request</em>&#8209;а.) На срећу, уз нешто гунђања, најзад је моје
освежење превода поставио један од актуелних програмера, уз опаску да је то
„последњи пут“.

<p>Морам да признам да је моја оцена <em>Transifex</em>&#8209;а из 2022. делимично погрешна,
чему је кумовала конфузна <a href="https://web.archive.org/web/20220113215824/https://midnight-commander.org/">почетна страница <em>MC</em>&#8209;а</a>, на којој није
било инструкција за регистрацију <a href="https://midnight-commander.org/translations/">као сада</a>. Том <abbr title="Software
as a Service"><em>SaaS</em></abbr>&#8209;у, иначе Федорином чеду, је заиста примарни тип
налога онај који се плаћа на месечном нивоу, али су били толико „великодушни“ да
предвиде и <a href="https://help.transifex.com/en/articles/6236788-open-source-projects">„<em>Open Source</em> налоге“</a>, који се не плаћају... бар не
новцем. На страници <a href="https://www.transifex.com/legal/privacy/"><em>Privacy</em></a> се описује које све податке <em>Transifex</em>
прикупља о кориснику. Поред података које постави корисник, такође се аутоматски
прикупљају и детаљни подаци о типу уређаја, оперативног система, па чак и
јединствени идентификациони бројеви уређаја и подаци о апликацијама. Такође се
описује са ким се све ти подаци деле: између осталог, и са трећим странама, у
које спадају и „партнери за оглашавање“, којима су роба — корисници. И све то
само да би се слободни софтверски пројекат превео на неенглески језик! Зашто
једноставно <code></code><code> vim po/sr.po </code><code></code> кад може компликовано?

<p>Веома је интересантан податак да је пројекат Федора, под окриљем ког је настао
<em>Transifex</em>, у марту 2015. <a href="https://fedoraproject.org/wiki/L10N_Move_To_Zanata">прешао на сервис <em>Zanata</em></a>, зато што је
<em>Transifex</em> <a href="https://github.com/transifex/transifex/issues/206#issuecomment-15243207">постао власнички</a> 2013. године. И тако је пројекат
локализације слободног софтверског пројекта <em>Midnight Commander</em> заробљен у
власничком <em>SaaS</em> пројекту који продаје личне податке преводилаца трећим
странама и оглашивачима. Зашто <em>Midnight Commander</em> није следио пример Федоре?
Тешко је рећи, али је вероватно у питању инерција, и чињеница да је дистрибуција
Федора ипак пројекат који окупља далеко више људи. Неко је имао времена да
преиспита алате који се користе за локализацију.

<a href="https://zanata.org/privacy/">Услови коришћења</a> сервиса <em>Zanata</em> у вези са приватношћу тренутно
(2025-11-18) делују за нијансу боље од <em>Transifex</em>&#8209;а, зато што према наведеном
не укључују детаљну идентификацију уређаја који приступа сервису, и не укључују
агенције за оглашавање међу „трећим странама“.

<p>Без обзира на стање главног репозиторијума <em>Midnight Commander</em>&#8209;а, мој превод
тог програма ће увек моћи да се нађе на овом сајту и репозиторијуму
<a href="https://git.sr.ht/~strahinja/translations"><em>translations</em></a>.


<hr>
<p id="inline-footnote-1"><a href="#inline-footnote-text-1">1.</a> Речено ми је да тај пројекат „већ 20 година“ нема никакве
везе са Пројектом ГНУ! Само да није „мање незгоде“: носилац ауторских права је и
даље <em>Free Software Foundation</em>. Закон о ауторским правима не познаје „удаљавање
од <em>FSF</em>/Сталмана/итд“. 😊 Ал' добро, нека им буде...]]></description>
	</item>
	<item>
		<title>Поступни sysupgrade(8)</title>
		<link>https://strahinja.org/blog/2025-10/20251024/</link>
		<guid>https://strahinja.org/blog/2025-10/20251024/</guid>
		<pubDate>Fri, 24 Oct 2025 07:32:36 +0200</pubDate>
		<description><![CDATA[
<p>
Иако је поступак надоградње <em>OpenBSD</em>&#8209;а веома сведен и аутоматизован, ћудљиви
хардвер вам може покварити дан. Пошто је за кориснике <em>OpenBSD</em>&#8209;а, у које
спадам, тренутно актуелна <a href="https://www.openbsd.org/78.html">надоградња на верзију 7.8</a>, овде у кратким
цртама излажем своја запажања у вези са овим поступком на конкретном моделу
<em>V15&#8209;ADA Lenovo</em> лаптопа који поседујем. Она могу бити од користи за све који
употребљавају <em>OpenBSD</em> на том моделу лаптопа, или који се срећу са сличним
симптомима.

<h2 id="heading-1">Забелешке</h2>

<ul><li><p>Користим <em>mksh,</em> компајлиран и инсталиран директно из изворног кода (не из
портова) као подразумевану љуску и за обичног корисника и за <em>root</em>&#8209;а. То
утиче само на кораке&nbsp;2 и 6 у наставку.
</li>
<li><p><em>Lenovo V15&#8209;ADA</em> има баговити уграђени <em>WiFi</em> адаптер, <em>Atheros QCA6174</em>, за
који је мало вероватно да ће икад бити написани пристојни драјвери за
<em>OpenBSD</em>. Приморан сам да користим <em>USB WiFi</em> адаптер <em>Realtek&nbsp;802.11</em> са
подржаним чипсетом. Обично под <em>OpenBSD</em>&#8209;ом (изузев после ребутовања након
sysupgrade(8)&#8209;а), када је <em>USB WiFi</em> адаптер прикључен, нема конфликта са
уграђеним <em>WiFi</em> адаптером, вероватно зато што не постоји драјвер (па ни
уређај у оквиру ОС&#8209;а) за уграђени адаптер. Понекад се систем потпуно закочи
ако су оба уређаја прикључена, рецимо под старијим нивоима ажурирања
<em>Windows</em>&#8209;а&nbsp;10.
<p>Стање уграђеног <em>WiFi</em> адаптера после ребутовања у <em>OpenBSD</em> окружење за
надоградњу испољава исте симптоме, што води до неупотребљивог система (због
неуспешног процеса надоградње). Процес бутовања стаје код поруке:
<pre>
softraid0 at root
scsibus1 at softraid0: 256 targets
</pre>
</li>
<li><p>Кроз тестирање, уочио сам да је једини начин да се избегне ово кочење система
ребутовање у систем који има подршку за уграђени <em>WiFi</em> адаптер (рецимо било
који модернији <em>LiveUSB</em> ГНУ&#8209;а са Линуксом) уз претходно уклањање <em>USB WiFi</em>
адаптера, што изгледа да коректно иницијализује уграђени <em>WiFi</em> адаптер у
оперативно стање, и затим ребутовање назад у <em>OpenBSD</em>, настављајући
инсталацију, после чега треба поново прикључити <em>USB WiFi</em> адаптер.

</li></ul>
<h2 id="heading-2">Детаљна упутства</h2>

<ol>
<li><p> <strong>НЕ ПОКРЕТАТИ</strong> <code>sysupgrade</code>! Ово ће заглавити систем после ребутовања.
Уместо овога, покренути <code>sysupgrade -n</code>.

</li>
<li><p> Као <em>root:</em>

<pre>
# ln -f /bin/ksh /bin/sh	# за сваки случај
# chsh				# па подесити root-ов shell на било шта осим
				# mksh-а, нпр. /bin/ksh.
</pre>

</li>
<li><p> Ребутовати у ГНУ са Линуксом на <em>LiveUSB</em>&#8209;у, али током ребутовања уклонити
<em>USB WiFi</em> адаптер после поруке да је одговарајући интерфејс оборен, пре него
што се лаптоп заиста ребутује.

</li>
<li><p> Ребутовати назад у <em>OpenBSD</em>.

</li>
<li><p> Пошто се заврши процес надоградње, након следећег аутоматског ребутовања,
поново прикључити <em>USB WiFi</em> и покренути:

<pre>
# sh /etc/netstart
# fw_update
# pkg_add -u
</pre>

</li>
<li><p> Поново компајлирати <em>mksh/lksh</em>, инсталирати, променити <em>root</em>&#8209;ову љуску на
<em>mksh</em>.

</li></ol>]]></description>
	</item>
	<item>
		<title>Нова адреса</title>
		<link>https://strahinja.org/blog/2024-07/20240709/</link>
		<guid>https://strahinja.org/blog/2024-07/20240709/</guid>
		<pubDate>Tue, 9 Jul 2024 08:49:47 +0200</pubDate>
		<description><![CDATA[
<p>
Јуче сам креирао нови налог за електронску пошту на свом хостованом мејл
серверу, и започео процес миграције свега што је повезано са старом адресом
<code>contact@</code> на нову, <code>sr@</code>.

<p>О новој адреси сам размишљао већ неко време, из неколико разлога. Адреса
<code>contact@</code> је, ако се добро сећам, већ била подешена у <em>cPanel</em>&#8209;у када сам
прешао на постојећи хостинг, па сам по инерцији, уместо да креирам нову, само
наставио да користим ту адресу. Међутим, добијао сам чудне погледе када је било
потребно да је усмено издиктирам. Оно што ме је коначно одлучило да променим
адресу <code>contact@</code> је преглед чувања („<em>commits</em>“) у <a href="https://gameoftrees.org/tog.1.html"><strong>tog</strong>(1)</a>&#8209;у. Свако
чување је представљено једним редом у оваквом формату:
<pre>
2024-06-30 212c1fe5 contact  [tags/v0.16] Update themes
</pre>
<p>Овде <code>contact</code> заиста делује прилично чудно, и не преноси информацију о аутору.
Разматрајући неколико варијанти нове адресе, одлучио сам се за <code>sr@</code>.

<p>Пошто сам стару адресу користио за <em>git</em>, <em>got</em> и мејлинг листе, један од првих
корака био је да креирам нове <em>GPG</em> и <em>SSH</em> кључеве за потписивање чувања у
<em>git</em>&#8209;у и ознака („<em>tags</em>“) у <em>got</em>&#8209;у. Затим сам пребацио све филтере за
мејлинг листе (ручно, зато што <em>cPanel</em>, бар за сада, не подржава извоз и увоз
филтера) на нов налог, одјавио налог <code>contact@</code> са листа и пријавио нов налог
<code>sr@</code>.

<p>Најзад, креирао сам и нов <strong>signify</strong>(1) кључ, услед чега сам морао да поново
генеришем потписе за све архиве на страници <a href="/programi/"><em>/programi/</em></a>.

<p>Ово је, наравно, само почетак овог процеса. У наредном периоду наставићу да
свуда где је то потребно мењам своју стару адресу на нову.]]></description>
	</item>
	<item>
		<title>stagit и got</title>
		<link>https://strahinja.org/blog/2024-05/20240529/</link>
		<guid>https://strahinja.org/blog/2024-05/20240529/</guid>
		<pubDate>Wed, 29 May 2024 14:56:50 +0200</pubDate>
		<description><![CDATA[
<p>
Већ извесно време на овом сајту сам поставио <a href="/stagit">приказ репозиторијума</a>
неких мојих програма у виду статичких <em>HTML</em> датотека генерисаних програмом
<em>stagit</em>. Међутим, он не функционише у директоријумима „радних стабала“
добијених наредбом <code>got checkout</code>. Дакле, не може се просто покренути <em>stagit</em>
у директоријуму са којим се директно ради у <em>got</em>&#8209;у.

<p>Прва помисао ми је била да би ваљало направити „<em>stagot</em>“ (што и даље не треба
одбацивати), међутим, срећна околност је што <em>got</em> ради са <em>git</em>
репозиторијумима. Директоријум репозиторијума, који се добија наредбом <code>got
clone</code>, представља „огољени“ (<em>bare</em>) <em>git</em> репозиторијум. Простим копирањем
датотека <em>description</em>, <em>owner</em> и <em>url</em> у тај директоријум и усмеравањем
<em>stagit</em>&#8209;а на њега добија се исти резултат као и раније:
<pre>
(cd ~/src/gotdir
 repodir=&quot;$(got info | awk '/repository:/{print $2}')&quot;
 cd ~/src/www/stagit
 stagit -l 100 &quot;$repodir&quot;)
</pre>

<p>Разлог због кога би ипак требало размислити о замишљеном програму <em>stagot</em> је
зависност од <em>git</em>&#8209;а. Ово је тек приручно решење, а идеално <em>git</em> не би ни
требало да буде инсталиран.]]></description>
	</item>
	<item>
		<title>Игра стабала</title>
		<link>https://strahinja.org/blog/2024-05/20240518/</link>
		<guid>https://strahinja.org/blog/2024-05/20240518/</guid>
		<pubDate>Sat, 18 May 2024 09:54:10 +0200</pubDate>
		<description><![CDATA[
<p>
Недавно је на мејлинг листи <a href="https://marc.info/?l=openbsd-misc&m=171513465810861&w=2"><em>misc@</em></a> <em>OpenBSD</em>&#8209;а у теми о омиљеним
програмима за репликацију система поменут <a href="https://gameoftrees.org"><em>got — Game Of Trees</em></a> („игра
стабала“), што ме је заинтересовало за овај систем за контролу верзија. За
њега сам чуо и раније, али сам сада одлучио да га боље проучим и започнем процес
преласка са <em>git</em>&#8209;а na <em>got</em>.

<p>На питање „Чему све ово? Зашто просто не користити <em>Git</em>?“ у
<a href="https://gameoftrees.org/faq.html#pointless">„често постављаним питањима“</a> <em>got</em>&#8209;а, тренутно је дат, по мом
мишљењу, непотребно одвраћајући одговор:
<blockquote> We don't need to hear your opinion that our project is pointless because Git
 is superior. Thank you!</blockquote>
<p>тј.
<blockquote> Не треба нам ваше мишљење да је наш пројекат бесмислен зато што је <em>Git</em> бољи,
 хвала!</blockquote>
<p>Овакав одговор маши поенту. Неко ко не познаје <em>got</em> и заиста је заинтересован
за разлог његовог постојања, без намере да га омаловажава, остаје ускраћен за
одговор. Такође је, слично <a href="https://geminiprotocol.net/docs/faq.gmi#113-do-you-really-think-you-can-replace-the-web-with-this">пројекту Џемини</a>, употребљена (по
мени неискрена, и то непотребно) ограда да <em>got</em>
<a href="https://gameoftrees.org/faq.html#replacegit">„нема намеру да замени <em>git</em>“</a>, и да је „било ко ко намерава да
протури идеју замене <em>git</em>&#8209;а <em>got</em>&#8209;ом у великој заблуди“. Како да не! И
<strong>зашто да не?</strong>

<p>Коришћењем <em>got</em>&#8209;а постају јасне његове предности и оправданост његовог
постојања. <em>Got</em> се према <em>git</em>&#8209;у односи отприлике као <em>OpenBSD</em> према било ком
мејнстрим систему ГНУ&#8209;а са Линуксом: фокусирање на оно што је битно, без
непотребних могућности које се ретко користе или се могу урадити на други начин,
већ постојећим програмима, а које уз то само стварају додатне мете за пробијање
безбедности. <em>Got</em> је, у ствари, <em>git</em> који поштује основне вредности
<em>OpenBSD</em>&#8209;а. Уз све то, <em>got</em> користи исти формат репозиторијума као и <em>git</em>,
само што је сваки репозиторијум у њему „го“ („<em>bare</em>“), и радно стабло (<em>work
tree</em>) се мора експлицитно направити из репозиторијума. Директоријум радног
стабла се не сме преклапати са директоријумом репозиторијума, а <em>got</em> користи
уграђене механизме <em>OpenBSD</em>&#8209;а, као што је <a href="https://man.openbsd.org/unveil.2"><code>unveil</code>(2)</a>, да ограничи
свој приступ и радном стаблу и репозиторијуму само на минимум неопходан за
функционисање.

<p>За сада једини ресурс за учење <em>got</em>&#8209;а су његове <a href="https://gameoftrees.org/manual.html">странице упутства</a> и
<a href="https://gameoftrees.org/comparison.html">упоредни преглед</a> <em>got</em>&#8209;а и осталих постојећих система за контролу
верзија, као што су <em>CVS</em>, <em>SVN</em> и <em>git</em>. Учећи <em>got</em> из ових докумената, мој
први пројекат који сам пребацио на <em>got</em> је <a href="https://strahinja.srht.site/table/">програм <em>table</em></a>, а између
осталог, <em>got</em> омогућава далеко елегантније генерисање верзије и датума
последњег чувања. Рецимо:
<pre>
got log |
awk '
/^date: / {
	gsub(/^date: /,&quot;&quot;,$0);
	print $2 &quot; &quot; $3 &quot;, &quot; $5
	exit
}' >date.new
</pre>
<p>наспрам:
<pre>
LC_ALL=C
export LC_ALL
user=$(unalias ls >/dev/null 2>&amp;1 || true; \
	command ls -ld . | awk '{print $3}')
e_user=$(id -un)
if [ &quot;$e_user&quot; = &quot;$user&quot; ]; then
	git log --format=format:%cd \
		--date=format:&quot;%B %d, %Y&quot; -1 @ >date.new
else
	su &quot;${user}&quot; -c 'env LC_ALL=C git log --format=format:%cd \
		--date=format:&quot;%B %d, %Y&quot; -1 @' >date.new
fi
echo >>date.new
</pre>
<p>Комплекснији код је последица тога што <em>git</em>, за разлику од <em>got</em>&#8209;а, не
дозвољава кориснику <em>root</em> да извршава наредбе у корисничком репозиторијуму без
подешавања <code>safe.directory</code> у <em>/root/.gitconfig</em>.]]></description>
	</item>
	<item>
		<title>Слободно и „слободно“</title>
		<link>https://strahinja.org/blog/2024-04/20240429/</link>
		<guid>https://strahinja.org/blog/2024-04/20240429/</guid>
		<pubDate>Mon, 29 Apr 2024 20:16:13 +0200</pubDate>
		<description><![CDATA[
<p>
Мој лични лајтмотив почетка ове године је прелазак са ГНУ&#8209;а са Линуксом на
<em>OpenBSD</em>. Са тим у вези, поставља се питање мог става према основним лиценцама
ова два оперативна система — ГНУ&#8209;овој ОЈЛ и <em>ISC</em>&nbsp;лиценци.

<p>У данашње време, када се покрене тема лиценци и помене ГНУ&#8209;ова општа јавна
лиценца — ГНУ&#8209;ова ОЈЛ (енгл. <a href="https://www.gnu.org/licenses/gpl-3.0.html"><em>GNU General Public License — GNU GPL</em></a>),
према мом искуству, нажалост, у великом броју случајева, постало је модерно да
се омаловажава тај избор, па чак, сасвим у духу времена, и онај ко се дрзнуо да
уопште помене ту лиценцу. Обично се као „аргумент“ истиче како је ГНУ&#8209;ова ОЈЛ
„идеолошка“, „политичка“ и „догматска“ лиценца, а како су „мање рестриктивне“
лиценце „слободније“ од ГНУ&#8209;ове ОЈЛ.

<p>Као „аргумент“ у прилог овој тези, наводе се рестрикције које ГНУ&#8209;ова ОЈЛ
поставља, пре свега у погледу подлиценцирања (<em>sublicense</em>): (превод СР)

<p>(§2.c:)
<blockquote> Испоручивање под било каквим другим околностима је дозвољено искључиво под
 условима који су назначени доле. Подлиценцирање није дозвољено. Члан 10 га
 чини непотребним.</blockquote>

<p>(§10:)
<blockquote> Сваки пут када испоручите обухваћено дело, прималац аутоматски прима лиценцу
 за покретање, мењање и ширење тог дела према овој лиценци од првобитних
 давалаца лиценце. Од вас се не тражи наметање поштовања ове лиценце трећим
 странама. <span class="r">[...]</span></blockquote>

<p>Ово ефективно значи, да уколико програм користи делове који су објављени под
мање рестриктивним лиценцама, њихова лиценца ће, као део веће целине тог
програма, аутоматски бити преиначена на ГНУ&#8209;ову ОЈЛ. Рецимо, <em>ISC</em>
(<a href="https://www.isc.org/"><em>Internet Systems Consortium</em></a>) <a href="https://www.isc.org/licenses/">лиценца</a>,
<a href="https://cvsweb.openbsd.org/src/share/misc/license.template?rev=HEAD">преферирана под <em>OpenBSD</em>&#8209;ом</a>, гласи (превод СР):

<blockquote> Ауторска права &lt;ГОДИНА> &lt;ВЛАСНИК><br>
 <br>
 Овим се допушта коришћење, измена, и/или<a href="#footnote-1" id="footnote-text-1"><sup>1</sup></a> расподела овог софтвера у било
 коју сврху, са или без надокнаде, уз услов да су очувани горње обавештење о
 ауторским правима и ово обавештење о дозволама.
 <span class="r">[...]</span></blockquote>

<p>Простим очувањем ових обавештења услови мање рестриктивне лиценце су
испоштовани. Уз додатак, рецимо оваквог обавештења (наравно на енглеском):

<blockquote> Ова датотека је заснована на &lt;МАЊИ_ДЕО>, (c) &lt;ГОДИНА> &lt;ВЛАСНИК>.
 Овај програм је лиценциран под одредбама ГНУ-ове ОЈЛ
 <span class="r">[...]</span></blockquote>

<p>програм као <strong>целина</strong>, заједно са делом који је био лиценциран под мање
рестриктивном лиценцом, може (и мора) бити подлиценциран под ГНУ&#8209;овом ОЈЛ.

<p>Противници ГНУ&#8209;ове ОЈЛ ово називају „вирусом ОЈЛ“ и сматрају негативним.
Као аргумент у прилог томе, помињу се одредбе ГНУ&#8209;ове ОЈЛ посебно смишљене да
онемогуће злоупотребу софтверских патената („тивоизацију“) и друге начине које
су велике корпорације историјски користиле да заобиђу одредбе ГНУ&#8209;ових лиценци.

<p>Такође, (§12:)
<blockquote> Ако су вам наметнути услови (судским налогом, договором или другачије) који су
 супротни условима ове лиценце, они вас не изузимају од услова ове лиценце. Ако
 не можете да испоручујете обухваћено дело на такав начин да истовремено
 задовољите ваше обавезе према овој лиценци и било које друге важеће обавезе,
 онда га, као резултат тога, <strong>не смете уопште испоручивати</strong>. На пример, ако
 прихватите одредбе које вас обавезују да узимате хонораре за даље испоручивање
 од оних којима испоручујете програм, једини начин да се задовољи таква одредба
 и ова лиценца је да се <strong>потпуно уздржите од испоручивања програма</strong>.</blockquote>

<p>Веома је брзоплето ово видети као нешто лоше. <strong>Смисао оваквих одредби је да
онемогуће наметање контроле (једне особе или корпорација) над софтвером.</strong> Док
ентузијасти развијају софтвер под „мање рестриктивним“ лиценцама бесплатно, за
то време, велике корпорације <a href="https://www.cs.vu.nl/~ast/intel/">једва чекају да га се докопају</a>, и да
дебело наплате свој рестриктивни, затворени, платни софтвер заснован на раду
ентузијаста. Другим речима, да само покупе кајмак.

<p><strong>Софтвер треба да је јавно добро човечанства.</strong> Ако ово значи отуђивање
корпорација или престанак подршке корпорација, <strong>нека тако буде</strong>. Човечанство
као целина је важније од корпорација. Ако је ово политика и идеологија, у истој
мери је политика и идеологија и супротстављање овоме. На крају крајева, шта је
то толико, само по себи, лоше у политици и идеологији?

<p>Одговор на питање из уводног пасуса је да и даље користим и користићу искључиво
ГНУ&#8209;ову општу јавну лиценцу в3 (или било коју следећу верзију) за све своје
програме. То што је оперативни систем који сада користим под „лабавијом“
лиценцом на њих уопште не утиче.



<hr>
<p id="footnote-1"><a href="#footnote-text-1">1.</a> Занимљиво је да је текст <em>ISC</em>&nbsp;лиценце непрецизан. Чак и после измене из
2007. („и“ → „и/или“), нејасно је да ли је њом дозвољена расподела
измењених примерака. Више о овоме на
<a href="https://www.gnu.org/licenses/license-list.html#ISC">https://www.gnu.org/licenses/license-list.html#ISC</a>.]]></description>
	</item>
	<item>
		<title>Организациони backdoor</title>
		<link>https://strahinja.org/blog/2024-03/20240331/</link>
		<guid>https://strahinja.org/blog/2024-03/20240331/</guid>
		<pubDate>Sun, 31 Mar 2024 14:50:14 +0200</pubDate>
		<description><![CDATA[
<p>
Ових дана је тема о којој се прича (дописује) широм <em>IT</em> света тзв.
<em>backdoor</em><a href="#inline-footnote-1" id="inline-footnote-text-1"><sup>1</sup></a> у
<a href="https://www.openwall.com/lists/oss-security/2024/03/29/4">пројекту <em>xz</em></a> (прецизније библиотеци <em>liblzma</em>). Овај случај истиче све
мањкавости постојећег начина функционисања слободних софтверских пројеката.
Није реч о техничкој грешци, нити о техничком безбедносном пропусту: нападач је
убацио <em>backdoor</em> након инфилтрације (у стварном свету) на руководећу позицију
пројекта постепеним стицањем поверења <em>maintainer</em>&#8209;а, а затим и заузимања
његовог места као новог <em>maintainer</em>&#8209;а. Цела операција је веома добро
испланирана: осим самог <em>backdoor</em>&#8209;а, нападач је слао читав низ „добрих“
печева.

<p>Штета која је начињена је огромна: библиотеку <em>liblzma</em> користе дистрибуције
које користе <em>systemd</em> и <em>glibc</em> (другим речима: мејнстрим дистрибуције, нпр.
<em>Debian</em>, <em>Fedora</em>, <em>Ubuntu</em>...) да би омогућиле рад <em>OpenSSH</em> сервера. Према
неким проценама, потребно је проверити око <a href="https://lists.alpinelinux.org/~alpine/users/%3C1c614505-92f2-42b4-ba46-b227777e0d5b%40lodispoto.com%3E#%3CCAH8yC8nq0eaF5mMxTgYYGH4vDj1m4x_f+OYG_1ZzN4Bfkq5aPg@mail.gmail.com%3E">700 <em>commit</em>&#8209;ова</a> које је
послао нападач само пројекту <em>xz</em> (а слао их је, рецимо, и пројекту
<em>libarchive</em>).

<p>Сада се долази до веома интересантног закључка: као што некад вируси за
<em>Windows</em> и <em>DOS</em> нису функционисали под ГНУ&#8209;ом са Линуксом, просто зато што се
програми за те системе нису могли (лако) извршавати, па се за ГНУ са Линуксом
прочуло да је „аутоматски безбедан систем“, тако су (за) сада Униксолики системи
који не користе <em>systemd</em> и <em>glibc</em> (рецимо: <em>Alpine Linux</em>, <em>OpenBSD</em>, ...)
„имуни“ на овај <em>backdoor</em>. Ето веома доброг разлога да се напусте мејнстрим
дистрибуције ГНУ&#8209;а са Линуксом, и пређе макар на <em>Alpine Linux</em>, који користи
<em>musl libc</em>, или на <em>OpenBSD</em>, што је тренутно и моја препорука. Ако ништа
друго, систем контроле изворног кода који се укључује у издања <em>OpenBSD</em>&#8209;а је
далеко ригорознији.

<p>Наравно, ништа не може заштитити систем од људског фактора. Рецимо, позната
пракса мејнстрим „<em>developer</em>“&#8209;а је да напишу <em>Bash</em> скрипт за инсталацију и
корисницима дају инструкцију за инсталирање сличну овој:
<pre>
$ sudo bash &lt;(curl -L nekisajt.com/install.sh)
</pre>
<p>Ова епизода са <em>backdoor</em>&#8209;ом у <em>xz</em>&#8209;у показује зашто је штетност оваквих
наредби апсолутна: <strong>не постоји сајт, нити пројекат, коме се може апсолутно
веровати.</strong>

<hr>
<p id="inline-footnote-1"><a href="#inline-footnote-text-1">1.</a> Део кода који омогућава заобилажење безбедносних механизама.]]></description>
	</item>
	<item>
		<title>OpenBSD</title>
		<link>https://strahinja.org/blog/2024-02/20240216/</link>
		<guid>https://strahinja.org/blog/2024-02/20240216/</guid>
		<pubDate>Fri, 16 Feb 2024 17:20:28 +0100</pubDate>
		<description><![CDATA[
<p>Коначно сам одвојио мало времена да на један од рачунара које користим
инсталирам <em>OpenBSD</em> ван емулатора („наживо“). Своја запажања сам поставио у
одељку „Текстови“ под насловом <a href="/tekstovi/softver/bsd-zabeleske/">„<em>OpenBSD</em> забелешке“</a>. Пошто још увек
подешавам <em>OpenBSD</em> и тражим решења разних проблема у вези са <em>OpenBSD</em>&#8209;ом које
сам приметио, тај текст ћу допуњавати у наредном периоду.]]></description>
	</item>
	<item>
		<title>Sourcehut проп'о</title>
		<link>https://strahinja.org/blog/2024-01/20240115/</link>
		<guid>https://strahinja.org/blog/2024-01/20240115/</guid>
		<pubDate>Mon, 15 Jan 2024 09:40:20 +0100</pubDate>
		<description><![CDATA[
<p>
Док ово пишем, већ пет дана, почевши од 10.1.2024., траје агонија сервиса за
хостовање софтверских пројеката <em>Sourcehut</em>. Наиме, од тада нису доступни, или
су спорадично доступни, сви придружени сервиси на доменима који се завршавају на
<em>sr.ht</em>. Не упуштајући се детаљније у теорије о томе шта је узрок овом нападу
(<em>Microsoft</em> са својим <em>Github</em>&#8209;ом има највећи мотив; ово личи на класично
<em>Microsoft</em>&#8209;ово минирање конкуренције свим, па и прљавим, средствима), који су
на сајту <a href="https://status.sr.ht/"><em>status.sr.ht</em></a> описали речима:

<blockquote> We deal with ordinary DDoS attacks in the normal course of operations, and we
 are generally able to mitigate them on our end. However, this is not an
 ordinary DDoS attack; <strong>the attacker posesses considerable resources and is
 operating at a scale beyond that which we have the means to mitigate
 ourselves.</strong> <span class="r">[ист.СР]</span> In response, before we could do much
 ourselves to understand or mitigate the problem, our upstream network provider
 null routed SourceHut entirely, rendering both the internet at large, and
 SourceHut staff, unable to reach our servers.</blockquote>

<p>тј. (прев. СР):

<blockquote> Током уобичајеног рада, сусрећемо се са обичним <em>DDoS</em> нападима, које обично
 можемо сами да одбијемо. Међутим, ово није обичан <em>DDoS</em> напад. Нападач
 <strong>поседује значајне ресурсе и дејствује у размерама ван оних које можемо сами
 да одбијемо.</strong> <span class="r">[ист.СР]</span> Стога је, пре него што смо било шта
 могли сами да учинимо да бисмо разумели или решили проблем, наш провајдер у
 потпуности <a href="https://en.wikipedia.org/wiki/Black_hole_(networking)"><em>null</em>&#8209;рутирао</a> <em>SourceHut</em>, што је онемогућило како
 цео Интернет, тако и особље <em>SourceHut</em>&#8209;а, да приступе нашим серверима.</blockquote>

<p>ово значи да је врло вероватно да у наредних неколико недеља репозиторијуми и
странице мојих програма могу бити недоступни.

<p>Стога сам на страници „Програми“ свим пројектима за које то има смисла додао и
архивиране верзије њихових репозиторијума, хостоване на мом сајту, као
алтернативе директном приступу репозиторијумима. Наравно, право решење би био
<em>VPS</em>, где бих директно понудио <code>git://</code> приступ, али је он за мене лично
баснословно скуп (ако се не изузме <em>Google Cloud</em> или неки сличан сервис, а њих
не желим да користим). Такође немам намеру да се враћам на <em>Github</em>.]]></description>
	</item>
	<item>
		<title>Упутство за plist</title>
		<link>https://strahinja.org/blog/2024-01/20240105/</link>
		<guid>https://strahinja.org/blog/2024-01/20240105/</guid>
		<pubDate>Fri, 5 Jan 2024 13:50:05 +0100</pubDate>
		<description><![CDATA[
<p>Пошто се у последње време бавим писањем уређивача текста за
<em>Window&nbsp;Maker</em>/<em>WINGs</em>, написао сам <a href="/tekstovi/softver/wproplist/">упутство</a> за коришћење функција
за програмирање читања и писања <em>Property List</em> (<em>plist</em>) датотека које се у
<em>Window&nbsp;Maker</em>&#8209;у користе за датотеке са подешавањима и меније. Ради се о првој
текстуалној верзији тог формата коришћеној на <em>NeXTSTEP</em> рачунарима.]]></description>
	</item>
	<item>
		<title>Најновије ≠ најбоље</title>
		<link>https://strahinja.org/blog/2023-12/20231222/</link>
		<guid>https://strahinja.org/blog/2023-12/20231222/</guid>
		<pubDate>Fri, 22 Dec 2023 12:18:00 +0100</pubDate>
		<description><![CDATA[
<p>
У тачност релације из наслова уверио сам се још једном јуче, при покушају
синхронизације датотека <em>Syncthing</em>&#8209;ом. За оне који не знају за њега, ради се
о програму за синхронизацију датотека. Принцип је следећи: (рецимо) сликате
слику на телефону, покренете <em>Syncthing</em> док сте прикључени на <em>Wi&#8209;Fi</em>,
покренете <em>Syncthing</em> на другом уређају, и ако сте подесили да се директоријум
(рецимо) <em>/storage/emulated/0/DCIM/New</em> синхронизује са неким директоријумом на
циљном уређају, слике се магично појаве на њему. Ако онда на том другом уређају
обришете неке неуспеле слике, оне се исто тако магично обришу и на телефону.
Слично важи и за било какве датотеке у општем смислу, рецимо документе,
<em>PDF</em>&nbsp;датотеке, итд.

<p>Уместо да се у програму <a href="https://github.com/canton7/SyncTrayzor"><em>SyncTrayzor</em></a> отвори веб интерфејс
<em>Syncthing</em>&#8209;а и да се датотеке „магично“ појаве на одредишном рачунару који
користим на послу, а који ради под <em>Windows</em>&#8209;ом&nbsp;7, дочекао ме је празан прозор
<em>SyncTrayzor</em>&#8209;а, са <em>log</em> прозором садржине сличне овој:
<pre>
Exception 0xc0000005 0x8 0x0 0x0
PC=0x0

runtime.asmstdcall()
        runtime/sys_windows_amd64.s:65 +0x75 fp=0x22fca0 sp=0x22fc80 pc=0x473dd5
rax     0x0
rbx     0x1a27f20
rcx     0x1a87ec0
rdi     0x7fffffdd000
rsi     0x22fea0
rbp     0x22fde0
rsp     0x22fc78
...
</pre>
<p>итд. Претрагом на Интернету сам сазнао да је проблем у томе што су они који
одржавају језик&nbsp;<em>Go</em>, у коме је писан <em>Syncthing</em>, просто <a href="https://github.com/golang/go/issues/52188">одлучили</a>
да следе одлуку Мајкрософта да прекине подршку за <em>Windows</em>&nbsp;7.  А
<a href="https://github.com/golang/go/issues/64622">корисници</a>? Шта се па они питају? Важан је Мајкрософт... Ако неко
нема пара да купи најновији хардвер, који подржава најновију верзију
<em>Windows</em>&#8209;а и да плати непримерено високу цену лиценце, у визији <em>big tech</em>
компанија он просто нема права да постоји. Све фирме морају давати харач
индустрији хардвера, набавком новог, неколико пута годишње, и Мајкрософту и
другим „играчима“ плаћањем астрономских цена лиценци.

<p>Мора се истаћи да је оно што би пре десетак&#8209;двадесетак година у овом конкретном
случају било сматрано незамисливо аматерским, то да уместо поруке о
некомпатибилности нове верзије програма, корисници добијају нефункционалан
програм који их „части“ стањем процесорских регистара. Опет: кога брига за
кориснике? Они су најмање битни.

<p>Ово је савршен пример зашто је јурњава за најсвежијим верзијама софтвера штетна,
зашто је <em>„always online“</em> принцип лош, а такође и зашто су <strong>лоши и штетни
програмски језици који зависе од система пакета,</strong> (који морају увек бити
ажурни) као што је <em>Go</em>, али и данас форсирани <em>Rust</em>, па и <em>Python</em>,
<em>JavaScript</em> и слични.]]></description>
	</item>
	<item>
		<title>wmgen</title>
		<link>https://strahinja.org/blog/2023-12/20231212/</link>
		<guid>https://strahinja.org/blog/2023-12/20231212/</guid>
		<pubDate>Tue, 12 Dec 2023 16:32:34 +0100</pubDate>
		<description><![CDATA[
<p>Менаџер прозора <a href="https://www.windowmaker.org"><em>Window Maker</em></a> користи сопствену библиотеку,
<a href="https://www.windowmaker.org/docs/wings.html"><em>WINGs</em></a>. За разлику од пројекта <a href="https://gnustep.github.io"><em>GNUstep</em></a> који представља
слободну имплементацију <em>Apple</em>&#8209;овог <em>API</em>&#8209;ја <em>Cocoa</em>, који се користио у
<em>NeXTSTEP</em> рачунарима, и написан је у језику <em>Objective-C</em>, <em>WINGs</em> је прилично
лагана библиотека у језику&nbsp;<em>C</em>, која се ослања на библиотеку <em>Xlib</em>. Иако
<em>WINGs</em> има недостатака, он је послужио за прављење апликације за подешавање
<em>Window&nbsp;Maker</em>&#8209;а <em>WPrefs</em> и <a href="https://github.com/roblillack/fsviewer">апликације&nbsp;<em>FSViewer</em></a>. Ипак,
апликације које користе <em>WINGs</em> личе на апликације са <em>NeXTSTEP</em>&#8209;а, чија
елеганција плени и дан&#8209;данас.

<p>
Пре неки дан сам објавио <em>wmgen</em>, костур и генератор за нове апликације које
користе <em>WINGs</em>. Он се може наћи на адреси:

<p><a href="https://sr.ht/~strahinja/wmgen/"><em>https://sr.ht/~strahinja/wmgen/</em></a>

<p>Тренутни изглед основне верзије апликације генерисане уз помоћ <em>wmgen</em>&#8209;а 0.3 је
на слици:

<p><a href="/img/blog/20231212-01.png">
<figure>
<img src="/img/blog/20231212-th-01.png" alt="Костур WINGs апликације" width="443" height="200"><figcaption>Костур WINGs апликације</figcaption>
</figure>

<p></a>]]></description>
	</item>
	<item>
		<title>Упутство за Window Maker</title>
		<link>https://strahinja.org/blog/2023-11/20231119/</link>
		<guid>https://strahinja.org/blog/2023-11/20231119/</guid>
		<pubDate>Sun, 19 Nov 2023 21:58:54 +0100</pubDate>
		<description><![CDATA[
<p>Пошто сам <a href="/blog/2023-11/20231101/">недавно</a> креирао локализацију <em>Window&nbsp;Maker</em>&#8209;а на
српски, данас сам поставио и упутство за подешавање <em>GTK</em> и <em>Qt</em> окружења тако
да подсећа на <em>NeXTSTEP</em> и <em>OPENSTEP</em>. <a href="/tekstovi/softver/wmaker/">Упутство</a> сам додао у списак
текстова.]]></description>
	</item>
	<item>
		<title>Речник</title>
		<link>https://strahinja.org/blog/2023-11/20231112/</link>
		<guid>https://strahinja.org/blog/2023-11/20231112/</guid>
		<pubDate>Sun, 12 Nov 2023 10:21:29 +0100</pubDate>
		<description><![CDATA[
<p>
Већ неко време у <a href="https://sr.ht/~strahinja/translations/">репозиторијуму мојих превода</a> чувам преводе
појединачних израза у датотеци <a href="/recnik/dict.tsv"><em>dict.tsv</em></a>. Недавно сам поставио и
<a href="/recnik/">посебну страницу са преводима</a> генерисану из те датотеке.

<p>Од како сам почео да се бавим локализацијом софтвера на српски, нешто слично сам
чувао у датотеци у формату <em>XML</em>, али <em>TSV</em> je свакако много боље решење. Ипак,
вероватно ћу ускоро поставити и тај стари речник.]]></description>
	</item>
	<item>
		<title>Прозорџија</title>
		<link>https://strahinja.org/blog/2023-11/20231101/</link>
		<guid>https://strahinja.org/blog/2023-11/20231101/</guid>
		<pubDate>Wed, 1 Nov 2023 19:51:17 +0100</pubDate>
		<description><![CDATA[
<p>Када се тражи једноставан менаџер прозора, постоји читав низ примера, као што су
<em>dwm</em>, <em>cwm</em> или <em>i3wm</em>. Међутим, ако се постави услов да они буду и
„пријатељски према кориснику“, тј. приступачни и почетницима, вероватно би се
мало ко сетио <a href="https://www.windowmaker.org"><em>Window Maker</em></a>&#8209;а.

<p>
Последњих дана сам радио на преводу <em>Window Maker</em>&#8209;а на српски, и данас је
тај превод дошао до тачке да може да се пошаље у виду печа <code>git
send-email</code>&#8209;ом.

<figure>
<a href="/img/blog/20231101-wmaker-001.png" title="Window Maker" class="image" target="_blank"><img src="/img/blog/20231101-wmaker-001.png" alt="Window Maker" width="1920" height="1080"></a><figcaption>Window Maker</figcaption>
</figure>


<p>На слици се види локализација програма за подешавања <em>Window Maker</em>&#8209;а,
<em>WPrefs</em>, на српски. Апликација <a href="https://github.com/roblillack/fsviewer/issues/5"><em>FSViewer</em> није локализована</a>,
али ако то буде могуће намеравам да радим и на њеној локализацији.]]></description>
	</item>
</channel>
</rss>
