Dziś ukończyłem protokół lokalnych baz danych nosql (json) wraz z helperem. Obsługa polega na otwarciu lokalnej bazy danych (lub utworzeniu, jeśli jeszcze nie istnieje) poprzez użycie któregokolwiek z możliwych wywołań API (get, set, sync) - za pierwszym otwarciem dane załadowane zostają do pamięci i pozostaje do zamknięcia aplikacji hosta (lub wywołaniu API: close), przez co zapis i odczyt z bazy staje się szybki. Zacząłem zaraz po tym tworzenie helpera z obsługą obiektu
@lukpep: ten typ baz danych ma sluzyc wylacznie aplikacji do zapisywania jakiegos stanu persystentnego, tj. ostatnia konfiguracja przed wyjsciem z aplikacji, czy tez save'y z gier - obsluga baz danych z prawdziwego zdarzenia dojdzie w przyszlosci (chociazby dla tego musi, zeby aplikacje serwerowe wapp mogly przechowywac rozsadnie swoje olbrzymie zbiory danych).
Wiem, że trochę mało informacji, ale ten pomysł się pojawił nagle i chciałbym dowiedzieć się, co o tym myślicie: (wiem też, że wołam #webdev, którego uczestnicy mogą w ogólę nie wiedzieć o czym piszę, jeśli nie widzą mojego spamu na #programowanie, ale mimo wszystko każde zdanie, każde pytanie może mi pomóc - przepraszam i zapraszam!)
Tak sobie myślę nad tym, jak wygląda już teraz platforma pod względem architektonicznym i doszedłem do wniosku, że z jej pomocą mogę stworzyć środowisko dla przeglądarek next-gen. nowy protokół o nazwie wapp (web application) do obsługi aplikacji natywnych tworzonych na platformę - jeden z target buildów dawałby możłiwość budowania paczki, które przeglądarka uruchamiałaby w kliencie protokołu wapp. np. wchodząc na przeglądarce obsługującej protokół wapp na adres: wapp://domain.com/module.wpkg przeglądarka rozpoczynałaby handshake z serwerem wapp (protokół o formacie podobnym do http, tyle że dostosowany pod zasysanie paczek lub plików, które nie zostały zcache'owane), podczas handshake serwer wysyła listę plików kodu i zasobów modułu, klient sprawdzałby co ma w cache'u, decydował które rzeczy ściągnąć i po zassaniu plików odpalałaby się aplikacja w odseparowanym od systemu środowisku platformy, na
@PsichiX: no to jeszcze Ci zadam parę pytań zanim pójdziesz spać 1) kiedy planujesz premierę swoich języków (jaeger, kajilu i intuicio, dobrze pamiętam?)? chcesz je wypuścić razem, czy osobno? 2) planujesz jakieś ułatwienia do robienia unit testów, czy zdajesz się w tym aspekcie na twórczość społeczności? 3) zamierzasz sam to wszystko rozwijać? czy (jeśli, a tego Ci życzę) jeśli się to rozwinie planujesz zrobić jakiś większy zespół? a może już
@kuskoman: 1. koniec roku to przewidiwalna data ukońćzenia pierwszej stabilnej wersji całej platformy (czyli w tym na pewno toolsety dla assemblera Intuicio oraz Jaeger - Kaiju to będzie większy projekt na nowy rok ze względu na wymóg stworzenia profesjonalnego i bardzo rozbudoanego toolsetu, skoro ma być do użytku w grach); 2. celuję w rozwiązania unit testowe zintegrowane z platformą, nie mniej tak jak wszystko w tym projekcie - dzięki temu,
protokol http zrobiony, jak sie obudze to dorobie obsluge danych zasobu i potem pewno websockety dorobie, a potem juz tylko modul natywny mediow i gra ^^
@AliceCoper: nie jeden, a kilka - rodzina języków wyspecjalizowanych do konkretnych zadań. Jaeger do obsługi powłoki shella i matematycznych obliczeń, Kaiju do pisania gier ukierunkowanych na wydajność i zaawansowane zarządzanie zasobami, inne w planach - a cała ta rodzinka kompiluje się pod spodem do assemblera Intuicio, który to obsługiwany jest jako shellscript, kompilowany do binarek, a nawet do asm.js-a na przeglądarki. Ah, no i oczywiście da się ich używać jako
@AliceCoper chociażby tym, że cała platforma, toolset, wszystko jest designowane tak, by pd podstaw zapewnić identyczne zachowanie i wykonywanie kodu na desktopach, mobilkach i webie. Takie prawdziwe spełnienie mokrego snu: "code once, run everywhere"
Dostęp do wszelkich zasobów (pliki, zapytania http, sockety, cokolwiek co jest zasobem) zdobywa się poprzez wbudowany w platformę Intuicio manager zasobów - pozwoli to na ustandaryzowanie komunikacji aplikacja<->zasób, jak i aplikacja<->aplikacja.
Na obrazku przykład z protokołami lokalnymi (aplikacja zażąda obsługi tych wypisanych w manifeście w protocolsLocal), a później będzie też można używać protokołów globalnych (między-aplikacyjnych), jak tylko skończę robić demona/serwis do obsługi tego. Ponad to jedno z zastosowań tego,
Ohayo #gamedev! W ramach testu platformy #intuicio (którą robię do mojej konsoli growej na Rpi3 i inne platformy: desktop (win, linux (distra debianowe), Mac os X, Android i iOS oraz Web na WebGL), chcę stworzyć grę multiplayer o walce marines vs. kosmici, w której główną cechą mechaniki ma być czasowa zmiana drużyny przez wszystkich graczy, tj. co minutę-dwie każdy gracz zamienia się miejscami z innym graczem z
@PsichiX: Sam pomysł jest ciekawy, ale sposób w jaki planujesz go wykonać jest bardzo słaby. Po pierwsze to jaki sens ma w tym wypadku klimat "marines vs aliens"? Skoro są dwie tak różne strony konfliktu to gracz raczej powinien się wczuwać w daną nacje. W dodatku każdy nowy gracz się będzie mylił i po zmianie drużyny strzelał do swoich przez pierwsze kilka sekund z przyzwyczajenia - przypuszczam że o to
@PsichiX: po pierwsze primo - troche za duży chaos po drugie prime - wykonywanie celów drużyny, jeśli za chwilę będziemy w drugiej nie ma sensu, byłaby straszna patologia bo nie wiadomo co robić, czy czasem nie przegrać specjalnie, itp.
Gdzie są wszyscy? Dlaczego nie widzimy śladów pozaziemskich cywilizacji? Czy istnieje Wielki Filtr, który nie pozwala rozwinąć się życiu do poziomu umożliwiającego kontrolę nad galaktyką? Czy jesteśmy rzadką cywilizacją, która przetrwa, czy jedną z wielu, która zniknie? Oryginał [EN] w powiązanych.
@Antybabilonia księżyc powstał na wskutek kolizji ziemi i innej planety wielkości marsa w jej początkavh formowania - część masy zawarta jest w ziemi, a reszta to księżyc.
mysle nad rozwiazaniem dostepu do zasobow, tj. ogolne podejscie do URI: zrobic manager protokolow, ktory bedzie pomostem z serwisem (polaczenie socketowe?) do obslugi zadan URIm, np: apka A rejestruje modul, ktory obslugiwac ma protokol http, a aplikacja B protokol file. definiowane one beda w manifescie. aplikacja C moze robic zapytania:
string content = ResourcesManager.callSync("file://local-storage/test.txt"); tutaj resource manager szuka zarejestrowany pod protokol file modul i on dokonuje operacji na URI, tj. otwiera plik i czyta go w tym przypadku, po czym zwraca go (pseudokod nie pokazuje, ze mozna po prostu otrzymac handler na plik).
Woah! Package manager działa całkowicie! ^^ Musiałem zrefaktoryzować toola do uruchamiania skryptów i4s, by sprawdzał, czy jeśli za input podamy ścieżkę do folderu (miast skryptu), oraz w tym folderze znajduje się 'module.json', to doda ścieżki do dependencies wylistowanych w tym module. (。◕‿‿◕。) No to wracam robić moduł natywny do obsługi mediów (czyli wrapper SFMLa), który użyję w gierce testowej napisanej w Jaegerze :D
Musiałem zrefaktoryzować toola do uruchamiania skryptów i4s, by sprawdzał, czy jeśli za input podamy ścieżkę do folderu (miast skryptu), oraz w tym folderze znajduje się 'module.json', to doda ścieżki do dependencies wylistowanych w tym module.
To nie jest refaktoryzacja. Refaktoryzacja to zmiana kodu bez zmiany funkcjonalności
Tak tylko prostuję, bo w pracy dostałbyś zjeby za niewłaściwa terminologię.
Ohayo! Na serwerze trzymam klucze publiczne rsa w bazie danych (klucz per user) i maja one sluzyc do dekodowania danych handshake szyfrowanych kluczem prywatnym rsa, przychodzacych z klienta.
W jaki sposob zdekodowac poprawnie w php dane przy uzyciu tylko stringa z publicznym kluczem rsa?
@PsichiX: npm od strony jest niemożliwy do skonfigurowania "po swojemu" nawet w wersji Enterprise kosztującej 2000$ rocznie (no wow, w końcu można hostować pakiety u siebie), a silver support to bodajże 20k dolanów ( ͡°͜ʖ͡°).
Obsługa polega na otwarciu lokalnej bazy danych (lub utworzeniu, jeśli jeszcze nie istnieje) poprzez użycie któregokolwiek z możliwych wywołań API (get, set, sync) - za pierwszym otwarciem dane załadowane zostają do pamięci i pozostaje do zamknięcia aplikacji hosta (lub wywołaniu API: close), przez co zapis i odczyt z bazy staje się szybki.
Zacząłem zaraz po tym tworzenie helpera z obsługą obiektu
źródło: comment_NhSeyIk2U7tgGOtk529vcKCGvX8TR29e.jpg
Pobierzwapp
mogly przechowywac rozsadnie swoje olbrzymie zbiory danych).