Svi članci
Spisak članaka
Lista članaka
GNU/Linux - 4. deo – Shell skripte i automatizacija procesa
Principi funkcionisanja shell skripti za administraciju sistema, watch i crontab (sa primerima iz svakodnevne prakse)
GNU/Linux - 3. deo – Napredne komande
Korišćenje programa za preciznu obradu teksta u konzoli (grep, sed, awk, sort), uz pajpovanje i redirekciju
GNU/Linux - 2. deo - Osnovne komande
Osnove komande za svakodnevnu administraciju GNU/Linux distribucija I drugih UNIX-olikih operativnih sistema.
GNU/Linux - 1. deo - Uvod
Šta je slobodni softver - Kako su nastale GNU/Linux distribucije - Da li slobodni softver otvorenog koda može da se nosi sa komercijalnim rešenjima - Osnovne tehnikalije ....
Tutorijal - Prepoznavanje algebarskih izraza u tekstu
Prvi mini-serijal članaka o obradi teksta / programskog koda, završićemo člankom o prepoznavanju algebarskih izraza u programskom kodu ....
Syntax highlighter - 2. deo - Regularni izrazi u JavaScript-u
Prepoznavanje regex literal sintakse u JavaScriptu (kao dodatni izazov u implementaciji syntax highlightera iz domaće radinosti).
Tutorijal - Uklanjanje komentara iz programskog koda
Uklanjanje linijskih i blok komentara uz podelu teksta na tokene i prepoznavanje obrazaca.
Kako napraviti syntax highlighter
Opis postupka izrade syntax highlighter-a iz ‘domaće radinosti' (za početak: kraća diskusija o osnovnim mehanizmima za efikasnu podelu teksta na tokene i semantičku analizu tokena).
UNIX Time - Predstavljanje datuma i vremena na računarima
Principi predstavljanja datuma i vremena na računarima, uz kratak osvrt na uobičajene formate, i detaljan osvrt na format koji se najčešće koristi u programskim jezicima.
ASCII, UNICODE i UTF-8 - Predstavljanje znakova na računarima
Detaljan osvrt na najpopularnije i najčešće korišćene formate za zapis znakova na računarima (istorijat, tehnikalije, oblasti primene).
Uvod u Fetch API
Teorija i mini-tutorijal za izradu sajta koji koristi Fetch API (koji, u idejnom smislu, možemo shvatiti kao svojevrsnu kombinaciju AJAX-a i promisa).
Asinhrono programiranje u JavaScriptu
Pregled tehnika koje (pod određenim okolnostima), omogućavaju paralelno izvršavanje koda u Javascript-u (tako da pomenuta obrada ne “koči” izvršavanje skripte).
Uvod u AJAX (Asynchronous JavaScript And XML)
Skup tehnika koje omogućavaju komunikaciju između klijenta i servera, između dva učitavanja stranice (uz uticaj na samo određene elemente, bez osvežavanja cele stranice).
Uvod u Node.js
Izuzetno popularno radno okruženje za pisanje backend aplikacija, iza koga stoji endžin V8 (JS interpretator iz Google Chrome-a), povezan sa ulazno-izlaznim mogućnostima operativnog sistema na kome je instaliran.
JSON Web Token (JWT) - Struktura i primena u oblasti autorizacije web aplikacija
Jedno od najpopularnijih i najčešće korišćenih rešenja za čuvanje podataka za autorizaciju korisnika u računarskim sistemima (bez direktnog skladištenja lozinke i drugih osetljivih podataka).
JavaScript ES6 sintaksa
Nove tehnike koje je donela revizija jezika iz 2015. godine, ECMAScript 6 (const, let, arrow funkcije, šablonske niske, moduli, klase .…)
Callback funkcije i lambda izrazi
Detaljan osvrt na koncept predavanja jedne funkciji drugoj u svojstvu argumenta, najčešće uz korišćenje tzv. 'lambda izraza' (a usput pravimo i osvrt na delegate u C#-u i interfejse u Javi).
Izbor prvog programskog jezika
Diskusija o izboru prvog programskog jezika (C vs. Python), uz osvrt na razlike između mašinskih jezika i programskih jezika visokog nivoa. Koliko programski jezici treba da nam pomažu (i šta treba, a šta ne treba od nas da "skrivaju") ....
Šablonske niske u programskim jezicima
Prikaz mehanizama za spajanje niski sa vrednostima promenljivih, preko operatora, funkcija i template literal sintakse (u nekoliko programskih jezika).
Tutorijal - Forma za proveru jačine lozinke
Implementacija formulara za proveru jačine lozinke preko regularnih izraza (sa trakom koja grafički prikazuje jačinu lozinke).
Tutorijal - Implementacija markup jezika u Python-u
Da bismo se na najbolji način upoznali sa pravom vrednošću Python-a (odnosno, sa sposobnošću ovog jezika da korisnicima omogući pisanje prilično ozbiljnih programa - na vrlo jednostavan način), implementiraćemo u Python-u jednostavan prevodilac za markup jezik po sopstvenoj specifikaciji.
Uvod u Python
Verovatno najpopularniji skriptni jezik današnjice, sa jednostavnom sintaksom i većinom odlika ozbiljnih OOP jezika (vrlo popularan za pisanje skripti za automatizaciju, kao i u oblasti mašinskog učenja).
Promenljive u CSS-u (pretprocesori i imenovana svojstva)
Nepodržanost promenljivih, duže vreme bila je jedna od većih ‘boljki' CSS-a, i stoga je pojava pretprocesora za CSS i (na kraju), imenovanih svojstava, bila krajnje dobrodošla .…
Lokalno skladištenje podataka browsera (sessionStorage, localStorage, cookies)
Osvrt na lokalna skladišta podataka (koja se mogu koristiti preko Javascript-a, ili preko različitih backend jezika).
Tutorijal - PHP - Kreiranje forme za prijavu korisnika
Detaljan prikaz postupka izrade formulara za prijavu korisnika (koji je neizostavan deo bilo kog iole ozbiljnijeg sajta sa korisničkim nalozima).
PHP - Direktno prosleđivanje podataka između stranica ($_SESSION)
Protokol za proizvoljno prosleđivanje podataka između različitih stranica istog sajta.
Tutorijal - PHP - Ažuriranje praznih kolona u bazi podataka
Pored teorije koju smo izneli u uvodnom članku o povezivanju PHP skripti sa MySql bazama, pozabavićemo se i primerom zadatka koji se ne može lako obaviti bez kontrolnih struktura koje programski jezici nude.
PHP - Povezivanje skripti sa MySql bazama podataka
Povezivanje PHP skripti sa bazama podataka, jedna je od najvažnijih tema vezanih za PHP (naravno, slična konstatacija važi i za druge backend tehnologije).
PHP - Prosleđivanje podataka preko HTML forme ($_POST)
Protokol za prosleđivanje zaštićenih podataka između dve stranice, uz korišćenje HTML formulara.
PHP - Prosleđivanje podataka preko URL-a ($_GET)
Najjednostavniji protokol za prosleđivanje podataka preko URL-a.
Uvod u PHP i backend programiranje
U većini situacija, PHP je prvi skriptni serverski jezik sa kojim se web developeri upoznaju, pošto su savladali osnove web dizajna i tri osnovna internet jezika (HTML, CSS i JavaScript) ....
Izuzeci u programiranju
Mehanizam koji omogućava da se pravilno odreaguje na nepravilnosti u korisničkom unosu podataka (kao i na druge nepredviđene okolnosti u toku izvršavanja programa).
Tutorijal: Implementacija jednostruko ulančane liste u programskom jeziku C++
Detaljan "pretres" postupka implementacije jednostruko ulančane liste u C++-u (uz osvrt na opšti princip preklapanja operatora i izuzetke).
Tutorijal - Implementacija struktura podataka u programskom jeziku JavaScript
Za razliku od ulančane liste, koju smo implementirali u jeziku koji je jedan od 'uobičajenih kandidata' za implementaciju struktura podataka (C++), nekoliko drugih struktura podataka odlučili smo da implementiramo u jeziku koji naizgled nije najbolji izbor za navedene 'zahvate' ....
Operacije sa nizovima u programskom jeziku JavaScript
Kratak osvrt na implementaciju nizova u Javascript-u (koja je "ispod haube" relativno kompleksna, ali, u praksi je sasvim funkcionalna i (najčešće) prilično elegantna).
Tutorijal - Regex i JavaScript - Korišćenje regularnih izraza u programskim jezicima
Korišćenje regularnih izraza u editorima, nedvosmisleno je korisna opcija (sama po sebi), ali, regularni izrazi svoju pravu snagu pokazuju tek kada se ‘upregnu' u nekom od programskih jezika .…
AVL Stablo - Implementacija - 5. deo - Uklanjanje čvorova
U poslednjem nastavku mini-serijala o implementaciji AVL stabala, bavimo se najkompleksnijom operacijom u AVL stablima - uklanjanjem čvorova.
Binarna stabla i algebarski izrazi (stablo izraza)
Detaljna diskusija o načinu predstavljanja algebarskih izraza preko stabla (uz osvrt na to da se sličan pristup koristi i u prevođenju računarskih jezika).
AVL Stablo - Implementacija - 4. deo - Dodavanje čvorova
U četvrtom nastavku mini-serijala o implementaciji AVL stabala, bavimo se jednom od dve najuobičajenije operacije u AVL stablima - dodavanjem čvorova.
Shunting Yard - Implementacija - 2. deo - Računanje vrednosti postfiksnog izraza
U drugom delu, bavimo se računanjem vrednosti izraza (postupak koji sledi posle prevođenja izraza iz infiksne notacije, i takođe se obavlja u linearnom vremenu).
AVL Stablo - Implementacija - 3. deo - Obilazak stabla
Treći nastavak mini-serijala o implementaciji AVL stabala, posvećen je različitim metodama obilaska stabla pretrage.
Struktura web adresa i pristup internet stranicama
Kratak osvrt na često korišćene termine kao što su URL, IP adresa i DNS, uz prikaz postupka učitavanja web stranica.
Shunting Yard - Implementacija - 1. deo - Prevođenje izraza iz infiksnog zapisa u postfiksni
Jedan od nekoliko najznačajnijih algoritama u istoriji informatike, čija je svrha - pretvaranje infiksnih izraza u postfiksne i računanje vrednosti (u prvom delu, bavimo se prevođenjem notacije).
AVL Stablo - Implementacija - 2. deo - Pretraga
U drugom nastavku mini-serijala o implementaciji AVL stabala, bavimo se pronalaženjem elemenata.
Tutorijal - Regex - Kako pronaći unutrašnji sadržaj HTML elemenata
Kako je moguće, uz pomoć operatora lookahead i lookbehind (o kojima do sada nije bilo reči), pristupati unutrašnjem sadržaju HTML elemenata.
Upotreba specijalnih znakova u HTML datotekama
Osvrt na različite načine za prikaz UNICODE znakova koji se ne unose preko tastature, već, preko specijalnih kodova.
CSS - @supports - Provera podržanosti svojstava
Kraća diskusija o mehanizmu za proveru podržanosti CSS svojstava u browserima (iako moderni browseri tipično podržavaju sva svojstva, sa starijim verzijama, to najčešće nije slučaj).
AVL Stablo - Implementacija - 1. deo - Osnovna struktura
Uvodni članak mini-serijala o implementaciji visinski balansiranog AVL stabla u programskom jeziku Java (za početak, bavimo se osnovnom strukturom čvorova i stabla).
Uvod u JavaScript i DOM (Document Object Model)
Izuzetno popularan programski jezik koji se koristi u izradi HTML stranica i (u novije vreme ), za kreiranje back-end komponenti web sajtova.
Tutorijal - Formular za pretragu
Prvi u nizu tutorijala, posvetićemo mini-projektu za izradu formulara za pretragu (uz korišćenje vrlo jednostavnih HTML i CSS kodova).
Uvod u relacione baze podataka i SQL
Detaljan uvod u relacione baze podataka (tabele, polja, slogovi, ključevi, relacije ....) i SQL sintaksu (kroz MySql).
Regularni izrazi - napredna pretraga teksta
Prikaz postupka pretrage obrazaca u tekstu uz korišćenje posebno formatiranih niski (sa primerima iz svakodnevne prakse).
Kako napraviti dobru lozinku
Naizgled 'nepotrebna' diskusija o tome zašto "nije svejedno" kakve lozinke koristimo u svakodnevnom životu.
Osnove računarske grafike i formati slika u web dizajnu
Nekoliko reči o rasterskoj i vektorskoj grafici uopšteno, kao i o popularnim formatima slika koji se koriste u web dizajnu (i šire).
Napredni parametri internet pretrage
Dodatni parametri koji se mogu koristiti na internet pretraživačima u cilju što bolje optimizacije pretrage.
HTTP - Statusni kodovi
Osvrt na poruke koje serveri šalju klijentima posle uspešno ili neuspešno obavljene obrade podataka.
Uvod u web dizajn - 7. deo - Podešavanja editora i efikasna obrada teksta
Detaljan prikaz tehnika za efikasnu obradu teksta i pregled najpopularnijih editora.
Uvod u web dizajn - 6. deo - Responzivni web dizajn
Kraća diskusija o tehnikama koje omogućavaju prilagođavanje dizajna web stranice rezoluciji uređaja na kome se sajt prikazuje.
Uvod u web dizajn - 5. deo - HTML 5 struktura i tagovi - Podela stranice
Pregled semantičkih tagova koji su se pojavili sa revizijom HTML5 (main, nav, article, section, aside ....), uz poseban osvrt na značaj koji novi tagovi imaju u pravilnom definisanju strukture modernih web sajtova.
Uvod u web dizajn - 4. deo - Tagovi div i span - Flex box
Vizuelna podela stranice na funkcionalne celine uz upotrebu generičkih kontejnera (div) i modula flexbox.
Uvod u web dizajn - 3. deo - CSS Box i pseudoklase
Definisanje vidljivih svojstava HTML elemenata (dimenzije, boja pozadine, bordure, ispuna, margine ....), i upoznavanje sa pseudoklasama u CSS-u.
Uvod u web dizajn - 2. deo - Klasa - Id - Interni i linijski CSS
Pristup elementima preko klase i id-a, interni i linijski CSS, kombinovanje selektora ....
Fontovi u web dizajnu (osnove tipografije)
Upotreba tipografskih tehnika u web dizajnu, vrste i oblici slova, izbor, uparivanje i podešavanja fontova .…
Uvod u web dizajn - 1. deo - Početni koraci
Uvodni članak mini-serijala koji je posvećen samostalnoj izradi web sajtova (za početak, odgovori na pitanja: šta je sve potrebno, koje se tehnologije koriste, kako pristupiti zadatku) .…
JSON - tekstualni format za razmenu podataka
Najpopularniji tekstualni format za prenos i razmenu složenih podataka (uz primere pretvaranja objekata iz OOP jezika u JSON objekte).
Strukture podataka
Osvrt na različite formate zapisa složenih podataka u računarskoj memoriji i značaj pravilnog formatiranja podataka u rešavanju problema u računarskim sistemima.
Pozicioni brojevni sistemi
Prikaz opštih pravila za zapis brojeva, uz poseban osvrt na binarni, dekadni, heksadekadni, oktalni i rimski brojevni sistem.
Klase složenosti algoritama (O notacija)
Kraća diskusija o tome kako količina ulaznih podataka, u različitim programima, utiče na vreme izvršavanja i (dodatno) memorijsko zauzeće.
Argumenti komandne linije
Odgovor na pitanje čemu služe argumenti argc i argv (u funkciji main), i diskusija o tome šta se sve može uraditi sa podacima koji se programu proslede (pri pokretanju), preko terminala.
Pokretanje lokalnog web servera
Postavljanje sajta na javno dostupni server sa prepoznatljivom adresom jeste "prava stvar", ali, mnogo toga može se uraditi i u okviru lokalne računarske mreže ....
Metode za optimizaciju algoritama
Šematski prikaz postupaka preko kojih se algoritmi mogu učiniti efikasnijim.
Uvod u objektno orijentisano programiranje
Detaljan uvod u najrasprostranjeniji metod za projektovanje softverskih sistema.
Uvod u dinamičko programiranje
Postupak za rešavanje problema uz podelu na potprobleme i pamćenje međurešenja (prikazan kroz najpopularniji DP algoritam).
Visinski balansirano (AVL) stablo
Detaljan osvrt na postupak za kreiranje visinski balansiranog binarno stabla pretrage (iako možda ‘ne deluje tako’, pravilno strukturirana binarna stabla koja omogućavaju efikasnu pretragu – ne nastaju ‘sama od sebe’).
Operacije sa tekstualnim datotekama u programskim jezicima C i Python
Pristup tekstualnim datotekama, često je "bauk" za mlade programere koji se prvi put susreću sa tematikom, ali, uz upotrebu elegantnih mehanizama koje nude programski jezici visokog nivoa, ne mora biti tako .…
Operacije sa bitovima u programskom jeziku C
Pristup pojedinačnim bitovima, omogućava efikasno rešavanje mnogih računarskih problema (pogotovo kada je u pitanju sistemsko programiranje niskog nivoa) .…
Aritmetika boja i režimi preklapanja u programima za obradu fotografija
Prikaz jednostavnog "fotošopa iz domaće radinosti", koji funkcioniše preko elementarne aritmetike (i osvrt na to da su kompleksni programi takođe zasnovani na istim osvnovnim principima kao i oni najjednostavniji).
IT termini
Poreklo nekih od najčešće korišćenih IT termina.
BFS i DFS - Pronalaženje putanje kroz lavirint
Pronalaženje izlaza iz ‘lavirinta’, uz korišćenje dva poznata algoritma za obilazak struktura podataka.
Binarno stablo pretrage
Struktura koja omogućava efikasno pretraživanje većih (uređenih) kolekcija podataka.
Zašto baš binarni brojevi?
Odgovor na (verovatno) ‘najčuvenije' pitanje koje polaznici kurseva programiranja postavljaju na samom početku.
Dijagram toka - osnove
Sistem grafičkih simbola preko kojih se prikazuje tok izvršavanja programa (linearna struktura, grananja i petlje).
Algoritmi - uvod
Osvrt na najvažnije odlike efikasnih postupaka koji se zapravo mogu smatrati algoritmima (drugim rečima: ukoliko želimo da budemo dobri i uspešni programeri, moramo shvatiti da se problemi na računarima ne mogu rešavati "bilo kako" :)).
Šta je zapravo programiranje?
Krenućemo od samog početka i odgovorićemo na naizgled jednostavna pitanja: šta je to što računari zapravo rade, i kako da im u tome pomognemo?
Aritmetika velikih brojeva u računarskim sistemima
Kako postupiti ukoliko je potrebno na računaru predstaviti izrazito velike brojeve (koji ne mogu stati u standardne procesorske registre), i kako operisati nad “velikim brojevima”?
Postfiksna notacija - kako računari računaju?
Postupak za rešavanje matematičkih izraza na računarima uz korišćenje tzv. postfiksne notacije (znatno efikasnija metoda u odnosu na uobičajeni postupak tumačenja infiksnih izraza).