Let’s say you have just opened an online store. As every business owner you care about opinion that people have about your store. Anytime someone has a question, doubt, complain and expresses it on your facebook fanpage or directly on your website – you politely answer. You simply care, because you want your customers to be satisfied.
What if some of the questions, doubts or complains are expressed in other parts of the internet, without appropriate tags? If you’d know about it, you’d still do the same – politely answer. But you are not aware. You’re busy with your online store – why would you spend a whole day in the internets looking for bad opinions?
Brand monitoring is basically that – it looks for so called “mentions” and notify you. You save time on looking by yourself and expand your territory to other areas of the internet than your website. It helps to adapt to the real live feedback and in the end deliver better value to receivers.
Supporting and maintaining an old and inefficient websites bring us a lot of problems and stress. Especially when a website was started a long time ago in already pretty outdated technology and architecture, but somehow it succeeded and can’t handle its own popularity. What a coincidence, I have the website exactly like this one! And recently I’ve managed to get rid of one stress point, at least for now. All this thanks to benefits of one particular public cloud service.
Implementing authentication server using IdentityServer4 is pretty straightforward even if you have never done it. No big deal, install the required packages, copy-paste-change some code from the docs and you’re done. What if I want it to work in a less standard way? By less standard I mean providing scalable OAuth authentication service in microservice architecture without the use of ANY (conventional) database. Easy? Let’s have a look!
One of my countless projects I do is a WPF application. Nothing really fancy, just a plain form based app. Doing some business logic, mostly acting as a simple front-end.
I still have not fully eradicated the famous engineer pride. So I often try to do things right. Like they supposed to be done.
I don’t always succeed, one sometimes has to be a pragmatic and choose business increment over the rules of art.
But this time I mostly succeeded. I managed to solve a technical problem of keeping MVVM approach in the really unpleasant case, so I thought I will tell you how I did it. Maybe some of you will benefit from it some day.
I mentioned before that I’m working on my company project: rewriting a big’n’old popular internet portal. I probably didn’t mention that for the front-end I went with as big stack of technologies I’ve been never working with as possible.
As always, I’m trying to gain in a many ways with a single decision – along with a rewriting of my favorite product, I hope to learn about a bunch of new stuff.
I decided that during with my learning I will post some of the “Ah, I see now!” moments with other people. Although, it’s always hard to pick some stuff that seems like something potentially interesting/useful to other people. Just in case I fail, I will try to make this more interesting with my ignorant opinions.
So, currently I’m working on a brand-new project involving variety of services being run on Service Fabric cluster in Azure. I’ve never had anything to do with Service Fabric (except for one, short hackathon) before, nor have any of my team mates. For the last couple of weeks, we’ve been struggling to make good architectural choices for the platform we’re still learning about. For the last few days we were working on a service that on certain triggers will populate Redis cache with certain sets of values. The logic of such service is pretty complex, as it has to keep two data sources (Redis and SQL DB) in sync, based on some sets of business rules. Another problem is that there are millions of those values to keep in sync. I’m not going to reveal all those rules and explain all the business domain (NDA + it would take too much time). I will just give you the quick overview of how we initially approached the problem and why we were wrong.
Little introduction first: for a last few months I’ve been struggling with one side project that I co-own – very popular, but very shitty (from technological point of view) internet portal. It generates a lot of traffic and sometimes some money to pay the bills for my own linux server. There is a huge potential in this project, but surely not in current form. Currently it’s a very outdated, hard to maintain WordPress website that for some reason still didn’t break. I want to make it work properly, to do it I have to rewrite a whole thing. It’s taking ages, because:
I chose all new technologies I want to learn to develop it
I’ve got about 4 hours a week to code it
I try to teach some agile approach another co-owner, so I want to keep all process details (unless it’s unnecessary in the team of two people)
What I want to describe here is the thing that I dealt with a few months ago, maybe someone can use it someday. Otherwise you will just read one of my stories and have some laugh hopefully. Let’s go.