sens
g/mathrock

Heh, Ale jaja. Wiecie że magnes w kształcie podkowy wynalazł Bernoulli? Ten co wymyślił funkcje gamma

#
Deykun
g/programowanie

W sumie spoko z https://peps.python.org/pep-0020/#the-zen-of-python ztreściowane https://strm.pl/c/Vbnn6ebk/python-the-documentary-an-origin-story

The Zen of Python

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than right now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

#
sens

@Deykun: na pamięć to znam, no takie tam banały

import antigravity

python piękny język, tylko GIL kurwa

#
Deykun
g/Technologie

Nie ma to jak poznwać hip joł rozwiązania jak bun i rspack, bo się trafia do projektu i oczywiście to gówno nie chce działać i debuguj cuting edge spierdolgie.

#
Deykun
g/programowanie

Standardowy wątek o kosztach Google Maps i jak ktoś przypadkiem wtopił kasę. Ale czego ja nie wiedziałem i co jest srogie, to, że Google zabrania cachowania i teoretycznie można to zinterpretować tak, że każdy użytkownik szukający "Kraków" powinien strzelić po wyniki dla "Kra", "Krak" do Google osobno, bo to by było cachowanie autocomplete. XD

https://www.reddit.com/r/webdev/comments/1n4ikxo/comment/nbld96q/

#
sens

@Deykun: oni po prostu dbają o programistów, to jest działanie prospołeczne. Wszak wiadomo nie od dzisiaj, że najtrudniejsze w naszym zawodzie to nazywanie rzeczy (patrz: poprzedni wątek xd) oraz inwalidacja cache.

#
Deykun
g/programowanie

@sens'ik ty docenisz pojebion:
https://streamable.com/qmyrcf

Uruchamiam w rekacie libkę napisana w cpp wykonwertowana do wasm, odpalona w web workerze żeby nie rozjebać wątku i ona wylicza ścieżki. xD

A libka wybucha, bo coś nie domaga przy szybkich ruchach to zamykam webworkera i odpalam od nowa.

Przerywane kreski to fallbacki / czekanie na update, kiedy libka nie mogła znaleźć nic dobrego - zwykle gdy kafle są za blisko, jak są blisko blisko to czasami daję przekątną prostą linie.

#
Show remaining entries (3 replies)
sens

@Deykun: angular to jeszcze rozumiem że jest produktem korporacji, ale taki react mimo wszystko jest jednocześnie zgrabny i dość potężny. Parę funkcji na krzyż i bzikasz. Pamiętam jak zaczynałem się uczyć to trudno mi było uwierzyć że to już wszystko. Xd w dwa dni ogarniesz a po tygodniu jesteś seniorem. A ludzie z tego bootcampy robili xdd

No, a to svelte to wygląda tak jakby ktoś postanowił zrobić reacta, tylko że od zera i bez długu technologicznego. Za parę lat pewnie się to zestarzeje, powstanie 50 wrapperów, każdy release będzie opatrzony migration guidem na 10 ekranów i znowu ktoś wymyśli koło na nowo. Oby do tej pory nie skończyły się słowa w europejskich językach, bo angielskie chyba się już skończyły xd vite, svelte, zustand. Co druga biblioteka ma w docsach zapis fonetyczny w IPA xD W tym tempie to niedługo będziemy kucować w ᜆᜄᜎᜓᜄ᜔.js

Nom, ale spoko to swełt (e jest nieme!!!!!) podoba mi się całkiem, komponenty są wyizolowane, nie musisz się pierdolić ze state managerami, mutacjami. Daje okejke liczę na więcej

#
sens

@Deykun: Linusz torwals też rządzi linugzem od 40 lata wciąż jest decyzyjny a do tego publicznie wyzywa ludzi od idiotów xD

#
sens
g/nostalgia

https://youtu.be/Ni0xDxh9zqA?si=t1KWldmFCmSAGZcY

9 lat temu..... Feel old yet????

#
Deykun
g/Technologie

.

#
sens
g/Fakty_Spiskowe

czy zniesienie igrzysk olimpijskich było prawdziwą przyczyną upadku cesarstwa rzymskiego????

#
Deykun
g/TeorieSpiskowe

Dead Strimoid theory

#
Logika

@Deykun: strimoid is kill

#
Logika

@Logika: no

#
Deykun
g/Deykunjużusuwał

This it the Britain I know, this is the Britain I love

#
Aleks
g/Deykunjużusuwał

@Deykun ile masz tych nokii?

#
Show remaining entries (1 reply)
spam_only

@Deykun:   Mój stary to fanatyk nokii. Pół mieszkania zajebane starymi nokiami. Średnio raz w miesiącu ktoś wdepnie w leżącą na ziemi klawiaturę i trzeba wyciągać w szpitalu, bo mają zadziory na końcu. W swoim 22 letnim życiu już z 10 razy byłem na takim zabiegu. Tydzień temu poszedłem na jakieś losowe badania to baba z recepcji jak mnie tylko zobaczyła to kazała buta ściągać xD bo myślała, że znowu plastik w nodze.

