Skip to content

Instantly share code, notes, and snippets.

@atifaziz
atifaziz / Demo.csproj
Created March 26, 2019 06:59
Demo program for discussion of dotnet/cli#11016
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
</Project>
@atifaziz
atifaziz / dir
Created March 7, 2019 08:31
Recolor examples
yellow=<DIR>.+$
magenta=<(JUNCTION|SYMLINKD)>.+$
yellow=(?<=<(JUNCTION|SYMLINKD)>.+)\[.+\]$
cyan=(?<=\x20)(?i:[^\x20]+\.(cmd|bat|exe|com|ps1|wsh|wsf|vbs))$
gray=\(([0-9][0-9]?|[0-9][0-9,'.][0-9]*)\)
#region Copyright (c) 2018 Atif Aziz. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
@atifaziz
atifaziz / csharp-query-expression-pattern.md
Created September 10, 2018 06:49
C# Query Expression Pattern (§7.15.3, C# Language Specification, Version 3.0)

C# Query Expression Pattern

§7.15.3 The query expression pattern, C# Language Specification, Version 3.0

Copyright © Microsoft Corporation 1999-2007. All Rights Reserved.

The Query expression pattern establishes a pattern of methods that

@atifaziz
atifaziz / Box.cs
Last active December 16, 2021 19:49
Generic Box in C# for explicit boxing of value types
#region The MIT License (MIT)
//
// Copyright (c) 2018 Atif Aziz. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of
// this software and associated documentation files (the "Software"), to deal in
// the Software without restriction, including without limitation the rights to
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
// the Software, and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
@atifaziz
atifaziz / MoreLinqAwaitCompletionDemo.linq
Created May 25, 2018 10:55
Demo of MoreLINQ's AwaitCompletion
<Query Kind="Expression">
<NuGetReference Prerelease="true">morelinq</NuGetReference>
<Namespace>MoreLinq</Namespace>
<Namespace>MoreLinq.Experimental</Namespace>
</Query>
Enumerable
.Range(1, 5)
.Select(x => TimeSpan.FromSeconds(x))
.RandomSubset(5)
@atifaziz
atifaziz / .gitconfig
Last active May 5, 2023 06:15
My Git aliases
[alias]
aliases = config --get-regexp ^alias\\.
last = log -1 HEAD
ls = log --decorate --pretty=format:%Cgreen%h%Cred%d%Creset\\ %s\\ [%an]
ll = log --pretty=fuller
st = status
diffc = diff --cached
ci = commit
cia = commit --amend
mff = merge --ff-only
<Query Kind="Expression">
<NuGetReference Version="3.1.0">System.Reactive</NuGetReference>
<NuGetReference Version="1.2.0">TryParsers</NuGetReference>
<NuGetReference Version="1.0.0-alpha-20170321T1506" Prerelease="true">WebLinq</NuGetReference>
<Namespace>static WebLinq.Modules.HttpModule</Namespace>
<Namespace>System.Reactive</Namespace>
<Namespace>System.Reactive.Linq</Namespace>
<Namespace>TryParsers</Namespace>
<Namespace>WebLinq</Namespace>
<Namespace>WebLinq.Html</Namespace>
@atifaziz
atifaziz / Get-MyNuGetApiKeys.ps1
Created February 28, 2018 14:27
Show ApiKeys from NuGet.Config
Add-Type -AssemblyName System.Security; ([xml](type -Raw C:\Users\aziz1a\AppData\Roaming\NuGet\NuGet.Config)).configuration.apiKeys.add | Add-Member -PassThru original -Type ScriptProperty { [Text.Encoding]::UTF8.GetString([Security.Cryptography.ProtectedData]::Unprotect([Conver
t]::FromBase64String($this.value), [Text.Encoding]::UTF8.GetBytes('NuGet'), 'CurrentUser')) }
#r "System.Net.Http"
#r "System.Threading.Tasks"
#r "packages\Microsoft.CodeAnalysis.CSharp.2.3.2\lib\netstandard1.3\Microsoft.CodeAnalysis.CSharp.dll"
using System.Net.Http;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
var source = await new HttpClient().GetStringAsync("https://gist.githubusercontent.com/atifaziz/779846996638e50cbf11554c75739178/raw/8e0ef8f52c1beadd5f6a6cbb464737e2bce0f9c9/Enumerable.cs");