петак, 12. август 2016.

Zaštitite decu od psihičkog zlostavljanja popularnih Jutjubera

Zaštita dece na Internetu podrazumeva fizičku, psihičku i moralnu bezbednost maloletnih lica tokom obavljanja svakodnevnih aktivnosti na Internetu poput surfovanja, četovanja, korišćenja društveno-socijalnih mreža i online igrica. Cilj je zaštiti decu od neprimerenih sadržaja, negativnih efekata korišćenja Interneta i podići nivo svesti i znanja o tome na koji način virtuelna stvarnost utiče na decu i dokle smeju da se upuštaju u digitalni svet, a da to bude bezbedno i bez posledica. Nažalost, najpoznatijim srpskim jutjuberima takva odgovornost ne pada ni na pamet. Ono što jutjuberima donosi popularnost, veliki broj poseta i pretplatnika na njihovim YouTube kanalima jesu upravo svađe i improvizacije i gluma istih kako bi se što više razvijao i aktivirao hejt – mržnja među maloletnim licima. Svoju odgovornost i ne pravdaju, jednostavno ih nije ni briga dok njihovi pratioci koji ih pravdaju tvrde da je to sve šala i da se sve to ne treba smatrati za ozbiljno. Na žalost prva stvar koju će te uočiti na većini popularnih YouTube kanala jeste ogromna količina vulgarnosti u komentarima koja prevazilaze i najbolesnije pedofilske umove koji se kriju iza lažnih profila i među decom glume takođe decu. Oni su uglavnom najbučniji u psovanju ističući se u broju lažnih profila i vodstvu hejtera dok ih druga deca slede i imitiraju. Lažni profili su im uglavnom pokriće jer veruju da ne mogu biti provaljeni i uglavnom služe za vređanje osoba posebno starijih osoba. Da stvar bude još gora ti isti jutjuberi koji su negde u nebesima, misleći da su nedodirljivi; jednostavno i ne brišu vulgarne komentare sa svojih kanala već su naprotiv i sami bez ikakve moralne odgovornosti skloni iznošenju vulgarnosti pred decom u svojim video snimcima; podstičući abnormalno ponašanje koje lako posle preraste do psihičkog zlostavljanja maloletnog lica, vršnjačkog nasilja ili čak samoubistva. Jutjubere to ne interesuje, bitne su im samo cifre.


 ( Jutjuber - osoba koja zarađuje novac na YouTube-u )

Oni jednostavno ne reaguju previše na komentare i na ljude koji ne broje svoje subskrajbere u hiljadama. Po njima to znači da ste vi niko. Svađe oni prepuštaju svojim lojalnim pratiocima zavedenoj deci i onima koji glume decu. Ukoliko je svađa dogovorena i nameštena tada se prozivaju preko svojih kanala. Bilo koji pokušaj roditelja da skrene pažnju na ponašanje popularnog jutjubera se uglavnom završi takvim napadom i psovkama i vulgarnim rečnikom na čoveka od kojekakvih lažnih profila da tek onda čovek svati kako bi prošlo njegovo dete koje bi se tu našlo slučajno a da nije deo ni jednog klana i iskaže svoje mišljenje. Svako dete tada postaje prvo žrtva psihičkog zlostavljanja i kad pokuša da se odbrani od hejt-a i kad se požali roditeljima uglavnom bude kažnjeno zabranom korišćenja Interneta. Možda je vreme da neko objasni jutjuberima da se pozovu na odgovornost i da se takvo njihovo ponašanje neće više tolerisati. Pravni sistem Republike Srbije krivično delo zlostavljanja i iskorišćavanja dece i putem Interneta reguliše Krivičnim zakonikom. Jedan od relevantnih dokumenata za zaštitu dece od nasilja je i Opšti protokol za zaštitu dece od zlostavljanja i zanemarivanja koji je usvojila Vlada Republike Srbije.


Šta je vršnjačko nasilje?


понедељак, 08. август 2016.

Šta su baze podataka i kako instalirati Microsoft SQL Server 2016 Express ?

