#main, 14 listopada 2016

By 14 listopada 2016#main
wpis-header-main-14

I połowa listopada minęła! W dzisiejszym #mainie, będzie o bańce informacyjnej, konkursie… resztę musicie doczytać sami!

Cykl #main to punkt początkowy Waszego tygodnia,  prasówka, w której zbieramy ciekawe linki, dzielimy się informacjami, a także podsyłamy programistyczne zadanie. Mamy nadzieję, że w ten sposób umilimy Wam poniedziałkowy powrót do rzeczywistości ;)

22-23 listopada DevOpsDays Warsaw

Programowanie to nie tylko tworzenie… to też rozwój i utrzymywanie produktu! Dlatego warto być na bieżąco i uczestniczyć w wydarzeniach skupionych wokół tego tematu. My z przyjemnością zapraszamy na DevOpsDays Warsaw i przypominamy, że do wtorku na naszym blogu trwa konkurs, w którym do wygrania wejściówka na to wydarzenie.

Więcej szczegółów na temat konferencji znajdziecie na stronie wydarzenia.

Żyjemy w bańce informacyjnej

Czy kiedykolwiek zastanawiałeś się jednak, jak to jest po drugiej stronie? Warto zdawać sobie sprawę z mechanizmów doboru treści, bo wpływają one na nasze codzienne życie. Poniżej znajdziecie link do projektu, który pokazuje jak wygląda facebook osób o przeciwnych poglądach.

Link do projektu blue feed, red feed

#MamoPracujwIT we Wrocławiu

Inicjatywa, której szczerze kibicujemy zawita do Wrocławia. Podczas spotkania (28.11) poznacie historie mam, które zmieniły branżę na IT, a także posłuchacie o lokalnych inicjatywach dla kobiet. Jeśli zastanawiasz się nad przebranżowieniem to spotkanie może rozwiać wątpliwości zapraszamy!

Link do wydarzenia

TurnOff.us

Dobrego, geekowego humoru nigdy za dużo. Dzisiaj polecamy komiks turnoff, który nie tylko bawi, ale i uczy w fajny sposób tłumacząc pojęcia związane z programowaniem ;)

Książki o VR

VR stało się rzeczywistością. Warto być może zainteresować się tym, jak tworzyć takie projekty. W poniższym artykule znajdziecie spis książek, które pozwolą Wam tworzyć VR.

Link do artykułu

Odpowiedź na pytanie z zeszłego tygodnia

A pytaliśmy o to: jak zwiększyć dostępność aplikacji (oraz odporność na problemy)? – chodzi o to jak zapobiec sytuacji, w której awaria jednego elementu powoduje awarie całego systemu.

Istnieje kilka sposobów na zwiększenie dostępności aplikacji, w zależności od potrzeb często implementuje się kilka / większość z nich. Najważniejsze aspekty to:
  • Zapewnienie zapasowych zasobów, czyli np. uruchomienie aplikacji na wielu serwerach jednocześnie oraz upewnienie się, że awaria jednego/kilku z nich nie spowoduje problemów z resztą
  • Zapewnienie odpowiedniego monitoringu i reakcji – jeśli jeden serwer zaczyna zachowywać się inaczej (np. nie odpowiada na zapytania), konieczne jest zapewnienie mechanizmów aby go odłączyć od aplikacji i zastąpić możliwie szybko (najlepiej w sposób automatyczny)
  • Projektowanie systemu w taki sposób, aby komponenty mogły działać możliwie niezależnie od siebie (ang. decoupling) oraz aby w miarę możliwości nie przechowywały stanu systemu lokalnie (ang. stateless) – celem jest sytuacja, w której dowolne zapytanie może być obsłużone przez dowolny fizyczny serwer (czyli obsługa zapytania nie wymaga kontekstu, lub kontekst ten jest przechowywany w sposób umożliwiający jego odczyt przez dowolny serwer)
  • Rozproszenie geograficzne – serwery powinny znajdować się fizycznie w kilku serwerowniach, przez co awaria jednej z nich nie ma wpływu na działanie systemu
  • Redundancja – najważniejsze komponenty powinny być zdublowane i na wypadek awarii jednego z nich, pozostałe powinny przejąć jego zadania/funkcje bez przerwy w działaniu (dotyczy to zarówno elementów fizycznych – zasilanie, połączenie sieciowe itp, jak i logicznych – np. przechowywanie plików w kilku kopiach, repliki bazy danych, macierze dyskowe itp)
  • Procedury przywracania – nawet jeśli system był do tej pory niezawodny, konieczne jest posiadanie procedur (i narzędzi) odtworzenia systemu po jego 100% awarii – scenariusz taki powinien też być testowany względnie regularnie aby upewnić się, że nie jest tylko teoretyczną listą życzeń i założeń
Oczywiście to tylko najważniejsze elementy, które niekoniecznie są możliwe do implementacji w każdym systemie – dokładne kroki muszą zależeć od konkretnych potrzeb i realnych kosztów implementacji vs potencjalnej awarii.

 

Zadanie programistyczne

Napisz program, który znajdzie najdłuższy wspólny ciąg znaków dla dwóch wyrazów.

Przykład:

„kot”, „samolot” –> „ot”

„beton”, „betoniarka” –> „beton”

„zupa”, „ilość” –> „”

 

Więcej pytań technicznych z poprzednich mainów wraz z linkami do odpowiedzi znajdziesz tutaj! 

Tayo Sobomehim

Olatayo “Tayo” Sobomehin, ma 11 lat, gra w koszykówkę, jest muzykiem a także programistą! 

W 2015, został najłmodszym uczestnikiem StreetCode Academy’s Innovation Accelerator i zaczął tworzenie: Spike Rush, aplikacji na iPhona. Została ona zaakceptowana w App Store we wrześniu 2016 i okazała się prawdziwym sukcesem.  Sam Mark Zuckerberg dał jej 5 gwiazdek i napisał na swoim facebooku: “My first games were simpler than Tayo’s . . . I’m looking forward to seeing what Tayo builds next!”  

Z niecierpliwością czekamy na kolejny projekt młodszego kolegi po fachu.

Pytanie na ten tydzień

W tym tygodniu nieco zmieniamy formułę – zamiast pytań od nas, czekamy na Twoje pytanie! Napisz w komentarzu, na FB lub w mailu do nas swoje pytanie, a my w każdym tygodniu wybierzemy jedno z nich!

  • 11
  •  
  •  
  •  
  •