-
.NET Core Identity with PostgreSQL
2020-10-17 | 7 min readA couple of years ago I wrote a post about setting up Identity in .NET Core MVC application with MySQL. Now I am starting a new project, and this time I want to try using PostgreSQL.
It is also a good timing to prepare for the upcoming .NET 5, which is about to release next month, so I decided to do it with .NET 5.0 RC2 right away.
Read more -
matplotlib animation on Mac OS
2020-09-05 | 4 min readI’ve got a weird problem with one of my Python scripts. It creates a chart with animation, and this animation works fine on Windows and Linux, but on Mac OS it just doesn’t show up. Here’s a video demonstration:
If video doesn’t play in your browser, you can download it here.
Read more -
Data compression in IIS, Apache and NGINX
2020-08-12 | 9 min readSome of our users are residing in areas with very slow or/and metered internet connection, so the amount of data transferred is very important to them. And since web servers do support data compression, enabling it can certainly improve the situation for such users.
We took IIS, Apache and NGINX and ran some tests to see how compression is configured in each of them and to compare how well do they do it.
Read more -
TeamCity Prometheus metrics in Grafana
2020-07-14 | 5 min readSince we added a Grafana instance to our infrastructure, we started visualizing absolutely every single thing with it. So no wonder that eventually we turned our eyes to TeamCity.
In 2019.2 release TeamCity started exposing its metrics in Prometheus format, and that’s how Grafana can get those, as Prometheus is one of its supported data sources.
Read more -
Jupyter Notebook on a subdomain of your website
2020-05-27 | 10 min readJupyter Notebook is kind of a Python (and some other languages) sandbox, where you can mix text (Markdown) with code blocks and “run” all that in a web-browser. So it’s like running Python interpreter in interactive mode, but more convenient and user-friendly.
So, here’s the plan:
- install and run a local instance of Jupyter Notebook on Linux server
- local here means that Jupyter instance itself will be bound to
localhost
(not available from the internet) - also create a systemd service
- local here means that Jupyter instance itself will be bound to
- interface it with the internet via NGINX as a reverse proxy
- using HTTPS, of course, so the existing certificate needs to be extended
- host it on a subdomain of existing website, so there will be a new DNS record
- install and run a local instance of Jupyter Notebook on Linux server
-
Visitors analytics with GoAccess
2020-05-20 | 8 min readLike I already mentioned in my other post about server-side visitors analytics with .NET Core middleware, if you are relying only on Google Analytics, then you are missing a good portion of data about your visitors.
Recently I discovered one more way to analyze visitors data - by using GoAccess tool (and its nice web-reports):
What’s especially great about this tool is that it analyzes web-server access logs, so it is the most trustworthy and “closest to reality” data about your visitors that you can possibly ever get.
Read more -
NuGet and npm packages in Azure DevOps Artifacts for a C++ library
2020-03-05 | 19 min readThese days more and more developers are incapable of working with anything else but packages, as manually unpacking a ZIP archive and copying libraries with headers to the right places seems to them an impossible task.
But apart from said developers, using packages can indeed improve the development experience.
We distribute our C++ based SDK to many other teams, and for quite a some time they were asking us to do it exactly in packages (in particular, with NuGet and npm).
Read more -
Adding Exchange account to iOS devices enables their remote wipe
2020-02-01 | 2 min readIf your company (like ours) uses self-hosted Exchange server instances for e-mails, then most likely you’d want to add your e-mail account to your iPhone/iPad.
What might come as surprise to you (like it was for me) is that doing so exposes your device to a remote wipe by your Exchange administrator.
Read more -
Adding search capability to a Hugo-based blog
2020-01-05 | 6 min readI was working on the documentation for some project, and chose to use Hugo for it. Fits perfectly, but lacks the searching functionality. So I implemented it there, and also decided to add it to my blog too.
It is actually a bit surprising why I didn’t think about it earlier. But then again, using Google’s site-specific search (ololo site:retifrav.github.io) should be good enough for that purpose already, so I just didn’t bother to do something else.
Read more -
Apple TV, Kodi and network share
2019-12-26 | 18 min readFor a long time I was using Kodi with LibreELEC running on a Raspberry Pi 3 Model B device. It was pretty good, and I was going to write a post about it, but never had time for that, and now I got an Apple TV, so instead I’ll write a post about using Kodi on Apple TV.
I’ll talk about how to install Kodi on Apple TV and how to create a network media storage for it.
Read more
Social networks
Zuck: Just ask
Zuck: I have over 4,000 emails, pictures, addresses, SNS
smb: What? How'd you manage that one?
Zuck: People just submitted it.
Zuck: I don't know why.
Zuck: They "trust me"
Zuck: Dumb fucks