<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Blog on DO IT MAGIC SOFTWARE</title>
    <link>https://doitmagic.ro/blog/</link>
    <description>Recent content in Blog on DO IT MAGIC SOFTWARE</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ro-ro</language>
    <atom:link href="https://doitmagic.ro/blog/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Memoria AI: ce ține minte ChatGPT și ce doar pare că ține minte</title>
      <link>https://doitmagic.ro/blog/memoria-ai-chatgpt/</link>
      <pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://doitmagic.ro/blog/memoria-ai-chatgpt/</guid>
      <description>Îl întrebi pe ChatGPT cine este Andrei, un coleg despre care nu i-ai spus niciodată nimic. Numele singur nu îi ajunge ca să știe la cine te referi. Totuși, asta nu îl împiedică să răspundă. Poate construi o descriere credibilă dar inexactă pe care sa o spuna cu aceeași siguranță cu care prezintă un fapt corect, sau poate sa te intrebe la ce te referi. Din felul în care sună răspunsul nu poți afla dacă are pe ce să se bazeze.</description>
    </item>
    <item>
      <title>Speech-to-Text (STT) în română: modele offline testate pe CPU</title>
      <link>https://doitmagic.ro/blog/speech-to-text-romana-offline/</link>
      <pubDate>Fri, 02 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://doitmagic.ro/blog/speech-to-text-romana-offline/</guid>
      <description>Transcrierea audio în text în limba română poate rula offline, pe CPU, cu modele precum Whisper, SpeD și Parakeet. În testele noastre, diferențele au ținut de timpul de procesare, greșelile de transcriere și felul în care modelele au recunoscut engleza din frazele românești.&#xA;La DO IT MAGIC urmărim constant ce soluții AI locale sau mixte funcționează în practică, nu doar în prezentările producătorilor. Publicăm aceste rezultate ca o contribuție la informațiile tehnice disponibile despre recunoașterea vocală în română, unde comparațiile cu cifre, exemple și limite declarate sunt încă puține.</description>
    </item>
    <item>
      <title>Copiere superficială vs. copiere profundă în Go (shallow copy vs. deep copy)</title>
      <link>https://doitmagic.ro/blog/shallow-copy-vs-deep-copy-go/</link>
      <pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://doitmagic.ro/blog/shallow-copy-vs-deep-copy-go/</guid>
      <description>În dezvoltarea software, una dintre cele mai frecvente operații este copierea datelor. Dar atenție: nu toate copiile sunt la fel.&#xA;În Go (Golang) există două tipuri principale de copiere: copierea superficială (shallow copy, numită uneori și shadow copy) și copierea profundă (deep copy). Diferența contează atunci când vrei să lucrezi cu datele în mod sigur și eficient.&#xA;Înainte să intrăm în detaliile copierii în Go, trecem pe scurt prin conceptele și tipurile de date pe care le folosim în articol.</description>
    </item>
    <item>
      <title>Coșul fermecat cu mere: lungimea, capacitatea și elementele „fantomă” din slice-urile Go</title>
      <link>https://doitmagic.ro/blog/go-slice-len-cap/</link>
      <pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://doitmagic.ro/blog/go-slice-len-cap/</guid>
      <description>O ghicitoare cu mere Ai un coș cu 10 mere. Iei 5 dintre ele și le pui într-un coș mai mic. Și acum partea ciudată: cum ajungi să ai 7 mere într-un al treilea coș, dacă în al doilea ai pornit doar cu 5? Pare imposibil, dar în Go se poate. Să vedem cum.&#xA;Coșul inițial Mai întâi facem coșul mare cu mere, adică array-ul inițial.&#xA;// Coșul inițial, cu 🍎🍎🍎🍎🍎🍎🍎🍎🍎🍎 (un array) firstBasketOfApples := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} Al doilea coș Luăm 5 mere din coșul mare și le punem într-un al doilea coș, mai mic.</description>
    </item>
    <item>
      <title>Generics vs. reflection în Go: ghid comparativ, cu benchmark-uri</title>
      <link>https://doitmagic.ro/blog/generics-vs-reflection-go/</link>
      <pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://doitmagic.ro/blog/generics-vs-reflection-go/</guid>
      <description>Putem înlocui „reflection” cu „generics”?&#xA;I. Contextul În căutarea comportamentului dinamic în Go Go, un limbaj cu tipuri statice care ține la simplitate, s-a schimbat mult de la apariție. Două funcționalități au stârnit des discuții între programatorii Go: reflection și, mai nou, generics. Amândouă au un scop asemănător: aduc un pic de dinamism și flexibilitate într-un limbaj static prin natura lui. Doar că reflection există în Go de la început, pe când generics sunt noul venit, cu alte unelte pentru câteva dintre aceleași probleme.</description>
    </item>
    <item>
      <title>Runtime-ul Go explicat simplu: garbage collector, scheduler și goroutine</title>
      <link>https://doitmagic.ro/blog/go-runtime-explicat/</link>
      <pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://doitmagic.ro/blog/go-runtime-explicat/</guid>
      <description>Bine ai venit la „The Go Show”, în culisele runtime-ului Go. Încercăm să descâlcim câteva dintre misterele Go, un limbaj cunoscut deopotrivă pentru putere și pentru cât de ușor se folosește. Fie că scrii cod de ani de zile, fie că abia te apuci, ghidul ăsta te poartă prin modelul de concurență al limbajului.&#xA;Ai fost vreodată într-un parc de distracții în care toate atracțiile merg, cozile înaintează și nu calci niciodată într-o gumă de mestecat?</description>
    </item>
    <item>
      <title>Studiu de caz: FactCompass, verificarea afirmațiilor cu AI, cu sursele la vedere</title>
      <link>https://doitmagic.ro/blog/studiu-de-caz-factcompass/</link>
      <pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://doitmagic.ro/blog/studiu-de-caz-factcompass/</guid>
      <description>Un model AI întrebat dacă o afirmație e adevărată răspunde aproape întotdeauna sigur pe el. Problema e că siguranța nu are legătură cu adevărul: modelul a învățat din texte până la o anumită dată, nu știe ce s-a întâmplat ieri și, când nu știe, poate inventa o sursă care sună credibil1.&#xA;FactCompass pornește de la ideea opusă. Nu întreabă modelul ce crede. Îl pune să caute dovezi, să le citească și abia apoi să tragă o concluzie, cu sursele puse la vedere.</description>
    </item>
    <item>
      <title>Studiu de caz: RagCode MCP, căutare semantică în cod pentru asistenții AI, 100% local</title>
      <link>https://doitmagic.ro/blog/studiu-de-caz-ragcode-mcp/</link>
      <pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://doitmagic.ro/blog/studiu-de-caz-ragcode-mcp/</guid>
      <description>Oricine a lucrat cu Cursor, Copilot sau Claude Code pe un proiect mare a văzut scena asta: îi ceri asistentului să modifice o funcție, iar el începe să citească fișier după fișier ca să înțeleagă contextul. Fiecare fișier citit înseamnă tokeni plătiți și loc ocupat în context window1, adică exact spațiul de care modelul are nevoie ca să gândească. La un moment dat uită ce a citit la început sau, mai rău, inventează o funcție care „probabil” există.</description>
    </item>
    <item>
      <title>Studiu de caz: Zafra Chalet, un site de vilă construit ca o aplicație serioasă</title>
      <link>https://doitmagic.ro/blog/studiu-de-caz-zafra-chalet/</link>
      <pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://doitmagic.ro/blog/studiu-de-caz-zafra-chalet/</guid>
      <description>Când am început lucrul la site-ul Zafra Chalet, o vilă închiriată integral în Poiana Țapului, lângă Bușteni, drumul obișnuit era la îndemână: o temă gata făcută, câteva module pentru galerie, SEO și formular de contact, pozele încărcate și gata. Așa arată majoritatea site-urilor de cazare din România.&#xA;Știam însă ce urmează după un astfel de site. Proprietarul învață un panou de administrare gândit pentru programatori. Modulele trebuie actualizate, iar unul dintre ele se strică la a treia actualizare.</description>
    </item>
    <item>
      <title>Tipuri custom și valori NULL în Go cu database/sql: driver.Valuer și sql.Scanner</title>
      <link>https://doitmagic.ro/blog/go-database-sql-null-tipuri-custom/</link>
      <pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://doitmagic.ro/blog/go-database-sql-null-tipuri-custom/</guid>
      <description>Bazele de date cer adesea o tratare specială a datelor, iar Go are unelte solide pentru ca aplicațiile să comunice fără probleme cu bazele de date relaționale. În articolul ăsta vedem cum ajută pachetul database/sql, cu accent pe interfețele driver.Valuer și sql.Scanner.&#xA;1. Contextul: tipurile Go și valorile din baza de date În Go, fiecare tip are o valoare „zero” implicită. Pentru int e 0, pentru string e &amp;quot;&amp;quot;. Tipurile de referință, ca pointerii, slice-urile, map-urile, canalele și funcțiile, au implicit valoarea nil.</description>
    </item>
  </channel>
</rss>
