tabs ↹ over ␣ ␣ ␣ spaces

by Jiří {x2} Činčura

WUG Days 2020

17 Oct 2020 2 mins Presentations & Speaking

Už zanedlouho tu bude další ročník WUG Days (21.-23.10.). Tentokrát jak jinak než online a stále zdarma. Pro mě trochu brutálnější, protože bylo vybráno celkem 5 mých přednášek.

DotFest 2020: Using Roslyn to improve your codebase

13 Sep 2020 1 mins Presentations & Speaking

The DotFest conference, part of HardFest conferences, is going to happen 16-17 October online (which is little bit sad, because I’d like to visit Novosibirsk, from where the conference will be streamed) and I’ll be talking about Using Roslyn to improve your codebase. Basically taking advantage of Roslyn’s open design where you can use various pieces of the whole compiler platform and create your own tools with the full power of “compiler” i.e. sematic analysis.

Svitla Smart Talk: Most Common Mistakes in Using Tasks and in Asynchronous Code

13 Sep 2020 1 mins Presentations & Speaking

I’ll be talking about Most Common Mistakes in Using Tasks and in Asynchronous Code as part of Svitla Smart Talk event. It will be streamed 22 September, 19:00 (Kyiv time/UTC+3) and it’s free. There’s a generous 30 minute window for Q&A at the end and I’ll try to asnwer as much questions as possible. You can register here. Hope to see you there.

.NET DeveloperDays 2020

31 Aug 2020 2 mins Presentations & Speaking

I’m so looking forward to this year’s .NET Developer Days. I think it’s my favorite conference of the year. The current state of the world is not best for conferences, but I hope the #netdd is going to happen at least as planned now. And although the conference is now also online, if the situation permits, I’ll try to be there in-person.

Running ASP.NET Core app on Azure B1ls VM (penny pinching)

27 Aug 2020 3 mins .NET Core, Azure, Azure VMs

Although I usually try to avoid IaaS services as much as possible, for this side project I needed to expose Kestrel webserver directly and hence the obvious choice for hosting web app – the App Service – wasn’t an option. So I went for a VM. And given it’s a side project, I also wanted to run it cheaply. And why not to try to go all out with B1ls VM using Linux.

Projekt “Průvodce vývojářů”

26 Aug 2020 1 mins Uncategorized

Zhruba poslední rok v mé hlavě krystalizoval nápad. Nápad vznikl na dvou pilířích. První je opakující se potřeba firem, kterou jsem potkával na různých konzultacích a školeních, na něco v podobě out-of-company (nebo možná out-of-box) review, konzultace, nápady nebo prostě jen nějaká forma možnost si s někým promluvit a ujasnit si problém nebo řešení. Druhý pilíř je kontinuální, po částech dávkované, vzdělávání a udržování teamu up-to-date.

Výsledkem je projekt Průvodce vývojářů. A abych tady neopisoval to, co už jsem jednou sepsal, můžete si všechny detaily přečíst na

SQL Server Bootcamp 2020

9 Aug 2020 1 mins Presentations & Speaking

Na letošním SQL Server Bootcampu, který se koná online, se budete moci dozvědět něco o databázových enginech Firebird a Microsoft SQL Serveru v přednášce “Porovnání Firebird a Microsoft SQL Serveru”, kterou jsem připravil společně Vladimírem Mužným.

Exploring top-level statements in C# 9

11 Jun 2020 4 mins C#, Roslyn

I wanted to know how is the top-level statements feature in C# 9 handled and what’s actually produced. Although I originally planned to do just a quick test and the look at the IL, I kept testing the feature more and more.

🔥 “tabs over spaces” buff

3 Jun 2020 2 mins Life, Merchandise

Almost exactly a year ago I was sitting in a restaurant after Update Days: Corestart 3.0 conference with my ↹ over ␣ ␣ ␣ shirt facing Olia Gavrysh, Program Manager at .NET team in Microsoft. And she mentioned how she liked the shirt (and that Immo Landwerth, another Program Manager in .NET team would like it too (maybe that was a sarcasm)) and that I should make the shirt available for buying.

Removing explicit default access modifiers in Visual Studio using EditorConfig

2 Jun 2020 1 mins .NET, C#, Visual Studio

