{"componentChunkName":"component---src-pages-blog-js","path":"/blog/","result":{"data":{"site":{"siteMetadata":{"title":"Robert Skarżycki"}},"allMarkdownRemark":{"totalCount":39,"edges":[{"node":{"id":"1b3284bf-7864-5106-b62c-2b1c74aeb868","frontmatter":{"title":"Migracja danych do Comos DB","date":"09 August, 2021","path":"/blog/migracja-danych-do-cosmos-db","rawDate":"2021-08-09"},"fields":{"slug":"/post-46-cosmos-db-migration/","readingTime":{"text":"3 min read"}},"excerpt":"Całkiem niedawno temu zmagałem się z zadaniem polegającym na migracji pewnej ilości danych (przyjmijmy, że setki tysięcy dokumentów) do…"}},{"node":{"id":"bd9287a6-74f9-5bdb-9c95-bda18eed19d4","frontmatter":{"title":"C# - historia (C# 8.0)","date":"20 July, 2021","path":"/blog/csharp-historia-8-0","rawDate":"2021-07-20"},"fields":{"slug":"/post-45-csharp-history-8.0/","readingTime":{"text":"4 min read"}},"excerpt":"To jest kontynuacja przeglądu historii wersji C# (tu znajdziesz poprzedni artykuł). Readonly members Metoda w strukturze może być oznaczona…"}},{"node":{"id":"e724234e-6886-531b-bb1b-bf26765e86fb","frontmatter":{"title":"C# - historia (C# 9.0)","date":"10 July, 2021","path":"/blog/csharp-historia-9-0","rawDate":"2021-07-10"},"fields":{"slug":"/post-44-csharp-history-9.0/","readingTime":{"text":"3 min read"}},"excerpt":"Prześledźmy, jakie nowinki były wprowadzane w kolejnych wersjach C# (wybór) - w odwrotnie chronologicznej kolejności, najpierw wersja 9.…"}},{"node":{"id":"76dc5c34-d8c9-5647-8b0c-0be71d137602","frontmatter":{"title":"Podstawy architektury oprogramowania dla inżynierów #1 - parametry architektury","date":"14 June, 2021","path":"/blog/podstawy-architektury-oprogramowania-dla-inzynierow-1-parametry-architektury","rawDate":"2021-06-14"},"fields":{"slug":"/post-43-architecture-fundamentals-1/","readingTime":{"text":"3 min read"}},"excerpt":"Parametry architektury Parametry architektury spełniają trzy kryteria: określają pozadziedzinowe względy projektowe, wpływają na niektóre…"}},{"node":{"id":"da5b0d42-d4fa-5afa-a3b1-002e12052d27","frontmatter":{"title":"Mikroserwisy: rodzaje zdarzeń","date":"01 June, 2021","path":"/blog/mikroserwisy-rodzaje-zdarzen","rawDate":"2021-06-01"},"fields":{"slug":"/post-42-event-types/","readingTime":{"text":"3 min read"}},"excerpt":"Termin zdarzenie ma w programowaniu wiele znaczeń. Kiedyś mógł być kojarzony głównie z UI - wydarzenia (eventy ;) ) dotyczyły interakcji…"}},{"node":{"id":"e1bacb2d-5a00-5ee8-8de8-7b6d29d44bb4","frontmatter":{"title":"Jak ustawić zmienną środowiskową w Azure DevOps pipeline?","date":"12 January, 2021","path":"/blog/jak-ustawic-zmienna-srodwiskowa-w-azure-devops-pipeline","rawDate":"2021-01-12"},"fields":{"slug":"/post-40-set-env-var-in-azure-pipeline/","readingTime":{"text":"1 min read"}},"excerpt":"Problem Mam pipline w Azure DevOps, a w nim - jakś zmienną. Chcę wartość tej zmiennej \"wepchnąć\" do zmiennej środowiskowej - tak aby jakieś…"}},{"node":{"id":"4f19b28a-962a-5a98-96f1-6faf2f9b83d8","frontmatter":{"title":"Print to file w C# na Windows 10","date":"07 January, 2021","path":"/blog/print-to-file-w-csharp-na-windows-10","rawDate":"2021-01-07"},"fields":{"slug":"/post-39-windows-printer-to-file/","readingTime":{"text":"1 min read"}},"excerpt":"Jeśli zdarzy Ci się konieczność drukowania czegoś z C# za pomocą bibliotecznej klasy  - i będziesz chciał wydrukować coś do pliku (do PDFa…"}},{"node":{"id":"1e41335a-a90a-5edb-88b2-510b5d526c16","frontmatter":{"title":"SignalR + Azure + mikroserwisy = ? (cz.1)","date":"03 January, 2021","path":"/blog/singalr-azure-mikroserwisy-cz-1","rawDate":"2021-01-03"},"fields":{"slug":"/post-38-signalr-azure-part-1/","readingTime":{"text":"3 min read"}},"excerpt":"Mamy następuje dramatis personae: mikroserwisowe środowisko w chmurze Azure, n aplikacji klienckich. Mamy nowy feature: chcemy, aby chmura…"}},{"node":{"id":"b4471b3a-f1d0-5d27-b4d4-9bc385a99ce8","frontmatter":{"title":"7 porad dla każdego, kto robi coś po godzinach","date":"22 December, 2020","path":"/blog/7-porad-dla-kazdego-kto-robi-cos-po-godzinach","rawDate":"2020-12-22"},"fields":{"slug":"/post-37-hobby-project-protips/","readingTime":{"text":"2 min read"}},"excerpt":"Zapiski do tego aryktułu z bloga Stack Overflow. 1. Wybierz proste zdanie Nie celuj zbyt wysoko - niech Twoim celem będzie proste zadanie…"}},{"node":{"id":"4fc8cec7-eac3-5a28-b655-09edfea71af3","frontmatter":{"title":"IAsyncEnumerable - to jest dobre!","date":"14 December, 2020","path":"/blog/iasyncenumerable-to-jest-dobre","rawDate":"2020-12-14"},"fields":{"slug":"/post-35-iasyncenumerable/","readingTime":{"text":"3 min read"}},"excerpt":"C# 8 wprowadził pewną nowinkę - . Co prawda na horyzoncie jest już C# 9, ale jakoś ta nowinka z poprzedniej wersji jakoś nie trafiła pod…"}},{"node":{"id":"347766e6-d090-5c78-b99d-14b16031eae7","frontmatter":{"title":"Śmierć Moment.js","date":"09 November, 2020","path":"/blog/smierc-momentjs","rawDate":"2020-11-09"},"fields":{"slug":"/post-32-momentjs/","readingTime":{"text":"2 min read"}},"excerpt":"We wrześniu autorzy biblioteki Moment.js ogłosili, że kończą prace nad tym projektem. Od teraz będą jedynie poprawiać oczywiste błędy…"}},{"node":{"id":"01be1716-1e8b-593c-b7dd-94fe55b19ff2","frontmatter":{"title":"Ciekawostki Typescript #4 - typowanie strukturalne","date":"28 October, 2020","path":"/blog/ciekawostki-typescript-4-typowanie-strukturalne","rawDate":"2020-10-28"},"fields":{"slug":"/post-29-typescript-4/","readingTime":{"text":"2 min read"}},"excerpt":"Jesteśmy przyzwyczajeni, że JS jest liberalny, dzięki stosowanemu przezeń typowaniu kaczemu (\"jeśli coś chodzi jak kaczka i kwacze jak…"}},{"node":{"id":"c7ab329b-225c-5846-90af-952e986991e3","frontmatter":{"title":"Ciekawostki Typescript #3 - z API może przyjść wszystko","date":"14 October, 2020","path":"/blog/ciekawostki-typescript-3-z-api-moze-przyjsc-wszystko","rawDate":"2020-10-14"},"fields":{"slug":"/post-28-typescript-3/","readingTime":{"text":"2 min read"}},"excerpt":"Gdy piszemy w C# kod, który operuje na zdeserializowanym JSON-ie czujemy się pewnie: jeśli coś uda się zdeserializować do zdefiniowanego…"}},{"node":{"id":"829a7139-94f6-5135-8fa5-f149877f9e42","frontmatter":{"title":"Koniec darmowego open source, czyli IdentityServer będzie płatny","date":"08 October, 2020","path":"/blog/koniec-darmowego-open-source-czyli-identityserver-platny","rawDate":"2020-10-08"},"fields":{"slug":"/post-30-identity-server-paid/","readingTime":{"text":"3 min read"}},"excerpt":"Kilka dni temu twórcy popularnej biblioteki (frameworka?) IdentitySever ogłosili, że \"komercjalizują\" projekt, tzn. zakładają własną firmę…"}},{"node":{"id":"6b0aef32-0f82-52ce-86e5-715ba52b7ebe","frontmatter":{"title":"Ciekawostki Typescript #2 - TS - typy = JS","date":"01 October, 2020","path":"/blog/ciekawostki-typescript-2-ts-minus-typy-rowna-sie-js","rawDate":"2020-10-01"},"fields":{"slug":"/post-27-typescript-2/","readingTime":{"text":"4 min read"}},"excerpt":"TypeScript nadzbiorem JavaScriptu Mówi się, że \"TypeScript jest nadzbiorem JavaScriptu\". Ale co to oznacza? W praktyce - wiadomo - każdy kod…"}},{"node":{"id":"c9d895ed-bd59-5d55-a787-6527b095aff4","frontmatter":{"title":"Ciekawostki Typescript #1 - typ vs. interfejs","date":"01 September, 2020","path":"/blog/ciekawostki-typescript-1-typ-vs-interfejs","rawDate":"2020-09-01"},"fields":{"slug":"/post-26-typescript-1/","readingTime":{"text":"2 min read"}},"excerpt":"W TypeScripcie mamy do dyspozycji dwa podobne byty, które przy deklarowaniu typów wydają się być zamienne -  oraz . Czy te dwa typy czymś…"}},{"node":{"id":"28b85744-8afc-5dc3-aefd-16d4487348ad","frontmatter":{"title":"AutoMapper to zło - czy na pewno?","date":"01 July, 2020","path":"/blog/automapper-to-zlo-czy-na-pewno","rawDate":"2020-07-01"},"fields":{"slug":"/post-25-automapper-to-zlo/","readingTime":{"text":"5 min read"}},"excerpt":"Jakiś czas temu przeczytałem artykuł pn. \"AutoMapper to zło\". Autor w skrócie odradza używanie AutoMappera, z co najmniej dwóch powodów…"}},{"node":{"id":"63ea5570-6626-54f5-a406-180364eb8543","frontmatter":{"title":"Meeting Web Accessibility Guidelines - kurs Pluralsight","date":"10 May, 2020","path":"/blog/meeting-web-accessibility-guidelines-kurs-pluralsight","rawDate":"2020-05-10"},"fields":{"slug":"/post-22-wcag-pluarlsight/","readingTime":{"text":"10 min read"}},"excerpt":"Notatki do kursu Pluralsight o dostępności stron internetowych pn. \"Meeting Web Accessibility Guidelines (Section 508/ WCAG 2.1)\" Wybór…"}},{"node":{"id":"6ff84326-020a-58e9-9bfe-de55a7959c4b","frontmatter":{"title":"QuaggaJS + React, czyli skaner kodów kreskowych","date":"03 May, 2020","path":"/blog/quagga-react-czyli-skaner-kodow-kreskowych","rawDate":"2020-05-03"},"fields":{"slug":"/post-24-quagga-barcode/","readingTime":{"text":"1 min read"}},"excerpt":"QuaggaJS to bardzo poręczna biblioteka do odczytywania kodów kreskowych za pomocą samego JavaScriptu. Daje radę z kilkoma formatami kodów i…"}},{"node":{"id":"fec3fea6-11ec-5b05-bbea-b1e82aaafa81","frontmatter":{"title":"Marten - dole i niedole","date":"30 April, 2020","path":"/blog/marten-dole-i-niedole","rawDate":"2020-04-30"},"fields":{"slug":"/post-20-marten/","readingTime":{"text":"4 min read"}},"excerpt":"Jest sobie taka biblioteka o nazwie Marten, która umożliwia korzystanie z bazy PostgreSQL jako bazy dokumentowej albo bazy do event…"}},{"node":{"id":"f7a7f3c0-065b-5639-84b5-9e77d9e6f7ac","frontmatter":{"title":"R.I.P. John Conway","date":"28 April, 2020","path":"/blog/rip-john-conway","rawDate":"2020-04-28"},"fields":{"slug":"/post-23-rip-john-conway/","readingTime":{"text":"1 min read"}},"excerpt":"Kilka dni temu dotarła do mnie wiadomość, że John Conway zmarł w wieku 82 lat. Był on twórcą słynnej \"gry w życie\" (Game of Life) -…"}},{"node":{"id":"c74c86bb-979b-5d00-beba-063f72b6dee8","frontmatter":{"title":"Programista COBOL-a poszukiwany...","date":"15 April, 2020","path":"/blog/programista-cobola-poszukiwany","rawDate":"2020-04-15"},"fields":{"slug":"/post-21-cobol/","readingTime":{"text":"1 min read"}},"excerpt":"Kilka tygodni temu gubernator stanu New Jersey poinformował, że stanowa administracja natychmiast potrzebuje programistów... COBOL-a. (Sic…"}},{"node":{"id":"7cdf1dcf-af37-5fd4-a3ac-2fbfcb2bc440","frontmatter":{"title":"Enumerable.Range w JavaScripcie","date":"10 April, 2020","path":"/blog/enumerable-range-w-javascripcie","rawDate":"2020-04-10"},"fields":{"slug":"/post-16/","readingTime":{"text":"1 min read"}},"excerpt":"W C# zdarza się czasami napisać taki kod: Ale jak to zrobić w JS? Oto sprytny myk: Źródło: https://stackoverflow.com/a/10050831/201788…"}},{"node":{"id":"5a6d7ce1-8711-5d74-85c0-56dc5ce1893f","frontmatter":{"title":"Jak zmusić Chrome, żeby zapomniał o redirekcie z http do https","date":"02 April, 2020","path":"/blog/jak-zmusic-chrome-zeby-zapomnial-o-redirekcie-z-http-do-https","rawDate":"2020-04-02"},"fields":{"slug":"/post-17/","readingTime":{"text":"1 min read"}},"excerpt":"Jeśli w dewelopmencie żonglujemy pomiędzy różnymi apkami, uruchamianymi lokalnie, może zdarzyć się taka sytuacja: odpalamy projekt A, na…"}},{"node":{"id":"c3244cf3-e2cd-5b3f-aed5-f0a7880dcae8","frontmatter":{"title":"Migracja .NET Core 2.2 do 3.1","date":"20 March, 2020","path":"/blog/migracja-z-net-core-2-2-do-3-1","rawDate":"2020-03-20"},"fields":{"slug":"/post-18-netcore3-1/","readingTime":{"text":"3 min read"}},"excerpt":"W wersjach .NET Core można się nie łapać - co jakiś wychodzą nowe, nie zawsze wiadomo, czy i kiedy przenosić się na nowsze wersje oraz jakie…"}},{"node":{"id":"ce86a1c4-de4b-52a6-a62a-19fafb4a6c91","frontmatter":{"title":"Boiling Frogs 2020 - relacja","date":"14 March, 2020","path":"/blog/boiling-frogs-2020-relacja","rawDate":"2020-03-14"},"fields":{"slug":"/post-19-boiling-frogs-2020/","readingTime":{"text":"4 min read"}},"excerpt":"Na chwilę przed wprowadzeniem zakazów organizowania imprez masowych odbyła się we Wrocławiu konferencja Boiling Frogs. Byłem, widziałem,…"}},{"node":{"id":"b5d4da00-377b-59d5-a085-a0e816cb83ce","frontmatter":{"title":"GovTech 2019 - walidator zdjęć","date":"27 February, 2020","path":"/blog/govtech-2019-walidator-zdjec","rawDate":"2020-02-27"},"fields":{"slug":"/post-12/","readingTime":{"text":"2 min read"}},"excerpt":"W listopadzie 2019 roku zgłosiłem się do konkursu GovTech. Wybrałem zadanie konkursowe polegajce na przygotowaniu aplikacji mobilnej, która…"}},{"node":{"id":"7272298f-623a-5ddf-b514-01a46d8ad5ff","frontmatter":{"title":"AutoMapper - flatten","date":"18 February, 2020","path":"/blog/automapper-flatten","rawDate":"2020-02-18"},"fields":{"slug":"/post-11/","readingTime":{"text":"1 min read"}},"excerpt":"Od dawna wiedziałem, że AutoMapper ma bardzo wygodną - domyślną - funkcję, automatycznego rozpoznawania poprawnego mapowania między…"}},{"node":{"id":"54f7ddc9-ffe2-5761-a774-03011eaa032e","frontmatter":{"title":"Organizacja folderów w projekcie frontendowym","date":"01 February, 2020","path":"/blog/organizacja-folderow-w-projekcie-frontendowym","rawDate":"2020-02-01"},"fields":{"slug":"/post-10/","readingTime":{"text":"3 min read"}},"excerpt":"Rozbudowane narzędzia IDE typu Visual Studio mają tę zaletę (albo wadę - o tym potem :)), że udostępniają szablony projektów, wprowadzając…"}},{"node":{"id":"bbbf0e27-137d-5fcb-9c80-b3aecb94399b","frontmatter":{"title":"Potęga podzapytań w Cosmos DB","date":"30 January, 2020","path":"/blog/potega-podzapytan-w-cosmos-db","rawDate":"2020-01-30"},"fields":{"slug":"/post-15/","readingTime":{"text":"2 min read"}},"excerpt":"Cosmos DB Query Playground to interaktywne środowisko do eksperymentowania z kwerendami do Cosmos DB. Jako dane testowe zawiera ono bazę…"}},{"node":{"id":"0924b4e8-e819-53a4-8fef-b8bef2647fc7","frontmatter":{"title":"ITCorner Tech Meetup #1 Skalowanie","date":"19 January, 2020","path":"/blog/itcorner-tech-meetup-1-skalowanie","rawDate":"2020-01-19"},"fields":{"slug":"/post-14/","readingTime":{"text":"4 min read"}},"excerpt":"Kilka dni temu wziąłem udział w spotkaniu ITCorner Tech Meetup, którego tematem przewodnim było skalowanie. Poniżej garść notatek. Temat W…"}},{"node":{"id":"cd22eccc-f784-5109-9cb3-e34d8f750634","frontmatter":{"title":"Team tourism","date":"10 January, 2020","path":"/blog/team-tourism","rawDate":"2020-01-10"},"fields":{"slug":"/post-9/","readingTime":{"text":"1 min read"}},"excerpt":"Kilka lat temu zaproponowałem przełożonym, żebyśmy spróbowali zrobić trochę wymian personalnych pomiędzy zespołami. Celem, jaki mi…"}},{"node":{"id":"4e15e509-3c84-5b8f-be74-27658cb93273","frontmatter":{"title":"Accessible states in design systems #id24","date":"24 November, 2019","path":"/blog/accesible-states-in-design-systems","rawDate":"2019-11-24"},"fields":{"slug":"/post-7/","readingTime":{"text":"1 min read"}},"excerpt":"Polecam poniższe nagranie z konferencji Inclusive Design 24, w którym autor, Russ Weakley, opisuje podstawowe stany elementów HTML (np…"}},{"node":{"id":"4271a90c-b052-57cd-985f-da923dfbcb7d","frontmatter":{"title":"TypeScript 3.7!","date":"12 November, 2019","path":"/blog/typescript-3-7","rawDate":"2019-11-12"},"fields":{"slug":"/post-6/","readingTime":{"text":"3 min read"}},"excerpt":"Oto jest - TypeScript 3.7. Hurra! A co tym razem dostajemy? Optional chaining - czyli ficzer znany choćby z C#. Dotychczas - aby uniknąć…"}},{"node":{"id":"1e9c4ea7-86f5-502e-b945-2a7e81dc06fc","frontmatter":{"title":"WinForms is dead","date":"07 November, 2019","path":"/blog/winforms-is-dead","rawDate":"2019-11-07"},"fields":{"slug":"/post-5/","readingTime":{"text":"2 min read"}},"excerpt":"Polemika z tym tekstem:\nhttps://blog.submain.com/death-winforms-greatly-exaggerated/ Tekst stary (sprzed ponad roku), ale gdzieś mi wpadł w…"}},{"node":{"id":"e73e1837-7c04-5784-8fc3-cf7bae25ec99","frontmatter":{"title":"Generic type inference in C#","date":"31 October, 2019","path":"/blog/generic-type-inference-in-csharp","rawDate":"2019-10-31"},"fields":{"slug":"/post-4/","readingTime":{"text":"1 min read"}},"excerpt":"Próbowałem ostatnio zrobić takie coś: Następnie chciałem, żeby kompilator sam domyślił się drugiego argumentu generycznego, gdy wołam…"}},{"node":{"id":"0b8a015f-41a9-56d8-9d84-310ef9cf72a7","frontmatter":{"title":"Azure Pipelines - uważaj na stages i jobs","date":"22 October, 2019","path":"/blog/azure-pipelines-uwazaj-na-stages-i-jobs","rawDate":"2019-10-22"},"fields":{"slug":"/post-3/","readingTime":{"text":"2 min read"}},"excerpt":"Odkąd Azure Pipelines (lub szerzej - Azure Devops) umożliwił deklarowanie pipeline'ów w plikach YAML zamiast klikania po stronie - bardzo…"}},{"node":{"id":"cd47b924-baaa-57b1-ad28-0c852742ec2b","frontmatter":{"title":"CSS in JS","date":"15 October, 2019","path":"/blog/css-in-js","rawDate":"2019-10-15"},"fields":{"slug":"/post-2/","readingTime":{"text":"1 min read"}},"excerpt":"Gdy widzę kogoś, kto używa Reacta, a stosuje globalne pliki CSS, to bolą mnie zęby (choć nie tak bardzo, gdy widzę, jak ktoś tworzy większą…"}},{"node":{"id":"5bde7dca-34f0-54e5-b0d6-5c5a30e02d35","frontmatter":{"title":"Blog - jaką platformę wybrać?","date":"01 October, 2019","path":"/blog/blog-jaka-platforme-wybrac","rawDate":"2019-10-01"},"fields":{"slug":"/post-1/","readingTime":{"text":"3 min read"}},"excerpt":"Na dziś odpowiedź brzmi: Gatsby. Próbowałem wcześniej z WordPressem, potem eksperymentowałem ze statycznym generatorem (Hexo), potem…"}}]}},"pageContext":{}},"staticQueryHashes":["3649515864","63159454"]}