Hacker Rank Week Of Code 31 notes

[this post is for my own use]

Week Of Code 31 beginning on 10th of April 2017

F# solutions to some of the problems: https://github.com/maglkp/weekofcode

Beautiful Word (E)
Simple sequence processing task.

Accurate Sorting (E)
Only slightly more challenging, for some reason got a timeout on the very last use case #10 for a minor point loss.

Zero-One Game (M)
Element removal game – winner computable in advance. A very interesting problem solvable in linear time removing all possible moves from sequence, required careful analysis of a lot of edge cases – failed to see two of them which cost me most of the points even though the rest was good, lesson learnt.

Spanning Tree Fraction (H)
Did some research but didn’t code this one, not a very wide known algorithm is seems but as often on HR it was possible to reduce it greatly analytically.

Colliding Circles (H)
Combinatorics / caching problem – I spent a lot of time devising an efficient memoization program but ultimately it was only able to solve 50% of the cases. An ingenious derivation proved it can be reduced to a trivial equation. Again this proves most of the harder challenges on HR are really maths / algorithmic problems, if you concentrate on programming side too much it means there is lots to improve in your math.

Nominating Group Leaders (E)
Split Plane (E)
Did not got to those – however they didn’t seem that much harder than the previous ones (which is preetty hard anyways :))

 

Książki 2016

Zamiast podsumowania roku kilka pozycji – wyłączając IT i fantasy – które wyjątkowo przypadły mi do gustu w roku AD 2016. Nie ma tego dużo ale może coś Ci się spodoba, miłej lektury 🙂

Ziarno i Krew Dariusz Rosiak
Książka o życiu bliskowschodnich Chrześcijan powstała w oparciu o podróże autora i rozmowy z ludźmi m.in. w Turcji, Syrii, Libanie, Egipcie i Izraelu. Opowieść o ludziach z zapalnych i zagrożonych miejsc, skupiona na nich tu i teraz ale z solidną dawką wiedzy dlaczego dzieje się tak jak się dzieje. Często m.in. pada pytanie do Chrześcijan czy możliwa jest ich koegzystencja z Muzułmanami. Autor prowadzi audycję Raport o stanie Świata – jedyne znane mi medium o tak wysokiej zawartości merytorycznej opartej na rzetelnej wiedzy i rozmowach z ekspertami z całego Świata, gorąco polecam, tu nie ma miejsca na kwiatki jak z TVN czy Reutersa 🙂
Idiota, Zbrodnia i Kara, Bracia Karamazow Fiodor Dostojewski
Fiodor rządzi – niesamowite postacie, mrożące krew w żyłach dramaty i historie wciągające jak narkotyk. Bardzo mroczne ale też przeważnie na końcu widać promyki nadziei i miłości które nadają nowy sens całym wydarzeniom.
Zdecydowanie też łatwiejsze w odbiorze niż mogłoby się wydawać. Jedynie “Biesy” były dla mnie nie do przejścia, próbowałem dwóch tłumaczeń i jakoś nie udało mi się przejść dalej niż 100 stron.

Einstein. Jego życie, jego wszechświat Isaacson Walter
Steve Jobs Isaacson Walter
Pamięć Absolutna Arnold Schwarzenegger
Do niedawna miałem w głowie mocne przekonanie że biografie to najnudniejsze co może istnieć – w końcu zamiast o kimś czytać godzinami można to zrobić w 2 min. na wiki i samemu coś ciekawego zrobić, nie?
A tu niespodzianka – każda z tych biografii to perełka, świetnie się je czyta i sporo się można dowiedzieć nie tylko o tych postaciach ale przede wszystkim o bogatej specyfice czasów w których żyli i przełomach w których brali udział.

Imperium Ryszard Kapuściński
Jedna z ciekawszych pozycji tego autora, kilka opowieści-obrazów z odległych miejsc byłego ZSRR pisanych w momencie jego rozkładu w 1990r. Rozdział z łagrów w Kołymie i kopalni w Workucie zrobił na mnie ogromne wrażenie.

Zakonnice odchodzą po cichu Marta Abramowicz
Historie kilkunastu byłych zakonnic w różnym wieku i stażu i próba opisu tego środowiska w Polsce a także porównania z środowiskami księży i zakonników. Obraz jaki się z tego wyłania jest naprawdę szokujący, warto go poznać nawet jeśli jest bardziej wycinkowy niż chciałaby autorka.

