Hejto.pl
Dodaj post

Wpisz coś do wyszukania (minimum 2 znaki)

#typescript

Kosmonauta

w LINUX

11piorunów

Ale jestem po⁎⁎⁎⁎ny. Wymyśliłem sobie, że to może być powoli czas kiedy mój syn dostanie własny komputer. Dzieciak za kilka dni będzie mieć 8 lat. Smartphona pewnie nie dostanie jeszcze długo bo uważam, że telefon w kieszeni wyrabia sporo niedobrych nawyków, a komputer to jednak coś innego. Obecne dzieciaki mają problem z obsługą myszki, pisaniem na klawiaturze i wszystko przez to, że obecnie dzieci grają na telefonach lub konsolach (25 lat temu używaliśmy komputerów do gier). Udało mi się go zainteresować komputerami dość mocno i nawet w godocie robiłem z nim prostą grę, więc mam nadzieję, że odziedziczył zainteresowanie po mnie :grinning: Na początek wyszperałem starego lapka sprzed ponad 10 lat i zaczynam przygotowania. Zainstalowałem tam Lubuntu i jeszcze parę rzeczy muszę pokonfigurować.
W sumie ciekawi mnie co o tym myślicie, dalibyście dziecku kompa?

Pomyślałem, żeby nie podawać hasła do wifi i niech używa go tylko offline - przynajmniej przez jakiś czas. Gdy będzie potrzeba to zawsze coś mogę wgrać z mojego konta administratora. Po pewnym czasie stwierdziłem, że to może nie jest najlepszy pomysł, że może lepiej użyć jakiejś aplikacji do kontroli rodzicielskiej i odblokować mu takie strony jak duolingo czy typingclub, aby sobie ćwiczył w wolnych chwilach.
Szperałem, szukałem i w sumie żadna apka mi nie spasowała. Albo zbyt rozbudowane, albo zbyt proste. No i postanowiłem napisać swoją aplikację do kontroli rodzicielskiej. Wczoraj wieczorem zacząłem i w sumie idzie to całkiem nieźle. Wszystko implementuję w   i do tego nest.js Aplikacja odpalana jest z uprawnieniami roota i wystawia swaggera. W konfiguracji jest podany klucz publiczny do sprawdzenia JWT, a na moim prywatnym kompie generuję sobie JWT. To co udało mi się zaimplementować w te 2-3 godziny to monitorowanie wszystkich procesów na kompie - odpowiedni serwis generuje zdarzenia i one są odpowiednio obsługiwane. Dzięki temu będę wiedział ile czasu co ma włączone. Muszę jeszcze ogarnąć strategię dzielenia procesów na kategorie no i jeszcze dodać limity i filtrowanie stron internetowych podawane przez swaggera. No i w planach komunikacja z HA po mqtt i takie tam. W sumie myślałem, że to będzie trudniejsze, ale idzie elegancko.
W planach jest, że wyślę na odpowiedni POST do apki i np. będę w stanie zrobić mu bana na określoną grę przez kilka dni. Ale to jest złe :grinning:

Fanatyk2piorunów

@dotevo - z pomysłów kontrolowania dzieciom dostępu do internetu to polecam router z zainstalowanym OpenWRT gdzie można dedykować dzieciom jedno radyjko, filtrować ruch sieciowy, włączać i wyłączać internet o określonych godzinach (lub na żądanie) i wiele innych.

Osobistość3piorunów

@dotevo Przewalone być dzieckiem informatyka xDDD

Pokaż więcej komentarzy (24)

Gruba ryba

w Hydepark

8piorunów

Pisząc aplikację, przeskoczyłem do frontendu od sporej przerwy.

I tak sobie myśle, że dzisiaj pracować w frontendzie to spoko sprawa w stosunku do kiedyś.

Dzięki standaryzacji, powszechności modułów ESM w przeglądarkach, już wszystkie babele, transpilery, CSS prefixery i uje muje dzikie węże to historia.

