The Blog

rss feed

...
  • By Ivan Gavryliuk
  • In Git  |  VS Code
  • Posted Wednesday, March 20, 2019

Browsing Git History in VS Code

VS Code has no built-in functionality for browsing git history, as I've discovered today. However, this awesome extension adds it, and is just superb! You can browse repo history, file history, compare files between com ...

Read more
...
  • By Ivan Gavryliuk
  • In Life
  • Posted Saturday, February 16, 2019

This developer's life

You should listen to This Developer's Life podcast series by Scott Hanselman. It is life-changing. ...

Read more
...

Integrating Serilog with Azure Functions and Application Insights

Serilog traditionally doesn't have support for Azure Functions, however there is an awesome Sink Project that I now maintain that allows to add Application Insights integration with Serilog. It's mostly self explanatory, however it's ...

Read more
...

Hosting your home server with your own Dynamic DNS (GoDaddy)

I'm a geek. I have a home (on premise!) server running Linux used for a lot of experimentation and runs a lot of software I had to otherwise pay for when using a public cloud. And I'm building another two thanks to one of my friends who gave away two powerful servers he doesn't use. And I'd like t ...

Read more
...

Azure Service Fabric Mesh Course

I'm excited to announce that last week my course on Azure Service Mesh went live on Pluralsight ...

Read more
...

Parquet.Net 3.2.0 Released

Parquet 3.2.0 is released which marks a new stage in powerful capabilities of serializing C# classes to parquet files. Serialization is one of the original Parquet.Net features no one else amongst other parquet implementation supp ...

Read more
...
  • By Ivan Gavryliuk
  • In C#
  • Posted Tuesday, October 16, 2018

Buffer Memory Pools in .NET

System.Buffers is a relatively new addition to C# ecosystem. It's one of the helper parts for .NET runtime to improve your work with memory. It's not a language feature, not it's a part of a specific runtime, but was invented by .NET Team as a standalo ...

Read more
...
  • By Ivan Gavryliuk
  • In Productivity
  • Posted Wednesday, October 10, 2018

Making Windows Terminal Pretty

Modern Windows 10 terminal is pretty and more powerful than it's previous versions, you get proper copy-paste support, line wrapping, transparency etc. It sort of makes other helper terminals almost useless. I've been using ConEmu for quite a few ye ...

Read more
...

What's coming in Parquet.Net 3.1

Parquet.Net is about to be released in the following few days. Since v3.0 was pushed to the public, it saw a lot of interest and appraisal for it's incredible performance boost, however there were problems as well. To reiterate, v3.0 was a comple ...

Read more
...

Decomposition Techniques in Software Architecture

Decomposition is an important part of software architecture process. Especially if your system is relatively large, however this is not a limitation. Decomposition is a process of splitting your system in smaller chunks, because as people we work better by working on smaller separate tasks, rather ...

Read more
...

Using Azure Monitor Programmatically

Azure Metrics enables you to gain visibility into the performance and health of your Azure workloads. Metrics (or performance counters) are emitted by most of the Azure resources and the best thing about them (IMHO) is that they don't need to be enabled explicitly, they are always available and av ...

Read more
...

Configuring Auzre Service Fabric with Environment Variables

Configuring Azure Service Fabric applications was always a bit of a pain. I'm not entirely sure why, is this because of it's age? Or backward compatibility? But the truth is, editi ...

Read more
...

Azure Service Fabric Course

I'm happy to announce that I've published the first Pluralsight course Understanding the Programming Models of Azure Service Fabric. This course is aimed at a ...

Read more
...

Apache Parquet on .NET

Preamble If you are in Big Data, you know about Apache Parquet format. It's a de facto standard for storing enormous amounts of data on big data processing clusters like Apache Spark. What's making it so good is all data stored as bi ...

Read more
...

NuGet Versioning Hell

In this post I'd like to point out why proper versioning of your .NET assemblies is important and how easy it is to get into NuGet versioning hell. First, a bit of a background how .NET versioning works. Assembly Version Markers If you have ever looked into AssemblyInfo.cs you've notice ...

Read more
...
  • By Ivan Gavryliuk
  • In PowerShell
  • Posted Monday, October 3, 2016

My PowerShell Journey

I've never been a fan of command line. I still think it's just too much hassle, typing bores me, I'm a visual person. I like properly thought out fast user interfaces with keyboard shortcuts, my preferred way. Unfortunately, we don't have many these days. A recent trend is to do everything in ...

Read more
...

