- WinGet vam omogućava instaliranje, ažuriranje i uklanjanje aplikacija u Windows sa linije naredbe korištenje manifesta u YAML-u.
- WinGet konfiguracijske datoteke, kombinovane sa DSC-om iz PowerShellOni deklarativno opisuju željeno stanje mašine.
- Tvrđenja i resursi strukturiraju YAML kako bi se validirali preduslovi i automatski primijenile instalacije, sistemske postavke i skripte.
- WinGet se integrira s javnim i privatnim repozitorijima, grupnim politikama i DSC resursima, što ga čini ključnim alatom za razvojna okruženja i poduzeća.

Sastavljanje novog računara ili pridruživanje projektu Ovo često uključuje ponovljeno instaliranje istih programa, konfigurisanje Windowsa i korištenje alata za razvoj. Pomoću konfiguracijskih datoteka WinGet i YAML možemo pojednostaviti cijeli ovaj proces u jednu komandu, eliminirajući potrebu za preuzimanjem instalatora jednog po jednog i navigacijom kroz duge čarobnjake.
WinGet (Windows upravitelj paketa) To je Microsoftov službeni odgovor na model upravitelja paketa GNU/Linuxa poput apt-a ili dnf-a. U kombinaciji sa Konfiguracija željenog stanja PowerShella (DSC) a uz deklarativne konfiguracijske datoteke u YAML formatu, omogućava vam da pripremite bilo koji Windows računar za rad u ponovljivo, automatizirano i kolaborativnokako u ličnom tako i u poslovnom okruženju.
Šta je WinGet i zašto je važan za automatizaciju?
WinGet je alat komandne linije iz Windows Package Managera koji je integriran u trenutne verzije Windowsa 10 i Windows 11 (putem programa "Instaler aplikacija" u Microsoft prodavnici). Njegova glavna naredba je winget, kojima se dodaju podnaredbe za pretraživanje, instaliranje, ažuriranje, deinstalaciju ili konfiguriranje softvera.
U poređenju sa tradicionalnim modelom Umjesto odlaska na web stranicu svakog programa, preuzimanja instalacijskog programa i klika na Dalje, WinGet djeluje kao centralizirani indeks: koristi Microsoft Store i repozitorij zajednice na GitHub-u kao izvori i oslanja se na manifeste u YAML formatu (zvane manifesti paketa) koji opisuju kako instalirati svaku aplikaciju i kako provjeriti njen integritet koristeći heševe kao što je SHA256.
WinGet ekosistem Sastoji se od tri dijela: samog alata komandne linije, servisa za pakovanje koji hostuju i validiraju pakete i WinGet konfiguracijske datotekekoji vam omogućavaju da konsolidujete cijelu konfiguraciju tima ili projekta u jednu deklarativnu datoteku.
Za programere i administratoreTo znači biti u stanju opisati alate i konfiguracije potrebne za radno okruženje (IDE, pretraživače, SDK, uslužne programe, Windows politike itd.) i imati WinGet koji pouzdano i više puta dovodi mašinu u "željeno stanje", bilo da se radi o novom laptopu ili pripremate nekoliko računara u kompaniji.
Osnovne WinGet komande za upravljanje aplikacijama
Prije nego što se upustimo u YAML i naprednu automatizacijuVrijedi razumjeti osnovne WinGet komande, jer one čine osnovu za sve ostalo. Za početak, jednostavno otvorite PowerShell u Windowsu. terminal ili čak naredbeni redak i tip winget da biste vidjeli opću pomoć.
Instalirajte pojedinačne aplikacije To je jednostavno kao korištenje winget install nakon čega slijedi identifikator ili naziv paketa. Na primjer, da biste instalirali Visual Studio Code iz WinGet repozitorija, mogli biste pokrenuti:
winget install Microsoft.VisualStudioCode
Ažurirajte aplikacije To se može uraditi i iz komandne linije. Sa winget upgrade --all Pokušavamo ažurirati sve programe koje WinGet može upravljati (ne samo one instalirane s WinGetom, već i one u novijim verzijama). Ako se želite fokusirati na određenu aplikaciju, možete koristiti, na primjer:
winget upgrade Microsoft.VisualStudioCode
Za deinstalaciju softvera, koristi se winget uninstall, a zatim ponovo naziv ili identifikator paketa, na primjer: winget uninstall Microsoft.VisualStudioCodeDeinstalacija je ograničena na ono što WinGet prepoznaje, bilo zato što ga je instalirao ili zato što detektuje program na sistemu.
Traženje dostupnih aplikacija je završeno sa winget searchAko pišete winget search notepadDobit ćete listu paketa koji sadrže taj termin, zajedno s izvorom (trgovina ili repozitorij), nazivom i ID-om, što je ono što biste trebali koristiti prilikom instaliranja iz repozitorija zajednice kako biste izbjegli dvosmislenosti.
Konačno, možete navesti instalirani softver koje WinGet detektuje na mašini koristeći winget listOvo vam pomaže da identifikujete koje pakete možete direktno upravljati pomoću upravitelja paketa, a koje ne.
WinGet konfiguracijske YAML datoteke: ključ automatizacije
Pravi skok u kvaliteti To se dešava kada pređemo sa izvršavanja pojedinačnih komandi na korištenje WinGet konfiguracijska datoteka u YAML formatu. Umjesto ručnog izvršavanja desetina naredbi, opisujete željeno konačno stanje mašine i izvršavate jednu naredbu kako biste sve obavili bez nadzora.
WinGet konfiguracijska datoteka Navodi verzije softvera, pakete, alate, zavisnosti, skripte i konfiguracije sistema potrebne za postavljanje razvojnog okruženja. Sve ovo je dopunjeno integracijom sa Konfiguracija željenog stanja PowerShella (DSC), što je tehnologija koja omogućava primjenu promjena konfiguracije na operativni sistem i aplikacije korištenjem specijaliziranih resursa.
Magija se dešava sa komandom winget configure, dostupno od WinGet v1.6.2631. Ova naredba uzima YAML datoteku (ili sa ekstenzijom .winget), validira ga u odnosu na JSON shemu, preuzima potrebne DSC resurse i primjenjuje sve deklarirane tvrdnje i resurse kako bi tim doveo do željenog stanja.
Velika razlika u poređenju sa skripta tradicional Ove datoteke su deklarativne: one definiraju željeni ishod, a ne kruti niz koraka. WinGet i DSC izračunavaju šta treba uraditi, kojim redoslijedom i šta se može izvršiti paralelno, pružajući robusnost i fleksibilnost automatizaciji.
Osim toga, idealni su za saradnju.Konfiguracijske datoteke mogu se pohraniti u Git repozitorijima (kao što je GitHub), na privatnim lokacijama poput OneDrivea ili sličnih, i dijeliti s timom. Problemi, zahtjevi za povlačenjem i promjene mogu se kreirati i pregledavati baš kao i bilo koja druga datoteka koda.
Struktura i format konfiguracijske datoteke WinGet-a
Format konfiguracijskih datoteka Baziran je na YAML-u, ali koristi JSON specifikaciju sheme kako bi pomogao u validaciji strukture. Microsoft objavljuje sheme na skraćenoj adresi. https://aka.ms/configuration-dsc-schema/, gdje možete provjeriti dostupne verzije (na primjer 0.2).
Prvi red datoteke Ovo je obično poseban komentar koji alatima poput Visual Studio Code-a (s Red Hat YAML ekstenzijom) govori koju shemu da koriste. Tipičan primjer bi bio nešto poput: # yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2, što ukazuje na verziju sheme primijenjenu na datoteku.
Korijen dokumenta es properties, koji sadrži i definiciju verzije konfiguracije (configurationVersion) kao dva glavna dijela datoteke: assertions (tvrdnje) i resources (resursi). Ova dva dijela su liste deklarativnih zadataka koje će WinGet i DSC procijeniti i primijeniti.
Verzija konfiguracije, na primjer configurationVersion: 0.2.0Treba ga ažurirati kad god se izvrše relevantne promjene u sadržaju. U roku od propertiesTvrdnje opisuju preduvjete, a resursi opisuju sve instalacije i podešavanja koja se moraju izvršiti na sistemu.
Svaki element unutar tvrdnji ili resursa je definiran čvorom resource što označava koji će se PowerShell modul koristiti i koji će se specifični DSC resurs pozvati za primjenu željenog stanja, slijedeći format {ModuleName}/{DscResource}Pored ovoga, oblasti kao što su directives, settings, opcionalni identifikator id i moguće zavisnosti dependsOn.
Tvrđenja: Preliminarne provjere i minimalni zahtjevi
Odjeljak s tvrdnjama (tvrđenja) opisuju preduvjete koji moraju biti ispunjeni da bi se konfiguracija smatrala važećom. Ovo nisu koraci instalacije, već provjere okoline koji se izvršavaju prije primjene resursa koji od njih zavise.
Klasičan primjer tvrdnje Ovo je provjera minimalne verzije operativnog sistema. Na primjer, WinGet zahtijeva barem Windows 10 verziju 1809, a mnoge moderne konfiguracije mogu zahtijevati novije verzije Windowsa 11. Definiranje tvrdnje o verzija operativnog sistema Izbjegavajte instaliranje alata koji neće raditi.
Ove tvrdnje se mogu izvršavati paralelnobez strogog sekvencijalnog redoslijeda. Svaki vraća da li sistem ispunjava uslov (tačno ili netačno). Ako tvrdnja ne uspije, svaki resurs koji je deklariše kao zavisnost koristeći dependsOn Automatski se izostavlja i to se smatra ispravnim rezultatom sa stanovišta konfiguracije (ne vrše se nedosljedne promjene na sistemu).
U izlaznim zapisnicima izvršenja winget configure Uobičajeno je vidjeti poruke poput: određena tvrdnja (npr. verzija operativnog sistema) nije pronađena ili nije uspjela, tako da određeni zavisni resursi (kao što je omogućavanje programerskog načina rada ili instaliranje određenog WinGet paketa) nisu izvršeni.
Velika prednost Čak i ako neke tvrdnje ne uspiju, ostatak datoteke se nastavlja obrađivati. WinGet će nastaviti izvršavati sve moguće zadatke, pomičući mašinu što je dalje moguće prema ciljnom stanju. Nakon što je izvršavanje završeno, korisnik treba pregledati greške i izvršiti sva potrebna prilagođavanja.
Resursi: instalacije, konfiguracije i skripte
Odjeljak o resursima (resursi) je mjesto gdje je navedeno sve što želimo instalirati i konfigurirati na računaru: WinGet paketi, postavke Windowsa, instalacija određenih komponenti (na primjer, Visual Studio opterećenja), pokretanje PowerShell skripti, upravljanje servisima, logovi itd.
Svaki resurs ima nekoliko ključnih komponentipolje resource sa modulom i DSC resursom koji će se koristiti, odjeljak directives sa metapodacima i zahtjevima za izvršavanje, odjeljak settings s parametrima proslijeđenim resursu i, opcionalno, jedinstvenim identifikatorom id i listu zavisnosti dependsOn.
Direktive obično uključuju description što objašnjava zadatak koji se izvršava, indikator allowPrerelease odlučiti hoće li prihvatiti module za pregled iz PowerShell galerije i securityContext, što ukazuje na to da li resurs treba biti izvršen sa povišenim privilegijama (elevated) ili može raditi s dozvolama trenutnog korisnika.
Odjeljak za postavke zaista definiše ponašanje
Na primjer, resurs Omogućavanje Windows programerskog načina rada moglo bi koristiti resurse Microsoft.Windows.Settings/WindowsSettings sa a settings gdje je osnovano DeveloperMode: trueResurs koji instalira Visual Studio 2022 Zajednica bi mogla koristiti Microsoft.WinGet.DSC/WinGetPackage sa parametrima kao što su id: Microsoft.VisualStudio.2022.Community y source: winget.
Zavisnosti (dependsOn) Oni vam omogućavaju kreiranje logičkih odnosa između resursa i tvrdnji. Na primjer, resurs koji instalira dodatne komponente Visual Studia može zavisiti od toga da se prvo instalira sam Visual Studio (identificiran pomoću id (prethodnog resursa) ili da je potvrda verzije operativnog sistema bila uspješna.
Praktični primjeri YAML datoteka za WinGet
Da vidimo kako se sve ovo prevodi. u jednostavnoj YAML datoteci. Zamislite da želite definirati osnovnu konfiguraciju za provjeru minimalne verzije Windowsa, instalirati Visual Studio Code, Google Chrome i pokrenite malu PowerShell skriptu za pripremu okruženja.
Pojednostavljena shema moglo bi uključivati unutar properties a section of assertions s čekom MinVersion operativnog sistema i dijela resources s resursima paketa i skripti. Konceptualno, nešto poput:
properties:
assertions:
- MinVersion: "10.0.19041.0"
resources:
- package: Microsoft.VisualStudioCode
version: "latest"
- package: Google.Chrome
version: "latest"
- script: |
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Install-Module -Name PowerShellGet -Force -AllowClobber
U ovoj konceptualnoj konfiguraciji Prvo se postavlja zahtjev za minimalnu verziju Windowsa, i ako je ispunjen, dva navedena paketa (VS Code i Chrome) se instaliraju u svojim najnovijim dostupnim verzijama. Zatim se pokreće skripta koja prilagođava direktivu za izvršenje i dodaje modul. PowerShellGet sa odgovarajućim parametrima.
Primijenite datoteku na određeni računar To je jednostavno kao pokretanje naredbe u PowerShellu. winget configure --file ruta\a\tu\archivo.yamlOdatle će WinGet validirati dokument u odnosu na shemu, preuzeti potrebne DSC module i započeti s evaluacijom tvrdnji i resursa.
U naprednijim datotekama, kao tipičan primjer configuration.wingetResursi su definirani za provjeru minimalne verzije operativnog sistema, omogućavanje Developerskog načina rada, instaliranje Visual Studio 2022 Community kao WinGet paketa i instaliranje dodatnih Visual Studio komponenti iz datoteke. .vsconfig, koristeći svojstva kao što su productId, channelId, vsConfigFile pa čak i parametar includeRecommended da proširi objekat.
Najbolje prakse, organizacija i varijabla WinGetConfigRoot
Način na koji organizujete odjeljak s resursima Struktura datoteke uveliko utiče na njeno razumijevanje i održavanje. Iako izvršavanje nije sekvencijalno i redoslijed nije kritičan, preporučljivo je slijediti dosljedan pristup kako bi je drugi programeri ili administratori mogli razumjeti na prvi pogled.
Neki uobičajeni organizacijski pristupi Ove metode uključuju sortiranje prema navodnom logičkom redoslijedu izvršavanja (ono što je najlogičnije da se prvo dogodi), grupiranje prema vjerovatnoći kvara (stavljanje naj"kritičnijih" stavki na vrh kako bi se greške otkrile što je ranije moguće) ili grupiranje prema vrsti resursa (paketi, konfiguracije sistema, skripte, usluge itd.). Bilo koja od ovih metoda može funkcionirati sve dok je minimalno dokumentirana.
Preporučuje se pratnja Konfiguracija bi trebala uključivati README datoteku u repozitoriju, koja objašnjava organizacijsku strategiju, ključne zavisnosti, kako pokrenuti konfiguraciju, koje preduvjete ili dozvole za Windows treba ispuniti i sve sigurnosne aspekte.
Vrlo koristan trik za rute je korištenje varijable ${WinGetConfigRoot}, koji predstavlja radni direktorij iz kojeg se izvršava winget configureUmjesto korištenja apsolutnih putanja, možete kreirati relativne putanje na osnovu ove varijable, što datoteku čini prenosivijom na različitim računarima.
Na primjer, resurs tipa Microsoft.VisualStudio.DSC/VSComponents Možeš koristiti ${WinGetConfigRoot} pronaći datoteku .vsconfig u korijenskom direktoriju projekta, kao u '${WinGetConfigRoot}\..\.vsconfig'To, naravno, podrazumijeva da korisnik mora osigurati da datoteka postoji u toj relativnoj putanji prije pokretanja konfiguracije.
Kreiranje, nazivi datoteka i preporučene konvencije
Za kreiranje WinGet konfiguracijske datoteke od nule Preporučljivo je slijediti niz logičnih koraka: odlučiti se o nazivu i lokaciji datoteke, upoznati se sa shemom i formatom, definirati tvrdnje i resurse te odrediti zavisnosti i parametre.
Microsoft preporučuje korištenje ekstenzije .winget za ove konfiguracijske datoteke, na primjer configuration.wingetU projektima zasnovanim na Gitu, preporučena konvencija je da se pohranjuju unutar skrivenog direktorija. .configtačnije u ./.config/configuration.winget kao zadanu konfiguraciju.
Ako projekat zahtijeva više konfiguracija (na primjer, različiti lanci alata, različiti profili programera ili korisničke postavke), dodatne datoteke se mogu dodati u isti direktorij .configsvaki sa svojim opisnim nazivom koji odražava njegovu namjenu.
Tipičan proces dizajniranja Kreiranje konfiguracijske datoteke uključuje identifikaciju svih potrebnih tvrdnji (verzije sistema, prisustvo određenih funkcija itd.), navođenje resursa (softver, paketi, sistemske postavke) koji će se primijeniti, lociranje odgovarajućih DSC modula i resursa u PowerShell galeriji i eksplicitno definiranje politika i zavisnosti za svaki resurs.
Da biste provjerili validnost datoteke Tokom izrade nacrta, veoma je korisno koristiti Visual Studio Code sa Red Hat YAML ekstenzijom i povezati odgovarajuću JSON shemu. Ovo omogućava validaciju strukture, automatsko dovršavanje, prijedloge polja i isticanje grešaka u formatiranju koje bi inače mogle proći nezapaženo.
Sigurnosne, pouzdane i grupne direktive s WinGetom
Budući da je to alat sposoban za instaliranje i konfiguriranje softvera U zbiru, sigurnost je ključni aspekt. WinGet se integrira s Microsoft Storeom koristeći izvor pod nazivom msstore i koristi tehnike "usidravanja certifikata" kako bi se osiguralo da je veza s Trgovinom legitimna i da se ne presreće.
U poslovnom okruženju Tamo gdje se koriste zaštitni zidovi sa SSL inspekcijom, ova validacija može uzrokovati greške ako se promet presretne i ponovo zapakuje. Za takve slučajeve postoji direktiva pod nazivom Zaobilaženje certifikata za Microsoft Storešto vam omogućava da odredite da li WinGet treba da preskoči tu validaciju heša certifikata ili da je zadrži aktivnom.
Opcije u ovoj direktivi To su: ostavite ga nekonfigurisanim (preporučeno ponašanje prema zadanim postavkama, poštujući standardne vrijednosti Windows Package Managera), omogućite ga (WinGet neće validirati Microsoft Store certifikat) ili ga onemogućite (WinGet će zahtijevati da certifikat odgovara poznatom Microsoft Store certifikatu prije prihvatanja veze).
Onemogući usidravanje certifikata To povećava rizik od napada tipa "čovjek u sredini" koji presreću komunikacije radi krađe akreditivnosti ili drugih osjetljivih informacija. Stoga bi to trebalo razmatrati samo kao krajnje rješenje i nakon temeljitog razumijevanja implikacija na sigurnosnu politiku organizacije.
Pored ove direktiveWinGet nudi niz predložaka grupnih politika (datoteka .admx y .adml) koji omogućavaju IT odjelima da kontrolišu aspekte kao što su dozvoljeni ili blokirani izvori, omogućavanje eksperimentalnih funkcija, lokalna politika razvoja, opcije proxyja ili ponašanje interfejsa komandne linije.
Ovi predlošci se distribuiraju unutar datoteke DesktopAppInstallerPolicies.zip u verzijama WinGeta objavljenim na GitHub-u. Nakon preuzimanja, datoteke se izdvajaju i kopiraju u standardne putanje politika u Windowsu (C:\Windows\PolicyDefinitions za .admx datoteke i jezičku podmapu, kao što je en-US(za .adml datoteke), a odatle se njima može upravljati iz konzole za upravljanje grupnim politikama.
Repozitoriji, dodatni izvori i katalog paketa
WinGet odmah po instalaciji ima dva velika izvoraMicrosoft Store (msstore) i WinGet repozitorij zajednice smješten na GitHub-u, koji djeluje kao indeks paketa i manifesta, ključne su komponente. Ovaj repozitorij već sadrži dugu listu poznatih aplikacija: preglednike poput Chromea i Firefoxa, uslužne programe za kompresiju poput 7-Zip-a, alate za razvoj poput OpenJDK-a, Gita i Visual Studija, dizajnerske aplikacije poput Blendera i Inkscapea i još mnogo toga.
Nezavisni dobavljači softvera (ISV) Mogu koristiti WinGet kao distribucijski kanal, šaljući manifeste svojih paketa u repozitorij zajednice putem zahtjeva za povlačenjem (pull requests). Ovi manifesti i binarne datoteke na koje ukazuju prolaze automatsku validaciju, a u mnogim slučajevima i ručni pregled kako bi se osigurao minimalni nivo kvaliteta i sigurnosti.
Baš kao u GNU/Linuxu S dodatnim repozitorijumima, WinGet vam omogućava da dodate vlastite izvore. Organizacija može održavati privatni repozitorij sa specifičnim manifestima za svoje interne aplikacije, bilo u Azureu, na lokalnom serveru ili u namjenskim rješenjima kao što su projekti koji pružaju infrastrukturu za samostalno hostovane WinGet repozitorije koristeći Docker.
Dodajte alternativni izvor To se radi otvaranjem PowerShella kao administrator i pokretanjem naredbe poput ove: winget source add --name <nombre_del_repositorio> --arg <URL_del_repositorio>Opcionalno, mogu se koristiti dodatni parametri kao što su --type (obično REST izvori), --trust-level (nijedan ili pouzdan) i --accept-source-agreements da automatski prihvati ugovore o licenci za izvorni kod.
Da biste provjerili da li je izvor ispravno dodan, Može se koristiti winget source listOvo će prikazati sve dostupne izvore zajedno s njihovim imenom i tipom. Od tog trenutka, pretrage i instalacije će moći uzeti u obzir novi repozitorij, na osnovu toga kako je konfigurisan.
WinGet, DSC i gdje pronaći dodatne resurse
Kombinovanje WinGeta sa PowerShell-ovim DSC-om Ovo vam omogućava da idete dalje od pukog instaliranja aplikacija i da zaista kontrolišete konfiguraciju uređaja. DSC nudi mnoštvo resursa spremnih za korištenje (zvanih "inbox") i mnoge druge koje je doprinijela zajednica, a koji su objavljeni na PowerShell galerija.
Među željenim resursima za konfiguraciju stanja Uobičajeni moduli uključuju one za upravljanje varijablama okruženja, instaliranje ili deinstaliranje MSI paketa, rukovanje ključevima i vrijednostima registra, pokretanje PowerShell skripti, upravljanje Windows servisima, dodavanje ili uklanjanje sistemskih uloga i funkcija te pokretanje ili zaustavljanje Windows procesa.
PowerShell galerija sadrži stotine modula S dodatnim DSC resursima, koji se mogu pronaći primjenom filtera "DSC resurs" u odgovarajućoj kategoriji. To je vrlo moćan izvor za proširenje mogućnosti vaših konfiguracijskih datoteka, ali također zahtijeva oprez.
Važno upozorenje PowerShell galerija, iako veoma popularna, nije repozitorij koji je verifikovao Microsoft. Sadrži doprinose mnogih različitih autora i izdavača, a svaki resurs može uključivati proizvoljne skripte. Stoga biste uvijek trebali pregledati module kako biste procijenili njihovu vjerodostojnost i sigurnost prije nego što ih integrirate u konfiguraciju koja će biti implementirana na produkcijskim mašinama.
Microsoft toplo preporučuje Uvijek provjerite integritet i pouzdanost bilo koje WinGet konfiguracijske datoteke: ručno pregledajte njen sadržaj, shvatite koje module i skripte koristi, prvo je testirajte u izoliranim ili laboratorijskim okruženjima i oslonite se na najbolje prakse opisane u službenoj dokumentaciji o tome kako provjeriti pouzdanost konfiguracijske datoteke.
WinGet, obrazac za YAML i DSC datoteke konfiguracije PowerShella veoma moćna kombinacija Ovo vam omogućava da pređete sa ručnog konfigurisanja sistema na opisivanje okruženja na deklarativan, deljiv i automatizovan način. Pomoću jedne komande možete replicirati razvojnu mašinu, standardizovati softver u celoj kompaniji ili jednostavno izbeći muku ponovne instalacije istog softvera svaki put kada nabavite novi računar.
Strastveni pisac o svijetu bajtova i tehnologije općenito. Volim dijeliti svoje znanje kroz pisanje, a to je ono što ću raditi na ovom blogu, pokazivati vam sve najzanimljivije stvari o gadžetima, softveru, hardveru, tehnološkim trendovima i još mnogo toga. Moj cilj je pomoći vam da se krećete u digitalnom svijetu na jednostavan i zabavan način.