Skip to content

Instantly share code, notes, and snippets.

Adam Shirey aeshirey

Block or report user

Report or block aeshirey

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View WikipediaArticle.cs
/// <summary>
/// Reads articles from a Wikipedia dump. The file currently must be BUnzipped. XML is assumed to be valid. <seealso cref="https://dumps.wikimedia.org/enwiki/"/>
/// </summary>
/// <param name="filename">An unzipped Wikipedia dump</param>
/// <returns>An IEnumerable of articles from the XML file</returns>
public static IEnumerable<WikipediaArticle> ReadArticlesFromXmlDump(string filename)
{
var settings = new XmlReaderSettings()
{
ValidationType = ValidationType.None,
View WikipediaArticle.cs
/// <summary>
/// Writes a set of <see cref="WikipediaArticle"/>s to disk in a simple binary format consisting of the article title and the plaintext contents.
/// </summary>
/// <param name="articles">A set of articles, probably from <see cref="ReadArticlesFromXmlDump"/></param>
/// <param name="outputFilename">The filename into which articles should be saved</param>
/// <returns>The number of articles written</returns>
public static int WriteToDisk(IEnumerable<WikipediaArticle> articles, string outputFilename)
{
var numberOfArticles = 0;
using (var fh = File.Create(outputFilename))
@aeshirey
aeshirey / Chrome, maybe.lnk
Last active Jan 26, 2017
Sick of how bloated Chrome is, I created an alternate Chrome shortcut to help Future Me remember to refrain from using it, if possible
View Chrome, maybe.lnk
C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -Command "if ((New-Object -ComObject Wscript.Shell).Popup('Remember how bloated Chrome is? Open Edge instead?',0,'Really?',0x1)) { start microsoft-edge: } else { start chrome.exe }" -WindowStyle Hidden
View MicrosoftCognitiveTranslator.fs
module MicrosoftCognitiveTranslator
open System
open System.Net
open System.Net.Http
open System.Web
type Translator() =
let AsyncGetAccessToken () =
let CognitiveServicesAccountKey = "<your cognitive services key>" // see portal.azure.com
@aeshirey
aeshirey / venn.min.js
Created Sep 13, 2018
A minified, publicly available version of https://github.com/benfred/venn.js
View venn.min.js
!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("d3-selection"),require("d3-transition")):"function"==typeof define&&define.amd?define(["exports","d3-selection","d3-transition"],r):r(t.venn={},t.d3,t.d3)}(this,function(t,C,r){"use strict";var w=1e-10;function x(r,t){var n,e=function(t){for(var r=[],n=0;n<t.length;++n)for(var e=n+1;e<t.length;++e)for(var a=k(t[n],t[e]),i=0;i<a.length;++i){var s=a[i];s.parentIndex=[n,e],r.push(s)}return r}(r),a=e.filter(function(t){return function(t,r){for(var n=0;n<r.length;++n)if(R(t,r[n])>r[n].radius+w)return!1;return!0}(t,r)}),i=0,s=0,u=[];if(1<a.length){var o=P(a);for(n=0;n<a.length;++n){var f=a[n];f.angle=Math.atan2(f.x-o.x,f.y-o.y)}a.sort(function(t,r){return r.angle-t.angle});var l=a[a.length-1];for(n=0;n<a.length;++n){var h=a[n];s+=(l.x+h.x)*(h.y-l.y);for(var x={x:(h.x+l.x)/2,y:(h.y+l.y)/2},c=null,g=0;g<h.parentIndex.length;++g)if(-1<l.parentIndex.indexOf(h.parentIndex[g])){var v=r[h.parentIndex[g]],p=Math.atan2(h.x-v.x,h.y-v.y),d=
View Keybase proof
### Keybase proof
I hereby claim:
* I am aeshirey on github.
* I am adamshirey (https://keybase.io/adamshirey) on keybase.
* I have a public key ASBGD1ACCiGZ0YRRZCuMxEAZncMYrJI5_Ima7UdJqXYRogo
To claim this, I am signing this object:
View kegerator.c.ino
// Code accompanying my blog post on my kegerator setup, found here:
// http://www.dingostick.com/2018/12/kegerator-v10.html
// 1. https://www.pjrc.com/teensy/td_libs_OneWire.html
#include <OneWire.h>
// 2. https://github.com/milesburton/Arduino-Temperature-Control-Library
#include <DallasTemperature.h>
#define LOGGING
View outside-temperature-query.py
#!/usr/bin/env python
import paho.mqtt.client as mqtt
import json
import requests
BROKER = '192.168.0.1'
TOPIC = "weather/renton"
URL = "http://api.openweathermap.org/data/2.5/weather?id=5808189&APPID=<your api key goes here>"
API_DELAY_SEC = 60 * 10 # every 10 minutes
View ventilation.yaml
- id: '1234'
alias: ventilate_on
trigger:
- payload: 'on'
platform: mqtt
topic: ventilate
condition: []
action:
- data:
entity_id: switch.wind_tunnel
View check_temp.py
# maximum allowable delta (°F) before we start the fans
TEMP_DELTA = 5.0
def check_temp():
global VENTILATION_STATE
c = db.cursor()
# get the last ten minutes of data only
c.execute("SELECT temp, room FROM temps WHERE (julianday('now') - julianday(timestamp))*86400 < 600 ORDER BY timestamp")
inside_temps, outside = [], 0.0
You can’t perform that action at this time.