Jesteśmy już w tym stanie, gdzie wszystkie przeglądarki są spoko. Nie ma obecnie żadnego IE czy netscape który tylko wk@#^@.

Jestem tylko ciekaw, czy dożyje momentu, gdy JS pójdzie do historii i pozostanie tylko typescript :smiley: To by było dobre.



Osobistość2piorunów

@Klopsztanga Jest jeszcze Safari xD
>JS pójdzie do historii i pozostanie tylko typescript :smiley: To by było dobre.
Oby tak się nigdy nie stało. Zresztą idę o zakład, że to JS będzie jeszcze tańczyć na grobie TypeScripta xD

Fanatyk0piorunów

@Klopsztanga nie jestem od dawna w temacie, ale fakt faktem że standaryzacja ułatwiła wiele na tym polu.
Pamiętam pierwsze zajęcia z HTML na studiach, gdzie jedna z pierwszych informacji było to, że dla IE piszemy w zasadzie osobne wszystko xD

Pokaż więcej komentarzy (6)

Gruba ryba

w Hydepark

13piorunów

K⁎⁎wa co ja odjebałem xD Pi⁎⁎⁎⁎⁎iłem się 2h ale działa! Wreszcie działa xDD

Wole to dzisiaj skończyć bo jutro nie będę wiedział co to k⁎⁎wa jest xD



Tytan1piorunów

Gdy całe życie klepiesz we wszystkim prócz js/TS i widzisz taki cudowny wypierd...
"I wy w tym piszecie?"

Pokaż więcej komentarzy (14)

Gruba ryba

w Hydepark

1piorunów

Kude xD Mam problem w TypeScript xD

Da się zrobić interfejs dla tego obiektu?
https://pastebin.com/hZvaA6Sx

DOCZYTAJ DO KOŃCA:
Chodzi o to by ten interfejs walidował stringi w indexes na podstawie kluczy w schema? Chodzi o to, by w kolumnie indexes nie było innych wartosci niż klucze obiektu z sasiedniego obiektu schema.

Dane wlatują w funkcję, i nie wiem jakie kolumny będą z poziomu programisty. Więc wszelakie
index: 'id | 'server_id'

odpada, bo nie wiem czy to bedzie id czy d⁎⁎a_id, czy server_id czy ujwieco_id

Chce to zrobic automatycznie,, by typescript sam to ogarnął poprzez kolumne schema

Gruba ryba0piorunów

A dobra, doczytałem do końca pytanie, to musisz dodac jeszcze string literał union type
type Indexes = "id" | "parent_id" itd

Gruba ryba0piorunów

Za pomocą funkcji jakoś mi się udaje dobrze to typować... hmm

Pokaż więcej komentarzy (15)

Kompan

w Dyskusje

5piorunów

Cześć!

Dzisiaj jeszcze garść krótkich ciekawostek o  a później już zaczniemy może coś bardziej technicznego :smiley:

ReactJS: 7 Ciekawostek:

1. Początki w Facebook
2. Pierwsze publiczne przedstawienie
3. To nie jest framework!
4. Virtual DOM – bohater (bardzo) niewidzialny
5. Inspiracja wzięta z XHP
6. React Native - brat bliźniak
7. A w sumie, to dlaczego "React"?

:point_right: Pełny post na https://programystics.com/reactjs/reactjs-7-ciekawostek/

Zostaw piorun, komentarz albo ... cokolwiek 😉

    

<- tag do obserwowania lub "czarnolisto-wania"

Kompan

w Dyskusje

2piorunów

Cześć Wam!

Wracamy do gry, po burzliwym okresie w PL 💪
Ostatnio pastwiliśmy się nad wadami Virutal DOM

Dziś przyszedł czas na jego zalety. Jedną z nich poznaliśmy 2 posty wcześniej, lecz to tylko "liźnięcie" tematu.

