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
Osnovni mehanizmi 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 se (pod određenim okolnostima) mogu koristiti za asinhrono 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
Novine 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 koršćenje tzv. 'lambda izraza' (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 (a to je - sposobnost ovog jezika da omogući korisniku da piše prilično ozbiljne programe 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 je bio jedan od najvećih nedostataka CSS-a, pa 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 koje sajtovi mogu koristiti preko JavaScript-a, ili preko backend jezika.
Tutorijal - PHP - Kreiranje forme za prijavu korisnika
Detaljan postupak izrade formulara za prijavu korisnika (koji je neizostavan deo bilo kog 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 praktičnim primerom upotrebe programskog jezika za obavljanje zadataka 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 od najvažnijih tema vezanih za ovaj jezik (naravno, isto važi i za druge backend jezike).
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đvanje podataka između dve stranice.
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 implemetacije 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 C++ - u, jeziku koji je jedan od uobičajenih kandidata za implementaciju struktura podataka, stablo pretrage smo odlučili da implementiramo u jeziku koji to nije ....
Operacije sa nizovima u programskom jeziku JavaScript
Kratak osvrt na implementaciju nizova u JavaScript-u, koja je "ispod haube" relativno kompleksna, ali u praksi sasvim funkcionalna i prilično elegantna.
Tutorijal - Regex i JavaScript - Korišćenje regularnih izraza u programskim jezicima
Korišćenje regularnih izraza u editorima nedvosmisleno je korisno samo po sebi, ali regularni izrazi svoju pravu snagu pokazuju tek kada se "upregnu" u nekom programskom jeziku.
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)
Detljna 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 (što je operacija koja sledi posle prevođenja izraza iz infiksne notacije, i takođe se obavlja u jednom prolasku).
AVL Stablo - Implementacija - 3. deo - Obilazak stabla
Tema trećeg nastavka mini-serijala o implementaciji AVL stabala, su različite metode obilaska stabla pretrage.
Struktura web adresa i pristup internet stranicama
Kraći osvrt na često korišćene termine kao što su URL, IP adresa i DNS; 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, bavićemo se prevođenjem notacije).
AVL Stablo - Implementacija - 2. deo - Pretraga
U drugom nastavku mini-serijala o implementaciji AVL stabala, govorimo o pronalaženju elemenata.
Tutorijal - Regex - Kako pronaći unutrašnji sadržaj HTML elemenata
Kako uz pomoću operatora lookahead i lookbehind (o kojima do sada nije bilo reči) pristupati unutrašnjem sadržaju HTML elemenata.
HTML - Specijalni znakovi
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
Mehanizam za proveru podržanosti CSS svojstava u browserima (iako moderni browseri podržavaju sva svojstva, sa starijima to 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 omogućava direktan uticaj na sadržaj internet stranica u browseru (uz direktan pristup specijalizovanoj DOM strukturi).
Tutorijal - Formular za pretragu
Prvi u nizu tutorijala posvetićemo mini-projektu za izradu formulara za pretragu uz pomoć jednostavnog HTML-a i CSS-a.
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
Pretraga obrazaca u tekstu uz pomoć posebno formatiranih niski (i sve blagodeti koje takav pristup donosi).
Kako napraviti dobru lozinku
Naizgled nepotrebna diskusija o tome zašto nije svejedno kakve loznike 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 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 osvrt na najpopularnije editore.
Uvod u web dizajn - 6. deo - Responzivni web dizajn
Osvrt na tehnike 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 (kao što su main, nav, footer i drugi), koji su došli sa revizijom HTML5 i njihov značaj u pravilnom definisanju strukture modernih web sajtova.
Uvod u web dizajn - 4. deo - Tagovi div i span - Flex box
Podela stranice na funkcionalne celine uz upotrebu generičkih kontejnera (div) i flexbox modula.
Uvod u web dizajn - 3. deo - CSS Box i pseudoklase
Zadavanje 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 tipografije 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 (š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 njihov značaj u rešavanju problema u računarskim sistemima.
Pozicioni brojevni sistemi
Prikaz opštih pravila za zapis brojeva, uz poseban osvrt na binarni, dekadni i heksadekadni brojevni sistem.
Klase složenosti algoritama (O notacija)
Klasifikacija algoritama shodno vremenu potrebnom za izvršavanje instrukcija i memorijskom zauzeću.
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.
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 optimizacije algoritama
Šematski prikaz postupaka preko kojih algoritme možemo učiniti efikasnijim.
Uvod u objektno orijentisano programiranje
Najrasprostranjeniji metod rešavanja problema u programiranju i nezaobilazan deo osnovne računarske pismenosti za sve programere
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 kreiranja visinski balansiranog binarno stabla pretrage (jer 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 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čunarksih problema (pogotovo kada je u pitanju sistemsko programiranje niskog nivoa).
Aritmetika boja i režimi preklapanja u programima za obradu fotografija
Jednostavni "fotošop iz domaće radinosti", koji funkcioniše preko elementarne aritmetike (i osvrt na to, da i komplikovani programi funkcionišu po 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
"Izlazak iz lavirinta", uz korišćenje dva poznata algoritma za obilazak struktura podataka.
Binarno stablo pretrage
Postupak za pretraživanja 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 - uopšteno
Osvrt na najvažnije odlike algoritama (jer se problemi na računarima ne mogu rešavati "bilo kako", bar ne ukoliko želimo da budemo dobri i uspešni programeri).
Šta je zapravo programiranje?
Krenućemo od samog početka i odgovoriti na naizgled jednostavno pitanje: šta je to što računari zapravo rade za nas i kako da im pomognemo da taj posao obave što bolje?
Aritmetika velikih brojeva u računarskim sistemima
Šta se dešava kada na računarima želimo da zapišemo izrazito velike brojeve (koji ne mogu stati u standardne procesorske registre) i operišemo nad njima? U pomoć priskaču nizovi.
Postfiksna notacija - kako računari računaju?
Postupak za rešavanje matematičkih izraza na računarima uz korišćenje tzv. postfiksne notacije (znatno efikasniji od uobičajenog postupka tumačenja izraza koji ljudi svakodnevno kotiste).