Skip to content

Instantly share code, notes, and snippets.

View cwharris's full-sized avatar

Christopher Harris cwharris

View GitHub Profile
cwharris /
Last active July 21, 2023 14:22
Install 1Password
# wget -O - <this gist> | bash
set -Eeox pipefail
# install 1password
sudo apt-get -y install curl
curl -sS | sudo gpg --dearmor --output /usr/share/keyrings/1password-archive-keyring.gpg
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/1password-archive-keyring.gpg] stable main' | sudo tee /etc/apt/sources.list.d/1password.list
cwharris /
Created December 10, 2018 22:05
Useful Ubuntu Setup Stuff
sudo apt-get update
sudo apt-get install git dkms
git clone
sudo dkms add ./rtl8814au 
sudo dkms build -m rtl8814au -v 4.3.21
sudo dkms install -m rtl8814au -v 4.3.21
cwharris / GroupByContinuity.cs
Last active July 18, 2018 22:05
Rx Grouping by continuity of a key
View GroupByContinuity.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reactive.Linq;
namespace ConsoleApplication1
internal class Program
public static void Main(string[] args)
cwharris / Program.cs
Last active July 13, 2018 22:01
View Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public class Program
public static void Main()
var randomPassword =
View BezierCurve.cs
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using UnityEngine;
namespace Game.Curves
public static class BezierCurve
public static Vector3 Evaluate(
cwharris / SinglePageMiddleware.cs
Last active February 2, 2017 04:56
AspNetCore SinglePageMiddleware.cs
View SinglePageMiddleware.cs
using System;
using System.Threading.Tasks;
using System.Threading;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.StaticFiles;
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Logging;
namespace ChristopherHarris
cwharris / index.ts
Last active November 26, 2016 01:37
TypeScript Array<TItem> => { [key: TKey] }: TItem
View index.ts
import { toKeyedObjectWithNumber } from "./toKeyedObjectWithNumber";
var items = [
{ id: 1 },
{ id: 2 },
{ id: 3 }
var itemsById = toKeyedObject(items, item =>;

Keybase proof

I hereby claim:

  • I am cwharris on github.
  • I am cwharris ( on keybase.
  • I have a public key whose fingerprint is 1AF0 0C9A 28CB 9B59 F50A A3BB AD83 0673 F92A 4F0E

To claim this, I am signing this object:

View 1-before.js
.flatMap(function (movie) {
return geocoder
.map(function (location) {
return {
location: location,
movie: movie
cwharris / example1.js
Last active August 29, 2015 14:03
Observable.tagError: Basically to help manually debug JavaScript applications by using locator tags. The locator tags are prepended to the error as it travel to the consumer.
View example1.js
Rx.Observable.return('{ "value": 0 }'),
Rx.Observable.return('{ "value": 5 }'),
.tagError('ParseJSON', function (source) {