<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[nusunt.eu]]></title><description><![CDATA[b(ar)log-ul lui Floris]]></description><link>https://nusunt.eu/</link><image><url>https://nusunt.eu/favicon.png</url><title>nusunt.eu</title><link>https://nusunt.eu/</link></image><generator>Ghost 5.10</generator><lastBuildDate>Sun, 12 Apr 2026 23:14:23 GMT</lastBuildDate><atom:link href="https://nusunt.eu/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[How to: PHP extension with Nix]]></title><description><![CDATA[<p>Was working on porting most of our docker images at work to building them using nix [check <a href="https://xeiaso.net/talks/2024/nix-docker-build/">this</a> for more info] and found one of our older images in need of some love.</p><p>As it happens it contained <code>ext-dbase</code>, a php extension that has no package in nixpkgs. Dbase is</p>]]></description><link>https://nusunt.eu/how-to-package-a-nix-php-extension/</link><guid isPermaLink="false">661e362073285d9a139cc3e3</guid><category><![CDATA[linux]]></category><category><![CDATA[nix]]></category><category><![CDATA[php]]></category><dc:creator><![CDATA[Floris]]></dc:creator><pubDate>Tue, 16 Apr 2024 08:44:45 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1599507593548-0187ac4043c6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDN8fHBocHxlbnwwfHx8fDE3MTMyNTYwNTV8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1599507593548-0187ac4043c6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDN8fHBocHxlbnwwfHx8fDE3MTMyNTYwNTV8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="How to: PHP extension with Nix"><p>Was working on porting most of our docker images at work to building them using nix [check <a href="https://xeiaso.net/talks/2024/nix-docker-build/">this</a> for more info] and found one of our older images in need of some love.</p><p>As it happens it contained <code>ext-dbase</code>, a php extension that has no package in nixpkgs. Dbase is such an old and odd little thing, it is a sort of Excel file combined with some sqlite abilities. Something that came from another era entirely.</p><p>Since it is that old I see no reason for me to add it to nixpkgs so how would I go to build it just for me?</p><p>Surprinsingly, Nix loves php. So it is pretty straight forward if the darn thing is in PECL. I wanted to share this in case some other bloke looking for a dbase fix stumbles upon this somehow:</p><pre><code class="language-nix"># php.nix
{ pkgs ? import &lt;nixpkgs&gt; { }, php}:
with pkgs;
let
  dbase = php.buildPecl
    rec {
      pname = &quot;dbase&quot;;
      version = &quot;7.1.1&quot;;

      src = fetchFromGitHub {
        owner = &quot;php&quot;;
        repo = &quot;pecl-database-dbase&quot;;
        rev = &quot;ba33dfe16f13c2093d19f93deb316390151aa729&quot;;
        sha256 = &quot;djtRnx5rFGkRzs/Jai8m5zCBkJtHk1xZmJ0fra7EXeY=&quot;;
      };

      buildInputs = [ libuv ];

      meta = with lib; {
        description = &quot;Interface to dbase for php&quot;;
        license = licenses.php301;
        homepage = &quot;https://github.com/php/pecl-database-dbase&quot;;
        maintainers = teams.php.members;
        platforms = platforms.linux;
      };
    };
