tabs ↹ over ␣ ␣ ␣ spaces

by Jiří {x2} Činčura

Enumerating over Select’s index

15 Feb 2024 2 mins .NET, C#

My mind was wandering, as usual when it is not 100% occupied, and I remembered that the Select LINQ function has an overload that gives you the index into the enumeration and it uses an int. So, I thought what’s going to happen if I have longer enumeration and it goes over the range of the int?

WUG: .NET Conf 2023 – Live Stream

9 Nov 2023 1 mins Presentations & Speaking

Trhák letošního roku – .NET 8 – 14.11. v premiéře ve Zlíně s celebritami. Řečeno normálně, společné sledování keynote .NET Conf 2023 v rámci WUGu ve Zlíně, následná diskuze s experty a také neformální hospoda. Lepší úterní večer asi těžko vymyslíte (nebo nejste opravdový geek 😄). Tak doufám, že se tam uvidíme.

Mastering Entity Framework Core workshop and Techorama (NL) 2023

24 Sep 2023 2 mins Presentations & Speaking

After the Belgium version Techorama is going to Netherlands, in October 9-11.

I’ll deliver workshop called Mastering Entity Framework Core – basically in something like 8 hours I’ll try to teach you Entity Framework Core all the way into “monk” level. It will be a lot of stuff, but also lot of fun.

Besides the workshop, I’ll also have two sessions Autoincrement (identity) is not the only option for primary keys and What’s new in Entity Framework Core 7 (abstracts below).

C# class named “end”

11 Aug 2023 1 mins C#

I was today’s years old when I realized I can create class named end in C#.

Gopas TechEd 2023

21 May 2023 1 mins Presentations & Speaking

Příští týden se bude konat Gopas TechEd. Letos jsem připravil 3 přednášky.

Solving Logitech Brio flickering and crashing my PC

3 May 2023 2 mins Hardware, USB, Webcams

For my day to day calls I’m using Logitech Brio webcam. It provides very decent picture quality and I like using Windows Hello for unlocking my PC. But I was experiencing major issues. Here’s a (weird) solution that worked for me.

Warsaw IT Days 2023

30 Mar 2023 1 mins Presentations & Speaking

This Saturday I’ll be speaking at Warsaw IT Days 2023. One sessions What’s new in C# 11 will be in-person in Warsaw, while other C# Source Generators – let the machine do the programming is VoD.

Tigo’s support is beyond amazing

19 Feb 2023 2 mins Life, Solar

I recently put Tigo optimizers under remaining solar panels on my roof and also equiped my system with CCA (and TAP). During the whole process I contacted support few times and I was blown away by the quality of it. I don’t think I’ve ever had such an overwhelmingly good experience dealing with support.

WUG Days 2023.1

30 Jan 2023 1 mins Presentations & Speaking

Včera se konala konference WUG Days 2023.1. Měl jsem jednu přednášku se jménem What is QUIC protocol and how we can use it from .NET. Níže je ke stažení prezentace a demo.

Task<IDisposable> surprise

15 Dec 2022 1 mins .NET, C#

This combination of Task and IDisposable surprised me quite well. And yes, it’s my fault. As usual.

Having fun with C# 11 raw string literals

29 Nov 2022 3 mins C#, Roslyn

The feature I’m most excited from freshly released C# 11 is raw string literals. You can read about the feature more here. In this blog post I’m going to try some limits. For fun. And learning.

MS Tech Summit 2022

28 Nov 2022 1 mins Presentations & Speaking

I’ll be speaking on MS Tech Summit 2022 (online) this Friday. I’ll present two sessions: What’s new in C# 11 and Azure Spot instances as your secret weapon.

STAThread and async Main gotcha

15 Nov 2022 2 mins .NET, C#, WinForms

This took me quite a while to debug, because I was constantly wrongly assuming my threading and synchronization context handling was wrong. At the end of the day it was very simple, I just couldn’t see the forest for the trees.

My C# array, tuple, delegate declaration dilemma

14 Nov 2022 2 mins C#

I usually create arrays like this. Nothing fancy. And most people around me use the same. I would even say it’s kind of a standard way in C#.

var data = new[] { 1, 2, 3 };

But today I realized, you can also use this (target-typed new expressions) when using arrays.

ADO.NET provider 9.1.0.0 for Firebird is ready

8 Nov 2022 1 mins .NET, C#, Databases in general, Entity Framework, Entity Framework Core, Entity SQL, Firebird, LINQ, SQL, Visual Studio

New version 9.1.0.0 of ADO.NET provider for Firebird is ready for download. This release adds new features here and there and also some bug fixes. Notable features are support for parallel workers (planned for Firebird 5) and support for “at number” for snapshot transactions.

WUG Days 2022 a SQL Server Bootcamp 2022

12 Sep 2022 1 mins Presentations & Speaking

Tento týden se konají dvě akce, kde budete mít možnost poslechnout si několik mých přednášek.

