Blog Archives

Python http server u jednoj liniji u terminalu

Kao sto naslov kaze, uz pomoc Pythona, iz terminala mozete podici web, odnosno http server u samo jedno komandnoj liniji, bez potrebe za instaliranjem Appache web servera i slicnih komplikacija. Idealno, ako na brzinu zelite da podignete server da probate nesto ili da delite fajlove preko lokalne mreze.
Server ce biti podignut na portu 8000, ako zelite na portu 80 ili nekom drugom portu ispod 1024, treba da kucate sudo ispred komande.
Pokretanje servera sa sudo privilegijama nikako ne preporucujem.

U narednim primerima ce biti podignut http server. Dostupni fajlovi ce biti u trenutno aktivnom direktorijumu.
Za potrebe testiranja, napravite direktorium i udjite u taj direktorijum, u terminalu kucajte:
mkdir brzihttpserver
cd brzihttpserver

Radi potrebe testiranja iskopirajte fajlove u taj direktorijum. Ti fajlovi ce biti vidljivi u web pregledacu.
Ako se u direktorijumu nalazi fajl index.html, taj fajl ce biti automataski otvoren u web pregledacu.

Pokrenite terminal i kucajte sledece:
Primeri za Python 2.x:

Pokrece server na portu 8000:
python -m SimpleHTTPServer
Sada u web pregledacu, u polje za adresu kucajte: 127.0.0.1:8000 ili ip_adresa_servera:8000 ako se server nalazi na drugom umrezenom kompjuteru.

Pokrece server na portu 80:
sudo python -m SimpleHTTPServer 80
Ovde je dovoljno kucati 127.0.0.1 ili ip adresu umrezenog kompjutera, ako se server nalazi na drugom kompjuteru.

Primeri za Python 3.x:

Pokrece server na portu 8000:
python3 -m http.server
Sada u web pregledacu, u polje za adresu kucajte: 127.0.0.1:8000 ili ip_adresa_servera:8000 ako se server nalazi na drugom umrezenom kompjuteru.

Pokrece server na portu 80:
sudo python3 -m http.server 80
Ovde je dovoljno kucati 127.0.0.1 ili ip adresu umrezenog kompjutera, ako se server nalazi na drugom kompjuteru.

Advertisements

Nove stvari na download strani

Pre desetak dana sam ubacio izmenjene verzije nekih skripti za Gimp, da bi bile kompatibilne sa Gimpom 2.9.x i buducim stabilnim verzijama 2.10.x.

Zatim, tu je nova verzija programa Sat. Mozete preuzeti izvorni kod za Lazarus, kao i prekompajliranu verziju za Linux 64bit.
Verzija 2.0 donosi nekoliko noviteta, kao sto su:
Dodata opcija da se cuva podesavanje vremena alarma u fajlu sat.ini.
Fajl sat.ini se nalazi u istom folderu gde se nalazi i izvrsni fajl. To omogucava laksu portabilnost programa.
Kada se klikne na dugme: Podesi vreme alarma, automatski se aktivira alarm i snima se podesavanje vremena alarma u fajl sat.ini.
Podesavanje vremena alarma se automatski ucitava prilikom pokretanja programa.

Na kraju, tu je i nova verzija programa Sat-Alarm. To je Diletov i moj zajednicki projekat.
Verzija 2.0.1 ima jednu ispravku greske skripte za instalacuiju fontova. Mozete preuzeti izvorni kod, kao i prekompajliranu verziju za Linux 32bit.

Neko ce se verovatno pitati, zasto sam radio dve verzije sata Sat i Sat Alarm. Kao prvo, Sat je moj licni projekat, dok je Sat Alarm Diletov i moj zajednicki projekat. Razlika izmedju ova dva programa je u tome sto je Sat Alarm graficki bolje odradjen, takodje podrzava i teme koje mozete menjati i sami praviti. Program Sat je sat sa alarmom koji nema mogucnost menjanja tema i odradjen je sa minimalistickim korisnickim interfejsom za moje licne potrebe, ali sam program objavio, jer dobro odradjuje posao i zasluzuje da bude javno dostupan.

Sve ovo se nalazi na download strani.

Lazarus tutorijal 10 – Tok programa i CheckBox

U ovoj epizodi pricam o kontroli toka programa uz pomoc If, Then, Else i prikazujem primer kosriscenja CheckBox-a.

Lazarus tutorijal 09 – dve forme i dva unita

U ovoj epizodi govorim o tome kako otvoriti novu formu i kako prosledjivati vrednosti varijabli iz jedne forme u drugu.

Lazarus tutorijal 06 – TTimer

U ovom tutorijalu predstavljam komponentu TTImer. To je tajmer koji je koristan u mnogim programima, na primer za pravljenje sata. U ovom primeru pravim jednostavan sat uz pomoc TTimer.

Lazarus tutorijal 03 – Instaliranje dodataka za Lazarus

