We have a program that sends emails to clients based on what happens at business side. Pretty simple - you register, you got welcome email; and so on. And there’s a lot of these “actions”. When I wrote the program few years back I tested it and I was able to peak at about 3500 email per second. Should be plenty enough. But recently the queue started to get longer. Emails were processed later. And everything started to behave oddly.
Couple of weeks ago Patrick Smacchia reached to me and offered me a license for NDepend. At that time I was actually in some code cleanup in Fast 5 software and though it might be handy to try it. As usual a lot of other things took priority and only now I’m able to start playing with it. Because I needed some codebase that’s not huge and also not small, I took FirebirdClient (both ADO.NET provider as well as EF6 provider). It’s open source so you can try it yourself and it contains some ~10 years old code so there will be something to look at, for sure.
New 184.108.40.206 version of ADO.NET provider for Firebird is ready for download. As with every major release the changes of something going wrong are high. No exception here. Big thanks to people testing the provider and reporting bugs.
Also as I was there, my brain being in high power state, I fixed some bugs (though it was only few, these span well in the codebase).
New 220.127.116.11 version of ADO.NET provider for Firebird is ready for download. As you can see the major version number changed.
This release contains two new big features, both focused on Firebird 3. The
BOOLEAN datatype is now supported (except Entity Framework mapping, currently). And SRP authentication is supported on Firebird 3. I think these are the most fundamental new features so I’m releasing it now. There’s more to come.
Also internals of the protocol handling were refactored and slightly cleaned up (and more to do). Hopefully that will enable easier improvements and fixes in the future.
- Azure Blob Storage netradičně
- Debuggujte ve VS jako profík
- EF Core 1.0: postaru Entity Framework 7
Přijďte. Je na co se těšit.
I’m now playing with ESP-8266, Wemos D1 mini to be precise. One think I’m now using for fun/debugging/communication is broadcasting UDP packets. For some reason the packets were not coming lately.
You might say: “Jiri, it’s UDP. Packets will get lost.”. True. But my packets were lost in 99% cases, on my home network. Something is going on.
Although I can make it out of the TCP/IP woods almost always, sometimes I find edge cases that are interesting. More often than not these are result of security hacks in last 20 or so years and my knowledge is based on “regular/happy” case.
Today was a refactoring day. Well half of it. I was in correct mood. And I was bitten by old code and my own ignorance of deferred execution for enumerables.
Kdo by řekl, že je to už rok? Protože jsem vždycky tíhnul k datům i letos jsem připravil něco kolem dat. Konkrétně Azure Blob Storage netradičně. Ona se totiž tato služba dá využít na plno reálných, funkčních - a přesto neznámých - věcí. Tak doufám, že dorazíte.
Poslední zastávkou letošního - nebo vlastně loňského, i když v teď už letos - MS Festu je Bratislava. I na této zastávce se podíváme na C# 6 a Roslyn a navíc ještě na Entity Framework Core 1.0 (Entity Framework 7 postaru).
Máme v Brně novou komunitní akci. DotNetBeer nebo DotNetPivo. No a na třetím “výskytu” - 30.3.2016 v 18:00 se mnou - se podíváme na Roslyn a analyzátory kódu a vše okolo.
Tuesday this week I was explaining some internals of
await. And as you might know it’s backed by a state machine not different from what
yield does. The state machine uses
int field to track it’s state. And I’ve got an idea to try, what would happen if I’d create a method with more states than the
int can hold…
There’s a common pattern used in ADO.NET with
ExecuteScalar method. And this one is going to be bit broken with changes introduced in Firebird 3 (currently RC2).
Very often you’re selecting number of values from some table (probably based on some condition). And the code looks like this.
This week I was speaking at a local user group and got a fairly interesting question for Roslyn analyzers - search for
// TODO: something comments and do something with it. I think it’s a great idea, because the comment is not a code exactly, but still Roslyn processes it. And to make it bit more interesting I decided not to sketch some analyzer for Visual Studio, but create just a raw console application that reports these comments, so anybody can tweak it for own needs (or eventually create a full blown analyzer from it, it’s just a few lines of code).
Paralelizmus, souběžnost, zamykání atp. Baví mě to. A rád o tom povídám. Rád o těchto problémech přemýšlím. Tentokrát se budu snažit natlačit něco z mé hlavy do hlavy všem zájemcům v Ostravě.
Asynchronní proramování nabralo za posledních pár let na obrátkách a dostalo se do povědomí mnoha vývojářů. Ačkoli ve své podstatě se nejedná o nic nového, alespoň v systému Windows. Nicméně příchod C# 5 a, jistě nyní známých, klíčových slov
awaitumožnil použití asynchronní programování bez dřiny.
Pokud vás zajímají detaily od křemíku až po kód, přijďte 25.2.2016 od 17:00 na WUG do Ostravy.
From time to time I need to create some kind of scheduler for recurring stuff in application. As long as it’s based on interval I can use the
Timer. But when you need to trigger the action on specific time - wall clock time - it’s not smooths sailing. There’s a bunch of ways to tackle the problem and each presents different obstacles (like time changes due to NTP synchronization). But this is already solved in Windows kernel. Windows allow you to use timers with either absolute time or intervals.
nbackup tool and more importantly the
alter database [begin|end] backup commands are a great way to do a quick backup of Firebird database. You just copy the file (or files if you’re using database splitting) and you’re done. The small problem is with restore.
- Novinky v C# 6
- Čo je Git a prečo by ma to malo zaujímať
Doufám, že se uvidíme.
It all started with this tweet:
Pimped up my #PowerShell prompt a little. More bash-like style. #geek
And was asked what I did. It’s actually nothing special, just few things I really like while working via
Bash, which is my default shell wherever possible.
So what I actually did? I just really played little bit with formatting. But the whole prompt for me is like this.