1763488883	Преводилац (ни)је производ	https://strahinja.org/blog/2025-11/20251118/	<p>\nЈуче сам завршио ажурирање превода <em>Midnight Commander</em>&#8209;а на српски, и, као\nшто сам <a href="/blog/2022-01/20220112">поменуо</a> пре нешто мање од четири године, наслућивао сам да тај\nпоступак неће ићи тако глатко. Кратко подсећање: за разлику од 2003. године,\nкада сам превео (тада<a href="#inline-footnote-1" id="inline-footnote-text-1"><sup>1</sup></a> <em>GNU</em>) <em>Midnight\nCommander</em> на српски, сада се уместо стандардног начина локализације слободног\nсофтвера користи <em>Transifex</em>.  (Стандардно, локализација се обавља тако што се\n<em>PO</em> датотеке уређују у уређивачу текста, или специјализованом уређивачу као што\nје <em>poedit</em> или мој <a href="https://strahinja.srht.site/poe"><em>poe</em></a>, а затим шаљу <em>git send-email</em>&#8209;ом, или као\nнека врста <em>pull/merge request</em>&#8209;а.) На срећу, уз нешто гунђања, најзад је моје\nосвежење превода поставио један од актуелних програмера, уз опаску да је то\n„последњи пут“.\n\n<p>Морам да признам да је моја оцена <em>Transifex</em>&#8209;а из 2022. делимично погрешна,\nчему је кумовала конфузна <a href="https://web.archive.org/web/20220113215824/https://midnight-commander.org/">почетна страница <em>MC</em>&#8209;а</a>, на којој није\nбило инструкција за регистрацију <a href="https://midnight-commander.org/translations/">као сада</a>. Том <abbr title="Software\nas a Service"><em>SaaS</em></abbr>&#8209;у, иначе Федорином чеду, је заиста примарни тип\nналога онај који се плаћа на месечном нивоу, али су били толико „великодушни“ да\nпредвиде и <a href="https://help.transifex.com/en/articles/6236788-open-source-projects">„<em>Open Source</em> налоге“</a>, који се не плаћају... бар не\nновцем. На страници <a href="https://www.transifex.com/legal/privacy/"><em>Privacy</em></a> се описује које све податке <em>Transifex</em>\nприкупља о кориснику. Поред података које постави корисник, такође се аутоматски\nприкупљају и детаљни подаци о типу уређаја, оперативног система, па чак и\nјединствени идентификациони бројеви уређаја и подаци о апликацијама. Такође се\nописује са ким се све ти подаци деле: између осталог, и са трећим странама, у\nкоје спадају и „партнери за оглашавање“, којима су роба — корисници. И све то\nсамо да би се слободни софтверски пројекат превео на неенглески језик! Зашто\nједноставно <code></code><code> vim po/sr.po </code><code></code> кад може компликовано?\n\n<p>Веома је интересантан податак да је пројекат Федора, под окриљем ког је настао\n<em>Transifex</em>, у марту 2015. <a href="https://fedoraproject.org/wiki/L10N_Move_To_Zanata">прешао на сервис <em>Zanata</em></a>, зато што је\n<em>Transifex</em> <a href="https://github.com/transifex/transifex/issues/206#issuecomment-15243207">постао власнички</a> 2013. године. И тако је пројекат\nлокализације слободног софтверског пројекта <em>Midnight Commander</em> заробљен у\nвласничком <em>SaaS</em> пројекту који продаје личне податке преводилаца трећим\nстранама и оглашивачима. Зашто <em>Midnight Commander</em> није следио пример Федоре?\nТешко је рећи, али је вероватно у питању инерција, и чињеница да је дистрибуција\nФедора ипак пројекат који окупља далеко више људи. Неко је имао времена да\nпреиспита алате који се користе за локализацију.\n\n<a href="https://zanata.org/privacy/">Услови коришћења</a> сервиса <em>Zanata</em> у вези са приватношћу тренутно\n(2025-11-18) делују за нијансу боље од <em>Transifex</em>&#8209;а, зато што према наведеном\nне укључују детаљну идентификацију уређаја који приступа сервису, и не укључују\nагенције за оглашавање међу „трећим странама“.\n\n<p>Без обзира на стање главног репозиторијума <em>Midnight Commander</em>&#8209;а, мој превод\nтог програма ће увек моћи да се нађе на овом сајту и репозиторијуму\n<a href="https://git.sr.ht/~strahinja/translations"><em>translations</em></a>.\n\n\n<hr>\n<p id="inline-footnote-1"><a href="#inline-footnote-text-1">1.</a> Речено ми је да тај пројекат „већ 20 година“ нема никакве\nвезе са Пројектом ГНУ! Само да није „мање незгоде“: носилац ауторских права је и\nдаље <em>Free Software Foundation</em>. Закон о ауторским правима не познаје „удаљавање\nод <em>FSF</em>/Сталмана/итд“. 😊 Ал' добро, нека им буде...	html	https://strahinja.org/blog/2025-11/20251118/			
1761283956	Поступни sysupgrade(8)	https://strahinja.org/blog/2025-10/20251024/	<p>\nИако је поступак надоградње <em>OpenBSD</em>&#8209;а веома сведен и аутоматизован, ћудљиви\nхардвер вам може покварити дан. Пошто је за кориснике <em>OpenBSD</em>&#8209;а, у које\nспадам, тренутно актуелна <a href="https://www.openbsd.org/78.html">надоградња на верзију 7.8</a>, овде у кратким\nцртама излажем своја запажања у вези са овим поступком на конкретном моделу\n<em>V15&#8209;ADA Lenovo</em> лаптопа који поседујем. Она могу бити од користи за све који\nупотребљавају <em>OpenBSD</em> на том моделу лаптопа, или који се срећу са сличним\nсимптомима.\n\n<h2 id="heading-1">Забелешке</h2>\n\n<ul><li><p>Користим <em>mksh,</em> компајлиран и инсталиран директно из изворног кода (не из\nпортова) као подразумевану љуску и за обичног корисника и за <em>root</em>&#8209;а. То\nутиче само на кораке&nbsp;2 и 6 у наставку.\n</li>\n<li><p><em>Lenovo V15&#8209;ADA</em> има баговити уграђени <em>WiFi</em> адаптер, <em>Atheros QCA6174</em>, за\nкоји је мало вероватно да ће икад бити написани пристојни драјвери за\n<em>OpenBSD</em>. Приморан сам да користим <em>USB WiFi</em> адаптер <em>Realtek&nbsp;802.11</em> са\nподржаним чипсетом. Обично под <em>OpenBSD</em>&#8209;ом (изузев после ребутовања након\nsysupgrade(8)&#8209;а), када је <em>USB WiFi</em> адаптер прикључен, нема конфликта са\nуграђеним <em>WiFi</em> адаптером, вероватно зато што не постоји драјвер (па ни\nуређај у оквиру ОС&#8209;а) за уграђени адаптер. Понекад се систем потпуно закочи\nако су оба уређаја прикључена, рецимо под старијим нивоима ажурирања\n<em>Windows</em>&#8209;а&nbsp;10.\n<p>Стање уграђеног <em>WiFi</em> адаптера после ребутовања у <em>OpenBSD</em> окружење за\nнадоградњу испољава исте симптоме, што води до неупотребљивог система (због\nнеуспешног процеса надоградње). Процес бутовања стаје код поруке:\n<pre>\nsoftraid0 at root\nscsibus1 at softraid0: 256 targets\n</pre>\n</li>\n<li><p>Кроз тестирање, уочио сам да је једини начин да се избегне ово кочење система\nребутовање у систем који има подршку за уграђени <em>WiFi</em> адаптер (рецимо било\nкоји модернији <em>LiveUSB</em> ГНУ&#8209;а са Линуксом) уз претходно уклањање <em>USB WiFi</em>\nадаптера, што изгледа да коректно иницијализује уграђени <em>WiFi</em> адаптер у\nоперативно стање, и затим ребутовање назад у <em>OpenBSD</em>, настављајући\nинсталацију, после чега треба поново прикључити <em>USB WiFi</em> адаптер.\n\n</li></ul>\n<h2 id="heading-2">Детаљна упутства</h2>\n\n<ol>\n<li><p> <strong>НЕ ПОКРЕТАТИ</strong> <code>sysupgrade</code>! Ово ће заглавити систем после ребутовања.\nУместо овога, покренути <code>sysupgrade -n</code>.\n\n</li>\n<li><p> Као <em>root:</em>\n\n<pre>\n# ln -f /bin/ksh /bin/sh\t# за сваки случај\n# chsh\t\t\t\t# па подесити root-ов shell на било шта осим\n\t\t\t\t# mksh-а, нпр. /bin/ksh.\n</pre>\n\n</li>\n<li><p> Ребутовати у ГНУ са Линуксом на <em>LiveUSB</em>&#8209;у, али током ребутовања уклонити\n<em>USB WiFi</em> адаптер после поруке да је одговарајући интерфејс оборен, пре него\nшто се лаптоп заиста ребутује.\n\n</li>\n<li><p> Ребутовати назад у <em>OpenBSD</em>.\n\n</li>\n<li><p> Пошто се заврши процес надоградње, након следећег аутоматског ребутовања,\nпоново прикључити <em>USB WiFi</em> и покренути:\n\n<pre>\n# sh /etc/netstart\n# fw_update\n# pkg_add -u\n</pre>\n\n</li>\n<li><p> Поново компајлирати <em>mksh/lksh</em>, инсталирати, променити <em>root</em>&#8209;ову љуску на\n<em>mksh</em>.\n\n</li></ol>	html	https://strahinja.org/blog/2025-10/20251024/			
1720507787	Нова адреса	https://strahinja.org/blog/2024-07/20240709/	<p>\nЈуче сам креирао нови налог за електронску пошту на свом хостованом мејл\nсерверу, и започео процес миграције свега што је повезано са старом адресом\n<code>contact@</code> на нову, <code>sr@</code>.\n\n<p>О новој адреси сам размишљао већ неко време, из неколико разлога. Адреса\n<code>contact@</code> је, ако се добро сећам, већ била подешена у <em>cPanel</em>&#8209;у када сам\nпрешао на постојећи хостинг, па сам по инерцији, уместо да креирам нову, само\nнаставио да користим ту адресу. Међутим, добијао сам чудне погледе када је било\nпотребно да је усмено издиктирам. Оно што ме је коначно одлучило да променим\nадресу <code>contact@</code> је преглед чувања („<em>commits</em>“) у <a href="https://gameoftrees.org/tog.1.html"><strong>tog</strong>(1)</a>&#8209;у. Свако\nчување је представљено једним редом у оваквом формату:\n<pre>\n2024-06-30 212c1fe5 contact  [tags/v0.16] Update themes\n</pre>\n<p>Овде <code>contact</code> заиста делује прилично чудно, и не преноси информацију о аутору.\nРазматрајући неколико варијанти нове адресе, одлучио сам се за <code>sr@</code>.\n\n<p>Пошто сам стару адресу користио за <em>git</em>, <em>got</em> и мејлинг листе, један од првих\nкорака био је да креирам нове <em>GPG</em> и <em>SSH</em> кључеве за потписивање чувања у\n<em>git</em>&#8209;у и ознака („<em>tags</em>“) у <em>got</em>&#8209;у. Затим сам пребацио све филтере за\nмејлинг листе (ручно, зато што <em>cPanel</em>, бар за сада, не подржава извоз и увоз\nфилтера) на нов налог, одјавио налог <code>contact@</code> са листа и пријавио нов налог\n<code>sr@</code>.\n\n<p>Најзад, креирао сам и нов <strong>signify</strong>(1) кључ, услед чега сам морао да поново\nгенеришем потписе за све архиве на страници <a href="/programi/"><em>/programi/</em></a>.\n\n<p>Ово је, наравно, само почетак овог процеса. У наредном периоду наставићу да\nсвуда где је то потребно мењам своју стару адресу на нову.	html	https://strahinja.org/blog/2024-07/20240709/			
1716987410	stagit и got	https://strahinja.org/blog/2024-05/20240529/	<p>\nВећ извесно време на овом сајту сам поставио <a href="/stagit">приказ репозиторијума</a>\nнеких мојих програма у виду статичких <em>HTML</em> датотека генерисаних програмом\n<em>stagit</em>. Међутим, он не функционише у директоријумима „радних стабала“\nдобијених наредбом <code>got checkout</code>. Дакле, не може се просто покренути <em>stagit</em>\nу директоријуму са којим се директно ради у <em>got</em>&#8209;у.\n\n<p>Прва помисао ми је била да би ваљало направити „<em>stagot</em>“ (што и даље не треба\nодбацивати), међутим, срећна околност је што <em>got</em> ради са <em>git</em>\nрепозиторијумима. Директоријум репозиторијума, који се добија наредбом <code>got\nclone</code>, представља „огољени“ (<em>bare</em>) <em>git</em> репозиторијум. Простим копирањем\nдатотека <em>description</em>, <em>owner</em> и <em>url</em> у тај директоријум и усмеравањем\n<em>stagit</em>&#8209;а на њега добија се исти резултат као и раније:\n<pre>\n(cd ~/src/gotdir\n repodir=&quot;$(got info | awk '/repository:/{print $2}')&quot;\n cd ~/src/www/stagit\n stagit -l 100 &quot;$repodir&quot;)\n</pre>\n\n<p>Разлог због кога би ипак требало размислити о замишљеном програму <em>stagot</em> је\nзависност од <em>git</em>&#8209;а. Ово је тек приручно решење, а идеално <em>git</em> не би ни\nтребало да буде инсталиран.	html	https://strahinja.org/blog/2024-05/20240529/			
1716018850	Игра стабала	https://strahinja.org/blog/2024-05/20240518/	<p>\nНедавно је на мејлинг листи <a href="https://marc.info/?l=openbsd-misc&m=171513465810861&w=2"><em>misc@</em></a> <em>OpenBSD</em>&#8209;а у теми о омиљеним\nпрограмима за репликацију система поменут <a href="https://gameoftrees.org"><em>got — Game Of Trees</em></a> („игра\nстабала“), што ме је заинтересовало за овај систем за контролу верзија. За\nњега сам чуо и раније, али сам сада одлучио да га боље проучим и започнем процес\nпреласка са <em>git</em>&#8209;а na <em>got</em>.\n\n<p>На питање „Чему све ово? Зашто просто не користити <em>Git</em>?“ у\n<a href="https://gameoftrees.org/faq.html#pointless">„често постављаним питањима“</a> <em>got</em>&#8209;а, тренутно је дат, по мом\nмишљењу, непотребно одвраћајући одговор:\n<blockquote> We don't need to hear your opinion that our project is pointless because Git\n is superior. Thank you!</blockquote>\n<p>тј.\n<blockquote> Не треба нам ваше мишљење да је наш пројекат бесмислен зато што је <em>Git</em> бољи,\n хвала!</blockquote>\n<p>Овакав одговор маши поенту. Неко ко не познаје <em>got</em> и заиста је заинтересован\nза разлог његовог постојања, без намере да га омаловажава, остаје ускраћен за\nодговор. Такође је, слично <a href="https://geminiprotocol.net/docs/faq.gmi#113-do-you-really-think-you-can-replace-the-web-with-this">пројекту Џемини</a>, употребљена (по\nмени неискрена, и то непотребно) ограда да <em>got</em>\n<a href="https://gameoftrees.org/faq.html#replacegit">„нема намеру да замени <em>git</em>“</a>, и да је „било ко ко намерава да\nпротури идеју замене <em>git</em>&#8209;а <em>got</em>&#8209;ом у великој заблуди“. Како да не! И\n<strong>зашто да не?</strong>\n\n<p>Коришћењем <em>got</em>&#8209;а постају јасне његове предности и оправданост његовог\nпостојања. <em>Got</em> се према <em>git</em>&#8209;у односи отприлике као <em>OpenBSD</em> према било ком\nмејнстрим систему ГНУ&#8209;а са Линуксом: фокусирање на оно што је битно, без\nнепотребних могућности које се ретко користе или се могу урадити на други начин,\nвећ постојећим програмима, а које уз то само стварају додатне мете за пробијање\nбезбедности. <em>Got</em> је, у ствари, <em>git</em> који поштује основне вредности\n<em>OpenBSD</em>&#8209;а. Уз све то, <em>got</em> користи исти формат репозиторијума као и <em>git</em>,\nсамо што је сваки репозиторијум у њему „го“ („<em>bare</em>“), и радно стабло (<em>work\ntree</em>) се мора експлицитно направити из репозиторијума. Директоријум радног\nстабла се не сме преклапати са директоријумом репозиторијума, а <em>got</em> користи\nуграђене механизме <em>OpenBSD</em>&#8209;а, као што је <a href="https://man.openbsd.org/unveil.2"><code>unveil</code>(2)</a>, да ограничи\nсвој приступ и радном стаблу и репозиторијуму само на минимум неопходан за\nфункционисање.\n\n<p>За сада једини ресурс за учење <em>got</em>&#8209;а су његове <a href="https://gameoftrees.org/manual.html">странице упутства</a> и\n<a href="https://gameoftrees.org/comparison.html">упоредни преглед</a> <em>got</em>&#8209;а и осталих постојећих система за контролу\nверзија, као што су <em>CVS</em>, <em>SVN</em> и <em>git</em>. Учећи <em>got</em> из ових докумената, мој\nпрви пројекат који сам пребацио на <em>got</em> је <a href="https://strahinja.srht.site/table/">програм <em>table</em></a>, а између\nосталог, <em>got</em> омогућава далеко елегантније генерисање верзије и датума\nпоследњег чувања. Рецимо:\n<pre>\ngot log |\nawk '\n/^date: / {\n\tgsub(/^date: /,&quot;&quot;,$0);\n\tprint $2 &quot; &quot; $3 &quot;, &quot; $5\n\texit\n}' >date.new\n</pre>\n<p>наспрам:\n<pre>\nLC_ALL=C\nexport LC_ALL\nuser=$(unalias ls >/dev/null 2>&amp;1 || true; \\\n\tcommand ls -ld . | awk '{print $3}')\ne_user=$(id -un)\nif [ &quot;$e_user&quot; = &quot;$user&quot; ]; then\n\tgit log --format=format:%cd \\\n\t\t--date=format:&quot;%B %d, %Y&quot; -1 @ >date.new\nelse\n\tsu &quot;${user}&quot; -c 'env LC_ALL=C git log --format=format:%cd \\\n\t\t--date=format:&quot;%B %d, %Y&quot; -1 @' >date.new\nfi\necho >>date.new\n</pre>\n<p>Комплекснији код је последица тога што <em>git</em>, за разлику од <em>got</em>&#8209;а, не\nдозвољава кориснику <em>root</em> да извршава наредбе у корисничком репозиторијуму без\nподешавања <code>safe.directory</code> у <em>/root/.gitconfig</em>.	html	https://strahinja.org/blog/2024-05/20240518/			
1714414573	Слободно и „слободно“	https://strahinja.org/blog/2024-04/20240429/	<p>\nМој лични лајтмотив почетка ове године је прелазак са ГНУ&#8209;а са Линуксом на\n<em>OpenBSD</em>. Са тим у вези, поставља се питање мог става према основним лиценцама\nова два оперативна система — ГНУ&#8209;овој ОЈЛ и <em>ISC</em>&nbsp;лиценци.\n\n<p>У данашње време, када се покрене тема лиценци и помене ГНУ&#8209;ова општа јавна\nлиценца — ГНУ&#8209;ова ОЈЛ (енгл. <a href="https://www.gnu.org/licenses/gpl-3.0.html"><em>GNU General Public License — GNU GPL</em></a>),\nпрема мом искуству, нажалост, у великом броју случајева, постало је модерно да\nсе омаловажава тај избор, па чак, сасвим у духу времена, и онај ко се дрзнуо да\nуопште помене ту лиценцу. Обично се као „аргумент“ истиче како је ГНУ&#8209;ова ОЈЛ\n„идеолошка“, „политичка“ и „догматска“ лиценца, а како су „мање рестриктивне“\nлиценце „слободније“ од ГНУ&#8209;ове ОЈЛ.\n\n<p>Као „аргумент“ у прилог овој тези, наводе се рестрикције које ГНУ&#8209;ова ОЈЛ\nпоставља, пре свега у погледу подлиценцирања (<em>sublicense</em>): (превод СР)\n\n<p>(§2.c:)\n<blockquote> Испоручивање под било каквим другим околностима је дозвољено искључиво под\n условима који су назначени доле. Подлиценцирање није дозвољено. Члан 10 га\n чини непотребним.</blockquote>\n\n<p>(§10:)\n<blockquote> Сваки пут када испоручите обухваћено дело, прималац аутоматски прима лиценцу\n за покретање, мењање и ширење тог дела према овој лиценци од првобитних\n давалаца лиценце. Од вас се не тражи наметање поштовања ове лиценце трећим\n странама. <span class="r">[...]</span></blockquote>\n\n<p>Ово ефективно значи, да уколико програм користи делове који су објављени под\nмање рестриктивним лиценцама, њихова лиценца ће, као део веће целине тог\nпрограма, аутоматски бити преиначена на ГНУ&#8209;ову ОЈЛ. Рецимо, <em>ISC</em>\n(<a href="https://www.isc.org/"><em>Internet Systems Consortium</em></a>) <a href="https://www.isc.org/licenses/">лиценца</a>,\n<a href="https://cvsweb.openbsd.org/src/share/misc/license.template?rev=HEAD">преферирана под <em>OpenBSD</em>&#8209;ом</a>, гласи (превод СР):\n\n<blockquote> Ауторска права &lt;ГОДИНА> &lt;ВЛАСНИК><br>\n <br>\n Овим се допушта коришћење, измена, и/или<a href="#footnote-1" id="footnote-text-1"><sup>1</sup></a> расподела овог софтвера у било\n коју сврху, са или без надокнаде, уз услов да су очувани горње обавештење о\n ауторским правима и ово обавештење о дозволама.\n <span class="r">[...]</span></blockquote>\n\n<p>Простим очувањем ових обавештења услови мање рестриктивне лиценце су\nиспоштовани. Уз додатак, рецимо оваквог обавештења (наравно на енглеском):\n\n<blockquote> Ова датотека је заснована на &lt;МАЊИ_ДЕО>, (c) &lt;ГОДИНА> &lt;ВЛАСНИК>.\n Овај програм је лиценциран под одредбама ГНУ-ове ОЈЛ\n <span class="r">[...]</span></blockquote>\n\n<p>програм као <strong>целина</strong>, заједно са делом који је био лиценциран под мање\nрестриктивном лиценцом, може (и мора) бити подлиценциран под ГНУ&#8209;овом ОЈЛ.\n\n<p>Противници ГНУ&#8209;ове ОЈЛ ово називају „вирусом ОЈЛ“ и сматрају негативним.\nКао аргумент у прилог томе, помињу се одредбе ГНУ&#8209;ове ОЈЛ посебно смишљене да\nонемогуће злоупотребу софтверских патената („тивоизацију“) и друге начине које\nсу велике корпорације историјски користиле да заобиђу одредбе ГНУ&#8209;ових лиценци.\n\n<p>Такође, (§12:)\n<blockquote> Ако су вам наметнути услови (судским налогом, договором или другачије) који су\n супротни условима ове лиценце, они вас не изузимају од услова ове лиценце. Ако\n не можете да испоручујете обухваћено дело на такав начин да истовремено\n задовољите ваше обавезе према овој лиценци и било које друге важеће обавезе,\n онда га, као резултат тога, <strong>не смете уопште испоручивати</strong>. На пример, ако\n прихватите одредбе које вас обавезују да узимате хонораре за даље испоручивање\n од оних којима испоручујете програм, једини начин да се задовољи таква одредба\n и ова лиценца је да се <strong>потпуно уздржите од испоручивања програма</strong>.</blockquote>\n\n<p>Веома је брзоплето ово видети као нешто лоше. <strong>Смисао оваквих одредби је да\nонемогуће наметање контроле (једне особе или корпорација) над софтвером.</strong> Док\nентузијасти развијају софтвер под „мање рестриктивним“ лиценцама бесплатно, за\nто време, велике корпорације <a href="https://www.cs.vu.nl/~ast/intel/">једва чекају да га се докопају</a>, и да\nдебело наплате свој рестриктивни, затворени, платни софтвер заснован на раду\nентузијаста. Другим речима, да само покупе кајмак.\n\n<p><strong>Софтвер треба да је јавно добро човечанства.</strong> Ако ово значи отуђивање\nкорпорација или престанак подршке корпорација, <strong>нека тако буде</strong>. Човечанство\nкао целина је важније од корпорација. Ако је ово политика и идеологија, у истој\nмери је политика и идеологија и супротстављање овоме. На крају крајева, шта је\nто толико, само по себи, лоше у политици и идеологији?\n\n<p>Одговор на питање из уводног пасуса је да и даље користим и користићу искључиво\nГНУ&#8209;ову општу јавну лиценцу в3 (или било коју следећу верзију) за све своје\nпрограме. То што је оперативни систем који сада користим под „лабавијом“\nлиценцом на њих уопште не утиче.\n\n\n\n<hr>\n<p id="footnote-1"><a href="#footnote-text-1">1.</a> Занимљиво је да је текст <em>ISC</em>&nbsp;лиценце непрецизан. Чак и после измене из\n2007. („и“ → „и/или“), нејасно је да ли је њом дозвољена расподела\nизмењених примерака. Више о овоме на\n<a href="https://www.gnu.org/licenses/license-list.html#ISC">https://www.gnu.org/licenses/license-list.html#ISC</a>.	html	https://strahinja.org/blog/2024-04/20240429/			
1711889414	Организациони backdoor	https://strahinja.org/blog/2024-03/20240331/	<p>\nОвих дана је тема о којој се прича (дописује) широм <em>IT</em> света тзв.\n<em>backdoor</em><a href="#inline-footnote-1" id="inline-footnote-text-1"><sup>1</sup></a> у\n<a href="https://www.openwall.com/lists/oss-security/2024/03/29/4">пројекту <em>xz</em></a> (прецизније библиотеци <em>liblzma</em>). Овај случај истиче све\nмањкавости постојећег начина функционисања слободних софтверских пројеката.\nНије реч о техничкој грешци, нити о техничком безбедносном пропусту: нападач је\nубацио <em>backdoor</em> након инфилтрације (у стварном свету) на руководећу позицију\nпројекта постепеним стицањем поверења <em>maintainer</em>&#8209;а, а затим и заузимања\nњеговог места као новог <em>maintainer</em>&#8209;а. Цела операција је веома добро\nиспланирана: осим самог <em>backdoor</em>&#8209;а, нападач је слао читав низ „добрих“\nпечева.\n\n<p>Штета која је начињена је огромна: библиотеку <em>liblzma</em> користе дистрибуције\nкоје користе <em>systemd</em> и <em>glibc</em> (другим речима: мејнстрим дистрибуције, нпр.\n<em>Debian</em>, <em>Fedora</em>, <em>Ubuntu</em>...) да би омогућиле рад <em>OpenSSH</em> сервера. Према\nнеким проценама, потребно је проверити око <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> које је\nпослао нападач само пројекту <em>xz</em> (а слао их је, рецимо, и пројекту\n<em>libarchive</em>).\n\n<p>Сада се долази до веома интересантног закључка: као што некад вируси за\n<em>Windows</em> и <em>DOS</em> нису функционисали под ГНУ&#8209;ом са Линуксом, просто зато што се\nпрограми за те системе нису могли (лако) извршавати, па се за ГНУ са Линуксом\nпрочуло да је „аутоматски безбедан систем“, тако су (за) сада Униксолики системи\nкоји не користе <em>systemd</em> и <em>glibc</em> (рецимо: <em>Alpine Linux</em>, <em>OpenBSD</em>, ...)\n„имуни“ на овај <em>backdoor</em>. Ето веома доброг разлога да се напусте мејнстрим\nдистрибуције ГНУ&#8209;а са Линуксом, и пређе макар на <em>Alpine Linux</em>, који користи\n<em>musl libc</em>, или на <em>OpenBSD</em>, што је тренутно и моја препорука. Ако ништа\nдруго, систем контроле изворног кода који се укључује у издања <em>OpenBSD</em>&#8209;а је\nдалеко ригорознији.\n\n<p>Наравно, ништа не може заштитити систем од људског фактора. Рецимо, позната\nпракса мејнстрим „<em>developer</em>“&#8209;а је да напишу <em>Bash</em> скрипт за инсталацију и\nкорисницима дају инструкцију за инсталирање сличну овој:\n<pre>\n$ sudo bash &lt;(curl -L nekisajt.com/install.sh)\n</pre>\n<p>Ова епизода са <em>backdoor</em>&#8209;ом у <em>xz</em>&#8209;у показује зашто је штетност оваквих\nнаредби апсолутна: <strong>не постоји сајт, нити пројекат, коме се може апсолутно\nверовати.</strong>\n\n<hr>\n<p id="inline-footnote-1"><a href="#inline-footnote-text-1">1.</a> Део кода који омогућава заобилажење безбедносних механизама.	html	https://strahinja.org/blog/2024-03/20240331/			
1708100428	OpenBSD	https://strahinja.org/blog/2024-02/20240216/	<p>Коначно сам одвојио мало времена да на један од рачунара које користим\nинсталирам <em>OpenBSD</em> ван емулатора („наживо“). Своја запажања сам поставио у\nодељку „Текстови“ под насловом <a href="/tekstovi/softver/bsd-zabeleske/">„<em>OpenBSD</em> забелешке“</a>. Пошто још увек\nподешавам <em>OpenBSD</em> и тражим решења разних проблема у вези са <em>OpenBSD</em>&#8209;ом које\nсам приметио, тај текст ћу допуњавати у наредном периоду.	html	https://strahinja.org/blog/2024-02/20240216/			
1705308020	Sourcehut проп'о	https://strahinja.org/blog/2024-01/20240115/	<p>\nДок ово пишем, већ пет дана, почевши од 10.1.2024., траје агонија сервиса за\nхостовање софтверских пројеката <em>Sourcehut</em>. Наиме, од тада нису доступни, или\nсу спорадично доступни, сви придружени сервиси на доменима који се завршавају на\n<em>sr.ht</em>. Не упуштајући се детаљније у теорије о томе шта је узрок овом нападу\n(<em>Microsoft</em> са својим <em>Github</em>&#8209;ом има највећи мотив; ово личи на класично\n<em>Microsoft</em>&#8209;ово минирање конкуренције свим, па и прљавим, средствима), који су\nна сајту <a href="https://status.sr.ht/"><em>status.sr.ht</em></a> описали речима:\n\n<blockquote> We deal with ordinary DDoS attacks in the normal course of operations, and we\n are generally able to mitigate them on our end. However, this is not an\n ordinary DDoS attack; <strong>the attacker posesses considerable resources and is\n operating at a scale beyond that which we have the means to mitigate\n ourselves.</strong> <span class="r">[ист.СР]</span> In response, before we could do much\n ourselves to understand or mitigate the problem, our upstream network provider\n null routed SourceHut entirely, rendering both the internet at large, and\n SourceHut staff, unable to reach our servers.</blockquote>\n\n<p>тј. (прев. СР):\n\n<blockquote> Током уобичајеног рада, сусрећемо се са обичним <em>DDoS</em> нападима, које обично\n можемо сами да одбијемо. Међутим, ово није обичан <em>DDoS</em> напад. Нападач\n <strong>поседује значајне ресурсе и дејствује у размерама ван оних које можемо сами\n да одбијемо.</strong> <span class="r">[ист.СР]</span> Стога је, пре него што смо било шта\n могли сами да учинимо да бисмо разумели или решили проблем, наш провајдер у\n потпуности <a href="https://en.wikipedia.org/wiki/Black_hole_(networking)"><em>null</em>&#8209;рутирао</a> <em>SourceHut</em>, што је онемогућило како\n цео Интернет, тако и особље <em>SourceHut</em>&#8209;а, да приступе нашим серверима.</blockquote>\n\n<p>ово значи да је врло вероватно да у наредних неколико недеља репозиторијуми и\nстранице мојих програма могу бити недоступни.\n\n<p>Стога сам на страници „Програми“ свим пројектима за које то има смисла додао и\nархивиране верзије њихових репозиторијума, хостоване на мом сајту, као\nалтернативе директном приступу репозиторијумима. Наравно, право решење би био\n<em>VPS</em>, где бих директно понудио <code>git://</code> приступ, али је он за мене лично\nбаснословно скуп (ако се не изузме <em>Google Cloud</em> или неки сличан сервис, а њих\nне желим да користим). Такође немам намеру да се враћам на <em>Github</em>.	html	https://strahinja.org/blog/2024-01/20240115/			
1704459005	Упутство за plist	https://strahinja.org/blog/2024-01/20240105/	<p>Пошто се у последње време бавим писањем уређивача текста за\n<em>Window&nbsp;Maker</em>/<em>WINGs</em>, написао сам <a href="/tekstovi/softver/wproplist/">упутство</a> за коришћење функција\nза програмирање читања и писања <em>Property List</em> (<em>plist</em>) датотека које се у\n<em>Window&nbsp;Maker</em>&#8209;у користе за датотеке са подешавањима и меније. Ради се о првој\nтекстуалној верзији тог формата коришћеној на <em>NeXTSTEP</em> рачунарима.	html	https://strahinja.org/blog/2024-01/20240105/			
1703243880	Најновије ≠ најбоље	https://strahinja.org/blog/2023-12/20231222/	<p>\nУ тачност релације из наслова уверио сам се још једном јуче, при покушају\nсинхронизације датотека <em>Syncthing</em>&#8209;ом. За оне који не знају за њега, ради се\nо програму за синхронизацију датотека. Принцип је следећи: (рецимо) сликате\nслику на телефону, покренете <em>Syncthing</em> док сте прикључени на <em>Wi&#8209;Fi</em>,\nпокренете <em>Syncthing</em> на другом уређају, и ако сте подесили да се директоријум\n(рецимо) <em>/storage/emulated/0/DCIM/New</em> синхронизује са неким директоријумом на\nциљном уређају, слике се магично појаве на њему. Ако онда на том другом уређају\nобришете неке неуспеле слике, оне се исто тако магично обришу и на телефону.\nСлично важи и за било какве датотеке у општем смислу, рецимо документе,\n<em>PDF</em>&nbsp;датотеке, итд.\n\n<p>Уместо да се у програму <a href="https://github.com/canton7/SyncTrayzor"><em>SyncTrayzor</em></a> отвори веб интерфејс\n<em>Syncthing</em>&#8209;а и да се датотеке „магично“ појаве на одредишном рачунару који\nкористим на послу, а који ради под <em>Windows</em>&#8209;ом&nbsp;7, дочекао ме је празан прозор\n<em>SyncTrayzor</em>&#8209;а, са <em>log</em> прозором садржине сличне овој:\n<pre>\nException 0xc0000005 0x8 0x0 0x0\nPC=0x0\n\nruntime.asmstdcall()\n        runtime/sys_windows_amd64.s:65 +0x75 fp=0x22fca0 sp=0x22fc80 pc=0x473dd5\nrax     0x0\nrbx     0x1a27f20\nrcx     0x1a87ec0\nrdi     0x7fffffdd000\nrsi     0x22fea0\nrbp     0x22fde0\nrsp     0x22fc78\n...\n</pre>\n<p>итд. Претрагом на Интернету сам сазнао да је проблем у томе што су они који\nодржавају језик&nbsp;<em>Go</em>, у коме је писан <em>Syncthing</em>, просто <a href="https://github.com/golang/go/issues/52188">одлучили</a>\nда следе одлуку Мајкрософта да прекине подршку за <em>Windows</em>&nbsp;7.  А\n<a href="https://github.com/golang/go/issues/64622">корисници</a>? Шта се па они питају? Важан је Мајкрософт... Ако неко\nнема пара да купи најновији хардвер, који подржава најновију верзију\n<em>Windows</em>&#8209;а и да плати непримерено високу цену лиценце, у визији <em>big tech</em>\nкомпанија он просто нема права да постоји. Све фирме морају давати харач\nиндустрији хардвера, набавком новог, неколико пута годишње, и Мајкрософту и\nдругим „играчима“ плаћањем астрономских цена лиценци.\n\n<p>Мора се истаћи да је оно што би пре десетак&#8209;двадесетак година у овом конкретном\nслучају било сматрано незамисливо аматерским, то да уместо поруке о\nнекомпатибилности нове верзије програма, корисници добијају нефункционалан\nпрограм који их „части“ стањем процесорских регистара. Опет: кога брига за\nкориснике? Они су најмање битни.\n\n<p>Ово је савршен пример зашто је јурњава за најсвежијим верзијама софтвера штетна,\nзашто је <em>„always online“</em> принцип лош, а такође и зашто су <strong>лоши и штетни\nпрограмски језици који зависе од система пакета,</strong> (који морају увек бити\nажурни) као што је <em>Go</em>, али и данас форсирани <em>Rust</em>, па и <em>Python</em>,\n<em>JavaScript</em> и слични.	html	https://strahinja.org/blog/2023-12/20231222/			
1702395154	wmgen	https://strahinja.org/blog/2023-12/20231212/	<p>Менаџер прозора <a href="https://www.windowmaker.org"><em>Window Maker</em></a> користи сопствену библиотеку,\n<a href="https://www.windowmaker.org/docs/wings.html"><em>WINGs</em></a>. За разлику од пројекта <a href="https://gnustep.github.io"><em>GNUstep</em></a> који представља\nслободну имплементацију <em>Apple</em>&#8209;овог <em>API</em>&#8209;ја <em>Cocoa</em>, који се користио у\n<em>NeXTSTEP</em> рачунарима, и написан је у језику <em>Objective-C</em>, <em>WINGs</em> је прилично\nлагана библиотека у језику&nbsp;<em>C</em>, која се ослања на библиотеку <em>Xlib</em>. Иако\n<em>WINGs</em> има недостатака, он је послужио за прављење апликације за подешавање\n<em>Window&nbsp;Maker</em>&#8209;а <em>WPrefs</em> и <a href="https://github.com/roblillack/fsviewer">апликације&nbsp;<em>FSViewer</em></a>. Ипак,\nапликације које користе <em>WINGs</em> личе на апликације са <em>NeXTSTEP</em>&#8209;а, чија\nелеганција плени и дан&#8209;данас.\n\n<p>\nПре неки дан сам објавио <em>wmgen</em>, костур и генератор за нове апликације које\nкористе <em>WINGs</em>. Он се може наћи на адреси:\n\n<p><a href="https://sr.ht/~strahinja/wmgen/"><em>https://sr.ht/~strahinja/wmgen/</em></a>\n\n<p>Тренутни изглед основне верзије апликације генерисане уз помоћ <em>wmgen</em>&#8209;а 0.3 је\nна слици:\n\n<p><a href="/img/blog/20231212-01.png">\n<figure>\n<img src="/img/blog/20231212-th-01.png" alt="Костур WINGs апликације" width="443" height="200"><figcaption>Костур WINGs апликације</figcaption>\n</figure>\n\n<p></a>	html	https://strahinja.org/blog/2023-12/20231212/			
1700427534	Упутство за Window Maker	https://strahinja.org/blog/2023-11/20231119/	<p>Пошто сам <a href="/blog/2023-11/20231101/">недавно</a> креирао локализацију <em>Window&nbsp;Maker</em>&#8209;а на\nсрпски, данас сам поставио и упутство за подешавање <em>GTK</em> и <em>Qt</em> окружења тако\nда подсећа на <em>NeXTSTEP</em> и <em>OPENSTEP</em>. <a href="/tekstovi/softver/wmaker/">Упутство</a> сам додао у списак\nтекстова.	html	https://strahinja.org/blog/2023-11/20231119/			
1699780889	Речник	https://strahinja.org/blog/2023-11/20231112/	<p>\nВећ неко време у <a href="https://sr.ht/~strahinja/translations/">репозиторијуму мојих превода</a> чувам преводе\nпојединачних израза у датотеци <a href="/recnik/dict.tsv"><em>dict.tsv</em></a>. Недавно сам поставио и\n<a href="/recnik/">посебну страницу са преводима</a> генерисану из те датотеке.\n\n<p>Од како сам почео да се бавим локализацијом софтвера на српски, нешто слично сам\nчувао у датотеци у формату <em>XML</em>, али <em>TSV</em> je свакако много боље решење. Ипак,\nвероватно ћу ускоро поставити и тај стари речник.	html	https://strahinja.org/blog/2023-11/20231112/			
1698864677	Прозорџија	https://strahinja.org/blog/2023-11/20231101/	<p>Када се тражи једноставан менаџер прозора, постоји читав низ примера, као што су\n<em>dwm</em>, <em>cwm</em> или <em>i3wm</em>. Међутим, ако се постави услов да они буду и\n„пријатељски према кориснику“, тј. приступачни и почетницима, вероватно би се\nмало ко сетио <a href="https://www.windowmaker.org"><em>Window Maker</em></a>&#8209;а.\n\n<p>\nПоследњих дана сам радио на преводу <em>Window Maker</em>&#8209;а на српски, и данас је\nтај превод дошао до тачке да може да се пошаље у виду печа <code>git\nsend-email</code>&#8209;ом.\n\n<figure>\n<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>\n</figure>\n\n\n<p>На слици се види локализација програма за подешавања <em>Window Maker</em>&#8209;а,\n<em>WPrefs</em>, на српски. Апликација <a href="https://github.com/roblillack/fsviewer/issues/5"><em>FSViewer</em> није локализована</a>,\nали ако то буде могуће намеравам да радим и на њеној локализацији.	html	https://strahinja.org/blog/2023-11/20231101/			