Linkovi iz videa:
http://wiki.freepascal.org/Components_and_Code_examples
http://wiki.freepascal.org/playsound
http://sourceforge.net/p/lazarus-ccr/svn/HEAD/tarball

Lazarus tutorijal 01 – Uvod u Lazarus

Uvod u Lazarus.
– Instaliranje Lazarusa.
– Pravljenje forme.
– Smanivanje velicine kompajliranog fajla:
Project – Project Options – Compilation and Linking
Aktivirati 3 (slow optimization) (-O3) i Smaller rather than faster (-Os)
Project – Project Options – Debugging
iskljuciti opciju Generate debugging info for GDB.

Uvod u Pascal

Pascal je jedan od programskih jezika koji su gotovo idealni za ucenje programiranja. Zato cemo se malo pozabaviti njime na nasim stranicama. Ostali dobri izbori su Python i Basic. Ovo su ujedno i jezici na kojima je vecina starih programera pocela svoju karijeru.

Krenuo je da se razvija pocetkom 70tih. Jedna od ideja je bila upravo da postane standard za ucenje kao i da prevazidje limite nekih drugih jezika koji su tada bili popularni, poput recimo Algola. Od 80tih zaista i postaje standard u Kompjuterskim Naukama u srednjem i visokom obrazovanju. Medjutim, sticajem raznih okolnosti, nesto kasnije biva zamenjem C-om koji dalje biva zamenjem Javom. Ali sve jedno, ostaje jedan od prvih izbora medju kompjuterskim entuzijastima i developerima komercijalnog softwarea.

Ono sto je Pascalu ne samo produzilo zivot vec ga i znacajno obogatilo, jesu RAD okruzenja. Najpre je firma Borland razvila komercijalni Delphi, koji je postao jedan od najomiljenijih okruzenja za razvoj programa. Nakon toga je tim povezan sa Free Pascal projektom poceo da razvija Lazarus, koji je gotovo identican Delphiju, sa razlikom da je besplatan i open source. Obe stavke su doprinele da Pascal ostane jedan od znacajnih izbora kod programiranja. O ovome svedoce brojni programi koji su bili ili se razvijaju u pomenutim okruzenjima. Neki od njih su: Total Commander, Skype, TeamSpeak, FruityLoops, Spybot S&D, InnoSetup, KMPlayer itd.

Za razliku od Pythona o kome smo dosta pisali, Pascal je pre svega kompajlerski jezik. Ovo znaci da vas kod najpre morate prevesti u izvrsni fajl, da bi ste ga koristili ili testirali. Postoji duga polemika u programerskim krugovima koji je pristup bolji. Bez ulaska u detalje, u sustini najbolje je koristiti opciju u odnosu na svrhu. Ako zelite da pisete male programe i skripte koji ce raditi u definisanom okruzenju, interpreterski jezici su dobar izbor jer su laksi za debagovanje. Primeri su recimo mIRC script ili Python. Ako zelite da pisete programe koji ce raditi brzo i nezavisno, onda je dobar izbor kompajlerski jezik, poput C/C++ ili Pascala.

Kad su u pitanju kompajleri i razvojna okruzenja, izbor je solidan za sve platforme. Treba pomenuti Turbo Pascal koji se danas gotovo ne koristi ali je godinama bio jako popularan. Takodje i logican korak napred, razvojno okruzenje Delphi. Danas je medjutim najcesci i logican izbor Free Pascal, zato sto je u stalnom razvoju, open source, besplatan i kros platformski. Takodje, tim povezan sa ovim kompajlerom razvija i okruzenje Lazarus, koje mnogi smatraju besplatnom i otvorenom verzijom Delphija. A tu su i relativno novi projekti, poput RAD sistema CodeTyphon i FreeSparta, koji bi se mogli okarakterisati kao Lazarus na steroidima. Treba pomenuti i Dev-Pascal IDE, koji je vise nego prijatan za rad, a pri tome besplatan i open source.

Postavlja se pitanje zasto uopste uciti programiranje u Pascalu, obzirom na popularnost C++ i Jave. Pa ima nekoliko razloga. Prvo Pascal je mnogo razumljiviji za pisanje i citanje, a neki bi rekli i lepsi. Drugo struktura koda je takva da razvija dobre programerske navike i osobine. I trece, on je prilicno upotrebljiv za razvoj programa, sto se moze videti iz programa koji su u njemu napisani. I ne treba zaboraviti da je zajednica programera prilicno velika, te se informacije mogu lako naci na brojnim sajtovima i forumima.

Na kraju bih pomenuo nekoliko sajtova gde mozete krenuti sa ucenjem i napraviti prve korake u ovom programskom jeziku. Neki od njih su: LearnPacal, PascalProgramming, TutorPoint ili EssentialPascal. Takodje, mozete naci zanimljive tutorijale na FreePascal wiki stranici.

Srecno za ucenjem Pascala i razvojem programa u njemu.

Python osmi cas

For petlja sluzi da se neka komanda ili funkcija, odnosno blok komandi ili funkcija izvrsi odredjeni broj puta.