Almost five years ago I wrote post Removing explicit default access modifiers (Roslyn analyzer and codefix) and it was a great exercise and I still prefer to have code without all the private, etc. noise. But also nowadays Visual Studio supports all sorts of code style rules via EditorConfig file. Can I teach Visual Studio to actually suggest removing explicit default access modifiers?

Delete button in resource group in Azure portal

29 May 2020 1 mins Azure

I don’t know whether this has been in the portal “forever” and I never noticed or if it’s a new thing. Anyway, it’s a nice feature and I’m enjoying it, so I might as well share that with you.

Glorious day as a trainer and conference speaker

26 May 2020 5 mins Life

Today was a crazy – rollercoaster like – day. Let me tell you all about it even though it’s about 7 o’clock in the evening now and I’m very tired. I feel like this clown on my daughter’s desk.

I miss using email

19 May 2020 4 mins Email, IM, Skype, Teams

I miss good old email. You know the tool that anybody can reach you at, you can use any tool you want and basically can do anything with it yourself.

Let me give you bit of “messaging” history from my own world and I’ll circle back to email at the end.

Zlepšite si svoj zdrojový kód pomocou Roslyn-u (KROS Dev Meetup ‎#3)

6 May 2020 1 mins Presentations & Speaking

Vypadá to, že místní svět si na remote spolupráci zvyká a přizpůsobují se i konference a jiné akce. Nezahálí ani KROS Dev Meetup a v jeho třetí edici tam povím něco o možnostech zlepšování kódu pomocí Roslynu. Takže si nezapomeňte přidat do kalendáře 19.5 v 18:00. Kromě mě, bude jestě druhá přednáška na téma “Automatické End-to-End testy”.

Gopas TechEd 2020 (online)

27 Apr 2020 1 mins Presentations & Speaking

Situace zrovna konferencím nepřeje, ale každoroční TechEd bude a bude online, a víceméně už za týden. Připravil jsem dvě přednášky (jednu společně s Vladimírem Mužným).

FbNetExternalEngine 4.1 released – bit of performance and NuGet

31 Mar 2020 1 mins .NET, Firebird

FbNetExternalEngine version 4.1 is released. Although it might look odd having another release so close after the previous, it’s not a bug-fix release. In fact when I released 4.0 I knew 4.1 is probably going to happen soon after. The reason is, I had some performance optimizations prepared, but didn’t had enough numbers to safely put into production. Now I have.

Real world experience with FbNetExternalEngine performance and code structure

30 Mar 2020 4 mins .NET, Firebird

I’m now going through piece of SQL code that contains a lot of stored procedures from over the years and lately also functions (in last year the migration to Firebird 3 really began) and looking into the code to identify functions and procedures to start the rewriting with using FbNetExternalEngine. I’m at the beginning, but I have some interesting piece I’d like to show.

Comparing disk speed of various disks and VMs in Azure

5 Mar 2020 8 mins Azure, Azure VMs, Cloud

For an estimation and planned move of some resources to Azure, I had to do comparison of various VMs and disks. It’s not meant to be exhaustive with all possibilities. Just some numbers one can compare.

Azure Functions billing in the absence of function/host key

1 Mar 2020 1 mins Azure, Azure Functions, Cloud

You might be wondering: “Am I going to be charged when somebody invokes my Azure Function but with wrong or missing key?". Well, some of the attendees on my currently running Azure course had the same question. And I thought it might be worth sharing the answer publicly.

WUG: Jak měřit výkon .NET kódu správně (Praha)

21 Feb 2020 1 mins Presentations & Speaking

Každý potřebuje občas měřit rychlost kódu, že jo? Někdy pro porovnání dvou různých verzí, někdy v rámci optimalizací. Ale jak to udělat správně. A co to vlastně znamená “správně”? Jestli vás toto zajímá, přijďte 26.2.2020 na WUG.

Using Fibaro Wall Plug to monitor water pump and pressure tank in my house

12 Feb 2020 2 mins Domoticz, IoT, Z-Wave

Primary source of water in my house is a water well. That means I have a pump down there and a pressure tank in the house. And I like to keep an eye on both of these. With a little bit of ingenuity and the Fibaro Wall Plug I have a simple DIY solution.

MS SQL’s ISDATE function on Firebird

23 Jan 2020 1 mins Firebird, MS SQL Server, SQL

MS SQL has an ISDATE function that “returns 1 if the expression is a valid date, time, or datetime value; otherwise, 0”. Although I never used it or had a scenario for it, I was porting some code from MS SQL to Firebird and this function was used, hence I had to create it.

Firebird Conference 2019

12 Oct 2019 2 mins Firebird, Presentations & Speaking

After a small pause in every-year Firebird conferences, filled with few “seminars”, the Firebird Conference is back. This year in Berlin, Germany.

Throwing null literal

19 Sep 2019 1 mins C#

“Every” week I discover something new (and I’m not afraid to share it). Today isn’t any different. Apparently, C# compiler is fine with code throwing null literal. Yes, it looks weird, but if you think about it, it makes sense. Let me show you.

WUG Days 2019

12 Sep 2019 1 mins .NET, .NET Core, C#, Multithreading/Parallelism/Asynchronous/Concurrency, Presentations & Speaking

Už se jen dvakrát vyspíme a bude tu další ročník WUG Days (14.-15.9.).

Hlasováním a odborným výběrem byla vybrána 4 😮 moje témata.

Convenient method for explicit lazy loading in Entity Framework Core (or Entity Framework 6)

2 Sep 2019 1 mins Entity Framework, Entity Framework Core

Last week I was explaining explicit lazy loading on Entity Framework Core and quite understandably the question came about shortening/encapsulating the code, because you might need to use it a lot in some cases. It’s possible and luckily the method can also benefit from overload resolution in C# to handle reference and collection navigation properties transparently.

.NET DeveloperDays 2019

31 Aug 2019 2 mins Presentations & Speaking

If you’re not yet registed for this year’s .NET Developer Days, where I’ll be speaking, you’re going to regret it. Here are (my) 3 reasons.

Entity Framework Core’s ultimate escape hatch

14 Aug 2019 4 mins Entity Framework, Entity Framework Core

In 2007 then Principal Software Architect on Data Programmability team Mike Pizzo wrote in a “random” forum reply about Entity Framework’s DefiningQuery being the “ultimate escape hatch”. This was later mentioned in Julia Lerman’s famous book Programming Entity Framework. Just to make sure you understand this archeology (and yes, I spent quite some time digging the reply back – kudos to MSDN forum people keeping it still running), Entity Framework (the first version) was released in 2008.

Friday’s This<T>

25 Jul 2019 1 mins C#

Last week on Friday I was working on some code, I don’t even remember what it was, and there was excessive usage of this. And my personal pet peeve is writing most readable code in most succinct way possible. For sure this hurts this (no pun intended). The following class is a result of that Friday’s frustration.

Introducing D.ebug

10 Jul 2019 2 mins .NET, .NET Core, Debugging

Lately I’ve been doing a lot of debugging often in code that needs to be executed certain way, from certain place and sometimes is also modified post-build a little. And sometimes more stuff, which I’ll not bother you with. And this makes debugging a tiny bit more difficult.

Empty try with finally

10 Jun 2019 8 mins .NET, .NET Core, C#

The finally block has a little unknown feature, that frankly isn’t even remotely needed for regular day-to-day development, but you already know content on this blog is usually little geeky.

Generics, structs and nulls – the JIT is smart so you don’t have to

7 May 2019 2 mins .NET Core, JIT, RyuJIT

Few days back I learned geeky little piece about JIT. This is exactly the type of knowledge you don’t have to use, maybe ever, yet it’s crucial the JIT handles it (so you don’t have to), because every smart instruction is performance gained. Literally, every instruction or every CPU cycle counts.

Update Days: Corestart 3.0

6 May 2019 1 mins Presentations & Speaking

.NET Core 3.0 se blíží a s ním i další várka změn a novinek. A protože jde o další major verzi, není toho málo. Tomáš Herceg a jeho team připravili konferenci Update Days: Corestart 3.0, která se koná 6. – 7. června 2019.

Comparing speed of Blob Storage, AppService and CDN on Azure for static file serving

30 Apr 2019 3 mins AppService, Azure, Azure Storage, CDN, Cloud

For no particular reason and with no particular goal I decided to see how “fast” some selected services, with the ability to serve a static file, on Azure are. I was interested in the time to serve the file and requests per second. The services I selected are AppService in B1 and S1 plan, Blob Storage GPv2 and CDN in Standard plan from Verizon and Microsoft.