>Wirtualny DOM, to Świety Graal Frontendu? :sparkles:

:point_right: Więcej na ten temat: https://programystics.com/bez-kategorii/wirtualny-dom-to-swiety-graal-frontendu/

ps jeśli chcesz się podzielić INNYMI doświadczeniami na w/w, to zapraszam do komentowania 🔥

Gruba ryba

w Hydepark

12piorunów

Właśnie zrobiłem upgrade bibliotek projektu w React, chociaż jestem backendowcem głównie, ale ogólnie orkiestrą.

1. Wyje@#% yarn'a i dałem NPM'a. Kiedyś yarn miał sens, ale npm rowniez jest szybki lub nawet szybszy
2. Jako to ze npm install && npm update jest czysty, to może bun'a zaciągne dla nich, by Ci/CD był szybszy.
3. Nie wiem jakim cudem wczesniej yarn install działał ale npm install nie. Były locki między bibliotekami, ale yarn ma to w d⁎⁎ie?! ni wiem. Po⁎⁎⁎⁎ne narzędzie, npm lepszy, bo prosty i ładniej pokazuje zależności i błędy. Yarn czasem działał jak wywalilem npm_modules
4. Upgrade nodeJS z 16lts na 18lts
5. Z 50 paczek co były updatetowane, tylko 6 nie jest najnowszych, z powodu że locki na reacie 17 są
6. Frontend team miał wyjebane na to od 3 lat
7. A to wszystko w 1 dniówkę.
8. TypeScript działa jak powinien. Dzięki TS upgrade dla mnie był możliwy i łatwy. Ale też ma swoje błędy (np react-google-recaptcha robiła mnie w konia przez zły import statement)
9. Odchudziłem projekt z wielu bibliotek, które nie były wykorzystywane
10. Poustawiałem rygorystyczne eslinty, depchecki itp by nie zostawiali po sobie syfu
11. Ustawiłem sbom by ich ganiać jak jest jakiś security bug w bibliotekach w przyszłości, że ponad 50 bilbiotek ma security bug xD

Zostaje jeszcze przeniesienie material-ui na wersję 5, ale tego na razie nie tykam.

Krzyczeli że nie możliwe, a wystarczyło usiąść po prostu do tego i na spokjnie ogarnąć bez złego nastawienia.

Czuje dobrze człowiek dzisiaj.

Osobistość0piorunów

@Klopsztanga Ja mega lubię podbijać biblioteki i rozwiązywać problemy, które powodują. Jak wszystko zacznie działać, to jest mega satysfakcja. Gorzej jak wychodzi po miesiącu, że coś zjebało się mega specyficznego, na produkcji XD
Co do yarna to jednak moim zdaniem działa szybciej od npma i lokalnie zawsze używamy yarna, ale wszystko na ci/cd leci na npmie.
Frontendowcy to tak mają, że coś się nie da zrobić, do tego narzekają, że coś tam brzydko i jeszcze nieczytelnie piszą kod ;x

Gruba ryba0piorunów

@HmmJakiWybracNick na CI/CD widać różnicę, i to sporo. około 25% szybszy jest NPM.

Jak ogarniasz yarna i npm na raz z ich venodr lockami?

Co to satysfakcji - to prawda, spoko robota. Po prostu zabijasz "muchy" po kolei :smiley:

Osobistość0piorunów

@Klopsztanga 
Nie miałem nigdy problemu z mieszaniem yarna i npma, ale znalazłem, że yarn-locka można zrobić na podstawie package-locka, więc jakby były jakieś problemy, to można uderzyć w tym kierunku - https://classic.yarnpkg.com/blog/2018/06/04/yarn-import-package-lock/
Ale faktycznie, od jakiegoś czasu npm jest dużo szybszy, niż był jakiś czas temu. Pamiętam, że jak kiedyś dodawałem nową libkę, to yarn całość robił w 15 sekund, a npm potrafił mielić przez 3-4 minuty, jakby wszystko przerzucał od początku, a nie tylko tą jedną dodawaną libkę.
Mam w planach podbić jeszcze yarn classic (1.x.x), na tego nowego 3.x.x, może pod koniec roku będzie przestój jakiś, to się zrobi, bo ciekawy jestem czy będzie szybszy.

