Labas, keliautojau. Atsipūsk, paskaityk, pamąstyk

Mintys ir tekstai apie kalbas, kasdienę filosofiją, programų inžineriją, "pasidaryk pats" techniniai gidai bei gyvenimo Vokietijoje gidai

Publikuok Python paketą į PyPI su uv

Labas! Šiandien sužinosime kaip nuo nulio susikurti ir publikuoti Python paketą į PyPI su uv programa. uv yra labai greita, todėl programavimas su ja dar smagesnis! Įsidiegiame uv Jeigu dar neturi uv, įsidiek jį terminale: # macOS / Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Windows powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" Įsitikink, kad veikia: uv --version Sukuriame naują biblioteką uv turi patogią komandą projektui inicijuoti. Naudosime --lib vėliavėlę, kuri sukuria biblioteką (angl. library) — paketą, skirtą naudoti kituose projektuose. ...

pr, kov. 9, 2026 · 4 min. · Ąžuolas Krušna

Sugrok MIDI failą su FluidSynth

Labas, šiandien grosime MIDI failus terminale! Aš nutariau pažvelgti į savo magistro darbą šviežiomis ausimis ir akimis. Jau po daugelio metų – daugiau nei septynių! Jau kaip patyręs programuotojas. Tuo metu kūriau muziką su rekursiniais neuroniniais tinklais – aido neuroniniais tinklais. Džiaugiuosi tuometine savo ambicija ir drąsa. Tačiau šiandien ne apie tai. Šiandien apie MIDI failų sugrojimą! Tam mes naudojame FluidSynth programą. Kas yra FluidSynth? FluidSynth yra programinis sintezatorius (angl. software synthesizer), kuris skaito MIDI failus ir paverčia juos garsu naudodamas SoundFont (.sf2) garso bankus. SoundFont — tai failas, kuriame saugomi tikrų instrumentų garso pavyzdžiai (angl. samples). Kai FluidSynth gauna MIDI instrukciją, pavyzdžiui, “pagrok man do natą fortepijonu”, jis paima atitinkamą įrašytą do natos skambesį iš Soundfont failo ir mums sugroja. ...

sk, kov. 8, 2026 · 6 min. · Ąžuolas Krušna

Pakeisk git repozitorijos nuotolinį adresą

Labas! Šiandien pasikeisime git repozitorijos nuotolinį adresą (URL). Tai padaryti labai paprasta su šia komanda: git remote set-url origin https://naujas-adresas.git Mums tereikia pakeisti https://naujas-adresas.git į mūsų norimą repozitorijos adresą. Kaip sužinoti koks yra mūsų dabartinis repozitorijos adresas? Tai galime pasitikrinti šia komanda: git remote -v Rezultatas gali atrodyti taip: origin https://github.com/senas-vartotojas/repozitorija.git (fetch) origin https://github.com/senas-vartotojas/repozitorija.git (push) Tada pasinaudojame git remote set-url komanda, kad pakeistume adresą: git remote set-url origin https://github.com/naujas-vartotojas/repozitorija.git Galiausiai patikriname ar adresas pasikeitė: ...

sk, vas. 8, 2026 · 1 min. · Ąžuolas Krušna

Kaip naudoti du skirtingus SSH raktus

Tai galime pasiekti apsirašant kokius raktus kada naudoti ~/.ssh/config faile. Pirmiausia, mums reikia įsitikinti, kad turime raktus savo kompiuteryje bei kodo versijavimo (toliau kaip pavyzdį naudosime tik Github, tačiau šis gidas tinka ir kitom git kodo versijavimo platformoms) svetainėje. Jeigu neturime raktų, galime juos susikurti # Asmeninis raktas ssh-keygen -t ed25519 -C "your@personal.email" -f ~/.ssh/id_ed25519_personal # Darbo raktas ssh-keygen -t ed25519 -C "your@work.email" -f ~/.ssh/id_ed25519_work Tai mums sukurs 4 failus ~/.ssh direktorijoje: ...

pr, saus. 26, 2026 · 3 min. · Ąžuolas Krušna

Kaip naudoti du skirtingus git vartotojus

Labas. Nusirodyti git vartotojo vardą ir el. paštą galime kiekvienoje repozitorijoje atskirai. Tačiau galime ir tai automatiškai susikonfigūruoti pagal direktorijas. Atskirai Kiekvienai repozitorijai galime nustatyti vartotojo vardą ir el. paštą git config komanda. cd ~/personal/personal-project git config user.name "Name Surname" git config user.email "your@personal.email" Pagal direktoriją Galime tai susikonfigūruoti ~/.gitconfig faile naudodami includeIf sąlygą. Pavyzdžiui, šiame faile apsirašome globaliai naudojamą git vartotojo vardą, el. paštą ir įtraukiame salygą naudoti kitą konfigūraciją tam tikroj direktorijoj esančioms repozitorijoms — mūsų atveju ~/personal/. Nurodome, kad naudoti šį konfigūracijos failą — ~/.gitconfig-personal. ...

pr, saus. 26, 2026 · 2 min. · Ąžuolas Krušna

Teisinis įgaliojimas Vokietijoje

