#main, 25 lipca 2016

By 25 lipca 2016#main

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

wyniki ankiety.001

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 ;)

https://oracleofbacon.org

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ę).

Kampania w serwisie kickstarter.com

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ł ;)

Artykuł w serwisie QZ
Kod w serwisie GitHub

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.

Analiza post-mortem w serwisie stackstatus.net

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

Pytanie na ten tydzień

Co jest dla Ciebie największą przeszkodą w codziennej pracy?
  • Add your answer
  •  
  •  
  •  
  •  
  •