Bez obzira koji programski jezik učite ili sa kojim programskim jezikom programirate iz hobija ili poslovno; od svakog programera se očekuje da poznaje rad sa bazama podataka kao i osnove strukturiranja relacionih baza podataka. Baza podataka vam je najjednostavnije rečeno kolekcija podataka smeštena u elektronskom formatu. Na engleskom jeziku se baza podataka kaže database ili skraćeno db. Inače prema Wikipedia-iji; baza podataka je organizovana kolekcija podataka za brzo pretraživanje i pristup; koja zajedno sa sistemom za održavanje i administraciju, organizovanje i memorisanje tih podataka čine sistem baze podataka. U školama će vam reći da je baza podataka kolekcija podataka koja se zapisuje u SQL server. Sve su ove definicije tačne ali je vama najvažnije da shvatite da je dobro organizovana baza podataka rešenje pola vašeg programerskog posla. Sve poznate baze podataka poput SQL, MySQL ili Oracle Database baza podataka; koriste isti standard za rad sa podacima i sve podržavaju SQL programski jezik. Kod Microsoft-a je to T-SQL i on je važan aspekat bez obzira na pojavu upitnog integrisanog jezika LINQ-a koji naveliko danas menja način programiranja ali definitivno nije zamena. T-SQL je jezik baza podataka i ne možete ga preskočiti već ga morate znati. Ali zato kad jednom savladate rad sa bazama podataka, lako će te moći koristiti sve vrste baza podataka jer funkcionišu na istim standardnim principima. Ne morate vi biti stručnjak za baze podataka ali neke osnovne stvari morate poznavati kako bi ste uopšte mogli da koristite baze podataka u vašim programima, sajtovima, servisima ili sistemima. U školama računara se uglavnom rad sa bazama podatka ne svrstava u C# programski jezik, ali se uči uporedo. Tako ću vam i ja uporedo sa postovima C# programskog jezika pisati i postove za rad sa Microsoft SQL Server 2016 Express serverom.

 
( Microsoft SQL Server 2016 )

Pre su programeri uglavnom koristili tekstualne ili binarne datoteke da skladište informacije koje koristi njihov program. Međutim na taj način podaci su se samo gomilali, ponavljali; zauzimali su dosta memorije; mnoge kolone su ostajale prazne, svaka datoteka je u suštini predstavljala samo jednu tabelu i zato se javila velika potreba za programima i serverima koji su pored skladištenja podataka mogle da uvedu pre svega organizaciju u podacima ali i mnoštvo tehnoloških robusnih novina koje danas serveri za baze podataka nude. Prva baza podataka sa kojom ste se možda susretali kroz Microsoft Office jeste Microsoft Access baza podataka. I ona takođe obuhvata tabele, poglede, uskladištene procedure, funkcije i druge objekte koje su neophodni za pravljenje sistema podataka ali navedena baza podataka je desktop aplikacija i može biti veoma problematična kad su u pitanju mnoštvo objekata, tabela, relacija i podataka i pristupanjem istih preko mreže. Zato je pametnije odmah koristiti neku od edicija Microsoft SQL Server baza podataka. Već više od deceniju postoje razne verzije i edicije Microsoft SQL Server-a , često se koriste starije verzije i one se stalno menjaju poput:
  • SQL Server Express Edition
  • SQL Server Workgroup Edition
  • SQL Server Developer Edition
  • SQL Server Standard Edition
  • SQL Server Enterprice Edition
  • SQL Server Mobile Edition
Naravno većina edicija se razlikuje pored tehničkih alata, ograničenja i mogućnosti; tako isto i po godinama izdanja. Microsoft SQL Server 2005 Express Edition i Microsoft SQL Server 2016 Express Edition se takođe razlikuju iako se te razlike često ne vide. Microsoft SQL Server 2016 Express je odličan izbor pre svega za početnike i zato što je besplatan dok su vam za druge edicije potrebne licence i mogu vam reći da one nisu ni malo jeftine. Zato moj izbor za vas je definitivno Microsoft SQL Server 2016 Express. Dobra vest je da Microsoft SQL Server 2016 Express pored 1 GB RAM-a, jednog procesora, nudi ograničenje skladištenja podataka na 10 GB. U ranijim verzijama ograničenje je bilo 4 GB. Sada dolazi sa Advanced Services i nećete imati komplikacije sa pravljenjem dijagrama.

Kako da instaliram Microsoft SQL Server 2016 Express? 
 

петак, 05. август 2016.

Kako da instalirate najveći Windows 10 Anniversary 2016 update

