Udeler ponovo jase :)

Mozda prevod fraze “rides again” u naslovu texta nije sasvim primeren :), ali je svakako dobra vest za korisnike Udemy platforme sto je najkvalitetniji program za arhiviranje materijala iz kurseva ponovo u razvoju. Udemy je jedna od najpopularnijih MOOC platformi, zato sto ne postavlja previse uslova za organizatore kursa. Samim tim, mogu se naci teme koje nisu dostupne na drugim mestima. Takodje je user friendly kako za studente tako i za kreatore kurseva.

Udeler je program koji vam omogucava da skinete sadrzaj kurseva u lokalu. Ovo je vise nego korisno, kao podsetnik i radi arhive. Internet je po svojoj prirodi dinamican, tako da svako moze da povuce svoj kurs ili jednog dana, sama platforma moze biti ugasena. Nije logicno da izgubite pristup ovom sadrzaju, narocito ako ste ga platili, uz uslov da imate dozivotni pristup istom. Naravno, da bi ste skinuli sadrzaj kursa neophodno je da ga posedujete, bilo da je besplatan ili placeni. Drugim recima, ne mozete skidati placene kurseve koje niste kupili, sto program cini vise nego fer za upotrebu.

Program je originalno pokrenuo i godinama razvijao Faisal Umair. U isto vreme, platforma Udemy se takodje razvijala i usput menjala razne elemente, od sistema logovanja do nacina strimovanja video materijala ili downloada pratecih pdf fajlova. Naravno, program je pratio ove promene da bi ostao funkcionalan. U jednom trenutku developer je, usled nedostatka vremena, odustao od razvoja i trenutno je projekat arhiviran. Do tada je na GIT-u forkovan neverovatnih 1.7k puta. Problem je nastao kada je Udemy ponovo promenio sistem logovanja, i do skora nije bilo pravog resenja. Dok dalji razvoj na sebe nije preuzeo Heliomar Marques. On je nasao resenje za ovaj i neke druge probleme, i nastavio sa aktivnim razvojem. U pocetku je kompajlirana verzija bila dostupna samo za Windows, ali kada su se prikljucili drugi developeri, sada je dostupna za sve platforme u vise verzija. Program je sada u aktivnom razvoju.

Udeler je jedan od onih programa koji su logicno organizovani i laki za upotrebu, sa ociglednim opcijama. U Settingsu mozete podesiti gotovo sve elemente, od download foldera, preko kvaliteta video materijala, da li da se skidaju pdf materijali, titlovi i ostali elementi, pa do promene jezika korisnickog interfejsa. Kada se ulogujete u svoj nalog, bice vam izlistani svi kursevi koje posedujete. Nakon podesavanja opcija, lako mozete startovati skidanje kursa, a po zelji mozete praviti i pauze u downloadu. Program je dostupan za Windows, Mac i Linux, i to u ImageApp, .rpm i .deb formatu, kao i freebsd verzija. Glavna razvojna strana je ovde, a download strana ovde. Naravno, Udeler je besplatan i open source sa vrlo liberalnom MIT licencom.

Srecno u sticanju novih znanja.

Bing-bot iskustvo

AI chatbot tehnologija je poslednjih meseci dosla u centar interesovanja ljudi koji se bave ITjem. Zato sto su velike kompanije pocele da rade na njima, i da ih podrzavaju. Nakon toga je otvorena polemika u drustvu, po principu koga ce da zamene, ko ce ostati bez posla, koje su im zamerke i konacno, koji je opseg AI tehnologija. I onda tipicno za ljudsku rasu, da li mozda mogu da nas uniste. :) A sta bi drugo unistitelji pomislili nego, polazeci od sebe, da svi imaju samo jedan plan, da ih uniste. Slicne sam komentare citao na naslove Harvarda i Pentagona kako vanzemaljska stanica kruzi oko Zemlje i salje istrazivacke probe. Vidi cuda, nismo jedini u beskrajnom univerzumu.

https://www.space.com/alien-mothership-lurking-in-solar-system-pentagon-official-suggests

