Skip to content

Instantly share code, notes, and snippets.

@hyrmn
hyrmn / DapperExtensions.cs
Last active December 18, 2023 09:16
Extension methods for calling Dapper asynchronously with a Polly retry
public static class DapperExtensions
{
private static readonly IEnumerable<TimeSpan> RetryTimes = new[]
{
TimeSpan.FromSeconds(1),
TimeSpan.FromSeconds(2),
TimeSpan.FromSeconds(3)
};
private static readonly AsyncRetryPolicy RetryPolicy = Policy
@hyrmn
hyrmn / oldway.cs
Last active August 1, 2023 09:07
Polly.Contrib.WaitAndRetry examples
var transientErrors = new HashSet<WebExceptionStatus>(new[]
{
WebExceptionStatus.ConnectFailure,
WebExceptionStatus.ConnectionClosed,
WebExceptionStatus.KeepAliveFailure,
WebExceptionStatus.Pending,
WebExceptionStatus.PipelineFailure,
WebExceptionStatus.ProtocolError,
WebExceptionStatus.ReceiveFailure,
WebExceptionStatus.RequestCanceled,
go to docker.com and create an account. download the appropriate docker desktop installer for your computer and install
Then you will need to create a file called docker-compose.yml in some directory on your hard drive
@hyrmn
hyrmn / 00_OldReliable.cs
Last active October 10, 2021 00:42
Ways to swap numbers (.NET 6.0)
using System.Diagnostics;
int x = 10;
int y = 20;
var tmp = x;
x = y;
y = tmp;
Debug.Assert(x == 20);
@hyrmn
hyrmn / 0_ColorBoxes.cs
Created September 22, 2021 05:18
Some algos to draw things from things. For all of these, Install-Package SixLabors.ImageSharp.Drawing -Version 1.0.0-beta11
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Drawing;
using SixLabors.ImageSharp.Drawing.Processing;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
var destWidth = 1920;
var destHeight = 1080;
using var image = new Image<Rgba32>(destWidth, destHeight);
@hyrmn
hyrmn / LineCounter.cs
Last active September 10, 2021 21:09
Surprisingly slower
using System.Numerics;
namespace nlc;
public class LineCounter
{
public const int BufferSize = 128 * 1024;
private const byte rune = (byte)'\n';
private static readonly Vector<byte> mask = new(rune);
@hyrmn
hyrmn / why.cs
Created September 1, 2021 04:45
RSS + media thumbnail with XLinq and I don't know why
record Pan(string Style, decimal Price, string ProductUrl, string ThumbnailUrl)
{
public XElement ToRss(XNamespace mediaNs)
{
return new XElement("item",
new XElement("title", Style),
new XElement("description", $"Buy now for {Price}"),
new XElement("link", ProductUrl),
new XElement(mediaNs + "thumbnail", new XAttribute("url", ThumbnailUrl))
);
@hyrmn
hyrmn / program.cs
Created March 5, 2021 20:01
File manipulation with ImageSharp
import the following nuget package:
> Install-Package SixLabors.ImageSharp.Drawing -Version 1.0.0-beta11
[AttributeUsage(System.AttributeTargets.All, AllowMultiple = true, Inherited = true)]
public class ಠ_ಠAttribute : Attribute
{
public ILog Log { get; set; }
public ಠ_ಠAttribute()
{
Log.Info("This code is bad and you should feel bad");
}
}
@hyrmn
hyrmn / lambda.md
Created July 1, 2020 04:17
Method groups are slower!!!!!!!!1
public void MapUserWithStaticMapper2()
{
    var users = new[]
    {
        new User(1, "Bob Almighty", "Green", DateTimeOffset.Now),
        new User(2, "Alice Wunder", "Orange", DateTimeOffset.Now)
    };

 var view = users.Select(u =&gt; UserSummary.MapFrom(u));