Zacząłem ostatnio pracować nad aplikacją do certyfikowania sędziów dla Polskiej Ligi Quidditcha. Postanowiłem napisać ją w F# i Suave, mając na celu zrobić jak najlepszą robotę pod względem bezpieczeństwa. Postanowiłem zaimplementować swój własny system sesji, który jest prostszy od gotowego w Suave.
Microservices are still pretty popular in our industry since they imply lots of benefits. However working with that kind of architecture might be annoying when it comes to commit the changes using GIT. Why? Simply because in a common approach, each microservice should be put in a separate repository. Therefore, instead of doing your typical „GIT sequence” once, you end up with few terminals where you do pretty much the same job. Fortunately, you can avoid that with no big deal. ...
Stare porzekadło mówi, że istnieją dwa rodzaje ludzi – ci, którzy robią kopie zapasowe, oraz ci, którzy będą je robić. Backupy i innego rodzaju zadania związane z utrzymaniem projektu są jednak o tyle problematyczne, że zawsze znajdzie się wymówka żeby robić coś innego. Rozumiejąc jednak wartość tworzenia backupów projektu postanowiłem zautomatyzować żmudny proces ich tworzenia.
A while ago 2 of my SpecFlow tests started failing on the build server. At the same time, on a few local machines no problems were observed. I also didn't find any exceptions in the log, so I decided to log into the server and debug a problem there. Quite soon I figured out that the problem is in the algorithm that uses Roslyn to analyse and understand the code...
Sztuka programowania 2683 dni, 20 godzin, 1 minutę temu 48 źrodło rozwiń
Do czego może się nam przydać udostępnianie aplikacji hostowanych lokalnie na zewnątrz? Mówiąc „na zewnątrz” mam na myśli oczywiście dostęp do naszego lokalnego środowiska (localhost) z zewnętrznej sieci, w skrócie Internetu.
Właśnie wróciłem z pierwszej delegacji zza oceanu i skłoniło mnie to do napisania paru słów o delegacjach (oraz podzielenia się zdjęciami). Myślę, że pracowników można podzielić na 2 grupy. Tych, którzy unikają delegacji jak ognia, oraz tych chętnie korzystających z okazji do wyjazdu. Ja zdecydowanie należę do tej drugiej grupy. Dziś o tym, dlaczego lubię delegacje. Każdy wyjazd wynika z potrzeby biznesowej. Kiedy klient dla którego pracujemy...
Już od jakiegoś czasu myślałam o zamianie OneNote na coś innego. Męczyło mnie przede wszystkim to, że jeśli mam otwarte okno aplikacji desktopowej i jednocześnie otwieram notkę w przeglądarce, on traktuje to często (w sumie nie wiem do czego to zależy) jako innego użytkownika. Do paranoi doszło, gdy kiedyś sobie notowałam coś na jednym komputerze, a na drugim, gdy weszłam na tą samą notatkę dzień później traktował mnie jak innego użytkownika i pokolorował mi tamten edytowany fragment jako napisany przez ...
JavaScript varami żyje. Zmienne tam są wszędzie i są niemal wszystkim. Jako zmienną możemy zadeklarować liczbę, napis, a nawet funkcję. Do tego oczywiście dojdziemy (i wtedy będzie naprawdę ciekawie), ale dobrze by było poznać podstawy deklaracji, czasu i zakresu życia takich zmiennych.
Showing MahApps modal windows in a Prism WPF and MVVM friendly way (part 1).
.NET Core on Linux is still very fresh in 2017. First production deployments are just beginning to emerge. Consequently, development on this platform is only beginning to show up. There is a lack of knowledge and good practices related to virtually every aspect of the existence of this environment.
Od dłuższego czasu po głowie chodziła mi pewna myśl – w ostatnich dniach udało mi się ją wyklarować. Chodzi o dwa rodzaje developerów – biznesowych i technicznych. Jakkolwiek absurdalnie to brzmi w tym momencie, pozwól mi wyjaśnić. Warto też zaznaczyć, że pojęcia developer biznesowy i developer techniczny istnieją wyłącznie w mojej nomenklaturze – przedstawię więc jak ja je rozumiem.
Let’s say we remove (by mistake) feature/Democratic branch with force (cause branch is not merged into master). git branch -D feature/Democratic1git branch-Dfeature/Democratic To revert that change we need to find SHA1 of last commit made on that branch. Where to look? If you use terminal look at branch deleting command.
Żeby sprawdzić poprawność adresu email, wcale nie trzeba męczyć się ze skomplikowanymi wyrażeniami regularnymi. W C# z pomocą przychodzi klasa MailAddress. Oczywiście jest to rozwiązanie wysokopoziomowe i wolne (rzuca wyjątki). Zapewnia jednak czytelność kodu.
This post explores subtle and undocumented difference regarding response compression and response buffering in ASP.NET Core depending on target framework.
Notyfikacje podbijają nasze urządzenia – aplikacje na telefony zasypują nas nimi codziennie, a strony internetowe coraz częściej proszą o umożliwienie im wypychania aktualizacji w formie notyfikacji. Chcąc iść z duchem czasu, można podobne rozwiązanie zaproponować klientom korzystającym z SharePoint. W tym celu posłużymy się językiem JavaScript.
Atrybuty autoryzacji. Sporo czasu spędzam ostatnio przy systematyzacji procesu autoryzacji w aplikacji mvc. Plan jest taki, aby każda metoda była zabezpieczona, a dostęp był zweryfikowany rolą, którą ma zalogowany użytkownik. Jak to zrobić? Z pomocą przychodzą atrybuty, ja wykorzystałem dwa (te same, ale dwa) Atrybuty jako AOP Atrybuty służą do tego aby zdefiniować kod, który powinien się wykonać przed wykonaniem metody która została oznaczoną danym atrybutem. ...
Niedawno pisaliśmy na naszym blogu o PWA, czyli nowej fali aplikacji webowych które sposobem działania przypominają to, co znamy z natywnych aplikacji mobilnych. Jednym z najczęściej przewijających się punktów dotyczących PWA jest wsparcie dla trybu offline i odporność takiej aplikacji na wahania sieci. Brzmi nieźle, ale jakie korzyści w praktyce możemy zaoferować naszym użytkownikom dodając do naszej aplikacji możliwość korzystania z niej bez połączenia z Internetem?
In this post I'm describing how easy is to setup simple deployment from GitHub to Azure Function App.
Sztuka programowania 2692 dni, 15 godzin, 18 minut temu 313 źrodło rozwiń
Querying logs is a must have. But to create simple queries, logs must be readable also for humans. Sometimes using default serialisation is not a way to go, and because we are good developers we have to fix it.