Skip to content

Instantly share code, notes, and snippets.

View dadhi's full-sized avatar
🎯
Focusing

Maksim Volkau dadhi

🎯
Focusing
View GitHub Profile
@dadhi
dadhi / SpecializedFactoryExample.worksheet.sc
Last active February 23, 2022 13:28
Specialized factory type class in Scala
//live: https://scastie.scala-lang.org/dadhi/G2uzgCqXSbiav34bM602iw/68
trait EntryFactory[K] {
def create(key: K): Entry[K]
}
object EntryFactory {
implicit def anyFactory[K]: EntryFactory[K] =
new EntryFactory[K] {
override def create(key: K) = KEntry(key, key.hashCode)
@dadhi
dadhi / MinimalAPIs.md
Created September 11, 2021 07:20 — forked from davidfowl/MinimalAPIs.md
Minimal APIs at a glance

Minimal APIs

WebApplication

Creating an application

var app = WebApplication.Create(args);

app.MapGet("/", () => "Hello World");
@dadhi
dadhi / latency.txt
Created April 14, 2021 11:18 — forked from jboner/latency.txt
Latency Numbers Every Programmer Should Know
Latency Comparison Numbers (~2012)
----------------------------------
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns 3 us
Send 1K bytes over 1 Gbps network 10,000 ns 10 us
Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD
@dadhi
dadhi / PackRef.md
Created November 23, 2020 20:47
Control PackageReference

NuGet/Home#5986 (comment)

I've found that you can manually control which .dlls to reference and which .dlls to copy to output from a NuGet package if you turn off all assets on the PackageReference:

<PackageReference Include="Foo.MyPackage" Version="1.0.0" ExcludeAssets="all" GeneratePathProperty="true" />

and then manually reference the .dlls you need:

@dadhi
dadhi / markdown-details-collapsible.md
Created August 20, 2020 16:56 — forked from pierrejoubert73/markdown-details-collapsible.md
How to add a collapsible section in markdown.

A collapsible section containing markdown

Click to expand!

Heading

  1. A numbered
  2. list
    • With some
    • Sub bullets
@dadhi
dadhi / X.Y.Z.Sources.csproj
Created July 22, 2020 06:41 — forked from attilah/X.Y.Z.Sources.csproj
X.Y.Z.Sources nuget package
<Project>
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
<PropertyGroup>
<TargetFramework>netstandard1.0</TargetFramework>
<IsPackable>true</IsPackable>
<IncludeBuildOutput>false</IncludeBuildOutput>
<ContentTargetFolders>contentFiles</ContentTargetFolders>
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
@dadhi
dadhi / DryIoc_Issue293.csx
Last active July 19, 2020 12:29
DryIoc issue #293: ServiceKey and ServiceProvider
/*
Execute me as:
```
dotnet tool install dotnet-script
dotnet sctipt https://tinyurl.com/yylj3vcp
```
```cs */
#r "nuget: Microsoft.Extensions.DependencyInjection, 2.2.0"
#r "nuget: Microsoft.Extensions.Options, 1.0.0"
@dadhi
dadhi / RemoveBinObj.ps
Created July 1, 2020 09:56
Remove Cleanup Obj and Bin folders powershell script
Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
@dadhi
dadhi / ZLayerPlayground.scala
Created June 9, 2020 12:48 — forked from ekuzmichev/ZLayerPlayground.scala
ZIO ZLayer DI playground
import zio._
object ZLayerPlayground {
case class User(id: String, name: String)
class MongoDb {
def insertUser(user: User): Task[Unit] = Task.succeed(()) <* UIO(println(s"[MongoDb]: Inserted user $user"))
}
object MongoDbLayer {