Već smo dosta toga čuli i videli na mnogobrojnim Microsoft video prezentacijama šta nam se sve sprema i na čemu se sve radi kada je u pitanju Windows 10; trenutno najbolji operativni sistem na svetu. Kao što su i obećali u Microsoft-u, rok su ispoštovali i već danas dok pišem ovaj post, istovremeno skidam i instaliram najnoviji Windows update. Iako će ažuriranje ovog update-a ići nešto sporije s obzirom da danas u svetu 350 miliona ljudi koristi Windows 10, instalaciju update-a je moguće i u Srbiji izvršiti odmah i pored toga što se još ne pojavljuje kao stavka u Update & security u Settings-u Windows-a. Za mobilne uređaje ovaj update će malo da kasni ali je moguće da se pojavi još sledeće nedelje. Promene koje donosi novi update se najviše odnosi na sam pretraživač Edge, Cortana-u, čuveno Start meni dugme i sinhronizaciju notifikacija.


( Windows 10 - Settings )

Prvi korak koji treba da uradite je; ukucajte u Cortana Search TextBox-u Settings, zatim kliknite Settings i u Settings-u kliknite na Update & security. Pritisnite Windows Update karticu i ako sa vaše desne strane ne vidite stavku:
  • Feature update to Windows 10, version 1607
To ne treba da vas razočara, nego ispod pitanja "Looking for info on the latest update?", kliknite na link Learn more koji će vas odvesti na Microsoft web stranicu za Windows 10 update history. Zatim na web stranici kliknite na dugme Get the Anniversary Update now.



Šta se dešava dalje?


четвртак, 21. јул 2016.

Rad sa drajverima, folderima i fajlovima u C# programskom jeziku


Bez obzira da li radite sa drajverima, folderima ili fajlovima; retko će te biti u situaciji da radite samo sa folderima ili samo sa fajlovima. U većini slučajeva gde su vam potrebni fajlovi, tu su vam potrebni i drajveri i folderi. Naravno kad kažem drajveri ne mislim na drajvere datoteke za hardverske uređaje u vašim računarima, nego drajvere zovemo i alfabete koji vidite kao root node u direktorijumu kad pokrenete File Explorer ili Command Prompt. Srećom i zahvaljujući Microsoft programerima; .Net Framework vam svojim klasama itekako olakšava rad sa istim, s time da vi trebate da poznajete određene klase i metode. Jednostavno treba da poznajete rad sa klasama poput Environment, DriveInfo, Directory, DirectoryInfo, File i FileInfo. Poznavanjem ovih par klasa niste ni svesni koliki programerski posao će one obavljati za vas.


( Klase koje morate znati; Environment, DriveInfo, Directory, DirectoryInfo, File i FileInfo )  

Do sada ste verovatno primetili da smo klasu okruženja Environment već koristili skoro u svim C# primerima na ovom blogu; jednostavno smo umesto eskejp sekvence \n za prelazak u novi red koristili Environment.NewLine. Neki od mojih kolega smatraju da sam to radio radi čitljivosti koda i nije im jasno zašto ne koristim eskejp sekvence \n jer skraćuje kod; često se koristi u školama i u knjigama za C# programiranje. Istina je da uvek trebate voditi računa i o čitljivosti koda, mada treba da znate i da se prelazak u novi red na različitim operativnim sistemima ne kompajlira isto. Npr. u Windows-u je to "\r\n" (\u000D\u000A) , na iOS operativnom sistemu je to "\r" (\u000D) dok je na Unix sistemu "\n" (\u000A). Većini programera; pogotovo onih koji koriste samo Windows operativni sistem to nije ni toliko bitno, ali iz tog razloga postoji preporuka Microsoft-a da se uvek koristi Environment.NewLine umesto eskejp sekvence \n kad god je to moguće i ja jednostavno poštujem preporuku. Međutim, klasa okruženja Environment ne služi samo za tu svrhu, već takođe obezbeđuje i informacije o platformi i okruženju na kom radite. Pogledajte samo neke od propertije i metode klase Environment.
  • CurrentDirectory – properti koji omogućava set-ovanje i čitanje tekućeg direktorijuma 
  • Is64BitOperatingSistem – properti koji vraća vrednost true ukoliko koristite 64bit-ni operativni sistem
  • MachineName – properti koji prikazuje NetBIOS ime lokalnog kompjutera ili ne iz bezbednosnih razloga
  • NewLine – properti koji se koristi za prelazak u novi red
  • OSVersion – properti koji prikazuje indikator za tekući OS i verziju
  • SystemDirectory – properti koji prikazuje putanju sistemskog direktorijuma
  • GetLogicalDrives – metoda prikazuje niz imena drajvera u tekućem kompjuteru
  • Itd.