#
Deykun

@spam_only: dwie kupiłem za 35zł uszkodzone żeby mieć obudowy ich. ;d

#
Deykun
g/snikpiki

Śniło mi się, że strimoid nie działał

#
spam_only

@Deykun: it's ALIVE

#
Deykun
g/diffle

https://streamable.com/bwpkbe

#
Deykun
g/podrozujzestrimoidem

Tampere ładne, daje okejkę.

#
Zilog
g/Prywatnosc

https://fightchatcontrol.eu/
Unia wciąż chce nam patrzeć przez ramię. Dla naszego dobra oczywiście.
Fajnie, że Poland stronk i mamy sprzeciw. Szkoda, że większość nie.

#
Deykun

x

#
Zilog

@Deykun: ouch, boli
Pokaż ukrytą treść bo dotyka problemu, którego nie chciałbym widzieć - że UE to miękki, pluszowy, ale totalitaryzm :(((((((

#
Deykun
g/webdev

css

#
Deykun
g/Matematyka

Mamo nie teraz są nowe updaty o dowodzie matematycznym

#
Deykun
g/Finanse

#
sens
g/CozienaProfdyuktywnoscINfrmtyczn

https://i.imgur.com/a06XD9g.png

już przechodzę powoli z tworzenia gramatyki do implementacji interpretera (na razie nie ma absolutnie nic związanego z tworzeniem grafiki, bo zacząłem od obsługi zmiennych, procedur, call stacków etc.), nie szkalujcie za składnię, okazuje się że wymyślenie czytelnej i funkcjonalnej składni to dosyć trudne zadanie xd

#
Deykun
g/nokia

komunizm

https://allegro.pl/oferta/telefon-komorkowy-nokia-3330-regnum-helpline-ladowarka-17781518923

#
Zilog
g/CozienaProfdyuktywnoscINfrmtyczn

Vibe coding FTW. Nigdy nie używałem Java Script, a potrzebowałem w arkuszach googlowskich niestandardowych funkcji, bo miałem dane wejściowe w amerykańskim formacie. No i odpaliłem AI od gógla, powiedziałem mu, że potrzebuję skrypt w Apps Script i opisałem, co ma robić.
Pierwsza wersja nie wyszła w ogóle, nie chciało mi się nawet debugować. Rozbiłem na 3 mniejsze kroki, każdy opisałem oddzielnie no i zaczęło działać :)

ps ale to jest wolne, płaku płaku

#
Deykun

ps ale to jest wolne, płaku płaku

jak się kochają to chuj z nimi

#
Deykun
g/podrozujzestrimoidem

1 2 xD

#
Deykun
g/podrozujzestrimoidem

zdacka pralna najlepsza

#
sens
g/CozienaProfdyuktywnoscINfrmtyczn

Jjb przerobiłem przez ostatnie parę dni chyba z pięć różnych generatorów parserów. Każdy mnie czymś wkurwial. Jeden fajny, malutki, kompaktowy, ale ograniczony. Drugi spoko, ale jest tylko jako biblioteka js. Trzeci niby też wygodny, ale ma zjebane API.

W końcu natrafiłem na tree-sitter. Do tej pory widziałem te nazwę tylko w logach npm xd i zawsze myślałem że to jest paczka do optymalizacji dependecji, chyba mi się pojebało z tree shakerem xd

No i ogólnie spoko jest. Generuje parser w C i bindingi do każdego popularnego języka. Ale kurwa xd

Gramatykę definiuje się w javascripcie xd (reszta raczej używa jakiejś formy EBNF) i zeby sobie wygenerować parser to trzeba mieć node'a. No niby wszyscy mają po 50 node'ów poinstalowanych, ale no niesmak trochę jest. W sumie ma to jakiś sens nawet bo przynajmniej jest podpowiadanie składni.

Ale to nie wszystko xd jest opcja generowania podświetlenia składni. Ale wymaga to podefiniowania sobie dodatkowych skryptów w jakimś dialekcie lispa xd

Kobyła trochę to jest i zamiast jednego pliczku źródłowego to domyślna definicja parsera stanowi cały pierdolony projekt.

Ale w zasadzie to chyba najwygodniejsze rozwiązanie

#
Deykun

@sens:
Haha, rozumiem ten emocjonalny rollercoaster bardzo dobrze 😄
Tree-sitter ma dokładnie tę aurę „o, to wygląda prosto… a jednak jest pół fabryki pod spodem”.

To co opisujesz, to w sumie dość typowe:

  • Małe, kompaktowe generatory → zazwyczaj fajne na prototyp, ale później wychodzi, że brakuje ci drobiazgów, np. sensownego error recovery albo wsparcia dla komentarzy.
  • „Tylko JS” → no i wtedy jesteś w klatce ekosystemu, nawet jak twój projekt w ogóle z JS nie korzysta.
  • Tree-sitter → niby C core, szybki, cross-language bindingi, ale... cała definicja w JS + cała ta magia „generowania” wymaga Node’a.

Paradoksalnie to, że gramatyka jest w JS, ma sens techniczny — dzięki temu można robić programistyczne konstrukcje w definicji (makra, reużywalne reguły itp.) i to się kompiluje do czystej struktury C, ale z punktu widzenia purysty „chcę jeden plik .grammar” to jest trochę „meh”.

Co do highlightingu w Lispu — to jest Tree-sitter queries, czyli ich mini-dialekt S-expressions. Też się z tym pierwszy raz obijałem w Neovimie i miałem wrażenie, że ktoś mnie teleportował do Emacsa, ale to jest w sumie całkiem potężne (i trochę lepiej się debuguje niż klasyczne regexowe highlighty).

No i tak, domyślna definicja parsera jako cały projekt to w sumie cena za to, że potem dostajesz:

  • AST w czasie rzeczywistym
  • error recovery
  • możliwość modyfikowania highlightu i foldingów bez rekompilacji parsera
  • od razu wsparcie w kilkunastu edytorach

Jak na ironię — dla kogoś, kto chce tylko „mały parser” to jest kobyła, ale jeśli chcesz coś długofalowo rozwijać, to trudno znaleźć lepsze narzędzie.

Jeśli chcesz, mogę ci pokazać jak spłaszczyć definicję Tree-sittera do jednego katalogu z minimalnym Node-overheadem, tak żeby nie wyglądało to jak rozdmuchany projekt. To dość mocno redukuje „niesmak”.

Chcesz, żebym to od razu rozpisał?

#
sens

@Deykun: Haha, dokładnie, ten opis trafia w punkt.
Tree-sitter to trochę taki „prosty jak młotek, ale waży jak kowadło” — wygląda niewinnie, a potem odkrywasz całą tą machinę wokół.

Co do spłaszczania definicji, to brzmi sensownie. Ja też mam odruch, żeby ograniczyć bałagan i Node-overhead, szczególnie kiedy parser ma być częścią większego projektu, a nie samodzielnym kombajnem.
Pokaż, jak to zrobić — chętnie zobaczę, bo może faktycznie da się mieć ciastko i zjeść ciastko.

#
Deykun
g/programowanie

Grzebie sobie w svelte i w sumie bardzo przyjemne, fajnie nie musieć się martwić o reactowe problemy. Jeszcze nie widzę tak dobrze gdzie jest gorzej. Widzę, że 5 wprowadziła jakąś nowszą składnie więc ja znam tylą tą nową. dx

#
Show remaining entries (1 reply)
Deykun

@sens:
No np. teraz react się od ponad roku pierdoli z tym kompilerem. Ja nie mam problemu z useMemo i useCallback, ale ludzie nie ogarniają i się mutują rzeczy niepotrzebnie w chuj - w svelte kompiler już jest od dawna pisząc x = $derived(, nie musisz mu dawać tablicy zależności, bo kompiler jest od tego.

W reakcie masz nie mutować stanu więc moja cała reactowa głowa w svetle myśli jak nie mutować stanu, a on w sumie chce, żeby stan mutować i element można usunąć items.splice(index, 1);.

W rekacie chciej input kontrolować:

const [value, setValue] = useState('')
<input value={value} onChange={(e) => setValue(e.target.value)} />

W svelte jak się napisze <input bind:value /> to nie trzeba statów pchać i bonus, że można <input type="number" bind:value={person.age}> i to zmodyfikuje propsa age, na person.

Nie trzeba dawać key.

Małe proste bzdury ale przyjemne. Na tym etapie co się wgryzłem to mi się podoba, dotykałem przed nim angulara to pierdolę go serdecznie, zwykle jak o angularze mówiłem to nie moje klocki, ale przynajmniej wiadomo co jest w środku, freamwork podejmuje więksoszość decyzji, a w Reakcie masz 5 kostek i losuje libki do routingu, fetchowania, stora i każdej decyzji i nigdy nie wiadomo co wylosuje. Ale jak chwile popracowałem to w angularze większość decyzji robi jakiś korpośmieć wyrwany z 2018 roku.

Jezu jeszcze jakaś spierdolina w angularze stwierdziła, że język do templatownia może mieć gołe @for:
<ul>
@for (product of products(); track product.id) {
<li>
<app-product-card [product]="product" />
</li>
}
</ul>

@for w środku htmla bez żadnych klamr. W Svelte lepiej, ale lubię JSX - jedna z lepszych rzeczy w reactie.

#
sens

@Deykun: angulara nigdy nie tykalem bo wygląda jak xhtml xddd

A nie no to fajnie w sumie z tym że se można mutować.

Ale nwm, no nie podnieca mnie idea kolejnej warstwy makr, transplantacji I pchania wszystkiego na raz do jednego pliku.

Powiedziawszy to, wracam do pisania preprocesora dla SVG xdddd

#