První v pořadí je SQL Server Bootcamp 2022, kde si budete moci poslechnout Autoincrement (identity) není jediná možnost jak generovat PK. Následovat bude WUG Days 2022, kde mám Entity Framework Core 7 – Co nás čeká, Co čekat od .NET 7 a C# 11 – Co nás čeká.

Easier nullable reference types errors instead of warnings

24 Aug 2022 1 mins C#, MSBuild, Roslyn

Three years ago (yes, I looked it up), I wrote a blog post about switching from warnings in NRT to errors. But it required manually adding codes for all the warnings (luckily thanks to Roslyn being open source, it’s not that difficult) and keeping that list up to date. But recently I found much simpler way.

Gopas TechEd 2022

9 May 2022 1 mins Presentations & Speaking

Příští týden se bude konat Gopas TechEd. Po několika letech online verzí, tentokrát v hybridním provedení. Letos si z mé strany můžete poslechnout jednu in-person i online přednášku a dvě čistě online.

Ask Jiri: Ukládání IP adres do databáze, plus IPv6

28 Apr 2022 1 mins Ask Jiri

Sometimes people ask me a question where the answer requires some kind of dialogue or follow-up questions and/or is too long to type. Thus, I’m trying new way of recording the conversation and then posting it for anybody to watch.

Sometimes it is in Czech (like this one), sometimes in English. Sometimes one person (and me), sometimes multiple.

Do you have an interesting question? Send me an email and let’s chat about it.

Now, here’s the recording:

Ask Jiri: Python očima .NETáka

14 Apr 2022 1 mins Ask Jiri

Sometimes people ask me a question where the answer requires some kind of dialogue or follow-up questions and/or is too long to type. Thus, I’m trying new way of recording the conversation and then posting it for anybody to watch.

Sometimes it is in Czech (like this one), sometimes in English. Sometimes one person (and me), sometimes multiple.

Do you have an interesting question? Send me an email and let’s chat about it.

Now, here’s the recording:

Techorama 2022

13 Apr 2022 1 mins Presentations & Speaking

I’ll be speaking at Techorama 2022 happening May 23-25. And I’m very excited about it. Over the last decade or so I was working with/for Belgium based company on and off, so Belgium has somewhat special place in my heart.

Two of my sessions were selected. First is C# Source Generators – let the machine do the programming and other is Performance with Span<T> for dummies (should I care?).

MS Stage conference

18 Feb 2022 1 mins Presentations & Speaking

I’ll be speaking on MS Stage (online) February 25th April 1st. I’ll show you what Source Generators are and how to create one yourself.

Attribute on attribute itself

10 Feb 2022 1 mins C#

Today I learned that you could use attribute, in C#, on itself. 🤯 Not sure why would I do that, but it’s cool.

What is the cost of casting in .NET (C#)?

8 Feb 2022 4 mins .NET, C#, Performance

As I was (at that moment) running out of ideas about optimizations in hot paths in FbNetExternalEngine, I turned my attention into other parts of code. And one piece that was doing casting on every call caught my attention. Could I make the casting faster? What is actually the cost of casting? Does it matter? I had to dive into it.

Pure magic in C# using tuples and relational patterns

2 Feb 2022 1 mins C#

As I was writing bunch of ifs today, I was thinking whether it would be possible to use pattern matching from recent versions of C#. To make things more interesting, I was comparing multiple values and it was not a simple equality. Blindly typing the code, I was very surprised Roslyn didn’t complain.

Simple WebSocket client and server application using .NET

24 Jan 2022 2 mins .NET, ASP.NET Core, WebSocket

Couple months back when teaching a course in Gopas, colleague William Ischanoe came to me and asked me, whether it would be possible to create a simple WebSocket server (and later client) in .NET. As far as I understood he wanted to use it to command process on victim’s computer (as he’s an expert in hacking and security). Might be useful for others as well, therefore I’m posting it here.

New Task.WaitAsync method in .NET 6

21 Jan 2022 1 mins Multithreading/Parallelism/Asynchronous/Concurrency

.NET 6 has this new handy method on Task called WaitAsync. It might not look like a big deal. Basically, the asynchronous version of Wait, right? Yes, but also it closes one gap that was often implemented poorly.

.NET Developer Conference ’21

1 Dec 2021 1 mins Presentations & Speaking

Few moments ago I finished my session on .NET Developer Conference ’21 (yeah, I forgot to make the post sooner). My session was C# Source Generators – let the machine do the programming. It was recorded and demos are attached below.

Operators with different color in Visual Studio

24 Sep 2021 1 mins C#, Visual Studio

When writing some code day or two ago I noticed one operator color in Visual Studio being different color than it usually is. I initially thought it’s a fluke in syntax highlighting that will eventually go away. When it didn’t, I decided to investigate.

.NET DeveloperDays 2021

15 Sep 2021 3 mins Presentations & Speaking

It’s again that time of the year when my favorite conference is about to happen. Yep, it’s .NET DeveloperDays time (and planned as in-person, yay!). You still have about a month to register and you should. I’ll have both the workshop and two sessions in main conference.