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

#
sens
g/strimoidproblems

https://i.imgur.com/9OWDa5F.png

#
Show remaining entries (1 reply)
sens

@Deykun: to chyba jeszcze nie dziś niestety

#
Zilog

@sens: <3

#
sens
g/nokia

Ja to akurat byłem biedakiem i zawsze miałem Sony Ericsson y jakieś Siemensy. Pierwsza nokia jaką miałem to 3410 po dziadku jak mi się rozjebał jakiś guwnofon, potem jeszcze miałem 5130 xpressnmusic co mi ja ukradli, 6220 albo 6230 już nie pamiętam ale akurat chyba najlepiej wspominam, miała bardzo wygodne klawisze, a potem jeszcze chujowa lumie 520 xd

#
Deykun

Lumie w sumie zdechły przez to żeby były takie dziwaczne, mama miała jak chciała żebym jej coś wyklikał to musiałem sobie wypierdolić mózg na drugą stronę, bo te kafle były tak intuicyjne jak kafle w Windows 8.

#
sens

@Deykun: w telefonie miały trochę więcej sensu, ale i tak, straszliwie taki zamknięty się wydawał (albo w sumie był, bo nikt nie chciał pisać na to apek xD) ten system

#
sens
g/nokia

Fun fact 3410

Nokia jest bardzo popularnym rekwizytem w polskim rapie

Ona nie kocha ciebie, ona kocha swoją Nokię.
Ona kocha twoją Nokię, jak pyta czyj to numer
Kto? Gdzie? Chce wiedzieć wszystko jak UB-ek.
Co to za Magda, Gosia, Anna, Zosia, a znów
do niej jak dzwonią, to tylko geje z seminarium.

Zajebałeś znów dwie samary znajomych sztuk
Masz kasę już z portmonetek ich, cóż
I Nokię w różowe kwiatki, chuj
Masz na wódkę i na siatki

Wtajemniczenie wyższego stopnia
Dlatego konopia łączy ludzi jak Nokia
8 lat się cofnij, nie ma Nokii
Typ od konopi nawala, ty moknij

Jak w siódmej siedziałem pod blokiem, minus cztery stopnie
Pamiętam jak w ósmej, kupiłem sobie pierwszą Nokię

#
sens
g/nokia

Fun fact 5110

https://i.imgur.com/0NbedyB.jpeg

Wyświetlacze z nadwyżek produkcji są bardzo popularne wśród domorosłych elektrodziarzy i są sprzedawane jako takie o moduły

#
Deykun
g/nokia

Fun fact 8:
Przyjechałem do Nokii zrobić zdjęcie na tle stacji, a stacja jest w remoncie i nie ma jak podejść za bardzo. xD

#
Deykun
g/nokia

Fun fact 7:
Nokia 3310 odbiera smsy w 2G ale jest coś nie tak z potwierdzeniami, bo dostaje tego samego smsa po 10 razy przez cały dzień, a skrzynka się zatyka gdzieś przy 20 i nie ma skasuj wszystkie.

#
sens

2G

@Deykun: to ten ziomek z Gorillaz?

#
Deykun
g/nokia

Fun fact 5:
Nokia 5510 (3310 z klawiaturą po bokach) ma praktycznie ten sam soft co 3310, ale ma jacka i może odpalać mp3. Nokia 3310 nie miała nawet dzwonków polifonicznych. 64MB pamięci dawało z 10 mp3.

Fun fact 6:
Hasło reklamowe Nokii 5510 to "Looks Weird, Sounds Great".

#
sens

@Deykun: pamiętam jak w podstawówce się niektórzy wozili z Nokią ngage (taki sam format jak 5510, tylko że miała głośnik i mikrofon na brzegu, więc wyglądało to w chuj głupio jak rozmawiali przez telefon xd)

#
sens

@sens: https://sidetalking.com/page-1.html

#
Deykun
g/nokia

Fun fact 4:
Wiele noki "3330" w Polsce z Space Impact 2, to nie są prawdziwe 3330. Nie mają WAPa. Ja mam dwie prawdziwe i one mają dodatkowo grę bumper, której nigdy nie widziałem na swoich.

#
Deykun
g/nokia

Fun fact 2:
Nokia 3330 miała prawdziwy WAP nowszy i z dial-upem (te dźwięki łączenia do internetu).

Sad fact 1:
Wiele sieci wygasza G3, ale G2 działa, dostaje smsy. Nie działa WAP nie da się połączyć w Polsce.

Fun fact 3:
https://www.youtube.com/shorts/U-FlLXdwDRY

Strona Google działa na 3330.

#
Deykun
g/nokia

Fun fact 1:
https://www.repairbox.pl/simlockdct3

Ściągnąłem z jednej 3330 simlocka tydzień temu. xD

#
Deykun
g/Rzemiosło

rzecz deykuna
w lokacji

#
Show remaining entries (1 reply)
sens

@Deykun: 6310i nie chcieli dać?

#
Deykun

@sens: ja wolę 3330/10.

#
Deykun
g/heheszki

Ja kiedy myślę o byciu sensem

#
Deykun

2x

#
Deykun
g/rzeczywistość