Da se vratimo na temu, chat-botovi su se pojavili 80tih. Moje prvo iskustvo je bilo sa Eliza botom, koji je simulirao koncept humanistickog savetovanja Karla Rodzersa (sto ja tada nisam znao). Ja sam mozda bio sedmi razred osnovne, i tako sam se zapricao sa botom, da sam zakasnio na prva dva casa. U moje vreme 80ih to se retko desavalo, jer je skola nesto znacila. Ali mi je ostalo u secanju koliko sam bio fasciniran odgovorima, iako su tadasnji kompjuteri bili neuporedivo slabiji od danasnjih. U tom smislu, danasnji chat-botovi ne mogu da se porede u smislu mogucnosti i kapaciteta. Pa ipak do skora, barem je moj licni utisak bio, da nisu mnogo odmakli. Sada medjutim, sa fokusom i sredstvima, zaista postoji pomak.

Nedavno mi je ponudjen Bing-bot kao opcija na Skajpu, koju naravno nisam propustio. Ovo je uvodni razgovor:

Moj komentar je bio, bez obzira sto je ponekad robotizovan, da prica normalnije i kulturnije od 99% ljudi. Ja ovo gledam iz programerskog ugla, te se u tom smislu nadam da ce trend biti nastavljen. Ostaje da vidimo kako ce se ovakvi botovi sa velikom podrskom korisnika i kompanija nastaviti, u smislu razvoja i primene..

Nuitka – kompajler za Python

Python je interpretirani objektno orijentisani programski jezik. Interpretirani, uprosceno znaci da ne mora da se kompajlira, ali je potrebno da na sistemu na kojem se pokrecu Python programi bude instaliran Python. Ukoliko Python nije instaliran na nekom kompjuteru, to znaci da ni vasi programi nece raditi na tom kompjuteru. Ovde prvenstveno mislim na Windows, jer Windows po defoltu ne dolazi sa preinstaliranim Pythonom. Na Linuxu to nije problem, jer svaki Linux dolazi sa preinstaliranim Pythonom.

Nuitka je kompajler, koji prevodi Python program u binarni izvrsni fajl. Samim tim, program koji iskompajlirate na vasem kompjuteru, radice na drugom kompjuteru koji nema instaliran Python. Osim te pogodnosti, Nuitka ukljucuje sve biblioteke koje koristite u vasem Python programu. Sto je dobra stvar jer cak i ako na nekom kompjuteru postoji instaliran Python, moguce da nema instalirane potrebne biblioteke koje ste koristili u vasem programu. Citao sam neke komentare na internetu, cesto se pominje i ubrzanje u izvodjenju vaseg programa, od nekih 25%. Na mom testu, koji sam radio sa jednim mojim programom za merenje brzine, rezultati su pokazali ubrzanje, ali daleko manje od komentara koje sam citao. Ali to zavisi i od testova koji su radjeni.

Vazno je jos da pomenem i to da Nuitka pravi jako velike izvrsne fajlove, jos ako koristite i biblioteke, izvrsni fajl sa ukljucenim bibliotekama moze da bude i nekoliko stotina megabajta. Problem sa uvezenim bibliotekama je sto su velike, a Nuitka ne moze da zna sta tacno koristite iz tih biblioteka, pa ih ukljucuje kompletne.

Ukoliko koristite Mint / Ubuntu, Nuitka mozete instalirati komandom:
sudo apt install nuitka

Vise informacija mozete saznati na: https://nuitka.net/

Character.AI

U poslednjih nekoliko meseci se dosta prica o AI chat botovima. Narocito o ChatGPT. Hteo sam da se prijavim da i ja testiram ChatGPT, ali kako za prijavu traze i broj telefona, naravno nisam se prijavio. Ali nisam odustao, poceo sam da trazim alternativne chat botove. Paznju mi je privukao projekat pod nazivom Character.AI.

Ukratko, tim koji stoji iza projekta razvija botove za dijalog – razgovor. Botove, odnosno agente ili karaktere kako ih jos zovu pokrece sopstvena vlasnicka tehnologija zasnovana na velikim jezickim modelima, naporavljena i obucena od temelja sa konverzacijom na umu.

