{"id":10161,"date":"2021-03-27T09:00:16","date_gmt":"2021-03-27T08:00:16","guid":{"rendered":"https:\/\/vived.io\/software-craftsmanship-saturday-vol-30\/"},"modified":"2022-09-19T13:20:14","modified_gmt":"2022-09-19T11:20:14","slug":"software-craftsmanship-saturday-vol-30","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/","title":{"rendered":"Software Craftsmanship Saturday vol. 30"},"content":{"rendered":"<h2 id=\"1-jak-slack-uzywa-tracingu-do-sledzenia-wydajnosci-aplikacji\" data-num=1>1. <a href=\"https:\/\/slack.engineering\/client-tracing-understanding-mobile-and-desktop-application-performance-at-scale\/\">Jak Slack u\u017cywa tracingu do \u015bledzenia wydajno\u015bci aplikacji<\/a> \ufe0f\u200d\u2640\ufe0f<\/h2>\n<p>Postmodernizm si\u0119 nam w bran\u017cy szerzy.<\/p>\n<p>Podejrzewam, \u017ce ka\u017cdy z Was ma koleg\u0119\/kole\u017cank\u0119 w pracy, twierdz\u0105cego \u017ce IT wesz\u0142o w etap stagnacji i \u201cwszystko ju\u017c by\u0142o\u201d. \u017be taki no-code to ju\u017c pr\u00f3bowali\u015bmy jako bran\u017ca kilka razy, reaktywno\u015b\u0107 ma korzenie w latach 90-tych, a async\/await i korutyny to w og\u00f3le koncept z lat 60-tych. W\u0142a\u015bciwie teraz to tylko implementujemy koncepcje dawnych mistrz\u00f3w, robi\u0105c nic nie znacz\u0105ce poprawki i miksuj\u0105c stare pomys\u0142y.<\/p>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9cd93e4.png\" alt=\"\" \/><figcaption>A jak jeszcze Ci koledzy pisz\u0105 w Lispie, to og\u00f3lnie dyskusja robi si\u0119 ci\u0119\u017cka<\/figcaption><\/figure>\n<p>W poprzednim projekcie mia\u0142em do czynienia z do\u015b\u0107 paskudnym Legacy, przepisywanym na nowocze\u015bniejszy stack technologiczny. Dzi\u0119ki temu, mia\u0142em sporo czasu do przemy\u015ble\u0144 i refleksji (<em>np. podczas oczekiwania, a\u017c w czwartek przejd\u0105 batchowe joby zawieraj\u0105ce moje zmiany z poniedzia\u0142ku &#8211; to s\u0105 bydl\u0119ta i feedback loop naprawd\u0119 czasem bywa d\u0142ugi <\/em>). Moje my\u015bli cz\u0119sto odp\u0142ywa\u0142y w kierunku pr\u00f3by obalenia tezy postawionej w pierwszym akapicie: pr\u00f3by zrozumienia, w czym tak naprawd\u0119 systemy dzisiaj pisane s\u0105 lepsze od tych historycznych. Z perspektywy czasu i grzebania si\u0119 w bagnie ETLowych \u201cjob\u00f3w\u201d, mam pewne odpowiedzi &#8211; nauczeni problemami przesz\u0142o\u015bci, du\u017co wi\u0119kszy nacisk k\u0142adziemy na \u201czrozumialno\u015b\u0107\u201d naszych system\u00f3w.<\/p>\n<p>Tego w\u0142a\u015bnie przejawem jest np. Immutable Infrastructure, a po\u015brednio nawet Continuous Integration ze scentralizowan\u0105 automatyzacj\u0105 wszystkich krok\u00f3w budowania aplikacji. Jednak chyba najjaskrawszym przyk\u0142adem b\u0119dzie pr\u00f3ba okie\u0142znania problem\u00f3w zwi\u0105zanych ze z\u0142o\u017conymi systemami, kt\u00f3ra dokonuje si\u0119 poprzez tak zwane \u201cObservability\u201d.<\/p>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9d79cd9.png\" alt=\"\" \/><figcaption>Nie, sama chmura niczego nie rozwi\u0105zuje.<\/figcaption><\/figure>\n<p>Ca\u0142y ten nieco przyd\u0142ugi wst\u0119p prowadzi mnie <a href=\"https:\/\/slack.engineering\/client-tracing-understanding-mobile-and-desktop-application-performance-at-scale\/\">do nowej publikacji od Slacka<\/a>. Jest to bardzo dobry case study z wdro\u017cenia tracingu w celu rozwi\u0105zania bug\u00f3w zwi\u0105zanych z performancem aplikacji. Przyk\u0142ad Slacka jest bardzo interesuj\u0105cy &#8211; w celu zrozumienia \u201cdlaczego u\u017cytkownik zaobserwowa\u0142 laga\u201d, musieli oni po\u0142\u0105czy\u0107 w jednym logicznym ci\u0105gu przyczynowo-skutkowym zapytania SQLite na mobilnych klientach, op\u00f3\u017anienia sieci, kolokowanie request\u00f3w, czy takie trywialne zdawa\u0142oby si\u0119 dzia\u0142ania jak cho\u0107by parsowanie JSON\u00f3w, potrafi\u0105ce do\u0142o\u017cy\u0107 zaskakuj\u0105co du\u017ce op\u00f3\u017anienie.<\/p>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9f106c8.png\" alt=\"\" \/><figcaption>\u017baden user nigdy<span class=\"-mobiledoc-kit__atom\">\u200c\u200c<\/span><\/figcaption><\/figure>\n<p>Potraktujcie poprzedni akapit jako zajawk\u0119 z mojej strony, bardzo polecam przeczyta\u0107 ten tekst. W zwi\u0105zku z faktem, \u017ce Slack nie zaimplementowa\u0142 bezpo\u015brednio OpenTracingu, jak robi to ka\u017cdy \u201cszaraczek\u201d, jego publikacja wchodzi nieco g\u0142\u0119biej ni\u017c wi\u0119kszo\u015b\u0107 podobnych. Zamiast tutoriala jak u\u017cy\u0107 gotowej biblioteki, mamy tutaj pokazane problemy na jakie mo\u017cna trafi\u0107 pisz\u0105c w\u0142asny tracing. Je\u017celi nie jeste\u015b Slackiem, to og\u00f3lnie nie polecamy (zw\u0142aszcza w dobie, gdy OpenTracing jest nienajgorszym bran\u017cowym standardem) &#8211; jednak \u015bwiadomo\u015b\u0107, co tam si\u0119 dzieje \u201cpod mask\u0105\u201d, pomaga efektywniej u\u017cywa\u0107 istniej\u0105cego toolingu.<\/p>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n<li><a href=\"https:\/\/slack.engineering\/client-tracing-understanding-mobile-and-desktop-application-performance-at-scale\/\">Client Tracing: Understanding Mobile and Desktop Application Performance at Scale<\/a><\/li>\n<\/ul>\n<h2 id=\"2-pieklo-zamarzlo-a-chiny-wprowadzaja-swoj-gdpr\" data-num=2><a href=\"https:\/\/techcrunch.com\/2021\/03\/22\/china-regulation-data-collection-may-starts\/\">2. Piek\u0142o zamarz\u0142o, a Chiny wprowadzaj\u0105 sw\u00f3j \u201cGDPR\u201d<\/a><\/h2>\n<p>Kiedy Europa wprowadzi\u0142a GDPR, krytycy podnosili g\u0142osy, \u017ce<\/p>\n<blockquote><p>my si\u0119 regulujemy, a \u015bwiat b\u0119dzie swobodnie korzysta\u0142 z danych u\u017cytkownik\u00f3w i nam odskoczy.<\/p><\/blockquote>\n<p>Nast\u0119pnie, gdy Kalifornia wprowadza\u0142a <a href=\"https:\/\/oag.ca.gov\/privacy\/ccpa\">California Consumer Privacy Act (CCPA)<\/a>, popularne by\u0142y komentarze<\/p>\n<blockquote><p>no to Chi\u0144czycy teraz wszystkich zaoraj\u0105, u nich to jest prawdziwa swoboda.<\/p><\/blockquote>\n<p>Ka\u017cda nowa regulacja w szeroko poj\u0119tym zachodzie spotyka si\u0119 mniej wi\u0119cej z podobn\u0105 krytyk\u0105.<\/p>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0ba05fe4b.gif\" alt=\"\" \/><figcaption>Troch\u0119 przypomina mi to retoryk\u0119 wobec problemu globalnego ocieplenia.<\/figcaption><\/figure>\n<p>Przyznam prywatnie, \u017ce te\u017c w tej kwestii sam jestem nieco rozdarty, bior\u0105c pod uwag\u0119 \u017ce globalizacja nam si\u0119 odrobink\u0119 sypie i \u015bwiat robi si\u0119 \u201chiperkompetetywny.\u201d Jednocze\u015bnie jednak, okazuje si\u0119, \u017ce r\u00f3wnie\u017c w Chinach powoli &#8222;dziki zach\u00f3d&#8221; zaczyna si\u0119 ko\u0144czy\u0107.<\/p>\n<p>Od pierwszego maja aplikacje w Chinach nie b\u0119d\u0105 mog\u0142y ju\u017c zbiera\u0107 nadmiarowych danych, b\u0119d\u0105 te\u017c musia\u0142y potrafi\u0107 si\u0119 wyt\u0142umaczy\u0107 z celu trackowania u\u017cytkownika. Oficjalnie jest to motywowane dbaniem o obywateli i ich dobro, niekt\u00f3rzy wskazuj\u0105 jednak na fakt, \u017ce nawet chi\u0144skie w\u0142adze przestraszy\u0142y si\u0119 pot\u0119gi swoich gigant\u00f3w IT. Na to mo\u017ce wskazywa\u0107 cho\u0107by np. <a href=\"https:\/\/techcrunch.com\/2020\/11\/10\/china-antitrust-rules-on-internet-industry\/\">zapowiedzi nowego prawa antymonopolowego<\/a>.<\/p>\n<p>Rok 2021 na ca\u0142ym \u015bwiecie zapowiada si\u0119 sta\u0107 pod znakiem wszelkich regulacji (nie jest to pierwszy raz kiedy informacja o takowych trafia <a href=\"https:\/\/blog.vived.io\/software-craftsmanship-saturday-vol-25\/\">do naszej soboty<\/a>), ale b\u0119dziemy przygl\u0105da\u0107 si\u0119 rozwojowi sytuacji w Chinach pod tym k\u0105tem.<\/p>\n<p>BTW: Ca\u0142y \u015bwiat si\u0119 \u015bmia\u0142 <a href=\"https:\/\/www.theguardian.com\/world\/2018\/aug\/07\/china-bans-winnie-the-pooh-film-to-stop-comparisons-to-president-xi\">z Kubusia Puchatka<\/a> &#8211; teraz nieco podobny ton jest <a href=\"https:\/\/www.bbc.com\/news\/world-europe-56491949\">u\u017cywany w komentowaniu wydarze\u0144 w Polsce<\/a><\/p>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0ba103da2.gif\" alt=\"\" \/><figcaption>Ale nie ma tego z\u0142ego, mo\u017ce si\u0119 za\u0142apiemy do nast\u0119pnego sezony South Parka \u201c<a href=\"https:\/\/www.hollywoodreporter.com\/news\/south-park-banned-chinese-internet-critical-episode-1245783\">Band in China<\/a>\u201d to w ko\u0144cu najlepszy odcinek serialu od lat.<span class=\"-mobiledoc-kit__atom\">\u200c\u200c<\/span><\/figcaption><\/figure>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-1\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n<li><a href=\"https:\/\/techcrunch.com\/2021\/03\/22\/china-regu\nlation-data-collection-may-starts\/\">China to ban apps from collecting excessive user data starting May 1<\/a><\/li>\n<\/ul>\n<h2 id=\"3-jak-uber-zadbal-o-jakosc-swoich-danych\" data-num=3><a href=\"https:\/\/eng.uber.com\/ubers-journey-toward-better-data-culture-from-first-principles\/\">3. Jak Uber zadba\u0142 o jako\u015b\u0107 swoich danych <\/a><\/h2>\n<p>A na koniec mamy dla Was bardzo ciekawy <a href=\"https:\/\/eng.uber.com\/ubers-journey-toward-better-data-culture-from-first-principles\/\">artyku\u0142<\/a> z podw\u00f3rka Ubera.<\/p>\n<p>Nasz zesp\u00f3\u0142 Data Science (pozdrawiam je\u015bli czytacie ) \u00a0zawsze powtarza, \u017ce je\u015bli chodzi o prac\u0119 z danymi to \u201cGarbage In, Garbage Out\u201d. Bardzo podobnym tonem operuje wspomniany tekst &#8211; jest to \u201cholistyczna\u201d pozycja, kt\u00f3ra zamiast skupia\u0107 si\u0119 na pojedynczym elemencie ca\u0142ego procesu ka\u017ce spojrze\u0107 na niego jako na ca\u0142o\u015b\u0107 i zastanowi\u0107 si\u0119 nad jako\u015bci\u0105 tego czym karmimy nasze modele.<\/p>\n<p>Dlatego te\u017c pomimo \u017ce nie jest to lektura lekka, gdy\u017c porusza mnogo\u015b\u0107 temat\u00f3w (u\u017cywanie w kontek\u015bcie danych technik znanych z wytwarzania oprogramownia jak np. testowanie, istotno\u015b\u0107 \u201cownershipu\u201d nad danymi czy te\u017c kryteria jakimi powinni\u015bmy si\u0119 kierowa\u0107 przy rekrutacji) potraktowa\u0142bym j\u0105 jako w zasadzie <strong>publikacje obowi\u0105zkow\u0105, nawet je\u015bli nie zajmujesz si\u0119 w pracy szeroko poj\u0119tym Data Science<\/strong>. Cz\u0119\u015b\u0107 lekcji kt\u00f3re artyku\u0142 zawiera (jak np. przechowywanie odpowiedniej ilo\u015bci kontekstu) mo\u017ce okaza\u0107 si\u0119 kluczowa w momencie, gdy kto\u015b b\u0119dzie chcia\u0142 wykorzysta\u0107 generowane przez Ciebie dane w ML. Dodatkowo, cz\u0119\u015b\u0107 sugestii (np. standaryzacja metryk) jest aplikowalna w znacznie szerszym kontek\u015bcie.<\/p>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img decoding=\"async\" class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0ba1727c2.png\" alt=\"\" \/><figcaption>Pewnie jakby Uber r\u00f3wnie dobrze dba\u0142 o kierowc\u00f3w jak o dane, to wyrok\u00f3w s\u0105dowych <a href=\"https:\/\/edition.cnn.com\/2021\/03\/16\/tech\/uber-uk-vacation-pensions-drivers\/index.html\">jak ten z Wielkiej Brytanii z ostatniego tygodnia<\/a> by\u0142oby mniej<\/figcaption><\/figure>\n<p>Og\u00f3lnie polecam czytanie zar\u00f3wno bloga Ubera, jak i Slacka (lub <a href=\"https:\/\/blog.vived.io\/keep-up-czyli-o-tym-jak-byc-na-biezaco-bez-uczucia-przytloczenia-contentem\/\">naszego Keep Upa<\/a>, w kt\u00f3rym cz\u0119sto artyku\u0142 z obu si\u0119 znajduj\u0105) &#8211; s\u0105 to jeden z lepiej pisanych firmowych blog\u00f3w, co mam nadzieje udowodnili\u015bmy t\u0105 edycja naszej soboty<\/p>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-2\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n<li><a href=\"https:\/\/eng.uber.com\/ubers-journey-toward-better-data-culture-from-first-principles\/\" rel=\"bookmark\">Uber\u2019s Journey Toward Better Data Culture From First Principles<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Dzisiaj mam dla Was dwa bydl\u0119ta z firmowych blog\u00f3w &#8211; o u\u017cyciu Tracingu w Slacku oraz sposobie utrzymania jako\u015bci danych w Uberze. Ca\u0142o\u015b\u0107 dodatkowo doprawiona zosta\u0142a informacj\u0105 o Chi\u0144skim mini-GDPR &#8211; tak, to si\u0119 naprawd\u0119 dzieje \ud83d\ude31<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[266],"tags":[],"class_list":["post-10161","post","type-post","status-publish","format-standard","hentry","category-craftsmanship"],"acf":{"weekly_summary":true,"estimated_reading_time":"5"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Software Craftsmanship Saturday vol. 30 - 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\/software-craftsmanship-saturday-vol-30\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Software Craftsmanship Saturday vol. 30 - Vived\" \/>\n<meta property=\"og:description\" content=\"Dzisiaj mam dla Was dwa bydl\u0119ta z firmowych blog\u00f3w - o u\u017cyciu Tracingu w Slacku oraz sposobie utrzymania jako\u015bci danych w Uberze. Ca\u0142o\u015b\u0107 dodatkowo doprawiona zosta\u0142a informacj\u0105 o Chi\u0144skim mini-GDPR - tak, to si\u0119 naprawd\u0119 dzieje \ud83d\ude31\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-27T08:00:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:20:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9cd93e4.png\" \/>\n<meta name=\"author\" content=\"Artur Skowro\u0144ski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"Software Craftsmanship Saturday vol. 30\",\"datePublished\":\"2021-03-27T08:00:16+00:00\",\"dateModified\":\"2022-09-19T11:20:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/\"},\"wordCount\":1104,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9cd93e4.png\",\"articleSection\":[\"Craftsmanship\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/\",\"url\":\"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/\",\"name\":\"Software Craftsmanship Saturday vol. 30 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9cd93e4.png\",\"datePublished\":\"2021-03-27T08:00:16+00:00\",\"dateModified\":\"2022-09-19T11:20:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9cd93e4.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9cd93e4.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Software Craftsmanship Saturday vol. 30\"}]},{\"@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\/0eb0878110cb27edfbfe46e841fe6db3\",\"name\":\"Artur Skowro\u0144ski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"caption\":\"Artur Skowro\u0144ski\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Software Craftsmanship Saturday vol. 30 - 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\/software-craftsmanship-saturday-vol-30\/","og_locale":"pl_PL","og_type":"article","og_title":"Software Craftsmanship Saturday vol. 30 - Vived","og_description":"Dzisiaj mam dla Was dwa bydl\u0119ta z firmowych blog\u00f3w - o u\u017cyciu Tracingu w Slacku oraz sposobie utrzymania jako\u015bci danych w Uberze. Ca\u0142o\u015b\u0107 dodatkowo doprawiona zosta\u0142a informacj\u0105 o Chi\u0144skim mini-GDPR - tak, to si\u0119 naprawd\u0119 dzieje \ud83d\ude31","og_url":"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/","og_site_name":"Vived","article_published_time":"2021-03-27T08:00:16+00:00","article_modified_time":"2022-09-19T11:20:14+00:00","og_image":[{"url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9cd93e4.png","type":"","width":"","height":""}],"author":"Artur Skowro\u0144ski","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"Software Craftsmanship Saturday vol. 30","datePublished":"2021-03-27T08:00:16+00:00","dateModified":"2022-09-19T11:20:14+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/"},"wordCount":1104,"commentCount":0,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9cd93e4.png","articleSection":["Craftsmanship"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/","url":"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/","name":"Software Craftsmanship Saturday vol. 30 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9cd93e4.png","datePublished":"2021-03-27T08:00:16+00:00","dateModified":"2022-09-19T11:20:14+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9cd93e4.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9cd93e4.png"},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/software-craftsmanship-saturday-vol-30\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Software Craftsmanship Saturday vol. 30"}]},{"@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\/0eb0878110cb27edfbfe46e841fe6db3","name":"Artur Skowro\u0144ski","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","caption":"Artur Skowro\u0144ski"}}]}},"blocks_vived":[{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"<h2 id=\"1-jak-slack-u%C5%BCywa-tracingu-do-%C5%9Bledzenia-wydajno%C5%9Bci-aplikacji-%F0%9F%95%B5%EF%B8%8F%E2%80%8D%E2%99%80%EF%B8%8F\">1. <a href=\"https:\/\/slack.engineering\/client-tracing-understanding-mobile-and-desktop-application-performance-at-scale\/\">Jak Slack u\u017cywa tracingu do \u015bledzenia wydajno\u015bci aplikacji<\/a> \ufe0f\u200d\u2640\ufe0f<\/h2>\nPostmodernizm si\u0119 nam w bran\u017cy szerzy.\n\nPodejrzewam, \u017ce ka\u017cdy z Was ma koleg\u0119\/kole\u017cank\u0119 w pracy, twierdz\u0105cego \u017ce IT wesz\u0142o w etap stagnacji i \u201cwszystko ju\u017c by\u0142o\u201d. \u017be taki no-code to ju\u017c pr\u00f3bowali\u015bmy jako bran\u017ca kilka razy, reaktywno\u015b\u0107 ma korzenie w latach 90-tych, a async\/await i korutyny to w og\u00f3le koncept z lat 60-tych. W\u0142a\u015bciwie teraz to tylko implementujemy koncepcje dawnych mistrz\u00f3w, robi\u0105c nic nie znacz\u0105ce poprawki i miksuj\u0105c stare pomys\u0142y.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9cd93e4.png\" alt=\"\" \/>\n<figcaption>A jak jeszcze Ci koledzy pisz\u0105 w Lispie, to og\u00f3lnie dyskusja robi si\u0119 ci\u0119\u017cka<\/figcaption><\/figure>\nW poprzednim projekcie mia\u0142em do czynienia z do\u015b\u0107 paskudnym Legacy, przepisywanym na nowocze\u015bniejszy stack technologiczny. Dzi\u0119ki temu, mia\u0142em sporo czasu do przemy\u015ble\u0144 i refleksji (<em>np. podczas oczekiwania, a\u017c w czwartek przejd\u0105 batchowe joby zawieraj\u0105ce moje zmiany z poniedzia\u0142ku - to s\u0105 bydl\u0119ta i feedback loop naprawd\u0119 czasem bywa d\u0142ugi <\/em>). Moje my\u015bli cz\u0119sto odp\u0142ywa\u0142y w kierunku pr\u00f3by obalenia tezy postawionej w pierwszym akapicie: pr\u00f3by zrozumienia, w czym tak naprawd\u0119 systemy dzisiaj pisane s\u0105 lepsze od tych historycznych. Z perspektywy czasu i grzebania si\u0119 w bagnie ETLowych \u201cjob\u00f3w\u201d, mam pewne odpowiedzi - nauczeni problemami przesz\u0142o\u015bci, du\u017co wi\u0119kszy nacisk k\u0142adziemy na \u201czrozumialno\u015b\u0107\u201d naszych system\u00f3w.\n\nTego w\u0142a\u015bnie przejawem jest np. Immutable Infrastructure, a po\u015brednio nawet Continuous Integration ze scentralizowan\u0105 automatyzacj\u0105 wszystkich krok\u00f3w budowania aplikacji. Jednak chyba najjaskrawszym przyk\u0142adem b\u0119dzie pr\u00f3ba okie\u0142znania problem\u00f3w zwi\u0105zanych ze z\u0142o\u017conymi systemami, kt\u00f3ra dokonuje si\u0119 poprzez tak zwane \u201cObservability\u201d.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9d79cd9.png\" alt=\"\" \/>\n\n<figcaption>Nie, sama chmura niczego nie rozwi\u0105zuje.<\/figcaption><\/figure>\nCa\u0142y ten nieco przyd\u0142ugi wst\u0119p prowadzi mnie <a href=\"https:\/\/slack.engineering\/client-tracing-understanding-mobile-and-desktop-application-performance-at-scale\/\">do nowej publikacji od Slacka<\/a>. Jest to bardzo dobry case study z wdro\u017cenia tracingu w celu rozwi\u0105zania bug\u00f3w zwi\u0105zanych z performancem aplikacji. Przyk\u0142ad Slacka jest bardzo interesuj\u0105cy - w celu zrozumienia \u201cdlaczego u\u017cytkownik zaobserwowa\u0142 laga\u201d, musieli oni po\u0142\u0105czy\u0107 w jednym logicznym ci\u0105gu przyczynowo-skutkowym zapytania SQLite na mobilnych klientach, op\u00f3\u017anienia sieci, kolokowanie request\u00f3w, czy takie trywialne zdawa\u0142oby si\u0119 dzia\u0142ania jak cho\u0107by parsowanie JSON\u00f3w, potrafi\u0105ce do\u0142o\u017cy\u0107 zaskakuj\u0105co du\u017ce op\u00f3\u017anienie.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9f106c8.png\" alt=\"\" \/>\n\n<figcaption>\u017baden user nigdy<span class=\"-mobiledoc-kit__atom\">\u200c\u200c<\/span><\/figcaption><\/figure>\nPotraktujcie poprzedni akapit jako zajawk\u0119 z mojej strony, bardzo polecam przeczyta\u0107 ten tekst. W zwi\u0105zku z faktem, \u017ce Slack nie zaimplementowa\u0142 bezpo\u015brednio OpenTracingu, jak robi to ka\u017cdy \u201cszaraczek\u201d, jego publikacja wchodzi nieco g\u0142\u0119biej ni\u017c wi\u0119kszo\u015b\u0107 podobnych. Zamiast tutoriala jak u\u017cy\u0107 gotowej biblioteki, mamy tutaj pokazane problemy na jakie mo\u017cna trafi\u0107 pisz\u0105c w\u0142asny tracing. Je\u017celi nie jeste\u015b Slackiem, to og\u00f3lnie nie polecamy (zw\u0142aszcza w dobie, gdy OpenTracing jest nienajgorszym bran\u017cowym standardem) - jednak \u015bwiadomo\u015b\u0107, co tam si\u0119 dzieje \u201cpod mask\u0105\u201d, pomaga efektywniej u\u017cywa\u0107 istniej\u0105cego toolingu.\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/slack.engineering\/client-tracing-understanding-mobile-and-desktop-application-performance-at-scale\/\">Client Tracing: Understanding Mobile and Desktop Application Performance at Scale<\/a><\/li>\n<\/ul>\n<h2 id=\"2-piek%C5%82o-zamarz%C5%82o-a-chiny-wprowadzaj%C4%85-sw%C3%B3j-%E2%80%9Cgdpr%E2%80%9D-%F0%9F%98%B1\"><a href=\"https:\/\/techcrunch.com\/2021\/03\/22\/china-regulation-data-collection-may-starts\/\">2. Piek\u0142o zamarz\u0142o, a Chiny wprowadzaj\u0105 sw\u00f3j \u201cGDPR\u201d<\/a><\/h2>\nKiedy Europa wprowadzi\u0142a GDPR, krytycy podnosili g\u0142osy, \u017ce\n<blockquote>my si\u0119 regulujemy, a \u015bwiat b\u0119dzie swobodnie korzysta\u0142 z danych u\u017cytkownik\u00f3w i nam odskoczy.<\/blockquote>\nNast\u0119pnie, gdy Kalifornia wprowadza\u0142a <a href=\"https:\/\/oag.ca.gov\/privacy\/ccpa\">California Consumer Privacy Act (CCPA)<\/a>, popularne by\u0142y komentarze\n<blockquote>no to Chi\u0144czycy teraz wszystkich zaoraj\u0105, u nich to jest prawdziwa swoboda.<\/blockquote>\nKa\u017cda nowa regulacja w szeroko poj\u0119tym zachodzie spotyka si\u0119 mniej wi\u0119cej z podobn\u0105 krytyk\u0105.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0ba05fe4b.gif\" alt=\"\" \/>\n\n<figcaption>Troch\u0119 przypomina mi to retoryk\u0119 wobec problemu globalnego ocieplenia.<\/figcaption><\/figure>\nPrzyznam prywatnie, \u017ce te\u017c w tej kwestii sam jestem nieco rozdarty, bior\u0105c pod uwag\u0119 \u017ce globalizacja nam si\u0119 odrobink\u0119 sypie i \u015bwiat robi si\u0119 \u201chiperkompetetywny.\u201d Jednocze\u015bnie jednak, okazuje si\u0119, \u017ce r\u00f3wnie\u017c w Chinach powoli \"dziki zach\u00f3d\" zaczyna si\u0119 ko\u0144czy\u0107.\n\nOd pierwszego maja aplikacje w Chinach nie b\u0119d\u0105 mog\u0142y ju\u017c zbiera\u0107 nadmiarowych danych, b\u0119d\u0105 te\u017c musia\u0142y potrafi\u0107 si\u0119 wyt\u0142umaczy\u0107 z celu trackowania u\u017cytkownika. Oficjalnie jest to motywowane dbaniem o obywateli i ich dobro, niekt\u00f3rzy wskazuj\u0105 jednak na fakt, \u017ce nawet chi\u0144skie w\u0142adze przestraszy\u0142y si\u0119 pot\u0119gi swoich gigant\u00f3w IT. Na to mo\u017ce wskazywa\u0107 cho\u0107by np. <a href=\"https:\/\/techcrunch.com\/2020\/11\/10\/china-antitrust-rules-on-internet-industry\/\">zapowiedzi nowego prawa antymonopolowego<\/a>.\n\nRok 2021 na ca\u0142ym \u015bwiecie zapowiada si\u0119 sta\u0107 pod znakiem wszelkich regulacji (nie jest to pierwszy raz kiedy informacja o takowych trafia <a href=\"https:\/\/blog.vived.io\/software-craftsmanship-saturday-vol-25\/\">do naszej soboty<\/a>), ale b\u0119dziemy przygl\u0105da\u0107 si\u0119 rozwojowi sytuacji w Chinach pod tym k\u0105tem.\n\nBTW: Ca\u0142y \u015bwiat si\u0119 \u015bmia\u0142 <a href=\"https:\/\/www.theguardian.com\/world\/2018\/aug\/07\/china-bans-winnie-the-pooh-film-to-stop-comparisons-to-president-xi\">z Kubusia Puchatka<\/a> - teraz nieco podobny ton jest <a href=\"https:\/\/www.bbc.com\/news\/world-europe-56491949\">u\u017cywany w komentowaniu wydarze\u0144 w Polsce<\/a>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0ba103da2.gif\" alt=\"\" \/>\n\n<figcaption>Ale nie ma tego z\u0142ego, mo\u017ce si\u0119 za\u0142apiemy do nast\u0119pnego sezony South Parka \u201c<a href=\"https:\/\/www.hollywoodreporter.com\/news\/south-park-banned-chinese-internet-critical-episode-1245783\">Band in China<\/a>\u201d to w ko\u0144cu najlepszy odcinek serialu od lat.<span class=\"-mobiledoc-kit__atom\">\u200c\u200c<\/span><\/figcaption><\/figure>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-1\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/techcrunch.com\/2021\/03\/22\/china-regu\nlation-data-collection-may-starts\/\">China to ban apps from collecting excessive user data starting May 1<\/a><\/li>\n<\/ul>\n<h2 id=\"3-jak-uber-zadba%C5%82-o-jako%C5%9B%C4%87-swoich-danych-%F0%9F%9A%97\"><a href=\"https:\/\/eng.uber.com\/ubers-journey-toward-better-data-culture-from-first-principles\/\">3. Jak Uber zadba\u0142 o jako\u015b\u0107 swoich danych <\/a><\/h2>\nA na koniec mamy dla Was bardzo ciekawy <a href=\"https:\/\/eng.uber.com\/ubers-journey-toward-better-data-culture-from-first-principles\/\">artyku\u0142<\/a> z podw\u00f3rka Ubera.\n\nNasz zesp\u00f3\u0142 Data Science (pozdrawiam je\u015bli czytacie ) \u00a0zawsze powtarza, \u017ce je\u015bli chodzi o prac\u0119 z danymi to \u201cGarbage In, Garbage Out\u201d. Bardzo podobnym tonem operuje wspomniany tekst - jest to \u201cholistyczna\u201d pozycja, kt\u00f3ra zamiast skupia\u0107 si\u0119 na pojedynczym elemencie ca\u0142ego procesu ka\u017ce spojrze\u0107 na niego jako na ca\u0142o\u015b\u0107 i zastanowi\u0107 si\u0119 nad jako\u015bci\u0105 tego czym karmimy nasze modele.\n\nDlatego te\u017c pomimo \u017ce nie jest to lektura lekka, gdy\u017c porusza mnogo\u015b\u0107 temat\u00f3w (u\u017cywanie w kontek\u015bcie danych technik znanych z wytwarzania oprogramownia jak np. testowanie, istotno\u015b\u0107 \u201cownershipu\u201d nad danymi czy te\u017c kryteria jakimi powinni\u015bmy si\u0119 kierowa\u0107 przy rekrutacji) potraktowa\u0142bym j\u0105 jako w zasadzie <strong>publikacje obowi\u0105zkow\u0105, nawet je\u015bli nie zajmujesz si\u0119 w pracy szeroko poj\u0119tym Data Science<\/strong>. Cz\u0119\u015b\u0107 lekcji kt\u00f3re artyku\u0142 zawiera (jak np. przechowywanie odpowiedniej ilo\u015bci kontekstu) mo\u017ce okaza\u0107 si\u0119 kluczowa w momencie, gdy kto\u015b b\u0119dzie chcia\u0142 wykorzysta\u0107 generowane przez Ciebie dane w ML. Dodatkowo, cz\u0119\u015b\u0107 sugestii (np. standaryzacja metryk) jest aplikowalna w znacznie szerszym kontek\u015bcie.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0ba1727c2.png\" alt=\"\" \/>\n\n<figcaption>Pewnie jakby Uber r\u00f3wnie dobrze dba\u0142 o kierowc\u00f3w jak o dane, to wyrok\u00f3w s\u0105dowych <a href=\"https:\/\/edition.cnn.com\/2021\/03\/16\/tech\/uber-uk-vacation-pensions-drivers\/index.html\">jak ten z Wielkiej Brytanii z ostatniego tygodnia<\/a> by\u0142oby mniej<\/figcaption><\/figure>\nOg\u00f3lnie polecam czytanie zar\u00f3wno bloga Ubera, jak i Slacka (lub <a href=\"https:\/\/blog.vived.io\/keep-up-czyli-o-tym-jak-byc-na-biezaco-bez-uczucia-przytloczenia-contentem\/\">naszego Keep Upa<\/a>, w kt\u00f3rym cz\u0119sto artyku\u0142 z obu si\u0119 znajduj\u0105) - s\u0105 to jeden z lepiej pisanych firmowych blog\u00f3w, co mam nadzieje udowodnili\u015bmy t\u0105 edycja naszej soboty\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-2\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/eng.uber.com\/ubers-journey-toward-better-data-culture-from-first-principles\/\" rel=\"bookmark\">Uber\u2019s Journey Toward Better Data Culture From First Principles<\/a><\/li>\n<\/ul>","innerContent":["<h2 id=\"1-jak-slack-u%C5%BCywa-tracingu-do-%C5%9Bledzenia-wydajno%C5%9Bci-aplikacji-%F0%9F%95%B5%EF%B8%8F%E2%80%8D%E2%99%80%EF%B8%8F\">1. <a href=\"https:\/\/slack.engineering\/client-tracing-understanding-mobile-and-desktop-application-performance-at-scale\/\">Jak Slack u\u017cywa tracingu do \u015bledzenia wydajno\u015bci aplikacji<\/a> \ufe0f\u200d\u2640\ufe0f<\/h2>\nPostmodernizm si\u0119 nam w bran\u017cy szerzy.\n\nPodejrzewam, \u017ce ka\u017cdy z Was ma koleg\u0119\/kole\u017cank\u0119 w pracy, twierdz\u0105cego \u017ce IT wesz\u0142o w etap stagnacji i \u201cwszystko ju\u017c by\u0142o\u201d. \u017be taki no-code to ju\u017c pr\u00f3bowali\u015bmy jako bran\u017ca kilka razy, reaktywno\u015b\u0107 ma korzenie w latach 90-tych, a async\/await i korutyny to w og\u00f3le koncept z lat 60-tych. W\u0142a\u015bciwie teraz to tylko implementujemy koncepcje dawnych mistrz\u00f3w, robi\u0105c nic nie znacz\u0105ce poprawki i miksuj\u0105c stare pomys\u0142y.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9cd93e4.png\" alt=\"\" \/>\n<figcaption>A jak jeszcze Ci koledzy pisz\u0105 w Lispie, to og\u00f3lnie dyskusja robi si\u0119 ci\u0119\u017cka<\/figcaption><\/figure>\nW poprzednim projekcie mia\u0142em do czynienia z do\u015b\u0107 paskudnym Legacy, przepisywanym na nowocze\u015bniejszy stack technologiczny. Dzi\u0119ki temu, mia\u0142em sporo czasu do przemy\u015ble\u0144 i refleksji (<em>np. podczas oczekiwania, a\u017c w czwartek przejd\u0105 batchowe joby zawieraj\u0105ce moje zmiany z poniedzia\u0142ku - to s\u0105 bydl\u0119ta i feedback loop naprawd\u0119 czasem bywa d\u0142ugi <\/em>). Moje my\u015bli cz\u0119sto odp\u0142ywa\u0142y w kierunku pr\u00f3by obalenia tezy postawionej w pierwszym akapicie: pr\u00f3by zrozumienia, w czym tak naprawd\u0119 systemy dzisiaj pisane s\u0105 lepsze od tych historycznych. Z perspektywy czasu i grzebania si\u0119 w bagnie ETLowych \u201cjob\u00f3w\u201d, mam pewne odpowiedzi - nauczeni problemami przesz\u0142o\u015bci, du\u017co wi\u0119kszy nacisk k\u0142adziemy na \u201czrozumialno\u015b\u0107\u201d naszych system\u00f3w.\n\nTego w\u0142a\u015bnie przejawem jest np. Immutable Infrastructure, a po\u015brednio nawet Continuous Integration ze scentralizowan\u0105 automatyzacj\u0105 wszystkich krok\u00f3w budowania aplikacji. Jednak chyba najjaskrawszym przyk\u0142adem b\u0119dzie pr\u00f3ba okie\u0142znania problem\u00f3w zwi\u0105zanych ze z\u0142o\u017conymi systemami, kt\u00f3ra dokonuje si\u0119 poprzez tak zwane \u201cObservability\u201d.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9d79cd9.png\" alt=\"\" \/>\n\n<figcaption>Nie, sama chmura niczego nie rozwi\u0105zuje.<\/figcaption><\/figure>\nCa\u0142y ten nieco przyd\u0142ugi wst\u0119p prowadzi mnie <a href=\"https:\/\/slack.engineering\/client-tracing-understanding-mobile-and-desktop-application-performance-at-scale\/\">do nowej publikacji od Slacka<\/a>. Jest to bardzo dobry case study z wdro\u017cenia tracingu w celu rozwi\u0105zania bug\u00f3w zwi\u0105zanych z performancem aplikacji. Przyk\u0142ad Slacka jest bardzo interesuj\u0105cy - w celu zrozumienia \u201cdlaczego u\u017cytkownik zaobserwowa\u0142 laga\u201d, musieli oni po\u0142\u0105czy\u0107 w jednym logicznym ci\u0105gu przyczynowo-skutkowym zapytania SQLite na mobilnych klientach, op\u00f3\u017anienia sieci, kolokowanie request\u00f3w, czy takie trywialne zdawa\u0142oby si\u0119 dzia\u0142ania jak cho\u0107by parsowanie JSON\u00f3w, potrafi\u0105ce do\u0142o\u017cy\u0107 zaskakuj\u0105co du\u017ce op\u00f3\u017anienie.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0b9f106c8.png\" alt=\"\" \/>\n\n<figcaption>\u017baden user nigdy<span class=\"-mobiledoc-kit__atom\">\u200c\u200c<\/span><\/figcaption><\/figure>\nPotraktujcie poprzedni akapit jako zajawk\u0119 z mojej strony, bardzo polecam przeczyta\u0107 ten tekst. W zwi\u0105zku z faktem, \u017ce Slack nie zaimplementowa\u0142 bezpo\u015brednio OpenTracingu, jak robi to ka\u017cdy \u201cszaraczek\u201d, jego publikacja wchodzi nieco g\u0142\u0119biej ni\u017c wi\u0119kszo\u015b\u0107 podobnych. Zamiast tutoriala jak u\u017cy\u0107 gotowej biblioteki, mamy tutaj pokazane problemy na jakie mo\u017cna trafi\u0107 pisz\u0105c w\u0142asny tracing. Je\u017celi nie jeste\u015b Slackiem, to og\u00f3lnie nie polecamy (zw\u0142aszcza w dobie, gdy OpenTracing jest nienajgorszym bran\u017cowym standardem) - jednak \u015bwiadomo\u015b\u0107, co tam si\u0119 dzieje \u201cpod mask\u0105\u201d, pomaga efektywniej u\u017cywa\u0107 istniej\u0105cego toolingu.\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/slack.engineering\/client-tracing-understanding-mobile-and-desktop-application-performance-at-scale\/\">Client Tracing: Understanding Mobile and Desktop Application Performance at Scale<\/a><\/li>\n<\/ul>\n<h2 id=\"2-piek%C5%82o-zamarz%C5%82o-a-chiny-wprowadzaj%C4%85-sw%C3%B3j-%E2%80%9Cgdpr%E2%80%9D-%F0%9F%98%B1\"><a href=\"https:\/\/techcrunch.com\/2021\/03\/22\/china-regulation-data-collection-may-starts\/\">2. Piek\u0142o zamarz\u0142o, a Chiny wprowadzaj\u0105 sw\u00f3j \u201cGDPR\u201d<\/a><\/h2>\nKiedy Europa wprowadzi\u0142a GDPR, krytycy podnosili g\u0142osy, \u017ce\n<blockquote>my si\u0119 regulujemy, a \u015bwiat b\u0119dzie swobodnie korzysta\u0142 z danych u\u017cytkownik\u00f3w i nam odskoczy.<\/blockquote>\nNast\u0119pnie, gdy Kalifornia wprowadza\u0142a <a href=\"https:\/\/oag.ca.gov\/privacy\/ccpa\">California Consumer Privacy Act (CCPA)<\/a>, popularne by\u0142y komentarze\n<blockquote>no to Chi\u0144czycy teraz wszystkich zaoraj\u0105, u nich to jest prawdziwa swoboda.<\/blockquote>\nKa\u017cda nowa regulacja w szeroko poj\u0119tym zachodzie spotyka si\u0119 mniej wi\u0119cej z podobn\u0105 krytyk\u0105.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0ba05fe4b.gif\" alt=\"\" \/>\n\n<figcaption>Troch\u0119 przypomina mi to retoryk\u0119 wobec problemu globalnego ocieplenia.<\/figcaption><\/figure>\nPrzyznam prywatnie, \u017ce te\u017c w tej kwestii sam jestem nieco rozdarty, bior\u0105c pod uwag\u0119 \u017ce globalizacja nam si\u0119 odrobink\u0119 sypie i \u015bwiat robi si\u0119 \u201chiperkompetetywny.\u201d Jednocze\u015bnie jednak, okazuje si\u0119, \u017ce r\u00f3wnie\u017c w Chinach powoli \"dziki zach\u00f3d\" zaczyna si\u0119 ko\u0144czy\u0107.\n\nOd pierwszego maja aplikacje w Chinach nie b\u0119d\u0105 mog\u0142y ju\u017c zbiera\u0107 nadmiarowych danych, b\u0119d\u0105 te\u017c musia\u0142y potrafi\u0107 si\u0119 wyt\u0142umaczy\u0107 z celu trackowania u\u017cytkownika. Oficjalnie jest to motywowane dbaniem o obywateli i ich dobro, niekt\u00f3rzy wskazuj\u0105 jednak na fakt, \u017ce nawet chi\u0144skie w\u0142adze przestraszy\u0142y si\u0119 pot\u0119gi swoich gigant\u00f3w IT. Na to mo\u017ce wskazywa\u0107 cho\u0107by np. <a href=\"https:\/\/techcrunch.com\/2020\/11\/10\/china-antitrust-rules-on-internet-industry\/\">zapowiedzi nowego prawa antymonopolowego<\/a>.\n\nRok 2021 na ca\u0142ym \u015bwiecie zapowiada si\u0119 sta\u0107 pod znakiem wszelkich regulacji (nie jest to pierwszy raz kiedy informacja o takowych trafia <a href=\"https:\/\/blog.vived.io\/software-craftsmanship-saturday-vol-25\/\">do naszej soboty<\/a>), ale b\u0119dziemy przygl\u0105da\u0107 si\u0119 rozwojowi sytuacji w Chinach pod tym k\u0105tem.\n\nBTW: Ca\u0142y \u015bwiat si\u0119 \u015bmia\u0142 <a href=\"https:\/\/www.theguardian.com\/world\/2018\/aug\/07\/china-bans-winnie-the-pooh-film-to-stop-comparisons-to-president-xi\">z Kubusia Puchatka<\/a> - teraz nieco podobny ton jest <a href=\"https:\/\/www.bbc.com\/news\/world-europe-56491949\">u\u017cywany w komentowaniu wydarze\u0144 w Polsce<\/a>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0ba103da2.gif\" alt=\"\" \/>\n\n<figcaption>Ale nie ma tego z\u0142ego, mo\u017ce si\u0119 za\u0142apiemy do nast\u0119pnego sezony South Parka \u201c<a href=\"https:\/\/www.hollywoodreporter.com\/news\/south-park-banned-chinese-internet-critical-episode-1245783\">Band in China<\/a>\u201d to w ko\u0144cu najlepszy odcinek serialu od lat.<span class=\"-mobiledoc-kit__atom\">\u200c\u200c<\/span><\/figcaption><\/figure>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-1\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/techcrunch.com\/2021\/03\/22\/china-regu\nlation-data-collection-may-starts\/\">China to ban apps from collecting excessive user data starting May 1<\/a><\/li>\n<\/ul>\n<h2 id=\"3-jak-uber-zadba%C5%82-o-jako%C5%9B%C4%87-swoich-danych-%F0%9F%9A%97\"><a href=\"https:\/\/eng.uber.com\/ubers-journey-toward-better-data-culture-from-first-principles\/\">3. Jak Uber zadba\u0142 o jako\u015b\u0107 swoich danych <\/a><\/h2>\nA na koniec mamy dla Was bardzo ciekawy <a href=\"https:\/\/eng.uber.com\/ubers-journey-toward-better-data-culture-from-first-principles\/\">artyku\u0142<\/a> z podw\u00f3rka Ubera.\n\nNasz zesp\u00f3\u0142 Data Science (pozdrawiam je\u015bli czytacie ) \u00a0zawsze powtarza, \u017ce je\u015bli chodzi o prac\u0119 z danymi to \u201cGarbage In, Garbage Out\u201d. Bardzo podobnym tonem operuje wspomniany tekst - jest to \u201cholistyczna\u201d pozycja, kt\u00f3ra zamiast skupia\u0107 si\u0119 na pojedynczym elemencie ca\u0142ego procesu ka\u017ce spojrze\u0107 na niego jako na ca\u0142o\u015b\u0107 i zastanowi\u0107 si\u0119 nad jako\u015bci\u0105 tego czym karmimy nasze modele.\n\nDlatego te\u017c pomimo \u017ce nie jest to lektura lekka, gdy\u017c porusza mnogo\u015b\u0107 temat\u00f3w (u\u017cywanie w kontek\u015bcie danych technik znanych z wytwarzania oprogramownia jak np. testowanie, istotno\u015b\u0107 \u201cownershipu\u201d nad danymi czy te\u017c kryteria jakimi powinni\u015bmy si\u0119 kierowa\u0107 przy rekrutacji) potraktowa\u0142bym j\u0105 jako w zasadzie <strong>publikacje obowi\u0105zkow\u0105, nawet je\u015bli nie zajmujesz si\u0119 w pracy szeroko poj\u0119tym Data Science<\/strong>. Cz\u0119\u015b\u0107 lekcji kt\u00f3re artyku\u0142 zawiera (jak np. przechowywanie odpowiedniej ilo\u015bci kontekstu) mo\u017ce okaza\u0107 si\u0119 kluczowa w momencie, gdy kto\u015b b\u0119dzie chcia\u0142 wykorzysta\u0107 generowane przez Ciebie dane w ML. Dodatkowo, cz\u0119\u015b\u0107 sugestii (np. standaryzacja metryk) jest aplikowalna w znacznie szerszym kontek\u015bcie.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0ba1727c2.png\" alt=\"\" \/>\n\n<figcaption>Pewnie jakby Uber r\u00f3wnie dobrze dba\u0142 o kierowc\u00f3w jak o dane, to wyrok\u00f3w s\u0105dowych <a href=\"https:\/\/edition.cnn.com\/2021\/03\/16\/tech\/uber-uk-vacation-pensions-drivers\/index.html\">jak ten z Wielkiej Brytanii z ostatniego tygodnia<\/a> by\u0142oby mniej<\/figcaption><\/figure>\nOg\u00f3lnie polecam czytanie zar\u00f3wno bloga Ubera, jak i Slacka (lub <a href=\"https:\/\/blog.vived.io\/keep-up-czyli-o-tym-jak-byc-na-biezaco-bez-uczucia-przytloczenia-contentem\/\">naszego Keep Upa<\/a>, w kt\u00f3rym cz\u0119sto artyku\u0142 z obu si\u0119 znajduj\u0105) - s\u0105 to jeden z lepiej pisanych firmowych blog\u00f3w, co mam nadzieje udowodnili\u015bmy t\u0105 edycja naszej soboty\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-2\">\u0179r\u00f3d\u0142a:<\/h3>\n<ul>\n \t<li><a href=\"https:\/\/eng.uber.com\/ubers-journey-toward-better-data-culture-from-first-principles\/\" rel=\"bookmark\">Uber\u2019s Journey Toward Better Data Culture From First Principles<\/a><\/li>\n<\/ul>"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10161","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\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/comments?post=10161"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10161\/revisions"}],"predecessor-version":[{"id":10693,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10161\/revisions\/10693"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=10161"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=10161"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=10161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}