Hejto.pl
Dodaj post

Wpisz coś do wyszukania (minimum 2 znaki)

#javascript

Gruba ryba

w Programowanie

16piorunów

     <--- mój tag

no siema.

lubię społeczność @hejto , ale strasznie mnie irytuje brak różnych funkcji albo działanie inne niż to którego bym chciał. Narzekałem, tagowałem, nic z tego nie wyszło. Tak więc przedstawiam Wam alternatywę-WIP-chyba-że-mi-się-znudzi- i pierwszy merytoryczny wpis w serii.

Repozytorium: https://github.com/wombatDaiquiri/lajko
Permalink do commita o którym piszę: https://github.com/wombatDaiquiri/lajko/tree/v0.0.2

Nie ma nawet README, ale nie od razu Rzym zbudowano. Ma za to dwa pliki które napisałem ja i cztery których nie napisałem (kto ma wiedzieć ten wie  kto nie wie ten widocznie jeszcze nie potrzebuje).

Kod jest napisany w JavaScript. To taki język którego kiedyś się używało żeby robić fajne przejścia między obrazkami w przeglądarce. Teraz dostępny też w formie języka programowania z silnikiem który po prostu wykonuje kod na kompie jak np. Pythona albo C++ (nie do końca, ale to nie praca naukowa tylko edutainment)

Żeby sobie odpalić te programy, to musicie np. zainstalować NodeJS: https://nodejs.org/en/download następnie ściągnąć repozytorium z linka (można kliknąć przycisk <> Code i wybrać Download ZIP a potem rozpakować, jak nie macie gita)

no i teraz możecie poczuć się jak hacker - odpalić terminal. Może być windowsowy (wpiszcie `cmd` w wyszukaj i uruchom czy coś takiego). Poniżej szybki tutorial "chodzenia po systemie plików". W sensie klikania w foldery w formie tekstowej.

* `ls` pokazuje pliki w folderze w którym jesteś
* `cd <nazwa_folderu>` przechodzi do folderu o nazwie `<nazwa_folderu>` który MUSI się znajdować w folderze w którym jesteś (czyli pokazywać się w komendzie `ls`) - ten krok będziemy nazywać KROKIEM W DÓŁ
* , `cd ../` przechodzi do "folderu który zawiera folder w którym jesteś" - taki "KROK DO GÓRY" - czyli przeciwieństwo kroku w dół
* a jak się zamotasz albo sprawdzasz jak działają komendy to `pwd` pokaże tak zwaną "ścieżkę" - trudniej mi będzie wyjaśnić niż Tobie sprawdzić i skumać eksperymentując

no i jak będziecie w folderze z kodem, to najpierw musicie napisać `npm install` żeby pobrać tak zwane ZALEŻNOŚCI, a potem to możecie sobie np. odpalić zaciągnięcie pierwszej strony "najnowszych" i zapisanie jej jako JSON (jak nie wiesz co to to wygoogluj) kopiując, wklejając do terminala i wciskając enter;

nodejs scrape.js

stworzy Wam się wtedy plik `data-snapshots/{czas_w_ktorym_odpaliliscie_scrapejs}.json` a w środku będzie TABLICA zawierająca OBIEKTY - jak sprawdzicie co to JSON i otworzycie taki plik to myślę że intuicyjnie skumacie co to tablice i obiekty.

no ale taki plik to jest w sumie do d⁎⁎y, bo to to samo co hejto.

tutaj wkracza drugi plik - `process.js`. Odpalić go można następująco;

opcja pierwsza - sortowanie po sumie lajków komentarzy (nie patrząc na lajki samego wpisu)

nodejs process.js --cmd=comment_likes_sum --source=data-snapshots/{czas_w_ktorym_odpaliliscie_scrapejs}.json

opcja druga - tak samo, tylko z komendą `likes_total` zamiast `comment_likes_sum` da Wam wpisy posortowane po sumie lajków posta i komentarzy.

liczę, że foldery znajdziecie sami.

UWAGA! z łaski swojej nie napierdalajcie za często `scrape.js` - po to zapisuje wpisy, żeby nie zepsuć hejto. nie spierdolcie tego. do adminów @hejto - myślę że filtrowanie useragent wystarczy żeby największy plankton zablokować.

A na jutro postaram się przygotować wpis jak sobie napisać taki scraper samemu, chociaż starałem się żeby kod był łatwy do czytania. Sam praktycznie nie znam JavaScriptu, więc nie będę używał żadnych mega magicznych narzędzi i skomplikowanych konstrukcji językowych.

jeśli coś Wam nie działa, to zapraszam do komentowania też. z fartem wariaty.

