Category Archives: Open Source & Freeware

Lista Open Source i slobodnog (freeware) softvera koje sam probao i koje preporucujem.

Pascal: Dodatne teme (nastavak)

Ovo je nastavak prethodne lekcije, koju smo odvojili radi preglednosti i bolje organizacije. Danas pricamo o Setovima i upotrebi komentara. Na kraju cemo dodati i mali zadatak iz programiranja.

1) Setovi na neki nacin podsecaju na Rekorde i predstavljaju predefinisane skupove podataka istog tipa. Ovi tipovi mogu biti standardni za Pascal ili se mogu zasebno deklarisati. Manipulacije sa Setovima su dinamicnije i blize savremenom pristupu rada sa podacima. U tom smislu se moze reci da savremene baze podataka predstavljaju kombinaciju dinamike setova i mogucnosti rekorda, zarad vece efikasnosti u radu. Pogledajmo jedan moguci primer sa Setovima.

program Setovi;
uses Crt;

type
dan = (Po,Ut,Sr,Ce,Pe,Su,Ne);
dani = set of dan;
var
bla:dan;
a,b,c:dani;

begin
a := [Po,Ut,Sr,Ce,Pe,Su,Ne]; //definisemo sve dane
b := [Su,Ne]; //definisemo vikend
c := a - b; //racunamo radne dane
write ('Radni dani su: ');
for bla in c do begin
write(bla); write(', ');
end;
//brisemo poslednji zarez
GotoXY(WhereX-2,1); ClrEol;
writeln; readln;

end.

U ovom programu smo najpre definisali tipove dan, sa imenima dana u nedelji, i nakon toga dodali i set sa imenom dani. Zatim smo dodali varijable oba tipa i deklarisali ih. Nakon toga smo od cele nedelje oduzeli dane vikenda i dobili radne dane. Na kraju smo izveli mali kozmeticki trik, da bi obrisali poslednji zarez u izvestaju. Najpre smo pomerili kursor dva mesta u levo, i obrisali sve karaktere koji su u nastavku. Funkcije GotoXY i WhereX su deo Crt unita. Prva pomera kursor a druga ocitava njegovu X (horizontalnu) poziciju. Vise o setovima pogledajte ovde a o Crt funkcijama ovde, gde mozete naci detaljne nacine upotrebe u FPC kompajleru.

2) Upotreba komentara

Sada cemo se pozabaviti upotrebom komentara u procesu debagovanja i razvoja programa. O standardnoj upotrebi komentara je vec bilo reci, i do sada smo ih intenzivno koristili. Komentari u jednom redu se najcesce prave sa dve kose crte, iza kojih sledi komentar. On vazi od mesta na kome se kose crte nalaze, bilo na pocetku linije ili u nastavku koda. Drugi format je vezan za komentare u vise redova za koje u savremenom Pascalu koristimo viticaste zagrade. Naravno, potpuno je validno da ostavljate komentare mesajuci ove stilove. Oba primera smo vec demonstrirali u lekciji Hello World, u kojoj smo pomenuli i treci tip komentara izmedju zagrade i zvezdice, koji je danas u retkoj upotrebi, ali je ostao validan zbog povratne kompatibilnosti. Razne forme komentara sa primerima mozete videti ovde.

Postoji vise razloga za ostavljanje komentara. Najpre, narocito ako volite da optimizujete stvari, desava se da otvorite sopstveni kod nakon duzeg vremena i niste sasvim sigurni sta je pisac hteo da kaze pre deset godina. Onda je korisno da usput stoji i objasnjenje. Drugi razlog je svakako timski rad, jer tek tu je tesko ponekad odgonetnuti misli pisca obzirom da iskusni programeri imaju svoj stil. I na kraju ono sto se retko pominje, to je upotreba komentara tokom razvoja. Cesto zelimo da vidimo kako ce deo koda raditi u malo drugacijoj verziji ili bez dela programa. Umesto da brisemo i ponovo kucamo sve, jednostavno mozemo deo koda “zakomentirati” i videti sta se desava. Sada cemo za ilustraciju upotrebiti nas prethodni primer sa setovima.

