Co prawda nie jest to ani blog ani wpis .Netowy, nie jest nawet techniczny. Wydaje mi się jednak, że każdy kto pracuje jako B2B powinien takie rzeczy wiedzieć i warto, żeby takie coś znalazło się na dotnetomaniaku.
EmguCV jest .Netowym wrapperem do OpenCV - potężnej biblioteki do przetwarzania i analizy obrazów (zarówno statycznych jak i ruchomych) oraz innych sygnałów cyfrowych. Ważną cechą biblioteki jest fakt iż stara się ona wykorzystać jak najlepiej zasoby dostępne na maszynie na której jest ona uruchomiona, ze szczególnym uwzględnieniem karty grafiki.
O finalizers czy też destruktorach pisałem już wielokrotnie. Wspomniałem również, że lepiej ich unikać, jeśli oczywiście to możliwe. Głównym problem jest możliwość wypromowania obiektu do kolejnych generacji, ponieważ obiekty z destruktorami są umieszczane w kolejce freachable, gdzie na nową stają się osiągalne. Jeśli ktoś nie pamięta, to polecam najpierw poczytanie o tym (w dziale articles są linki do moich tekstów o GC). Dzisiaj jednak chciałbym wspomnieć o czymś innym. Wiemy, że jeden wątek zwykle m...
Sztuka programowania 3149 dni, 23 godziny, 51 minut temu 156 źrodło rozwiń
Kiedyś na stronach MS widziałem rekomendację mówiącą “używaj typów wyjątków dostarczanych przez framework”. Jakiś czas temu, na jakimś polskim chyba blogu, przeczytałem tego powtórkę. Wiecie co? U mnie się doskonale sprawdza kompletne przeciwieństwo tej praktyki. Zawsze w swoich aplikacjach staram się mieć jeden bazowy typ wyjątku, abstrakcyjna klasa MyAppException: Exception. Dzięki temu jestem w stanie wyłapać wszystko co rzuca mój...
Sztuka programowania 3152 dni, 4 godziny, 39 minut temu 253 źrodło rozwiń
The topic of custom exceptions is surprisingly controversial. Some argue that exceptions shouldn't be used for anything related to "business", while others (me included) say that exceptions like InsufficientFunds are fine - I even wrote a whole chapter about using custom exceptions to simplify controllers in my Rails Refactoring book. I've read an interesting blog post today about custom exceptions (here - unfortunately it's in Polish), where the author advocates for using "business exceptions". ...
Sztuka programowania 3152 dni, 4 godziny, 39 minut temu 147 źrodło rozwiń
Nie tak dawno, bo raptem dwa wpisy temu, pokazywałem podstawy tworzenia wtyczek jQuery. W ramach tamtego posta, mogliście zobaczyć jak rozwiązałem kwestię wyświetlania, na głównej stronie tego bloga, wycinków zdjęć nagłówkowych dodawanych przeze mnie do niektórych postów. Na tej podstawie stworzyłem „zalążek” wtyczki jQuery. Postanowiłem jednak, że pójdę z tym tematem dalej i tak powstała pierwsza wersja mojego pierwszego własnego plugina do tej biblioteki...
I have started learning F# again, thanks to @isaac_abraham and his great presentation in my company. This time hopefully, I will move past the “WTF”, barrier and move to “AHA” moment. I am ready to finally start serious F# learning with couple of milestones like: project euler, tool, web-app, complex project. I will try to document whole process on the blog. I want to force myself and learn new functional paradigm. Hopefully it will give me a new way to loo...
Rules of data conversion from document to relational databases This article is hypothetical divagation how to determine and use a set of rules to create relational schema based on MongoDB data. Using only step by step analysis without creating relational model from the very beginning, rules that emerge from that understanding should be simple.1. Quick Introduction to Data Model in Mongo DB1.1. Basic Concepts Table presents the various SQL terminology and concepts as well as the corresponding Mo...
Bazy danych i XML 3152 dni, 4 godziny, 39 minut temu 65 źrodło rozwiń
Sprawa komunikowania klienta w usłudze WCF pracującej jako RESTful może nie być proste na pierwszy rzut oka, jednak chwila googlingu i sprawa okazała się banalna. Jak skonfigurować usługę WCF żeby działała jak RESTful? Nasz interfejs, oraz usługa wygląda mniej więcej tak: Interfejs: [ServiceContract] public interface Iv1 { [OperationContract] [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "user/{id}")] User g...
Architektura 3152 dni, 4 godziny, 39 minut temu 114 źrodło rozwiń
Już kilka tygodni typu pisałem o ASP.NET MVC 5 Scaffolding. Jak wspomniałem, domyślny szablon nadaje się do prototypów albo tymczasowych aplikacji. W praktyce będziemy chcieli wykorzystać IoC i własne usługi, a nie bezpośrednio operować na bazie danych. Za pomocą własnego szablonu, można wszystko dostosować do konkretnego projektu i infrastruktury. Najpierw ściągamy pakiet szablonów VS z http://sidewaffle.com/. Oprócz tego, musimy zainstalować Visual Studio 2013 Update 2 oraz Visual Studio 2013 SDK. Na...
2Jun2014 by basiafusinska Well… I’ve decided to change my life. Again. What changes do I have in mind? I don’t know that yet I’m going to write today about Basia’s Revolutionary Road and how it evolved through time. Everything started like a year ago. And some things that happened during this period have already transformed my life. Or maybe it was me who has changed? Not sure about that either. Let me invite you into the journey of my life transformation.Dear diary… A year ago I was really fed ...
W VS 2013 usprawniono debugowanie kodu asynchronicznego. Wszyscy jesteśmy przyzwyczajeni już do async\await. Znacząco to ułatwia wykonywanie operacji asynchronicznych. Niestety, debugowanie w VS 2012 jest dość uciążliwe. Załóżmy, że mamy kod z wieloma metodami asynchronicznymi, które z kolei są pozagnieżdżane. W przypadku wyrzucenia wyjątku lub ustawienia breakpoint’a, call stack nie zawierał żadnych informacji. Przetestujmy opisany problem na następującym kodzie:publicpartialclass MainWindow : Window {...
Zanim zajmiemy się faktycznym wstrzykiwaniem zależności, to najpierw musimy mieć co wstrzykiwać! Statycznej klasy nie wstrzykniemy przecież, jakkolwiek byśmy wstrzykiwać nie chcieli. Na początek zatem: zidentyfikujmy składowe procesu rejestracji użytkownika, które w ogólnie nie powinny znajdować się w kontrolerze. Pewniakiem jest tutaj walidacja poprawności adresu e-mail. Nie dość, że bardzo ładnie da się to...
Sztuka programowania 3158 dni, 5 godzin, 20 minut temu 191 źrodło rozwiń
W dzisiejszym wpisie przedstawię pewien problem związany z walidacją wartości atrybutów w portalu FIM. Załóżmy, że dany obiekt posiada atrybut tekstowy, w którym mogą znaleźć się jedynie wartości z określonego zbioru. Chcemy aby użytkownik podczas tworzenia obiektu miał do wyboru dwie wartości atrybutu: MyValue-1 oraz MyValue-2. Standardowo zaczynamy od ustawienia walidacji bindingu na odpowiednie wyrażenie regularne...
Jeśli zaglądacie tutaj raz na jakiś czas, zauważyliście pewnie, że w nowym interfejsie na stronie głównej, raz na kilka wpisów dorzucam zdjęcie nagłówkowe. Wspominałem zresztą o tym ostatnio, kiedy opisywałem na przykładzie tych zdjęć, jak stworzyć własną wtyczkę jQuery. Na liście najnowszych wpisów, oprócz tego, że zdjęcia są w locie „przycinane”, dodałem też efekt rozjaśniania się obrazka w momencie gdy najedzie się na niego myszką. Efekt ten uzyskałem dzięki właściwości opacity oraz tr...
Jednym z tematów często pojawiających się na konferencji SQLDay 2014 (na sesjach i w kuluarach), była systemowa sesja Extended Events o nazwie systemhealth. Wspomniał o niej m.in. Bob Ward przy okazji prezentacji na temat stanów oczekiwania. Pomyślałem, że dobrze byłoby napisać parę słów o tym często niedocenianym źródle informacji dla DBA.O sesji słów kilka Gdzie można znaleźć sesję systemhealth? Oczywiście najprościej jest odszukać węzeł Management – Extended Events w ...
Bazy danych i XML 3158 dni, 5 godzin, 20 minut temu 48 źrodło rozwiń
W poprzedniej części dokonałem kolejnego odwrócenia – tym razem zależności. W tej – choć będzie o wstrzykiwaniu – odwracać się do tego zabiegu nie będzie trzeba ;). Wręcz przeciwnie (by nie rzec odwrotnie) to wstrzykiwanie pomoże w odwracaniu i to zarówno zależności jak i sterowania (kontroli). Jeśli więc chcecie dowiedzieć się jak to możliwe – nie ma odwrotu, należy przeczytać niniejszy wpis :D ...
Sztuka programowania 3158 dni, 5 godzin, 20 minut temu 179 źrodło rozwiń
W poprzednim odcinku dowiedzieliśmy się co to jest Node (pobieżnie) i do czego służy NPM. Dowiedzieliśmy się, by zainstalować framework lub rozszerzyć nasz serwer o dodatkowe funkcje wystarczy polecenie npm install i kłopot z głowy. A co jeżeli byśmy chcieli zainstalować jQuery? Albo Twitter Bootstrap? Albo jakąś inną kliencką bibliotekę, którą chcemy wykorzystać w aplikacji? W Visual Studio za pomocą nuget instalujemy paczkę o odpowiedniej nazwie i ona nam już trafia do odpowiednich folderów. Ale NPM ...
Niedawno Paweł zadał na dotnetowej grupie FB pytanie: w jakiego typu firmie chciałbyś pracować jako programista? Link: https://www.facebook.com/groups/net.developers.poland/permalink/289388431242519/. Sama ankieta jak i jej wyniki są w kontekście tego posta nieważne. Pod pytaniem pojawiła się jednak dyskusja. Widzę, że bez logowania do fejsa nie można tego linka podejrzeć, więc wszelkie tożsamości pozostawię tajne łamane pr...
Przez ostatnią dekadę wiele osób pisało i dyskutowało o problemie dotyczącym alokacji w bazie systemowej tempdb. Dość dobre repozytorium wiedzy na temat tempdb zebrała jeszcze w 2009 roku Cindy Gross na swoim blogu. Także i polscy specjaliści poruszali ten temat wielokrotnie [...]. Z jednej strony wiadomo już, że odpowiedź na pytanie, czy dzielić bazę tempdb na wiele plików danych, brzmi “to zależy”. Z drugiej strony na ogół skupiano się na udowadnianiu, że zalecenie dotyczące podziału tempdb jest ...
Bazy danych i XML 3159 dni, 6 godzin, 52 minuty temu 199 źrodło rozwiń