Gruba ryba3piorunów

kurde zapomniałem zapisywać linka do posta xD grupa obniżania poziomu.

nie mniej gratuluję @adam_photolive @Cris80 i @smierdakow za posty pod którymi komentarze były najbardziej plusowane, oraz @adam_photolive @Cris80 i @smierdakow za posty które razem z komentarzami zgromadziły najwięcej lajków do spółki z komentarzami.

a sobie gratuluję dobrania fantastycznych metryk na start. mam nadzieję że w przyszłości efekty będą bardziej spektakularne

Gruba ryba1piorunów

@Yossarian absolutnie nie trzeba, w przyszłości jeśli mi starczy cierpliwości to zrobię swoją bramkę płatności w ramach tej serii. Ale bardzo dziękuję za wyrazy uznania. :man-bowing:

Gruba ryba1piorunów

@wombatDaiquiri ale żeby nodejs? (☉☉”)

Gruba ryba2piorunów

@VonTrupka ostatnio kupiłem NAS i 2x1TB dysk. Potrzebuję motywacji żeby go skonfigurować.

A tak serio, w pythonie nie rozumiem envów i nie chce mi się ich chwilowo poznawać. W go będziemy pisać trochę później, bo na tym etapie nie ma sensu się bawić w statyczne typowanie. No i będę chciał zrobić UI, to gdyby ktoś chciał się uczyć programowania na podstawie moich postów, to nie będzie musiał się uczyć ośmiu języków na raz.

Dorzucam do listy "tematów do poruszenia". A obrazek klasyk :frame_with_picture::female-artist:

Gruba ryba1piorunów

>ostatnio kupiłem NAS i 2x1TB dysk. Potrzebuję motywacji żeby go skonfigurować.

@wombatDaiquiri na mocy danej mi słowem honoru motywuję cię do konfiguracji NASa ku lepszemu życiu, łatwiejszym taskom i bezpieczeństwu danych.
Idźcie zatem i ... jedzcie vontrupke s cebulko ( ͡~ ͜ʖ ͡°)