Ucitajte program sa setovima i pokrenite ga, vec vam je poznat output. Sada zakomentarisite GotoXY liniju, tako da kraj programa izgleda ovako:

//brisemo poslednji zarez
//GotoXY(WhereX-2,1); ClrEol;
writeln; readln;

end.

Videcete da ce iza poslednjeg dana stajati zarez. Ako vas zanima zasto smo pomerili kursor za dva, umesto za jedno mesto, zakomentirajte i writeln komandu na sledeci nacin:

//brisemo poslednji zarez
//GotoXY(WhereX-2,1); ClrEol;
//writeln;
readln;

end.

Postace jasno da iza zareza postoji jos jedan space kao posledica poslednjeg dela iz for petlje. Na ovaj nacin mozete menjati i popravljati vas kod i dovesti ga precizno gde zelite.

Za kraj smo ostavili mali zadatak koji ce vam mozda biti zanimljiv. U koliko imate volje i to vas zanima, napravite program koji ce najpre izabrati random broj od 1 do 70, a onda traziti od igraca da ga pogodi u seriji pokusaja. Mozete koristiti bilo koje tehnike, jer je u programiranju moguce doci do resenja na mnogo razlicitih nacina.

Vise o upotrebi komentara u debagovanju pogledajte ovde.

Advertisements

Python stil skidanja video materijala

Ovo je jedan zgodan, besplatan i open source nacin skidanja video materijala sa raznih izvora. Ono sto me je navelo da pisem o njemu, je mogucnost skidanja video lekcija sa Udemy MOOC platforme. Ta opcija obicno postoji samo ako je autor kursa dozvoli, sto se retko desava. Sa druge strane, cesto je korisno imati video podsetnik lekcija kurseva koje smo prosli. Za one koji ne znaju, Udemy je na neki nacin jedinstven po tome sto prakticno svako moze napraviti svoj kurs, dok je vecina drugih MOOC provajdera pre svega fokusirana na akreditovane obrazovne ustanove. Samim tim, izbor je jako raznovrstan uz bogatu ponudu kompjuterskih kurseva svake vrste. Medjutim, kako su brojni korisnici primetili, platforma je zahtevna po pitanju resursa (CPU) zbog specificnog pristupa. Zbog ovoga je mogucnost downloada video materijala dodatno korisna.

U pitanju je program youtube-dl, koji je napisan u pythonu, opensource i cross platformski. Lista sajtova sa koje moze da skida materijale zaista je impresivna. Windows verzija je izuzetno laka za upotrebu, jer vec sadrzi Python u sebi, dok je za ostale verzije potrebna instalacija neke verzije poput v2.6/2.7 ili v3.2 i novije. U vecini distroa je Python vec instaliran.

Adresa projekta je na github-u ovde, a lista sajtova koje podrzava ovde. Treba jos napomenuti da verzija za Windows, iako ima ugradjen Python, trazi Visual C++ Redist, koji se moze skinuti sa MS sajta, ako vec nije instaliran u okviru nekog paketa.

Pogledajmo ukratko kako da koristite ovaj program pod Win-om. Naravno, pojedine korake mozete da promenite tako da se uklope u vase potrebe. Najpre ako nemate podrsku za Visual C++ 2010, skinite Redist i instalirajte. U koliko vam program javi dll gresku, ovo je najcesci razlog.

Zatim u root-u C:\ particije napravite folder sa zgodnim imenom, na primer ‘bin’ i u njega stavite kompajlirani exe programa, koji mozete skinuti ovde. Pokrenite dos prompt sa Start > Run > cmd, i ukucajte: cd c:\bin; da bi usli u pomenuti folder. Zatim kucajte: youtube-dl -h; i ako dobijete listu komandi, znaci da sve radi kako treba. U suprotnom, moguce je da nemate instaliranu podrsku koju smo pomenuli.