Setting up FTP server on Microsoft Azure

Microsoft Azure doesn't have a managed FTP service, which I needed today to simulate integration with legacy systems. However, it's really easy to set up by yourself. All you need to do is create a Ubuntu VM, even A0 instance is enough, and it costs something like £8 a month. If you are cheap like ...

Read more
...

Deploying Azure Functions with Application Insights via ARM

Recently I've started playing with Azure Function for real, end-to-end, pushing it to the limits, but that's another conversation. My last mile in mastering them was automatically creating necessary resources in Microsoft Azure via ARM templates. Functions in essence need 4 resources: Azure ...

Read more
...
  • By Ivan Gavryliuk
  • In Visual Studio
  • Posted Thursday, January 31, 2019

Visual Studio Tip - Solutions and Folders

Did you know that by default Visual Studio displays solutions in something called a "solution explorer view"? For instance, I have a solution (an example from Storage.Net) that is organised into solution folders, the default. On the file system it's organise ...

Read more
...
  • By Ivan Gavryliuk
  • In Pluralsight
  • Posted Friday, January 11, 2019

How I write my Pluralsight courses

So far I've released three Pluralsight courses and this experience was just awesome. Writing courses is definitely not easy, in fact it's really difficult. It's definitely not enough to know a subject very well, because when it comes ...

Read more
...

Azure Dashboard Time Ranges

The new feature of Azure Portal dashboards is amazing - you can set the time range for all your custom AI queries right in the portal. Before that you had to always go either into analytics portal, or set date ranges in queries, which used to work completely randomly, sometimes it would show up fo ...

Read more
...

Reading and Writing Parquet Files in Different Languages

Python In python, the easiest option is to use fastparquet package. If you're using conda simply type: conda install fastparquet Fastparquet is an amazing python implementation and is my personal favorite. It's ease ...

Read more
...

Common Problems installing Service Fabric locally

Since Service Fabric released a few updates to their SDK user have frequently seen problems that local cluster won't start. Sometimes it will just fail, and sometimes take a lot of time, start and hang. Here are a few workaround you can try to resolve this situation. Service Fabric cluster s ...

Read more
...

What's new coming to Parquet 3.1.2

v3.1.2 will be the next minor release of Apache Parquet for .NET and is mostly around improving row-based utilities. It's also launches the first steps towards integrating this library with JSON, specifically Table and Row classes' .ToString() method by default will now produce a multiline J ...

Read more
...

Azure Service Fabric Rocks!

I'm really excited to release a new course on Azure Service Fabric called "Using Azure Service Fabric in Production". It's released on Pluralsight and available for your pleasure. A lot of work has ...

Read more
...

What's wrong with Parquet.Net v2

Apache Parquet for .NET has come a long long way since the original idea in June 2017 (the first commit backdates to June 5). V1 ...

Read more
...
  • By Ivan Gavryliuk
  • In C#
  • Posted Wednesday, January 3, 2018

How to Extract a ZIP Archive in Parallel

These modern days .NET Plarform has a built-in support for ZIP archives in System.IO.Compression Namespace. I find it exciting as there is no need to depend on a [popular third-party library](https://icsharpcode.githu ...

Read more
...
  • By Ivan Gavryliuk
  • In Docker  |  Containers
  • Posted Tuesday, November 28, 2017

Docker for .NET Core Developers - from Zero to Hero

I've decided to write this post as I'm seeing a lot of developers having diferent opinions about Docker and as I'm more interested in modern .NET rather than other platforms, I wanted to shed some light on this topic. What Docker is ...

Read more
...

Creating Azure Key Vault for programmatic access

Azure Key Vault is a wonderful technology I've just discovered. I'm only looking at secrets as of now as this is something I was interested in for a few reasons. One of my current problems in cloud world is storing configuration. In .NET we would usually deploy some form of app.config file within ...

Read more
...
  • By Ivan Gavryliuk
  • In Automation  |  VSTS
  • Posted Monday, April 10, 2017

How to get a free unlimited VSTS build server

Did you know Visual Studio Team Services (formerly known as TFS) are great? Just two years ago I wouldn't consider it as my automation platform because frankly there were better players on the market, including Jenkins and [Team ...

Read more
...

Creating a simple Blog Engine

We used to have a blog on WordPress for some time and wordpress is OK. My only problem was that every time I'd like to write about something I wouldn't because of WordPress and it's special behavior. Inserting code snippets is extremely hard even with rich plugin ecosystem. Writing posts is ha ...

Read more