Ja to cokolwiek opartego na nodejs mógłbym dopiero od niedawna odpalić, czego nie zrobiłbym na talerzowcu 5400.
Niemniej jednak idea całego nodejs jest dla mnie tak samo niepojęta, jak prawa fizyki zachodzące w czarnych dziurach (´・‸・ ` )

Gruba ryba1piorunów

@VonTrupka zgadzam się, jest to pojebane do produkcji. Ale pewien walor edukacyjny mam nadzieję będzie miało. No i wszystko jest w npm to można samemu robić duże rzeczy szybko. Wydaje mi się, że tak mogło powstać samo hejto xD

Pokaż więcej komentarzy (11)

Zawodowiec

w Programowanie

5piorunów

Pracuj efektywnie z Console API - devszczepaniak.pl

Z console.log korzystał chyba każdy, kto programował w JavaScript. Console API oferuje jednak znacznie więcej niż zwykłe wyświetlanie danych. Czy wiesz że Console API pozwala wyświetlać tabele, interaktywne fragmenty drzewa DOM, a nawet robić... screenshoty? W najnowszym artykule na

Zawodowiec

w Dyskusje

7piorunów

Głębsze spojrzenie na property descriptory w JavaScript

Jednym z pytań, jakie zawarłem w moim e-booku 106 Pytań Rekrutacyjnych Junior JavaScript Developer, odnosi się do property decriptorów w JavaScript. W najnowszym artykule na moim blogu postanowiłem nieco rozszerzyć ten temat i przedstawić w szczegółach czym są property descriptory, jakie

Inspirator

w Hydepark

1piorunów

AI, zamieniający obrazek na schemat blokowy?

AI, który przetwarza taki obrazek na SVG a lepiej na coś bardziej semantycznego jak mermaid - jest taki?

Np. input taki z obrazka i output kod SVG lub kod mermaid.

I też do zwykłych wzorów jak ten, na jakiś LaTeX - http://autonom.edu.pl/publikacje/mazur_marian/cybernetyka_i_charakter/wzory/wzor5.4.png

Inspirator0piorunów

Nie wygląda jak typowy schemat blokowy. Ciężko powiedzieć ale imo tak

Inspirator

w Hydepark

0piorunów

Powinno się pomyśleć nad rodzajem cookies/storage, które z założenia mogą być synchronizowane między urządzeniami, za pomocą Firefox Sync, konta Google do synchronizacji Chrome.

Bo wiadomo, że nie wszystkie dane z cookies/storage itd. warto synchronizować, ale niektóre by można, np. podstawowe preferencje, zalogowanie.

Tak jak w WebExtensions jest browser.storage.sync:

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage/sync

Zaleta, że robisz appke webową, i możesz olać kwestię synchronizacji pewnych danych, i masz to z automatu.

Taki odpowiednik tych usług z Google Play.

Tylko bardziej zdecentralizowane, bo oparte o przeglądarkę.

Może w ramach Project Fugu?

Gruba ryba

w Programowanie

3piorunów

Ejejejejej. Pochwalcie się co ciekawego ostatnio znaleźliście na temat - jakąś bibliotekę?

Może jakiś fajny AI model co można uruchomić lokalnie?

Może jakiś zajeb%@#% serwis?

Albo coś fajnego self hosted?

Mam wolny wieczór, chętnie o czymś ciekawym poczytam.



Kosmonauta0piorunów

ostatnio sporo siedzę w tematach virtio służbowo, ale chyba to mało dla Ciebie interesujące.

Gruba ryba0piorunów

@dotevo co uzywasz do wirtualizacji, i jakiego typu to jest wirtualizacja ? Serwerowa czy użytkownikowa ?

Kosmonauta1piorunów

Aby zrozumieć dlaczego virtio jest fajnym rozwiązaniam trzeba się najpierw zagłębić w to jak w ogóle wygląda postawienie systemu np. Androida na urządzeniu. Każdy telefon jest trochę inny. W inne miejsce może być podpięta pamięć, serial itd. Dlatego zawsze kilka tygodni zajmuje pokonfigurowanie kernela. Potem trzeba napisać HAL, który tłumaczy androidowi jak np. używać GPS. To znów wymaga czasu. Każda aktualizacja androida wymaga dopasowania tego co już jest. Często więc dużo czasu i pieniędzy wymaga takie coś - jest też Treble, ale mniejsza z tym teraz.

Konkluzja jest taka:
Różne systemy operacyjne odpalane na czymś w stylu telefonu. Jest system linux host, który przez virtio przekazuje wszystko do guesta (usb, bt, wifi itd) np. Androida i dzięki temu działa od razu bez zabawy w drivery po stronie androida.

To jest o tyle fajne, że jeśli się przyjmie na szeroką skalę to aktualizacja systemu będzie możliwa na dowolnym urządzeniu. Wymiana systemu na dowony inny używający virtio też nie będzie problemem. Może rynek telefonów zacznoe przypominać rynek PC, gdzie możesz sobie podmoenić system i wszystko śmiga.

Gruba ryba0piorunów

@dotevo no nadal to jest wirtualizacja, czy to nie będzie powodem że system będzie zamulać w stosunku do natywnego drivera? A co w przypadku gdy np. gps ma więcej funkcji niż standardowy? Bo z tego co rozumiem co piszesz - virtio to taki wrapper na API urządzenia, wirtualizacja urządzenia - które dostosowane jest do standardów - a ostatecznie komunikacja z urządzeniem poprzez virtio. Wrapper który nigdy nie pozwoli wygrać z apple - gdzie apple ma parę urządzeń i może pozwolić sobie na natywne wsparcie.
Dobrze kminie?

Też się kiedyś zastanawiałem dlaczego rynek telefonów nie jest jak rynek PC - gdzie w PC możesz mieć inny procesor, inną kartę graficzną, bluetooth, wifi itp... A kernel je obsługuje w większości - w standardzie.

Kompan2piorunów

@Klopsztanga Ostatnio zacząłem się interesować troche fizyką kwantową i okazuje się, że IBM u siebie na stronie ma darmowe narzędzie do budowy obwodów kwantowych - https://quantum-computing.ibm.com/composer/files/new
Niestety póki co nic z tego nie rozumiem :rolling_on_the_floor_laughing:

Composer - IBM QuantumProgram real quantum systems with the leading quantum cloud application.IBM Quantum
Gruba ryba1piorunów

@radler i za szybko nie potestujesz 😛

Pokaż więcej komentarzy (7)

Tytan

w Ciekawostki

7piorunów

Przeglądałem oferty pracy  i natrafiłem na ofertę  https://justjoin.it/offers/wykop-sp-z-o-o-frontend-developer-vue-js. Ciekawe, że w ogłoszeniu nie ma nic o  :thinking_face: Jest 2023 rok, frontend przepisany od zera na czysty  . Powodzenia w refactorowaniu

Kompan6piorunów

Spokojnie, za 3 lata się przepisze na TS, wszędzie się wstawi as any i kolejny hajsik za modernizacje zostanie skonsumowany :smiley:

Zawodowiec

w Programowanie

1piorunów

sa tu jacys frontendowcy/koderzy? mam kilka luznych pytan

Kompan1piorunów

React jest w zasadzie tylko biblioteką do renderowania elementów i JavaScript jest w nim kluczowym językiem programowania. W wielu firmach używa się już TypeScriptu, ale myślę, że warto skupić się teraz na czystym JS, żebyś później docenił TS i nie błaźnił się na przyszłych interview.

Co do sensu używania JS to chodzi tu przede wszystkim o automatyzację. Jak wyobrażasz sobie stworzenie takiego portalu jak chociażby Hejto tylko w HTML i CSS? Użytkownicy będą pisać do ciebie maila z komentarzami, a ty będziesz to skrzętnie osądzał pod każdym postem? No chyba nie bardzo. JavaScript obsługuje interakcje z użytkownikiem i komunikuje się z serwerem na którym przechowywanie są wszystkie dane. Te dane później są pobierane przez front-end i renderowane (np. z pomocą Reacta) w przeglądarce. React pozwala na upakowanie treści/logiki w niezależne komponenty np. komentarz pod wpisem. Dużo by się rozwodzić.

Do JavaScriptu polecam stronę MDN (angielski zalecany):
https://developer.mozilla.org/en-US/docs/Learn

Do Reacta oficjalna dokumentacja daje radę na start:
https://reactjs.org/tutorial/tutorial.html

Learn web development | MDNWelcome to the MDN learning area. This set of articles aims to guide complete beginners to web development with all that they need to start coding websites.Mozilla
Zawodowiec0piorunów

@Jayes spoko tylko srednio zrozumiales o co pytam, bo te zdanie o hejto w html/css jest zdeczka smieszne 😉 a ja wprost pytalem np o to jak pozycjonujesz pozniej te elementy/komponenty stworzone w reakcie na stronie - jakims csssem linkowanym do danego htmla (?) itd. z tego co rzucilem okiem na podstawy reacta to przy bardziej statycznych stronach typowo firmowych (bez bazy userow) w zasadzie niekoniecznie jest sens tego uzywac.

anyway rozumiem ze pracujesz jako frontendowiec - nie wydaje ci sie obecnie ten tech rozjebany jeszcze bardziej niz zwykle? pure html/css, do niego x frameworkow, ale jednoczesnie w calosci mozna pisac wszystko w reakcie do ktorego jest jeszcze x bzdur, oprocz reacta vue/angular i inne pierdoly

Pokaż więcej komentarzy (6)

Twórca

w Programowanie

0piorunów

Podstawowe logowanie błędów do małej aplikacji w  nie za miliony monet? Ma wyświetlić ładną stronę błędu po stronie serwera lub klienta, wysłać mi error ze stack trace, idealnie prawdziwym. Słucham propozycji.

Miałem sentry, ale do małego projektu to overkill, a w wersji darmowej resursów wystarczyło na tydzień.

Stack:    , trochę 

Specjalista1piorunów

Firebase Crashlytics możesz sobie sprawdzić. Sentry to klasyczek, ale po przekroczeniu limitu to monety uciekają z portfela.

Twórca

w Testowanie oprogramowania

4piorunów

JetBrains soft do automatyzacji testowania wypuścił w wersji beta - JetBrains Aqua. Bawił się ktoś tym już? Jakieś opinie?

Zajawka wygląda obiecująco

https://www.youtube.com/watch?v=z7Yjl2Agrwg

     

Koneser1piorunów

@ujdzie bawię się tą betą od kilku miesięcy. Jak dla mnie to ma to te same funkcje jak wtyczka testów to wersji ultimate

Twórca0piorunów
wtyczka testów to wersji ultimate

@KordianIDE ultimate = Intellij Ultimate?

Pokaż więcej komentarzy (4)

Specjalista

w Programowanie

1piorunów

Pomógłby mi ktoś ogarnąć ten dodatek? Chodzi o minimalizację przejrzanych wątków.

Po refreshu już działa nieźle, ale cały czas mam problem ze zdalnym ładowaniem kontentu.

Nie wiem na jakim evencie ustawić refresh dodatku.

https://greasyfork.org/en/scripts/458778-kraw%C4%99%C5%BCnik

https://streamable.com/0lvwij

  

Specjalista0piorunów

@MialaMatkaXyna Próbowałem, ale zamula mocno. Bardzo dużo jest zmian w DOM i nawet z filtrowaniem całe hejto się zamula.

Pokaż więcej komentarzy (6)

Kosmonauta

w Programowanie

3piorunów

pytałem na diskordzie ale tam idą dyskusje na głębokie tematy, także spróbujemy tutaj.

 

Jeszcze na łykopie przed ostatnią aktualizacją napisałem sobie prosty userscript do czarnolistowania. Działał na tej zasadzie że po załadowaniu strony brał predefiniowaną tablicę na przyklad tagów

var tagi=['przegryw','kononowicz'];

function schowaj_taga(item,index) {

let tag=$('div.d⁎⁎a p a[href="łykop/' + item +'"]' );

tag.remove() }

oczywiście upraszczam, ale efekt tego był taki że usuwane były całe gałęzie drzewa DOM no i było fajnie, dobry przekaz leciał.

W przypadku hejto jak próbuję zrobić to samo z elementem article to jest spoko póki nie dotknę paginacji. Frontent nie "reloaduje" dokumentu tylko usuwa kontekt zmiędzy obecnych <article> i wstawia nowy. Jeśli FE oczekuje 20 elementów article a ja zdążę usunąć 4 z nich to kolejny request o uzupełnienie treści wywali błąd 500.

Zastanawiam sie jak do tego podejść.

Kompan1piorunów

Zawsze możesz zrobić na pałę i ustawić sobie, żeby skrypt się odpalał np. co sekundę, przy pomocy setInterval - nie jest to za bardzo po bożemu, ale powinno działać :smiley: A to na tyle drobny skrypt, że nie powinno to jakoś wpłynąć na prędkość działania strony.

Kosmonauta0piorunów

@kocurio wiem wiem, ale nie cierpię takiej guwnorzeźby. to jeden z moich OCD -jak coś robię to ma to być zrobione dobrze, bo parafrazując mema już wpiszę do eksela i tak zostawię.

Pokaż więcej komentarzy (19)

Sum

w Programowanie

134piorunów

Skrypt do wołania wszystkich pulsujących dany wpis:

Wszystko dzięki użytkownikowi @vor7 - ja go tylko poprawiłem by działał gdy w URL pojawi się ? oraz by działał z zakładek i kopiował się automatycznie do schowka.

Instrukcja na chrome:

1. Kopiujecie kod: https://pastebin.com/xKRyAvnD

2. Wybieracie "Dodaj zakładkę"

3. Piszecie nazwę jaką chcecie

4. Wklejacie tutaj gdzie pokazuje w załączonym obrazku.

5. Teraz w dowolnym wpisie klikacie zakładkę i pyk pojawia się alert z listą użytkowników, ta sama lista pojawi się też w zakładce Console po wciśnięciu F12 oraz BĘDZIE AUTOMATYCZNIE SKOPIOWANA DO WASZEGO SCHOWKA!

6. Ctrl + V i wołacie ludzi.

7. ???

8. PROFIT!

Wołam dla testu plusujących poprzedni wpis: https://www.hejto.pl/wpis/zanim-ktos-zrobi-bardziej-porzadne-narzedzie-napisalem-prosty-skrypt-ktory-wyplu

@i_am_not_a_robot @MrStealYourGirl @Satch @janlaguna @0nc0l @Sakta @Fajrantboy @Chilled_Marrow @muarz7 @Odpad_selektywny @acetone @Zielczan @Rastablasta @sorek @evilonep @PanGargamel @_hdvn @LM7812 @ioskarpl



Kompan4piorunów

Ooo moje ulubione narzędzie do uruchamiania skryptów ❤️

Pokaż więcej komentarzy (12)

Gwiazdor

w Programowanie

13piorunów

Nowy wypok jest we vue, hejto w react. Wybór jest prosty.

 

Osobistość1piorunów

@beerman też pisałem w Reactcie i w Vue - i muszę przyznać że Vue 2.x było dosyć nieprzyjemne, ale z wprowadzeniem composition API (w sumie trochę zrzynka z reacts) nawet daje rade

Gruba ryba3piorunów

@beerman osobiście preferuję vue jako dev, i hejto jako user ( ͡° ͜ʖ ͡°)

Pokaż więcej komentarzy (6)

Kosmonauta

w Hejto

1piorunów

ktos tu niedawno postowal ze uzywanie na mobilku przysparza o gotowanie sie wody w kolanie.

Potwierdzam, przegladarka bezchromowa, zmiana trybu z gorace na najnowsze trwa dobre 5 sekund. Reakcja na input typu piorun rowniez ma wyczuwalnego laga.

Osobiscie na ile znam jsowe frameworki to problematyczny (ciezki po prostu) jest React, na desktopie i facebook chodzi jakby kopal krypto przy ruchu myszka :d

Pokaż więcej komentarzy (2)