19 Feb 2021
1 mins
Presentations & Speaking
Azure Storage je tak nějak moje oblíbená služba. A za ty roky co existuje jsem nasbíral a taky náhodou objevil hromadu zajimavých vlastností, o kterých možná nevíte nebo nevíte jak je použít. No a tak se na ně podíváme na WUGu 18.3.2021 od 17:00.
18 Jan 2021
1 mins
Presentations & Speaking
Máme tu rok 2021 a vypadá to, že se bez in-person akcí budeme muset ještě chvíli obejít. Aby se nám to lépe přečkalo pojďme se společně podívat na funkcionalitu “event counterů” v .NET/.NET Core na WUGu 21.1.2021 od 17:30.
11 Jan 2021
3 mins
Home Automation, IoT, Z-Wave, Zigbee
In programming we like stateless pieces of code, immutable data structures, functional composition, etc. and we value languages, libraries and environments designed with this in mind. Home automation is complete opposite.
5 Jan 2021
4 mins
AMD, ASUS, Hardware, Kingston, Noctua, Nvidia, PC, Samsung, SSD
During December I finished building my new PC. My previous PC was not terribly dated or slow (and continues to be used by my wife), but I felt it’s favorable time for update. It’s not balls to wall build, rather something I think is good for my workflow – mostly development and related tasks. I don’t edit movies, stream (or play for that matter) games, etc. I describe each component (in no particular order) and my reasoning why I chose it, your mileage may obviously vary.
4 Dec 2020
1 mins
.NET, C#, Databases in general, Entity Framework, Entity SQL, Firebird, LINQ, SQL, Visual Studio
New version 7.10.1.0 of ADO.NET provider for Firebird is ready for download. This a small fix for a bug that slipped through the 7.10.0 release.
4 Dec 2020
1 mins
.NET, C#, Databases in general, Entity Framework, Entity SQL, Firebird, LINQ, SQL, Visual Studio
New version 7.10.0.0 of ADO.NET provider for Firebird is ready for download. This release brings support for new datatypes in Firebird 4 and various improvements across the codebase.
18 Nov 2020
1 mins
Presentations & Speaking
Next week the .NET Developer Conference is happening. As an online event obviously. And I’ll deliver half-day workshop there. The topic is Tasks and async/await from the ground up.
11 Nov 2020
1 mins
.NET
I recently realized, the difference between =>
and { get; } =
for properties might not be as known as everybody thinks, based on code I saw multiple times.
9 Nov 2020
1 mins
Presentations & Speaking
I have to say, Belgium has a special place in my heart, so when my session for DevDay.be was accepted, I was happy. I would be happier if the conference would be in-person, but 2020 is what it is. Anyway. 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.
4 Nov 2020
1 mins
.NET
While reading some code in .NET runtime, I found Environment.ProcessId
property, which surprised me a bit, because I had no idea it existed. Quick look into the documentation and no wonder I had no idea. It’s new in .NET 5.
27 Oct 2020
3 mins
Entity Framework Core
Last week, when speaking at .NET Developer Days, I got a question about the query cache in Entity Framework Core – is it shared across DbContext
s or is it per instance? With this question I realized I know how the cache work(ed) in Entity Framework 6, but I’m not entirely sure how it’s done in Entity Framework Core. Time to explore! And you can go with me.
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.
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.
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.
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.
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.
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 PruvodceVyvojaru.cz.
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.
4 Aug 2020
4 mins
.NET, .NET Core, C#
I one of APIs I was working a while back I needed to return an empty collection. It was not a performance critical code, yet I decided what would be the best way to do it. Exploring and learning.
29 Jun 2020
1 mins
C#
I was reading Stephen Cleary’s A New Pattern for Exception Logging blogpost and the True
and False
methods caught my eye and I wanted to write them as “oneliners”.
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.
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.
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?
1 Jun 2020
1 mins
Presentations & Speaking
Tentokrát tu mám jednu pozvánku na akci, kterou si můžete trochu netradičně naladit na svých přijímačích ráno a udělat si společně s mou maličkostí informacemi nabitý start dne ve vašem homeofficu. Jedná je o akci “Raňajky s GOPASom: Optimalizácia v .NET (jednoducho a isto)” tento čtvrtek od 9:00.
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.
28 May 2020
1 mins
Presentations & Speaking
Online akce teď na WUGu jedou a vypadá to, že se nebude polevovat. Takže, aby data tekla a linky se žhavily, připravte routery 2.6.2020 od 17:30 na WUG. Povíme si něco o tom co je Azure Front Door a tak okolo.
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.
25 May 2020
1 mins
Presentations & Speaking
Starting tomorrow, for two days, the Cloud Developer Days is going to be held online. And it’s free. I was lucky to have two sessions selected and I hope to meet you on chat.
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.
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”.
1 May 2020
1 mins
Firebird
Firebird 3 added support for transaction ID to go over, originally, 231 and later 232, all the way up to the 248. Although a great improvement it might become a problem if the client library can’t properly handle that in a few places where these numbers are surfaced.
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).
23 Apr 2020
1 mins
.NET, Firebird
FbNetExternalEngine version 4.5 is released. This version contains improvements around Management procedures.
15 Apr 2020
1 mins
Presentations & Speaking
Když už teď IT, webkamerky a mikrofony drží pro většinu lidí soustruhy v chodu, tak proč nezkusit něco online i v rámci WUGu… V úterý 21.4.2020 od 18:00 si zkusíme povědět něco o relativně novém datovém typu Span<T>
.
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.
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.
24 Mar 2020
1 mins
.NET, Firebird
FbNetExternalEngine version 4.0 is finally here. This version contains one significant feature and that’s migration to .NET Core.
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.
3 Mar 2020
3 mins
C#, Functional programming
Some time back I wrote about Head- and Tail-like methods in C# (and F# and Python and Haskell). For some strange reasons I came across the Sum
method I wrote there and I thought maybe I can rewrite it with switch expression now available in C# and have a nicer looking code. I mean I’m a big fan of succinct (yet still readable) code. But I had no idea what a journey it will be.
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.
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.
20 Feb 2020
2 mins
Azure, Cloud, Twilio
It was a nice workweek evening and for testing I needed simple HTTP GET endpoint that would send SMS via Twilio for testing of really weird integration in my “home automation”. As fast and as easy as possible. Sounds simple, right? Sadly, my brain being fogged by all the cloud goodness couldn’t see the forest for the trees.
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.
6 Feb 2020
1 mins
.NET, C#, Databases in general, Entity Framework, Entity SQL, Firebird, LINQ, SQL, Visual Studio
New version 7.5.0.0 of ADO.NET provider for Firebird is ready for download. This release brings support for Entity Framework Core 3.1 (3.1.1 to be precise), Entity Framework 6.4 and some small bug fixes.
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.
7 Jan 2020
1 mins
Presentations & Speaking
Společně s Vladimírem Mužným si už zítra střihneme náš duet s názvem “Entity Framework vs. SQL Server – co jste mohli udělat a neudělali; a co jste dělat neměli a přesto udělali” na WUGu v Brně. A protože je to duet, bude to dvojnásobné množství informací, tak neseďte doma a přijďte.
7 Nov 2019
1 mins
.NET, .NET Core, C#
Have you ever thought about the most basic structure of an application? The main method and its placement in Program
class…
14 Oct 2019
6 mins
.NET, .NET Core, C#
Have you ever looked how anonymous classes are implemented? If you did, you know it’s a generated generic class. And if you didn’t, you know now. Either way, you can find more details below. But also building on top of previous post about generic parameters limit in generic classes, where’s the limit here? It surely cannot be higher.
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.
4 Oct 2019
3 mins
.NET, .NET Core, C#
Pretty stupid question, right? Because if it’s more than, say, 20 or 100, it’s enough. But still. Where is the limit?
3 Oct 2019
1 mins
.NET, Firebird
FbNetExternalEngine version 3.0 is another step towards more useful .NET execution environment inside Firebird. Version 3.0 contains two significant pieces. The first, new, is ability to execute SQL statements inside the same context (aka transaction) as the currently executing code. The other is performance; there’s always room for performance improvements.
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.
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.
5 Sep 2019
1 mins
.NET, C#, Databases in general, Entity Framework, Entity SQL, Firebird, LINQ, SQL, Visual Studio
New version 7.1.1.0 of ADO.NET provider for Firebird is ready for download. This a small bug-fix release related to wire encryption on Linux.
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.
2 Sep 2019
1 mins
.NET, C#, Databases in general, Entity Framework, Entity SQL, Firebird, LINQ, SQL, Visual Studio
New version 7.1.0.0 of ADO.NET provider for Firebird is ready for download. The main focus of this release is performance.
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.
15 Aug 2019
1 mins
.NET, C#, Databases in general, Entity Framework, Entity SQL, Firebird, LINQ, SQL, Visual Studio
New version 7.0.0.0 of ADO.NET provider for Firebird is ready for download. The main focus of this release is wire encryption.
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.
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.