Na tej strani so objavljeni stari projekti, ki jih ne podpiram in ne posodabljam več. To so programi, ki sem jih pisal, ko o programiranju še nisem vedel veliko, in sem jih nehal razvijati, ker se mi je tako pač zazdelo. Datum ob projektu pomeni, kdaj sem nazadnje delal na njem.
Kazalo
- WebGrader – 24. 9. 2024
- SMS obvestila iz sistema SPIN – 31. 7. 2022
- QOTD Strežnik – 21. 7. 2021
- COVID-19 obveščanje – 17. 4. 2021
- Turingov stroj – 15. 11. 2020
- Obveščanje o izpadih električne energije Elektra Celje – 22. 8. 2020
- Linker – 20. 5. 2020
- Kripti – 29. 10. 2019
- Computer control – 17. 9. 2019
- What’s my Password – 9. 6. 2019
- Posredniški (proxy) strežnik – 20. 5. 2019
- NikiWeb – 19. 3. 2019
- AutoTorrent – 25. 8. 2018
- NikiOS – 28. 7. 2018
- Locker – 26. 7. 2018
- Virtualni asistent – 28. 5. 2018
- Ebralec – 18. 4. 2018
- Ugani in zadeni – program za iskanje rešitve – 14. 3. 2018
- Program klepet – 24. 11. 2017
- Nikigre brskalnik – 21. 10. 2016
- Koda za preverjanje posodobitev
WebGrader – 24. 9. 2024
WebGrader je bila razširitev za brskalnik Firefox, ki je uporabniku omogočala, da je ocenil vsako domeno in preveril oceno domene, na kateri se trenutno nahaja. To je bil moj »failed attempt«, da bi pomagal pri preverjanju verodostojnosti spletnih strani in ocen uporabnikov.
To je bila tudi moja prva razširitev, ki sem jo napisal za brskalnike. Na moji spletni strani je lahko uporabnik preveril statistiko za vse strani, če je bil prijavljen; kot gost pa je lahko pogledal najbolje in najslabše ocenjene strani ter ugotovil, katera stran ima največ ocen.

Vmes sem popravil kodo tako, da uporabnik ni ocenjeval domene, temveč celoten URL (brez GET-vrednosti), kar morda ni bilo najbolje, saj se lahko tudi v poti URL-ja skrivajo osebni podatki. To sem nato spremenil, da se je do konca ocenjevala samo domena.
WebGrader sem pogosto uporabljal za lastno ocenjevanje domen.
Projekt sem opustil, ker sem zamenjal gostovanje in nikakor nisem mogel izvoziti dela baze, ki je upravljala s tokeni in varnostjo ocenjevanja. Morda ga bom še kdaj obudil 😉
SMS obvestila iz sistema SPIN – 31. 7. 2022
Bilo je izpitno obdobje, veliko dela, jaz pa sem seveda raje počel kaj drugega, kot da bi se učil. Našel sem spletno stran SPIN, ki objavlja dogodke po Sloveniji, prijavljene centru za obveščanje. Po raziskovanju spletne strani sem ugotovil, da backend pošlje frontendu datoteko JSON z vsemi dogodki, kar me je spomnilo, da bi se te podatke dalo obdelovati. Zato sem se spet odločil narediti SMS-obveščanje za tiste med nami, ki želimo vedeti, kaj se dogaja okoli nas.