Za razliku od klase Environment, klasa Directory ne sadrži uopšte propertije, samo korisne metode za rad sa direktorijuma poput:
  • CreateDirectory – kreira direktorijume i pod direktorijume ukoliko već ne postoje
  • Delete – briše prazan direktorijum
  • Exists – proverava da li postoji navedeni direktorijum
  • GetCurrentDirectory – metoda koja vraća string tekućeg direktorijuma
  • GetDirectories – metoda koja vraća pod direktorijume u direktorijumu prema zadatom obrascu
  • Itd.
Kako se koriste navedene klase najbolje će te shvatiti njihovom praktičnom primenom. U svakom slučaju da bi ste koristili mogućnosti navedeni klasa predlažem vam da prvo uključite imenski prostor System.IO u vašem projektu.

Praktičan primer rada sa drajverima i folderima

петак, 17. јун 2016.

Događaji u C# programskom jeziku


Event – događaj u C# programskom jeziku je način da klasa ili objekat pruži obaveštenje drugim klasama ili objektima da se nešto važno dogodilo. Klasa koja generiše događaj naziva se publisher – izdavač dok klasa koja prima ili obrađuje događaj se naziva subcriber – pretplatnik. Klasa publisher definiše kad će se generisati događaj dok klasa subscriber odlučuje koja će se akcija preduzeti. Obično klasa pretplatnik sadrži čitavu listu metoda koji se pozivaju kad se izazove događaj i takve metode takođe zovemo subscribers - pretplatničke metode. Kada programeri rade sa događajima, uglavnom se to odnosi na programiranje aplikacije sa grafičkim okruženjem ili web aplikacijama, zato što su takve aplikacije vođene događajima. Na primer kad god vi kliknete na neku stavku u meniju ili neko dugme na formi mišem; vi zapravo aktivirate određeni događaj i na osnovu pokrenutog događaja se izvršava kod koji se nalazi u proceduri događaja za stavku menija ili dugmeta koje ste pritisnuli. Kako će ceo tok programa da se izvršava zavisi od događaja koje korisnik aktivira sve do izlaska iz aplikacije. Zato kažemo da su navedene aplikacije vođene događajima. Događaji se retko koriste u konzolnim aplikacijama ali i u njima mogu da imaju svoju primenu.


