Listopad
30 Nov 2015Na 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):
- Unit Economics, czyli Sam Altman o tym, jak ważne jest rozpatrywane jednostkowego kosztu i przychodu, zamiast ślepej wiary w to, że wszystko będzie lepiej przy większej skali.
- Default Alive or Default Dead? Paula Grahama, które znalazłem już w październiku.
- How to Raise Money Paula Grahama o tym, kiedy warto i jak można zdobywać dofinansowanie.
- Mean People Fail Paula Grahama, o tym, kto rzeczywiście odnosi sukcesy.
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:
- Większe pokrycie testów nie zapewnia lepszego kodu.
- TDD powoduje wydłużenie czasu powstawania oprogramowania o 15-35%, jednak samo oprogramowanie zawiera 60-90% mniej błędów.
- Więcej asercji to mniej błędów w kodzie.
- Prawo Conwaya działa.
- 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.
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:
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.