Sada cemo experimentalno skinuti jedan video sa youtube. Pokrenite Dos prompt (Start > Run > cmd), zatim predjite u folder sa: cd c:\bin i kucajte jednostavnu komandu:

youtube-dl "https://www.youtube.com/watch?v=wmin5WkOuPw" -f mp4

Ova komanda ce skinuti video Firestarter u mp4 formatu, u folderu gde se nalazi exe fajl. U koliko se ne navede format, program ce skinuti native webm format koji je vecini ljudi neupotrebljiv. Za sva fina podesavanja, najbolje je pogledati dokumenta ili potraziti preko gugla, da bi dobili tacno ono sto zelite.

Pogledajmo sada ono od cega smo poceli, a to je skidanje kompletnih Udemy kurseva. Naravno, najpre je potrebno da imate nalog na Udemy-ju kao i da budete upisani na kurs. U tom slucaju, najbolje da proverite da li je autor kursa ostavio mogucnost downloada (tockic na videu dole desno). Ako nije onda vam ovaj Python program moze pomoci preko sledece sintaxe:

youtube-dl -u username -p sifra link-do-kursa

Recimo, pretpostavimo da nekog zanima Tarot i da je upisao trenutno besplatni kurs na ovoj adresi. Takodje, treba imati u vidu da je username na Udemy zapravo vasa email adresa, a link do kursa mora biti kompletan. U tom slucaju komanda bi izledala otprilike ovako:

youtube-dl -u bla@bla.net -p blabla.sifra "https://www.udemy.com/fun-easy-intro-to-all-78-tarot-cards-best-for-beginners"

Ovo ce bez greske skinuti sve video materijale sa kursa u mp4 formatu, pod uslovom da ste zaista i prijavljeni za taj kurs, bilo da je besplatan ili placen. Naravno, isti se princip moze primeniti i na ostale sajtove koji traze da budete ulogovani dok skidate materijale.

Obzirom na komplexnost programa, nemoguce je obraditi sve opcije. Ali je iscrpan tutorijal dostupan na sajtu developera, kao i prilikom pretrage na google, obzirom na sve siru bazu korisnika. Ovo je ujedno i odlicna demonstracija koliko Python moze biti mocan i koristan za konkretnu upotrebu.

Gimp tutorijal 75 – Gimp 2.10.0

Pirkaz nove verzije Gimpa 2.10.0.

GIMP 2.10.0

Najzad, posle vise godina iscekivanja, pojavio se GIMP 2.10.0. Ima na tone noviteta.
– Obrada slika je skoro potpuno prebacena u GEGL. Omogucavajuci 16 i 32 bitnu obradu slika. Hardverski ubrzanu i “multi-threaded” obradu piksela,
– Nekoliko novih alata i poboljsani stari alati.
– Canvas preview za sve filtere koji su prebaceni u GEGL.
– Podrska za nekoliko novih formata slika (OpenEXR, RGBE, WebP, HGT), kao i poboljsana podrska za mnoge od starih formata slika.
– Mogucnost pregleda i izmene metadata podataka, Exif, XMP, IPTC i DICOM.
I jos dosta toga….

Kada se malo bolje upoznam sa novim Gimpom (i naravno kada nadjem vremena), bice i video prikaz nekih od novih opcija i alata u Gimpu.

Linux verziju Gimpa, mozete instalirati iz Flatpaka.
Pokrenite terminal i kucajte komandu:
flatpak install https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref

Zvanicna web prezentacija je na adresi:
https://www.gimp.org/

Linux tutorijal 26 – ClamAV

Prikaz ClamAV Open Source antivirusa.

VirtualBox i serijski port preko USB na RS 232 adaptera