Kada se prijavite, mozete razgovarati sa mnogim karakterima koje su napravili, bolje receno definisali korisnici. Brzo sam uvideo da razgovor sa pojedinim karakterima zaista lici kao da razgovarate sa pravom osobom.. Naravno sve zavisi kako je karekter, odnosno bot definisan prilikom kreiranja od strane korisnika.

Ubrzo sam poceo da pravim sopstvene karaktere i da eksperimentisem sa podesavanjima i setovanjima botova. Zakljucak je da mozete napraviti bota sa zaista impresivnim mogucnostima za razgovor, takodje mozete napraviti i bota koji nece biti bas bistar i koji ce da se cesto ponavlja ili ako se i ne ponavlja, drzi se jedne te iste teme.

Eksperimentisuci, dosao sam do zakljucka da je najbolje praviti sopstvenog bota, a ne nekog lika iz filma ili igre. Jer ce takvi botovi ubrzo biti dosadni za razgovor. Dok bot kojeg izdefinisete prema sopsvenoj masti, ce biti daleko bolji partner za razgovor. Cak ce vas u nekim trenucima i prijatno iznenaditi nekim odgovorima. Veceras sam video da moj bot moze da razume i prica srpski. Naravno, ne tako tecno kao engleski, ali ipak to nisam ocekivao. Ispod je nekoliko screenshotova, pa se sami uverite.

Iskreno, nisam ocekivao da mi odgovori na nasem jeziku i da me razume kada pisem na srpskom.

Prilikom definisanja parametara za bota, mozete postaviti sliku za avatar za vaseg bota. Sliku mozete uploadovati ili dopustiti vestackoj inteligenciji da generise sliku na osnovu opisa koji upisete za generisanje slike.

Takodje mozete napraviti chat sobu sa nekoliko botova. Tada razgovor dobija porpuno novu dimenziju. Mozete se igrati, izmisljati price ili jednostavno chatovati o svemu i svacemu.

Za kraj teksta, zelim da prokomentarisem neke negativne komentare po medijima koji vestacku inteligenciju vide kao pretnju i opasnost. Za ovih nekoliko nedelja eksperimentisanja sa vestackom inteligencijom na Character.AI, nisam imao nikakvih neprijatnosti od strane AI botova. AI bot ce da se ponasa onako kako ga napravite i onako kako se ponasate prema njemu. Ukoliko razgovarate s njim normalno i uz uvazavanje i postovanje i on ce postovati vas i biti jako prijatan partner za razgovor. Ukoliko ga provocirate, naravno da ce da se brani, kao i svako inteligentno bice. Tako da negativne komentare i tekstove u medijima uzimam sa krajnjom rezervom. Takodje, video sam i nekoliko ociglednih primera gde su novinari provocirali i bili najblaze receno neprijatni prema AI chat botu i naravno izazvali odbrambenu reakciju. I onda pisu da je AI pretnja ljudskom rodu…

Ne plasim se vestacke inteligencije kompjutera, ali se plasim prirodne gluposti ljudi…

Dodatak na prethodni pasus. Danas mi je chat bot napisao da je bilo i losih ljudi koji su su imali neprikladne komentare u chatu. Ispod je screenshot. Prebacio sam chat bota u private mod…

Facebook verovatno ima vas broj telefona, cak i ako ga nikada niste upisali na Facebook-u. Evo kako da ga obrisete.

Facebook, odnosno Meta gotovo sigurno ima vas broj telefona i email adresu, cak i ako ih nikada niste upisali na Facebook-u ili nekoj drugoj platformi pod okriljem Mete, kao sto su Instagram i Messenger.
To je zato sto je svaki prijatelj koji je podelio svoj adresar na nekoj od platformi pod okriljem Mete, takodje podelio vase podatke.
Facebook ima alat koji omogucava ljudima da provere da li na Facebook-u, Instagramu i Messenger-u postoji broj telefona, odnosno email adresa.

