#main, 2 maja 2016

By 2 May 2016 #main

Musi­cie wybaczyć nam opóźnie­nie i przeczy­tać #maina z tygod­niowym pośl­izgiem. Obiecu­je­my, że mamy naprawdę fajną wymówkę z tym związaną, ale o niej na koniec. Zaczynamy?

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.001Włas­ny pro­jekt okazał się być najlep­szym sposobem na zdoby­cie prak­ty­cznego doświad­czenia — popier­amy i zachę­camy do udzi­ału w dzisiejszej ankiecie!

Polscy studenci bezkonkurencyjni na zawodach samolotów bezzałogowych

W orga­ni­zowanych ostat­nio zawodach samolotów bez­za­ło­gowych zespół z Politech­ni­ki Warsza­wskiej okazał się bezkonkuren­cyjny — wygrał we wszys­t­kich 3 kat­e­go­ri­ach zdoby­wa­jąc 9 z 13 nagród! Serdecznie grat­u­lu­je­my sukce­su, a zain­tere­sowanych odsyłamy do artykułu poniżej po więcej szczegółów :)

Not­ka w ser­wisie innpoland

70 rocznica zaprogramowania komputera EINIAC

Praw­dopodob­nie słysza­łaś kiedyś o EINI­ACu — jed­nym z pier­wszych kom­put­erów, pio­nier­skim pro­jek­cie pod wielo­ma wzglę­da­mi. To, czego praw­dopodob­nie nie wiesz, to fakt, że 70 lat temu doszło do jego pomyśl­nego uru­chomienia, a zawdz­ięcza­my to 6 kobi­etom zatrud­nionym do tego celu. W porów­na­niu z współczes­nym pro­gramowaniem ich pra­ca była jed­nak zde­cy­dowanie bardziej wyma­ga­ją­ca — wyobraź sobie, że dosta­jesz do ręki układy scalone wraz z ich wyma­gani­a­mi w kwestii syn­chro­niza­cji cza­sowej, poziomów log­icznych, mocy itp, do tego lutown­icę i cel — uru­chomie­nie tego wszys­tkiego razem w taki sposób, aby wykony­wał konkretne dzi­ała­nia. Mniej więcej tak wyglą­dała ta pra­ca — wiedzi­ały, jak zbu­dowana jest ta bes­tia (27 ton!), co mają osiągnąć i nic więcej — nikt wcześniej nie robił nic podob­ne­go. Zain­tere­sowanych odsyłamy do artykułu jubileuszowego oraz ciekawej inic­jaty­wy — we współczes­nych tech­nolo­giach zapro­jek­towano kom­put­er o iden­ty­cznych możli­woś­ci­ach i para­me­tra­ch pra­cy — mieś­ci się on na 1/4 znacz­ka pocztowego…

Artykuł poświę­cony rocznicy
Inic­jaty­wa EINIAC-on-Chip

Poranna kawa wprost do ręki

Jed­nym z najpoważniejszych prob­lemów współczes­nego, pier­wszego świa­ta jest zdoby­cie poran­nej kawy. Na szczęś­cie fir­ma nSKY przy­chodzi z odsieczą (i dron­a­mi), planu­jąc uru­chomić usługę dostar­cza­nia kawy w cenie 3$ — pros­to do rąk zamaw­ia­jącego z najbliższej kaw­iarni za rogiem. Choć mamy pewne zas­trzeże­nia, co do fak­ty­cznego prob­le­mu, który fir­ma stara się rozwiązać, tech­no­log­icznie może to być bard­zo ciekawa dro­ga — drony te muszą uzyskać poz­wole­nia agencji lot­niczych, co do tej pory nie udało się więk­szym grac­zom (z więk­szy­mi dron­a­mi, co było źródłem częś­ci zas­trzeżeń) — być może tym razem się uda i czeka nas drono-rewoluc­ja w skali mini?

Artykuł na geek.com

Odpowiedź na pytanie z zeszłego tygodnia

A pytal­iśmy o to: jaka jest różni­ca pomiędzy klasa­mi String oraz StringBuilder/StringBuffer?

Pod­sta­wowa różni­ca pole­ga na tym, że obiek­ty typu String są niezmi­enne (immutable) — tzn. wszelkie oper­ac­je na tych obiek­tach powodu­ją w rzeczy­wis­toś­ci utworze­nie nowego obiek­tu i jego zwróce­nie. Z kolei obiek­ty typu StringBuffer/StringBuilder służą właśnie do oper­owa­nia na cią­gach znaków, w efek­cie czego moż­na ostate­cznie utworzyć obiekt typu String. Inny­mi słowy, jeśli chce­my ‘skleić’ wiele ciągów znaków ze sobą, lep­iej użyć String­Buildera, dzię­ki czemu każde ‘skle­je­nie’ nie będzie powodowało utworzenia nowego obiek­tu (w Javie oper­ac­ja np. “abcd” + “efghi” w rzeczy­wis­toś­ci tworzy obiekt String­Builder, który jest uży­wany do połączenia obu Stringów, po czym jest wywoły­wana jego meto­da toString() )

Różni­ca pomiędzy String­Buffer a String­Builder jest związana z aplikac­ja­mi wielowątkowy­mi — String­Buffer pozwala na bez­pieczną pracę z jed­nym obiek­tem z wielu wątków, pod­czas gdy String­Builder nie gwaran­tu­je bez­piecznej pra­cy z wielo­ma wątka­mi na raz, ale jest przez to min­i­mal­nie szybszy.

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

Jaka jest różnica pomiędzy przeładowaniem (overloading) a przesłanianiem (overriding) metod w Javie?

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

James H. Ellis

James Ellis urodz­ił się w Wielkiej Bry­tanii, choć jego rodz­ice pochodzili z Aus­tralii. Z powodu kom­p­likacji przy porodzie led­wo co przeżył — lekarze stwierdzili wtedy, że z powodu tych doświad­czeń będzie on upośled­zony umysłowo. Nie mogli mylić się bardziej ;)

Już w szkole prze­jaw­iał duży tal­ent matem­aty­czny, dzię­ki czemu bez prob­le­mu zdobył dyplom z fizy­ki i pod­jął pracę w lab­o­ra­to­ri­um badaw­czym urzę­du pocz­towego. Niedłu­go potem przeniósł się do GCHQ (bry­tyjs­ki odpowied­nik agencji NSA), gdzie pra­cow­ał nad tajny­mi pro­jek­ta­mi (były to lata zim­nej wojny). O tym, jak ogrom­ny wpływ jego odkrycia mają na współczes­ny świat, więk­szość usłysza­ła dopiero w 1997 — pon­ad 30 lat po doko­na­niu przeło­mowych odkryć!

Głównym odkryciem, jakiego dokon­ał James było to, co znamy dzisi­aj jako PKC (lub, pop­u­larniejsze w Polsce, PKI — pub­lic key cryptography/infrastructure). Idea nie była nowa, pochodz­iła z lat 40, ale wcześniej nie udało się jej zas­tosować — chodz­iło o to, aby zapewnić bez­pieczną komu­nikację z wyko­rzys­taniem ogóln­o­dostęp­nej infra­struk­tu­ry. Takie pode­jś­cie poz­woliło­by nie tylko na sze­rok­ie zas­tosowanie szyfrowa­nia (np. w biz­ne­sie, kon­tak­tach hand­lowych itp — ówcześnie korzys­tały z niego właś­ci­wie wyłącznie mocarst­wa), ale także zwięk­sze­nie bez­pieczeńst­wa poprzez ‘rozmy­cie’ infor­ma­cji istot­nych w masie infor­ma­cji mniej ważnych (co nat­u­ral­nie utrud­niło­by i zwięk­szyło kosz­ty pod­słuchi­wa­nia i odszyfrowywa­nia wiado­moś­ci przez ‘wrogów’). Na bazie jego pra­cy pow­stał także pro­tokół Diffiego-Hell­mana do bez­piecznej wymi­any kluczy. Samo PKC (PKI) to zbiór reguł i opisów jak może dzi­ałać bez­piecz­na, powszech­na kryp­tografia. Opisu­je role, dzi­ała­nia, zagroże­nia i środ­ki bez­pieczeńst­wa związane z pub­licznym uwierzytel­ni­an­iem i szyfrowaniem — zbiór tych reguł jest pod­stawą tego, co obec­nie znamy jako SSL i cer­ty­fikaty dla ser­w­erów (to wycinek całego zbioru, ale jed­nak ten, który znalazł najsz­er­sze zastosowanie).

Nieste­ty za życia nie doczekał się on należnego mu uzna­nia — poza pasjonata­mi kryp­tografii i bez­pieczeńst­wa, jego doko­na­nia nie były szerzej znane. Dopiero w ostat­nich lat­ach wiedza na tem­at jego dokon­ań jest coraz bardziej popularyzowana.

Artykuł w ser­wisie telegraph.co.uk
Artykuł na Wikipedii

Pytanie na ten tydzień

Jak najlepiej wybrać swój pier­wszy pro­jekt?
  • Add your answer

Jeśli macie jakieś ciekawe propozy­c­je dla osób dopiero rozpoczy­na­ją­cych przy­godę, zostaw­cie je w komen­tarzu! Podob­nie pochwal­cie się swoi­mi pier­wszy­mi projektami!

PS. Powiedzieliśmy sobie tak ;)

A właś­ci­wie, zgod­nie z pol­skim prawem oświad­czyliśmy, że wstępu­je­my w związek małżeńs­ki :) Super sprawa, pole­camy! I postaramy się Wam napisać co nie co w ramach #lazy­Sun­day, o naszym pode­jś­ciu do orga­ni­zowa­nia ślubu — było moc­no agile’owe i bard­zo nam się to sprawdz­iło — jak widać, metody­ki zwinne moż­na wyko­rzysty­wać też w życiu codziennym:)

DSC_0239_1