Ovaj tekst se logicki nastavlja na tekst u ovom clanku.
U prethodnom tekstu je opisan postupak podesavanja VirtualBox-a, ako je na kompjuteru prisutan fizicki serijski, odnosno com port. U ovom tekstu cu objasniti postupak podesavanja VirtualBox-a, ako nema fizickog COM porta, vec se koristi USB na RS 232 adapter. Postupak za Windows je isti kao i u prethodnom tekstu, jer drajver za USB na RS 232 adapter prijavljuje taj adapter, kao COM1 ili neki drugi COM port, ako ste tako podesili. U Linuxu je malo drugacije. Ovde cu opisati oba postupka.
Otvorite podesavanja vase virtuelne masine, zatim kliknite na Serial Ports. Mozete aktivirati do 4 serijska porta. U padajucem meniju Port Number sam namestio da bude COM1, a u padajucem meniju Port Mode sam namestio opciju Host Device. Postoje i druge opcije, koje se odnose na emulaciju serijskog porta, ali posto je meni potrebna veza kompjutera i uredjaja koji je bio nakacen na taj port, onda sam izabrao opciju Host Device. Zatim u polju Path/Address sam morao da ukucam ime porta. Ako koristite Windows kao instalirani operativni sistem na kompjuteru, onda tu upisite COM1. I na taj nacin ce operativni sistem instaliran u VirtualBox-u videti COM1 port, odnosno serisjki port.
Ako koristite Linux kao operativni sistem koji je instaliran na kompjuteru, onda u polje Path/Address upisite /dev/ttyUSB0. Sacuvajte podesavanje i izadjite iz VirtualBox-a.
U Linuxu je potrebno odraditi jos jednu stvar, a to je da se korisnicki nalog iz koga pokrecete VirtualBox doda u grupu Dialout. Izlogujte se, zatim se ponovo logujte i VirtualBox je podesen da koristi serisjki port.
Ovo se odnosi na Linux Mint 18, jer se u njemu /dev/ttyUSB0 nalazi u grupi Dialout, pa iz tog razloga, mora i logovani korisnik da pripada istoj grupi, jer ce u suprotnom biti prijavljena greska. Ako Vam je ovo previse komplikovano, mozete pokrenuti VirtualBox iz root naloga, ali iz bezbednosnih razloga nije preporucljivo pokretati programe sa root privilegijama, ako to bas nije neophodno.

Telegram messenger

Telegram je relativno nov i jako efikasan instant messenger, sa funkcijama i karakteristikama koje ga izdvajaju i cine vrlo pozeljnim. Najpre podrzava sve mobilne i desktop operativne sisteme i na svima ima istu funkcionalnost. Verzija za Windows podrzava XP i poseduje portabilnu verziju. Visoka kompatibilnost dodatno je podrzana cloud tehnologijom, tako da je nalogu moguce pristupiti sa svih uredjaja. Svi podaci i komunikacija su visoko enkriptovani, a za one koji zele dodatnu sigurnost, moguce je ukljuciti i end user direktan enkriptovani chat. Takodje, u cilju poboljsanja sigurnosti, ponudjena je stalna nagrada od 300.000$ svakome ko uspe da desifruje poruke. Vise detalja ovde.

Od standardnih opcija, program podrzava chat, voice pozive, razmenu fajlova i slika, audio poruke, grupne razgovore, emotikone, stickere, programiranje botova i slicno. Klijent strana je open source pod GPL licencom, server strana je zatvorena i vlasnicka a dostupan je i API za developere. Jedina eventualna mana je vezivanje naloga za mobilni broj, bar iz mog ugla. On se medjutim moze sakriti postavljanjem username-a, koji dodatno setuje link za lakse povezivanje. Telegram se moze koristiti i iz browsera, nakon registracije. Na kraju bih dodao da je klijent izuzetno lagan po resurse, kad se uporedi sa konkurencijom, sto mu je mozda i najveca prednost.

