Trochę scruma i agile widziałem w swojej karierze. I to chyba by było tyle w temacie pozytywnych elementów tego wpisu, ponieważ chciałbym opisać te złe podejścia do scruma jakich doświadczyłem. Myślę, że moje doświadczenie jest naprawdę nikłe, ale podzielę się nim z opinią publiczną. Na wstępie zaznaczam, że nigdy nie używałem scruma. Były to jedynie elementy scruma, lub nawet gorzej elementy agile (bo wstyd to scrumem nazywać). Wynikało to na pewno z tego, że osoby wyrażające scruma w tych zespołach ...
Sztuka programowania 2717 dni, 20 godzin, 44 minuty temu 664 źrodło rozwiń
Branding to słowo, dla którego raczej nie ma dobrego odpowiednika w języku polskim, a szczególnie w tym kontekście, o którym chcę pisać. Tematem tego wpisu, będzie modyfikacja graficznego interfejsu SharePointa online, tak aby SharePoint nie wyglądał jak SharePoint – to dość często spotykane sformułowanie. Chcę pokazać jak wykonać Sharepoint branding krok po kroku, tworząc master page
W Visual Studio jest parę sposobów aby szybciej kodować oprócz skrótów klawiszowych opisanych tutaj - jednym ze sposobów są wstawki kodu. Jest ich sporo i od czasu do czasu warto sobie je przypomnieć. Dużą zaletą jest to, że nie potrzeba ReSharpera czy innych narzędzi aby móc cieszyć się tymi skrótami. Wystarczy Visual Studio w wersji od 2010. Z tego posta dowiesz się:Co to...
Sztuka programowania 2722 dni, 12 godzin, 22 minuty temu 481 źrodło rozwiń
Working with Tasks is a modern way of writing asynchronous code in an easy and flexible manner. It is quite straightforward to start using them, so usually developers do not investigate thoroughly the topic. Unfortunately this often leads to unpleasant surprises - especially when it comes to exception handling. Having this in mind let's take a look how to handle exceptions in Task and what can happen if we do it wrong.
Windows 10 na wolności, mojego 8.1 po prostu zaktualizowałem. Wszystko poszło elegancko, wszystko działa poza SpecFlow-ami. SpecFlow-y uruchamiam przez NCrunch-a. Jedyne co dostaję to błąd buildowania i komunikat: ..\packages\SpecFlow.1.9.0\tools\TechTalk.SpecFlow.targets (47, 5): The „TechTalk.SpecFlow.Tools.MsBuild.GenerateAll” task could ...
Przemysław Walkowski Większość programistów w pewnym momencie odkrywa, że ich IDE posiada skróty klawiszowe i dzięki używaniu ich może przyspieszyć swoją pracę. Inni dowiadują się, że kodowanie przy pomocy myszki jest raczej objawem braku profesjonalizmu. Poniżej lista skrótów klawiszowych, których używam codziennie w mojej pracy. Cześć skrótów jest oferowana przez ReSharpera ale w większość są to skróty, które o...
Sztuka programowania 2730 dni, 15 godzin, 26 minut temu 537 źrodło rozwiń
Po ostatnim poście powinno być jasne dlaczego i kiedy warto używać CORS. Przedstawiony przykład pokazywał dwa kluczowe nagłówki: origin oraz Access-Control-Allow-Origin. W praktyce jednak, może zdarzyć się, że przeglądarka wyśle dodatkowy pakiet, tzw. “prefight”. Przeglądarki omijają ten etap, gdy następujące warunki sa spełnione:Zapytanie jest typu GET, HEAD lub POSTW nagłówku nie ma innych zapytań niż Accept, Accept-Language, Content-Language lub Content-TypeContent-Type ma wyłącznie wartości takie ja...
Programowanie rozproszone 2735 dni, 21 godzin, 14 minut temu 159 źrodło rozwiń
Recently I learned the hard way about setTimeouts side effects...
Kilka postów wcześniej pisałem o JSONP, jako sposobie na wywoływanie serwisów znajdujących się w innych domenach z poziomu JavaScript. Domyślnie przeglądarki blokują takie wywołania ze względu na bezpieczeństwo. Załóżmy, że mamy następujący serwis w jakiejś domenie...
Testy jednostkowe z natury muszą być wykonywane w izolacji. Wykonanie np. pierwszego testu nie powinno mieć żadnego znaczenia dla pozostałych. Analogicznie, kolejność ich wykonywania nie ma znaczenia. Zwykle jest to bardzo proste i osiąga się to poprzez np. mock’i. Czasami jednak może zajść potrzeba całkowitej izolacji poprzez wykonywanie każdego testu w osobnej AppDomain. Myślę, że w 99% przypadków jednak, można bez tego obyć się. Ostatnio jednak, pisząc pewne narzędzie do Visual Studio, musiałem odiz...
Sztuka programowania 2740 dni, 7 godzin, 2 minuty temu 153 źrodło rozwiń
Jestem w branży IT właściwie nieprzerwanie już gdzieś od połowy 2008. Przez ten czas branża zmieniała się bardzo dynamicznie. Nastąpiło odejście od desktopów, a większy nacisk postawiono na mobile i web. Same firmy zwiększyły nacisk na podział frontend - backend. Przez cały ten czas, w branży zmieniali się również ludzie. Pojawiło się sporo nowego narybku, który wciąż nie jest w stanie zadowolić olbrzymiego popytu na specjalistów IT. Powstał więc w pewnym sensie rynek pracownika, gdzie specjalistów najzw...
Dzisiaj chciałbym rozpocząć nowy cykl o bezpieczeństwie aplikacji webowych. Niejednokrotnie o tym pisałem już, ale były to luźno powiązane ze sobą wpisy. Od tego wpisu chciałbym to zmienić i przedstawić bardziej dogłębnie tą tematykę. Pierwsze wpisy będą stanowiły całkowite podstawy, ale mam nadzieję, że również bardziej zaawansowani programiści znajdą coś ciekawego w tym (np. wykorzystywane narzędzia). Na końcu mam zamiar przedstaw...
Technologie typu WPF, czy Universal Apps aż proszą się o zastosowanie MVVM, jednak wsparcie dla tej architektury po stronie tych rozwiązań, jest umówmy się - co najwyżej średnie. Bardzo mało kontrolek posiada wbudowaną obsługę komend. I nawet jeśli się ona pojawia, to i tak nie dotyczy ona wszystkich dostępnych w kontrolce zdarzeń. Poza tym, nie ma jawnego wsparcia dla ViewModeli. Standardowo zbudowana aplikacja składa się ze stron wykorzystujących code-behind. Na szczęścia oba te problemy można w pewnym...
Sztuka programowania 2741 dni, 21 godzin, 32 minuty temu 199 źrodło rozwiń
On July 1st I had a pleasure to speak at Seattle Node.js meetup about unit testing and Test Driven Development with Angular.js and Node.js, using TypeScript. In this talk I gave an overview of JavaScript testing frameworks, and tools. I also demonstrated how TypeScript can strengthen your tests by adding free unit tests (type checking) thanks to strong typing.
Do napisania tego wpisu z jeden strony skłoniła mnie własna sytuacja (zmiany, zmiany, zmiany), a z drugiej strony dość stary artykuł na stronach Intela. Miałem go ciągle w artykułach do przeczytania, aż w końcu znalazłem chwilę i nie ukrywam zrobił na mnie bardzo duże wrażenie. Zgłębiając temat trafiłem na jeszcze jeden, na stronach Business Insider, a konkretnie na ten artykuł. On również daje do myślenia… Otóż możn...
With the Agile thinking and approach to project management Scrum and Kanban becomes really popular nowadays. But adaptation of both shows to some teams that something is not working - Scrum is too strict, while Kanban is not structured enough. Here comes the need of something new. The mixture of Scrum and Kanban leads to the methodology called Scrumban. Let's have a closer look on it in a key aspects: roles, meetings and artifacts.
Semantyczny model dostarcza nam wiele informacji o kodzie, które zwykle uzyskuje się po kompilacji. Na przykład przeładowanie metod jest dużo łatwiejsze do określenia już po kompilacji. Oznacza to, że nie jest już to klasyczna, statyczna analiza kodu. Z tego względu, najpierw danych kod należy skompilować za pomocą...
Standardowy player Microsoftu (kontrolka MediaElement), z którego możemy korzystać m.in. w Universal Apps, ma wiele zalet i funkcjonalności, ale ma też niestety dwie poważne wady. Po pierwsze - nie jest do końca zgodny z MVVM. Nie mamy tutaj wsparcia dla komend, czy ViewModeli. Po drugie, jest bardzo słabo rozszerzalny. Jakakolwiek modyfikacja w większości przypadków jest bardzo trudna, a przecież przy kontrolkach tego typu, rozszerzalność, czy skalowalność to wręcz podstawa. Czy jest zatem jakieś wyjści...
From procedural to functional – an example in F# Posted on by Michal Franc In this blog post, I show little code review of a code sent to me by friend. The code is quite simple example on how to read XML file using XmlProvider. My friend’s biggest concern was that his code is still procedural and not ‘functional’. I was asked if this code can be refactored to be more functional, whatever it means. First of all, the code that I got, is fine and most importantly it works. Even when you are using F# to ...
Sztuka programowania 2756 dni, 21 godzin, 38 minut temu 103 źrodło rozwiń
Roslyn to nie tylko parsowanie kodu, ale również zarządzanie projektem\solucją za pomocą WorkspaceAPI. Pisząc różne narzędzia dla programistów, oprócz analizy kodu, zwykle chcemy mieć informacje o kontekście danego kodu – np. nazwie pliku czy projekcie w którym znajduje się dana klasa. Workspace API, jak nie trudno domyślić się, opiera się na abstrakcyjnej klasie Workspace. Zwykle jednak pracować będziemy z MSBuildWorkspace, która pozwala nam zarządzać .sln czy .csproj:MSBuildWorkspace msWorkspace = M...