Posty

Droga do Kubernetes (1)

Od jakiegoś czasu wchodzę głębiej w Kubernetes. Co to takiego? Otóż to taki program do zarządzania kontenerami. Teraz spytacie, co to są kontenery? Otóż kontenery to metoda na izolowanie programów od siebie. Technicznie, zakładając, że są to kontenery linuksowe, to polega to na wykorzystaniu mechanizmów linuksa takich jak przestrzenie nazw czy inne. No i układa się te kontenery na tzw. podach. I pody są w Kubernetes taką podstawową jednostką podziału. Mają własne IP nawet. Z kolei pody są położone na węzłach (nodes), które reprezentują jakby jeden komputer (fizyczny bądź wirtualny. Bo to nie musi być komputer prawdziwy). I te węzły też mają swoje IP. Dalej, różne węzły tworzą jakby taki klaster(cluster), czyli taki zbiór różnych węzłów. I są one połączone w sieć. I mogą się komunikować. Żeby ułatwić komunikacje między różnymi podami, można tworzyć różne serwisy, które będą w stanie przemapować nazwę serwisu na IP. Dobra a teraz podstawowe pytanie - na co to wszystko? Pewnie

Jak napisać silnik do gier (1)

Robię kolejny silnik do gier. Ale robię go w sposób inny niż zwykle. No bo zwykle, jak robię takie rzeczy (bo ja to już nie jeden silnik zrobiłem, nawet jeśli były to małe silniki), zajmuję się najpierw technicznymi aspektami takimi jak wydajne wyświetlanie grafiki w WebGL choćby. A teraz? No teraz właśnie uznałem, że techniczne aspekty mam już obcykane, bo nauczyłem się ich w poprzednich projektach. Teraz co robię? Ano zdbam o samą architekturę tego silnika. Żeby to dało się utrzymywać potem. Ogólnie zanim zacząłem pisać, to sobie rozpisałem to na kartce, jak to ma wyglądać, cały przepływ danych. I wygląda to mniej więcej tak: INPUT -> EVENT HANDLERS -> ACTION DISPATCHER -> STATE -> STATE DELTAS -> RENDERER Czyli najpierw jest input, jakieś zewnętrzne zdarzenie, które powoduje odpalenie kodu. Np. użytkownik wcisnął jakiś klawisz. Albo po prostu odpalił się czas na apdejt kolejnej klatki. Event handlery coś tam robią i następnie rozsyłają odpowiednie akcje (jak w

Moja przygoda z TypeScriptem

Zacząłem swój pierwszy projekt pisany w TypeScript. Będzie to silnik do gier. Dlaczego teraz? Dlaczego TS? Czyż nie byłem do TypeScripta negatywnie nastawiony? Cofnijmy się wstecz. Od kilku lat stykam się z TypeScriptem w różnych projektach i niestety nie były to przyjemne spotkania. Ciągle odnosiłem wrażenie, że w TypeScript piszą ludzie, którzy nie mają pojęcia o JS. Przychodzą tacy z ce-krzyżyka czy innej dżawy i chcą pisać w JS tak, jak pisali w swoich językach. I niestety to była prawda. TypeScript ma pewne zalety, ale jednak ludzie tego nadużywają (typowania, klas itp.). Sprawiają, że kod staje się nieczytelny i mało elastyczny. Często miałem wrażenie, że TypeScript mnie ogranicza. Znam statyczne typowanie z C++ czy Pascala/Delphi, więc powrót do niego wydawał mi się krokiem wstecz. Co się jednak zmieniło? Po pierwsze - TypeScriptu nie da się lekceważyć, bo jest mega popularny. Więc mając z nim styczność w różnych projektach, sięgałem też po dokumentację, robiłem Hell

W co idę?

Minęły dwa tygodnie od początku nowego roku. Co więc robiłem? W co chcę iść? Otóż proszę państwa ostatnio zainteresowałem się robieniem apek mobilnych. A przynajmniej eksperymentuję sobie z React Native. Mam już konkretny pomysł na aplikację, ale to będzie wymagało researchu (chcę zrobić apkę, która będzie korzystała z OCR). Myślę, że w ciągu kilku tygodni coś będę w stanie pokazać. Innym projektem, który chcę zacząć, to będzie zrobienie remake'u mojego edytora Looptile . Napiszę go całkowicie od nowa i na początku będzie w 2D. I to będzie taki jakby framework/silnik trochę, który potem będzie można użyć do robienia innych projektów. Żeby nie zaczynać wszystkiego od nowa. Tylko to już będzie projekt bardziej na miesiące. Chcę zrobić najpierw infrastrukturę. Będę korzystał ze wzorca event sourcing, żeby móc łatwo zapamiętywać różne zdarzenia w edytorze (np. zbudowanie czegoś) i potem łatwo będę mógł robić undo/redo. Skorzystam też z moich własnych bibliotek Taska i Mordux (T

Czego się nauczyłem w 2021?

Obraz
Czego się nauczyłem w 2021? No właśnie, ten post to będzie takie małe podsumowanie. No to jedziemy. Poznałem trochę Rusta. Na tyle pewnie się w nim czuję, że mógłbym zrobić w tym jakaś prostą apkę. Ale pewnie nie na tyle, żeby przejść rekrutację na Rust developera Poznałem różne techniki renderingu 3D, nauczyłem się kodzić w czystym WebGL, zrobiłem prosty silnik 3D. Poznawałem również nowe techniki renderingu i tworzenia różnych efektów używając biblioteki Three.js. Poznałem wiele zagadnień z matematyki. Zarówno tej potrzebnej do grafiki 3D, jak i ogólnie matematyki na poziomie studiów. Poznałem również wiele zagadnień z fizyki, wszedłem w temat symulacji fizycznych. No ale dopiero liznąłem temat tak naprawdę i ten cel będę realizował jeszcze w przyszłym roku. Porobiłem wiele prototypów gier i toolingu do nich, więc wiem już, jak pewne rzeczy zaimplementować, których nie umiałem zaimplementować wcześniej Liznąłem trochę Golanga Wzmocniłem swoją wiedzę backendo

Ściemy z ogłoszeń o pracę

Obraz
Oferty pracy w IT (a pewnie i w innych branżach) są pisane w specyficzny sposób. Nie pisze się prawdy, a pisze się nieprawdę i ubiera w ładne słowa. W tym poście omówię pewne występujące w ofertach naciągane formułki i co one w zasadzie mogą oznaczać w rzeczywistości. zarobki zależne od umiejętności/doświadczenia Jest to oczywista ściema. Zarobki głównie zależą od tego, ile sobie wynegocjujesz, a nie od tego, ile umiesz. Oczywiście, jak masz duże umiejętności/doświadczenie, to masz lepszą pozycję do negocjacji. Ale tylko tyle. Możesz puszyć piórka i wołać dużo, ale to i tak tylko potencjał, pozycja negocjacyjna, musisz jeszcze przekonać kogoś, żeby ci tyle dał i że faktycznie warto ciebie zatrudnić, a nie kogoś tańszego. A "wynagrodzenie zależne od umiejętności" brzmi trochę jak szukanie pretekstu, żeby komuś zapłacić mniej. atrakcyjne wynagrodzenie Jak widzę taki zwrot i brak widełek, to od razu mi się czerwona lampka włącza "oo, pewnie mało płacą, skoro ni

Nauka programowania przychodzi falami

Nauka programowania to nie jest coś takiego, że się nauczysz raz i już. No nie. Raczej to przychodzi falami. Nauczysz się czegoś i czujesz się nauczony. A potem się okazuje, że gówno, że nic wcale nie umiesz, więc się douczasz, żeby znowu umieć. Proces nauki to taka sinusoida, a raczej ileś sinusoid połączonych ze sobą, jednak z tendencją wzrostową. Coś jak ten wykres . Czyli na dłuższą metę czujemy, że nasze umiejętności idą w górę, ale na krótką metę są wzloty i upadki (albo lotki i łopatki ). Czasem czujemy, że się cofamy, mimo, że strzałka czasu idzie cały czas do przodu. Co zrobić w takim razie? Jak zachować normalność i odpowiednią perspektywę? Oto garść tipów: Pamiętaj, że twój "upadek" to tylko lokalne minimum . Czyli w dłuższej perspektywie idziesz w górę, a jedynie doświadczasz pewnych fluktuacji skilla. Wyobraź sobie, że to takie kursy walut, że może jakaś waluta iść ogólnie w górę, ale jednak jej kurs będzie się wahać na krótką metę. Czasem je