Kolejny wakacyjny odcinek #main — stęskniliście się ? ;) To zapraszamy do lektury!
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 ;)
Obrazek w nagłówku pochodzi z serwisu freepik.com
Podsumowanie ankiety z zeszłego tygodnia
Waszymi głosami wygrała odświeżona aplikacja webowa — zaczynamy więc nad nią pracować :) Być może uda się dorzucić kilka innych punktów jednocześnie.
W ankiecie pojawiła się jedna odpowiedź — cokolwiek nie z Javą. Niestety, tego życzenia nie spełnimy — szerszą informację dlaczego znajdziesz w drugim Q&A.
Oracle of bacon
Projekt nie do końca na poważnie, ale z rewelacyjnym pomysłem! Ogólnie chodzi o to, że bazując na bazie danych IMDB strona pozwala sprawdzić statystyki takie jak ‘odległość’ aktorów od siebie (gdzie ‘krokami’ są aktorzy występujący w tym samym filmie) oraz średnią odległość od wybranego aktora. Całość jest zaimplementowana w C++ z obliczeniami przeprowadzanymi w pamięci. O ile użyteczność pozostawia pewne wątpliwości, sam pomysł wykonanie i zaangażowanie twórcy jak najbardziej godne pochwały ;)
Zamień telefon w komputer
W poprzednim #main opisywaliśmy projekt komputera za 79$, działającego pod kontrolą (prawie że) Androida. Dzisiaj inny projekt, który idzie krok dalej — pozwala zamienić dowolny telefon w komputer! Wystarczy podłączyć telefon do obudowy, aby pracować na większym ekranie z klawiaturą. Biorąc pod uwagę potężne moce obliczeniowe najnowszych telefonów, pomysł jest całkiem sensowny (a dzięki ‘usunięciu’ głównych komponentów z komputera, zyskujemy więcej miejsca na np. baterię).
Kod misji Apollo-11 (aka poleć na księżyc z Open-Source!)
Jeśli myślałaś kiedyś o posłaniu swojej rakiety na księżyc, teraz możesz to zrobić dokładnie tak jak w misji Apollo-11! NASA udostępniła właśnie kod źródłowy głównego komputera sterującego i umieściła w serwisie GitHub. Jest to wariant języka Assembler, ciekawe są jednak komentarze (oraz ‘issues’ zakładane przez użytkowników) — zdecydowanie warto przejrzeć, choćby tylko po to, aby zobaczyć jak zmieniło się podejście do kodu na przestrzeni czasu. No i jeśli budowałaś właśnie w garażu lądownik księżycowy i zostalo Ci tylko oprogramowanie komputera centralnego — przyda się jak znalazł ;)
O wyrażeniach regularnych i ich skali
Często korzystamy z rozwiązań nie do końca zastanawiając się jak działają — przy obecnych mocach obliczeniowych różnice są niezauważalne, a jakiś szczególny przypadek umknie naszej uwadze. Zdarza się to każdemu — np. stackoverflow. Ostatnio miała miejsce ‘awaria’, a dokładniej obniżenie dostępności serwisu związane z nieprawidłowo sformatowanym komentarzem. Spowodowało to bardzo duże opóźnienie z powodu wykonywania wyrażenia regularnego — niby drobnostka ;) Więcej poczytacie na stronie stackstatus.net — link poniżej.
Odpowiedź na pytanie z zeszłego tygodnia
A pytaliśmy o to: jak można tworzyć beany w Springu?
Są trzy standardowe sposoby tworzenia beanów:
- zadeklarowanie go w pliku XML
- dodanie adnotacji dziedziczącej po @Component nad klasę beana
- stworzenie metody z adnotacją @Bean, która zwraca instancję beana i znajduje się w klasie z adnotacją @Configuration
Istnieją jeszcze mniej standardowe metody:
- implementacja własnego BeanFactory
- ręczne dodanie beana do BeanRegistry
Oba te przypadki są jednak bardzo specyficzne i w normalnej aplikacji nie powinno się ich używać.
Więcej o tworzeniu beanów znajdziesz w lekcji #09 naszego kursu Javy.
Czy zmiana kodu klasy wymaga ponownego uruchomienia aplikacji korzystającej z tej klasy?
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!
John von Neumann
John von Neumann to wynalazca i naukowiec węgierskiego pochodzenia, który pracował m.in. nad zagadnieniami z zakresu matematyki, fizyki i teorii informacji (osiągając sukcesy w każdej z nich). Jednym z pierwszych najgłośniejszych projektów był udział w projekcie Manhattan — von Neumann zajmował się soczewkowaniem eksplozji (ang. explosive lens) — mechanizmem do dziś używanym do inicjowania reakcji w bombie atomowej.
Zajmował się także koncepcjami potencjalnie abstrakcyjnymi w jego czasach — m.in. koncepcją samopowielających się sond kosmicznych i ich roli w odkrywaniu dalekiego wszechświata (w języku polskim funkcjonuje nawet określenie sonda von neumanna, jednak koncepcja ta nie jest przypisywana tylko jemu).
Najbardziej znany jest jednak z opisu działania komputera nazywany od jego nazwiska architekturą von Neumanna — w skrócie polega ona na tym, że pamięć jest współdzielona pomiędzy program oraz dane (tak działają też współczesne komputery) w odróżnieniu od architektury Harvardzkiej, w której program i dane znajdują się na oddzielnych nośnikach (fizycznie lub logicznie). Koncepcja ta powstała podczas prac nad komputerem EDVAC — następcą słynnego ENIAC (w odróżnieniu od niego, EDVAC posługiwał się reprezentacją binarną liczb, a nie dziesiętną, co pozwoliło na znaczące zwiększenie wydajności). Jeszcze na etapie prac koncepcyjnych stworzył program sortujący, który obecnie nazywamy merge sort (sortowanie przez scalanie) — napisał go odręcznie, na 23 kartkach papieru (z pewnością byłby dumny wiedząc, że uczelnie nadal korzystają z tego podejścia…). Był także autorem pierwszej numerycznej prognozy pogody (opracowanej z użyciem komputera ENIAC).
Notka biograficzna na wikipedii
Biografia w encyklopedii Britannica
Film biograficzny w serwisie youtube.com