Sistem je začel delovati 6. 2. 2022 in je deloval do 31. 7. 2022. Upokojil sem ga, ker je začel počasi pošiljati precej veliko količino SMS-jev, kar je obremenjevalo strežnik, hkrati pa je bilo tudi nekoliko nadležno za uporabnika. Po želji se sistem še vedno lahko znova vklopi.
QOTD Strežnik – 21. 7. 2021
Protokol QOTD je del protokolnega sklada TCP/IP. Razvil ga je Jon Postel in ga objavil maja 1983. Namen tega protokola je v teoriji, da strežnik na zahtevo uporabnika vrne citat dneva. V praksi pa se je protokol uporabljal za testiranje dosegljivosti in hitrosti omrežja.
Klient se prek protokola UDP (User Datagram Protocol) ali TCP (Transmission Control Protocol) in vrat 17 poveže s strežnikom, ta pa mu takoj po uspešni vzpostavitvi povezave vrne citat dneva in povezavo prekine. Vse podatke, ki jih klient pošlje, strežnik zavrže.
Ne spomnim se, zakaj sem se lotil implementacije, sklepam pa, da je bilo povezano s strežnikom Govornik, saj je koda precej podobna kodi strežnika Govornik.
Uporabnik si lahko kodo ogleda na GitHubu, klienta prenese tukaj, strežnik pa tukaj.
Projekt sem opustil pred nekaj leti, saj sem strežnik gostoval na OKEANOS GLOBAL na Windows Server 2012, ki še vedno v okviru Arnes AAI omogoča uporabnikom brezplačne virtualne strežnike za 6 mesecev, vendar so pred časom gostovanje Windows strežnikov onemogočili.
COVID-19 obveščanje – 17. 4. 2021
Med pandemijo mi je bilo dolgčas, kot večini. Medtem ko sem se dolgočasil, sem bral tvite na Twitterju in opazil, da @vladaRS vsak dan objavi tvit v istem formatu. Pri meni pa že nekaj časa deluje SMSSenderAPI za pošiljanje SMS-jev. Ti dve stvari sem povezal in naredil COVID-19 obveščanje. Uporabnik se je prek strani naročil na obveščanje in je vsak dan dobil SMS s podatki. Uporabnik se je na obveščanje lahko naročil prek spletne strani ali pa s pošiljanjem ključnih besed na številko storitve SMSSender.
Spodnje besedilo je bilo poslano uporabniku, ko je poslal ključno besedo “corona pomoc”.
Pozdravljeni v SMS obveščanju o SARS-COVID-19 stanju v Sloveniji!
Pomoč pri SMS sporočilu:
Naročanje na obvestila o spremembah: corona naroci
corona stanje - Vrne trenutno stanje
Odjava iz obveščanje - corona odjava
Lep pozdrav Nikigre.si
Uporabnik je na začetku servisa dobil takšen SMS:
13. marec 2020: Do 14. ure je bilo v Sloveniji potrjenih 141 okužb s koronavirusom. Opravljenih je bilo 4346 testiranj.
Lep pozdrav Nikigre.si
Po nekaj časa pa so spremenili format tvita in dodali več podatkov. Zato je uporabnik vsak dan dobil SMS, ki je izgledal nekako takole:
Pozdravljeni!
Stanje COVID-19 v Sloveniji na datum: 16. 4. 2021:
- Št. testiranj: 3752
- Št. pozitivnih: 766 (20,4 %)
- Št. hospitaliziranih: 629
- Št. umrlih: 6
#OstaniDoma
Vir: Twitter VladaRS
Lep pozdrav, nikigre.si
Na obveščanje je bilo naročenih kar nekaj uporabnikov, saj se je marsikomu to zdelo uporabno.
Zadnji SMS-ji so bili poslani na zgornji datum. Medtem so format tvitov spremenili, kar sem tudi v kodi popravil. Kasneje pa so začeli objavljati slike s temi podatki. S tem se nisem več ukvarjal in sem servis izklopil.
Turingov stroj – 15. 11. 2020
Na faksu pri predmetu Uvod v računalništvo smo se spoznali z osnovami računalništva, ki so mi prišle prav v nadaljevanju študija. Omenili smo Turingov stroj, ki me je precej pritegnil, zato sem se odločil napisati simulator v svojem najljubšem programskem jeziku C#.

Na desno stran vpišemo pravila, dodamo vhodne podatke in poženemo stroj. Nastavimo lahko tudi hitrost izvajanja in način prikaza delovanja. Kako deluje, je podrobneje opisano tukaj. Prenesete ga lahko tukaj. Program sem upokojil 6. 7. 2022.
Obveščanje o izpadih električne energije Elektra Celje – 22. 8. 2020
To je bil moj prvi projekt povezan z umetno inteligenco. Za backend sem uporabil PHP in wit.ai. PHP koda se požene vsak dan ob 12.00 in s spletne strani Elektra Celje iz vsake XML datoteke, ki vsebuje informacije o izklopih, pridobi obvestila. Ta obvestila se nato posredujejo na strežnik wit.ai, ki vrne potrebne podatke. Če se je kateri od uporabnikov naročil na določen kraj in bo ta kraj imel izpad električne energije, mu sistem pošlje SMS.

