{"id":10017,"date":"2022-01-20T12:57:04","date_gmt":"2022-01-20T11:57:04","guid":{"rendered":"https:\/\/vived.io\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/"},"modified":"2022-09-19T13:16:33","modified_gmt":"2022-09-19T11:16:33","slug":"frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/","title":{"rendered":"Frontend Thursday vol. 72 &#8211; wyciek danych z State of JS,  Eleventy v1, Parcel CSS"},"content":{"rendered":"\n<h2 id=\"1-wyciek-danych-respondentow-state-of-js-i-state-of-css\" data-num=1>1. Wyciek danych respondent\u00f3w State of JS i State of CSS<\/h2>\n\n\n\n<p>Je\u015bli brali\u015bcie udzia\u0142 w ankiecie State of JS lub State of CSS w 2020 roku lub wcze\u015bniej, to istnieje mo\u017cliwo\u015b\u0107, \u017ce wasze dane wyciek\u0142y do sieci. Kompromitacji uleg\u0142y w\u0142a\u015bciwie tylko adresy email, ale niestety luka bezpiecze\u0144stwa mia\u0142a tak\u0105 posta\u0107, \u017ce bez problemu mo\u017cna powi\u0105za\u0107 je z odpowiedziami z ankiety. O ile opinia o frontendowych frameworkach raczej nie jest dan\u0105 wra\u017cliw\u0105, o tyle informacje o zarobkach czy do\u015bwiadczeniu z pewno\u015bci\u0105 mo\u017cna za takowe uzna\u0107. Na razie nie ma jednak pewno\u015bci, czy ktokolwiek zd\u0105\u017cy\u0142 wykorzysta\u0107 zaistnia\u0142\u0105 luk\u0119 bezpiecze\u0144stwa.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"617\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61yrv1.jpeg\" alt=\"\" class=\"wp-image-3684\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61yrv1.jpeg 500w, https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61yrv1-243x300.jpeg 243w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n\n<p>W jaki spos\u00f3b dosz\u0142o do potencjalnego wycieku danych? Zar\u00f3wno State of JS, jak i State of CSS to projekty Open Source. Aby umo\u017cliwi\u0107 \u015bledzenie wynik\u00f3w poszczeg\u00f3lnych respondent\u00f3w, na przestrzeni lat autorzy zdecydowali si\u0119 hashowa\u0107 adresy email i wykorzystywa\u0107 je jako identyfikatory. Jak si\u0119 jednak okaza\u0142o, przez pomy\u0142k\u0119 zamiast funkcji haszuj\u0105cej u\u017cyto funkcji s\u0142u\u017c\u0105cej do enkrypcji. Co za tym idzie opr\u00f3cz kodowania mo\u017cliwe by\u0142o r\u00f3wnie\u017c dekodowanie maili &#8211; oczywi\u015bcie, je\u015bli zna\u0142o si\u0119 odpowiedni klucz.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"559\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61wrkx.jpeg\" alt=\"\" class=\"wp-image-3685\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61wrkx.jpeg 500w, https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61wrkx-268x300.jpeg 268w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n\n<p>Oko\u0142o miesi\u0105ca temu klucz s\u0142u\u017c\u0105cy do enkrypcji zosta\u0142 opublikowany przez jednego z kontrybutor\u00f3w podczas pracy nad zupe\u0142nie innym projektem. Deweloper ten od razu zorientowa\u0142 si\u0119 w sytuacji i szybko wyczy\u015bci\u0142 histori\u0119 repozytorium. Jak si\u0119 jednak okazuje, commit zawieraj\u0105cy klucz enkrypcji przetrwa\u0142 jako ghost commit i zosta\u0142 usuni\u0119ty dopiero w zesz\u0142ym tygodniu.<\/p>\n\n\n\n<p>Na szcz\u0119\u015bcie w ca\u0142ej tej sytuacji odnajdziemy chocia\u017c szczypt\u0119 optymizmu. Projekt, w kt\u00f3rym znalaz\u0142y si\u0119 wra\u017cliwe dane mia\u0142 bardzo ma\u0142y ruch oraz zero gwiazdek i brak obserwuj\u0105cych na GitHubie. Ponadto, nawet je\u015bli komu\u015b uda\u0142o si\u0119 przechwyci\u0107 klucz enkrypcji, to powi\u0105zanie go z innym projektem by\u0142o mocno nieoczywiste a skompromitowana baza danych znikn\u0119\u0142a tymczasowo z sieci. Dlatego wi\u0119c, je\u015bli kto\u015b wszed\u0142 w posiadanie klucza, ale do tej pory nie domy\u015bli\u0142 si\u0119 jego przeznaczenia, to straci\u0142 ju\u017c swoj\u0105 okazj\u0119.<\/p>\n\n\n\n<p>Na zako\u0144czenie ma\u0142a zach\u0119ta dla odwa\u017cnych. Je\u015bli pomimo wycieku nie boicie si\u0119 wype\u0142nia\u0107 kolejnych edycji ankiety, to w minionym tygodniu wystartowa\u0142o <a href=\"https:\/\/stateofjs.com\/\">State of JS 2022<\/a>. Ja ju\u017c zacieram r\u0119ce, \u017ceby zobaczy\u0107 wyniki i przygotowa\u0107 dla Was kr\u00f3tkie podsumowanie.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/dev.to\/sachagreif\/disclosing-a-state-of-javascriptstate-of-css-data-breach-2lg1\">https:\/\/dev.to\/sachagreif\/disclosing-a-state-of-javascriptstate-of-css-data-breach-2lg1<\/a><\/p>\n\n\n\n<h2 id=\"2-eleventy-v1\" data-num=2>2. Eleventy v1<\/h2>\n\n\n\n<p>Po prawie czterech latach wersji oznaczonych jako 0.x popularne narz\u0119dzie Eleventy wreszcie doczeka\u0142o si\u0119 wersji oznaczonej numerkiem 1.0. Je\u015bli jeszcze nie s\u0142yszeli\u015bcie o Eleventy, to jest to narz\u0119dzie do generowania statycznych stron, kt\u00f3re umo\u017cliwia korzystanie z szerokiej gamy format\u00f3w szablon\u00f3w: od oczywistych takich jak HTMl czy Markdown poprzez bardziej zaawansowane takie jak Nunjucks, czy Mustache. Ca\u0142o\u015b\u0107 oparta jest o JavaScript, ale korzystaj\u0105c z narz\u0119dzia mo\u017cemy nie napisa\u0107 nawet linijki kodu w tym j\u0119zyku.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\">npm install -g @11ty\/eleventy\necho &#039;# Page header&#039; &gt; README.md\neleventy<\/code><\/pre>\n\n\n\n<p>Je\u015bli jeste\u015bcie zainteresowani nowo\u015bciami to najlepiej zrobicie, je\u015bli przyjrzycie si\u0119 <a href=\"https:\/\/github.com\/11ty\/eleventy\/releases\/tag\/v1.0.0\">pe\u0142nej li\u015bcie zamieszczonej na GitHubie<\/a>. Ja przytocz\u0119 tutaj tylko trzy, kt\u00f3re wydaj\u0105 mi si\u0119 najbardziej istotne. Po pierwsze dodane zosta\u0142o wsparcie dla dowolnych rozszerze\u0144 plik\u00f3w oraz silnik\u00f3w renderowania. Otwiera to drog\u0119 dla spo\u0142eczno\u015bci do rozszerzania narz\u0119dzia w\u0142a\u015bciwie w dowolny spos\u00f3b. Po drugie powsta\u0142a wersja narz\u0119dzia integruj\u0105ca si\u0119 z serwisami Serverless przez co mo\u017ce ono by\u0107 u\u017cywane do prawdziwego renderowania po stronie serwera. Ostatnia za\u015b istotna zmiana to dodanie wsparcia dla uruchamiania Eleventy z poziomu skryptu Node.js.<\/p>\n\n\n\n<p>Obserwuj\u0105c trendy w JavaScriptowym \u015bwiecie nie spos\u00f3b nie dostrzec coraz pr\u0119\u017cniej rozwijaj\u0105cego si\u0119 renderowania po stronie serwera. Co prawda je\u015bli chodzi o zbi\u00f3r funkcjonalno\u015bci, to Eleventy raczej nie umywa si\u0119 do takiego Next.js, ale zdecydowanie wpisuje si\u0119 ono w ten trend. No i Eleventy, je\u015bli chodzi o ,prostot\u0119 bije na g\u0142ow\u0119 chyba wi\u0119kszo\u015b\u0107 dost\u0119pnych alternatyw, a to w prostocie cz\u0119sto le\u017cy klucz do sukcesu.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"577\" height=\"432\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61ws36.jpeg\" alt=\"\" class=\"wp-image-3686\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61ws36.jpeg 577w, https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61ws36-300x225.jpeg 300w\" sizes=\"auto, (max-width: 577px) 100vw, 577px\" \/><figcaption>I tak, wiem, \u017ce Next.js i Eleventy to dwa r\u00f3\u017cne narz\u0119dzia, kt\u00f3re rozwi\u0105zuj\u0105 troch\u0119 inne grupy problem\u00f3w<\/figcaption><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/github.com\/11ty\/eleventy\/releases\/tag\/v1.0.0\">https:\/\/github.com\/11ty\/eleventy\/releases\/tag\/v1.0.0<\/a><br><a href=\"https:\/\/www.11ty.dev\/\">https:\/\/www.11ty.dev\/<\/a><\/p>\n\n\n\n<h2 id=\"3-parcel-css\" data-num=3>3. Parcel CSS<\/h2>\n\n\n\n<p>Tw\u00f3rcy Parcela w minionym tygodniu pochwalili si\u0119 nowym narz\u0119dziem, kt\u00f3re ma jeszcze bardziej przyspieszy\u0107 budowanie aplikacji. @parcel\/css to parser, kompilator i minifikator CSS napisany w Rust. Jak to zwykle bywa z narz\u0119dziami napisanymi w tym j\u0119zyku, je\u015bli chodzi o wydajno\u015b\u0107, konkurencja zdecydowanie zosta\u0142a sprowadzona do parteru. Parcel CSS jest ponad 100x szybszy ni\u017c CSSNano i 3x szybszy ni\u017c ESBuild oferuj\u0105c przy tym por\u00f3wnywalne rozmiary wynikowej paczki.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"434\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/Screenshot-2022-01-19-at-16.02.37-1024x434.png\" alt=\"\" class=\"wp-image-3687\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/Screenshot-2022-01-19-at-16.02.37-1024x434.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/Screenshot-2022-01-19-at-16.02.37-300x127.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/Screenshot-2022-01-19-at-16.02.37-768x326.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/Screenshot-2022-01-19-at-16.02.37.png 1396w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>@parcel\/css dost\u0119pny jest jako wtyczka do Parcela oraz niezale\u017cna biblioteka dla JavaScriptu oraz Rusta. Co wa\u017cne, tw\u00f3rcy zaprojektowali paczk\u0119 w taki spos\u00f3b, aby mo\u017cna by\u0142o j\u0105 u\u017cy\u0107 r\u00f3wnie\u017c z innymi narz\u0119dziami do budowania aplikacji. Oznacza to, \u017ce mo\u017cemy wkr\u00f3tce spodziewa\u0107 si\u0119 edycji dla WebPacka czy Gulpa od spo\u0142eczno\u015bci.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61wsyo.jpeg\" alt=\"\" class=\"wp-image-3688\" width=\"632\" height=\"430\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61wsyo.jpeg 735w, https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61wsyo-300x204.jpeg 300w\" sizes=\"auto, (max-width: 632px) 100vw, 632px\" \/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/parceljs.org\/blog\/parcel-css\/\">https:\/\/parceljs.org\/blog\/parcel-css\/<\/a><\/p>\n\n\n\n<h2 id=\"bonus-hiccupfx-js\" data-num=4>Bonus: hiccupFX.js<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"498\" height=\"202\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/hes-so-ugly-marvel.gif\" alt=\"\" class=\"wp-image-3689\"\/><\/figure><\/div>\n\n\n\n<p>Dzi\u015b na zako\u0144czenie mam dla Was ma\u0142y bonus z przymru\u017ceniem oka. Zdarzy\u0142o Wam si\u0119 kiedy\u015b pr\u00f3bowa\u0107 klikn\u0105\u0107 w przycisk na stronie, podczas gdy ta z pr\u0119dko\u015bci\u0105 \u015bwiat\u0142a do\u0142adowa\u0142a kolejne reklamy co sprawia\u0142o, \u017ce layout wygl\u0105da\u0142 jakby w\u0142a\u015bnie przechodzi\u0142 atak padaczki? Je\u015bli tak, to pewnie ucieszycie si\u0119 na wie\u015b\u0107, \u017ce dzi\u0119ki jednej linijce kodu i bibliotece hiccupFX.js mo\u017cecie obdarowa\u0107 swoich u\u017cytkownik\u00f3w w to niezapomniane do\u015bwiadczenie.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"828\" height=\"502\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/Jan-20-2022-00-06-37.gif\" alt=\"\" class=\"wp-image-3690\"\/><figcaption>Je\u015bli w najbli\u017cszych dniach Vived zacznie si\u0119 dziwnie zachowywa\u0107, to nie patrzcie na mnie\u2026<\/figcaption><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/hiccupfx.telnet.asia\/\">https:\/\/hiccupfx.telnet.asia\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Miniony  tydzie\u0144 zdominowany by\u0142 przez histori\u0119 potencjalnego wycieku danych respondent\u00f3w State of JS. W tle ukaza\u0142a si\u0119 r\u00f3wnie\u017c wersja 1.0 Eleventy, czyli popularnego narz\u0119dzia do generowania statycznych stron i nowy minifikator CSS od tw\u00f3rc\u00f3w Parcela. Jak zwykle \u0142apcie gor\u0105c\u0105 herbat\u0119 i zapraszamy do lektury!<\/p>\n","protected":false},"author":12,"featured_media":7898,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[273],"tags":[],"class_list":["post-10017","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-frontend-pl"],"acf":{"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/FRONTEND-1.png","estimated_reading_time":"5","feature_image_visible":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Frontend Thursday vol. 72 - wyciek danych z State of JS, Eleventy v1, Parcel CSS - Vived<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Frontend Thursday vol. 72 - wyciek danych z State of JS, Eleventy v1, Parcel CSS - Vived\" \/>\n<meta property=\"og:description\" content=\"Miniony tydzie\u0144 zdominowany by\u0142 przez histori\u0119 potencjalnego wycieku danych respondent\u00f3w State of JS. W tle ukaza\u0142a si\u0119 r\u00f3wnie\u017c wersja 1.0 Eleventy, czyli popularnego narz\u0119dzia do generowania statycznych stron i nowy minifikator CSS od tw\u00f3rc\u00f3w Parcela. Jak zwykle \u0142apcie gor\u0105c\u0105 herbat\u0119 i zapraszamy do lektury!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-20T11:57:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:16:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/FRONTEND-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tomasz Borowicz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/FRONTEND-1.png\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/\"},\"author\":{\"name\":\"Tomasz Borowicz\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb\"},\"headline\":\"Frontend Thursday vol. 72 &#8211; wyciek danych z State of JS, Eleventy v1, Parcel CSS\",\"datePublished\":\"2022-01-20T11:57:04+00:00\",\"dateModified\":\"2022-09-19T11:16:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/\"},\"wordCount\":1003,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/pexels-photo-923681.jpeg\",\"articleSection\":[\"Frontend\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/\",\"url\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/\",\"name\":\"Frontend Thursday vol. 72 - wyciek danych z State of JS, Eleventy v1, Parcel CSS - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/pexels-photo-923681.jpeg\",\"datePublished\":\"2022-01-20T11:57:04+00:00\",\"dateModified\":\"2022-09-19T11:16:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/pexels-photo-923681.jpeg\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/pexels-photo-923681.jpeg\",\"width\":2250,\"height\":1500},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frontend Thursday vol. 72 &#8211; wyciek danych z State of JS, Eleventy v1, Parcel CSS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/vived.io\/pl\/#website\",\"url\":\"https:\/\/vived.io\/pl\/\",\"name\":\"Vived\",\"description\":\"platform empowering IT people and technology companies to synergic growth\",\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/vived.io\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/vived.io\/pl\/#organization\",\"name\":\"Vived\",\"url\":\"https:\/\/vived.io\/pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"width\":136,\"height\":45,\"caption\":\"Vived\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb\",\"name\":\"Tomasz Borowicz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g\",\"caption\":\"Tomasz Borowicz\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Frontend Thursday vol. 72 - wyciek danych z State of JS, Eleventy v1, Parcel CSS - Vived","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/","og_locale":"pl_PL","og_type":"article","og_title":"Frontend Thursday vol. 72 - wyciek danych z State of JS, Eleventy v1, Parcel CSS - Vived","og_description":"Miniony tydzie\u0144 zdominowany by\u0142 przez histori\u0119 potencjalnego wycieku danych respondent\u00f3w State of JS. W tle ukaza\u0142a si\u0119 r\u00f3wnie\u017c wersja 1.0 Eleventy, czyli popularnego narz\u0119dzia do generowania statycznych stron i nowy minifikator CSS od tw\u00f3rc\u00f3w Parcela. Jak zwykle \u0142apcie gor\u0105c\u0105 herbat\u0119 i zapraszamy do lektury!","og_url":"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/","og_site_name":"Vived","article_published_time":"2022-01-20T11:57:04+00:00","article_modified_time":"2022-09-19T11:16:33+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/FRONTEND-1.png","type":"image\/png"}],"author":"Tomasz Borowicz","twitter_card":"summary_large_image","twitter_image":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/FRONTEND-1.png","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/"},"author":{"name":"Tomasz Borowicz","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb"},"headline":"Frontend Thursday vol. 72 &#8211; wyciek danych z State of JS, Eleventy v1, Parcel CSS","datePublished":"2022-01-20T11:57:04+00:00","dateModified":"2022-09-19T11:16:33+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/"},"wordCount":1003,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/pexels-photo-923681.jpeg","articleSection":["Frontend"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/","url":"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/","name":"Frontend Thursday vol. 72 - wyciek danych z State of JS, Eleventy v1, Parcel CSS - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/pexels-photo-923681.jpeg","datePublished":"2022-01-20T11:57:04+00:00","dateModified":"2022-09-19T11:16:33+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/pexels-photo-923681.jpeg","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/pexels-photo-923681.jpeg","width":2250,"height":1500},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-72-wyciek-danych-z-state-of-js-eleventy-v1-parcel-css\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Frontend Thursday vol. 72 &#8211; wyciek danych z State of JS, Eleventy v1, Parcel CSS"}]},{"@type":"WebSite","@id":"https:\/\/vived.io\/pl\/#website","url":"https:\/\/vived.io\/pl\/","name":"Vived","description":"platform empowering IT people and technology companies to synergic growth","publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vived.io\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/vived.io\/pl\/#organization","name":"Vived","url":"https:\/\/vived.io\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","width":136,"height":45,"caption":"Vived"},"image":{"@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb","name":"Tomasz Borowicz","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g","caption":"Tomasz Borowicz"}}]}},"blocks_vived":[{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>1. Wyciek danych respondent\u00f3w State of JS i State of CSS<\/h2>\n","innerContent":["\n<h2>1. Wyciek danych respondent\u00f3w State of JS i State of CSS<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Je\u015bli brali\u015bcie udzia\u0142 w ankiecie State of JS lub State of CSS w 2020 roku lub wcze\u015bniej, to istnieje mo\u017cliwo\u015b\u0107, \u017ce wasze dane wyciek\u0142y do sieci. Kompromitacji uleg\u0142y w\u0142a\u015bciwie tylko adresy email, ale niestety luka bezpiecze\u0144stwa mia\u0142a tak\u0105 posta\u0107, \u017ce bez problemu mo\u017cna powi\u0105za\u0107 je z odpowiedziami z ankiety. O ile opinia o frontendowych frameworkach raczej nie jest dan\u0105 wra\u017cliw\u0105, o tyle informacje o zarobkach czy do\u015bwiadczeniu z pewno\u015bci\u0105 mo\u017cna za takowe uzna\u0107. Na razie nie ma jednak pewno\u015bci, czy ktokolwiek zd\u0105\u017cy\u0142 wykorzysta\u0107 zaistnia\u0142\u0105 luk\u0119 bezpiecze\u0144stwa.<\/p>\n","innerContent":["\n<p>Je\u015bli brali\u015bcie udzia\u0142 w ankiecie State of JS lub State of CSS w 2020 roku lub wcze\u015bniej, to istnieje mo\u017cliwo\u015b\u0107, \u017ce wasze dane wyciek\u0142y do sieci. Kompromitacji uleg\u0142y w\u0142a\u015bciwie tylko adresy email, ale niestety luka bezpiecze\u0144stwa mia\u0142a tak\u0105 posta\u0107, \u017ce bez problemu mo\u017cna powi\u0105za\u0107 je z odpowiedziami z ankiety. O ile opinia o frontendowych frameworkach raczej nie jest dan\u0105 wra\u017cliw\u0105, o tyle informacje o zarobkach czy do\u015bwiadczeniu z pewno\u015bci\u0105 mo\u017cna za takowe uzna\u0107. Na razie nie ma jednak pewno\u015bci, czy ktokolwiek zd\u0105\u017cy\u0142 wykorzysta\u0107 zaistnia\u0142\u0105 luk\u0119 bezpiecze\u0144stwa.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3684,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61yrv1.jpeg\" alt=\"\" class=\"wp-image-3684\"\/><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61yrv1.jpeg\" alt=\"\" class=\"wp-image-3684\"\/><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W jaki spos\u00f3b dosz\u0142o do potencjalnego wycieku danych? Zar\u00f3wno State of JS, jak i State of CSS to projekty Open Source. Aby umo\u017cliwi\u0107 \u015bledzenie wynik\u00f3w poszczeg\u00f3lnych respondent\u00f3w, na przestrzeni lat autorzy zdecydowali si\u0119 hashowa\u0107 adresy email i wykorzystywa\u0107 je jako identyfikatory. Jak si\u0119 jednak okaza\u0142o, przez pomy\u0142k\u0119 zamiast funkcji haszuj\u0105cej u\u017cyto funkcji s\u0142u\u017c\u0105cej do enkrypcji. Co za tym idzie opr\u00f3cz kodowania mo\u017cliwe by\u0142o r\u00f3wnie\u017c dekodowanie maili - oczywi\u015bcie, je\u015bli zna\u0142o si\u0119 odpowiedni klucz.<\/p>\n","innerContent":["\n<p>W jaki spos\u00f3b dosz\u0142o do potencjalnego wycieku danych? Zar\u00f3wno State of JS, jak i State of CSS to projekty Open Source. Aby umo\u017cliwi\u0107 \u015bledzenie wynik\u00f3w poszczeg\u00f3lnych respondent\u00f3w, na przestrzeni lat autorzy zdecydowali si\u0119 hashowa\u0107 adresy email i wykorzystywa\u0107 je jako identyfikatory. Jak si\u0119 jednak okaza\u0142o, przez pomy\u0142k\u0119 zamiast funkcji haszuj\u0105cej u\u017cyto funkcji s\u0142u\u017c\u0105cej do enkrypcji. Co za tym idzie opr\u00f3cz kodowania mo\u017cliwe by\u0142o r\u00f3wnie\u017c dekodowanie maili - oczywi\u015bcie, je\u015bli zna\u0142o si\u0119 odpowiedni klucz.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3685,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61wrkx.jpeg\" alt=\"\" class=\"wp-image-3685\"\/><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61wrkx.jpeg\" alt=\"\" class=\"wp-image-3685\"\/><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Oko\u0142o miesi\u0105ca temu klucz s\u0142u\u017c\u0105cy do enkrypcji zosta\u0142 opublikowany przez jednego z kontrybutor\u00f3w podczas pracy nad zupe\u0142nie innym projektem. Deweloper ten od razu zorientowa\u0142 si\u0119 w sytuacji i szybko wyczy\u015bci\u0142 histori\u0119 repozytorium. Jak si\u0119 jednak okazuje, commit zawieraj\u0105cy klucz enkrypcji przetrwa\u0142 jako ghost commit i zosta\u0142 usuni\u0119ty dopiero w zesz\u0142ym tygodniu.<\/p>\n","innerContent":["\n<p>Oko\u0142o miesi\u0105ca temu klucz s\u0142u\u017c\u0105cy do enkrypcji zosta\u0142 opublikowany przez jednego z kontrybutor\u00f3w podczas pracy nad zupe\u0142nie innym projektem. Deweloper ten od razu zorientowa\u0142 si\u0119 w sytuacji i szybko wyczy\u015bci\u0142 histori\u0119 repozytorium. Jak si\u0119 jednak okazuje, commit zawieraj\u0105cy klucz enkrypcji przetrwa\u0142 jako ghost commit i zosta\u0142 usuni\u0119ty dopiero w zesz\u0142ym tygodniu.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Na szcz\u0119\u015bcie w ca\u0142ej tej sytuacji odnajdziemy chocia\u017c szczypt\u0119 optymizmu. Projekt, w kt\u00f3rym znalaz\u0142y si\u0119 wra\u017cliwe dane mia\u0142 bardzo ma\u0142y ruch oraz zero gwiazdek i brak obserwuj\u0105cych na GitHubie. Ponadto, nawet je\u015bli komu\u015b uda\u0142o si\u0119 przechwyci\u0107 klucz enkrypcji, to powi\u0105zanie go z innym projektem by\u0142o mocno nieoczywiste a skompromitowana baza danych znikn\u0119\u0142a tymczasowo z sieci. Dlatego wi\u0119c, je\u015bli kto\u015b wszed\u0142 w posiadanie klucza, ale do tej pory nie domy\u015bli\u0142 si\u0119 jego przeznaczenia, to straci\u0142 ju\u017c swoj\u0105 okazj\u0119.<\/p>\n","innerContent":["\n<p>Na szcz\u0119\u015bcie w ca\u0142ej tej sytuacji odnajdziemy chocia\u017c szczypt\u0119 optymizmu. Projekt, w kt\u00f3rym znalaz\u0142y si\u0119 wra\u017cliwe dane mia\u0142 bardzo ma\u0142y ruch oraz zero gwiazdek i brak obserwuj\u0105cych na GitHubie. Ponadto, nawet je\u015bli komu\u015b uda\u0142o si\u0119 przechwyci\u0107 klucz enkrypcji, to powi\u0105zanie go z innym projektem by\u0142o mocno nieoczywiste a skompromitowana baza danych znikn\u0119\u0142a tymczasowo z sieci. Dlatego wi\u0119c, je\u015bli kto\u015b wszed\u0142 w posiadanie klucza, ale do tej pory nie domy\u015bli\u0142 si\u0119 jego przeznaczenia, to straci\u0142 ju\u017c swoj\u0105 okazj\u0119.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Na zako\u0144czenie ma\u0142a zach\u0119ta dla odwa\u017cnych. Je\u015bli pomimo wycieku nie boicie si\u0119 wype\u0142nia\u0107 kolejnych edycji ankiety, to w minionym tygodniu wystartowa\u0142o <a href=\"https:\/\/stateofjs.com\/\">State of JS 2022<\/a>. Ja ju\u017c zacieram r\u0119ce, \u017ceby zobaczy\u0107 wyniki i przygotowa\u0107 dla Was kr\u00f3tkie podsumowanie.<\/p>\n","innerContent":["\n<p>Na zako\u0144czenie ma\u0142a zach\u0119ta dla odwa\u017cnych. Je\u015bli pomimo wycieku nie boicie si\u0119 wype\u0142nia\u0107 kolejnych edycji ankiety, to w minionym tygodniu wystartowa\u0142o <a href=\"https:\/\/stateofjs.com\/\">State of JS 2022<\/a>. Ja ju\u017c zacieram r\u0119ce, \u017ceby zobaczy\u0107 wyniki i przygotowa\u0107 dla Was kr\u00f3tkie podsumowanie.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/dev.to\/sachagreif\/disclosing-a-state-of-javascriptstate-of-css-data-breach-2lg1\">https:\/\/dev.to\/sachagreif\/disclosing-a-state-of-javascriptstate-of-css-data-breach-2lg1<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/dev.to\/sachagreif\/disclosing-a-state-of-javascriptstate-of-css-data-breach-2lg1\">https:\/\/dev.to\/sachagreif\/disclosing-a-state-of-javascriptstate-of-css-data-breach-2lg1<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>2. Eleventy v1<\/h2>\n","innerContent":["\n<h2>2. Eleventy v1<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Po prawie czterech latach wersji oznaczonych jako 0.x popularne narz\u0119dzie Eleventy wreszcie doczeka\u0142o si\u0119 wersji oznaczonej numerkiem 1.0. Je\u015bli jeszcze nie s\u0142yszeli\u015bcie o Eleventy, to jest to narz\u0119dzie do generowania statycznych stron, kt\u00f3re umo\u017cliwia korzystanie z szerokiej gamy format\u00f3w szablon\u00f3w: od oczywistych takich jak HTMl czy Markdown poprzez bardziej zaawansowane takie jak Nunjucks, czy Mustache. Ca\u0142o\u015b\u0107 oparta jest o JavaScript, ale korzystaj\u0105c z narz\u0119dzia mo\u017cemy nie napisa\u0107 nawet linijki kodu w tym j\u0119zyku.<\/p>\n","innerContent":["\n<p>Po prawie czterech latach wersji oznaczonych jako 0.x popularne narz\u0119dzie Eleventy wreszcie doczeka\u0142o si\u0119 wersji oznaczonej numerkiem 1.0. Je\u015bli jeszcze nie s\u0142yszeli\u015bcie o Eleventy, to jest to narz\u0119dzie do generowania statycznych stron, kt\u00f3re umo\u017cliwia korzystanie z szerokiej gamy format\u00f3w szablon\u00f3w: od oczywistych takich jak HTMl czy Markdown poprzez bardziej zaawansowane takie jak Nunjucks, czy Mustache. Ca\u0142o\u015b\u0107 oparta jest o JavaScript, ale korzystaj\u0105c z narz\u0119dzia mo\u017cemy nie napisa\u0107 nawet linijki kodu w tym j\u0119zyku.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"prismatic\/blocks","attrs":{"language":"bash"},"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\">npm install -g @11ty\/eleventy\necho '# Page header' > README.md\neleventy<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\">npm install -g @11ty\/eleventy\necho '# Page header' > README.md\neleventy<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Je\u015bli jeste\u015bcie zainteresowani nowo\u015bciami to najlepiej zrobicie, je\u015bli przyjrzycie si\u0119 <a href=\"https:\/\/github.com\/11ty\/eleventy\/releases\/tag\/v1.0.0\">pe\u0142nej li\u015bcie zamieszczonej na GitHubie<\/a>. Ja przytocz\u0119 tutaj tylko trzy, kt\u00f3re wydaj\u0105 mi si\u0119 najbardziej istotne. Po pierwsze dodane zosta\u0142o wsparcie dla dowolnych rozszerze\u0144 plik\u00f3w oraz silnik\u00f3w renderowania. Otwiera to drog\u0119 dla spo\u0142eczno\u015bci do rozszerzania narz\u0119dzia w\u0142a\u015bciwie w dowolny spos\u00f3b. Po drugie powsta\u0142a wersja narz\u0119dzia integruj\u0105ca si\u0119 z serwisami Serverless przez co mo\u017ce ono by\u0107 u\u017cywane do prawdziwego renderowania po stronie serwera. Ostatnia za\u015b istotna zmiana to dodanie wsparcia dla uruchamiania Eleventy z poziomu skryptu Node.js.<\/p>\n","innerContent":["\n<p>Je\u015bli jeste\u015bcie zainteresowani nowo\u015bciami to najlepiej zrobicie, je\u015bli przyjrzycie si\u0119 <a href=\"https:\/\/github.com\/11ty\/eleventy\/releases\/tag\/v1.0.0\">pe\u0142nej li\u015bcie zamieszczonej na GitHubie<\/a>. Ja przytocz\u0119 tutaj tylko trzy, kt\u00f3re wydaj\u0105 mi si\u0119 najbardziej istotne. Po pierwsze dodane zosta\u0142o wsparcie dla dowolnych rozszerze\u0144 plik\u00f3w oraz silnik\u00f3w renderowania. Otwiera to drog\u0119 dla spo\u0142eczno\u015bci do rozszerzania narz\u0119dzia w\u0142a\u015bciwie w dowolny spos\u00f3b. Po drugie powsta\u0142a wersja narz\u0119dzia integruj\u0105ca si\u0119 z serwisami Serverless przez co mo\u017ce ono by\u0107 u\u017cywane do prawdziwego renderowania po stronie serwera. Ostatnia za\u015b istotna zmiana to dodanie wsparcia dla uruchamiania Eleventy z poziomu skryptu Node.js.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Obserwuj\u0105c trendy w JavaScriptowym \u015bwiecie nie spos\u00f3b nie dostrzec coraz pr\u0119\u017cniej rozwijaj\u0105cego si\u0119 renderowania po stronie serwera. Co prawda je\u015bli chodzi o zbi\u00f3r funkcjonalno\u015bci, to Eleventy raczej nie umywa si\u0119 do takiego Next.js, ale zdecydowanie wpisuje si\u0119 ono w ten trend. No i Eleventy, je\u015bli chodzi o ,prostot\u0119 bije na g\u0142ow\u0119 chyba wi\u0119kszo\u015b\u0107 dost\u0119pnych alternatyw, a to w prostocie cz\u0119sto le\u017cy klucz do sukcesu.<\/p>\n","innerContent":["\n<p>Obserwuj\u0105c trendy w JavaScriptowym \u015bwiecie nie spos\u00f3b nie dostrzec coraz pr\u0119\u017cniej rozwijaj\u0105cego si\u0119 renderowania po stronie serwera. Co prawda je\u015bli chodzi o zbi\u00f3r funkcjonalno\u015bci, to Eleventy raczej nie umywa si\u0119 do takiego Next.js, ale zdecydowanie wpisuje si\u0119 ono w ten trend. No i Eleventy, je\u015bli chodzi o ,prostot\u0119 bije na g\u0142ow\u0119 chyba wi\u0119kszo\u015b\u0107 dost\u0119pnych alternatyw, a to w prostocie cz\u0119sto le\u017cy klucz do sukcesu.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3686,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61ws36.jpeg\" alt=\"\" class=\"wp-image-3686\"\/><figcaption>I tak, wiem, \u017ce Next.js i Eleventy to dwa r\u00f3\u017cne narz\u0119dzia, kt\u00f3re rozwi\u0105zuj\u0105 troch\u0119 inne grupy problem\u00f3w<\/figcaption><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61ws36.jpeg\" alt=\"\" class=\"wp-image-3686\"\/><figcaption>I tak, wiem, \u017ce Next.js i Eleventy to dwa r\u00f3\u017cne narz\u0119dzia, kt\u00f3re rozwi\u0105zuj\u0105 troch\u0119 inne grupy problem\u00f3w<\/figcaption><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/github.com\/11ty\/eleventy\/releases\/tag\/v1.0.0\">https:\/\/github.com\/11ty\/eleventy\/releases\/tag\/v1.0.0<\/a><br><a href=\"https:\/\/www.11ty.dev\/\">https:\/\/www.11ty.dev\/<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/github.com\/11ty\/eleventy\/releases\/tag\/v1.0.0\">https:\/\/github.com\/11ty\/eleventy\/releases\/tag\/v1.0.0<\/a><br><a href=\"https:\/\/www.11ty.dev\/\">https:\/\/www.11ty.dev\/<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>3. Parcel CSS<\/h2>\n","innerContent":["\n<h2>3. Parcel CSS<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Tw\u00f3rcy Parcela w minionym tygodniu pochwalili si\u0119 nowym narz\u0119dziem, kt\u00f3re ma jeszcze bardziej przyspieszy\u0107 budowanie aplikacji. @parcel\/css to parser, kompilator i minifikator CSS napisany w Rust. Jak to zwykle bywa z narz\u0119dziami napisanymi w tym j\u0119zyku, je\u015bli chodzi o wydajno\u015b\u0107, konkurencja zdecydowanie zosta\u0142a sprowadzona do parteru. Parcel CSS jest ponad 100x szybszy ni\u017c CSSNano i 3x szybszy ni\u017c ESBuild oferuj\u0105c przy tym por\u00f3wnywalne rozmiary wynikowej paczki.<\/p>\n","innerContent":["\n<p>Tw\u00f3rcy Parcela w minionym tygodniu pochwalili si\u0119 nowym narz\u0119dziem, kt\u00f3re ma jeszcze bardziej przyspieszy\u0107 budowanie aplikacji. @parcel\/css to parser, kompilator i minifikator CSS napisany w Rust. Jak to zwykle bywa z narz\u0119dziami napisanymi w tym j\u0119zyku, je\u015bli chodzi o wydajno\u015b\u0107, konkurencja zdecydowanie zosta\u0142a sprowadzona do parteru. Parcel CSS jest ponad 100x szybszy ni\u017c CSSNano i 3x szybszy ni\u017c ESBuild oferuj\u0105c przy tym por\u00f3wnywalne rozmiary wynikowej paczki.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":3687,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/Screenshot-2022-01-19-at-16.02.37-1024x434.png\" alt=\"\" class=\"wp-image-3687\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/Screenshot-2022-01-19-at-16.02.37-1024x434.png\" alt=\"\" class=\"wp-image-3687\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>@parcel\/css dost\u0119pny jest jako wtyczka do Parcela oraz niezale\u017cna biblioteka dla JavaScriptu oraz Rusta. Co wa\u017cne, tw\u00f3rcy zaprojektowali paczk\u0119 w taki spos\u00f3b, aby mo\u017cna by\u0142o j\u0105 u\u017cy\u0107 r\u00f3wnie\u017c z innymi narz\u0119dziami do budowania aplikacji. Oznacza to, \u017ce mo\u017cemy wkr\u00f3tce spodziewa\u0107 si\u0119 edycji dla WebPacka czy Gulpa od spo\u0142eczno\u015bci.<\/p>\n","innerContent":["\n<p>@parcel\/css dost\u0119pny jest jako wtyczka do Parcela oraz niezale\u017cna biblioteka dla JavaScriptu oraz Rusta. Co wa\u017cne, tw\u00f3rcy zaprojektowali paczk\u0119 w taki spos\u00f3b, aby mo\u017cna by\u0142o j\u0105 u\u017cy\u0107 r\u00f3wnie\u017c z innymi narz\u0119dziami do budowania aplikacji. Oznacza to, \u017ce mo\u017cemy wkr\u00f3tce spodziewa\u0107 si\u0119 edycji dla WebPacka czy Gulpa od spo\u0142eczno\u015bci.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3688,"width":632,"height":430,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61wsyo.jpeg\" alt=\"\" class=\"wp-image-3688\" width=\"632\" height=\"430\"\/><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/61wsyo.jpeg\" alt=\"\" class=\"wp-image-3688\" width=\"632\" height=\"430\"\/><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/parceljs.org\/blog\/parcel-css\/\">https:\/\/parceljs.org\/blog\/parcel-css\/<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/parceljs.org\/blog\/parcel-css\/\">https:\/\/parceljs.org\/blog\/parcel-css\/<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>Bonus: hiccupFX.js<\/h2>\n","innerContent":["\n<h2>Bonus: hiccupFX.js<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3689,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/hes-so-ugly-marvel.gif\" alt=\"\" class=\"wp-image-3689\"\/><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/hes-so-ugly-marvel.gif\" alt=\"\" class=\"wp-image-3689\"\/><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dzi\u015b na zako\u0144czenie mam dla Was ma\u0142y bonus z przymru\u017ceniem oka. Zdarzy\u0142o Wam si\u0119 kiedy\u015b pr\u00f3bowa\u0107 klikn\u0105\u0107 w przycisk na stronie, podczas gdy ta z pr\u0119dko\u015bci\u0105 \u015bwiat\u0142a do\u0142adowa\u0142a kolejne reklamy co sprawia\u0142o, \u017ce layout wygl\u0105da\u0142 jakby w\u0142a\u015bnie przechodzi\u0142 atak padaczki? Je\u015bli tak, to pewnie ucieszycie si\u0119 na wie\u015b\u0107, \u017ce dzi\u0119ki jednej linijce kodu i bibliotece hiccupFX.js mo\u017cecie obdarowa\u0107 swoich u\u017cytkownik\u00f3w w to niezapomniane do\u015bwiadczenie.<\/p>\n","innerContent":["\n<p>Dzi\u015b na zako\u0144czenie mam dla Was ma\u0142y bonus z przymru\u017ceniem oka. Zdarzy\u0142o Wam si\u0119 kiedy\u015b pr\u00f3bowa\u0107 klikn\u0105\u0107 w przycisk na stronie, podczas gdy ta z pr\u0119dko\u015bci\u0105 \u015bwiat\u0142a do\u0142adowa\u0142a kolejne reklamy co sprawia\u0142o, \u017ce layout wygl\u0105da\u0142 jakby w\u0142a\u015bnie przechodzi\u0142 atak padaczki? Je\u015bli tak, to pewnie ucieszycie si\u0119 na wie\u015b\u0107, \u017ce dzi\u0119ki jednej linijce kodu i bibliotece hiccupFX.js mo\u017cecie obdarowa\u0107 swoich u\u017cytkownik\u00f3w w to niezapomniane do\u015bwiadczenie.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3690,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/Jan-20-2022-00-06-37.gif\" alt=\"\" class=\"wp-image-3690\"\/><figcaption>Je\u015bli w najbli\u017cszych dniach Vived zacznie si\u0119 dziwnie zachowywa\u0107, to nie patrzcie na mnie\u2026<\/figcaption><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/Jan-20-2022-00-06-37.gif\" alt=\"\" class=\"wp-image-3690\"\/><figcaption>Je\u015bli w najbli\u017cszych dniach Vived zacznie si\u0119 dziwnie zachowywa\u0107, to nie patrzcie na mnie\u2026<\/figcaption><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/hiccupfx.telnet.asia\/\">https:\/\/hiccupfx.telnet.asia\/<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/hiccupfx.telnet.asia\/\">https:\/\/hiccupfx.telnet.asia\/<\/a><\/p>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10017","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/comments?post=10017"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10017\/revisions"}],"predecessor-version":[{"id":10605,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10017\/revisions\/10605"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/7898"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=10017"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=10017"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=10017"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}