Jestem na lokacji do zdjęcia do rzeczy, ale szukam dobrego ujęcia

#
Deykun
g/sennik

https://streamable.com/jzyd9q

#
sens

@Deykun: MY HANDS LOOK LIKE THIS SO HIS CAN LLOK LIKE THIS

#
sens
g/CozienaProfdyuktywnoscINfrmtyczn

Jprdl, pisze se ten parser do tego pseudo SVG, pomyślałem co się będę jebał z wymyślaniem koła na nowo w C, to jest drzewko, elementy ast dziedziczą po sobie, potrzebuję klas i odpada alokacja buforów I takie tam.

no to zasiadam do c++, bo mówią że teraz to zupełnie co innego, że da się tego używać nie to co trzy standardy temu.....<>()[]std:::::::&&c**onst~~`|€°€^¢^£§¥§• I pamiętaj oczywiście żeby usunąć destruktor w klasie wirtualnej, bo inaczej vtable się wypierdoli

A
Aaaaaaaa no ale słuchaj mordo, C++17 MA ITERATORY :0000 I NIE UZYWA SIE NEW I DELETE TYLKO SMART POINTEROW

nawet nie jestem do końca pewien czy ten zjebany rust nie jest lepszy

#
sens
g/CozienaProfdyuktywnoscINfrmtyczn

gcc* - przy włączonym -g** zalecana jest optymalizacja -Og, czyli tak, jak normalny zdrowy polak by się spodziewał

clang - przy -g manual zaleca -O0, mimo że istnieje flaga -Og, z tym że jest ona równoznaczna -O1

Note that Clang debug information works best at -O0.
-Og Like -O1. In future versions, this option might disable different optimizations in order to improve debuggability.

XD dalczego KURWA DLACZDGO?!


dla frontasiów chłoptasiów webowych dżawaskryptowców:

*kompilator to taki program podobny do transpilatora TS -> JS, tylko że zamiast konwertować schujowaciałe skrypciki na równie gówniany kod, tylko że działający w IE8, to tłumaczy kod źródłowy na wykonywalny kod maszynowy

**generowanie metadanych do debugowania

#
sens
g/CozienaProfdyuktywnoscINfrmtyczn

Kocham SVG, jeszcze żeby to miało lepszą składnię, lepsze rozdzielenie definicji obiektu od jego użycia i lepsze kaskadowanie atrybutów (teraz niektóre się propagują w dół drzewa, a niektóre nie, wkurwia mnie to), to byłoby ideolo.

#
Show remaining entries (5 replies)
Deykun

@sens:
W ogóle śmieszne, bo jak robiłem te mapkę herbami i mi zaczęło jebać przeglądarkę przy 2k nodów w HTMLu to doszedłem, że jednak trzeba je wrzucić na canvas z 0FPS. I potem poszedłem na rozmowę do firmy od diagramów to jest dokładnie problem z diagramami więc błysnąłem, że sam miałem ten problem i tak go rozwiązałem. I jak są przeskurwysyńskie diagramy to ją stawiają na płatnej libce na canvasie https://gojs.net/latest/ i ta libka rysująca wszystko sama bez htmla (więc button musi mieć onMouseOvery w canvasie setowane i cuda żeby był hover) jest rozwijana w js od 1998 roku czuć w niej czasami, te decyzje programistyczne z 2006 roku.

Dużo bindownania po this, funkcje które nie mają obiektu że robisz setPosition({ y }) tylko musisz dać setPosition(undefinded, y) bo funkcja powstała jak jeszcze nie było dekonstrukcji w obiektach. ;d

W sumie jak na to co robi tak całkiem ułożona, ale inny i zbudowany osobno świat JSa, a jeszcze żaden darmowy MIT projekt jej nie zeżarł, bo jednak 25 lat developmentu daje jakąś przewagę. xD

#
sens

@Deykun: zastanawiałem się nad tym czy nie robić tego na canvasie, ale uznałem, że nie mam siły ani czasu się użerać z tym API, a SVG w sumie można traktować normalnie jako komponenty reactowe i normalnie reagują na zmiany stanu, więc nie muszę jeszcze się osobno renderowaniem manualnym przejmować. Obawiałem się czy wydajnościowo będzie ok, ale to też w sumie przecież nie trzeba wyświetlać całego grida tylko to co widać, więc w sumie spox.

Ale teraz znowu zasiadłem do tego pomysłu na preprocesor SVG z poprawionymi rzeczami które wymieniłem. Mam wielkie plany, oprócz tłumaczenia na SVG to jeszcze osobna funkcja enderowania tego bezpośrednio + bindingi w wasm i do pajtona.

Za 20 lat wykupi mnie Google albo inna zbrodnicza organizacja i będę milionerem szybciej niż żółtak

#
Deykun
g/programowanie

asura
w mitologii indyjskiej: potężna istota nadludzka; również demon, który był przeciwnikiem bogów: dewów

https://sjp.pl/asura

#
Deykun
g/banki

https://www.hejto.pl/wpis/kolejny-update-mojej-scieklosci-na-zepsute-w-klawiaturze-pol-roku-temu-zapisalem

Update komputerowy

#