Yarn import now uses package-lock.jsonFor a while now, the JavaScript ecosystem is a host to a few different dependency lock file formats, including yarn’s yarn.lock and npm’s package-lock.json.Yarn
Gruba ryba0piorunów

@wombatDaiquiri @Klopsztanga
Wygląda ciekawie, ale może przetłumaczcie na język osobnika którego szczytem kodzenia jest jeżeli w jeżeli w jeżeli w jeżeli w jeżeli w jeżeli. xlsx

Gruba ryba2piorunów

@Marchew generalnie kolega zrobił "sprzątanie", tzn. zaktualizował wersje paczek z których korzystają (to jak byś miał zewnętrzne arkusze np. z innego działu), wymienił narzędzia żeby szybciej rzeczy działały, ustawił wymagania tego jak pisać kod, żeby mógł być wdrożony do głównej gałęzi. Generalnie "ogarnął" środowisko pracy o którym jak rozumiem koledzy mówili że "się nie da".

Pokaż więcej komentarzy (13)

Kompan

w Dyskusje

2piorunów

Cześć Wam 👋

Dzisiaj ciekawostka o ReactJs numer #3

> Wirtualny DOM (Virtual DOM) w ReactJS przynosi wiele korzyści, lecz ma również wady! Jakie?

:point_right: Więcej na ten temat: https://programystics.com/reactjs/wirutualny-dom-nie-taki-bez-wad/

ps te ciekawostki nie omawiają tematów dogłębnie, mają jedynie zachęcić osoby do przyglądnięcia się reactjs :smiley: tak, wiem, doskonały temat na zachętę dot. WAD 😂

pss jeśli chcesz podzielić się doświadczeniami na w/w to śmiało, zapraszam 🔥 będzie mi bardzo miło!



Kompan

w Dyskusje

5piorunów

Cześć Wam 👋

Dzisiaj wrzucam ciekawostkę #2 o ReactJs!

>TL;DR: ...zamiast przekształcać całą stronę za każdym razem, kiedy chcemy coś zmienić, dokonujemy tylko niezbędnych zmian.
>
:point_right: Więcej na ten temat https://programystics.com/reactjs/wirtualny-dom-co-to-jest-i-jak-dziala/

Jeśli macie jakieś doświadczenia z Virtual Dom, to podzielcie się. Najlepsze będą te negatywne😊

    

Kompan0piorunów

Jutro pojawi się nowy wpis dot. wad Virutal Dom, bo nigdy nie może być "perfekcyjnie", stay tuned! :smiley:

Kompan0piorunów

Komentarz usunięty

Pokaż więcej komentarzy (5)

Zawodowiec

w Programowanie

6piorunów

Wzorzec projektowy Mediator - devszczepaniak.pl

Wzorzec projektowy Mediator, wbrew pozorom, z powodzeniem można zastosować nawet w prostej aplikacji. W najnowszym artykule na blogu przedstawiłem założenia wzorca Mediator, wady i zalety, a co najważniejsze praktyczne przykłady implementacji w TypeScript. #programowanie

Kosmonauta

w Programowanie

0piorunów

Czego najlepiej użyć do prostej stronki w TypeScript, która ma niemal pusty index.html. Więc vue.js, react itd odpadają.

Kiedyś miałem w npm zrobiony skrypt typu build, który odpalał tsc i jakieś minify. Ale to było pewnie 3 lata temu albo i więcej, więc pewnie można fajniej.

Pokaż więcej komentarzy (15)

Fanatyk

w Programowanie

0piorunów

