Efekty zabawy rxjs - przejście z iteratora asynchronicznego na Observable w TypeScript - może komuś się przyda.
https://gist.github.com/js29a/270d708b7cde9d9ee6cabf44aae8e89b
fromAI. GitHub Gist: instantly share code, notes, and snippets.
https://gist.github.com/js29a/270d708b7cde9d9ee6cabf44aae8e89bNie tylko JavaScript i Java. Jakie nowe języki programowania warto znać
Możliwości zawodowe i zarobki w branży IT kształtują się w zależności od znajomości określonych technologii i biegłości w posługiwaniu się nimi, dlatego warto znać więcej niż jeden język programowania. Nieustanną popularnością wciąż cieszą się języki znane od lat, takie jak JavaScript, Java czy Python. Coraz więcej osób zaczyna jednak korzystać z języków, które mogą być odpowiedzią na problemy generowane przez dinozaury z programistycznego świata. Chcesz dowiedzieć się, jakie możliwości mogą dać Ci takie języki jak Rust, Elixir, TypeScript czy Go? Przygotowaliśmy zestawienie książek, które pomogą Ci poznać potencjał tych języków. Dzięki nim sprawdzisz, czy warto nauczyć się któregoś z nich.
Rust – gwarancja wydajności
Rust to język programowania, który pozwala szybciej pisać niezawodne oprogramowanie. Daje możliwość kontrolowania szczegółów niskiego poziomu (jak wykorzystanie pamięci) w połączeniu z ergonomią wysokiego poziomu, eliminując kłopoty tradycyjnie związane z językami niskiego poziomu.
Programowanie w języku Rust to oficjalna książka na temat tego języka stworzona przez Steva Klabnika i Carol Nichols we współpracy ze społecznością Rusta. Publikacja uczy, jak w pełni korzystać z właściwości Rusta – od instalacji po tworzenie własnych niezawodnych i skalowalnych programów. Autorzy zaczynają od podstaw, takich jak tworzenie funkcji, wybieranie typów danych i wiązanie zmiennych i przechodzą następnie do bardziej zaawansowanych pojęć takich jak m.in. bezpieczeństwo pamięci Rusta, testowanie, obsługa błędów i efektywna refaktoryzacja.
Elixir – jak tworzyć szybkie i niezawodne aplikacje
Język Elixir został stworzony w 2012 roku przez José Valima. Przez kilka lat był rozwijany przez społeczność, by w 2020 roku uzyskać pełną dojrzałość. Elixir pozwala na tworzenie szybkich i niezawodnych aplikacji, niezależnie od tego, czy tworzysz duże systemy rozproszone, zestaw usług backendowych, czy prostą aplikację webową. Przejrzysta składnia Elixira oraz sposób myślenia nastawiony na programowanie funkcyjne, sprawiają, że oprogramowanie jest łatwe w zapisie, odczycie i utrzymaniu.
Tego, jak budować aplikacje rozproszone o jakości produkcyjnej przy użyciu Elixira, dowiesz się z książki Elixir w akcji. Autor przedstawia ten wysoce skuteczny język na przykładach podkreślających korzyści płynące z funkcyjnego i współbieżnego programowania za pomocą Elixira. Przekonasz się, że framework OTP może znacznie zredukować ilość nużącej, niskopoziomowej pracy z kodem. Poznasz również praktyczne metody stosowania współbieżności, ucząc się, jak rozpraszać gotowy system między wieloma maszynami.
Książka jest przeznaczona dla programistów posiadających wiedzę z zakresu aplikacji klienta/serwera na poziomie średniozaawansowanym oraz znających takie języki programowania jak Java, C# czy Ruby.
TypeScript – koniec z niepewnością typowania
TypeScript to język programowania, z którego korzystają tacy giganci jak Google, Netflix, LinkedIn, Facebook i wiele innych firm. Język ten został stworzony jako nadzbiór JavaScriptu, by być odpowiedzią na problemy, które wiążą się z korzystaniem z JavaScriptu.
Jeśli jesteś średniozaawansowanym programistą JavaScript i chcesz nauczyć się, jak opanować język TypeScript, powinieneś sięgnąć po książkę Programowanie w TypeScript. Dzięki niej zrozumiesz, w jaki sposób TypeScript pomaga w eliminowaniu błędów i usprawnia współpracę wielu programistów nad tym samym kodem.
Zaczniesz od podstaw – poznasz różne typy i operatory TypeScript, dowiadując się, do czego służą i jak ich używać. Zagłębisz się w bardziej zaawansowane zagadnienia – zrozumiesz system typów TypeScript, m.in. to jak bezpiecznie obsługiwać błędy i budować programy asynchroniczne. Zdobędziesz praktyczne umiejętności – dowiesz się jak, używać języka TypeScript w połączeniu z ulubionymi frameworkami front-endowymi i back-endowymi, migrować istniejący projekt JavaScript do TypeScripta i uruchomić aplikację TypeScript w środowisku produkcyjnym.
Mały, zdolny język Go
Go to prosty język programowania zaprojektowany przez Google do rozwiązywania dużych problemów. Jest to mały, ale zdolny język, który może być zrozumiany i używany przez każdego, bez względu na jego doświadczenie. Zarówno hobbyści, osoby początkujące, jak i profesjonaliści mogą korzystać z tego szybkiego, nowoczesnego języka – jedyne, czego potrzebują, to odpowiednie źródło.
Książka Zacznij programowanie w Go to przydatne wprowadzenie do podstaw i zasad tego języka, które może służyć jako solidna baza dla kolejnych programistycznych projektów. Dzięki tej publikacji opanujesz składnię Go, będziesz pracować z typami i funkcjami, odkryjesz bardziej zaawansowane zagadnienia jak stan i współbieżność, po drodze rozwiązując ćwiczenia, które pomogą utrwalić to, czego się nauczyłeś.
Dla Czytelników 4Programmers mamy niespodziankę – kod rabatowy 4programmers upoważniający do dodatkowej, 5% zniżki od cen promocyjnych na książki papierowe IT od Wydawnictwa Naukowego PWN. Kod jest ważny do końca czerwca, wystarczy go wpisać w ostatnim kroku podsumowania zakupu. Zapraszamy do księgarni PWN.
Programowanie w języku Rust to oficjalna książka na temat Rusta: języka programowania na licencji open source, który pozwala nam szybciej pisać niezawodne oprogramowanie. Rust daje możliwość kontrolowania szczegółów niskiego poziomu (jak wykorzystanie pamięci) w połączeniu z ergonomią wysokiego poziomu, eliminując kłopoty tradycyjnie związane z językami niskiego poziomu. W książce Programowanie w języku Rust dwaj członkowie Rust Core Team pokazują, jak w pełni korzystać z właściwości Rusta – od instalacji po tworzenie własnych niezawodnych i skalowalnych programów. Zaczynamy od podstaw, takich jak tworzenie funkcji, wybieranie typów danych i wiązanie zmiennych i przechodzimy następnie do bardziej zaawansowanych pojęć takich jak: posiadanie i pożyczanie, czasy życia i cechy bezpieczeństwo pamięci Rusta, które gwarantuje budowanie szybkich, bezpiecznych programów testowanie, obsługa błędów i efektywna refaktoryzacja typy generyczne, inteligentne wskaźniki, wielowątkowość, obiekty cech oraz zaawansowane dopasowywanie wzorców użycie Cargo - wbudowanego w Rust menedżera pakietów, służącego do budowania, testowania i dokumentowania swojego kodu i zarządzania zależnościami używanie zaawansowanego kompilatora Rusta wraz z technikami programowania opartymi na kompilatorze Książka zawiera dużo przykładów kodu, a także trzy rozdziały poświęcone budowaniu gotowych projektów przeznaczonych do sprawdzenia swojej wiedzy: gra w zgadywanie, implementacja narzędzia wiersza poleceń w języku Rust oraz wielowątkowy serwer. Patroni:
https://ksiegarnia.pwn.pl/Programowanie-w-jezyku-Rust,783546017,p.htmlAle mi dzisiaj JS napsu
krwi. Faktycznie to piszę w TS, ale feature jest JSowy - wynika z engine.
Jest sobie coś takiego jak Promise
. Fajne, fajne. Nieco zrypana monada, ale da się z tym żyć - (w zasadzie to trzeba).
Zrypane jest to, że do map
i flatMap
używana jest jedna metoda then
.
console.log("started");
const myObj = {a:"works", dżem: (x)=>{console.log('did not expect that');} };
const p1 = new Promise( (res, reject) =>
setTimeout(() => res(myObj), 1000)
);
p1.then ( x => console.log(x.a));
Kod powyżej powinien wyświetlić started
, a po chwili works
- nic dziwnego.
Zmieńmy tylko nazwę metody dżem
na then
i działanie programu się cokolwiek zmienia.
console.log("started");
const myObj = {a:"works", then: (x)=>{console.log('did not expect that');} };
const p1 = new Promise( (res, reject) =>
setTimeout(() => res(myObj), 1000)
);
p1.then ( x => console.log(x.a));
Teraz nie wyświetli się napis works
(wcale!!!) - natomiast automagicznie wywoła się metoda myObj.then
.
Wiedziałem, że w metodzie Promise.then
możemy przemapować rezultat na jakiś inny typ (jak map
), albo zwrócić kolejny Promise
i wtedy będzie działać klasyczne łączenie monad (jak flatMap/bind
).
Ale okazuje się, że to niecała prawda.
Otóż wcale nie trzeba zwrócić Promise
, aby łączenie przez odpowiednik flatMap
zadziałało. Wystarczy, że zwrócimy obiekt, który zupełnie przypadkiem(!!!) ma metodę o nazwie then
.
I wtedy łapie się on jako Thenable
(w TS jest to oznaczone jako PromiseLike
) i... cały mechanizm rusza sam. Jest to ewidentnie celowe (feature) , ale dla kogoś przyzwyczajonego do Nominal typing
i normalnych monad mocno nietypowe. Straciłem ze 2 godziny zanim zrozumiałem co się dzieje.
Structural typing: ty how do you do
złamany!
@jarekr000000: skrót myślowy z silniczkiem - porównaniem do gier planszowych karcianek - zbierasz karty a potem układasz z nich ciąg i tworzysz "silniczek", który jakimś kombosem nabija Tobie punkty albo daje surowce albo bije mocniej przeciwnika. Dla mnie pisanie w bashu z pipe'ami czy to co jest w artykule od Kamila wygląda na to samo. Robię podstawowe operacje, z nich składam bardziej "skomplikowane" finalnie mam silniczek / pipeline przetwarzania danych i z tego układam program.
@MuadibAtrides: jakieś tam podobieństwo do robienia pipe na IO jest (luźne). Ważnym punktem jest to, że możesz zrobić nowy skrypt, który komponuje kilka komend. W fp to by była nową wartość - skomponowana z monad. (Aczkolwiek poza samą operacją |
to wszystko w bashu jest tak daleko od fp jak się tylko da).
Uczę się nowego języka - TypeScript. To taki JavaScript na sterydach. Gdy na co dzień używa się języków dynamicznie typowanych, ciężko przywyknąć do statycznego typowania :)
#typescript #javascript
Po raz koljeny współczujemy nierozróżniania typowania silnego od statycznego.
Razem z dotnetomaniak.pl i dotnetconf.pl organizujemy live'y.
W ten czwartek ja zainicjuje nasze spotkania pokazując istniejące rozszerzenie, które powstało na potrzeby projektu nad którym pracuje.
Nie będzie .NET'a ale dla odmiany #typescript, #json, #axios, #promises, #webapi
Zapraszam!
Bardzo mi się podoba pomysł live'a jako sposób na wykorzystanie wolnego czasu! :) Szczególnie w czasie, gdy lepiej nie wychodzić z domu tak często jak kiedyś. — Przejrzyście zacząłeś. Co, kto, dlaczego (https://en.wikipedia.org/wiki/Five_Ws). Dalej: świetnie, że uruchomiłeś rozszerzenie bez żadnych zmian własnych, od razu. — "<npm pobiera paczki>
…W międzyczasie, nie wiem, mógłbym coś zaśpiewać…" ;) — Oby ten żart z bazą był zrozumiały w zespole, jeśli ktoś oglądał. ;) — Jedynie początek uważałem, całości nie przesłuchałem uważnie, jedynie pobieżnie, więc nie mogę dalej komentować. (Gdybym miał kiedyś potrzebę stworzenia takiego rozszerzenia, przesłucham dokładnie). — (Muszę się jeszcze przyzwyczaić do Pawła bez @Jarosław Stadnicki . A Piotrka nie znałem; fajnie poznać kogoś nowego. Czy to on? -> https://mvp.microsoft.com/en-us/PublicProfile/5002469).
Cześć! Przygotowałem dla Was Prasówkę Technologiczną. Konkretne materiały z różnych dziedzin. Każdy powinien znaleźć coś wartościowego dla siebie :)
01) Przez długi czas wydawało się, że REST API z JSON są jedyną opcją. Obecnie to już nieprawda. Bufory protokołów/gRPC i #graphql weszły do użytku i są często brane pod uwagę przy nowych projektach. Autor próbuje rozwiać pewne mity i wyobrażenia o tym, skąd pochodzi wydajność gRPC.
Link: https://blog.q42.nl/graphql-keep-alive-4379fe1a8b58
02) [Video] #tinder. Czy #reactnative może swipe-ować za Ciebie? Przyjrzyjmy się aplikacji Tinder i programowi do obsługi gestów React Native, aby zaimplementować gest przesuwania i animację. -- Film Williama Candillon w linku:
Link:
03) Ogromne zapotrzebowanie na usługi programistów nie oznacza, że w #it można dostać pracę od ręki. Fakt, rekruterzy walczą o kandydatów na różne sposoby, ale ich też trzeba do siebie umiejętnie przekonać. Od tego, jak się zaprezentujesz, będzie zależała Twoja dalsza kariera.
Link: https://geek.justjoin.it/junior-developer-przygotowac-sie-szukania-pracy/
04) Evan You zapowiedział #vuejs 3! Wykorzystując najnowsze osiągnięcia Vue 3 będzie ulepszone względem Vue.js, które znamy i kochamy. -- Czego możemy się spodziewać po Vue 3?
Link: https://medium.com/vue-mastery/evan-you-previews-vue-js-3-0-ab063dec3547
05) Najlepsze praktyki przy migracji bazy danych Oracle na Amazon RDS Postgrade #sql czy Amazon Aurora PostgradeSQL. Proces migracji i infrastruktura.
Link: https://aws.amazon.com/blogs/database/best-practices-for-migrating-an-oracle-database-to-amazon-rds-postgresql-or-amazon-aurora-postgresql-migration-process-and-infrastructure-considerations/
06) [Video] #docker i moduły #go. Autor wyjaśnia w filmie w jaki sposób włączyć moduły Go dla programu, a następnie spakować je za pomocą Dockera. To proste!
Link:
07) #cybersecurity to dziedzina w dużej mierze tajemnicza dla osób spoza niej. Czy w Cybersecurity chodzi tylko o przeciwdziałanie hackerom? Tyler Elliot Bettilyon w ciekawym artykule wyjaśnia wiele nurtujących nas kwestii.
Link: https://medium.com/s/story/cybersecurity-isnt-just-about-hacks-f11c7ad07660
08) Interaktywna wizualizacja danych w Python z Bokeh. Jak rozpocząć pracę z tym potężnym narzędziem do odkrywania i interpretowania danych lub tworzenia pięknych, niestandardowych wykresów dla projektu czy raportu?
Link: https://realpython.com/python-data-visualization-bokeh/
09) [Video] Buduj skalowalne API w #go z #kubernetes. W filmie autor pokazuje w jaki sposób stworzyć skalowalny interfejs API w aplikacji Go z Dockerem, a następnie wdraża go w silnik Kubernetes na platformę Google Cloud.
Link:
10) 9 ukrytych bibliotek #python dla Data Science. Wyjdź poza pandas, scikit-learn i matplotib i naucz się nowych sztuczek dla Data Science w Pythonie!
Link: https://opensource.com/article/18/11/python-libraries-data-science
11) [Video] Mark Reinhold o #javie dziś i jutro. Przegląd kilku ostatnich dodatków do języka i platformy. Autor bierze pod lupę niektóre funkcje, które nadal będą doskonalić produktywność programistów i wydajność programu zachowując podstawowe wartości Javy.
Link:
12) Importowanie danych z MongoDB do #mysql przy użyciu Pythona. MySQL Shell 8.0.13 wprowadził nową funkcję umożliwiającą łatwe importowanie dokumentów JSON do MySQL. Paulo Jesus przedstawia więcej szczegółów na temat tej funkcji.
Link: https://mysqlserverteam.com/importing-data-from-mongodb-to-mysql-using-python/
13) #ruby zdjęte z szyn dzięki deserializacji. Dowiedz się co odkryli etyczni hakerzy podczas badań nad bezpieczeństwem języka Ruby.
Link: https://portswigger.net/daily-swig/ruby-taken-off-the-rails-by-deserialization-exploit
14) Trudno z dostępnych w internecie materiałów znaleźć te, które są warte poświęcenia czasu. Dlatego takie listy jak ta przydają się szczególnie początkującym developerom. Postanowiliśmy zebrać najlepiej oceniane oraz najczęściej czytane i oglądane kursy programowania w Pythonie.
Link: https://geek.justjoin.it/10-materialow-edukacyjnych-dzieki-ktorym-poznasz-jezyk-python/
15) Podczas tegorocznej konferencji SAP TechEd, ogłoszono nowe funkcje oraz rozwiązania, które mogą okazać się istotne dla użytkowników aplikacji biznesowych i narzędzi tego dostawcy. Jakie? Sprawdź:
Link: https://www.computerworld.pl/news/SAP-zwieksza-elastycznosc-i-dostepnosc-stosu-technologicznego,411366.html
16) Superkomputery wykorzystywane są już nie tylko w zaawansowanych badaniach naukowych. To już nie tylko domena największych odkrywców i wynalazców. Co superkomputer może zrobić dla Ciebie?
Link: https://www.computerworld.pl/news/Co-superkomputer-moze-zrobic-dla-ciebie,411261.html
17) Szybsze funkcje asynchroniczne i obietnice w JavaScript. -- W jaki sposób zoptymalizować funkcje asynchroniczne i obietnice w V8 oraz jak udoskonalić funkcje debugowania kodu asynchronicznego?
Link: https://v8.dev/blog/fast-async
18) Stwórz bezserwerowe API w 10 minut za pomocą Cloudflare Workers. Rita Kozlov pokazuje w jaki sposób wykorzystać Workers do szybkiego postawienia API do testowania, jeśli strony są oznaczone jako niechronione przy aktualizacji Chrome 68.
Link: https://www.cloudflare.com/lp/workers/serverless-powered-api/?utm_source=Workers&utm_medium=Display&utm_campaign=Cooperpress_Serverless_API_LP
19) Potęga komponentów webowych. Komponenty webowe istnieją już od jakiegoś czasu i dostępnych jest wiele zasobów. W tym artykule przedstawiono szereg nowych możliwości i zasobów komponentów webowych.
Link: https://hacks.mozilla.org/2018/11/the-power-of-web-components/
20) Co wspólnego z sobą mają #blockchain i pociąg? Jaki sens ma technologia Blockchain? -- Wyjaśnia Eddie Kago w krótkim artykule.
Link: https://hackernoon.com/blockchain-the-train-analogy-b53c1cdc37b0
22) Zastanawiałeś się, by zacząć programować w #scala? Oto 10 powodów, które przekonają Cię do nauki Scali i programowania funkcyjnego.
Link: https://hackernoon.com/10-reasons-to-learn-scala-and-functional-programming-2fce385e6ec7
23) Uwielbia jej elegancję i to, że czasami bywa szalona. Za co jeszcze autor kocha Scalę?
Link: https://www.withinboredom.info/2018/11/scala-and-friends/
24) Czy #devops jest dla wszystkich? Nie-inżynier wyjaśnia dlaczego nie musisz być developerem by stać się DevOpsem!
https://opensource.com/article/18/11/how-non-engineer-got-devops
#naukaprogramowania #programowanie #programista15k #technologia #informatyka
a co ma Java Script do Javy buahhaha