Za oknami jesień w pełnej okazałości a na ekranie kobietydokodu.pl z najnowszym #main — w tym wpisie trochę o architekturze aplikacji, układach scalonych i frontendzie. Zapraszamy!
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 ;)
Grafika w nagłówku pochodzi z serwisu Freepik.
Podsumowanie ankiety z zeszłego tygodnia
Większość naszych czytelników odpowiedziała, że architektura jest zbiorem wytycznych do dalszego rozwoju aplikacji, co pokrywa się z najbardziej popularną definicją. Zachęcamy jednak do nieco głębszego zapoznania się z tematem — na blogu już wkrótce znajdziesz wpis na ten temat podsumowujący różne aspekty architektury systemów informatycznych i różne jej definicje.
Frontend? Dlaczego nie?
Dla osób pracujących głównie z backendem frondend często brzmi jak czarna magia — setki bibliotek, które w jakiś sposób współpracują ze sobą generując jedynie tysiąc wyjątków zależnych od przeglądarki i rozdzielczości ekranu. Jest w tym trochę prawdy, a w serwisie hackernoon.com pojawił się ciekawy wpis na ten temat — polecamy!
(Lekko) humorystyczny tekst o tym, jak to jest być Frontend developerem
Sztuczna inteligencja a moralność
Współcześnie sztuczna inteligencja jest już całkiem dobra w uczeniu się, ale problemem pozostaje moralność — decyzje podejmuje wyłącznie na podstawie wcześniejszych doświadczeń. Naukowcy z MIT postanowili nauczyć ją moralności — każdy ma możliwość oceny decyzji podejmowanych przez sztuczną inteligencję (np. autonomiczne samochody) w kategoriach ‘mniejszego zła’. Głosy internautów trafiają następnie do systemów uczących, które uwzględniają określone wzorce w procesie podejmowania decyzji. Projekt ciekawy i zdecydowanie warty wsparcia!
Tygodniowe wyzwanie programistyczne startuje!
Pamiętacie nasze ostatnie zapowiedzi? W końcu udało nam się znaleźć czas i przygotować materiały — już w ten piątek startuje nasze wyzwanie programistyczne! Codziennie będą pojawiały się zadania dla początkujących i zaawansowanych, a następnego dnia nasza odpowiedź (w Javie ;) ). Zadania są przygotowane tak, aby język programowania nie miał znaczenia i każdy mógł z nich skorzystać. Zadania będą udostępniane na Facebooku (link do wydarzenia poniżej), a także na blogu. Gorąco zachęcamy do udziału — szczegóły w linku poniżej!
Odpowiedź na pytanie z zeszłego tygodnia
A pytaliśmy o to: czym jest aplikacja monolityczna?
Aplikacja monolityczna to sposób budowania systemów informatycznych, w którym wszystkie komponenty działają w ramach jednej aplikacji (np. na jednym serwerze). Kiedyś bardzo popularny ze względu na brak realnych alternatyw — aplikacje działały na komputerach typu mainframe, a chmura obliczeniowa była wymysłem futurystów.
Takie podejście do tworzenia aplikacji ma niewątpliwie jedną zaletę — nie dotyczą jej problemy związane z komunikacją sieciową, wymiana danych pomiędzy modułami może odbywać się po prostu w pamięci i nie musimy martwić się o spójność danych czy konflikty.
Minusem jest oczywiście bardzo ograniczona możliwość skalowania — tego rodzaju aplikacje często bardzo trudno przenieść na wiele równolegle działających komputerów, brak problemów często składania programistów do pójścia na skróty — często za bardzo na skróty (generując legacy code).
Obecnie raczej nie tworzy się aplikacji monolitycznych, z wyjątkami aplikacji użytkowych (np. aplikacje okienkowe, które instalujemy na komputerach — choć i one coraz częściej ‘wspomagane’ są chmurami). Koszty skorzystania z chmury obliczeniowej są obecnie na tyle niskie, że architektura monolityczna raczej nie ma uzasadnienia poza specjalistycznymi zastosowaniami.
Do czego służy i jak wykorzystać siatkę Zachmana?
Oczywiście zachęcamy do samodzielnego odpowiedzenia na pytanie. Za tydzień nasza odpowiedź.
Więcej pytań technicznych z poprzednich mainów wraz z linkami do odpowiedzi znajdziesz tutaj!
Jack Kilby
Jack Kilby jest laureatem nagrody nobla z 2000 roku z dziedziny fizyki. W historię IT wpisał się jednak znacznie wcześniej, bo w latach 50-tych. W tym czasie branża ‘walczyła’ z nie lada problemem — zwiększanie mocy obliczeniowej (lub ogólnie możliwości) układów elektronicznych stawało się coraz trudniejsze z uwagi na ogromną liczbę elementów, które wchodziły w skład takich układów (dla przykładu komputer TX‑0, jeden z pierwszych tranzystorowych, wykorzystywał ponad 3600 samych tranzystorów). Jako stażysta w firmie Texas Instruments (do dziś jeden z największych producentów elementów elektronicznych) Kilby miał za zadanie zmierzyć się z tym problemem. Doszedł do wniosku, że jedynie produkcja wielu elementów w ramach jednego bloku półprzewodnika (to, co współcześnie nazywamy ‘waflem’) daje możliwość przezwyciężenia problemu. Niedługo potem zaprezentował zarządowi prototyp — kawałek germanu (ówcześnie używanego jako główny półprzewodnik), który po podłączeniu do zasilania generował falę sinusoidalną, udowadniając, że pomysł ma szanse na praktyczne zastosowanie.
Do czasu odejścia na emeryturę w 1983 roku pracował w firmie Texas Instruments, rozwijając technologie półprzewodnikowe, w międzyczasie uzyskując w związku z tym kilka patentów. W 2000 roku otrzymał nagrodę Nobla za odkrycie układów scalonych z 1958 roku.
Notka biograficzna na Wikipedii
Notka w serwisie Engineering and Technology Wiki
Notka na stronie Texas Instruments
Przemowa wygłoszona po otrzymaniu nagrody Nobla