-
Managing dependencies in a C++ project with vcpkg
2022-10-30 | 126 min readMore than half a year ago I was trying out Conan package manager for resolving dependencies in our C++ project. The research went well, but we never actually proceeded with switching to Conan for the whole project. And then a couple of weeks ago I started looking into vcpkg.
I’ve heard about vcpkg before and even tried to make a vcpkg package for one library a couple of years ago, but back then I didn’t find documentation for this (as I now understand, that’s because one does not really create a “package”) and abandonned the task. I never thought I’ll be looking at vcpkg again, but recently I discovered that some teams have been switching from Conan to vcpkg, which sounded intriguing and promising, as we still needed a package manager for our projects.
Read more -
Visitors analytics with Microsoft Graph
2022-08-15 | 27 min readOur company uses Office 365 and Azure Active Directory, which allows us to rely on SAML SSO for authenticating company users on our websites. At some point we got curious about what kind of users visit our websites - not quantities but kind of “corporate demographics”: what is their team/department name, their role/job title, their manager, country where their office is and so on.
We don’t collect any of this data on our websites (we probably could, at least on those where we control the authentication process, but we don’t). The only piece of information that we do have about our visitors (aside from IP-addresses in web-servers access logs) is their e-mails and GUIDs, thanks to SAML SSO. That might not seem like much, but knowing just the e-mails (or GUIDs) is actually quite enough, as one can use Microsoft Graph to query more data using those. And for the actual analytics purposes that data can then be visualized/presented using Matplotlib charts.
Read more -
LDAP authentication in ASP.NET Core MVC
2022-06-16 | 23 min readWe needed to make a (yet another) internal portal/website for employees, but this time, as that would be an internal resource, we decided to utilize users accounts data provided via LDAP by our office’s Active Directory, instead of (yet again) implementing “local” user identities like we did before with MySQL and PostgreSQL.
(Of course) we chose ASP.NET Core MVC for making the portal. And as both ASP.NET and Active Directory have been around for a while, and given the fact that both come from the same vendor, one would expect that implementing Active Directory users authentication via LDAP in such a setup to be a well-known topic with detailed documentation, examples and a lot of tutorials available. But as fucking usual, it’s not quite like that.
Read more -
Querying astronomy databases in ADQL via TAP
2022-02-26 | 35 min readThere are several astronomy databases that store various information about space objects such as stars and planets. Some (most?) of those databases expose their data via TAP interface, so it can be queried using ADQL.
Here I’ll be telling about how to get data from such sources and what sort of issues/problems one can encounter.
Read more -
Conan and resolving dependencies in a C++ project
2022-02-06 | 24 min readLike many other teams, we have a fair amount of 3rd-party dependencies in our project (a C++-based SDK, that is). Like fewer other teams, we store those dependencies source code right in our project repository and we build them together with the project sources every time. This is of course a tremendous waste of time and CPU cycles, as it would be much more efficient to build dependencies just once (per version) and link to already pre-built binaries.
But where to store pre-built dependencies and how to fetch the correct variants for various platforms, toolchains and configurations? Our investigation on the matter led us to Conan package manager.
Read more -
KeePass as internal secrets storage for a team
2022-01-13 | 11 min readFor a long time in our team we’ve been storing logins, passwords, keys and other things like that in personal password managers or just plain-text files, spread around people’s machines, and no one had the full set. Finally, we decided to stop this chaos and start using one common passwords database.
Having evaluated several options, we chose KeePass. It’s not exactly meant for multi-user usage, but we came up with some sort of workaround.
Read more -
Electric car in Norway, leasing BMW i3
2021-12-16 | 37 min readA couple of years ago we came to a point when having a car had become more of a necessity than a luxury. Having spent about a year to get norwegian driving license, we entered a leasing contract for a new BMW i3.
Here I’ll be talking about the leasing process and in general about the experience of owning an electric car in Norway.
Read more -
Making a deb package with CMake/CPack and hosting it in a private APT repository
2021-09-23 | 19 min readLast time I needed to handle a C++ library project with CMake. This time I was tasked with creating a deb package for one of the libraries in our SDK.
And what would you know, CMake can handle packaging too - with CPack utility.
Read more -
Qt for WebAssembly and custom OpenGL via QQuickFramebufferObject
2021-08-29 | 13 min readIt is amazing what kind of crazy ideas people might come up with. One of our users decided that they want to use our visualization engine inside their Qt application on Windows and Linux (so far so good) and also to build a version for WebAssembly to target web-browsers (fucking hell).
Very surprisingly to me, this actually works!
Read more -
Azure DevOps Artifacts package promotion
2021-07-21 | 12 min readSome time after we started to publish our packages to Azure DevOps Artifacts, users told us that they cannot see new versions of the packages until those are “promoted to Release view”. And indeed, there is a concept of “views”, and packages can be “promoted” to certain views:
Apparently, that is the case when someone consumes packages not directly from your feed, but from their own feed with your feed being an upstream source.
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