#main, 4 kwietnia 2016

By 4 April 2016 #main

Po krótkiej, świątecznej prz­er­wie wracamy do Was z kole­jnym #main!

Cykl #main to punkt początkowy Waszego tygod­nia,  prasówka, w której zbier­amy ciekawe lin­ki, dzie­limy się infor­ma­c­ja­mi, a także podsyłamy pro­gramisty­czne zadanie. Mamy nadzieję, że w ten sposób umil­imy Wam poniedzi­ałkowy powrót do rzeczywistości ;)

Podsumowanie ankiety z zeszłego tygodnia

wyniki ankiety.001

Najpop­u­larniejszym sportem wśród pro­gramistów okaza­ło się bie­ganie :) Na szczęś­cie pogo­da już sprzyja!

micro:bits

BBC finan­su­je bard­zo ciekawą inic­jaty­wę — w bry­tyjs­kich szkołach fun­du­ją zestawy micro:bits, które są roz­dawane dzieciom w wieku 7 lat, a które mają zachę­cać do nau­ki pro­gramowa­nia i ‘zabawy’ tech­nologią. micro:bits to nic innego jak mikrokom­put­er (podob­ny do Rasp­ber­ry PI jeśli chodzi o budowę, choć o słab­szej specy­fikacji), kil­ka ele­men­tów pozwala­ją­cych na inter­akc­je (diody, przy­cis­ki) oraz Blue­tooth pozwala­ją­cy na komu­nikację ze smart­fon­a­mi czy kom­put­erem. Całość dopeł­nia przy­jazne środowisko do pro­gramowa­nia — od najprost­szych do naprawdę skom­p­likowanych pro­jek­tów oraz masa przykładów, pomysłów i tuto­ri­ali dostęp­nych na stronie.

Czekamy na coś takiego także u nas!

Więcej infor­ma­cji na ofic­jal­nej stron­ie projektu

Mój kolega robot

W ostat­nim cza­sie Google pochwal­ił się osiąg­nię­ci­a­mi swo­jego dzi­ału robo­t­y­ki — prze­jętej firmy Boston Dynam­ics. Robot o imie­niu Atlas jest humanoi­dem — ma ksz­tałt mniej więcej zbliżony do człowieka i porusza się w podob­ny sposób. Inżynierowie firmy zaprezen­towali rob­o­ta w trud­nych warunk­ach — na nierównym tere­nie, z przeszko­da­mi, śliskim podłożu, spec­jal­nie wytrą­ca­jąc go z równowa­gi i sprawność z jaką radzi sobie z tym wszys­tkim naprawdę zadzi­wia. A także, jak się okazu­je, straszy — choć robot w zamierze­niu ma poma­gać w trans­porcie i docier­ać w trudno­dostęp­ne miejs­ca, wielu ode­brało to jako krok do budowy armii robot­ów. W efek­cie fir­ma Google coraz głośniej mówi o sprzedaży całej firmy, jed­nym z powodów jest nie­ofic­jal­nie właśnie negaty­wne skojarzenie.

Cokol­wiek by nie mówić, sam robo robi naprawdę ogromne wraże­nie i kto wie, być może za parę lat zami­ast kuri­era, to on będzie nam przynosił paczki!

Więcej infor­ma­cji i mate­ri­ał wideo w por­talu inc.com

W temacie sztucznej inteligencji raz jeszcze

Wspom­ni­ana w poprzed­niej notce fir­ma Google ma też inne ważne osiąg­nię­cie w ostat­nim cza­sie — sztucz­na inteligenc­ja stwor­zona przez tą fir­mę wygrała w grę Go z mis­trzem z Kor­ei. Ten pozornie błahy sukces ma jed­nak ogromne znacze­nie — w prze­ci­wieńst­wie do gier takich jak szachy, Go (dość mało pop­u­larne w naszej częś­ci świa­ta) jest postrze­gane jako gra wyma­ga­ją­ca intu­icji, nie da się obliczeniowo wybrać najlep­szej dro­gi, prowadzącej do zwycięztwa.

Sys­tem, nazwany Alpha­Go, jest tak naprawdę tylko demon­stra­torem i plat­for­mą testową. Tech­nol­gie, które są w nim wyko­rzysty­wane i opra­cowywane przy jego okazji, są wyko­rzysty­wane przez Google w różnych dziedz­i­nach, od rozpoz­nawa­nia twarzy na zdję­ci­ach, po dos­tosowywanie wyników wyszuki­wa­nia do oso­bistych pref­er­encji użytkownika.

Więcej przeczy­tasz na stron­ie wired.com

Jak poprawić jakość swojego kodu?

Jakość kodu dla więk­szoś­ci z nas ma duże znacze­nie — stąd pisze­my testy, pro­gra­mu­je­my TDD lub BDD, dok­sz­tał­camy się i wymieni­amy wiedzą. Za niedłu­go będzie ku temu kole­j­na okaz­ja — kon­fer­enc­ja Qual­i­ty Excites. Tegorocz­na, już 5 edy­c­ja, ponown­ie skupi się na popraw­ie jakoś­ci opro­gramowa­nia poprzez testy, zau­tomaty­zowane narzędzia i poprawę świado­moś­ci zagad­nień QA wśród pro­gramistów. W tym roku spotkanie odbędzie się 25 czer­w­ca w gliwicach.

Obec­nie trwa Call For Papers — jeśli chci­ałabyś podzielić się swo­ją wiedzą i doświad­cze­niem w tem­at­ach związanych z zapew­ni­an­iem jakoś­ci, zgłoś się jako prelegent!

Więcej infor­ma­cji na stron­ie konferencji.

Odpowiedź na pytanie z zeszłego tygodnia

A pytal­iśmy o to: czym jest i jak dzi­ała Garbage Col­lec­tor w Javie?

Garbage col­lec­tion to mech­a­nizm, który automaty­cznie zwal­nia nieuży­waną pamięć w naszej aplikacji. W językach niższego poziomu (np. C) każde utworze­nie np. tabl­i­cy czy listy wyma­ga ‘ręcznego’ zwol­nienia związanej z nią pamię­ci. W dużych aplikac­jach łat­wo o tym zapom­nieć lub zro­bić błąd, co prowadzi do tzw. wycieków pamię­ci — nieuży­wana pamięć nie jest odpowied­nio zwal­ni­ana, przez co wraz z cza­sem wyko­rzys­tanie pamię­ci RAM przez aplikację cały czas rośnie. Aby zabez­pieczyć przed tym pro­gramistę, współczesne języ­ki automaty­cznie zarządza­ją pamię­cią, a mech­a­nizmy garbage col­lec­tion służą właśnie temu, aby ‘ziden­ty­fikować’, które obszary pamię­ci są już niepotrzebne.

Jed­nym z pop­u­larniejszych sposobów, który ma zas­tosowanie także w Javie, jest tzw. zliczanie ref­er­encji. Pole­ga to na tym, że zaczy­namy od głównego obiektu/wątku aplikacji i prze­chodz­imy przez wszys­tkie ref­er­enc­je — tzn. odwiedza­my każdy obiekt, do którego moż­na się jakkol­wiek dostać z poziomu kodu (np. jest on przyp­isany do zmiennej/pola lub jest ele­mentem kolekcji). Dla każdego obiek­tu w pamię­ci jes­li zliczana ilość takich odwołań — stąd nazwa metody. Obiek­ty, do których nie ma możli­woś­ci się ‘dostać’, są trak­towane jako nieuży­wane i usuwane z pamię­ci. Oczy­wiś­cie zagad­nie­nie jest dużo bardziej złożone — niek­tóre obiek­ty nie mogą być usunięte, w innych mamy zależnoś­ci cyk­liczne, które trze­ba odpowied­nio obsłużyć, ale sama zasa­da dzi­ała­nia tak właśnie wygląda.

Java sama decy­du­je o tym, kiedy uru­chomić Garbage Col­lec­tor — nie może­my na niej tego wymusić. Może­my ‘zasug­erować’, korzys­ta­jąc z wywoła­nia System.gc(), ale Java może nasze wywołanie zignorować.

Więcej szczegółów tech­nicznych zna­jdziesz na stronach Oracle

Jak wygląda trójwarstwowy podział aplikacji w praktyce?

Oczy­wiś­cie zachę­camy do samodziel­nego odpowiedzenia na pytanie. Za tydzień nasza odpowiedź.

Więcej pytań tech­nicznych z poprzed­nich mainów wraz z linka­mi do odpowiedzi zna­jdziesz tutaj! 

Kevin Mitnick

Myśląc o hak­er­ach częs­to mamy w głowie obraz oso­by zamkniętej w piwni­cy, zap­a­tr­zonej w ekran i wpisu­jącej mag­iczne komendy. Najczęś­ciej nijak ma się to jed­nak do rzeczywistości.

Jed­nym z najbardziej znanych współczes­nych hak­erów jest z pewnoś­cią Kevin Mit­nick — auto wielu książek i obec­nie ekspert od kwestii bez­pieczeńst­wa. Jego his­to­ria zaczęła się od zabaw z tele­fon­a­mi — wtedy jeszcze w dużej mierze anal­o­gowy­mi — i bezpłat­ne­mu dzwonie­niu oraz przełącza­niu sieci tele­fon­icznych (to tzw. phreak­ing). Wraz z upowszech­nie­niem się inter­ne­tu jego ata­ki coraz częś­ciej sku­pi­ały się na fir­ma­ch infor­maty­cznych i rzą­dowych sys­temach kom­put­erowych. Co ciekawe, więk­szość z jego dokon­ań bazowała bardziej na socjotech­nice i wyko­rzysty­wa­niu zau­fa­nia / niewiedzy ludzi niż na zaawan­sowanym tech­no­log­icznie przełamy­wa­niu zabezpieczeń.

Poszuki­wany przez FBI został aresz­towany w 1995 roku i po odby­ciu kary zajął się kwest­ią bez­pieczeńst­wa sys­temów infor­maty­cznych, prowadzi także związaną z tym dzi­ałal­ność pod nazwą Defen­sive Think­ing Inc. (obec­nie pro­mowaną jako Mit­nick Secu­ri­ty). Wydał także kil­ka książek, obec­nie częs­to goś­ci na kon­fer­enc­jach i wykładach związanych z cyberbezpieczeństwem.

Pytanie na ten tydzień

Wymar­zony urlop to…
  • Add your answer