Monthly Archives: September 2015
Linux tutorijal 19 – instalacija phpmyadmin i FTP
U ovoj epizodi instaliram phpmyadmin i FTP server. Takodje podesavam virtuelnu masinu u okviru virtual boxa da koristi Host-only adapter.
Linux tutorijal 17 – Ubuntu Firewall
U ovoj epizodi pricam o podesavanju Ubuntu firewall-a udaljenog kompjutera preko ssh konekcije.
Optimizacija PNG fajlova
PNG je jedan od najpopularniji formata za kompresiju slike bez gubitka kvaliteta. Osim u pojedinim situacijama, njegovu velicinu nije moguce drasticno smanjiti bez intervencije na originalnog slici. Ipak, moguce je bar donekle optimizavoti png fajl razlicitim metodama rekompresije i izbacivanjem nepotrebnih podataka iz fajla. Ovi programi rade upravo to:
1) Pngcrush – besplatni i open source program za optimizaciju png fajlova bez gubitka kvaliteta. Sa sajta skinite verziju koja vam je potrebna, npr. win32. Napravite novi folder, u njemu stavite png fajl koji zelite da obradjujete i pngcrush.exe. Otvorite cmd prompt u pomenutom folderu i kucajte:
pngcrush -rem alla -brute -reduce org.png out.png
Switchevi su sledeci:
-rem alla – Uklanja sve osim transparencije. Ako zelite da ostavite i gamma, koristite: -rem allb
-brute – Isprobava oko 150 metoda fine rekompresije i primenjuje najefikasniju. Dug proces ali daje najbolje rezultate
– reduce – Eliminise boje koje se ne koriste
– org.png – Vas originalni png fajl
– out.png – Izlazni png fajl nakon obrade
2) Optipng – takodje besplatni i open source program koji radi iz komandne linije. Setup je isti, u folder stavite png i izvrsni fajl. Otvorite cmd u folderu i kucajte:
optipng -o7 org.png
Switch -o7 je najvisi nivo kompresije. Dugo traje ali daje najbolje rezultate.
3) PngOptimizer – takodje besplatan i open source, ali ima i graficki interfejs. Upotreba je krajnje jednostavna, pokrenite program i dropujte png fajl na njega. Backup ce automatski biti napravljen i posle izvenog vremena dobicete i optimizovani png fajl u istom folderu.
Na glavnom sajtu mozete skinuti program, izvorni kod, cmd i linux verziju. A portabilna verzija je podrzana od Portable Apps i dostupna je ovde.
Linux tutorijal 16 – Instaliranje XAMPP servera
Nastavak price iz prethodne epizode o serverima i klijentima. Prikaz komande scp i instaliranje XAMPP servera.
Python Loto
Igre na srecu su uvek bile popularne. Razvijani su bezbrojni sistemi u nadi da se povecaju sanse za dobitak. Sa pojavom kompjutera ovo je podignuto na visi nivo. Jos od vremena 8-bit kompjutera, svi znacajniji casopisi su objavljivali kratke programe na ovu temu. Naravno da niko nije ocekivao da postane milioner preko noci. Ideja je pre svega bila da se vezba pisanje koda, kao i da se nauci nesto novo. U tom smislu treba shvatiti i program koji je pred vama.
Opis: Ovaj kratki program predstavlja demonstraciju optimalizovanog koda u Python jeziku. Tema je standardni loto sistem 7/39. Sastoji se od tri rutine: loto() – daje najcesce izvlacene brojeve, lotos() – daje najredje izvlacene brojeve i lotox() – daje random brojeve u zadatom okviru. Mozete ga koristiti kako god zelite uz CC-BY uslove.
Setup: Napravite folder ‘Loto’ i u njemu fajlove loto.py i loto.txt. Zatim u loto.py iskopirajte kod programa. Fajl loto.txt sadrzi statistiku izvlacenja. Format je: sedam brojeva razdvojenih spaceom, zatim novi red i novih sedam brojeva itd. To u praksi izgleda ovako:
5 8 22 26 31 33 37 2 8 9 12 23 34 38 4 11 26 27 31 32 35 3 9 21 30 32 35 39
.. itd. Naravno ovo je samo primer, vi ga zamenite svojim brojevima.
Kod:
#Loto bY W|nDu [CC-BY/Pv2] #LotoMax def loto(): bla = []; dat = {} c = 'LotoMax Nums: ' a = open('loto.txt') for n in a: bla.append(n.split()) bla = sum(bla,[]) for m in bla: dat[m] = dat.get(m,0) + 1 x1 = sorted(dat.items(), key = lambda x:x[1], reverse = True) x2 = [n[0] for n in x1] x2 = x2[:7]; x2.sort(key=int) for m in x2: c += m + ', ' print c[:-2] #LotoMin def lotos(): bla = []; dat = {} c = 'LotoMin Nums: ' a = open('loto.txt') for n in a: bla.append(n.split()) bla = sum(bla,[]) for m in bla: dat[m] = dat.get(m,0) + 1 x1 = sorted(dat.items(), key = lambda x:x[1]) x2 = [n[0] for n in x1] x2 = x2[:7]; x2.sort(key=int) for m in x2: c += m + ', ' print c[:-2] #LotoRnd def lotox(): import random c = 'LotoRnd Nums: ' bla = random.sample(range(1,40), 7) bla.sort() for n in bla: c += str(n) + ', ' print c[:-2] #EOF
Upotreba:
– Desni klik na loto.py > Edit with IDLE. Zatim u Idle: Run > Run Module. Otvorice se Python shell.
– Komande u shellu:
loto() – daje brojeve koji su najvise puta bili izvlaceni.
lotos() – daje brojeve koji su najmanje puta bili izvlaceni.
lotox() – daje 7 random brojeva u rasponu od 1 do 39.
Fajl loto.txt je neophodan za prve dve funkcije. Trecu mozete koristiti i bez njega.
Napomena: Program je napisan u Pythonu v2. Ako zelite da radi u Pv3, bila bi zanimljiva vezba da ga prevedete koristeci Google i ove smernice.
Srecno za programiranjem i pametno sa igrama na srecu. :)
Linux tutorijal 15 – SSH server/klijent
U ovoj epizodi govorim o instaliranju SSH servera i povezivanju SSH klijenta na SSH server.
Linux tutorijal 14 – Tekstualni rezim
U ovom tutorijalu govorim o radu u tekstualnom rezimu u Linuxu.