#typescript

19
25
Ale jestem pojebany. 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 Na początek wyszperałem starego lapka sprzed ponad 10 lat i zaczynam przygotowania. Zainstalowałem tam Lubuntu #linux 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 #nodejs #typescript 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
koszotorobur

@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.

Catharsis

@dotevo Przewalone być dzieckiem informatyka xDDD

Meverth

@dotevo u mnie młoda ma windows obok swojego linuxa. Jak powiedziałem, jej czemu ja nie lubię windows, to sama wybrała Linux. Zresztą głównie do net-a, a później minecrafta :]

Na początku było bez ograniczeń, ale przeginała z siedzeniem przy kompie i teraz wyłącza się automatem z cron-a, a logować do kompa może na podstawie `/etc/security/time.conf`. Ograniczenia do sieci ma filtry na routerze.


@dotevo Przewalone być dzieckiem informatyka xDDD

@Catharsis zdecydowanie. Ale nie każdego. Brat zostawił dzieciom windows i płacze. Chodzi i je gania

Zaloguj się aby komentować

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 To by było dobre.

#przemyslenia #programowanie #nodejs #node #javascript #typescript #frontend
Klopsztanga userbar
Catharsis

@Klopsztanga Jest jeszcze Safari xD

JS pójdzie do historii i pozostanie tylko typescript  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

emdet

@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

damw

czy dożyje momentu, gdy JS pójdzie do historii i pozostanie tylko typescript

@Klopsztanga eeee what? Przecież typescript jest do JS transpilowany... Przeglądarki nie wykonują natywnie TS

Zaloguj się aby komentować

Kurwa co ja odjebałem xD Pierdoliłem się 2h ale działa! Wreszcie działa xDD

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

#typescript #programowanie
Klopsztanga userbar
fccf1865-514b-4604-9a7f-43ae2abd0600
wombatDaiquiri

@Klopsztanga myślałeś może o stworzeniu nazwanych funkcji?

rm-rf

Gdy całe życie klepiesz we wszystkim prócz js/TS i widzisz taki cudowny wypierd...

"I wy w tym piszecie?"

Klopsztanga

Trochę poprawione Cos mi nie idzie upiększyć typowania dla ...args

cb56d54d-769f-4ea2-a707-28d84dff925d

Zaloguj się aby komentować

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 dupa_id, czy server_id czy ujwieco_id

Chce to zrobic automatycznie,, by typescript sam to ogarnął poprzez kolumne schema #pytanie #programowanie #typescript
Klopsztanga userbar
def

A dobra, doczytałem do końca pytanie, to musisz dodac jeszcze string literał union type

type Indexes = "id" | "parent_id" itd

Klopsztanga

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

5070a545-dec5-4109-bb3d-d705c360e7e5
motokate

@Klopsztanga Nie wiem, czy dobrze rozumiem problem. Typescript działa tylko statycznie, na etapie kompilacji - jeśli dopiero w runtime dowiadujesz się, co dostałeś, to TS tego nie ogarnie, bo już go tam nie ma.

Zaloguj się aby komentować

Cześć!

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

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"?

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

Zostaw piorun, komentarz albo ... cokolwiek

#reactjs #programowanie #javascript #typescript #frontend

#programystic <- tag do obserwowania lub "czarnolisto-wania"

Zaloguj się aby komentować

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?

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

#react #reactjs #programowanie #javascript #typescript #frontend

Zaloguj się aby komentować

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 dupie?! ni wiem. Pojebane 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. #react #programowanie #nodejs #typescript #frontend #backend
Klopsztanga userbar
HmmJakiWybracNick

@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

Klopsztanga

@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

HmmJakiWybracNick

@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.

Marchew

@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

wombatDaiquiri

@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".

rakokuc

@Klopsztanga na froncie pokazujemy prącie, stąd te problemy.

Zaloguj się aby komentować

Cześć Wam

Dzisiaj ciekawostka o ReactJs numer #3

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

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 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!

#react #reactjs #programowanie #javascript #typescript #frontend

Zaloguj się aby komentować

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.

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

#react #reactjs #programowanie #javascript #typescript
a4c801a7-17f1-4bf0-aec5-ebc1b7539841
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.
#typescript #frontend #programowanie

Zaloguj się aby komentować

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")
#programowanie
#typescript
#webdev
Hepar

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


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


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

krokietowy

@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.

Hepar

@krokietowy A czy w typescripcie masz funkcje czy klasy z metodami? Bo Dekoratory typescriptowe tylko do metod można podłączyć - https://www.typescriptlang.org/docs/handbook/decorators.html

Zaloguj się aby komentować

Przeglądałem oferty pracy #programowanie i natrafiłem na ofertę #wykop https://justjoin.it/offers/wykop-sp-z-o-o-frontend-developer-vue-js. Ciekawe, że w ogłoszeniu nie ma nic o #typescript Jest 2023 rok, frontend przepisany od zera na czysty #javascript . Powodzenia w refactorowaniu
ff5f5df0-cd20-4578-8e66-2eae966e6502
uxie

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

Zaloguj się aby komentować

Zaczynam pierwszą pracę w #programowanie i trochę się stresuje. Jakieś rady dla nowego w zawodzie?
#typescript #frontend
Kazix

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

tatarysh

@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ą.

bimberman

@Anon co będziesz programował i w jakim języku ?

Zaloguj się aby komentować

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? (° ͜ʖ °)
#typescript

Więcej?

kocurio

Fajne rzeczy 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

LatarniaDiogenesa

@Magiczny_Magik wołaj lub stwórz własny tak do obserwowania

callmejamone

@Magiczny_Magik czyta, czyta. Wincyj!

Zaloguj się aby komentować

Następna