Přes prázdniny jsem vyzkoušel snad všechny různé knihovny pro OpenGL
či DirectX založené na různých jazycích například Ogre3D (C++), Monogame
(C#), lwjgl (Java), heaps (Haxe), libGDX (Java), OpenTK (C#) ale u žádné
knihovny jsem nebyl 100% spokojen, jelikož jedna nemá pořádnou dokumentaci,
u druhé nefunguje metoda google u třetí pro jistotu nejsem ani schopen
spustit hello world další je zase až moc low-end ... Prostě hrůza takže to
nakonec vypadalo že zůstanu u Monogame nebo u libGDX ale pak mě napadlo ...
TypeScipt + WebGL knihovna (BabylonJS) + Electron = super kombinace všeho co
potřebuji.
Možná to zní šíleně ale opravdu jsem opět skončil u webových
technologií ... S BabylonJS jsem pracoval již dávno ale to jen v rámci webu
takže nezačínám od úplné nuly což je další + tohoto řešení. Sice
mám trochu obavy co se výkonu týče (přece jenom C++ a JavaScript je na tom
trochu jinak) ale co jsem zatím dělal testy - na slabším PC (asus
transformer book t100tam) se FPSka drží na stabilních 60 - FPS lock (dobře
zatím ten projekt není moc složitý, ale to nebude ani když bude
dokončen).
Další otázka byla a co protekce kódu? Electron momentálně zdrojový
kód nijak neskrývá, jedině lze kód zabalit do asar archivu který jde
samosebou přes NodeJS jednoduše rozbalit avšak je to lepší než-li nic.
Takže jsem začal hledat řešení jak nějakým způsobem zabezpečit
JavaScript, proti nějakému chápání kódu a při velkém štěstí zamezit
úpravy což není nijak možné, jelikož kdykoliv může kdokoliv Electronu
předhodit jiný frontend toto mi ale nijak moc nevadí pokud Electronu někdo
podhodí jiný frontend tak se prostě zobrazí jeho frontend a už to nebude
mít nic společného s mojí aplikací.
Takže sem se spíše zajímal o znemožnění čitelnosti a pochopení
kódu. Samosebou již delší dobou znám obfuscatory a jejich principy avšak
je to dostačující? Z určitého pohledu ano, protože když se to vše
prožene obfuscatorem, všechny soubory se hodí do jednoho a proběhne
minifikace tak to již tvoří poměrně slušnou ochranu a popravdě by se mi s
takovým kódem nechtělo moc pracovat je jasné, že i toto lze po nějaké
stránce slušně obejít například pomocí JavaScript debuggeru ale jak jsem
již zmiňoval u asar archivu, je to rozhodně lepší než-li nemít kód
chráněný nijak.
Ostatně když se na to podívám z druhé stránky tak Java i C# se v
dnešní době dají decompilovat a výsledek je potom podobný jako u
JavaScriptu avšak co jsem slyšel tak když se C# či Java řádně obfuscuje
tak je téměř nemožné s kódem dále nějak pracovat ale jak jsem již
zmiňoval v případě JavaScriptu je to podobné.
Vývoj mé aplikaci nyní probíhá až nečekaně dobře a to je hlavně
zásluhou TypeScriptu a aktivní komunitou okolo BabylonuJS s jediným problém
s kterým jsem se zatím potýkal byl hrozně pomalý start aplikace -
respektive Electronu to jsem vyřešil že jsem si prostě udělal tlačítko na
reload frontendu avšak mi v hlavně stále strašilo proč sakra Electron
startuje tak dlouho když obyčejný chrome startuje tak rychle ... A pak mi to
došlo ... Avast! ... Avast! zkrátka mou aplikaci při každém startu
kontroloval jelikož není nijak podepsaná, tento problém jsem jednoduše
vyřešil tím že jsem mojí aplikaci přidal do listu výjimek a najednou bylo
vše v pořádku.
Na závěr bych chtěl dodat, že dnes v JavaScriptu vytvoříte téměř
všechno a někdy i jednodušeji než-li na jakémkoliv desktop jazyku, čímž
nechci říkat že C# či Java jsou špatné ba naopak C# je úžasný jazyk tak
stejně jako Java ale prostě zrovna v tomto ohledu mi JavaScript vyšel na
nejlepší řešení .
Jinak kdyby někoho zajímalo co vlastně dělám tak se jedná o primitivní
prototyp strategické hry založené na opravdu jednoduchých principech ... Pro
celý vývoj využívám BabylonJS (WebGL knihovna zaměřená na herní vývoj), Socket.IO (networking -
multiplayer), TypeScript, Electron, SCSS (UI - některé UI prvky jsou tvořené přes WebGL na
2D canvas a některé přes HTML a CSS).
Hm, od včerejška mám nějakou smůlu, včera (2.8) mi v iPhonu jen tak
přestala fungovat SIMka (no mohlo to být horší - taky se mohla rozhodit
čtečka SIMky v iPhonu ale naštěstí ne ...) a dnes (3.8) mi jen tak
přestala fungovat klávesnice ... Docela se bojím co se stane zítra ...
Zazvoní u nás BSA s tím že mám v PC nelicencovaný winrar? ... Vím nestalo
se mi nic hrozného ale
nejsem zvyklí na to že mi jen tak přestanou fungovat věci .
Hm k videu jsem se tehdy již nedostal avšak nevidím v tom problém, co
jsem dříve jednou experimentoval s web kamerou v prohlížeči tak to nebylo
nic složitého stačilo by streamovat data z webky a posílat je stejně jako
zvuk, druhý uživatel by si jen dané data vyrenderoval v canvasu. - Electron
umožňuje vytvářet multiplatformní desktop aplikace pomocí html, css, js
tedy frontend a nodejs jako backend (systémové práce se soubory atd s tím
že z frontendu máš api k backendu) - proto canvas.
Na Visual Studio to tak skoro mať nebude... Visual Studio je vyvíjané
niekoľko rokov, je to obrovské IDE z neskutočným množstvom možností... A
.NETáci naňho pravdepodobne neprejdu...už len z princípu. Skôr to pomôže
potencionálnym záujemcom o C# z radov PHPkárov, prípadne Javistov atď. -
tých, ktorý sú zvyknutí na menší komfort...
Ale notak, jedna z nejlepších scének epizoda #200
Vypadalo to asi nějak takhle: Mitchell: Četl jsem všecha hlášení z misí Carter: Né tak docela, nečet si <nějaký číslo> Mitchell: O čem je? Jackson: To ti nemůžeme říct. Mitchell: Jak nemůžete? Mám nejvyšší bezpečnostní
prověrku! Carter: Prostě nemůžeme. Vala: A mě můžete? Carter: Jo. Týká se to našeho návratu do roku 1969. Mitchell: To se mě netýká, já se narodil o necelý rok
později. Jackson: Ve skutečnosti přesně o devět měsíců
později. Mitchell: Cože? Carter: Toho sis musel všimnout, Jack se o tebe vždycky
nějak hodně zajímal. Mitchell: Jack? Jack O'Neil? Teal'c: Vskutku Carter: Nedostal ste se do programu 302 nebo SG1 nějak snadno
díky jemu? Vala: O'Neil je Mitchelův otec? Mitchell: Cože?! Jackson: Všechno to najednou dává smysl, žejo?
Nejspíš si z něj dělali srandu, ale už jenom ta představa...
Něco podobnýho sem dělal, když jsem mergoval dvě části projektů. V
obouch byla jedna funkce dělající jednu a tu samou věc, ale v každý
části jinak pomenovaná. A než to všude nahrazovat, tak sem radši tu druhou
přepsal, aby volala tu první
Jetbrains zavedl nový systém placení , člověk si může měsíčně
/ ročně platit nějaký produkt a když si jej bude platit už rok získá
nastálo verzi kterou používá, a když si nadále bude platit toto
předplatné bude dostávat aktualizace, už jsem se bál že to nepůjde už
jen tak koupit a že to bude model typu "dokud si to platíš do té doby to
máš" jako má například Adobe , takže abych to
shrnul když si člověk koupí na 1 rok předplatné získá verzi která bude
jako poslední nejnovější v tom roce s tím že když si dále bude platit
bude dostávat aktualizace .
Neaktivní uživatel Hm, myslím si že je to celkem jedno, protože ten formulář
odešle uživatel přes ajax, ajax tam je a ikonka uživatele taky, nevím proč
bych tam měl dávat html .
No jak vidím docela hodně lidem se líbilo video které jsem sem nedávno
dal . Proto koho by později
zajímalo mít přístup jako beta tester možná i něco víc . Napište si sem pod tento
příspěvek .
Neaktivní uživatel Pokud vím sám používá nodejs(nebo něco podobného) a
snad nějakou knihovnu, no ale nejsem si jist jestli knihovnu, ale párkrát
jsem si s ním o tom psal.
Tak jsem si udělal znova, po dlouhé době znalostní testy z html&css,
js, opp. Html&css a js dopadli na 88, oop jen na 69 ale stejně je to dobré, teď
si jen počkám na php do 25.4 a udělám i ten .
Třeba, ale je tu ještě unity web player, a spousta dalších věcí.
Narazil jsem na pár enginů které fungují na JS, a jsou OpenSource. A vypadá
to zajímavě.