Skip to content

Instantly share code, notes, and snippets.

public class AsyncLazyPipeline<TSource>
{
private Func<Task<TSource>> Expression { get; }
public AsyncLazyPipeline(Func<Task<TSource>> expression)
{
Expression = expression;
}
public Task<TSource> Flatten() => Expression();
@bert2
bert2 / README.md
Last active September 20, 2024 08:14
Giving Sisyphus a Hand: How to Improve OOP with Functional Principles

Giving Sisyphus a Hand: How to Improve OOP with Functional Principles

Yet another rant about object-oriented programming, but mainly a collection of ideas stolen from functional programming to improve it.

@Chirishman
Chirishman / MaintanenceDSC.psm1
Last active March 12, 2019 16:51
Class Based DSC resource for patching and rebooting during specified maintenance windows
class MaintenanceWindow {
[Bool]$Enabled = $true
[DateTime]$StartTime
[DateTime]$EndTime
[System.DayOfWeek[]]$DaysOfWeek = @([System.DayOfWeek]::Saturday, [System.DayOfWeek]::Sunday)
[ValidateSet('Weekly', 'Daily')][string]$Frequency
MaintenanceWindow ([DateTime]$StartTime, [DateTime]$EndTime, [String]$Frequency) {
$this.StartTime = $StartTime
$this.EndTime = $EndTime
@johnazariah
johnazariah / LinqExtensions.cs
Last active September 24, 2025 20:30
Maybe Monad in C#
public static partial class LinqExtensions
{
public static Maybe<C> SelectMany<A, B, C>(this Maybe<A> ma, Func<A, Maybe<B>> f, Func<A, B, C> select) => ma.Bind(a => f(a).Map(b => select(a, b)));
}
@almost
almost / flow-type-at-pos.el
Last active June 9, 2016 20:57
Use flow.js to show type signature for value under cursor whenever the cursor is idle for more than half a second (assumes espresso-mode.el)
(defun call-process-on-buffer-to-string (command)
(with-output-to-string
(call-process-region (point-min) (point-max) shell-file-name nil standard-output nil shell-command-switch command)))
(defun flow-type ()
(interactive)
(let* ((info (json-read-from-string
(call-process-on-buffer-to-string
(format "flow type-at-pos --json %d %d" (line-number-at-pos) (current-column)))))
@ef4
ef4 / .emacs
Created April 27, 2015 17:31
Flycheck with JSCS
;; Flycheck JSCS
(flycheck-def-config-file-var flycheck-jscs javascript-jscs ".jscs.json"
:safe #'stringp)
(flycheck-define-checker javascript-jscs
"A JavaScript code style checker.
See URL `https://github.com/mdevils/node-jscs'."
:command ("jscs" "--reporter" "checkstyle"
(config-file "--config" flycheck-jscs)
source)
:error-parser flycheck-parse-checkstyle
anonymous
anonymous / gist:de6b81c556b5dc7cdc8b
Created February 20, 2015 01:42
Kernel panic in latest OS X in 10 lines of C
#include <unistd.h>
#include <mach/mach.h>
#include <mach/mach_vm.h>
#include <mach-o/dyld.h>
int
main (int argc, char * argv[])
{
volatile char * library;
const mach_vm_size_t page_size = getpagesize ();
category value sector
UK production emissions 632 UK
Carbon flows from EU 88 EU
Carbon flows to EU -61 EU
Carbon flows from other Annex 1 82 Annex 1
Carbon flows to other Annex 1 -39 Annex 1
Carbon flows from non-Annex 1 104 Other non-Annex 1
Carbon flows from non-Annex 1 64 China
Carbon flows to non-Annex 1 -25 Non-Annex 1
UK consumption emissions 845 UK
@richlander
richlander / RyuJIT-Install-Instuctions.md
Created August 18, 2014 17:26
Instructions to Install and Use RyuJIT

Try RyuJIT -- Your code runs faster on X64 Windows

How to enable RyuJIT

Download and install RyuJIT now.

RyuJIT only works on 64-bit editions of Windows Vista and Windows Server 2008 and later.

After installation, there are two ways to turn on RyuJIT. If you just want to enable RyuJIT for one application, set an environment variable:

@aaronpowell
aaronpowell / gist:d798507cbca08d86b41a
Created April 30, 2014 05:13
Find csproj files referencing an assembly
Get-ChildItem -Filter *.csproj -Recurse |
Select-Object -Property FullName,@{N="Xml"; E = {
Select-Xml -Path $_.FullName -XPath //b:Reference -Namespace @{b='http://schemas.microsoft.com/developer/msbuild/2003'} |
Select-Object -ExpandProperty Node |
Select-Object -Property Include, HintPath |
Where-Object { $_.HintPath -ne $null } |
Where-Object { $_.Include -eq "My.Assembly.Name" }
} } |
Where-Object { $_.Xml -ne $null } |
Out-GridView