Dzisiaj oddajemy Wam do rąk kolejnego #maina — a w nim m.in. o osobie, bez której IBM PC byłby po prostu kolejną konstrukcją na rynku elektroniki użytkowej, niewyróżniającą się spośród innych podobnych.
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
Odpowiedzi w ostatniej ankiecie nieco nas zaskoczyły — jako największą przeszkodę w codziennej pracy wskazaliście lenistwo — w przyszłości postaramy się zebrać trochę porad, jak z nim walczyć — póki co zostawiajcie swoje w komentarzach!
Na kolejnej pozycji znalazła się praca z legacy code — Kuba mógłby o tym opowiadać godzinami (dlatego polecamy tematu unikać na żywo ;) ), ale w niedalekiej przyszłości postaramy się pokazać, jak można go okiełznać!
Nudy w pracy? Zrób projekt!
Wiele firm pozwala pracownikom na rozwijanie własnych zainteresowań czy po prostu ‘zabawę’ technologiami w czasie wolnym od innych zadań lub jako formę ‘oderwania się’ od bieżących rzeczy. Historia uczy, że w ten sposób powstają naprawdę świetne produkty — można tutaj wymienić np. Gmail’a. W Lunar Logic obowiązuje podobna zasada — dzięki temu możesz nauczyć się dodać świetny efekt na swoją stronę, korzystając z odrobiny CSSa. Polecamy!
Marissa Mayer
W branży IT są postacie, których nie znać po prostu nie wypada — jedną z nich jest np. Marissa Mayer, prezes Yahoo, której przypadła misja ‘ratowania’ spółki. Ostatnio Newsweek opublikował artykuł, w którym opisuje jak rozwijała się jej kariera, oraz jak ‘giganci’ IT często są powiązani ze sobą poprzez pracowników i ich relacje. Artykuł zdecydowanie warty przeczytania!
Reshma Saujani
W świecie IT (i nie tylko) wiele jest postaci, których historie mogą inspirować — jedną z nich jest Reshma Saujani, założycielka Girls Who Code. Pewnie niewiele osób wie, w jakich okolicznościach zrodziła się idea i jak kiełkowała w to, czym jest współcześnie — wszystkich zaciekawionych zapraszamy do wywiadu!
HTTP Bin — testuj klienty HTTP!
Często zdarza się, że potrzebujemy napisać klienta jakiegoś serwisu — RESTowego lub nie — który korzysta z protokołu HTTP. Może to nie być trywialne — w końcu żeby zobaczyć, jak działa nasz klient, musielibyśmy uruchomić serwer i wszystko logować! Na szczęście istnieje też httpbin, który pozwoli nam przetestować podstawowe scenariusze — np. wypisze z powrotem dane przesłane POSTem czy też nagłówki naszego zapytania lub obsłuży zapytanie o pliki.
Nie jest to narzędzie do codziennej pracy, ale zdecydowanie warte dodania do zakładek!
Odpowiedź na pytanie z zeszłego tygodnia
A pytaliśmy o to: czy zmiana kodu klasy wymaga ponownego uruchomienia aplikacji korzystającej z tej klasy?
Jak to zwykle bywa, odpowiedź brzmi: to zależy ;)
Maszyna wirtualna Javy jest dość elastyczna i pozwala dołączać różnego rodzaju wtyczki — m.in. tzw. javaagent. Są to programy, które mogą modyfikować działanie samego JVM — np. pozwalając na zdalne debugowanie na serwerze czy właśnie podmianę klas ‘w locie’.
W standardowej Javie nie jest to możliwe — klasy są wczytywane raz, najczęściej przy ich pierwszym użyciu, i nie ma możliwości ich podmiany w trakcie działania aplikacji (definicje klas nie podlegają procesowi Garbage Collection). Istnieją jednak rozwiązania, które poprzez integrację z JVM pozwalają na takie ‘sztuczki’ — najbardziej popularnym, wpieranym komercyjnie produktem jest JRebel — kosztuje jednak ok. 500$ rocznie; z bezpłatnych alternatyw warto wspomnieć o DCEVM oraz HotSwapAgent (ogólnie proces nazywa się HotSwap i pod tym hasłem można szukać innych rozwiązań). Pozwalają one wprowadzać zmiany ‘na bieżąco’ — tzn. mając np. uruchomioną aplikację webową na naszym komputerze (lub serwerze), możemy poprawić jakiś błąd, a nasza zmiana będzie od razu widoczna w aplikacji bez konieczności ponownego jej uruchamiania (co często kosztuje sporo czasu)!
Niestety proces ten ma także minusy — szczególnie w połączeniu z bibliotekami typu AOP lub Lombok czy nawet Spring, wymagane jest wsparcie wbudowane w używane rozwiązania HotSwap — w tym wypadku komercyjne rozwiązanie jest częściej aktualizowane (JRebel chwali się obsługą ponad 90 frameworków). Nadal jednak sporadycznie trafimy na sytuacje, w których taki program nie do końca zadziała i będzie konieczny po prostu restart aplikacji — nie wszystkie przypadki da się obsłużyć, programy te nie są też idealne. Ogólnie polecamy spróbować, ale sami do tej pory nie przekonaliśmy się do stosowania tego typu rozwiązań na codzień :)
Co to jest Java Jigsaw (== jakie zmiany szykują nam projektanci języka wkrótce)?
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!
Mark Dean
Komputery, których obecnie używamy do pracy (te stacjonarne oraz laptopy) bazują na bardzo starej koncepcji — IBM PC. Jest dla nas standardem, że możemy dowolnie łączyć podzespoły różnych producentów, a dzięki standardom będą one współpracować — ówcześnie była to jednak ogromna innowacja, która przyczyniła się do komercyjnego sukcesu i popularyzacji właśnie tego komputera (oraz procesorów firmy Intel).
Niemały udział w tym sukcesie przypada Markowi Deanowi — pracował on ówcześnie właśnie w IBM, gdzie został przydzielony do pracy nad IBM PC. Zespół, w którym pracował, wymyślił standard ISA — czyli sposób na dołączanie akcesoriów i rozszerzeń do komputera za pomocą standardowego gniazda (ściśle rzecz biorąc ISA to standard, który jest minimalnie rozszerzoną wersją rozwiązania z pierwszego IBM PC — to nie doczekało się własnej nazwy, powszechnie nazywa się je także ISA). Dało ono początek kolejnym standardom takim jak EISA, VESA, PCI, PCIe itp — innymi słowy temu, co czyni komputery modułowymi i ‘standardowymi’ z punktu widzenia systemu operacyjnego.
W późniejszych latach Mark był m.in. głównym dyrektorem do spraw technicznych (CTO) firmy IBM na rynkach Afryki i bliskiego wschodu, wykładał na Harvardzie oraz uzyskał doktorat na uniwersytecie Stanforda. Obecnie nadal rozwija się naukowo, jest profesorem na uniwersytecie Pensylwanii.
Notka biograficzna na Wikipedii
Notka w serwisie biography.com