dzikowski.github.io

Piszę o IT po polsku, więc z góry przepraszam za zagęszczenie kolokwializmów, ale co w angielskim brzmi naturalnie, w polskim często nie ma nawet odpowiedników.

Listopad

Na początku listopada pojawiło się spore opracowanie Sama Altmana o tym, jak należy robić startupy. Gdzieś w połowie natknąłem się na relację z 5 letniej pracy w języku Scala i na bardzo ciekawy wpis o promises. Pod koniec, rzutem na taśmę, kolejne opracowanie, tym razem o technikach zwiększających produktywność. A to i tak tylko kilka z tych artykułów, które warto było przeczytać w listopadzie.

Biznes

Y Combinator to chyba najpopularniejszy i odnoszącego największe sukcesy fundusz venture capital, który inwestuje stosunkowo niewielkie kwoty w dużą liczbę przedsięwzięć (ponad sto rocznie). Wysyłasz uzasadnienie, dlaczego powinni dofinansować właśnie twój produkt, opisujesz swój zespół i model biznesowy, i jeśli ci się uda, przyjeżdżasz do Doliny Krzemowej na trzy miesiące. Tak zaczynało sporo całkiem znanych firm, np. Reddit, Dropbox, Heroku, Airbnb i Stripe.

W tym miesiącu Sam Altman, prezes Y Combinator, udostepnił na swojej stronie podręcznik, Startup Playbook, dla zaczynających własne przedsięwzięcie. Zawarte jest w nim mnóstwo praktycznych wskazówek, dotyczących całego spektrum zagadnień, z którymi można się spotkać na samym początku. A sam tekst jest gęsty i jednocześnie czytelny, a przy tym odnosi się do rzeczywistych przykładów. Dowiesz się z niego, że np. sam Sam Altman był sceptyczny co do Airbnb, jednak jego założyciele okazali się tak zgranym zespołem, że to przeważyło o przyznaniu im dofinansowania. Albo tego, że nie warto specjalnie przejmować się konkurencją i najważniejszy jest dobry produkt.

Świetnym uzupełnieniem jest kilka wpisów samego Altmana, albo Paula Grahama (jednego z czwórki założycieli i poprzedniego prezesa Y Combinator):

Wreszcie, na pewno warto przejrzeć cykl wykładów znanych postaci ze środowiska pod przewodnictwem Sama Altmana: How to Start a Startup. To akurat ciągle jeszcze przede mną.

(Notka biograficzna: Sam Altman w wieku 19 lat stworzył swój pierwszy startup, w 2012 roku go sprzedał za 43 miliony dolarów, w 2014 przez moment był CEO reddita, a od 2014 roku jest prezesem Y Combinator. W tym roku chyba skończył 30 lat).

I na koniec tej sekcji pesymistycznie: Maciej Cegłowski, na blogu Idle Words o bańce na rynku reklam internetowych (wpis The Advertising Bubble). W skrócie chodzi o to, że inwestorzy pompują więcej pieniędzy w reklamy, niż są w stanie na tym zyskać. A kiedy bańka pęknie, na rynku zostanie mnóstwo upadających firm, które przez wiele lat gromadziły o nas dane.

Rozwój osobisty

Rzutem na taśmę wpis opublikowany 30 listopada: The Ultimate Guide to Personal Productivity Methods. W tym przeglądzie pojawiają się najpopularniejsze techniki związane z własną produktywnością, między innymi Getting Things Done, Personal Kanban, czy macierz Eisenhowera. W sumie jest ich kilkanaście, pokrótce opisanych i ze wskazówkami, czy dana technika jest właśnie dla ciebie.

Praktyka programowania

Kolejny z przeglądów, Strategie branchowania w Gicie. Znajdziesz tutaj opis, wady i zalety pięciu popularnych strategii, odpowiednich dla mniejszych i większych zespołów, dla projektów o różnej złożoności.

Odgrzebuję też stary artykuł, bo ostatnio o nim rozmawiałem ze znajomymi: Exploding Software-Engineering Myths. Artykuł opisuje wyniki eksperymentów prowadzonych w Microsofcie, mających potwierdzić lub obalić popularne mity w inżynierii oprogramowania. W skrócie, badacze doszli do takich wniosków:

  1. Większe pokrycie testów nie zapewnia lepszego kodu.
  2. TDD powoduje wydłużenie czasu powstawania oprogramowania o 15-35%, jednak samo oprogramowanie zawiera 60-90% mniej błędów.
  3. Więcej asercji to mniej błędów w kodzie.
  4. Prawo Conwaya działa.
  5. Odległość geograficzna pomiędzy członkami zespołu nie ma większego znaczenia.

Z resztą sam artykuł jest w zasadzie streszczeniem i omówieniem szeregu innych artykułów Microsoftu. Linki do nich w artykule; warto pogrzebać.

DevOps

Natknąłem się na stronkę poświęconą continuous delivery, a na niej na ciekawe obrazki jednego z inżynierów ze Spotify, wizualizujące właśnie samo continuous delivery, a także strategie testowania i zarządzania danymi. Niedługo będę miał własne biuro i zastanawiam się, czy nie wybrać któregoś z nich na ozdobienie sobie ścian.

continuous delivery

W tym miesiącu zajmowałem się też DevOps praktycznie i skonfigurowałem sobie swój własny proces, do którego lektury serdecznie zachęcam: Continuous Deployment w GitLabie.

Architektura i narzędzia

Może dziś trochę więcej o Javie 8 i Scali. Mam przyjemność pracować w projekcie z Javą 8 prawie od początku kontraktu w Krakowie (kwiecień 2015) i muszę przyznać, że jestem pod wrażeniem. Są Optional, strumienie i wyrażenia lambda, z których dość intensywnie korzystamy. W tym miesiącu natknąłem się na Githubie na przegląd funkcjonalności, które weszły to Java 8. Natknąłem się też na artykuł, dotyczący tego, czy Optional powinien być używany jako typ atrybutu w klasie.

Oczywiście są jeszcze inne brakujące rzeczy w Javie 8, które od dawna są w Scali. Z tego, co pewnie względnie łatwo można dorzucić do Javy, mi ciągle najbardziej brakuje foldLeft i lazy values. Zgrabną implementację tych ostatnich możesz znaleźć na wątku Lazy field initialization with lambdas na Stack Overflow, a swoją implementację zapewnia też Lombok.

Natknąłem się też na świetny wpis Manuel Bernhardta, dotyczący pięcioletnich doświadczeń w programowaniu w Scali (5 years of Scala and counting – debunking some myths about the language and its environment). Autor opisuje killer features, rozwiewa kilka mitów i daje porady, jak zacząć się uczyć. Jedna z głównych killer features:

No NullPointerException

Na koniec wyczerpujący i fascynujący artykuł o tym, jak działają promises – wpis How do Promises Work?.

Ciekawostki

Najdziwniejsze nazwy klas z rzeczywistych projektów (to pytanie na Quora). Przoduje Spring z takimi perełkami, jak na przykład RequestMappingInfoHandlerMethodMappingNamingStrategy.

Topologia dla laików: przecięcie butelki Kleina na pół daje dwie wstęgi Möbiusa. Dowód na wełnianej czapce znajdziesz w tym filmiku.