Na izpade se lahko uporabnik naroči tukaj. Projekta ne posodabljam več in ni več objavljen v meniju (ker ga, kot ponavadi, nihče ne uporablja), bo pa še vedno deloval, kot mora. Sam ga še vedno uporabljam.
Zelo toplo priporočam spletno orodje wit.ai. Z njim se da narediti veliko uporabnih stvari, celo podpira slovenščino!
Če bi želel kdo narediti kaj podobnega z wit.ai lahko tukaj prenese moje podatke. Kot vhodni podatek mora biti obvestilo od “transformatorskih postaj:” in do konca.
Linker – 20. 5. 2020
Prva različica Linkerja je delovala v operacijskem sistemu Windows tako, da se je povezovala preko protokola FTP na strežnik in ročno izdelovala kratke povezave. To se je izkazalo za precej neuporabno, zato sem pripravil novo različico. Ta je bila napisana zgolj v PHP in je uporabljala podatkovno bazo MySQL. Na program sem bil precej ponosen, saj je povezave dejansko skrajšal in omogočal pregled obiskovalcev povezave: IP, operacijski sistem, od kod je dobil povezavo itd. Storitev je bila uporabljena marsikje, saj je bila moja in je odlično delovala. Kasneje sem dodal tudi možnost, da uporabnik sam izbere skrajšano povezavo. Če sem našel spletno stran, ki mi je bila všeč in sem jo potreboval za šolo, sem samo skrajšal povezavo in si štirimestno kodo zapisal v zvezek.

Na žalost pa je Linker prišel v roke nesramnih ljudi in botov. Začeli so skrajševati zlonamerne povezave, povezave do pornografije, lažnih spletnih strani za krajo podatkov itd.
To še ne bi bil velik problem, vendar sem Linker zasnoval tako, da samodejno preusmeri brskalnik na skrajšano povezavo, brez pošiljanja kakršnih koli ukazov, da je bila izvedena preusmeritev. To je zavedlo sisteme za preverjanje zlonamernih povezav, zaradi česar sem dobil precej prijav, da moja domena vsebuje zlonamerne strani.
Nato sem dodal možnost, da lahko povezave onemogočim ročno, vendar tudi to ni pomagalo.
V program sem dodal tudi Googlovo reCAPTCHA, vendar težave še vedno ni rešila. Zadnja ideja, ki sem se je spomnil, je bila implementacija sistema Google SafeSearch, ki preveri, ali je povezava zlonamerna. Na žalost je sistem napisan tako nerodno (ali pa ga samo jaz ne razumem) in je implementacija zelo čudna. Tudi to ni rešilo težave, zato sem sklenil, da moram projekt opustiti.
̶S̶k̶r̶a̶j̶š̶a̶n̶e̶ ̶p̶o̶v̶e̶z̶a̶v̶e̶ ̶š̶e̶ ̶v̶e̶d̶n̶o̶ ̶d̶e̶l̶u̶j̶e̶j̶o̶ ̶i̶n̶ ̶t̶u̶d̶i̶ ̶š̶e̶ ̶b̶o̶d̶o̶.̶ ̶L̶i̶n̶k̶e̶r̶ ̶š̶e̶ ̶v̶e̶d̶n̶o̶ ̶d̶e̶l̶u̶j̶e̶,̶ ̶v̶e̶n̶d̶a̶r̶ ̶j̶e̶ ̶z̶a̶p̶r̶t̶ ̶z̶a̶ ̶j̶a̶v̶n̶o̶s̶t̶.̶ ̶Č̶e̶ ̶b̶i̶ ̶g̶a̶ ̶p̶a̶ ̶ž̶e̶l̶e̶l̶i̶ ̶u̶p̶o̶r̶a̶b̶l̶j̶a̶t̶i̶,̶ ̶k̶e̶r̶ ̶ž̶e̶l̶i̶t̶e̶ ̶s̶l̶o̶v̶e̶n̶s̶k̶i̶ ̶s̶k̶r̶a̶j̶š̶e̶v̶a̶l̶n̶i̶k̶ ̶l̶i̶n̶k̶o̶v̶ ̶m̶i̶ ̶p̶a̶ ̶l̶e̶ ̶n̶a̶p̶i̶š̶i̶t̶e̶ ̶e̶-̶m̶a̶i̶l̶ ̶;̶)̶ ̶.̶
Dodatek: Linker sedaj spet deluje. Sedaj reCaptcha dejansko deluje. 20. 4. 2024 -> Izdelovanje novih povezav je bilo onemogočeno, saj je sedaj na voljo nova storitev.
Kripti – 29. 10. 2019
Kripti … ah, Kripti. Tega programa se spomnim, veliko sem se ukvarjal z njim. Prva verzija je nastala nekje po letu 2016. Doživel je kar sedem različnih verzij, prav tako pa sem ga dvakrat napisal na novo. Nanj sem bil precej ponosen, saj smo si s prijatelji lahko pošiljali sporočila, ki smo jih znali prebrati le mi. V zadnjih verzijah sem se še igral s Cezarjevim algoritmom in drugimi, da sem izhod kriptiranja še nekoliko spremenil.

Kripti je bil prav tako vključen v NikiOS in je bil moj prvi program, ki je imel pravo namestitev. Uporabil sem kodo, ki sem jo našel na internetu; ta uporablja razred RijndaelManaged za kriptiranje. Najnovejšo verzijo si lahko prenesete tukaj. Upokojil sem ga 6. 7. 2022.
Computer control – 17. 9. 2019
Computer Control je komplet programov za nadzor skupine računalnikov v ustanovi. Programski paket je sestavljen iz treh delov:
- Computer Control Admin (CCA) – program za nadzor računalnikov,
- Computer Control Client (CCC) – program, nameščen na uporabnikovem računalniku,
- Computer Control Config (CCa) – program za konfiguracijo CCC na uporabnikovem računalniku.
Na desni strani CCA je seznam prostorov z računalniki, ki jih nadzorujete. Z dvoklikom odpirate nadstropja, prostore in posamezne računalnike. Program omogoča veliko načinov upravljanja z oddaljenimi računalniki, na primer:
- izklop računalnika,
- ponovni zagon računalnika,
- prikaz obvestila uporabniku,
- prikaz HTML obvestila uporabniku,
- zaklep računalnika,
- odpiranje programa/spletne strani uporabniku,
- nameščanje .msi programov,
- nastavitev nedovoljenih programov (ki jih uporabnik ne more zagnati),
- prenos datotek,
- prikaz trenutno delujočih programov,
- pogled na monitor v živo (vmes sem želel dodati tudi oddaljen nadzor, ki je do neke mere deloval).
Veliko teh funkcij lahko ukazujete tudi skupini računalnikov. Programski paket ima svojo wiki stran tukaj.

Program sem napisal dvakrat. Prvič je bil narejen na principu HTTP spletnega strežnika, ki je pisal datoteke na spletni strežnik; te datoteke so povedale klientom, kaj morajo narediti (datoteke so bile v drevesni strukturi glede na nadstropja in učilnice). Nato sem program napisal popolnoma na novo tako, da je uporabljal bazo na oddaljenem strežniku, kar je odprlo veliko novih možnosti in uporabnosti. Profesor, ki me je imel pri praktičnih predmetih v srednji šoli, je bil nad projektom zelo navdušen, saj kot je rekel, deluje precej dobro, ima veliko funkcionalnosti in bi bil res dober za uporabo v učilnici. Vsi računalniki so pisali log v bazo, tako da se je preko CCA videlo, ali se je ukaz izvedel, ali je prišlo do napake itd. Kasneje sem dopisal tudi program, ki je preverjal, ali CCC deluje, in ga v primeru nedelovanja zagnal. CCC pa hkrati preverja, ali ta program, ki pazi nanj, deluje. Tako sem zagotovil, da CCC vedno deluje (morda obstajajo kakšni triki, da bi se ga dalo izklopiti, vendar bi se to v CCA videlo). Poleg tega sem napisal še CCCs (Computer Control Client Service), ki je bil narejen tako, da ga ni bilo mogoče izklopiti. Vendar servisi v novejših Windowsih nimajo pravic dostopati do uporabnikovih podatkov (zagnani programi, slika zaslona, prikaz obvestil …), kar je onemogočilo večino funkcionalnosti CCC. Lahko bi napisal program, ki ne bi bil servis in bi te podatke sporočal servisu, vendar tako daleč nisem šel.
Največja slabost programa po mojem mnenju je, da so klienti imeli časovnik in so vsakih X sekund (privzeto 8 s) poizvedovali v bazi, ali morajo kaj narediti. Predstavljajmo si veliko računalnikov, ki vsakih 8 sekund obremenjujejo glavni strežnik z vprašanjem, ali je treba kaj narediti … Mislim, da bi bilo omrežje preveč obremenjeno. Rešitev bi bil verjetno kakšen stateless protocol, ki bi stalno držal povezavo med klientom in strežnikom odprto. Tako bi strežnik preprosto rekel: »Prikaži obvestilo,« namesto da bi moral klient vsakih 8 sekund spraševati strežnik, ali je kaj za narediti.
Projekt še vedno deluje in se ga da namestiti in uporabiti (pišite mi za prenos). Odprite wiki stran o tem projektu in preberite kako.
Zakaj sem ga opustil? Izgubil sem interes. Tisti, ki me osebno poznajo, pa vedo, zakaj sem ga izgubil in kdo je za to kriv. 🤦♂️😝
What’s my Password – 9. 6. 2019
What’s my Password je bil password manager, ki bi moral obnoreti svet, pa ga ni 😥. Omogoča shranjevanje uporabniških imen, gesel in opomb za določen URL, ki ga uporabnik vnese v bazo, pri čemer sta uporabniško ime in geslo šifrirana z glavnim geslom.


Mislim, da je bilo to obdobje, ko sem poskušal v vse svoje aplikacije vključiti glavno kodo Kripti-ja, ki me je takrat fascinirala. Program sem uporabljal kot glavni password manager in iskreno, še zdaj tu in tam vanj pogledam po kakšnem geslu, ki ga še nisem uvozil v druga, bolj varna okolja za shranjevanje gesel.
Program je seveda še vedno na voljo za prenos kot datoteka .msi in kot datoteka .zip.
Projekt sem opustil, ko sem ugotovil, da lahko gesla shranjujem tudi v brskalniku, kar mi olajša sinhronizacijo med napravami.
Posredniški (proxy) strežnik – 20. 5. 2019
Posredniški strežnik je strežnik, ki uporabnikovo zahtevo za neko spletno stran posreduje naprej v svojem imenu. Na enostaven način skrije, kdo je dejansko poslal zahtevo. Precej uporaben je za hitro menjavo IP naslova pred spletno stranjo.

Imel sem več različic proxy strežnikov, postavljenih na tem gostovanju. Vendar pa je, kot sem že omenil pri Linkerju, veliko ljudi in botov ugotovilo, da gostim proxy strežnik, ter ga začelo uporabljati za zlonamerne namene. Ker je povzročal veliko porabo omrežja in procesorskega časa, sem ga onemogočil.
NikiWeb – 19. 3. 2019
NikiWeb je zelo preprost spletni strežnik, ki sem ga razvil, da je začetek osnovnega spletnega programiranja čim bolj enostaven. Zadnja verzija (3.0) je prav tako vsebovala jedro PHP. Strežnik je lahko prikazoval tako HTML- kot PHP-datoteke. Ta ni bil ravno stabilen; imel je težave s PHP-spremenljivkami ($_POST, $_GET ipd.) in podobno, saj nisem točno vedel, kako ga vključiti v spletni strežnik v C#.

Če ga želite pognati na svojem računalniku, ga lahko prenesete tukaj. Aplikacijo sem upokojil 6. 7. 2022.
AutoTorrent – 25. 8. 2018
AutoTorrent je bil program, ki je tekel na računalniku z nameščenim µTorrentom. Ko je uporabnik v določeno mapo premaknil datoteko .torrent, jo je program samodejno dodal v čakalno vrsto za prenos.

Ne vem, kje imam kodo zanj; očitno sem jo izbrisal, zato glede datuma nisem prepričan. Razvit je bil v obdobju Ugani in zadeni. Kar nekaj let sem ga tudi uporabljal. Program je tekel na strežniku, z lastnega računalnika pa sem preko deljenega pogona kopiral datoteke .torrent in si s tem prihranil korak ali dva. 🙂
Ene izmed zadnjih verzij so omogočale tudi, da je uporabnik v datoteko URL.txt prilepil povezavo, ki jo je AutoTorrent nato odprl in datoteko začel prenašati v določeno mapo.
Navodila se nahajajo tukaj. Prenosete ga pa lahko tukaj.
NikiOS – 28. 7. 2018
NikiOS je bil program, ki je »zamenjal« trenutno verzijo operacijskega sistema z NikiOS. Omogoča večino osnovnih nalog in je preprost za osnovne uporabnike. Poskrbel sem tudi za to, da se je lahko NikiOS naložil na pravi računalnik in zagnal brez Windows namestitve. To sem dosegel tako, da sem uporabil Windows PE in ga prilagodil tako, da se NikiOS zažene samodejno. Prav tako sem pripravil setup, podoben kot pri namestitvi Windows.

Če ga želite preizkusiti, ga lahko prenesete tukaj. Če ga želite zagnati v virtualnem računalniku ali na pravem računalniku, pritisnite tukaj. To sicer ni namestitev, ker je gospod pametni izbrisal pravo ISO datoteko. To ISO datoteko je treba naložiti na ključek, saj mora NikiOS nekam zapisati svoje podatke.
EDIT: Našel oziroma naredil sem nov setup. Prenesete ga lahko tukaj. Pri meni se ob vsakem prvem zagonu sesuje, drugič pa deluje. Ne vem, zakaj. Ta namestitev naloži NikiOS na disk in omogoča, da se zažene brez ISO datoteke. Deluje tudi na pravem računalniku (bolj modernem, ki podpira vsaj Windows Vista). Potrebuje pa približno 500 MB RAM-a.
Začel sem pisati tudi novo verzijo, ki je bila multi-thread (več procesov), zato da bi program deloval veliko bolj stabilno in varno. Prav tako sem naredil trgovino z aplikacijami, kjer bi lahko izbrali aplikacije, ki jih želite prenesti in namestiti.
Projekt sem opustil, ker sem, preprosto povedano, obupal. Ni se mi zdel vreden mojega časa, saj enostavno ne bi bil uporaben v resničnem življenju. Je pa res, da sem se s tem projektom dolgo ukvarjal in naredil veliko različnih verzij. Mogoče se ga pa kdaj lotim ponovno.
Locker – 26. 7. 2018
Locker je bil program, ki je omogočal upravljanje računalnika na daljavo s pomočjo Android aplikacije. Omogočal je oddaljen zaklep računalnika, ponovni zagon, ustavitev sistema, zagon vnaprej definiranih programov itd. Na program sem bil precej ponosen, saj je deloval zelo dobro. Ne spomnim se več, zakaj sem ga opustil. Spomnim se le, da je moral program na Windows računalniku večkrat na minuto preverjati podatkovno bazo, ali mora narediti kaj (izklop, ponovni zagon, zagon programov itd.). Težavo bi lahko rešil z uporabo stateless protokola, vendar takrat še nisem našel primera, ki bi ga razumel. (takrat 😉).

Program ne deluje več, ker sem izbrisal podatkovno bazo in vse PHP datoteke, ki so uporabljale Locker 🤦♂️. Program je zdaj praktično neuporaben.
Ko bom razumel stateless protokol in našel ustrezno implementacijo, bom program vsekakor naredil na novo, saj se mi zdi precej dobra ideja.
Program je sedaj napisan na novo in deluje. Najdete ga na spletni strani. Ni več na voljo javno, ker je brezveze.
Virtualni asistent – 28. 5. 2018
Pred precej leti sem v VB.NET (moj prvi programski jezik) naredil program Virtualni asistent. Takrat sploh nisem vedel za Siri, Cortano (sploh še ni obstajala), Alexo …, vendar sem si vedno želel narediti nekaj podobnega. Program sem zasnoval tako, da uporabnik v okno vpiše vprašanje, virtualni asistent pa mu odgovori s slovenskim glasom (Amebis eBralec – dali so mi nekaj brezplačnih licenc). S programom sem bil zelo zadovoljen, saj smo s prijatelji njegovo bazo skupaj dopolnjevali. Nekdo je postavil vprašanje, nato pa je vsak od nas podal odgovor na to vprašanje (tako smo asistentu dali več različnih odgovorov, med katerimi je lahko izbiral). Napisali smo precej veliko vprašanj in odgovorov in bili precej zadovoljni. Za podatkovno bazo je uporabljal Accessovo datoteko.


Zapomnil si je uporabnikovo ime, napovedal vreme, iskal po Googlu itd. Nekaj mesecev kasneje sem se odločil narediti novo verzijo virtualnega asistenta z podatkovno bazo na oddaljenem strežniku, da bi imela vsaka namestitev najnovejšo bazo. To mi je uspelo, vendar sem bazo pred mnogimi leti izbrisal, prav tako vso PHP kodo, ki je bila odgovorna za povezavo.
Pred kratkim sem verzijo z lokalno bazo nadgradil tako, da namesto Amebis eBralca uporablja sintetizator, ki je bil narejen v okviru raziskovalne naloge. Tako lahko sedaj program uporablja kdorkoli. Zastonj. Prenesete ga lahko tukaj. (Za uporabo je potrebno najprej namestiti AccessDatabaseEngine)
Zelo si želim nadaljevati kakšen podoben projekt, vendar je zadeva zelo sofisticirana. Takšen virtualni asistent je zgrajen iz treh glavnih gradnikov:
- Govor v besedilo
- Vhodno besedilo -> procesiranje -> odgovor
- Besedilo v govor
Zadnja točka je že narejena, preostali dve pa je še treba pripraviti in vse skupaj povezati, kar pa vsekakor ni enostavna naloga.
Ebralec – 18. 4. 2018
Ukradeno ime. I know. 🤦 Zaradi bolezni v družini je oseba začela zelo težko govoriti. Ta oseba ni znala angleško. Zato sem se odločil, da bom naredil program, podoben programu, ki bi ga lahko uporabljala, vendar v slovenščini. Programa nikoli nisem dokončal ali ga bistveno nadgradil, saj mi je uspelo originalni sistem v angleščini nekako prilagoditi slovenščini in tej osebi olajšati uporabo.

Uporabnik se lahko z miško (ali pogledom, če ima potreben HW) postavi na navaden gumb. Program bo prebral besedilo, ki je napisano na gumbu. Če pa se postavi na temno moder gumb, bo program odprl podmeni z dodatnimi stavki.
Staro verzijo programa sem zdaj posodobil tako, da ne uporablja več Amebisovega sintetizatorja eBralca, ampak sintetizator Govornik. Za delovanje programa potrebujete internetno povezavo. Prenesete ga lahko tukaj.
Ugani in zadeni – program za iskanje rešitve – 14. 3. 2018
14. 3. 2018 je na radiu Antena potekala nagradna igra »Ugani in zadeni«. Med 0 in 1500 je bilo treba uganiti številko, ki ustreza kriterijem:
- V sebi nima 6 in 9
- Je večja kot 300
- Ima več kot 4 števke
- Mora biti sodo število
- Vsota števk je 10
Ti namigi so prihajali postopoma in proti koncu je bilo le še 10 možnosti. Program je to sam izračunal in prikazal. Če bi poslal kakšno svojo številko, ki jo je program izračunal, bi verjetno lahko zmagal … Ampak nisem. Zakaj nisem? Ker sem shy.

