Dawid Sibiński 0 comments .NET, C# Hello again 🙂 Visibly this is going to be my first technical post here. I hope you’ll find it useful.Windows Services Recently I came up with a need to create an application, which executes some tasks in the background based on file system’s events. “That’s easy”, one would say. “Build Windows Service app”, he would add. Sure, that was also my first idea. I think that’s very common that we want to create an application without any GUI, which pur...
Welcome to the first episode of my course “Becoming a software developer”, which is a starting point for your journey into the software development world. It also begins a first part (there will be 4 parts in total containing 4 episodes each) which is dedicated to the core concepts of object-oriented programming using the C# language.
Różnica pomiędzy ?: a ?? w nawiązaniu do posta http://rph-blog.pl/view/9/ pod tytułem "Niezwykły operator ternarny ?: w C++". Dementujemy kłamstwa.
Sztuka programowania 1528 dni, 5 godzin, 35 minut temu 192 źrodło rozwiń
A few days ago when I posted the information about creating a course Becoming a software developer amongst many positive comments I had received at least a few question why would I do something like this for free. In the video below (English subtitles are available) I do present my answer. And I would also like to write a few additional remarks about it.
Welcome to the first, or actually, the episode number 0 of my first online course ever named “Becoming a software developer”. o what is it all about? The goal is simple – I’ll be acting as a mentor to a friend of mine Patryk Huzarski, who would like to become a software developer.
Tworzenie aplikacji na najświeższą platformę Windows (Universal Windows Platform) nie powinno sprawiać dużych problemów nawet początkującym osobom w tym temacie. Warto jednak już od pierwszych kroków wyposażyć się w ciekawy zbiór bibliotek od Microsoftu, który uprzyjemni pracę w UWP. Zróżnicowany zestaw pomocnych elementów znacznie usprawni programowanie na platformie Windows.
Nowadays, asynchronous programming isn’t something unusual. We all know that when it comes to do some I/O operations or HTTP request, we should do it async. Why? There’re several reasons but two most important are:Efficiency. In many cases, the code might work faster. That’s because it’s not forced to wait for the result. Instead, it can work on some other stuff and then come back for the response when it’s ready. Simple is that.Comfort. Async improves the comfort of using our applications. We don’t blo...
Sztuka programowania 1543 dni, 2 godziny, 10 minut temu 324 źrodło rozwiń
Programowanie współbieżne – jeden z najbardziej zaawansowanych tematów programistycznych. Z jednej strony programowanie równoległe jest już standardem, z którym mają styczność (może w pewnym stopniu nieświadomie) nawet początkujący programiści. Z drugiej strony nadal tylko niewielu programistów potrafi pisać poprawny oraz efektywny kod współbieżny.
Sztuka programowania 1543 dni, 2 godziny, 10 minut temu 268 źrodło rozwiń
It’s been a few months already since I’ve started working for good with distributed systems using (micro)services and asynchronous processing via service bus. Many issues and question raised and one of these was how to not lose the information about commands and events being processed and even more importantly, how to notify the user once the request has completed? I’ve had to come up with some solution that seems to be sufficient (at least for now) and I’d like to share it with you.
Architektura 1544 dni, 6 godzin, 22 minuty temu 141 źrodło rozwiń
Reading time ~4 minutes This post is an analysis of a very interesting optimization proposed by Nicholas Frechette in the comments under the previous post. He proposed to use one of the oldest tricks in performance cookbook - divide and conquer. Well, it did not turn out as I expected.Saga Before I go further here are some link to the previous posts on the problem of calculating similarities and then optimizing. This thread grew to a few post. Here are all of them:How I calculate similariti...
Sztuka programowania 1553 dni, 1 godzinę, 20 minut temu 78 źrodło rozwiń
Kilka słów o tym, że nie zawsze idzie poprawnie wyszpiegować co siedzi w binarce. Czasami kod znacznie odbiega od rzeczywistości i to bez użycia obfuskacji.
It’s been quite a while since I posted the latest update of the Warden project designed for monitoring the resources in general. After a lot of back-end coding and refactoring, the time has come to finally focus on the new web interface implementation. And this is where the things start to become interesting (I promise).
Visual studio simplifies creating of WCF service by providing project templates. First way to create WCF service is to use the New Web Site option and then choose WCF Service. It will create a new web site with a sample WCF service implementation linked to a .svc file, with related configuration in the web.config file. In this approach Visual Studio does not just create the core WCF project and add the needed assembly references, but it also builds the host application.
Programowanie rozproszone 1573 dni, 5 godzin, 52 minuty temu 67 źrodło rozwiń
Very often WCF is translated to ABC which corresponds to basic WCF concepts such as: Address, Binding, Contract.
Programowanie rozproszone 1577 dni, 11 godzin, 5 minut temu 36 źrodło rozwiń
Reading time ~1 minute This will be a fast errata to the previous one. This time I will expand the oldest performance mantra: The fastest code is the one that doesn’t execute. Second to that is the one that executes once Last time I’ve forgot to mention one very important optimization. It was one of two steps that allowed me to go from 1530 to 484 seconds in the sample run.Saga Before I go further here are some link to the previous posts on the problem of calculating similarities and then...
Programowanie rozproszone 1577 dni, 11 godzin, 5 minut temu 46 źrodło rozwiń
Reading time ~6 minutes Last time I’ve shown how I’ve gone from 34 hours to 11. This time we go faster. To go faster I have to do less. The current implementation of Similarity iterates over one vector and checks if that ingredient exists in the second one. Since those vectors are sparse the chance of a miss is big. This means that I am losing computational power on iterating and calling TryGetValue. How to iterate only over the mutually owned ones and do it fast? Saga Before I go furth...
Sztuka programowania 1574 dni, 10 godzin, 45 minut temu 58 źrodło rozwiń
One thing that surprised me the most about the C# was the fact that it does not support multiple inheritances (which I knew from the C++). How can we deal with that? Of course, we use interfaces, since one class can implement more than one. But quickly we come to the very common problem...
Sztuka programowania 1572 dni, 9 godzin, 30 minut temu 186 źrodło rozwiń
The first problem raised on the exam from WCF technology is Creating a WCF Service. Here are the subtasks for the problem: Create contracts (service, data, message callback, and fault);Implement message inspectors;Implement asynchronous operations in the service; First let's start from question what WCF is?
Programowanie rozproszone 1578 dni, 20 minut temu 149 źrodło rozwiń
Sometimes it happens that we use mechanisms/features of specific language without beeing aware of it. That’s fine, but if you’ll want to discuss your code in a future to the audience or coworkers, soon or later you’ll be forced to learn it and understand (or at least name it using technical nomenclature). Therefore, today I’m going to discuss two related „mechanisms” of C# which are covariance and contravariance. Covariance Covariance is a type conversion from the specific type to the more general (ba...
Sztuka programowania 1578 dni, 20 minut temu 186 źrodło rozwiń
Necessity is the mother of invention – that’s basically why I did create a new open source project called Lockbox. Its main purpose is to provide a centralized and secured storage for the application settings that can be easily fetched via HTTP request. Sounds interesting? Then let me guide you through the most important concepts of the Lockbox.