Dawno temu, za górami, za lasami, żyła sobie grupa ludzi, zwana PHP Framework Interop Group (PHP-FIG). Zajmowali się pierdołami w stylu idiotycznej wojny o to, czy wcięcia powinny być tabem, czy spacjami, a jeśli spacjami, to iloma. Wyniki są, jakie są i pomimo, że nie ze wszystkimi się zgadzam, to jednak wspomniana grupa spłodziła kilka standardów, które wprowadzają pewną spójność w projektach różnych developerów. Jednym z takich standardów był PSR-0.
No właśnie, co z tym Travisem? Miną zaraz dwa lata od kiedy zgłoszono prośbę o dodanie wsparcia dla Bitbucketa. I od dwóch lat odpowiedź jest zawsze ta sama: w sumie to byłoby fajnie, ale to za trudne. Travis jest bowiem zbudowany od podstaw wokół API GitHuba i wpięcie tam komunikacji z Bitbucketem, Google Code, czy czymkolwiek innym jest praktycznie niemożliwe. A ja używam Bitbucketa. Co robić, jak żyć?
uCrop to projekt, który łaził za mną od dawna i który zacząłem pisać chyba jeszcze dwa lata temu. Parę miesięcy temu stwierdziłem, że komponent uMVC nie jest najgorszy i stworzyłem mu nowe repo. Tak z popiołów odrodził się uCrop — wrapper dla GD i ImageMagick ze zunifikowanymm API zapewnionym przez wspólny interfejs.
Wiele miesięcy temu ktoś zdał sobie sprawę, że Bower nie dogaduje się z Bitbucketem. Bower wymaga, by repozytorium było publiczne, co zapewnia wspierany przez GitHuba protokół git, ale sprawa nie była tak prosta w przypadku ssh i https — a tylko te wspierane są przez Bitbucket.
Od kiedy kilka miesięcy temu zmieniłem serwer, a wraz z nim również zmieniłem oprogramowanie (konkretnie porzuciłem Apache na rzecz Nginx), miałem pewien problem z przekazywaniem do aplikacji parametrów GET. Błąd był głupi i wynikający z niedopatrzenia w pisaniu konfiguracji vhosta, ale efekt był całkiem ciekawy.
Jak wygląda testowanie end to end aplikacji AngularJS? Od jakiegoś czasu w dokumentacji frameworka można się natknąć na testy e2e pisane za pomocą narzędza zwanego Protractor. Co to jest i z czym to się je?
Jakże wygodne jest używanie własności templateUrl
w dyrektywach! Nie trzeba wklejać templatki wewnątrz stringa, nieraz konkatenowanego w wielu linijkach, unika się również konieczności escape’owania cudzysłowów. Ale nie ma róży bez kolców. Templatki zasysane przez XHR mają to do siebie, że trzymane są w pamięci podręcznej, której wyczyszczenie z jakiegoś powodu nie zawsze jest trywialne.
Kiedy uczyłem się Angular.js, jedną z pierwszych rzeczy, jakie mi się rzuciły w oczy było stwierdzenie w dokumentacji, że usługi są singletonami. To oczywiście zrodziło sporo frustracji, bo singleton singletonem, a życie życiem — czasem potrzebne są oddzielne instancje i już!
Czy ktoś kiedyś próbował bawić się obiektem Date
w JavaScripcie? Pisałem już o problemach, które można napotkać podczas pracy w kontekście stref czasowych i testów jednostkowych. Tym razem kolejna rewelacja.
Różnica między toString()
i valueOf()
jest prosta: ta pierwsza służy do zamiany obiektu na stringa, a ta druga, na liczbę wartość prymitywną (a więc stringa lub liczbę). Na tym rzeczy oczywiste się kończą. Kiedy JavaScript użyje jednej, a kiedy drugiej metody?