2021. március 13., szombat

Mit programozzak? (ötletek keresése 2.) és a háttér változása

A "Mit programozzak? (ötletek keresése 1.) és háttér" című blogbejegyzésem óta elég sok változás történt a siker-terveimben. Például, általában nem volt kedvem sakkozni, így a sakk újabban már a terveimben sem szerepelt. Persze lehet, hogy néha-néha sakkozok majd a neten (ha mégis lesz kedvem hozzá), és/vagy elmegyek majd a kiskunfélegyházi nem ÉLŐ-pontos sakkversenyekre, ha a koronavírus-járvány alábbhagy... de komolyabb szinten valószínűleg nem fogok versenyezni (a versenyekkel az lenne még a gond, hogy mi van, ha közben el kell mennem WC-re gyomorideg miatt). Tehát a sakk és a zene már nem szerepelnek a siker-terveimben (de néha még kísértenek: ha más számítógépes játékokban nyerni tudtam, akkor a sakkot miért ne próbálnám meg újra). Viszont az íráshoz több kedvem kerekedett, és 2021-ben már indultam is egy pályázaton. A következő internetes helyeken szoktam ingyenes irodalmi pályázatokat keresni (sajnos sok közülük fizetős, azaz nevezési díjas):

pafi.hu

intercompetition.com

dystopianstories.com

Ezek közül engem főleg azok a pályázatok érdekelnek, amelyekhez nem kell túl sok szóból álló művet beadni (pl. microfiction / flash fiction, ötlet, haiku, szlogen), és/vagy jó sok pénzt lehet velük nyerni (pl. esszé, dráma). Ilyen pályázatokat néha máshol is lehet találni (pl. hírekben, webes kereséssel, vagy több éve rendszeresen megrendezett versenyeket, mint pl.: Bulwer-Lytton Fiction Contest, Poetry Magazine Prizes, Salvatore Quasimodo Költőverseny). Sajnos még szűkebbé válik a megfelelő irodalmi pályázatok köre, ha elolvassuk a részvétel jogi feltételeit (valamint a versenyeket meghirdető honlapok felhasználási feltételeit). Mindazonáltal már jónéhány éve figyelem az irodalmi pályázatokat, és minden évben szokott lenni néhány, amiken tényleg érdemes lehet indulni. Ezekkel valószínűleg fejleszthetem az írói képességeimet, és így később talán jobb könyvet írhatok. Na de térjünk a lényegre...

Sajnos programozni sem volt kedvem az utóbbi időben... talán azért, mert nem volt elég jó ötletem arra, hogy mit érdemes programozni. A korábbi blogbejegyzésemben említett "közösségi oldal" és "kvíz motor" azért nem tűnnek jó ötletnek, mert csak akkor érnek valamit, ha fel vannak töltve felhasználókkal vagy adatokkal. Ezek nélkül semmi hasznunk a használatukból, én viszont valami olyat szeretnék programozni, ami legalább valakinek (elsősorban nekem) mindenképpen hasznos. Én pedig igazából jól megvagyok a korábbi blogbejegyzésemben említett többi program nélkül is. (Egyébként a "közösségi oldal" és a "kvíz motor" programkódja egy idő után valószínűleg elavulna, miként a webfejlesztésben szinte bármi, ezért nem biztos, hogy hasznos lenne akkor sem, ha később meggazdagodnék, és fel tudnám telepíteni élesben.) Jöhet tehát az ötletelés neheze: mit lehetne még programozni?

Egy dolog jutott csak az eszembe: megpróbálhatnék írni egy olyan mesterséges intelligenciát, ami a matematika világában működik (tehát nem neuronháló, amit a nagy cégek úgyis jobban kihasználhatnának azzal, hogy nagy mennyiségű adattal etetik), és talán segíthet bebizonyítani pl. a Goldbach-sejtést. Arra gondoltam tehát, hogy elkezdhetnék írni egy CAS-hoz (Computer Algebra System, komputeralgebrai rendszerhez) hasonló matematikai szoftvert (a korábbi munkahelyeimen sok ilyet láttam), azután megpróbálhatnám ezt képessé tenni egyszerűbb, majd bonyolultabb matematikai bizonyításokra. A matematikai szoftvert hasonlóan építhetném fel, mint ahogy a matematika felépül Euklidesz óta (alapfogalmak, definíciók, axiómák, lemmák, tételek). Egy osztály lehetne benne például a természetes számok osztálya, és mivel itt a bizonyítás a lényeg, nem foglalkoznék közelítő és numerikus számításokkal, azaz a programozási nyelvek "valós szám" (float, double) adattípusával sem (legalábbis egyenlőre). Szerintem a legalkalmasabb nyelv a szoftver megvalósítására a C++ lenne (ez talán nem avul el olyan gyorsan), amit nem csak Linuxos vagy Windowsos gépi kódra, hanem Internet-böngészőben futó WebAssembly / asm.js-es kódra is le lehetne fordítani (lásd: emscripten). A prodzsekt megvalósítása tehát a webfejlesztői képességeimet is fejleszthetné az asm.js / WebAssembly jobb megértésével (pl. hogyan működhet együtt a JavaScript és a C++).

Egyébként nem vagyok meggyőződve arról, hogy ez jó ötlet: ha nem sikerül, akkor talán ugyanúgy hiába csinálnám, mint a tömörítő programot. Azaz, ennyi erővel a tömörítő programot is megkísérelhetném megcsinálni a Hutter Prize-ra. Másrészt a mesterséges intelligencia fejlesztése etikai kérdéseket is felvet. Szóval, továbbra is nyitott vagyok új ötletekre is, de jó lenne már elkezdeni a programozás gyakorlását, és jobb ötlet híján valószínűleg ezt a matematikai mesterséges intelligenciát fogom megpróbálni, mert a programozási ötletek közül jelenleg ehhez lenne a legnagyobb kedvem... de vajon elég sok kedvem lesz hozzá ahhoz, hogy valóban ezen dolgozzak?

Nincsenek megjegyzések:

Megjegyzés küldése