Reading time ~25 minutes I need a document database. Why? There are areas in my problem generating (How to calculate 17 billion similarities) pet project cookit that are just asking for a document modelling approach. Most people will say that this is a straightforward problem to solve:Slap on MongoDB, and you are ready to go. It is NOT a good idea.Get email notifications about new posts: This article started as a way to structurize the comparison process but grew a bit more ( just like my previous ...
Strona głównaUżytkownik
maklipsa | użytkownik
Bazy danych i XML 1800 dni, 13 godzin, 15 minut temu 104 źrodło rozwiń
Reading time ~7 minutes This article is Part 4 in a 4-Part Series. Part 1 - Refactoring to Data Driven TestsPart 2 - How to get data for Data-Driven Tests?Part 3 - Tips, tricks, and good practices for Data-Driven Testing. Part 1.Part 4 - This Article This post is a continuation of a previous tips, tricks, and good practices for Data-Driven Testing entry. This one with more code. I will be converting this series into an ebook with additional source code and examples. If you want to get it, please su...
Sztuka programowania 1879 dni, 15 godzin, 28 minut temu 34 źrodło rozwiń
Reading time ~7 minutes This article is Part 3 in a 3-Part Series. Part 1 - Refactoring to Data Driven TestsPart 2 - How to get data for Data-Driven Tests?Part 3 - This Article As promised here and here, this will be tips, tricks, and good practices for data-driven tests. If You want to know more about data-driven testing see my previousposts on this topic. Here we go. I will be converting this series into an ebook with additional source code and examples. If You want to get it please subscribe:G...
Sztuka programowania 1890 dni, 14 godzin, 29 minut temu 53 źrodło rozwiń
Reading time ~6 minutes This article is Part 2 in a 2-Part Series. Part 1 - Refactoring to Data Driven TestsPart 2 - This Article The previous post was meant to be an encouragement and a warmup to data-driven testing. This post describes why I love this way of testing. Understanding a simple fact about testing moved me from “Oh, I should write tests” to “I want it all! And I want it now!” and Data-Driven Testing. And the simple truth is: Anyone who is a bit interested in machine learning heard sta...
Sztuka programowania 1894 dni, 15 godzin, 11 minut temu 59 źrodło rozwiń
Reading time ~7 minutes I am not a big fan of writing tests. I like having them, but I find writing them to be boring. That said, retesting manually is even more annoying, so I write tests. The thought that there has to be a better way, never passed. I tried a few approaches. After some experimentation, I think I have the answer - DDT (Data Driven Testing) Before we dig into what Data Driven Tests are, let’s look at some standard, non-DDT tests.What we will be testing? There is a fragile line for cod...
Sztuka programowania 1901 dni, 14 godzin, 17 minut temu 41 źrodło rozwiń
Reading time ~4 minutes NoSQL PaaS databases like AWS DynamoDB or Cosmos DB offer incredible capabilities in scale, speed, and availability. There is also a dark side to those databases. They will punish anyone greatly for mistakes. And no mistakes are punished more than choosing the wrong partition key. Below is an ORDERED list on how to approach selecting the partition key.1. Transaction boundary I can’t stress this enough.This is the most critical factor. If our transaction boundary is wrong, pleas...
Bazy danych i XML 1908 dni, 13 godzin, 57 minut temu 22 źrodło rozwiń
Patoarchitekci Uwaga, rzucamy mięsem, czyli lekki podcast o niby poważnym temacie jaki jest nowoczesna architektura w IT. O podcaście Słuchaj na:YouTubeSpotifyAnchorKontakt 2019 © Szymon Warda & Łukasz Kałużny2019, Aug 12 Odcinek poświęcony robieniu architektura w czasach Agile. Czy można w ogóle robić dobrą architekturę, kiedy wszystko jest niby zwinne? Ciekawe linki i inne znaleziska z tego odcinka:Człowiek vs Komputer10x engineersWhat is a 1x Engineer?It’s 2019, and one third of businesses ...
Architektura 1908 dni, 13 godzin, 57 minut temu 143 źrodło rozwiń
Reading time ~3 minutes I’ve seen multiple people struggling with trying to mock the ILogger calls. This post will hopefully save some people from wandering this path. Here it goes:Please stop trying to mock the ILogger methods from .net core. Here is why: Most ILogger methods that we use for logging are extension methods - static methods. While mocking them is possible using Prig, or Microsoft Fakes it is not easy or pleasant. Mocking a static method boils down to replacing the code at runtime using...
Sztuka programowania 1918 dni, 15 godzin, 7 minut temu 128 źrodło rozwiń
Reading time ~7 minutes I will be back to the series about data modeling in noSQL databases, but for now, I want to note down a few arguments that are still hot after an interesting discussion with a friend. The talk boiled down to a simple question:Should I use a service mesh or use a bare bones Kubernetes? I know how strange the combination of bare-bones and Kubernetes sounds, but this is the world we are living in :). I’m standing firmly on the position that service mesh is the only way to go. Her...
Architektura 1925 dni, 1 godzinę, 45 minut temu 80 źrodło rozwiń
Reading time ~6 minutes This article is Part 2 in a 2-Part Series. Part 1 - How to model hierarchical data in noSQL databasesPart 2 - This Article The problem of storing draft state and auditing is not limited to noSQL databases, and as previously, below patterns can be applied to SQL modeling. But because noSQL databases are, in most cases, lacking transactionality over multiple partitions, the problem is harder there. Making it more interesting :) Additionally, smart use of neet features of noSQL ...
Bazy danych i XML 1933 dni, 14 godzin, 31 minut temu 37 źrodło rozwiń
Reading time ~6 minutes Querying hierarchical data is always where the big boys of SQL shined. And I really mean the big boys part since only Oracle, and Microsoft SQL Server have support for CTE (Common Table Expressions) that allow for executing one SQL statement what will fetch a subtree. There are data modeling approaches that allow for doing hierarchical data reads with noSQL databases and databases without support for CTE. The most common and obvious example of hierarchical data is the family tr...
Architektura 1941 dni, 14 godzin, 39 minut temu 81 źrodło rozwiń
Reading time ~11 minutes So, Yes. I hit a pause button on writing because many things were happening, and as it turns out, you can only squeeze 24 hours in one day. Who knew? However (hopefully) my blog will come back to life. One of the things that kept me busy during this time was realizing one of my goals: Make a video course for Pluralsight. And I made it: Now that it is done, and I had a few months to reflect, a few lessons for those thinking about doing any video course.Choosing the course ...
Reading time ~3 minutes This article is Part 2 in a 2-Part Series. Part 1 - The missing Azure Functions documentationPart 2 - This Article As I wrote in the previous post there are two ways to run precompiled .NET code in Azure Functions - .NET 4.6.x or .NET Core. Why did I decide to go with the old .NET runtime? For the current moment, F# on .NET Core does not support type providers (there is a workaround, but I didn’t want to go with it for the current moment). I went to work thinking that it will...
Reading time ~3 minutes This article is Part 1 in a 1-Part Series. Part 1 - This Article Trying to understand how to run code in Azure Functions is not an easy task since this product has evolved on its own and thanks to the rise of .NET Core. This post will give You a history background necessary to understand the documentation and, most of all, all the blog posts talking about Azure Functions.v1.0 - script files The initial way to run code in Azure Function was to write a script file in Azure Fun...
Reading time ~10 minutes This article is Part 2 in a 2-Part Series. Part 1 - What is the simplest database?Part 2 - This Article The previous post laid out the most minimum requirements for something to be called a database. While they may be too bare bones for many, there are a lot of databases that don’t fulfill even half of them, and this isn’t stopping from using them on a daily basis. The last time I’ve looked at files, this time something a bit more complex - key-value databases. The idea be...
Architektura 2777 dni, 14 godzin, 7 minut temu 45 źrodło rozwiń
Reading time ~3 minutes The world of databases is a fascinating topic. It is very diverse. Many of them are extremely complex systems, but there are also very simple ones. There are the general purpose ones, and ones that do only one thing good, but they do it excelent. Despite all of this we tend to pick them just like we order food in a restaurant:I’ll take the same as last time. It wasn’t ideal for what I wanted, but I could pick worse.Hmm… Everyone is taking this one, so I’ll take it also. Well, m...
Architektura 2786 dni, 12 godzin, 59 minut temu 94 źrodło rozwiń
Reading time ~5 minutes Configuration as code movement isn’t anything new and is here to stay. I haven’t had time to actually do a from zero to the desired state configuration script until a few weeks ago. Below are my thoughts after three weeks with PowerShell Desired State Configuration. What I wanted to do First, let me describe the goal I’ve set before myself. I wanted to write a script that would go from a clean Windows machine to a fully configured TeamCity server with SQL Server storage and t...
Reading time ~6 minutes In most cases .NET manages to solve the DLL hell problem pretty well, but sometimes it all falls apart, and when it does in best case scenario we see something like this:Could not load file or assembly 'XXXX, Version=X.Y.Z.W, Culture=neutral, PublicKeyToken=eb42632606e9261f' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) The much worst case is this:The method 'XXXX' was not fou...
Reading time ~16 minutes While I’m working on the next angle on how to speed up calculating similarities I started investigating how to get better telemetry from cookit. Getting telemetry is easy - making sense of it is the hard part. This also brought another pain point of current setup - logging and monitoring. Since cookit is my pet, nonprofit project it was time to do something. There is a comparison table at the end, and what I’ve choose.The current state of logging and monitoringRequirementsThe ...
Architektura 2815 dni, 10 godzin, 36 minut temu 214 źrodło rozwiń
Reading time ~5 minutes In my ongoing series on calculating similarities one angle always seemed worth trying, and was pointed out many times on Reddit - use C++ and matrix manipulations. Similarity calculation fits very nicely into matrix representation, and there are algorithms targeting sparse matrix manipulation. So why did I delay it for so long? Because I had other angles I wanted to try and, from the looks of it required significant changes in the existing code base. But since last op...
Sztuka programowania 2857 dni, 3 godziny, 55 minut temu 150 źrodło rozwiń