Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z paru zakątków świata przyjechali do Wrocławia, żeby się spotkać twarzą w twarz, popracować w jednym pokoju, przegadać firmowe sprawy i oczywiście napić się dobrego piwa.
Pomyśleliśmy w firmie, że fajnie by było poznać więcej ludzi z Wrocka.
Organizujemy C++owe spotkanie! Za dwa dni :) (mówiłem, że akcja spontaniczna).
Ludzie z firmy są bardzo spoko. Będzie okazja wypić parę piw i pogadać. Nie tylko o C++. Większość z nich ma spore doświadczenie w HFT, więc jeżeli kogoś interesuje ta działka, to może być ciekawie.
Trochę więcej info:
C++ meetup - Auros meets Wrocław
Auros (https://auros.global) is a set of 50ish people around the world who make money trading cryptocurrencies, using a mix of world-class C++ and Python.
It turned out that Poland is in the center of the world, and we decided to meet face to face in Wrocław this year.
Going step further - we would love to get in touch with other great programmers here, so we are hosting a spontaneous C++ meetup.
Everyone is invited! Come and hear about C++, HFT/crypto trading industry, paper plane contest in NFM and of course - drink beer and get to know each other.
We plan to do two quick (around 30 min each) C++ talks and Q&A or discussion panel with our CTO and other big brains of the company.
Let's talk in Wędrówki Pub (https://shorturl.at/bzCH3) on Monday (yes, this Monday, 25.04), at 18:00. The first 30 people get two free beers - better be quick :)
See you there!
Nie prowadzimy wydarzenia ani zapisów. Przyjmiemy tyle ludzi ile pomieści pub. Zapraszam i do zoba!
@cronlabspl: pokaźne nie pokaźne, to, że ktoś zareagował jest spoko ;) U mnie w trójmieście ceplusplusowców trochę jest, ale nie widze tego by tak spontanicznie coś udało się zorganizować. Chyba, że organizatorem byłby Mateusz Pusz :D
Ej, w sumie nigdy nie dawałem tu znać o moich prelekcjach, a patrząc na to co się dzieje ta może być moją ostatnią :) Może ktoś sobie mnie włączy i w końcu przyda się ten trzeci monitor.
Będę dziś opowiadał o C++, o podstawach boost::asio
na wrocławkim meetupie Wro.cpp.
Podobno ma być transmisja online, na youtube:
Link do wydażenia: https://www.meetup.com/pl-PL/Wro-cpp/events/284058861/
Nie nastawiajcie się na jakieś fajerwerki bo będzie o podstawach + w ostatnich dniach ciężko było się skupić na przygotowaniach przez wiadome kwestie.
Niemniej, myślę, że gdybym taką prezentację obejrzał przed dołączeniem do aktualnej firmy, to dużo szybciej wszedłbym w to całe asio na pełnej, zamiast prosić kolegów, żeby mi tłumaczyli podstawy :)
Cześć,Nasze kolejne spotkanie odbędzie się w środę 2. Marca w wersji hybrydowej. Tym razem zapraszamy do siedziby Siili Auto - ilość miejsc ograniczona! Jak ...
https://www.youtube.com/watch?v=N9qT927H_sADobrze wyszło, nagle wszystko zaczęło mieć sens i teraz już wiem na pewno że boost::asio jest jeszcze gorszy niż sądziłem. Jak będę potrzebował dać komuś produkcyjny przykład paskudnie cieknącej abstrakcji to chyba zacznę mu podsyłać Twoją prezentację :D Chociaż kto wie, czy sam nie będę musiał za niedługo tego używać to teraz jestem uzbrojony w solidne podstawy by móc na boost::asio narzekać ;)
nagle wszystko zaczęło mieć sens
Druga osoba mi to mówi! Cieszę się, że osiągnąłem założony cel :)
Tak sobie siedzę w święta i myślę. "Trochę w życiu czasu zmarnowałem.. <gryz ciasta="ciasta"> ..jakieś tam open sorsy niby klepałem.. <łyk inki z mlekiem> .. ale nie stworzyłem nic wybitnego.. <haha, w tym roku też dostał żelazkiem> ..fajnie by było to zmienić.
I nie uwierzycie. Wymyśliłem!
Trawnik Challenge
Postanowiłem rozpocząć #trawnik_challenge. Na czym on polega? To proste - przez następny rok (następne 365 dni) trzeba codziennie zrobić coś w jakimś projekcie na githubie albo gitlabie. Commita, znaleźć błąd i stworzyć issue itp. Chodzi o to, żeby na swoim profilu na GH zazielenić (na gitlabie zaniebieścić) każdy kwadracik - stąd trawnik challenge :)
Fajnie by było nie brać w tym udziału samemu, więc zachęcam każdego. Nie bądźcie leniami, w kupie siła :)
Osobiście:
Strasznie się zajarałem tym pomysłem :) Niby codziennie trzeba siąść do kompa, ale myślę, że przynajmniej w najmniejszym stopniu zazielenić kwadracik nie będzie ciężko, a ile się przez ten rok zrobi.
Dobra idę robić pierwszego commita. Za tydzień wrzucę progress. Trzymajcie kciuki! :)
.
.
.
.
.
.
.
.
.
.
No dobra. Tak napisałbym, gdybym był szukającym atencji małym chjkiem, który nie umie ruszyć d**y z fotela bez strzału dopaminy z lajków pod postem na mikroblogu.
A ja jestem tylko szukającym atencji małym chjkiem.
Siedzenie na kanapie, żarcie ciasta i rozmyślanie zdarzyło się naprawdę. Rok temu. Tej pięknej zimy przychodzę do Was z gotowym, całorocznym githubowym trawniczkiem.
(Kuuuuuuurde, miałem wrzucić przed północą, post pisany i screen robiony 27.12.2021)
(oczywiście nie jest to połączone z moją pracą. To, co tu widzicie jest w 100% robione po robocie)
Pomyślałem, że fajniy by było napisać parę słów.
Po pierwsze primo - po co? W sumie nie wiem.
Z tego co pamiętam, to rok temu pomyślałem, że fajnie by było móc kiedyś powiedzieć, że naklepałem cały githubowy rok i zrobić sobię bluzę z kapturem ze screenem trawnika. Chyba to było głównym powodem.
Po drugie primo - co przez ten czas robiłem?
Na samym początku kończyłem mały projekt, nad którym pracowałem jakiś czas wcześniej. Gdy zaczęło brakować w nim pracy, zacząłem szturchać różne małe rzeczy, na które nigdy wcześniej nie miałem czasu (a teraz, oczywiście, znalazł się znikąd). Jakiś skrypt w pythonie do pomocy przy fakturach, jakieś eksperymenty z ML. Trochę tu, trochę tam. Bez żadnego ładu.
Na początku marca zacząłem odczuwać, że nie pociągnę całego roku takim bieganiem z kwiatka na kwiatek. Potrzebowałem odpalić z grubej rury, przecenić swoje możliwości i się tego trzymać. Innej opcji nie widziałem.
Tak oto w dzień kobiet, zaraz po spacerze i obiedzie z żonką, siadłem i napisałem pierwszego commita projektu, który klepany jest do dziś.
Od jakiś ~dwóch lat miałem pomysł na grę: multiplayer PVP na arenie. Coś jak CS, LoL itp. Masz dwie drużyny, jakiś tam cel i się klepiecie. Aby przecenić swoje możliwości, postanowiłem, że nawet jeżeli nie skończę gry do końca tego githubowego roku, to zrobię z tej gry nowy esport i już. Mierzalnym celem jest poprowadzenie turnieju na jakimś konwencie/konferencji czy jak to tam się w gejmingowym świecie nazywa (spojlert alert - jeszcze tego nie dokonałem).
Chciałem grę zrobić jak najbardziej od zera. Nie chciałem się bawić w 3d. Wybrałem SDL 2 do wyświetlania rzeczy na ekranie i boost::asio do słania bajtów po sieci. Bardzo dobrze się składało bo w grudniu 2019 zmieniłem robotę. Mocno się w niej opieramy na boost::asio, więc cieszyłem się, że poznam bibliotekę na wylot (spojler alert - na wylot jeszcze nie poznałem).
W sumie nie ma tu wiele do opowiadania. Resztę roku po prostu siedziałem i klepałem gierkę. Jakiś czas temu testowałem z kolegą, wyglądała ona wtedy tak:
Czy są jakieś minusy tego co zrobiłem?
Oczywiście. Mnóstwo wyrzeczeń. Mniej czasu dla rodziny/znajomych. Branie laptopa na urlopy i klepanie jak żona zaśnie :) Bardzo dużo takich małych, rzeczy, które w skali roku stają się mocno uciążliwe.
Myślę, że największym jest słabsze dbanie o zdrowie. Dużo siedzenia. Mało ruchu. O wiele mniej przebywania na świerzym powietrzu niż bym chciał - praktycznie nie byłem na rybach!
Teraz jest trochę lepiej bo zacząłem chodzić na treningi personalne i lepiej jeść, ale jeżeli zaczynałbym #trawnik_challenge od zera, to prowadziłbym się o wiele lepiej od początku.
Liczby
Nie chcę mi się zliczać statów ze wszystkich małych projektów, które tykałem na początku. Niżej widać statsy gry:
---------------------------------------------------------------------------------------
Language files blank comment code
---------------------------------------------------------------------------------------
C++ 128 5117 1018 16987
C/C++ Header 187 2022 55 6789
JSON 37 0 0 1057
Python 5 252 28 697
CMake 18 95 7 677
Windows Module Definition 1 3 0 44
YAML 1 12 7 39
Markdown 1 19 0 33
Bourne Shell 2 3 3 9
---------------------------------------------------------------------------------------
SUM: 380 7523 1118 26332
---------------------------------------------------------------------------------------
Mimo, że przez ostatni rok byłem praktycznie skupiony na dwóch "pracach", to ta prawilna praca nie ucierpiała, a wręcz przeciwnie - po 11 miesiącach (w październiku) dostałem podwyżkę 112,5%. Lubię sobie mówić, że moje lepsze obycie z boost::asio, wynikające z pracy nad grą, mogło mieć wpływ (ale jeżeli miało, to raczej mały). Dzięki temu kolejny powód, żeby robić rzeczy po godzinach, nawet jeżeli one same w sobie nie przynoszą dochodu.
Ale ale, stryku, co ty nam tu z całorocznym githubowym trawnikiem wyskakujesz, jak tam dwie dziury są!
Tak. Niestety. Stało się. Bardzo dobrze pamiętam te dziury.
Byłem na working-vacation w rodzinnym mieście. Był pożar, pracowałem 11h, a po pracy poszedłem z chrześniakiem haratać w gałę. Po ośmiu miesiącach passy, gdzie wydawać by się mogło, że klepanie kafelek (tak te kwadraciki nazywaliśmy z żoną) weszło pod skórę jak tatuaż - zwyczajnie zapomniałem.
Druga, to (dalej na working-vacation) po pracy popłyneliśmy z tatą na ryby. Byłem tak zmęczony, że po wszystkim położyłem się na 5min, a obudziłem po połnocy.
Z perspektywy czasu cieszę się, że to się stało. Czasem jak sobie myślę Mati, ale ty zajebisty jesteś, to wchodzę na githuba, patrze na te dwa pryszcze i pokornie siadam do C++.
Czy bym ten rok powtórzył?
Jasne! Polecam każdemu. Samorozwój zawsze na propsie. Jednak, tak jak wcześniej pisałem, lepiej dbałbym o zdrowie.
Nauczyłem się całą masę rzeczy. Na to nigdy mi nie szkoda czasu.
No ale już takim największym sukcesem tego roku jest fakt, że po tym wszystkim dalej jestem żonaty. Sam się czasem dziwię, że ze mną wytrzymała :)
.
Gościu speedrunuje jedną grę, żeby pomieszać jej pamięć i nadpisać danymi z tej gry kod kolejnej gry, żeby tę drugą zglitchować, żeby ją speedrunnować jeszcze szybciej
wtf ^^
Runner introduction starts at 0:16Run starts at 0:38YellowKillerbee interviews Galasrinie at 45:15Commentary is provided by iyce and RainchusSuperJamoose is ...
https://www.youtube.com/watch?v=HhH-UsSz69MUwaga ciekawostka
Na systemach plików z rodziny FAT, nie ma opcji uzyskać czasu pliku/katalogu (stworzenia/dostępu) z nieparzystą sekundą! Szok i niedowierzanie. Patrzcie sami:
(Naprawdę nie chciało mi się walczyć o jakość z ffmpegiem. IMO wygląda nawet fajnie)
A czemu?
Otóż dawno, dawno temu były czasy gdzie rozmiar miał znaczenie. Dyski były małe. Przeciętne node_modules
nie zmieściłoby się na wszystkich dyskach w USA razem wziętych.
Ludzie musieli kombinować i walczyć o każdy bajt pamięci. Czy to RAM czy trwałej.
Directory entry w systemach FAT zostało obmyślone tak, że zawierało czas stworzenia/dostępu pliku/katalogu. Oczywiście zrezygnowano z mili/mikro/nano części sekund. Co zostało?
Godzina: 0 - 23
Minuty: 0 - 59
Sekundy: 0 - 59
No dobra, wartości są małe, każda zmieści się na bajcie. Wystarczą trzy bajty. Problem rozwiązany, można dalej parzyć kawę w wersji skrypt.
Za dużo! To nie node_modules
! Każdy bajt się liczy.
Zobaczmy ile bitów trzeba na takie wartości:
ceil(log2(24)) -> 5 bitów
ceil(log2(60)) -> 6 bitów
Czyli trzeba 5 + 6 + 6 = 17
. Nieeeeee.. O bit za dużo. Zmieścilibyśmy się w dwóch bajtach. Ale ten bit. Gdyby tylko nie ten bit..
Pewnie już wiecie co się stało (:
Żeby zaoszczędzić jeden bit zapisujemy liczbę sekund podzieloną przez dwa.
Czyli jak tworzymy plik w sekundzie 40
, zapisana zostanie liczba 20
. Jak tworzymy w sekundzie 15
, zapisana zostanie liczba 7
, 59
-> 29
.
Tak oto twórcy FATów pozbawili nas raz na zawsze posiadania plików z nieparzystą sekundą..
Dużo info o grubasach jest na osdev wiki: https://wiki.osdev.org/FAT
Komendy, które pisałem na gifie:
mkdir dir
dd if=/dev/zero of=./img count=102400 bs=1024
ll
mkfs -t fat img
sudo mount img dir
tail -n1 /proc/mounts
cd dir
date && sudo touch foo && ls -la --time-style=full-iso
Coś mi blado świta z czasów BIOS / DOS, ze rzeczywiście były ograniczone ilosci bitów na podobne dane jak sekundy
Nie widze na oczy, ale się jaram i muszę coś wrzucić.
Parę lat czaiłem się na ten projekt. Kiedyś postawiłem sobie cel w jeden weekend napisać system plików. Nie wiem czemu. Nie pytajcie. Fsy coś mi w mózgu robią dobrze.
No, ale dobra. Ważne, że w tym tygodniu się udało. Kupiłem, od żony, jeden wolny weekend za pięć innych, niewolnych weekendów. W piątek pojechała do rodziców, a ja po pracy mogłem na spokojnie siąść i zacząć wcierać w siebie void gwiazdki.
Serio nie sądziłem, że się uda, ale jednak kulawego, mocno ograniczonego potworka udało się klepnąć \o/
Nagrałem filmik do chwalenia. Dużo łatwiej było w taki sposób wyjaśnić, co wyczyniam w terminalach.
Na filmiku od zera, z palca:
Ogólnie, chcę kod trochę posprzątać, doimplementować parę dodatkowych rzeczy i stworzyć jakieś arta na bloga. Niemniej, tak jak mówiłem - jaram się jak przy pierwszym ujrzeniu kobiecych piersi i musiałem komuś o tym opowiedzieć. Żona jeszcze nie wróciła, ale też się nasłucha.
Staty:
2020-11-20 17:00:00
), do teraz (2020-11-22 13:45:06
). Wczoraj 5h snu, bo jednak praca zmęczyła. Dziś nic. W sumie 39h analizowania kernelowych dupaprintów.A teraz idę spać
@cerrato Głównym celem było samo napisanie systemu plików. Kiedyś pomyślałem, że fajnie by było móc powiedzieć 'Napisałem system plików'. Często się czegoś takiego od ludzi nie słyszy (:
Nie zakładam, że wniesie coś nowego do wszechświata systemu plików (serio jest ich masa, polecam zobaczyć folder fs w kernelu. Każdy folder, to osobny fs.). Wszystko co mogło zostać wymyślone raczej już zostało.
Co do przyszłości projektu, to na pewno chcę doimplementować co zostało, a trochę tego jest. Myślę, że jak będę w stanie uruchomić na nim typowe benchmarki systemu plików, to będę już zadowolony :) Ciekawe jak wypadnie wydajność w porównaniu z mainstreamowymi fsami ^^
Wszystko co mogło zostać wymyślone raczej już zostało.
Raczej nie - nie kojarzę np. jakiegoś wielkiegy wysypu nowych FS pod SSD, a wydaje się, że zmiana sprzętu i zmiana sposobu jego użycia powinny iść w parze.
+1. Znaczące białe znaki to jest jakiś żart. Zarówno w językach programowania, jak i...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
cronlabspl@several: całkiem pokaźne grono jest...........