Co tydzień na skrzynkach pracowników Consdaty ląduje starannie wyselekcjonowany zbiór porad i nowinek technicznych w temacie programowania w Java i nie tylko. Poszukiwaniem tych perełek zajmuje się u nas trójka Tech Leadów, a ich znaleziska mogą docierać również do Ciebie! Od cotygodniowej dawki wiedzy dzieli Cię tylko kilka kliknięć.

(devops) Introducing pg_auto_failover: Open source extension for automated failover and high-availability in PostgreSQL

Microsoft, przejmując Citus Data, jasno wskazał potrzebę, którą zrealizowali, wprowadzając wsparcie dla PostgreSQL w ramach Azure Database for PostgreSQL. Wygląda na to, że teraz community również na tym skorzysta! Niedawno ogłoszona publikacja rozszerzenia pg_auto_failover obiecuje uproszczenie budowania klastrów HA. Całość opiera się o obsługę hostów read-write i read-only dla połączeń do wielu hostów + streaming replication pomiędzy węzłami. Zarówno firmy stojące za rozszerzeniem, jak i potencjalny rodowód (okolice azure) pozwalają wierzyć, że rozwiązanie jest realną alternatywą dla obecnych. 

https://github.com/citusdata/pg_auto_failover

 

(frontend) Easy Automatic npm Publishes

Autorzy npma tłumaczą, w jaki sposób przygotować procedurę release pakietów. Nic, czego nie można przygotować samemu pojedynczym skryptem, jednak w artykule jest to sensownie przedstawione i schludnie wplecione w life-cycle skryptów npm. Jeśli nadal budujesz ręcznie swoje biblioteki npm, to artykuł dla Ciebie. Nie ma już wymówek, żeby nie robić tego jak profesjonalista. 

 

(devops) Hazelcast Responds to Redis Labs’ Benchmark

Kolejny etap sagi Redis vs Hazelcast, tym razem okazuje się, że jednak Hazelcast jest wyraźnie szybszy. Cała historia dobitnie pokazuje jak ważna jest metodyka prowadzenia benchmarków, jak łatwo można je zinterpretować na swoją korzyść. Najważniejsza informacja, jaką można wynieść to, że pragmatyczne decyzje należy opierać o samodzielną weryfikację rozwiązań w ujęciu własnego problemu, potrzeb i przy specyficznych ograniczeniach projektu. Benchmarki zewnętrzne to jedynie sugestia, gdzie zacząć - nie dajmy się ponieść fai #hype. 

Historycznie

 

(agile) The new Jira begins now

JIRA się odświeża! Czyżby po latach dopisywania funkcjonalności przyszedł moment na prawdziwie innowacyjne zmiany? Wygląda na to, że Agile przestanie być doczepką, a zacznie stanowić podstawę działania i to nie tylko, jeśli chodzi o zarządzanie projektem - zwinność widać też w konfiguracji. 

 

(security/web) HTTP headers for the responsible developer

Nagłówki HTTP, które powinien znać (i stosować) każdy odpowiedzialny developer - począwszy od podstaw jak HSTS, czyli wymuszanie HTTPSa, przez bardziej zaawansowane jak CSP, pozwalające na granularną kontrolę skąd aplikacja może ładować resource'y, a skończywszy na nagłówkach pozwalających zoptymalizować ładowanie strony.

 

(web) Stop using so many divs! An intro to semantic HTML

Używasz do kompozycji strony samych divów? W czasach HTML5 to już antypattern. Autor artykułu pokazuje jak skorzystać z semantycznych dobrodziejstw HTMLa5. Zyskuje na tym nie tylko przejrzystość kodu, ale też poprawia się dostępność strony/systemu dla narzędzi accessibility. Artykuł bierze na warsztat przykład opierający się na samych divach i metodycznie nadaje znaczenie kolejnym elementom. 

 

(db) 6 Technical Challenges Developing a Distributed SQL Database

Zbiór wyzywań napotkanych podczas tworzenia własnej rozproszonej bazy SQL. Oczywiście nieczęsto ktokolwiek podejmuje się tak karkołomnego zadania, jednak warto zdawać sobie sprawę z tego, z czym to się wiąże - samo w sobie daje to niezły wgląd w nieco bardziej wewnętrzne zawiłości baz danych. Jest tutaj przedstawionych kilka fajnych problemów dotyczących godzenia ze sobą spójności, skalowalności, wydajności - jak poradził sobie z tym Amazon, a jak Google? Jakiego protokołu użyć do komunikacji z bazą? Nie jest to kwestia wyłącznie techniczna. Pomijając oczywistą otoczkę sprzedażową tego artykułu, jest to ciekawa lektura i warto też zagłębić się w kilka podlinkowanych tam stron. 

 

(misc) A Conspiracy To Kill IE6

"The bittersweet consequence of YouTube’s incredible growth is that so many stories will be lost underneath all of the layers of new paint. This is why I wanted to tell the story of how, ten years ago, a small team of web developers conspired to kill IE6 from inside YouTube and got away with it..."
 
"Nobody except the web development team used IE6 with any real regularity, so we knew it was unlikely anyone would notice our banner appear in the staging environment. We even delayed having the text translated for international users so that a translator asking for additional context could not inadvertently surface what we were doing..."
 
Jeżeli te dwa cytaty wydały się intrygujące, to polecam zajrzeć do całego wpisu. 

 

(misc) Inside Microsoft’s surprise decision to work With Google on its Edge browser

Miękki tekst o tym, jak zrozumieć autokrytykę i zmienić kierunek, mając na celu dobro użytkowników. Opis przebiegu procesu decyzyjnego i wyzwania stojące przed zespołem migrującym Edge na Chromium.

 

(misc) Design patterns in modern JavaScript development

Selekcja podstawowych wzorców dobranych względem przydatności przy pracy z frontendem. Materiał dla początkujących, jednak styl tekstu i prezentacji zachęca do przejrzenia i odświeżenia wiedzy przy porannej kawce. 

Porusza wzorce Singleton, Observer, Facade z przykładami w JavaScript i krótką motywacją do wykorzystania.

(misc) Back in the Day: UNIX, Minix and Linux

Kiedyś to były czasy, teraz to nie ma czasów. Szczypta historii unixa i jego pochodnych - zawsze warto mieć pojęcie skąd to wszystko się wzięło.