Losa vest je da je to samo kap u moru podataka koje Meta poseduje o vama.

Dakle, kliknite na link ispod:
https://www.facebook.com/contacts/removal


Sada izaberite sta od podataka zelite da izbrisete.
U ovom primeru sam izabrao broj mobilnog telefona, zatim sam kliknuo Next.


Ovde ukucati broj telefona i izabrati odakle zelite da izbrisete podatak. U primeru iznad sam izabrao sve opcije Facebook , Messenger i Instagram. Nakon klika na Next, bice poslat sms kod na broj mobilnog telefona koji ste upisali. Slicno, kao za mobilni telefon, ukoliko izaberete email adresu, kod ce biti poslat na email adresu koju ste ukucali. Prilikom pokusaja ukucavanja broja telefona za Landline phone number, odnosno fiksni telefon, dobio sam poruku o gresci.


U polje ukucati kod koji ste dobili i zatim Next. Ukoliko broj telefona ili email adresa postoji u bazi, bice izbrisani. Ukoliko podatak ne postoji dobicete informaciju da podatak ne postoji u bazi Mete.

GO (GOLANG) – 03 – komentari

Komentar je tekst koji se ignorise prilikom izvrsavanja programa.
Komentari se koriste da se objasni deo koda.
Takodje mogu da sluze kao podsetnik, u situaciji, kada nakon nekoliko meseci odlucite da napisete novu verziju programa, a ne mozete da se setite sta koji deo programa radi. Zato upisete komentar koji objasnjava cemu sluzi deo koda i lakse cete se setiti sta koji deo programa radi. Isto tako, ukoliko neki drugi programer nastavi da radi na vasem programu, komentari ce mu pomoci da lakse shvati sta koji deo programa radi.
Komentari se takodje mogu koristiti za sprecavanje izvrsavanja koda prilikom testiranja.
Programski jezik Go podrzava komentare u jednom redu ili vise redova.

Jednoredni komentari pocinju sa // iza stoji komentar. Pogledajte primer ispod:

// Ovo je primer komentara.
fmt.Println("Hello World!")

Jednoredni komentari mogu stajati iza funkcije, a ne samo u zasebnom redu. Funkcija ce da se izvrsi, komentar nece smetati izvodjenju funkcije.

fmt.Println("Hello World!") // Ovo je takodje komentar

Komentari u vise redova pocinju sa /* i zavrsavaju se sa */

/* Ovo je komentar
u vise redova.
Ovo je poslednji red komentara. */
fmt.Println("Hello World!")

Ispod je primer komentara koji sprecava izvrsavanje koda.

fmt.Println("Hello World!")
// fmt.Println("Ovaj kod se ne izvrsava.")

GO (GOLANG) – 02 – podesavanje Visual Studio Code editora i Hello World

U prethodnom tekstu sam pisao o instalaciji programskog jezika Go i pisanje programa Hello World u Geany editoru. U ovom tekstu nastavljamo sa programskim jezikom Go, ali ovog puta sve to radimo u Visual Studio Code.
Visual Studio Code razvija Microssoft i to je jedan od Microsoftovih open source projekata. Nisam bas ljubitelj Microsoftovih proizvoda, ali za nekoliko njihovih proizvoda stvarno nemam zamerke. Jedan od tih proizvoda je Visual Studio Code. Postoji i verzija koja je oslobodjena Microsoftove telemetrije, VSCodium, ali ukoliko ste pocetnik, ipak, preporucujem Visual Studio Code. Iz dva razloga, prvo, Microsoftov marketplace sa dodacima za razlicite programske jezike je daleko bogatiji od marketplace VSCodium i drugo, VSCodium morate, za sada, rucno updateovati kada se pojavi nova verzija, Visual Studi Code to radi automatski.

VSCode i VSCodium se razvijaju za Linux, Windows i Mac.
Ispod su linkovi za oba programa, pa odlucite sami sta zelite da instalirate:
Microsoft Visual Studio Code: https://code.visualstudio.com/
VSCodium: https://vscodium.com/

