ADO.NET provider 8.0.1.0 for Firebird is ready
New version 8.0.1.0 of ADO.NET provider for Firebird is ready for download. This a small fix for a – sadly critical – bug that slipped through the 8.0.0 release. I recommend updating immediately.
New version 8.0.1.0 of ADO.NET provider for Firebird is ready for download. This a small fix for a – sadly critical – bug that slipped through the 8.0.0 release. I recommend updating immediately.
Last week I had AC installed into my house and the unit has Wi-Fi module as a standard option. That brings dilemma to my inner geekiness. As you might expect from me, I want to control the unit remotely my own way. Would the unit have only infrared remote control I would take some ESP8266 board (Wemos D1 Mini Pro is my favorite) and hack together my own infrared remote with simple API over the Wi-Fi. Because that would be the only way. But now I have two options. Oh my.
New version 8.0.0.0 of ADO.NET provider for Firebird is ready for download. This release is a big one. Huge.
As I’m thinking about the await using
and various usage patterns, my mind sometimes starts to wander into pieces like Task<IAsyncDisposable>
, Task<IAsyncEnumerable<T>>
and Task<IAsyncEnumerable<IAsyncDisposable>>
. And how to wrap that into await using
and await foreach
making some confusing combinations. This is what I was playing with, don’t expect anything specific.
It’s probably bit overdue, but I finally implemented checking for ConfigureAwait(false)
in my ConfigureAwaitChecker for await using
and await foreach
. Why now? I simply (finally) needed it. So, what’s new?
In last 24 hours I migrated from Disqus to utteranc.es because I’m done with Disqus. I didn’t mind it initially, but last few years I was more and more unhappy about it. Here’s why and how I migrated.
I’m now updating my ConfigureAwaitChecker to handle await using
and await foreach
(release soon, if you’d like to ask) and when trying to handle await using var
I was surprised how the compiler interprets that.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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”.
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.
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.
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?
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.
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.
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.
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.
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.
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.
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”.
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.
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 version 4.5 is released. This version contains improvements around Management procedures.
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>
.
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.
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.
FbNetExternalEngine version 4.0 is finally here. This version contains one significant feature and that’s migration to .NET Core.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Have you ever thought about the most basic structure of an application? The main method and its placement in Program
class…
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.
After a small pause in every-year Firebird conferences, filled with few “seminars”, the Firebird Conference is back. This year in Berlin, Germany.
Pretty stupid question, right? Because if it’s more than, say, 20 or 100, it’s enough. But still. Where is the limit?
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.
“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.
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.