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.

Advertisements

Linux tutorijal 18 – Apache, MySQL i PHP5

U ovoj epizodi instaliram Apache, MySQL i PHP5 servere.

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.

Gimp tutorijal 68 – Gif animacija

Linux tutorijal 13 – Komande u terminalu

Opet pricam o komandama u terminalu. :)

%d bloggers like this: