Monthly Archives: July 2018

Gimp 77 – Gimp 2.10.5 Appimage

Gimp 2.10.5 Appimage

https://github.com/aferrero2707/gimp-appimage/releases
https://launchpad.net/~otto-kesselgulasch/+archive/ubuntu/gimp

Advertisements

Pascal: FAQ (Pitanja i odgovori)

Kada sam poceo sa serijom textova o osnovnom Pascalu, dobio sam brojna pitanja od raznih poznanika, medju kojima je bilo i iskusnih programera ali i onih koje je tema zanimala na korisnickom nivou. U ovom clanku cu probati da odgovorim na ona koja mi se cine najzanimljivijim. Neka pitanja su licna, druga se ticu same teme i kompjuterskih nauka. Nadam se da ce ovaj FAQ biti zanimljiv.

1) Zasto bas Pascal, da li se neko uopste jos uvek bavi time?

Naravno da se bavi i dobre su sanse da se ovaj trend nastavi u duzem periodu. Najaktivnija grupa je svakako okupljena oko projekta Lazarus i Free Pascal Compiler-a (FPC). Glavni razlog je korisnost i cena. Besplatan je, primenljiv na svim sistemima, i podseca na Delphi na kome su mnogi odrasli, kad je u pitanju brzi razvoj software-a.

2) Da li postoje jos neke grupe i projekti koje postujete i preporucujete?

Naravno! Najpre prethodno pomenuti Delphi, kao projekat RAD (Brzo Razvijanje Software-a), kojim se vise ne bavim ali je i dalje u razvoju. Tu su razni izvedeni programski jezici i okruzenja, poput Oxygene-a ili onih baziranih na Lazarusu o kojima smo vec pisali. Naravno, tu je i nezaobilazan GNU Pascal projekat, koji predstavlja takodje cross-platformski i dugogodisnji standard u ovom jeziku.

3) U ovom kontextu, mozete li reci kako ste poceli sa programiranjem?

To je bilo davne 1985te, sto je mozda i formiralo moj ukus u IT oblasti. Poceo sam sa 8bitnim, u to vreme naprednim kompjuterima, radeci najvise sa Sinclair Basicom i Z80 Asemblerom. Kada kazem da je to formiralo ukus, mislim na postovanje hardwareskih resursa i optimizacije koda. Recimo, kompletna memorija ZX Spectruma je zauzimala manje memorije od jedne ikonice na ekranu danasnjih kompjutera, pa ipak u njoj su stajale fantasticne igre i programi.

4) Kako bi uporedili Pascal sa drugim programskim jezicima?

U sustini sve zavisi sa kojim jezikom. Pascal je pre svega orijentisan ka desktop programiranju i ucenju. U pitanju je jezik koji radi na svim sistemima, daje konzistentne rezultate i moze se lako primeniti u razlicitim okruzenjima. Druga bitna prednost je kompajlerski pristup, koji po defaultu daje gotove upotrebljive aplikacije, a ne skripte koje, iako mogu biti jako korisne, zahtevaju neko okruzenje da bi se izvrsile.

5) Zasto smatrate da je Pascal superioran za ucenje programiranja?

Tesko je odgovoriti na taj nacin, pre bih rekao da je superioran za ucenje logike programiranja. Tu su stvari relativno jednostavne. Pascal je izuzetno citljiv i razumljiv, za razliku od recimo C-a i derivata, ili Asemblera na kome sam pravio prve korake u kompajlerskim jezicima. Sa druge strane, dovoljno je striktan u svojoj stukturi, za razliku od tipicnih intepreterskih jezika, poput recimo ranog Basica ili danasnjeg Pythona, koji su prilicno liberalni. Drugim recima, svako treba da radi onako kako smatra da je najbolje, ovo je samo moj pristup. Pascal je idealan spoj razumljivosti, uz pouzdanu strukturu i optimizovanu upotrebljivost. Zato se isplati uciti ga.

6) Ocigledno je da su drugi jezici preuzeli primat, zbog cega je to tako?

Ne mogu se u potpunosti sloziti sa vama. Svaki jezik ima svoj fokus, i to je normalno kada se neka oblast razvija. Svakako cemo programe za web raditi u PHP-u sa CSS dodacima. HTML5 nove generacije nam otvara mogucnosti za koje smo ranije morali da se dovijamo preko Flasha. Pojavljuju se potpuno novi jezici poput R za statistiku, Perl koji mnogima deluje suludo ali daje odlicne rezultate, ili Python koji pravi cuda u gotovo svim oblastima. Samo je pitanje sta vas tacno zanima. Ova lista se moze siriti u nedogled.

7) Dobro to je jasno, jos jednom, zasto preporucujete Pascal za ucenje i uopste?

Dobro dacu jasan odgovor, da svima bude jasno:

