Imagine that you have a service, which receives requests to execute specific methods, possibly from a number of different underlying libraries that you don’t want to expose directly. Possible examples are web services. The request comes in as a number of string values (method name, parameters etc.) and you need to respond with results. So you have inherited a project with API that starts with a method: object Invoke(string methodName, object[] parameters); You now have to call variety o...
Dziś będzie kontynuacja mojego poprzedniego wpisu o produktywności, a konkretnie o aplikacji Nozbe. Tydzień temu napisałem o GTD (system Getting Things Done). Pewne koncepcje, które zawiera GTD spowodowały, że byłem w stanie w końcu zorganizować swoje życie. Może nie w sposób idealny, ale w taki, który spełnia moje oczekiwania...
Do you ever feel like (well, you should) these huge switch + case statements or too many ifs seem to be wrong? What if I told you, there’s one simple trick that will change your life, by getting rid of them? Ok, seriously – I have nothing against switch or if as the way of controlling the flow (I use them quite often) however, there are certain occasions at which the things could be done better. And let me show you another way to achieve the same goal which is much cleaner in terms of code readability a...
Sztuka programowania 3068 dni, 2 godziny, 17 minut temu 361 źrodło rozwiń
Hej, dziś piszę o tym dlaczego warto rozwijać się poza pracą i jak się za to zabrać, nawet jak jesteś już doświadczoną osobą. Jeśli jeszcze nie zacząłeś pracować, np jesteś studentem, te same rady dotyczą Ciebie. Możliwe, że po prostu będziesz miał na ich realizację więcej czasu. Dlaczego warto, żebyś się rozwijał poza pracą, nawet gdy już pracujesz? Prosta odpowiedź: bo dzięki temu jesteś lepszy i tempo tego rozwoju wzrasta. Koniec i kropka, na tym mogę zakończyć odpowiedź na to pytanie ;).Pojawia się k...
Ciekawa ikonografia na temat tego czym zajmują się deweloperzy na świecie - przegląd języków, etc.
Małżeństwo to nie taka prosta sprawa. Są różne i różnie się układają, różni ludzie się do tego mieszają czasem wychodzi to lepiej a czasem gorzej. Podobnie jest w programowaniu. Ostatnio musiałem ożenić IOC z Factory. Problem który się pojawił to tworzenie obiektu na podstawie jakiegoś tam parametru wejściowego, na początku miałem tylko jeden przypadek (np. RssChannel) i musiałem tylko ten przypadek obsługiwać, mogłem spokojnie wstrzyknąć handler i było cacy. Potem (w zasa...
Architektura 3068 dni, 2 godziny, 17 minut temu 213 źrodło rozwiń
Xamarin nie jest gwarantem trzykrotnie szybszego developmentu. Nie zachodzi tutaj żadna równość typu, że niezależnie ile platform docelowych będziemy chcieli obsłużyć, to w praktyce i tak piszemy jedną aplikację. Xamarin tak nie działa. Nawet w sytuacji gdy korzystamy z Formsów to i tak nie jesteśmy w stanie skrócić developmentu na inne platformy do zera. Na ten temat szerzej pisałem we wpisie w ubiegłym tygodniu.
Mobile development 3068 dni, 2 godziny, 17 minut temu 203 źrodło rozwiń
Rozpoznawanie twarzy na zdjęciach, emocji jakie wyrażają, opisywanie zawartości fotografii, przetwarzanie języka naturalnego – te i wiele więcej tematów powiązanych ze sztuczną inteligencją znane są nam od dawna. Jednak od niedawna są one tak bardzo na wyciągnięcie ręki. Rzućmy okiem na Microsoft Cognitive Services.
.NET Core 1.0 is here and it’s a great, great opportunity to start playing with it not only on Windows platform but also on Linux. Today I will show you not only how to run .NET Core but how to setup whole developer environment for developing .NET. Since one of Microsoft main goals was multiplatform support, let’s take a quick look on how-to setup .NET Core on Ubuntu. Why Ubuntu? Well.. it’s popular and easy....
Co wyróżnia C# od innych języków? Co sprawia, że C# jest nadzwyczajny? Co sprawia, że C# jest taki jak inne języki? Jakie są cechy (nie)szczególne C#? No i czym jest to dziedziczenie i czy w ogóle się go używa? Zapraszam do lektury i to nie tylko tych początkujących programistów. Czym jest dziedziczenie? ...
Sztuka programowania 3070 dni, 2 godziny, 54 minuty temu 174 źrodło rozwiń
Ostatnio w pracy walczyłem z projektem przejętym w spadku po kolegach. Projekt ten to program do zarządzania masowego repozytoriami i branchami w Gicie. Za pomocą tego narzędzia można w GUI robić merge, tworzyć nowe branche, blokować dostęp do nich i tym podobne. Osobiście wolę krótkie skrypty do tego typu działań, ale narzędzie nie było pisane dla mnie 🙂 Czy da się ugryźć Railsy w Windowsie i nie wybić sobie zębów? Dowiecie się z tego artykułu.
In the first part How to split monolith solution - part 1: common myths I wrote about common myths. In this post I will try to find "lines" to cut, using the Visual Studio and the ReSharper. Let's go!
Architektura 3071 dni, 17 godzin, 14 minut temu 46 źrodło rozwiń
Do you have a big and heavy solution? Do you want to split it? Are you afraid? I will try to help.
Architektura 3072 dni, 19 godzin, 39 minut temu 64 źrodło rozwiń
Na chwilę obecną SportsTacticsBoard używa plików .resx aby przechowywać zasoby w celu internacjonalizacji. Celem jest zapewnienie właściwego tłumaczenia aplikacji użytkownikom. Jednak moim zdaniem używanie tłumaczeń w plikach .resx jest trochę niepraktyczne. Po pierwsze, głównym powodem na posiadanie oddzielnych plików na tłumaczenie jest to, aby tłumacz nie musiał wiedzieć nic o programowaniu...
Last month I had a pleasure to attend Open Source North conference in Minneapolis, MN. It was a great event with over 500 attendees and speakers from all over across the United States. I had a pleasure to meet a lot of great people, and attend a few interesting talks. I also gave a talk “Open Source and Microsoft and Beyond” where I presented a bunch of Microsoft Open Source projects (ASP.NET Core, TypeScript, Xamarin, F#), gave an insight into Azure ...
Po obejrzeniu różnych prezentacji z konferencji na temat Dockera i jego możliwości, postanowiłam wreszcie spróbować jak to wygląda w praktyce – zwłaszcza jeśli chodzi o Docker Hub Co na temat Dockera mówi Wikipedia? „Docker jest określany jako narzędzie, które pozwala umieścić program oraz jego zależności w lekkim, przenośnym, wirtualnym kontenerze, który można uruchomić na prawie każdym serwerze z systemem Linux” Troszkę się myli, bo już powodzeniem Docker działa również na Windows o czym za chwilę. ...
ELMAH, czyli Error Logging Modules And Handlers (ELMAH) - jest to biblioteka/moduł dostępny za darmo służący do zarządzania oraz monitorowania błędów w oprogramowaniu. Moduł ten oparty jest na śledzeniu zdarzeń i można go podpiąć do istniejącej aplikacji bez zmiany ani jednej linii kodu (zmiany wykonujemy tylko w konfiguracji). Główne zadania ELMAH-a, to obsługa, zarządzanie, monitorowanie, eskalacja błędów, ze szczególnym uwzględnieniem błędów nieobsłużonych. Główne zalety/funkcjonalności ELMAHA: ...
Ostatnio stanąłem oko w oko z zadaniem stworzenia kanału RSS. Spodziewałem się czegoś trudniejszego, a zadanie okazało się o wiele prostsze niż myślałem. Być może sposób ten się komuś przyda, więc na wszelki wypadek się nim podzielę.
Jakiś czas temu zapowiadałem na blogu serię postów poświęconą tematyce CQRS oraz Event Sourcing-u. Niniejszym postem rozpoczynamy naszą podróż badawczą! Dlaczego w ogóle zajmiemy się tym tematem? Otóż sam koncept poznałem stosunkowo niedawno i pomijając wady i zalety tego rozwiązania zawsze spotykałem się ze stwierdzeniem, że implementacja CQRS jest banalna i nie ma nad czym się tu zastanawiać. Już teraz mogę Wam zdradzić, że nie zgadzam się z tą tezą, ale do kodu przejdziemy od następnego „odcinka”. Tu ...
Architektura 3075 dni, 5 godzin, 31 minut temu 345 źrodło rozwiń
Dzisiaj napiszemy nasz pierwszy skrypt w Unity 3d. Najpierw dodajmy jakiś element na scene, który potem będziemy mogli obracać za pomocą skryptu. W tym celu z menu głównego wybieramy GameObject->3d Object-> Cube: Następnie w celu dodania skryptu klikamy na “Assets” w panelu “Project” i wybieramy Create->C# Script: Zanim przejdziemy do edycji skryptu, warto upewnić się, że Visual Studio jest skonfigurowany jako narzędzie do pisania kodu. W tym celu wchod...