Vise informacija, FAQ i download na Telegram sajtu i Wiki stranici.

Atom

Atom je moderan i pristupacan tekst editor za 21. vek. S njime mozete pisati tekst ili kodirati, odnosno programirati. Podrzana je sintaksa za dosta programskih jezijka i skripti. Mozete ga prilagoditi do najsitnijih detalja. Funkcionalnost programa mozete prosiriti instaliranjem brojnih dodataka, odnosno paketa, kako ih nazivaju. Sve ide lako na samo nekoliko klika misem, imate i pretragu dostupnih dodataka, pa ne bi trebalo da bude problema prilikom instalacije dodataka.
To je Open Source projekat, koji se razvija za Linux, Mac i Windows.
Zvanicna web prezentacija je na adresi: https://atom.io

Notepadqq

Notepadqq je klon Notepad++ editora koji se razvija za Linux.

Mozete ga koristiti za pisanje teksta ili programiranje. Ako ga koristite za programiranje, podrzane su sintakse za preko 100 programskih jezika. Imam jednu zamerku, a to je da za sada ne postoji opcija za sortiranje teksta ili dela teksta, kao sto to imaju neki drugi editori, kao na primer Xed i Sublime, ne radi cak ni opcija sa eksternom komandom sort -u, kao na primer u Geany-u. Nadam se da ce, u nekoj od narednih verzija, ubaciti i opciju za sortiranje teksta.

notepadqq

notepadqq

Program se razvija za Linux. Zvanicna web prezentacija je na adresi: http://notepadqq.altervista.org

Da bi ste ga instalirali u terminalu kucajte sledece linije:

sudo add-apt-repository ppa:notepadqq-team/notepadqq
sudo apt-get update
sudo apt-get install notepadqq

Popravka tearing efekta prilikom reprodukcije videa na AMD/ATI Radeon grafickim karticama

Nikada mi nece biti jasno, zasto ova podesavanja ne ubace automatski prilikom instalacije operativnog sistema ili drajvera. Kada je ovo krajnje jednostavno, samo prilikom instalacije treba ubaciti skriptu sa par redova i to je sve…

Ovo je probano na laptopu sa operativnim sistemom Linux Mint 18.1, sa ATI Radeon grafickom karticom.
Za ovih nekoliko sati testiranja, nisam imao problema prilikom reprodukcije videa sa YouTube ili iz VLC-a.

Za ovo nam je potreban Mesa Utils. Ja sam imao instaliran Mesa Utils, ali ako ga kojim slucajem nemate instaliranog, onda ga instalirajte komandom u terminalu:
sudo apt install mesa-utils

Zatim, napravite direktorijum /etc/X11/xorg.conf.d/
u terminalu kucajte:
sudo mkdir /etc/X11/xorg.conf.d/

Zatim, treba da napravite konfiguracioni fajl, koji ce te sacuvati u direktorijum koji ste napravili. To mozete uraditi na dva nacina, ili da kucate sledecu liniju u terminalu (ovde je linija u dva reda da bi mogla da stane):
echo -e 'Section "Device"\n Identifier "Radeon"\n Driver "radeon"\n Option "TearFree" "on"\nEndSection' | sudo tee /etc/X11/xorg.conf.d/20-amd.conf

Ili da otvorite tekst editor komandom u terminalu:
gksudo xed /etc/X11/xorg.conf.d/20-amd.conf

I da u fajl upisete sledece linije:
Section "Device"
Identifier "Radeon"
Driver "radeon"
Option "TearFree" "on"
EndSection

Na kraju sacuvajte fajl i izadjite iz tekst editora.

Restartujte kompjuter i testirajte da li i dalje postoji tearing efekat prilikom reprodukcije videa.

Linkovi gde mozete proveriti tearing efekat prilikom reprodukcije videa (preporucujem da ih pogledate pre i posle izmene konfiguracionog fajla da vidite razliku):




%d bloggers like this: