Odlučo sam da objavim nešto što razvijam već duže vreme… nije baš native Mac aplikacija za sada (možda bude jednog dana); pošto je pisano u JavaScriptu, ali može da otvori u Safariju i koristi (kao neka vrsta web aplikacije, samo što nije potrebna stalna veza sa internetom jer sve radi i offline).
Kada je Opera dobila widgete, napravio sam bio widget za preslovljavanje (transliteraciju) ćirilice u latinicu i obratno, koji sam nazvao ‘Preslovljivač’... i vremenom sam to unapređivao… dodavao neke izuzetke (na primer, da ‘dž’ u ‘nadživeti’ ne postane ‘џ’ kada se reč preslovi i slično)... nameravao sam i neke nove funkcije da dodam kasnije, neke naprednije opcije za podešavanje (na primer, da korisnici sami podese listu reč koje ne bi trebalo preslovljavati, da sami podese koje bi reč kako trebalo preslovljavati, pa opciju da se prilikom preslovljavanja ne diraju, adrese web sajtova, e-mail adrese, HTML tagovi, CSS i JavaScript kôd… i slično što nema smisla preslovljavati na ćirilicu)... ali Opera je onda bila najavila da će da ukidaju widgete i da će da pređu na ekstenzije, a meni nije bilo smisla da to radi kao ekstenzija (jer sam to bio zamislio kao zasebnu aplikaciju, pošto su widgeti za Operu bili kao zasebne aplikacije koje su samo u pozadini koristile Operu) tako da od toga nisam pravio ekstenziju za browsere.
Dok su widgeti za Operu bili aktuelni, widget je imao na hiljade downloadova… sećam se kako su ga neki hvalili da je brži nego onaj MS-ov dodatak za MS Office, kako su ljudi preporučvali taj widget ljudima iz Ex-Yu država gde više ne uče ćirilicu da bi mogli da čtaju članke sa srpskih sajtova na ćirilici… bilo je i komentara da pojedine reč koje ostali programi za preslovljavanje ne preslovljavaju ispravno moj widget ispravno preslovljava (neke reč gde, na primer, ‘nj’ ne bi trebalo da bude ‘њ’, nego ‘нј’); mada ne znam koliko su oni programa za preslovljavanje probali kada su testirali to, al’ ja sam se potrudio da dodam što više reč kao izuzetke gde ‘dž’, ‘lj’ ili ‘nj’ ne bi trebalod a postanu ‘џ’, ‘љ’ i ‘њ’. Tako da, imao je dosta pohvala, a verovatno bi bio i popularniji da sam tada podržavao nešto osim Opere (koja baš i nije bila nešto mnogo popularna).
Bio je i članak u Svetu Kompjutera: http://www.sk.rs/2010/07/skpd15.html
Mada tu pominju da neke sitne dodatne mogućnosti (za sređivanje duplih razmaka, umetanje razmaka nakon interpunkcije i zamena običnih navodnika domaćim navodnicima) kod njih nisu radile, nisam siguran da li je to bio neki bug u toj verziji (tada sam valjda pravio neke velike izmene kôda da bih dodao neke dodatne mogućnosti) ili je bilo zbog toga što sam bio napravio da te opcije budu podrazumevano isključene… ili su možda testirali sa nekim tekstom koji je umesto običnih ‘ravnih’ navodnika (poput onih koji se koriste u programiranju) imao one navodnike kao šestice i devetke kojima neki programi automatski menjaju obične navodnike (nisam siguran da li sam tada obuhvatio i te navodnike ili samo obične).
Skoro sam uzeo da doradim to što sam pravio ranije i da sredim da radi kao normalna HTML stranica da bi moglo da se koristi kao neka vrsta web aplikacije u Safariju… sve napredne opcije za podešavanja i dodatne funkcije koje je widget trebalo da dobije sam napravio, plus još neke dodatne mogućnosti, ali sam odlučo da samo izbacim opciju za pretraživanje teksta (koju pominju u onom članku iz Sveta Kompjutera da je bila najavljena); pošto to već ima u Safari (CMD+F); pa da ne dupliram funkcije… widgeti nisu imali tu opciju, pa sam zato hteo da pravim i to tad, ali to više mislim da nema smisla.
Performansama sam uglavnom zadovoljan… na mom MBP kad sam isprobavao sa tekstom od oko 12 miliona znakova, uz razne uključene opcije (da proverava šta je tu HTML i da to ne dira, da proverava razne izuzetke… i slično); trebalo je možda oko 15 sekundi da se preslovljavanje odradi… što mislim da je sasvim OK, pogotovo što Safari koristi samo jedno jezgro za to… jeste da bi moglo nekoliko puta brže da radi ako bi se napravila native Mac aplikacija za to koja bi koristila sva jezgra, ali mislim da to nije previše bitno jer većina korisnika verovatno neće da preslovljava cele biblioteke knjiga, pa da im je potrebno da koriste sva jezgra za to… za kraće tekstove, naravno, radi mnogo brže (na primer, neki prosečan članak bi bio skoro istog momenta preslovljen) i brže radi kada se isključ proveravanje raznoraznih izuzetaka. Ali Safariju kao aplikaciji izgleda da je iz nekog razloga potrebno oko 15 sekundi kada se toliko tekst (od oko 12 miliona znakova) kopira u Safari da odradi kopiranje bez obzira da li se kopira u taj Preslovljivač što sam pravio ili na neku stranicu… ispada da obično kopiranje u Safari traje koliko i preslovljavanje sa raznim uključenim opcijama za proveravanje izuzetaka… ne znam ako prijavim Appleu to kao bug koliko bi im vremena tebalo da srede to i da li bi sredili to u nekoj bližoj budućnosti, obzirom da neki prosečan članak verovatno nema više od možda nekih 2000 znakova (pa Appleu verovatno ne bi bio prioritet da ubrzava performanse kopiranja nekog teksta koji je veliki kao nekoliko hiljada prosečnih članaka).
Interfejs sam totalno redizajnirao, pošto to više nije widget, a i pošto su se standardi kako bi alikacija koja se smatra lepo dizajniranom trebalo da izgleda dosta promenili (to je bilo u vreme dok je Windowsa XP još bio aktuelan, mada mi je za dizajn widgeta više bila inspiracija izgled tadašnjeg OS X-a, samo sa nešto drugačjim bojama da se to slaže sa izgledom tadašnje Opere).
Imam još da sredim neke sitnice oko nekih naprednih opcija za podešavanje (liste izuzetaka rade već sasvim lepo, ali hoću da napravim da budu ‘idiot proof’ što se kaže, da neki korisnik ne bi dodavanjem pravila za preslovljavanje koja se direktno kose sa postojećim pravilima ne bi izazvao neke greške u preslovljavanju, pa da ispadne da program buguje… na primer, ako bi neko dodao da neće da preslovljana ništa što počnje na slovo M, a onda da doda da neće samo da preslovljava ‘Mac’ kao zasebnu reč... takve ‘konflikte’ razmišljam kako da razrešim na neki user-friendly načn… ili možda da izbacim opciju da se koristi zvezdica kao zamena za nula ili više znakova do kraja reč, nego da korisnici definišu tačno reč koje hoće… to sa zvezdicom sam bio ubacio da bi neko mogao lakše da obuhvati različte oblike iste reč, to jest da stavi samo ‘piše*’ umesto reč ‘pišem, pišeš, piše’... ali sam nakon toga osmislio precizniji načn da se to obuhvati, tako da, na primer, umesto ‘pišem, pišeš, piše’ sada može da se stavi ‘piše(,m,š)’ da se obuhvate samo reč ‘piše’, ‘pišem’ i ‘pišeš’, a ne sve što počnje na ‘piše’.
Pa ako je neko zainteresovan da testira to kad sve završim, nek se javi na temu 😊
Mada je preslovljavanje već dobro istestirano još dok je to bio widget… dobro je istestiran i kôd koji ima veze proveravanjem da li je nešto HTML kôd, iako widget tu funkciju nije dobio, ali sam bio napravio jedan ‘User Script’ za Operu tada za preslovljavanje HTML stranica u donjem levom uglu stranice, pa je to zasnovano na tome… i osim one opcije oko navodnika koja je možda bugovala (koja će biti unapređena da radi sa raznim vrstama navodnika kada objavim ovo što sam pravio, tako da ne bi trebalo da više bude nekih problema oko toga); nisu mi ljudi prijavljivali neke bugove… ali zanimalo bi me da čujem kako se novi interfejs ponaša na iPadu (za iPhone ne mogu sad prilagođavam… probao sam, ali mi se ne sviđa kako izgledaju podešavanja na iPhone modelima sa manjim ekranima u vodoravnom režimu, a ne mogu sad samo za iPhone da pravim poseban interfejs… mada bi na ovim novijim iPhone modelima sa većim ekranom verovatno bio OK).
Nameravam da to objavim kao nekakav ‘freeware’ (pošto mi je jasno da većina naših ljudi nema običaj da kupuje programe, ni kad su jeftini); ali uz određene mere zaštite da neko to ne bi stavio na neki sajt bez mog odobrenja (pošto može da radi kao web aplikacija)... tako da ću da koristim neki obfuscator da JavaScript kôd ne bude lako razumljiv (kao Google što radi sa JavaScriptom na njihovim stranicama… teško da će neko da razume šta je šta tu ako uzme da gleda kôd); da neko ne bi mogao lako da modifikuje kôd bez mog odobrenja.
Mislim da ne bi bilo loše i ako bi se to nekako ‘upakovalo’ u aplikaciju, da se pokreće kao zasebna aplikacija nezavisno od Safarija… ne znam da li bi na jednostavan načn nekako moglo da se zapakuje sa FireFoxovim engineom (pošto on izgeleda da brže radi kopiranje ogromnih tekstova nego Safarijev engine); ali da se nekako isključe ona kao ‘upozorenja’ kada JavaScript radi duže od nekoliko sekundi jer mi se to pojavljivalo u FireFoxu kada sam uzeo da isprobavam preslovljavanje ogromnih tekstova. Ako bi moglo to da se odradi na jednostavan načn, onda bi moglo da se napravi nešto što bi jako lepo radilo kao da je native aplikacija i na OS X i na Windows i na Linuxu.
Nego… ne znam da li ima načna da nekako zaradim nešto od toga što sam pravio ovo… ne mora puno, al’ bar da imam i ja nešto od toga što razvijam to… bar delimično troškove za internet da pokrijem :D ... jer to nije nešto što je napravljeno na brzinu za sat-dva… za neke funkcije sam danima razmišljao kako da ih osmislim da rade na user-friendly načn… pa dok sam osmislio razne regularne izraze za izdvajanje delova teksta koje ne bi trebalo preslovljavati… pa dok sam isprobao to da sve radi lepo… pa sam isto dosta razmišljao i kako novi dizajn da osmislim i isprobavao razne ideje, da to ne izgleda kao neka sasvim obična web stranica, nego da bude lepo… itd… itd. Tako da sam dosta vremena i truda uložio u to, da to bude jedan stvarno ozbiljan program za preslovljavanje, iako je u JavaScriptu.
Trebalo bi da uskoro bude sve završeno… pa kad završim, javljam 😊