in
php.buildEnv {
  extensions = ({ enabled, all }: enabled ++ (with all; [
    dbase
  ]));
}
</code></pre><p>Then, instead of the php package you normally use, use the above to create a derivation based on the php version you want with your extension enabled:</p><pre><code class="language-nix">... 
php82WithDbase = import ./php.nix { php = pkgs.php82; };
...</code></pre><p>That&apos;s it! Very simple.</p>]]></content:encoded></item><item><title><![CDATA[Sacrificiile pe care le facem ca sa jucam pe Linux]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://nusunt.eu/content/images/2022/09/wow-wotlk-date-2.jpg" class="kg-image" alt loading="lazy" width="800" height="450" srcset="https://nusunt.eu/content/images/size/w600/2022/09/wow-wotlk-date-2.jpg 600w, https://nusunt.eu/content/images/2022/09/wow-wotlk-date-2.jpg 800w" sizes="(min-width: 720px) 720px"></figure><p>Nu m-am mai atins de Windows de peste 10 ani, iar chiar daca o fac interactiunea mea se limiteaza la un editor de cod care editeaza pe un server remote care ruleaza Linux.</p><p>Pur si simplu, in ultimii ani nu mai e nevoie sa faci dual boot Windows ca sa</p>]]></description><link>https://nusunt.eu/sacrificiile-pe-care-le-facem-ca-sa-jucam-pe-linux/</link><guid isPermaLink="false">632c0caf73285d9a139cc2d0</guid><category><![CDATA[poveste]]></category><category><![CDATA[gaming]]></category><category><![CDATA[linux]]></category><dc:creator><![CDATA[Floris]]></dc:creator><pubDate>Thu, 22 Sep 2022 08:24:21 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://nusunt.eu/content/images/2022/09/wow-wotlk-date-2.jpg" class="kg-image" alt loading="lazy" width="800" height="450" srcset="https://nusunt.eu/content/images/size/w600/2022/09/wow-wotlk-date-2.jpg 600w, https://nusunt.eu/content/images/2022/09/wow-wotlk-date-2.jpg 800w" sizes="(min-width: 720px) 720px"></figure><p>Nu m-am mai atins de Windows de peste 10 ani, iar chiar daca o fac interactiunea mea se limiteaza la un editor de cod care editeaza pe un server remote care ruleaza Linux.</p><p>Pur si simplu, in ultimii ani nu mai e nevoie sa faci dual boot Windows ca sa joci, datorita noilor dezvoltari de la Wine si Proton (Valve &#xA0;+ Steam) merge exact la fel (daca nu mai bine in unele cazuri) pe Linux.</p><p>Pe 26 septembrie se re-lanseaza expansiunea si iar ma prinde cu nadragii in vine. Nu am caracter lvl 70. Sunt noob, dar am o viata inafara jocului care nu-mi permite sa bag timp in el. Dar, poate pot macar sa ajut putinii nebuni care joaca de pe Linux, inclusiv nebunii care joaca WoW pe Steamdeck din pat!</p><p>Ultimul update de la Battle net a adus cu el haos pentru utilizatorii de Linux. (<a href="https://bugs.winehq.org/show_bug.cgi?id=53697">Wine Bug</a>, <a href="https://us.forums.blizzard.com/en/blizzard/t/last-update-completely-breaks-wine-compatibility/33122/225">WoW Discussion</a>). Ok, nu suntem pe o platforma sustinuta oficial ... dar zau ca nu pare intentionata treaba. Parca e axata sa nu te lase sa joci de pe Steamdeck. Oricum, exista o solutie, dar nu e frumi si nici usoara. Dar cand ne-au placut noua lucrurile usoare?</p><h3 id="planul">Planul</h3><p>Foarte simplu, plecam de la ipoteza ca doar update-ul jocului nu merge (fapt confirmat de multi nebuni care au copiat pe Steamdeck folderele wow). Apoi, nu ma astept ca aceasta solutie sa mearga direct pe Steamdeck; sau poate merge, dar nu am un Steamdeck sa verific. If it&apos;s Linux it should work, dar nu bag mana in foc.</p><p>Facem asa:</p><ol><li>Ridicam un VM cu Windows</li><li>Instalam Battle.net pe acest VM si descarcam jocul</li><li>Luam fisierele jocului pe Linux (Host)</li><li>Rulam jocul prin Wine</li></ol><h3 id="vm-cu-windowslxd-sare-in-ajutor">VM cu Windows - LXD sare in ajutor</h3><p>E un proces relativ simplu, foarte bine explicat mai jos:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://ubuntu.com/tutorials/how-to-install-a-windows-11-vm-using-lxd#1-overview"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to install a Windows 11 VM using LXD | Ubuntu</div><div class="kg-bookmark-description">Ubuntu is an open source software operating system that runs from the desktop, to the cloud, to all your internet connected things.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://assets.ubuntu.com/v1/17b68252-apple-touch-icon-180x180-precomposed-ubuntu.png" alt><span class="kg-bookmark-author">Ubuntu</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://assets.ubuntu.com/v1/ebdfffbf-Aubergine_suru_background.png" alt></div></a></figure><p>Sugerez doar sa dati VM-ului ceva mai mult disk, deoarece nu am reusit sa montez vreun volum si pe host si pe VM si fisierele jocului sunt duplicate.</p><p>Completeaza procesul de install, descarca battle net si pune jocul la descarcat. Seteaza calea catre jocuri sa fie separata (eu am setat-o in C:\Games).</p><h3 id="sambashare-esti-ok">Sambashare esti ok?</h3><p>Nu am mai folosit de mult samba, dar aparent inca e in viata si merge bine. Momentan nu se poate face mount (sau nu am stiut eu cum 9p - virtiofs, fuck lucrurile se complica cand ai de a face cu VM-uri) asadar a trebuit sa fac un artificiu.</p><p>Solutia e tare simpla; click dreapta pe folderul unde este WoW instalat, share with everyone (read) si gata treaba in VM.</p><p>Apoi pe hostul tau de Linux:</p><!--kg-card-begin: markdown--><pre><code>sudo mount -t cifs //10.208.48.178/Games /home/$USER/WindowsGames -o username=$SAMBAUSER,password=$SAMBAPASSWD,iocharset=utf8
</code></pre>
<!--kg-card-end: markdown--><p>Rsync the files din mountul respectiv unde ai tu nevoie dupa ce se descarca jocul. Si apoi ruleaza jocul in mod normal (cu Wine sau Proton).</p><h3 id="si-daca-mai-am-vreun-update-ce-fac">Si daca mai am vreun update ce fac?</h3><p>Aprinde din nou vm-ul, descarca update-urile de battle net.</p><p>Mount si rsync din nou si gata. Chiar a trebuit sa fac asta ca sa fac screenshotul de mai jos. Ne vedem acolo!</p><h3 id="ne-vedem-in-azeroth">Ne vedem in Azeroth!</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nusunt.eu/content/images/2022/09/wow.png" class="kg-image" alt loading="lazy" width="2000" height="837" srcset="https://nusunt.eu/content/images/size/w600/2022/09/wow.png 600w, https://nusunt.eu/content/images/size/w1000/2022/09/wow.png 1000w, https://nusunt.eu/content/images/size/w1600/2022/09/wow.png 1600w, https://nusunt.eu/content/images/size/w2400/2022/09/wow.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>Hello from Azeroth!</figcaption></figure>]]></content:encoded></item><item><title><![CDATA[Batalia pentru Linux pe laptopuri cu ARM64: mai dureaza?]]></title><description><![CDATA[Laptopuri ale caror baterie se masoara in zile nu in ore. Conectate tot timpul ...
ce tare ar fi sa poata rula si Linux. ]]></description><link>https://nusunt.eu/batalia-linux-pe-arm/</link><guid isPermaLink="false">6307755973285d9a139cbc43</guid><category><![CDATA[poveste]]></category><category><![CDATA[linux]]></category><category><![CDATA[arm64]]></category><dc:creator><![CDATA[Floris]]></dc:creator><pubDate>Thu, 25 Aug 2022 16:55:53 GMT</pubDate><content:encoded><![CDATA[<hr><h2 id="salvatorul-nostru-arm64">Salvatorul nostru ARM64</h2><p><em>Visez de multi ani asta</em>:</p><p>Laptopuri ale caror baterie se masoara in zile nu in ore. Conectate tot timpul si indeajuns de puternice cat sa iti faci treaba cu ele. Complet liber, pe varf de munte sau jos pe plaja.</p><p><em>Si in sfarsit se intampla ... dar totusi: ce tare ar fi sa poata rula si <strong>Linux</strong></em>. </p><blockquote>Salut! Asta e prima poveste din aventura cu laptopul meu cu Snapdragon 8cx Gen 2 pe care am reusit sa bootez linux. Desigur de la boot-up la facut ceva util pe el, e drum lung. Dar dupa un an inca sunt optimist.<br><br>Oh, si in genul asta de chenar o sa vorbesc cu tine, mai la per-tu daca-mi permiti.<br><br>Enjoy.</blockquote><hr><h2 id="suportul-pentru-linux-da-sigur">Suportul pentru Linux? Da, sigur ...</h2><p>Sau cum mai zic eu: <em>Sunet? Pe linux? Ai innebunit?</em></p><p>Chipuri proprietare. Arhitecturi din ce in ce mai complexe. Si developeri cu spirit de hackeri. Asa se da lupta. Hackeri vs Big Corps. Zici ca suntem la inceput de anii 2k din nou.</p><h3 id="more-chips-more-problems">More chips = more problems</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://nusunt.eu/content/images/2022/08/snaparch.jpg" class="kg-image" alt loading="lazy" width="1069" height="548" srcset="https://nusunt.eu/content/images/size/w600/2022/08/snaparch.jpg 600w, https://nusunt.eu/content/images/size/w1000/2022/08/snaparch.jpg 1000w, https://nusunt.eu/content/images/2022/08/snaparch.jpg 1069w" sizes="(min-width: 720px) 720px"><figcaption>Un procesor mai vechi, but you get the picture</figcaption></figure><p>Arhitecturile la aceste laptopuri cu ARM64 isi trag inspiratia din telefoanele si tabletele noastre de zi cu zi. Keyword-ul aici este offloading-ul. Procesorul da mai departe taskurile de specialitate la chipurile-aghiotante, iar sub-chipurile stiu sa comunice si intre ele. Inca un layer de complexitate!</p><p>Procesorul specializat pentru power management controleaza pe restul sa vada daca careva isi depaseste felia alocata. Always-on, nu-i o gluma. Astea chiar n-au somn!</p><h3 id="firmware-ul-bata-l-vina">Firmware-ul bata-l vina</h3><p>Fiecare chip/sub-chip vine pe gen acum cu firmware-ul lui de la producator si sunt puse pe o partitie speciala, ascunsa dupa partitia de boot. Daca le pierzi, iti brickuiesti sigur device-ul.</p><p>Asta pentru ca toate aceste device-uri cu ARM64 sunt tratate ca si SOC (System On Chip) nu ca si uhmm calculatoare de sine statatoare pe care poti sa bagi ce vrei tu. Bagi ce vrea OEM-ul, nu ce vrei tu. </p><p>Ce e interesant este ca Qualcomm chiar da kituri de dezvoltare pentru developeri care arata foarte asemanator cu kiturile de arduino sau raspberry pi. Acele kituri sunt defapt singurele lucruri de care se pot lega curajosii developeri deobicei ca sa inteleaga cum functioneaza acele sisteme.</p><blockquote>WARNING! It is not currently possible to recover these devices if something horrible happens<br><br><a href="https://github.com/aarch64-laptops/build#it-is-not-currently-possible-to-recover-these-devices-if-something-horrible-happens">#aarch64-laptops</a>: avertisment pentru incepatori din partea comunitatii cele mai active pe aceasta parte</blockquote><h3 id="one-more-thing-adica-inca-un-standard">&quot;One more thing&quot; ... adica inca un standard</h3><p>Pana acum avem multe chipuri, cu firmware proprietar, livrate pe device direct. It gets worse. Interfata intre firmware si OS este intr-un fel proprietara si ea. Sa explic.</p><p>Felul cum stie Windowsul ce firmware sa apeleze in functie de chip, este printr-o interfata numita ACPI. Ei bine ACPI sta intre firmware si OS. OS-ul apeleaza prin ACPI functiile firmware-ului. Asta inseamna ca de multe ori firmware-ul trebuie sa suporte OS-ul. </p><blockquote>Istoric vorbind ACPI-ul nu trebuia sa ajunga in asa hal, el fiind conceput la inceput strict din perspectiva power-management-ului si pentru a da cateva hinturi OS-ului pe ce platforma ruleaza. <br><br>Acum specificatia are vreo 1k pagini daca vrei sa o citesti. Poate de-asta OEM-urile nu-l respecta in totalitate. </blockquote><p>Acum, nu stiu daca va asteptati sau nu: dar <strong>nu toate firmware-urile prin ACPI de pe arm64 suporta Linux</strong>. Iar, pentru ca un firmware sa existe separat de configuratia dispozitivului, in Linux s-a inventat <strong>DTS-ul (Device Tree Syntax)</strong>. Acestea descriu total sau partial dispozitivul, se incarca la boot si trimit kernelului pentru ca acesta sa stie ce driver sa incarce pentru fiecare sistem.<br><br><strong>DTS</strong>-urile, in stil Linux caracteristic, sunt elegante, bine gandite, dar si mai greu putin de implementat. Nu toti au stomacul sau know-how-ul sa-si desfaca laptopul bijuterie si sa lege electrozii la el ca sa-si dea seama cum functioneaza.</p><h2 id="defapt-aveam-de-mult-asta-doar-ca-era-inutilizabil">Defapt, aveam de mult asta, doar ca era inutilizabil ...</h2><p>Quote de la dictatorul nostru preferat Linus Torvalds care s-a alaturat revolutiei arm64 si a facut release-ul la 5.19 de pe un macbook. Not bad!</p><blockquote>On a personal note, the most interesting part here is that I did the release (and am writing this) on an arm64 laptop. It&apos;s something I&apos;ve been waiting for for a _loong_ time, and it&apos;s finally reality, thanks to the Asahi team. We&apos;ve had arm64 hardware around running Linux for a long time, but none of it has really been usable as a development platform until now.<br><br><a href="https://lore.kernel.org/lkml/CAHk-=wgrz5BBk=rCz7W28Fj_o02s0Xi0OEQ3H1uQgOdFvHgx0w@mail.gmail.com/T/#u">#lkml:</a> anunt release linux kernel 5.19</blockquote><p>Defapt asta insumeaza foarte bine toata situatia cu Linuxul pe dispozitive arm64. De-abia acum se desgheata lucrurile si incep sa se vada progrese mari.</p><p>Gratie hackerilor de android care au avut know-how-ul cu chipseturile, gratie hackerilor de console video care stiu cum sa bage orice soft pe ele prin metode inovative, gratie lor avem ceva util acum.</p><h3 id="in-fine-dar-de-ce-e-interesant">In fine, dar de ce e interesant?</h3><p>E ca vestul salbatic acum. Apple a lansat provocarea si Qualcomm/Microsoft le raspund. Intre timp, hackerii de pe Linux tot ciocanesc ca sa prinda din urma si nu va mai trece mult timp sa vedem suport Linux peste tot.</p><p>Device-urile sunt super quirky; vorbim aici de foldables, cu stylus-uri, senzori amprente, modemuri 5g, sd carduri ca si stocare, touch screen-uri, senzori de miscare, chipuri ultra-secure de recunoastere faciala, chipuri de ML, you name it they have it.</p><p>Developmentul e foarte quick-and-hacky, se experimenteaza si testeaza foarte mult. Contribuitorii deseori lucreaza orbi si ca sa faca ceva modifica subansamble intregi din kernel. Nu am mai vazut de mult asta si sunt foarte entuziasmat.</p><h2 id="gata-cu-vorba-hai-la-treaba">Gata cu vorba, hai la treaba</h2><p>Asta a fost prima parte. Nu am pornit cu gandul sa o scriu, dar imi place sa dau context lucrurilor.</p><p>In urmatoarele parti vom explora cum faci bring-up la Linux pe un laptop cu arm64:<br><br>- compilarea kernelului<br>- creerea unei imagini bootabile cu kernelul custom<br>- mecanismul de testare pe dispozitiv<br>- mecanisme de debugging<br>- instalarea unui distro</p><p>Pe mai tarziu.</p>]]></content:encoded></item><item><title><![CDATA[Prima postare]]></title><description><![CDATA[<p>Fac multe experimente ciudate/esoterice cu tehnologia si am ajuns intr-un punct in care informatiile sunt mai greu de gasit. Asadar, vreau sa pun ce aflu si ce gasesc undeva in caz ca vine altul ca mine care a ajuns sa caute pe pagina 10 din goagle.</p><p>Pe langa asta,</p>]]></description><link>https://nusunt.eu/prima-postare/</link><guid isPermaLink="false">6304510f7951023708813bc9</guid><category><![CDATA[News]]></category><dc:creator><![CDATA[Floris]]></dc:creator><pubDate>Tue, 23 Aug 2022 04:01:19 GMT</pubDate><content:encoded><![CDATA[<p>Fac multe experimente ciudate/esoterice cu tehnologia si am ajuns intr-un punct in care informatiile sunt mai greu de gasit. Asadar, vreau sa pun ce aflu si ce gasesc undeva in caz ca vine altul ca mine care a ajuns sa caute pe pagina 10 din goagle.</p><p>Pe langa asta, nu prea se scrie continut in romana despre tehnologie (de-asta am zis ca pot sa scap sa nu folosesc diacritice). Nu vorbim aici de lucruri normale si utile cum ar fi un review la vreun toaster, laptop sau laptop care dupa 2 minute se transforma in toaster. </p><p>Povestile vor fi scurte sau lungi incursiuni in tehnologiile actuale. Experimente pe care eu le fac din cand in cand sa vad cat de departe din punct de vedere tehnic pot sa trag de ce avem deja. In mare parte ma intereseaza cum putem sa creeam procese care ne inlesnesc munca de zi cu zi.</p><p>Poate o sa fie o poveste pe luna, sau odata la 2 luni. Depinde. Am o viata agitata si nu as vrea sa schimb asta. Pe mai tarziu.</p>]]></content:encoded></item></channel></rss>