Teisinis įgaliojimas Vokietijoje vadinamas “Vollmacht” (liet. pilna teise). Šis dokumentas suteikia teisę kitam žmogui atstovauti tavo vardu tam tikroje srityje. Pavyzdžiui, prisiregistruoti savo adresą Vokietijoje, atsiimti pasą, asmens tapatybės kortelę ar vairuotojo pažymėjimą. Teisinis įgaliojimas atsiimti vairuotojo teises Aš užsisakiau vairuotojo pažymėjimą Vokietijoje, kurį gamina nuo 4 iki 6 savaičių, ir man suteikė atsiėmimo dieną tuo metu, kai aš nebūsiu Vokietijoje. Pradėjau gilintis ar yra galimybė kitam asmeniui atsiimti vairuotojo pažymėjimą už mane. Taip, Vokietija tokią galimybę siūlo suteikiant kitam asmeniui teisinį įgaliojimą atsiimti vairuotojo teises. Kaip jį paruošti? ...

kt, liep. 17, 2025 · 2 min. · Ąžuolas Krušna

Draugiškos Python klasės

Labas, šiandien noriu pasidalinti draugiškomis Python klasėmis. Tai tokios klasės, su kuriomis man dirbti smagiausia. Instrumentai, sukurti draugiškai klasei Nulipdyti draugišką klasę naudosimės Duomenų klasėmis (dataclasses), Operatorių aprašymu (operator overloading) Kompozicijos vietoj paveldėjimo principu (composition over inheritance) Taigi, kokios tos draugiškos Python klasės? A. Jas lengva suprasti ir su jomis susikalbėti (lengva skaityti ir rašyti) B. Suprantame vienas kitą be žodžių (operatoriais) C. Jos yra lengvai pasiekiamos (kompozicija vietoj paveldimumo) ...

an, spal. 29, 2024 · 11 min. · Ąžuolas Krušna

Surask trūkstamas datas Vertica lentelėje

Labas! Šiandien sužinosime kaip surasti trūkstamas datas Vertica lentelėje. Tiesiog taip — labai paprastai! Štai kaip čia! WITH start_and_end AS ( SELECT '2024-01-01'::TIMESTAMP AS tm UNION ALL SELECT '2024-12-31'::TIMESTAMP AS tm ) SELECT DATE(ts) dates FROM start_and_end TIMESERIES ts AS '1 day' OVER (ORDER BY tm) MINUS SELECT DATE_COLUMN FROM OUR_INTERESTING_TABLE ORDER BY dates Mums tereikia pasikeisti OUR_INTERESTING_TABLE į mus dominančią lentelę ir DATE_COLUMN į jos datos stulpelį. Kaip tai veikia? Gerai, pasiaiškiname kas čia vyksta. Taigi, pirmiausia mes apsirašome intervalo pradžios ir pabaigos datas. Tebūnie tai 2024 metų pradžios ir pabaigos datos: ...

sk, spal. 13, 2024 · 5 min. · Ąžuolas Krušna

Pasileisk Vertica duomenų bazę lokaliai

Labas! Šiandien sužinosime kaip pasileisti savo Vertica duomenų bazę! Šiam techniniam gidui sekti pravers minimalios žinios apie Docker, tačiau jos nėra būtinos. Pasiskaityti apie Docker galima mano anksčiau rašytame įraše “Docker sąvokos lietuviškai”. pi;ns (per ilgai; neskaičiau) Vertica pasileisti lokaliai galime labai nesunkiai! Kaip Docker konteinerį! Mums reikia tik 1 Docker kompozitoriaus failo “docker-compose.yml” ir vienos komandos “docker-compose up”. Nors tai nėra labai populiarus sprendimas ir jo reikia paieškoti internete, bet jis aprašytas net oficialioje Vertica dokumentacijoje! Reikėtų paminėti, kad nemokama Vertica licenzija leidžia iki 1 terabaito duomenų (TB) bei iki 3 mazgų (nodes). Visgi Docker aplinkoje pasileisime tik 1 mazgo Vertica, nes oficialiai Vertica palaiko tik tokį sprendimą. Kelių mazgų sprendimą palaiko tik Kubernetes aplinkoje. Šis sprendimas kiek sudėtingesnis, todėl jo dabar neapžvelgsime. ...

kt, rugs. 5, 2024 · 13 min. · Ąžuolas Krušna

Pirmas skląstis estiškai

Tere! Taip sveikinasi mūsų šiaurės broliai estai. Įdomu. Taip švelniai tariasi, lengvai rieda “er” raidelė. Raidės primena lotyniškąjį “terra”, reiškiantį žemė, tačiau kartu ir jaučiasi slenkstis tarp šių panašių žodžių bei slenkstis pačiame “terra”. Dviguba “rr” nurodo stabtelti prieš, ties “e”, prieš užsikuriant, tarsi patenkintam katinui, dvigubai “rr”. O estiškasis “tere” minkštai atsispiria nuo žemės ir švelniai nušuoliuoja lyg voveraitė. Tarsi kviečia, sako: — Sveiki atvykę į mūsų švelnią, svetingą žemę! — nuskamba mintyse estų “tere”. ...

sk, saus. 28, 2024 · 5 min. · Ąžuolas Krušna