Życie na pełnej petardzie Jan Kaczkowski
Dla równowagi po “Zakonnicach” (i genialnym Spotlight), biografia i przemyślenia z jednej strony bardzo tradycyjnego księdza (preferował liturgię po łacinie) z drugiej bardzo trzeźwo myślącego (m.in. popierał WOŚP). Kaczkowski sam wtedy zmagał się ze śmiertelną chorobą a jednak książka wolna jest od banałów a zamiast tego zawiera interesujące przemyślenia o tym jak może przebiegać proces umierania, jak w praktyce organizować hospicjum i co dla tych ludzi jest naprawdę ważne. Mało kto wie jak w ogóle rozmawiać z ludźmi po traumie/w ciężkiej chorobie a tu jest kilka dobrych uwag.

Riefenstahl Niemiecka kariera Jürgen Trimborn
Historia pierwszej artystki III Rzeszy – niesamowita postać i na pewno warta poznania choć jej strony moralnej raczej wybielić się nie da co wielokrotnie i intensywnie próbowano robić. Do samej śmierci była oryginalna i niezłomna w swojej pracy m.in. wyprawiając się z niezwykle trudne rejony Sudanu i do mistrzostwa opanowując fotografię głębinową.

O Chinach Henry Kissinger
Książka przede wszystkim o światowej dyplomacji a szczególnie tej chińsko-amerykańskiej w XX wieku ale także skrót najciekawszych momentów i współczesnych postaci z historii Chin. Historia, kultura i postawy Dalekiego Wschodu są skrajnie różne niż nasze i choćby dlatego warto się im przyjrzeć. Mnie najbardziej zaszokowało pojmowanie Chin przez samych Chińczyków i co za tym stało – dla przykładu wielokrotnie w historii militarnie znacznie przewyższali oni resztę Świata ale gdy ich flota dobijała do nieznanych lądów od tubylców wystarczyło im zapewnienie że to Chiny są najwspanialsze, centrum Świata, ich cesarz jest boski etc. etc. Co nasi europejscy i amerykańscy kolonialiści by wtedy zrobili to wiadomo 🙂
Chiny bez makijażu Marcin Jacoby
O Chinach z punktu widzenia ludzi tam mieszkających. Rzuca pewne światło na to dlaczego w Chinach jest tabu na rozmowy o śmierci, jak wygląda kultura jedzenia i tysiąc innych ciekawych rzeczy – lekka w odbiorze ale z dużą dawką wiedzy i historii podanej naprawdę wciągająco.

Dialog zamiast kar Zofia Żuczkowska
Doskonałe wprowadzenie do NVC (komunikacji bez przemocy) – potężne i otwierające oczy narzędzie do pogłębiania więzi z dziećmi / partnerem, dla mnie pozycja nr 1 dla rodziców.

 

Po Lambda Days 2016

W zeszłym tygodniu odbyła się konferencja Lambda Days – dali czadu 🙂 Tematem przewodnim jest wszystko wokoło programowania funkcyjnego, jako że to bardzo obszerny temat szczególnie podobało mi się odrobinę ‘lżejsze’ podejście i duża ilość wystąpień nie związanych z konkretnym językiem czy technologią. Sesji typowo technicznych “jak napisać aplikację funkcyjną w X” było niewiele i szczerze mówiąc wypadły one słabiej. Trochę pewnie wynikało to z stosunkowo krótkiego czasu przeznaczonego na prezentacje (45min).

Jako że FP matematyką stosowaną stoi nie zabrakło sesji pokazujących praktyczne rozwiązanie problemów przy użyciu jakiejś koncepcji teoretycznej. I to moim zdaniem była najciekawsza część – część akademicka była zwykle niebanalna ale też na tyle dobrze pokazana i przez to prosta do przełknięcia, że mało kiedy można było czuć się zagubionym a po wielu sesjach aż chciało się od razu usiąść i dowiedzieć/zrobić coś więcej.

Krótki opis kilku sesji na których byłem:

Dzień 1

Philip Wadler: Propositions as Types (keynote)
Prawdziwa bomba – pełna napięcia (i humoru) podróż po historii kilku koncepcji ze świata FP. A nawiązania do “Dnia Niepodległości” i płyt wysłanych w kosmos na Pionieerze – boskie. Obejrzyjcie.
Ocena: 5/5

Andrea Magnorsky: A brief history of programming languages
Pełen pasji ale niestety też bardzo chaotycznie poprowadzony przegląd kilku/-nastu języków. W sumie niewiele brakowało żeby było całkiem nieźle ale trochę za bardzo brakowało jakiegoś celu albo myśli przewodniej. Ot, kilka fajnych ciekawostek.
Ocena: 2/5

Robert Virding: On Language Design
Roberta warto było poznać bo to jedna z osób stojących za Erlangiem. Sesja dotyczyła tego jak projektować język programowania – jeśli dobrze zrozumiałem to bardzo surowo, bez złożonych smaczków syntaktycznych i nie dając możliwości zrobienia czegoś na dwa sposoby. Myślę że wśród wielu były to bardzo niepopularne hasła ale widać było że wynikają z bardzo wielu lat doświadczeń. No i najważniejsze, co przewinęło się też na innych sesjach – język powinien być stworzony do rozwiązania jednego konkretnego problemu.
Ocena: 4/5

Tomas Petricek: History and philosophy of types
Tomas był kolejną osobą którą bardzo chciałem poznać i znałem do tej pory tylko z książek i artykułów o F#. Sesja pokazująca że w “typach” jest koncepcyjnie znacznie więcej niż możemy sądzić. Całość ciut za bardzo przegadana i zbyt filozoficzna ale i tak ciekawie się słuchało.
Ocena: 4/5

Rob Martin: Teaching functional programming to n00bs in mobs
O tym jak wdrażać nowych programistów i dlaczego warto zaczynać od razu od języków funkcyjnych.
Rob mówił jak w swojej firmie stosuje ‘mob programming’ czyli stawianie 5-15 ludzi przed dużym telewizorem i jedną (zmieniającą się) osobą z klawiaturą. Brzmiało fajnie.
Ciekawa dygresja: ponoć 80% języka którego używamy do komunikacji z dzieckiem to język imperatywny (zrób to i tamto) a z dorosłymi to w 80% deklaratywny (kiedy czymś się dzielimy i zwykle nie oczekujemy odpowiedzi).
Ocena: 4/5

Tomasz Kowal: Elixir and Elm – the perfect couple
Krótka sesja wprowadzająca do tych technologii.
Ocena: 3.5/5

Artur Skowroński: Embracing change – how to introduce Clojure into your company technology stack seamlessly
Temat bardzo interesujący – w końcu wielu z nas pracuje w firmach gdzie chciałoby choć w małym obszarze wprowadzić jakąś fajną nową technologię. Niestety praktycznie cała prezentacja składała się ze śmiesznych obrazków i animacji na slajdach. Fakt, autorskich i świetnie zrobionych (szczególnie te z Cthulhu:) ) niestety treści nie zostało z tego wiele. A szkoda bo Artur sprawiał wrażenie osoby znającej się na temacie.

Dzień 2

Konrad Malawski: The Zen of Akka
Akki nie znam ale i tak z sesji wyniosłem parę fajnych perełek jak to że domyślny Javowy serializator może zepsuć wydajność całego środowiska aktorów.
Ocena: 4.5/5

Evelina Gabasova: The F#orce awakens
Chyba jedna z najlepszych prezentacji, świetne połączenie teorii (metryki na grafach) do zbadania ciekawego problemu (kto i na jaki sposób jest ważny w filmach SW I-VII) przy użyciu fajnej technologii (F# & R). Tutaj jest jej post na ten temat.
Jeśli ktoś chce dowiedzieć się więcej na temat arcyciekawej teorii która za tym stoi polecam świetny kurs Networked Life 
Ocena: 5/5

Dmitry Ivanov, Nami Naserazad: Practical demystification of CRDT
Opis w zasadzie ten sam co w przypadku ‘The F#orce’ – ciekawy problem (implementacja struktury danych z odporną metodą scalenia jako odpowiedź na pewne problemy w środowisku rozproszonym, tutaj do synchronizacji ‘ulubionych’ w TomTomie) pokazany w przystępny sposób zarówno z punktu widzenia teorii jak i kodu. Po takim wstępie aż chce się dowiedzieć więcej i samemu przy tym podłubać.
Ocena: 5/5

Michał Płachta: Purely Functional Web Apps
Świetna technicznie sesja ale jak dla mnie podejście nie do końca trafione – 45min to za mało żeby pokazywać taką ilość kodu i jednocześnie tłumaczyć koncepcje.
Ocena: 3/5

Bartosz Milewski: The Truth about Types (keynote)
Wyszedłem wcześniej ale pierwsza połowa była tak wolna że pewnie i tak bym nie wytrzymał 🙂 Niemniej sama ‘teoria kategorii’ na pewno warta uwagi.

Ogólnie to chyba najlepsza konferencja na której byłem. Dzięki i do zobaczenia za rok!