Primer 1:

U ovom primeru se koristi range, koji ima format range(start,kraj,korak). Korak se ne mora uvek koristiti. Ako se izostavi, podrazumevana vrednost je 1, ako se stavi neki broj, na primer 2, bio bi na primer ispisan svaki drugi broj. O tome kasnije.
Obratite paznju da blok komandi i funkcija koje su obuhvacene for petljom mora biti uvucen. Kada se petlja zavrsi posle odredjenog broja puta, nastavlja se izvrsavanje programa.

#! /usr/bin/python3

for n in range(1,11):
   print (n)

print (\nOvo je bio primer for petlje.")

Primer 2:

Ovaj primer je slican prethodnom, razlika je, sto je funkciji print dodat end=" ", na taj nacin, umesto liste brojeva koji su jedni ispod drugog, brojevi ce biti ispisani jedan pored drugog. Ovo je mozda trebalo da pomenem kada sam pisao o funkciji print, ali dobro, moze i ovde, ovo je dobar primer kada se koristi end=" ".

#! /usr/bin/python3

for n in range(1,11):
   print (n, end=" ")

print (\nOvo je bio primer for petlje.")

Primer 3:

For se ne mora koristiti samo sa brojevima, vec se moze koristiti i sa karakterima u stringu. U ovom konkretnom primeru, mora se na pocetku definisati varijabla a = 0 i zatim, varijabla a, sluzi kao brojac karaktera jer se za svaki karakter u stringu uvecava za 1 u liniji a = a + 1.

#! /usr/bin/python3

s = "Python"
a = 0

for n in s:
   a = a + 1
   print (a,"slovo u stringu je",n)

print (\nOvo je bio primer for petlje.")

Primer 4:

Slicno kao i prethodnim primerima, samo ovde mnozim svaki broj u opsegu sa 2.

#! /usr/bin/python3

for n in range(1,5):
   print (n*2)

print (\nOvo je bio primer for petlje.")

primer 5:

U ovom primeru koristim i treci argument u funkciji range. Posto je treci argument, odnosno korak 2, to znaci da ce biti preskocen svaki drugi broj u opsegu.

#! /usr/bin/python3

for n in range(1,11,2):
   print (n)

print (\nOvo je bio primer for petlje.")

Primer 6:

U ovom primeru brojanje ide u nazad.

#! /usr/bin/python3

for n in range(10,0,-1):
	print(n)

Python sedmi cas

Cesto cete biti u situaciji da kontrolisete tok programa u zavisnosti od nekih uslova. Jedan od nacina da to uradite je uz pomoc komande if. Uz if mogu da se koriste elif i else, ali nisu obavezni.

Primer 1:

Program trazi da unesete odgovor. Ako je odgovor da, onda se program prekida. Ako nije da, onda se program nastavlja.

#! /usr/bin/python3

zzz = input ("Da li zelis da prekines izvodjenje programa?  ")

if zzz == "da":
   exit()

print('\nOvo je bio primer kako se koristi "if"')

Primer 2:

Program trazi da se ukuca rezultat zbira 2+2. Ako je odgovor tacan, onda se izvrsava blok komandi ispod if zzz == 4 i zatim program nastavlja dalje izvrsavanje ignorisuci blok komandi ispod elif zzz != 4.
Obratite paznju na uvucene linije. To je u Pythonu jako vazna stvar.
Neke komande, u ovom primeru if i elif imaju blok komandi koje slede ispod i taj blok komandi mora da bude uvucen.
U sustini, prostim jezikom receno, if i elif proveravaju da li je uslov ispunjen.
Ako je uslov iza if, odnosno elif ispunjen onda se izvrsava taj blok komandi.
Zatim program nastavlja izvodjenje programskih linija koje nisu uvucene.

#! /usr/bin/python3

zzz = input ("Koliko je 2+2? ")
zzz = int(zzz)

if zzz == 4:
   print("Tvoj odgovor je tacan!")
elif zzz != 4:
   print("Tvoj odgovor nije tacan!")
   print("Tacan odgovor je 4.")

print('\nOvo je bio primer kako se koristi "if"')

Primer 3:

Ako nijedan od uslova nije ispunjen, onda se izvrsava blok komandi ispod else.

#! /usr/bin/python3

zzz = input ("Koliko imas godina? ")
zzz = int(zzz)

if zzz <= 20:
   print("Ti si bas mlad.")
elif zzz <= 50:
   print("Ti si u najboljim godinama.")
else:
   print("Bas si mator.")

print('\nOvo je bio primer kako se koristi "if"')

U ovim primerima ste mogli da zapazite i neke simbole koji se koriste za if, elif i else.
U Pythonu postoji 6 simbola za razlicite uslove.

Manje od ............ <
Vise od ............. >
Manje ili jednako ... <=
Vece ili jednako .... >=
Jednako ............. ==
Razlicito ........... !=
%d bloggers like this: