O tym jak GitHub stał się passe

Matthew @ 2012-10-20 — Kategorie: git

Lub w wersji dla hipsterków: zbyt mainstreamowy.

Trzeba przyznać, że jednym z powodów tak wielkiej popularności gita jest właśnie GitHub. Ładnie wyglądający, łatwy w użyciu, darmowy (dla projektów open source), hosting gita. Do tego stopnia wgryzł się w świadomość programistów, że stał się niemalże kultowy i teraz z Octocatem (maskotką githuba) można kupić niemal wszystko. Ale nie po to jesteśmy technicznymi żeby się pierdołkami przejmować.

Jakiś czas temu (w zasadzie to bardzo dawno temu, tak dawno że najstarsze żyjące dinozaury tego nie pamiętają) nijaki Egor Homakov znalazł błąd we frameworku Ruby on Rails (w którym to napisany jest GitHub) i niesiony chęcią niesienia pomocy braciom programistą pobiegł podzielić się swoim odkryciem z twórcami GitHuba oraz frameworka Ruby on Rails co by byli w stanie załatać ową dziurę w frameworku oraz serwisie. A że Egor został (delikatnie mówiąc) olany (chociaż późniejsze relacje jednej ze stron mówią coś innego), postanowił nagłośnić sprawę w jedyny „słuszny” sposób, czyli przeprowadzając skuteczny atak. Sam atak polegał na dodaniu issue z datą daleko wybiegającą w przyszłość i podmianie kluczy która pozwalały na autoryzację klienta a tym samym dodanie czegoś do repozytorium bez wiedzy właściciela (i całe starania Linusa o bezpieczeństwo gita szlag trafił). Sprawa wyszła na jaw, administratorzy GitHuba się wkurzyli. Egor dostał bana.

W tym momencie zapaliła mi się lampka że ktoś ma nie do końca poukładane pod sufitem i trzeba czym prędzej uciekać z tego statku zanim kapitan zdąży posłać nas na skały.

Gdzieś po drodze Atlassian (Ci którzy nie kojarzą jest to firma która stworzyła JIRA’ę oraz jako pierwsza wprowadziła piątki róbta-co-chceta) przejął mercurialowy hosting bitbucket i dodała do niego obsługę gita. Konkurencja jest zawsze dobra dla rozwoju (o ile nie próbuje nas wysadzić w powietrze). Ale czymże miałby konkurować nieznany gitowcom bitbucket z bożyszczem tłumów GitHubem? Atlassian poszedł po rozum do głowy i zamiast kazać sobie płacić za ilość prywatnych repozytoriów stwierdził że będzie wyciągał kasę z ludzi jak z korporacji, czyli płacimy za ilość osób które mają dostęp do naszych prywatnych zasobów. Ale żeby nie być zbyt zachłannym dali 5 osób za darmo. Więc mamy nielimitowane prywatne repozytoria oraz do 5 osób które mogą z nich korzystać. Ale czy to wystarczy żeby zmienić ludzkie przyzwyczajenia i chęć ocierania się o znane miejsca gdzie przebywa dużo, jeszcze bardziej znanych osób?

Mnie, żeby dać sobie spokój z GitHubem przekonały dwie rzeczy: ostatnia aktualizacja bitbucketa która czyni go znacznie czytelniejszym i łatwiejszym w użyciu niż GitHub. Oraz błąd który zgłosiłem i który został praktycznie z miejsca (czytaj: zgłosiłem, poszedłem spać, wstałem, błędu nie ma) naprawiony. Błąd nie był niczym wielkim, ot bitbucket twierdził że niektóre e-maile są nieprawidłowe. Ale to chyba o czymś świadczy że firma jest w stanie zająć się pierdółką w krótkim czasie a jej konkurencja nie potrafi naprawić dziury w zabezpieczeniach?

Skoro potrafią zrobić to samo tylko lepiej, taniej i dając cukierki to czemu nie?

Komentarze:

Nie patrzyłbym na prędkość reakcji na buga po jednym losowym case.

Np. bitbucket ma od wieków buga w handlowaniu commitów podpisanych GPG:
https://bitbucket.org/xani/dpp/changeset/f20184223c01

na githubie też nie validuje ale przynajmniej commit msg nie wygląda bezużytecznie:
https://github.com/XANi/dpp/commit/f20184223c0196ded461807b6e6bab6439bbbd5a

a bug na to leży sobie od roku
https://bitbucket.org/site/master/issue/3166/add-support-for-checkgpgsig-hook-from
Mimo że praktycznie uniemożliwia pracę z repem gdy używasz podpisywania commitów

@Xani: niby tak, ale jak GitHub zlał sobie problem bezpieczeństwa to coś jednak o nich świadczy? Z resztą powodów dla których podoba mi się bitbucket bardziej od GitHuba jest znacznie więcej. Np. możliwość ustawienia własnej domeny dla swoich repozytoriów (wygląda to trochę dziwnie bo nadal musisz mieć swój login w adresie ale już lepiej wygląda git.matthew.org.pl/matthewpl/repo.git niż git.bitbucket.org/matthewpl/repo.git)

EDIT: poza tym to o czym wspominasz to jest request nie bug.

Nie stać Cię na githuba i dorabiasz ideologię.

@Haxon: Tylko po co płacić skoro bitbucket technicznie jest po prostu lepszy i jest tworzony przez firmę która zna się na robieniu narzędzi dla deweloperów?

Jakby atlassian klepał w ruby on rails też by się na to nadziali. Poza tym on zchaczył Githuba bo developerzy RoR uparcie mu zamykali buga ;p (przynajmniej tak to wygląda w changelogu)

Klikam po tym bitbuckecie i nie widze co miałby ciekawszego niż github, funkcjonalnie wygląda identycznie minus parę wykresów które ma github ale to i tak ciekawostka. Za to pewnie świetnie się integruje z resztą ich softu bo tak, soft do wspomagania kodzenia Atlassian ma chyba najlepszy na rynku.

Matthew: Mijasz się z prawdą na wielu poziomach:

1. Był bug w GitHubie, zgadza się. Tyle, że Igor go nie zgłaszał do githuba wcześniej. Po ataku (i banie) został on załatany błyskawicznie.

2. Igor nie zgłaszał buga w Railsach, tylko zwracała uwagę na niefortunną defaultową konfigurację. Problem ten był powszechnie znany od dawna, istniało proste rozwiązanie, ktore wielu programistów od lat stosowało.
Proponowane przez Igora rozwiązanie było poważną zmianą mającą rozwiązać trywialny problem, dlatego nie było akceptowane.

3. Igor dostał prewencyjnego bana na zasadzie „nie wiemy co się dzieje, zadbajmy o to, żeby się nic więcej nie działo zanim się zorientujemy”. Oczywiście, ban został szybko zdjęty.

Podsumowując, przypierdalasz się do gihuba o to, że mieli (dość popularny) błąd w swoim kodzie. Bugi się zdarzają każdemu. Pewnie nawet w bitbucket!

Hej, psst! niemalrze -> niemalże

Jeśli ktoś będzie czytać komentarze, to mój komentarz do komentarza sharnika.
sharnik jest fanatykiem RoR na których stoi Github.
Nie przyjmują oni do wiadomości informacji o istnieniu bugów w ich ukochanym narzędziu.
Ostatnio na polskiej stronie RoR, a raczej na forum podłączonym pod stronę trwała dyskusja na temat bugów w RoR i olewackiego traktowania zgłaszanych błędów. Generalnie święte oburzenie tamtejszej społeczności, a brak rzeczowej dyskusji.
Gorzej niż na forach o PHP.
A fakty są takie – RoR miał bardzo kiepskie mechanizmy bezpieczeństwa, zaowocowało to włamem na każdy większy serwis stojący na tym frameworku.
Po włamaniu na Githuba kilka miesięcy później włamano się na flagową witrynę RoR – rubygems.org.
I nie było to wykorzystanie ukrytych bugów jak sugeruje sharik – bugi były wcześniej zgłaszane.

Na przełomie 2012/2013 wydana cały szereg poprawek łatających bugi RoR, niestety, wprowadzane poprawki wprowadzały również kolejne bugi.
Można to samemu sprawdzić śledząc np. changelog serii 3.2 RoR oraz issues na githubie w repozytorium RoR.
Pomimo zgłaszanych przez użytkowników bugów, znów wisiały i nikt się nimi nie zajmował przez wiele tygodni.
Dlatego jeśli ktokolwiek myśli o programowaniu na serio, odradzam zdecydowanie RoR ze względu na kiepską politykę bezpieczeństwa prowadzoną przez twórców frameworka.
Zresztą historia RoR pokazje, że core-team jest niepoważny.
Obecna seria 3.x RoR to tak naprawdę framework Merb, który powstał wskutek rozłamu core-team za czasów serii 2.x RoR – część niegłupich developerów zdegustowana polityką pozostałych (głównie ich lidera DHH) odeszła i napisali framework Merb, który szybko został uznany za lepszy niż RoR.
Niestety, główni developerzy Merb ulegli propagandzie pozostałych developerów RoR proponujących połączenie projektów.
Stan na dziś – RoR są ciągle rządzone przez nieudolnego kacyka DHH, a dawni developerzy Merb skupili się na pisaniu własnego frameworka, tym razem nie opartego już o Ruby, a o javascript.
Dla mnie – end of story dla RoR.
Sam niestety władowałem się w ten system, napisałem 3 SaaS’y i dopiero w produkcji zaczęły wychodzić braki narzędzia.
Piszę to z pozycji doświadczonego pragmatyka.
Nowy soft piszę już w narzędziach opartych na Pythonie i JVM – so far, so good.

Dodaj komentarz:

 

Subscribe without commenting