W ostatnim czasie sporą część dnia pracy zajmuje mi robienie analiz IT. Zazwyczaj uczestniczę w całym procesie powstawania produktu: spisanie wymagań klienta => opracowanie dokumentu analitycznego => development. Dzięki temu, że jestem obecny we wszystkich procesach, jestem świadkiem wielu „zabawnych” (z perspektywy czasu😉 ) sytuacji o tym jak mimo ustaleń, oczekiwania i wyobrażenia klienta o finalnym produkcie mogą odbiegać od wcześniejszych założeń
Wszystkie bardziej rozbudowane aplikacje mają to do siebie, że przechowują wprowadzone przez użytkownika dane. Chyba nikt nie wyobraża sobie ustawiania swoich indywidualnych preferencji np. w przeglądarce internetowej, czy w grach po każdym ich restarcie. Byłoby to bardzo niewygodne i denerwujące. Rozwiązać problem zapisu ustawień aplikacji można na różne sposoby. Po co jednak się trudzić, skoro .NET daje nam to „za darmo” 😉 Tak jak już wspomniałem .NET oferuje nam bardzo przyjemną formę zapisywania us...
This is a story of a bug I had an opportunity to fix in the ancient times of node.js 0.10. The new and shiny node.js 0.12 was still just glimmering somewhere on the horizon, we were still young and beautiful. Some of us, at least. Let me take you on an adventure through time and space. Hopefully, there will be some learning involved along the way. So hop on the magic school bus and we’re off!
Sztuka programowania 2377 dni, 2 godziny, 40 minut temu 52 źrodło rozwiń
Przemysław Walkowski No w końcu znalazłem porządne i wygodne miejsce do codziennych ćwiczeń programistycznych – dostępne on-line i dość sensownie zrobione. Nie wielu programistów korzysta z takich rozwiązań. Nie wiem dlaczego. Jednak ja polecam codzienne ćwiczenia w pisaniu kodu i wymyślaniu algorytmów, bo tylko dzięki temu praktycznie zwiększymy szybkość pisania oraz będziemy elastycznie podchodzić do problemów. Jak to wygląda w praktyce napisze poniż...
Sztuka programowania 2377 dni, 13 godzin, 42 minuty temu 623 źrodło rozwiń
Implementacja wzorca obserwator(observer)
Sztuka programowania 2377 dni, 13 godzin, 42 minuty temu 231 źrodło rozwiń
Not so long ago, I’ve eventually decided to dive into the world of microservices. I did look for an opportunity to make use of this architectural pattern for quite some time and finally was able to do so. After 3 months of trying out the new things and learning stuff mostly on my own (the hard way) I believe it’s a good time to share some of my experience. I have no doubts that at some point in the future when I look back at this post I might be like – “oh God, what was I thinking back then, it’s so wro...
Programowanie rozproszone 2377 dni, 13 godzin, 42 minuty temu 202 źrodło rozwiń
Zastanawiasz się o co chodzi z całym tym hałasem dotyczącym języka JavaScript? Czemu powstają o nim dziesiątki memów i żartów? Dlaczego ludzi poświęcają tysiące godzin na prelekcje dotyczące tej właśnie technologii? W dzisiejszym poście przedstawię Ci 10 powodów przez które język JavaScript jest w dzisiejszych czasach tak popularny.
Walka! Tak wyglądały moje ostatnie 3 tygodnie pracy nad projektem isthereanynews.pl (jest już online). A z czym walczyłem? Z klasycznym, acz partyzanckim – u mnie działa.Social Modne i praktyczne, w zasadzie to drugie, jest logowanie się do różnego rodzaju serwisów przez użycie konta z G+, FB czy Twittera. Ja też tak chciałem – w ten sposób mogłem uciec od problemu trzymania hasła gdzieś u siebie i wszystkich problemów z tym związanych.#1 U siebie w projekcie korzystałem z samodzie...
Programowanie rozproszone 2378 dni, 12 godzin, 14 minut temu 557 źrodło rozwiń
Reading time ~5 minutes Warning this post contains some math. Even more, it shows how to use it for solving real life problems. This post describes how I calculate similarity between recipes in my pet project cookit.pl. For those of you that don’t know, cookit is a search engine for recipes. It crawls websites extracting recipe texts, then it parses it and tries to create a precise ingredient list with amounts and units. 182 184 recipes2936 ingredients This scale may not seem huge, but tr...
Sztuka programowania 2378 dni, 12 godzin, 14 minut temu 56 źrodło rozwiń
W tekście “CQRS+DI w C# i Autofac” pokazałem, że CommandHandler nie zwraca żadnego rezultatu wykonania komendy. Natomiast w “Esencja CQRS” pisałem, że jest to jedna z zasad, co do której można się spierać. Więc… jak to faktycznie jest? Wrzucanie komendy w system i “pójście dalej” bez żadnej informacji o rezultacie bywa możliwe, lecz zwykle ciężko byłoby to zaimplementować. No bo jak to: kazałem coś zrobić mojej aplikacji i nie wiem czy się udało, więc… co dalej? Gdzie pokierować użytkownika?
Sztuka programowania 2378 dni, 12 godzin, 14 minut temu 199 źrodło rozwiń
Ostatnio pisałem o automatyzacji. Jest to proces wymagający dobrania odpowiedniego narzędzia. Dzisiaj skupię się na jednym z nich - Gulp. Gulp jest jednym z narzędzi służącym do automatyzacji. Strona projektu opisuje go jako streaming build system. W niektórych miejscach widnieje jako task runner. Zwał jak zwał. Wiele nazw na to samo. Gulp jest zwykle używany do automatyzowania webdevelopmentu. Prawdę mówiąc sam używam go do tego celu, jednak można go wykorzystać w dowolny inny sposób. Musisz mieć jedyn...
There are times that you need to call native (C/C++) code from .NET environment. To do so, you have several options: use C++/CLI, use P/Invoke mechanism, use some sort of inter-process communication like pipes, memory mapped files etc persuade yourself that it's gonna be easy to port this cool C/C++ library to C#. Shoot yourself in the head when trying to do it. We will discuss option 2.
In today’s post, we are going to explore another feature of the Aurelia framework or more precisely aurelia-fetch-client. So, in many cases, it would be nice to perform some specific actions when doing an AJAX request. For instance, before sending a request we want to log it into browser database like PouchDb. A more common example is calling a toastr on some error like 404, 500, 401. The problem with such a scenarios is that many developers duplicate their code in every single request/callback so they b...
...oto jest pytanie! Po długiej przerwie w pisaniu postaram się Wam na nie odpowiedzieć. Co dzieje się w momencie użycia tej metody? Kiedy powinniśmy z niej korzystać, a kiedy możemy to sobie odpuścić? Oczywiście nie będę w stanie przeanalizować każdej możliwej sytuacji, ale mam nadzieję, że po dzisiejszej lekturze będziecie korzystać z tej metody w pełni świadomie.
Sztuka programowania 2380 dni, 10 godzin, 20 minut temu 414 źrodło rozwiń
Czy możliwe jest skompilowanie kodu C# bez odpalania potężnego narzędzia jakim jest VS? Czy aby skompilować prościutką rzecz lepiej wpisać linię z palca czy jednak jest to przerost formy nad treścią? Rzuć okiem!
Reading time ~6 minutes This post is covering a subset of what I am talking in my talk How I stopped worrying and learned to love parallel processing (currently only in polish). This will cover on how, in terms of performance, AsParallel can kick you in a place where it hurts a lot, simultaneously being a blessing in terms of… performance. How is that? Let’s look at someHistory AsParallel was introduced as an extension to LINQ with TPL in .NET 4.0. In theory, it’s God’s sent. The promise w...
Architektura 2380 dni, 10 godzin, 20 minut temu 116 źrodło rozwiń
~ Jarosław Stadnicki Mówili mi ludzie, czemu sam rejestrujesz zależności w autofacu, skoro można skorzystać z konwencji, sam wszystko rozpozna, wykryje co masz załadowane do pamięci i z tego rozkmini. Jak się domyślacie wpis ten wziął się stąd, że nie zawsze tak się dzieje. Otóż tak stworzona rejestracja czasem powoduje problemy: Problemy wygladają tak: None of the constructors found with ‚Autofac.Core.Activators.Reflection.DefaultConstructorFinder’ on type ‚IsThereAnyNews.Mvc.Controllers.HomeContr...
Konferencje i meetupy programistyczne to jedna z najprzyjemniejszych części życia programisty. W ich trakcie możesz nie tylko poznać najnowsze technologie i rozwiązania z obszaru który cię pasjonuje, ale co zdecydowanie ważniejsze – możesz porozmawiać na żywo z programistami z innych firm, państw a nawet kontynentów.
F# jest językiem głównie funkcyjnym, ale działa w oparciu o platformę .NET, która jest zorientowana obiektowo. Jeśli piszemy kod w F# do użycia w F# to nie potrzebujemy zbytnio klas i interfejsów, ale jeśli chcemy wykorzystać fsharpową bibliotekę w C# to musi ona udostępnić klasy. Więc powiemy dziś sobie o klasach...
Sztuka programowania 2382 dni, 13 godzin, 39 minut temu 53 źrodło rozwiń
Architektura informacji w SharePoint to pojęcie, którego zrozumienie jest kluczowe w przypadku jego wdrożenia. Pierwsze pytanie, które nam się tu nasuwa to o czym w zasadzie mówimy? W kontekście różnych rozwiązań mogą być różne definicje, ale dla mnie Architektura Informacji w przypadku SharePoint to skupienie si...