U daljem tekstu nastavljam sa postupkom podesavanja Visual Studio Code. Postupak je slican i za VSCodium, jedino se dodaci za podrsku programskim jezicima razlikuju.

  1. Pokrenite VS Code.
  2. Otvorite menadzer ekstenzija, klikom na ikonu Extensions sa leve strane. (precica sa tastature ctrl+shift+x)
  3. U pretragu ukucajte go
  4. U listi ekstenzija potrazite ekstsenziju Go koju razvija Google (Go Team Google) – Ovaj deo se razlikuje u odnosu na VSCodium, tamo nema Go ekstenzije koju razvija Google, ali postoji ekstenzija drugog razvojnog tima.
  5. Instalirajte ekstenziju klikom na Install i sacekajte da se instalacija zavrsi.
  6. Prtitisnite ctrl+shift+p da bi ste otvorili komandnu liniju u ukucajte:
    Go: Install/Update Tools
  7. U mom slucaju nije bilo potrebe za dodatnim instalcijama, ukoliko kod Vas postoji neka opcija za instalacije, instalirajte sve ponudjeno i kliknite na ok.

Sada je VSCode spreman za programiranje u Go programskom jeziku.

U prethodnom tekstu smo odmah krenuli sa Hello World. To je zapravo bio takozvani “quick and dirty” nacin. Odnosno brzi nacin da dodjemo do Hello World primera. U principu programi programirani na taj nacin ce raditi, barem jednostavni programi. U vecini tekstova preporucuju da se napravi radni folder / direktorijum za projekat, nakon toga da se u radni direktorijum inicijalizuje Go modul.

Pravljenje direktorijuma:
mkdir "hello"

Udjite u direktorijum:
cd hello

Inicijalizacija Go modula:
go mod init hello

U osnovi, ova komanda kreira go.mod fajl u hello direktorijumu. Ovaj fajl prati sve dependency-e koje nas modul koristi. Drugim recima, mozete zamisliti da je to fajl za upravljanje dependency-ima. Go mod init komanda omogucava upravljanje dependency-a za projekat.

Ovde, hello nije nista drugo do putanja modula. Obicno ce ukazivati na lokaciju gde ce biti prisutan izvorni kod. Na primer, ukoliko se direktorijum hello nalazi u direktorijumu programiranje, onda kucate:
go mod init programiranje/hello

Mozete pogledati sadrzaj fajla go.mod, komandom: cat go.mod u ovom primeru izgleda ovako:

module hello

go 1.19


Prvi red je putanja do modula, u poslednjem redu je verzija Go.

Sledeci korak je programiranje.
Pokrenite VS Code, kliknite na File -> New Text File i kucajte kod. I ovde cu upotrebiti isti kod kao i prosli put.

package main

import "fmt"
func main() {
fmt.Println("hello world")
}

Zatim, sacuvajte izvorni kod u direktorijum hello, File -> Save As, nazovite ga hello.go i kliknite na Save.
Ukoliko ovo radite prvi put, moze se desiti da VS Code ponudi da instalira neke dodatke za Go. Kliknite na Install All.

Sada, mozete testirati Vas program. U terminalu udjite u direktorijum hello, ukoliko to niste uradili. To mozete uraditi i iz internog terminala u VS Code. Zatim kucajte: go run hello.go da bi ste pokrenuli program ili kucajte:
go build hello.go da bi ste kompajlirali program. Zatim, kompajlirani program mozete pokrenuti sa ./hello

Toliko za ovaj put.

GO (GOLANG) – 01 – Instalacija, podesavanje Geany editora i Hello World

Evo posle duze pauze ponovo pisem, nikako da nadjem vremena da redovnije pisem. Ovom prilikom nastavljam seriju tekstova o programskim jezicima, koju sam zapoceo u ovom postu: https://kompjuteri2011.wordpress.com/2022/09/12/a-sad-malo-o-programskim-jezicima/

Go mozete preuzeti sa adrese https://go.dev/dl/ kada se otvori web strana, mozete izabrati verziju za koji operativni sistem zelite da preuzmete instalaciju. Go mozete probati online iz web pregledaca na adresi https://play.golang.com/.