Posiadam program napisany w QML i typescript w którym to z poziomu QML wywołuję funkcje typescriptowe.

Po stronie QML jest coś takiego

> f.findSomething(undefined)

a w typescript coś takiego

> export function findSomething(what: string) {

> if (what == "LEFT") {

> return true;

> }

> return false;

> }

widać że funkcja oczekuje stringa a wrzucany jest do niej undefined, którego się nie spodziewa, ale też żaden błąd typu nie wyskakuje, bo przy konwersji do javascript typy są zapominane.

Walidacja pojedynczo parametrów na początku funkcji odpada, bo funkcji jest po prostu zbyt dużo i bardzo łatwo jest o pomyłkę a i zmiany parametrów funkcji byłyby bardziej problematyczne.

Myślałem nad może jakimiś wraperami na funkcje, które automatycznie weryfikowałyby typ(nie wartość) np.

> @verifyParamsInRuntime

> export function findSomething(what: string)

który by się konwertował na taki kod

> export function findSomething(what: string) {

> console.assert(type(what) == "string")

Kompan0piorunów

Dokładnie tak, typeof what === 'string' :smiley:

A jeżeli chcesz coś mega pro co nie przepuści żadnego stringa to:

function isString (what: unknown) {
return (Object.prototype.toString.call(what) === '[object String]');
}

Różnica jest taka, że gdy 'what' zainicjujesz w ten sposób: "let what = new String('LEFT') to pierwszy sposób zwróci false, a drugi true :smiley:

function isString (obj: unknown) {
return (Object.prototype.toString.call(obj) === '[object String]');
}

let x = new String('some txt');

console.log(typeof x === 'string') // false
console.log(isString(x)) /// true

Fanatyk0piorunów

@Hepar Tyle że takich funkcji są dziesiątki i pisanie tego dla każdego argumentu zrobi jeszcze więcej zamieszania, więc szukam jakiejś automatycznej metody na robienie tego.

Fanatyk0piorunów

@Hepar Tylko funkcje,
Na dekoratory patrzyłem już kiedyś i myślałem że może ktoś z nimi już coś podobnego zrobił(dynamicznych języków używam dość rzadko, więc od zera trochę by mi to zeszło by zrozumieć), ale skoro działają one tylko na klasach to raczej całkowicie odpadają

Pokaż więcej komentarzy (4)

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:

Kompan

w Programowanie

2piorunów

Zaczynam pierwszą pracę w  i trochę się stresuje. Jakieś rady dla nowego w zawodzie?

 

Kosmonauta1piorunów

@Anon wyłoncz kamerke i mikrofą na callach, ogólnie nie odzywaj się i udawaj psa

Osobistość1piorunów

@Anon przede wszystkim praca to praca, musisz być "zadowolony" ze swojego kodu - jak na swój poziom. No i sugeruje poświęcić dużo czasu (przynajmniej na początku) na szlifowanie umiejętności, same do głowy nie wejdą.

Pokaż więcej komentarzy (7)

Specjalista

w Programowanie

21piorunów

Zastanawiam się czy kontynuować serię wpisów na temat mniej lub bardziej znanych funkcji i tricków TypeScripta. Ktoś to faktycznie czyta i uważa za przydatne czy robię to tylko dla sztuki? (° ͜ʖ °)

Więcej?

  • Tak90%
  • Nie10%

60 głosów

Kompan0piorunów

Fajne rzeczy :smiley: Ostatnio zacząłem na poważnie używać TS, poprzednio mi się wydawało, że to typowanie strasznie spowalnia pisanie, ale jak od początku to dobrze ogarniasz to rzeczywiście potem jest dużo łatwiej przy podpowiadaniu kodu albo przy refaktoryzowaniu jakichś elementów. Proponowałbym też zrobienie jakiegoś autorskiego taga, żeby potem łatwo dało się znaleźć wszystkie te triki :smiley:

Pokaż więcej komentarzy (3)