Program lahko prenesete tukaj.
Program klepet – 24. 11. 2017
Program za klepet sem napisal v prvem letniku srednje šole v VB.NET. Omogočal je skupinski klepet, pošiljanje datotek, profile in zasebni klepet z emoji ikonami »počutim se«. Vsak uporabnik je lahko izbral emoji, ki je opisoval njegovo počutje.

Za delovanje je uporabljal FTP povezavo, za skupinski klepet pa datoteko klepet.txt. Brez podatkovne baze. Vse je delovalo preko file systema in FTP povezave. In če danes pogledam programsko kodo, se vidi, da nisem vedel prav veliko o tem. Zasebni klepet je deloval tako, da se je naredila datoteka “uporabniško+uporabniško.txt”, ki je vsebovala zaseben pogovor.
Program seveda ni nihče uporabljal. Sem ga pa pokazal nekaj sošolcem, ki so bili nad njim precej pozitivno presenečeni.
Program je še vedno dostopen in deluje. Tukaj ga pa lahko prenesete. Razširite .zip datoteko v novo mapo in zaženite Klepet kot administrator. Nato se lahko registrirate.
Nikigre brskalnik – 21. 10. 2016
Moj prvi delujoči program je bil brskalnik, poimenoval sem ga Nikigre brskalnik. Imel je priročno okno za zapiske, kasneje tudi zavihke, bližnjice in nato še Chromium brskalnik za hitrejše in boljše brskanje. Verjeli ali ne, ta brskalnik sem kar nekaj časa uporabljal kot svoj primarni brskalnik.

Projekt sem opustil. Ne vem zakaj…
Prensete ga lahko tukaj.
Koda za preverjanje posodobitev
Kot zadnjo stvar želim svetu pokazati kodo, ki preverja posodobitve v aplikacijah, napisanih v C#. Spodnjo kodo sem napisal leta 2015 in je precej slaba, vendar je to moj signature move pri ustvarjanju aplikacij, ki preverjajo posodobitve.
private void posodobitev()
{
string nova_verzija;
string stara_verzija;
stara_verzija = XX.Properties.Settings.Default.ver;
string c, d;
int b, a;
string address = "http://dev.nikigre.si/XX/VER.txt";
WebClient client = new WebClient();
StreamReader reader = new StreamReader(client.OpenRead(address));
nova_verzija = reader.ReadToEnd();
c = nova_verzija;
d = stara_verzija;
nova_verzija = nova_verzija.Replace(".", "");
stara_verzija = stara_verzija.Replace(".", "");
b = Convert.ToInt16(nova_verzija);
a = Convert.ToInt16(stara_verzija);
if (a >= b)
{
if (System.IO.File.Exists("Updater.exe"))
{
try
{
System.IO.File.Delete("Updater.exe");
}
catch (Exception) { }
}
}
else
{
MessageBox.Show("Na voljo je nova verzija XXX! Aplikacija se bo izklopila in posodobila.");
File.WriteAllBytes("Updater.exe", XX.Properties.Resources.Updater);
Process proc = new Process();
proc.StartInfo.FileName = "Updater.exe";
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.Verb = "runas";
proc.Start();
Environment.Exit(0);
}
}
Funkcijo sem sicer prilagodil za vsako aplikacijo posebej, vendar so vse sledile temu modelu in natančnemu formatu verzij.
Za konec
Če ste prebrali vse do sem … vau. Lahko rečem le hvala! 😊 Nisem vedel, da koga dejansko zanima kaj o mojih projektih. Vedno sem si želel napisati nekaj takega, da bom lahko čez nekaj let pogledal na svoje začetke programiranja in svoje projekte, na katere sem bil res ponosen.
No, zdaj mi pa že počasi zmanjkuje besed. Ne vem več, kaj naj napišem … Hvala še enkrat in imejte prekrasen dan, večer, jutro ali karkoli. 😉