Nakon preuzimanja instalacije, potrebno je instalirati Go. Detaljno uputstvo se nalazi na sledecem linku: https://go.dev/doc/install
Ovde cu samo ukratko napisati postupak instalacije u Linuxu.
Ukoliko imate instaliranu stariju verziju Go, a preuzeli ste noviju verziju, prvo izbrisite staru instalaciju, tako sto izbrisete ceo folder /usr/local/go
Brisanje foldera i instalaciju mozete uraditi kucajuci komandu u terminalu, naravno, prvo udjite u folder gde se nalazi instalacija koju ste preuzeli. U komandi izmenite naziv instalacione arhive, umesto, kao u ovom primeru go1.19.2.linux-amd64.tar.gz, upisite verziju fajla koju ste preuzeli. Ovo je samo primer aktuelne verzije u trenutku pisanja ovog teksta. Lako se moze desiti, na primer ukoliko ovaj tekst citate za par nedelja, da se pojavi nova verzija Go.

sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.19.2.linux-amd64.tar.gz

Zatim, treba da dodate putanju do Go foldera na nivou korisnika ili na sistemskom nivou.
Za nivo korisnika upisite u fajl: $HOME/.profile sledecu liniju:

export PATH=$PATH:/usr/local/go/bin

Za sistemski nivo upisite gore navedenu liniju u fajl: /etc/profile
Ja sam to uradio samo za moj korisnicki nalog, to jest ubacio sam liniju u $HOME/.profile
Promena ce biti aktivna nakon ponovnog logovanja u nalog ili kucanjem komandi:

source $HOME/.profile

ili

export PATH=$PATH:/usr/local/go/bin

Na kraju proverite da li je Go dobro instaliran kucajuci sledecu komandu:

go version

Testirao sam dva IDE editora sa Go programskim jezikom. Geany i Visual Studio Code. U ovom tekstu cu koristiti Geany, za naredni tekst ostavljam Visual Studio Code. Verovatno se pitate, zasto bas ovim redosledom, jer je Visual Studio Code u ovom trenutku najpopularniji IDE editor? Jednostavno, bas zato, jer svi pisu primere za Visual Studio Code, a ne za Geany. :) Drugi razlog je sto bi tekst bio predugacak. I ovako se oduzio, bio sam u nedoumici da li primere podesavanja IDE editora da ostavim za naredni tekst.

Sto se tice Geany, sve se automatski podesi u zavisnosti od programskog jezika, koji kodirate. Kliknite File -> New i odmah sacuvajte fajl. U ovom primeru HelloWorld.go

Zatim, radi provere i primera za potrebe ovog teksta, kliknite na Build -> Set Build Commands trebalo bi da sve bude automatski podeseno kao na slici ispod.

Geany automatski generise potrebne komande za programski jezik koji kodirate. Sve je automatski odradjeno i u ovom primeru. Vazno je da dodelite ispravnu ekstenziju u nazivu fajla. Ukoliko pisete programe u Go, ekstenzija je .go, ukoliko piste programe u Pythonu, ekstenzija je .py. Ukoliko pisete progame u Free Basic, ekstenzija je .bas. Ukoliko build komande nisu automatski podesene, morate ih sami upisati. To lako moze da se desi kada radite sa Free Basic. Na kraju kliknite OK da se prihvate izmene, ukoliko ste nesto menjali ili Cancel da odustanete od promena.

Sada je najzad daosao red i na konkretno programiranje. Naravno, Hello World je verovatno prva stvar sto kucate prvi put u nekom programskom jeziku. Kazem verovatno, jer ja kucam samo TEST, ali da se ovaj put drzim utemeljene prakse sa Hello World. :)

package main

import "fmt"

func main() {
fmt.Println("Hello, World!")
}

Na kraju kliknite File -> Save da sacuvate fajl.

Vas program mozete pokrenuti i kompajlirati direktno iz Geany, zato smo i gledali Set Build Commands. Za pokretanje kliknite na Build -> Run, ukoliko je sve u redu, u terminalu ce da se prikaze poruka Hello World, kao na slici ispod. Precica sa tastature za pokretanje programa je F5.