1] Pascal ima striktnu programersku strukturu, sto razvija dobre programerske navike. Za razliku od jezika poput Basica i Pythona koji previse toga podrazumevaju.

2] Ovaj jezik je u stalnom razvoju kako od aktivnih zajednica tako i od komercijalnih kompanija. Na primer Lazarus/FPC, GNU Pascal ili Delphi.

3] Daleko je razumljiviji od jezika koji su savremenici ali su daleko tezi za razumevanje i ucenje. Razlog zasto su drugi jezici preuzeli primat je podrska velikih kompanija, poput Microsofta. Dobar primer je C i kasnije derivati istog.

4] Optimizovani kompajlirani programi u Pascalu zauzimaju izuzetno malo prostora. Npr. osnovna igra iz pogadjanja brojeva koju cu objaviti u narednoj lekciji zauzima svega 18kb. Ikonica Firefoxa ili slicnog programa uzima dva do cetiri puta vise.

5] Pascal je lep za programiranje i pripada dugoj tradiciji optimizovanog i svesnog codiranja. Sad, ovo mozda nikom ne znaci, ali je pitanje upuceno meni pa je to i odgovor. U koliko radite mehanicki najbolje da se bavite nekim drugim poslom.

8) Sta mislite o ostalim programskim jezicima i njihovoj primeni?

Programski jezici su toliko raznovrsni da je tesko napraviti neki razumni presek. Samo cu reci da, bar iz mog ugla, stare podele vise ne vaze. Na primer gde smestiti Perl ili ChucK, ili kako uopste odrediti prednosti i mane kompajlerskih i interpreterskih jezika. Vremena su se promenila, odavno vladaju druga pravila, a IT naucnu busiju i dalje drzi stara garda koju mrzi da uci novotarije. Ovo je standardna pojava u svim naukama i disciplinama, pa se moze videti i u IT sektoru.

9) Dobro, preciznije onda, pored Pascala koje bi programske jezike preporucili i zbog cega?

Ja samo mogu dati svoje favorite, ali ovo svakako ne treba shvatiti kao univerzalni putokaz. Pored Pascala koga preporucujem kao jezik opste namene koji je kompajlerski i moze da pravi aplikacije na svim nivoima i platformama, preporucio bih Python kao interpreterski. Python je izuzetno zanimljiv, kao vrlo flexibilan jezik opste namene, koji se dokazao na gotovo svim planovima. E sad, postoje i specijalizovani jezici koje bih pomenuo, recimo PHP je idealan za server-side programiranje, ili ko voli da chatuje, do sada nisam sreo mocniji jezik od mIRC skriptinga. Tako da, sa jedne strane ovde pricamo o jezicima opste namene i tu preporucujem Pascal i Python, sa druge o specificnim jezicima koji zavise od vasih potreba – za net PHP, za muziku ChucK itd.

10) Niste pomenuli Javu, C++ i ostale koji se mozda smatraju danasnjim favoritima.

Manje je poznato, ali Pascal i C su bili jaka konkurencija, kao bazicni jezici kasnih 60tih. Sticaj je istorijskih okolnosti da je C ‘pobedio’ u toj trci, ranih 70tih. Logika C-a je primenjena kako u C++, tako u Javi, PHP-u, C#, javascript i brojnim slicnim jezicima. Naravno to je sasvim ok i svako je nastavio da ide svojim putem. Tu su se pojavili i razni hibridi, preklapanja itd. Ono sto pisem je iskljucivo moj licni pogled i zaista ne zelim da potcenim bilo koga. Za mene je linija Pascal ka Basicu ka Pythonu linija koja u programerskom smilu, ima vise logike i stila od C struje. Naravno, svako ima pravo na svoj pristup i logiku.

11) Kako vidite globalnu buducnost razvoja IT-ja i programerskih jezika?

U toj oblasti zaista je nezahvalno biti bilo kakav prognozer, jer se stvari menjaju jako brzo. Kada bih rekao nesto oko prirodnih nauka, na kojima je moje obrazovanje bazirano, to bi mozda imalo vise smisla. Iako danas marketing odredjuje sve, mislim da ce na duze staze pobediti vrednosti. To znaci, da ce pobediti diverzitet pristupa u skladu sa potrebama. Naravno, opste vrednosti ce opstati kao i do sada, u programerskom smislu. Sto ce reci C/C++, Basic/Python, Pascal, PHP itd. Uveliko zivimo u digitalnom svetu, pa ce ova pitanja sve vise dolaziti do izrazaja. Ukratko, nadam se najboljem.

User-Agent Switcher – Dodatak za Firefox

Windu i ja smo vec pominjali dodatak za Firefox sa istim imenom u prethodnim postovima:
https://kompjuteri2011.wordpress.com/2016/08/02/remove-it-permanently-user-agent-switcher/
https://kompjuteri2011.wordpress.com/2011/08/24/user-agent-switcher/