( Događaji u C# programskom jeziku )

Deklaracija događaja je jednostavna, stime da su događaji namenjeni da se koriste sa delegatima. Jednostavno tip događaja mora da bude delegat i zato ispred delegata mora da se nalazi ključna reč event. U .Net Framework-u su događaji bazirani na EventHandler delegatu. O delegatima čitajte ovde, a sintaksa za deklarisanje događaja je sledeća:


event DelegatDogadjaja imeDogadjaja;

Kao i kod delegate, pretplata na događaj se vrši operatorom +=

ImeDogadjaja += new DelegatDogadjaja (ImeMetode);

Dok se odjava, otkazivanje pretplate vrši operatorom -=

ImeDogadjaja -= new DelegatDogadjaja (ImeMetode);

Pre generisanja događaja se uvek proverava da li događaj ima null vrednost:

if (ImeDogadjaja != null)
{
    ImeDogadjaja.Invoke();

}

Događaje će te najbolje naučiti koristeći praktične primere. Pogledajte jedan od njih.

Praktičan primer događaja

четвртак, 16. јун 2016.

Delegati u C# programskom jeziku



Delegati su neka vrsta pokazivača na metode koji su objektno orjentisani i strogo tipizirani. Najjednostavnije rečeno delegat je referenca na metodu. Najlakše će te ih razumeti ukoliko zamislite da su delegati potpis metoda. Delegati vam omogućavaju da se logika vaše aplikacije u vašim metodama potpuno razdvoji od aplikacija koje su ih pozvale. Inače mnogi programeri ne shvataju zašto bi koristili delegate kad mogu pozvati metodu i ne vide njihovu svrhu. Delegati su predviđeni za situacije u kojima metodama želite da prenosite druge metode. Ja razumem da ste vi navikli da metodama prenosite podatke preko parametara ali ne i metode. Međutim postoje situacije u kojima će vaš metod umesto da za obradu podataka, poziva drugi metod i da bi situacija bila još komplikovanija vi čak i ne znate koji je taj drugi metod koji će se pozivati. Jer to možete znati jedino u fazi izvršavanja i zbog toga je neophodno pozivanje metode preko parametra i zato se koriste delegati.



( Delegati u C# programskom jeziku )

Delegati se često koriste kada radite sa nitima, klasama biblioteka i događajima. Delegate koje nameravate da koristite prvo treba da definišete. To u prevodu znači da vi definisanjem delegata saopštavate kompajleru koju vrstu metoda vaš delegat predstavlja. Svaki delegat se definiše unutar imenskog prostora ili klase. Zatim pravite jedan ili više primeraka tog delegata. Delegati mogu biti i sa i bez parametara. Sintaksa za delegata izgleda ovako; prvo se definiše delegat korišćenjem ključne reči delegate:

public delegate string ImeDelegata(string patrametar);

Delegat se može instancirati ovako:

public ImeDelegata mojDelegat = null;

Delegatu se može dodati referenca koristeći += operator:

mojDelegat += TestMetoda;

ili

mojDelegat = new ImeDelegata(TestMetoda);

Delegatu se takođe može ukloniti referenca koristeći -= operator:

mojDelegat -= TestMetoda;

Sve ovo vam može zvučati i izgledati nerazumljivo ali kad pogledate praktične primere upotrebe delegata, shvatićete koliko je to jednostavno. Ono što je najbitnije treba da razumete da se delegati izvršavaju dinamički; u toku izvršavanja; i da delegat može pokazivati na bilo koju metodu koja ima isti potpis kao i delegat. Pogledajte jednostavan primer kako se koristi delegat sa više metoda.

Primer upotrebe delegata

недеља, 12. јун 2016.

Generičke liste u C# programskom jeziku


Prvo sam vam objasnio šta su negeneričke kolekcije; pogledajte ovde; zatim sam vam pokazao šta su generici i kako se prave; pogledajte ovde; i sad su došle na red generičke liste s kojima možete sva tri posta zaokružiti u jednu veliku celinu o svim kolekcijama uopšteno. Sa poznavanjem kolekcija vaše programiranje ali i čitanje koda drugih programera će vam biti mnogo efikasnije. Mada i dalje ostajem pri tome da po pitanju pravljenja igrica, posebno za Windows Phone aplikacije ili UWP – Universal Window Platform aplikacije izbegavate kolekcije jer su skupe. U svakom slučaju testirajte. Ali za sve ostale vrste aplikacija, kolekcije jednostavno olakšavaju programerima kodiranje i smanjuju kod. Kolekcije su uglavnom povezane za rad sa podacima koji potiču iz baza podataka, klasa ili drugih datoteka; često su isprepletene sa drugim programerskim aktivnostima poput taskova, događaja, delegata ili jednostavno služe da ispune neku kontrolu u programima sa grafičkim okruženjem; poput ListBox-a ili ComboBox-a; ali u jedno možete biti sigurni; gde su kolekcije tu su i podaci i kad manipulišete sa podacima vi to jednostavno radite preko kolekcija.



( Generičke kolekcije olakšavaju programiranje )

Uglavnom, sve što važi za generike to važi i za generičke liste. Sve generičke liste se nalaze u imenskom prostoru System.Collection.Generic; sve su parametorizovane kako bi izbegle boxing i unboxing objekata i kad radite sa generičkim listama tada radite sa tipom podataka koje ste definisali; svi elementi u kolekciji moraju da imaju isti tip podataka; i sve generičke liste su takođe safe type. Tokom vašeg programiranja češće će te koristiti generičke liste nego što će te praviti svoje generike jer već postojeće generičke liste mogu da odrade mnogobrojne poslovne zahteve. I pored toga što neke generičke liste imaju isti naziv poput negenerički kolekcija; razlikuju se po tome što zahtevaju parametre pri samoj deklaraciji iste. Znači, generičke liste koristite kada znate koji tip podataka hoćete da koristi vaša lista i kad hoćete da svaki elemenat u kolekciji bude istog tipa.

Generička kolekcija List<>