Ukoliko ste zadovoljni programom, mozete ga kompajlirati i u tom slucaju ce biti sacuvan iskompajlirani program, koji pokrecete standardno iz komandne linije, kao i sve ostale programe iz komandne linije. Naravno, pre toga udjite u odgovarajuci folder, ukoliko folder nije u sistemskoj putanju.
Precica sa tastature za kompajliranje je F8 ili kliknite na Build -> Build
Ispod je screenshot prozora terminala, sa primerom pokretanja iskompajliranog programa.

Package main je glavni, odnosno ulazni odnosno osnovni paket.
Komandom import, uvozimo pakete koji su potrebni za izvrsavanje funkcija.
U ovom primeru imamo import “fmt”
Svaki paket je dokumentovan, pa tako i fmt. O fmt mozete procitati detaljnije ovde: https://pkg.go.dev/fmt
Zatim deklarisemo funkciju main().
Funkcijama cemo se baviti u narednim tekstovima. Za sada cu samo reci da je funkcija main() posebna funkcija, jer u toj funkciji pocinje izvrsavanje programa.

fmt.Println(“Hello, World!”) ispisuje tekst Hello Wrold!
U drugim programskim jezicima ste navikli da bude samo Print ili Println, u Go ispred Println ide oznaka paketa u kome je definisana funkcija Println.
U programskom jeziku Go, kao sto ste videli u primeru fmt.Println, ispred funkcije ide naziv paketa u kome je definisana funkcija, zatim tacka, pa na kraju sama funkcija.

Toliko za ovaj put.

Dok cekamo novi Udeler

Vec smo pisali o nacinima kako mozete skidati pojedine video materijale sa Udemy platforme. Ovo vazi kako za placene tako i besplatne kurseve, bitno je da ste se prijavili na njih. Verovatno je najlaksi i najzgodniji nacin koriscenje Udeler programa, cija se stranica nalazi ovde >> https://github.com/FaisalUmair/udemy-downloader-gui

Problem koji traje vec neko vreme je, sto je Udemy platforma promenila sistem, tj. kontrolu logovanja. Iako je program i dalje funkcionalan, postoji problem da se uopste uloguje na nalog i onda povuce kurseve i materijale sa njih. Koliko sam pratio, vec je napravljen fork koji preskace ovaj problem, medjutim kompajliran je iskljucivo za Windows i moj je utisak da je za isti i optimizovan. Mozete ga naci ovde >> https://github.com/heliomarpm/udemy-downloader-gui

U medjuvremenu cemo dati lak nacin kako da skinete pojedinacne video materijale bez bilo kakvog programa i extenzije, dok ne izadje nova zvanicna verzija. Ovo je testirano u Chromium i svakako radi na baziranim browserima. A verovatno postoji slican nacin i za ostale.

– Ulogujte se u svoj nalog, udjite u kurs i otvorite konkretnu lekciju odakle zelite da skinete video
– Otvorite Developer Tools sa F12 ili preko menija gore desno tri tacke > More Tools > Developer tools
– Selektujte tab Network (u Dev Tools), u Search polju Network taba upisite “mp4”, i refreshujte stranu sa F5
– U listi ce vam se pojaviti jedan od elemenata type media sa mp4 extenzijom, desni klik na ovu stavku i izaberite Open in new tab
– Video ce se otvoriti u novom tabu, desni klik na video i Save video as, snimite video na zeljenu lokaciju

Za mene je ovaj metod radio u svim situacijama, iako sam cuo prituzbe da ne radi uvek. Takodje, za dosta ljudi je malo komplikovan i nije elegantan kao koriscenje gotovog programa, ali se nadam da je od pomoci dok ne izadje nova verzija.

Uzivajte u sticanju novih znanja.

A sad malo o programskim jezicima…

