Lato zaczyna się na dobre, a tu niespodzianka — poniedziałek. Na pocieszenie mamy dla Was kolejnego #maina!
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 ;)
Podsumowanie ankiety z zeszłego tygodnia
Ubiegłotygodniowa ankieta nas trochę zaskoczyła — nie tylko miażdżącą przewagą Pythona (ponad 50% głosów!), ale także drugim miejscem. Jeśli potrzebujesz na szybko nauczyć się jakiegoś języka skryptowego, żeby coś zautomatyzować — większością głosów polecamy Pythona ;)
Parsee — bo Polacy nie gęsi, i świetne pomysły mają!
Kilka razy prezentowaliśmy na łamach #maina ciekawe projekty i startupy z całego świata — ale i w Polsce mamy prawdziwe perełki. Jedna z nich to Parsee — projekt okularów z wbudowanym mikrokomputerem, których przeznaczeniem jest pomagać osobom niewidomym i niedowidzącym samodzielnie poruszać się np. po mieście. Okulary mają wbudowaną kamerę, za jej pomocą oraz specjalnego oprogramowania ‘opisują’ na bieżąco to, co ‘widzą’, pomagając zorientować się w przestrzeni, dostrzegać zagrożenia (np. ulicę czy jadący samochód) ale także rozpoznawać osoby wokół. Trzymamy mocno kciuki za projekt i zachęcamy do jego śledzenia!
Projekt ARA już wkrótce w sprzedaży!
Jakiś czas temu pisaliśmy o projekcie ARA — modułowym telefonie, w którym możesz wymienić poszczególne komponenty (aparat, baterie, pamięć), a nie cały telefon. Projekt ma się dobrze i co więcej — niedługo ma się pojawić w sprzedaży! Póki co w wersji ‘developerskiej’ do testów i w celach budowania modułów, ale oficjalna sprzedaż dla szerokiej grupy odbiorców planowana jest już na 2017 rok! Z niecierpliwością czekamy na pierwsze recenzje!
Google I/O
Tego wydarzenia chyba żadnemu geekowi przedstawiać nie trzeba — jedna z najważniejszych konferencji w branży IT. Jak zwykle wiele nowości, kilka klonów innych produktów i kierunek na kolejny rok — tym razem sztuczna inteligencja w aplikacjach używanych na codzień, modularne telefony i wirtualna rzeczywistość. Zachęcamy do zapoznania się z kompletną relacją!
Odpowiedź na pytanie z zeszłego tygodnia
A pytaliśmy o to: czym jest enkapsulacja?
Enkapsulacja to w uproszczeniu ‘ukrywanie’ wewnętrznych elementów obiektu i udostępnianiu ich jedynie poprzez metody. Jest to jedna z podstawowych zasad programowania obiektowego. O enkapsulacji mówimy wtedy, kiedy wszystkie pola klasy są niewidoczne na ‘zewnątrz’ (dla innych klas, poza dziedziczącymi) — czyli są np. prywatne. Dostęp do nich odbywa się jedynie poprzez metody — np. gettery i settery — lub określone metody interfejsu. Założeniem enkapsulacji jest to, że obiekt powinien udostępniać jedynie metody — swój interfejs — tak, aby można było dowolnie zmieniać jego implementację. Ponieważ jego stan wewnętrzny (czyli pola i ich wartość) nie są bezpośrednio dostępne i nie mogą być kontrolowane z zewnątrz inaczej niż za pomocą metod tego obiektu, ma on pełną kontrolę nad sposobem implementacji i danymi przechowywanymi we własnych polach. W teorii pozwala nam to na podmianę implementacji określonej klasy bez zmiany innych komponentów aplikacji. Przykładem zastosowania mogą być np DAO — w idealnym przypadku obiekty DAO udostępniają jedynie ‘operacje’, a sposób implementacji (np. transakcje na bazie danych czy też przechowywanie obiektu w pamięci) nie mają znaczenia dla innych obiektów.
O ile zasada ta jest często mniej lub bardziej świadomie nadużywana, jej założenia nadal są kluczowe dla tworzenia stabilnych i zarządzalnych systemów.
Więcej pytań technicznych z poprzednich mainów wraz z linkami do odpowiedzi znajdziesz tutaj!
Federico Faggin
Federico Faggin to kolejna z osób, które zrewolucjonizowały branżę elektroniki, przyczyniając się do tego jak ona obecnie wygląda. Jest on projektantem i twórcą procesora Intel 4004. Dlaczego jest to tak ważne? Był to pierwszy powszechnie dostępny mikroprocesor ogólnego zastosowania. Do tego czasu układy scalone były tworzone pod konkretne zastosowanie — innymi słowy ‘program’ był zapisany jako fizyczna struktura układów wewnątrz procesora. Stworzenie takiego układu było nie tylko czasochłonne, ale także drogie i nie nadawało się do tworzenia krótkich, prototypowych serii. Intel 4004 był pierwszym procesorem, który łączył wszystkie układy w jedną całość — dzięki temu operacja np. dodawania czy mnożenia nie wymagała specjalistycznej ‘kostki’ dołączanej do procesora za pomocą specjalnego układu. Wraz z tym procesorem produkowane były komplementarne układy — pamięć RAM, ROM oraz rejestr przesuwny, które zastosowane razem pozwalały zbudować bardzo prosty, uniwersalny komputer.
Oczywiście nie byłoby to możliwe, gdyby nie przełom w produkcji układów, którego autorem był także Federico. W uproszczeniu opracował on sposób na zasąpienie miniaturowych struktur aluminiowych odpowiednikami zbudowanymi z krzemu. Pozwoliło to na umieszczenie dwukrotnie większej liczby elementów na tej samej powierzchni, obniżając jednocześnie straty mocy do 100 razy (!!) i zwiększając szybkość nawet pięciokrotnie, przy tym nie zwiększając poboru energii. Sama przyznasz, że niemała rewolucja?
Wracając do osiągnięć w firmie Intel, procesor 4004 był oczywiście sukcesem i przyczynił się do opracowania kolejnej udanej konstrukcji — procesora 8008 (8‑bitowego), który z kolei pozwolił na opracowanie procesora 8080 — niezwykle udanej konstrukcji, która pozwoliła na budowę pierwszych komputerów z prawdziwego zdarzenia dostępnych dla mas. Jednym z ulepszeń tej konstrukcji był procesor 8086 (16-bitowy), który z kolei wyewoluował w procesory serii 80186, 80286, 386, 486 i późniejsze Pentium — wszystkie te procesory są w pewnym stopniu zgodne z architekturą 8080, której sukces pozwolił firmie Intel rozwinąć skrzydła i zdefiniować de facto standardy dla procesorów na długie lata.
W kolejnych latach Federico Faggin pracował jeszcze przy kilku istotnych projektach, a w ostatnich latach skupił się na działalności fundacji swojego imienia, której celem jest wspieranie badań nad m.in. świadomością.
Notka biograficzna na Wikipedii
Biografia w serwisie Ieee Global History Network