Skip to content

Instantly share code, notes, and snippets.

View nycdotnet's full-sized avatar

Steve Ognibene nycdotnet

View GitHub Profile

Pattern Matching

List and similar:

This is null safe for Items in this example. 40x Faster than using ?.Any() in a microbenchmark when Items is not null but could be empty. In cases where the list will typically be null, ?.Any() measured about 10x faster, but these are all sub-nanosecond measurements and neither has any allocations.

    public class Foo
    {
        public List<int>? Items { get; set; }
  
@nycdotnet
nycdotnet / chocolatey.md
Last active October 28, 2023 21:54
Chocolatey Packages I use

I like to use the following Chocolatey packages

docker-desktop
microsoft-windows-terminal
git.install
github-desktop
vscode
paint.net
@nycdotnet
nycdotnet / #Angular CLI commands.md
Last active July 25, 2023 15:52
Angular CLI commands
ng new project-name-goes-here

This will create a new folder and set up an empty project there.

ng serve --open

Will serve the application and open the default web browser to it.

@nycdotnet
nycdotnet / #Ruby and Rails tricks.md
Last active July 14, 2023 13:31
Useful Ruby Snippets

This repo contains some code snippets that I've found useful related to Ruby and Rails

@nycdotnet
nycdotnet / Homebrew.md
Last active May 25, 2023 18:17
Homebrew Packages

These are the Homebrew packages I have used:

https://brew.sh

brew install --cask visual-studio-code
brew install --cask github
brew install --cask firefox
brew install gh
brew install docker
@nycdotnet
nycdotnet / embed.ps1
Last active December 5, 2019 16:32
Embed a file in a PowerShell script
param (
[Parameter(Mandatory=$true)][string]$sourceFile,
[string]$outputFile=""
)
$MAX_LINE_LENGTH = 16000000;
if ($outputFile -eq "") {
$outputFile = '{0}.ps1' -f ($sourceFile)
}
@nycdotnet
nycdotnet / Program.cs
Created May 29, 2019 12:51
Protobuf Example
using ProtobufExample.Protos;
using System;
namespace ProtobufExample
{
class Program
{
static void Main(string[] args)
{
var product = new Product { Id = 2, Description = "Fun product" };
@nycdotnet
nycdotnet / Program.cs
Created April 30, 2019 20:47
Autofac Demo
using Autofac;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Primitives;
using System;
using System.Collections.Generic;
using System.Threading;
// You must add the `Autofac` and `Microsoft.Extensions.Configuration` NuGet packages for this to work
namespace AutofacDemo
@nycdotnet
nycdotnet / ConstructionPerf.txt
Last active March 4, 2019 03:46
ImmutableDictionary vs ReadOnlyDictionary vs Dictionary Benchmarks with .NET Core SDK 3.0-preview2
BenchmarkDotNet=v0.11.4, OS=Windows 10.0.17134.590 (1803/April2018Update/Redstone4)
Intel Core i7-6600U CPU 2.60GHz (Skylake), 1 CPU, 4 logical and 2 physical cores
.NET Core SDK=3.0.100-preview-010184
[Host] : .NET Core 2.1.8 (CoreCLR 4.6.27317.03, CoreFX 4.6.27317.03), 64bit RyuJIT
MediumRun : .NET Core 3.0.0-preview-27324-5 (CoreCLR 4.6.27322.0, CoreFX 4.7.19.7311), 64bit RyuJIT
Job=MediumRun Toolchain=.NET Core 3.0 Preview 2 InvocationCount=1
IterationCount=15 LaunchCount=2 UnrollFactor=1
WarmupCount=10
@nycdotnet
nycdotnet / instructions.md
Last active April 28, 2018 14:57
Portable Git in Node.js command prompt on Windows

GitHub for Windows doesn't put Git in the PATH by default. If you'd like your Node.js command prompt to have the git command available by default, simply edit your nodevars.bat file. By default, this is in C:\Program Files\nodejs\. You will have to run your text editor in an administrative context for this to work.

Replace this line in your nodevars.bat file:

set PATH=%APPDATA%\npm;%~dp0;%PATH%

With these thre lines:

for /F %%A in ('"dir /s /b /OD %userprofile%\appdata\local\git.exe"') do set gitPath=%%A\..