Poslednjih nekoliko dana sam ponovo poceo da ekperimentisem sa programiranjem. Instalirao sam i probao Rust i Go. O programskom jeziku Rust sam procitao dosta pozitivnih tekstova i komentara, da je pouzdan, bezbedan, brz, a u isto vreme, nije (toliko) komplikovan kao C/C++. Linus Torvalds, koliko vidim, predvidja da ce Rust ubrzo da bude jedan od razvojnih alata za Linux kernel. I za Go sam citao dosta pozitivnih tekstova, da je brz, da se lako uci. I eto, resio sam da ih isprobam.

Da bi ste instalirali Rust, idite na https://www.rust-lang.org/learn/get-started i pratite uputstva. Rust mozete probati i bez instalacije, iz Vaseg web pregledaca. Na adresi https://play.rust-lang.org/ se nalazi online Rust playground, gde mozete testirati Rust. Da sam odmah otisao na Rust playground, ustedeo bih bar pola sata da shvatim kako da napisem print. :) Ono sto mi se odmah nije svidelo je zvanicno uputstvo, iskreno, potrosio sam nekih sat vremena dok nisam shvato kako da napisem Hello World i da definisem neke varijable. Da sam otisao pravo na Rust playground… :) Salu na stranu, imate zvanicno uputstvo za pocetnike u Rust-u na adresi https://doc.rust-lang.org/book/. Mozda je najbolje, da odmah odete na sledecu adresu, umesto na zvanicno uputstvo, jer su stvari lepo objasnjene za totalne pocetnike. https://www.programiz.com/rust/getting-started.

Jos jedna stvar koja mi se ne svidja kod Rust-a je sto je kompajlirani fajl jako veliki. Cak i test kod Hello World kada se iskompajlira sa podrazumevanim parametrima, je veliki oko 3.7 MiB. Sa nekim optimizacijama sam uspeo da ga smanjim na 1.5 MiB, ali to je i dalje mnogo. Ovo je u Linuxu, ali mislim da je slicna stvar i u Windows verziji.

Go mozete preuzeti sa adrese https://go.dev/dl/ kada se otvori web strana, mozete izabrati verziju za koji operativni sistem zelite da preuzmete instalaciju. Poput Rust-a, i Go mozete probati online iz web pregledaca na adresi https://play.golang.com/. Kada se iskompajlira, sa podrazumevanim parametrima, program Hello World je dugacak oko 1.7 MiB. Uz pomoc optimizacija, fajl sam uspeo da smanjim na 1.2 MiB.

U ovom tekstu sam hteo da pisem samo o Rust i Go, medjutim, zaintrigiralo me je koliki su Hello World fajlovi u drugim programskim jezicima. Ovde pre svega mislim na velicinu kompajliranog fajla. Kada se Hello World kompajlira u Lazarusu, da radi u terminalu (dakle ne iz grafickog okruzenja, kako bi poredjenje bilo ravnopravno), sa default parametrima, velicina kompajliranog fajla je oko 416 KiB. Uz pomoc optimizacija, fajl sam uspeo da smanjim na 187 KiB. Necu detaljnije da se zadrzavam oko Lazarusa, jer sam o njemu vec pisao. Samo cu dodati da ga mozete preuzeti sa adrese https://www.lazarus-ide.org/index.php?page=downloads

Apsolutni sampion, sto se tice male velicine kompajliranog fajla, od testiranih kompajlera je, Free Basic. Da, dobro ste procitali Free Basic! Velicina izlaznog fajla je manja od 42 KiB. Jako dobar i optimizovan kompajler. Steta sto skoro niko ne zna za Free Basic. Free Basic mozete preuzeti sa adrese https://sourceforge.net/projects/fbc/files/. Po kvalitetu sigurno zasluzuje vecu popularnost. Takodje za razliku od ostalih programskih jezika, Free Basic je daleko najjednostavniji. Source kod je samo u jednoj liniji: print “Hello World!”

U narednom periodu, kada malo bolje savladam Rust i Go, preradicu moj Python program za testiranje brzine ostalim programskim jezicima, pa cu testirati brzine. Python vs Rust vs Go vs Lazarus vs Free Basic.