Ovaj put pisem o istoimenom dodatku, ali drugog autora. Ono sto ovaj dodatak radi je da menja identifikacioni string Firefoxa. Prostim recnikom receno, menja “identifikaciju” Firefoxa u neki drugi web pregledac. Osim sto menja identifikaciju pregledaca, moze da promeni i identifikaciju operativnog sistema, kojim se predstavlja Firefox. Tako da, na primer, ako pregledate neki web sadrzaj Firefoxom u Linuxu, mozete promeniti identifikaciju u, na primer, Google Chrome u Windowsu.

Mozete ga instalirati sa ove adrese: https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher-revived/

Dodatak krasi primamljiv i intuitivan meni. U kojem mozete odabrati vise opcija. U trenutku pisanja ovog teksta, dostupne su sledece opcije za identifikaciju:

U grupi mobilni uredjaj (Mobile Device), moguce je izabrati sledece opcije:
– Apple iOS (iPhone)
– Google Android 7
– Microsoft Windows Phone
– Samsung Tizen OS
– Nokia Symbian
– Mozilla Firefox OS

U grupi desktop pregledac (Desktop Browser), moguce je izabrati sledece opcije:
– Google Chrome
– Opera
– Mozilla Firefox
– Apple Safari
– Microsoft Explorer
– Microsoft Edge

U grupi operativni sistem (Operating System), moguce je izabrati sledece opcije:
– Microsoft Windows
– Linux
– Apple Mac-OS
– Google Chrome-OS
– IBM Warp OS/2
– Free BSD OS

Prilikom izbora identifikacije za mobilne uredjaje, dovoljno je samo kliknuti na odgovarajucu ikonu.
Sto se tice desktop pregledaca i operativnog sistema, imate mogucnost izbora samog desktop pregledaca i ispod njega se nalazi linija za izbor operativnog sistema. Tako da mozete napraviti kombinaciju desktop pregledaca i operativnog sistema po Vasoj zelji. Naravno, to ne mozete uraditi za bilo koji web pregledac i za bilo koji operativni sistem. Posto nisu svi web pregledaci napravljeni za sve verzije operativnih sistema. Na primer u slucaju izbora MS Explorer-a ili MS Edge-a, nemate mogucnost izbora operativnog sistema, vec se automatski selektuje Windows.

Zasto menjati identifikaciju web pregledaca?
Postoji vise razloga za to, a neki od njih su:
– Privatnost, ne mora svako da zna koji operativni sistem i web pregledac koristite.
– Dostupnost sadrzaja na internetu. Neki sadrzaji na internetu su, da tako kazem, “zakljucani” za odredjene operativne sisteme i odredjen web pregledac. Tako da promenom identifikacije, mozete pristupiti tom sadrzaju.

Evo i jedan konkretan primer upotrebljivosti ovog i slicnih dodataka.
Zelite da pristupite Instagramu, super, logovali ste se na Vas nalog, ali postoji problem, ne mozete da postavite slike. Zato sto Instagram dozvoljava postavljanje slika samo sa aplikacije za mobilne uredjaje ili sa web pregledaca sa mobilnog uredjaja. Posto Vi pristupate sa kompjutera, odnsono laptopa, onda nemate opciju da postavite sliku. Tu stupaju na snagu dodaci poput ovog. Pre nego sto odete na Instagram, promenite identifikaciju web pregledaca, u na primer, Google Android 7, odete na Instagram, logujete se i gle cuda, imate mogucnost postavljanja slika. :)

Gimp tutorijal 76 – Gimp 2.10.4

Prikaz Gimpa 2.10.4

Browsec VPN – dodatak za Firefox

Browsec VPN omogucava pristup web sadrzaju preko VPN-a. Besplatna verzija ima nekih ogranicenja, sto se tice brzine i broja VPN servera.

Zasto koristiti Browsec VPN dodatak za Firefox?
Postoji vise razloga za to. Neki od razloga su:
– Privatnost. Kompletna komunikacija je enkriptovana, pa samim tim, snifovanje nije moguce.
– Anonimnost. Niko ne moze da zna ko ste i odakle ste. Osim ako to sami ne kazete.
– Pristup web sadrzaju, koji je blokiran za odredjene drzave. Takvom sadrzaju mozete pristupiti uz pomoc VPN-a, dovoljno je samo izabrati server koji se nalazi u nekoj od drzava kojima je moguce pristupiti takvom web sadrzaju.
– Uz pomoc Browsec VPN dodatka, moguce je zaobici blokirane sajtove, koji su blokirani od strane administratora mreze ili administratora kompjutera.

Browsec VPN dodatak za Firefox mozete instalirati sa adrese:
https://addons.mozilla.org/en-US/firefox/addon/browsec/

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.

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.

%d bloggers like this: