piątek, 7 listopada 2014

JDK 7 i 8 64 bit + Windows 7 - problemy z połączeniem internetowym

Co jakiś czas powraca do mnie problem na mojej maszynie związany chyba z kiepską implementacją IPv6 w 64 bitowym JVM lub Windowsie. Nie wiem dokładnie gdzie leży problem, ale już drugi raz spędziłem sporo czasu, aby znaleźć rozwiązanie, wiec czas na notatkę na blogu. Kłopot się objawia tym że maven / gradle / inny DSL do ściągania połowy Internetu, ma problemy ze dociągnięciem zależności i trzeba go ubić.

Aby rozwiązać ten problem warto dodać / uaktualnić zmienną środowiskową JAVA_OPTS tak, aby znalazła się w niej poniższa flaga:

-Djava.net.preferIPv4Stack=true

W przypadku gradle’a warto to jeszcze wrzucić do pliku gradle.properties w naszym projekcie, np.:

org.gradle.jvmargs=-Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true

Teraz już powinno być lepiej, chyba ze akurat trafimy na jakąś przerwę w działaniu ogólnodostępnych repozytoriów, z których aktualnie korzystamy.

Więcej informacji:
Why do I need java.net.preferIPv4Stack=true only on some windows 7 systems?

Networking IPv6 User Guide for JDK/JRE 5.0

czwartek, 6 listopada 2014

Recenzja książki "Czy jesteś wystarczająco bystry, żeby pracować w Google?"

Nie mam w zwyczaju recenzowania na blogu przeczytanych książek (wyjątkiem była dotychczas książka Tomka Kacznowskiego: Practical Unit Testing), ale po przeczytaniu „Czy jesteś wystarczająco bystry, żeby pracować w Google?” Pana Poundstone Williama, postanowiłem to zmienić (aby pojawiały się na moim blogu nie tylko posty relacjonujące różne konferencje, ale i recenzje i tematy techniczne [o te najciężej ze względu na konieczny duży nakład na przygotowanie czegoś fajnego]).

Na książkę wpadłem przypadkiem, będąc kiedyś w księgarni i standardowo przeglądając co jest na półce pod szyldem „informatyka”. Książka jest wydana przez Wydawnictwo SQN, (na stronie Heliona niby też jest, ale wiecznie „czasowo niedostępna”), więc pewnie niewielu z Was na nią trafiło. Sam pewnie bym ją szybciej kupił i przeczytał, gdyby wieść o niej przyszła do mnie wraz newsletter’em wspomnianej księgarni.

Książka od samego początku opisuje z jakimi przywilejami wiąże się, wymarzona przez wielu, praca w Google. Szybko jednak przechodzi do tego, jak bardzo ciężko się tam dostać. W końcu jednej osobie na 130 kandydatów się to udaje. A dlaczego? Głównie ze względu na pytania otwarte, w których trzeba się wykazać swoimi umiejętnościami. Nie ma jednego zbioru pytań (i poprawnych odpowiedzi), z których korzystają podczas rekrutacji w Google. Pytania są tak ciężkie, że albo się już wcześniej zna pytanie wraz z poprawną odpowiedzią, albo się na nie raczej nie odpowie. Co gorsza, pytania często nie mają jednej poprawnej odpowiedzi.

W książce jest również uzasadniona bezsensowność i bezcelowość prowadzenia rozmów kwalifikacyjnych.

Podczas rozmowy o pracę można stwierdzić, czy dana osoba potrafi miło prowadzić rozmowę, można zadać szereg pytań technicznych, by wykluczyć kandydatów, którzy nie mają zielonego pojęcia, o czym mówią, lecz po za tym można by równie dobrze rzucać kośćmi.
- twórca BitTorrenta, Bram Cohen

Niby coś tam można sprawdzić podczas rozmowy kwalifikacyjnej, ale to nie gwarantuje sukcesu, że kandydat sprawdzi się w danym projekcie lub firmie. Poza tym jest ciężko zweryfikować, czy odrzuceni kandydaci by się sprawdzili. Można jedynie zwiększać prawdopodobieństwo, że dany człowiek się nada.

Dalej książka opisuje szczegóły odrzucania aplikacji kandydatów przez Google. Proces ten jest bardzo skomplikowany i decyzja zależy od wielu osób. Taki skomplikowany proces musi sporo kosztować firmę, ale dzięki temu jest ona pewniejsza, że ma u siebie tych najlepszych.

Książka jest przepełniona zabawnymi historyjkami i anegdotami, które w dużej mierze uszczypliwie wyśmiewają podejście do problemów firmy Microsoft. Tzn. książka porównuje, jak pewne zadania rozwiązał by ktoś z Google, a jak ktoś z firmy produkującej Windowsy (lub cokolwiek innego). Ma to jednak na celu pokazanie innego sposobu myślenia.

Powyższa książka nie mogłaby się oczywiście obejść bez zagadek. Są w niej opisane pytania logiczne, pytania wymagające przebłysku geniuszu, myślenia niestandardowego (lateralnego), myślenia rozbieżnego, pytania Fermiego i pytania oparte o algorytmy. Na początku każdego rozdziału, jak i często w środku, dostajemy porcję pytań, aby można było wytężyć swoje szare komórki i zatrzymać degradację neuronów. Oczywiście książka oferuje na koniec odpowiedzi do wszystkich zagadek, jak i praktyczne wskazówki, w jaki sposób próbować odpowiadać na te pytania.

Podsumowując, polecam tę książkę każdej osobie technicznej, która chce zrobić coś więcej ze sobą niż tylko odbębnić 8 godzin w pracy. Książka nadaje się również dla osób, które nie koniecznie pracują w IT, a ich praca (aktualna lub przyszła) wymaga kreatywności i niestandardowego myślenia. Oczywiście jest to pozycja obowiązkowa dla tych, co wybierają się do Google.

Btw. Za tydzień 15-stego listopada jest Global Day of Code Retreat i obywa się on również we Wrocławiu. Zostało jeszcze kilka wolnych miejsc, więc czas najwyższy się zarejestrować: http://coderetreat-2014-wroclaw.eventbrite.com.