Skip to content

Instantly share code, notes, and snippets.

View ReubenBond's full-sized avatar
🧊

Reuben Bond ReubenBond

🧊
View GitHub Profile
@ReubenBond
ReubenBond / Program.cs
Created July 6, 2015 12:29
Orleans with client/server/interfaces/implementations in a single file. https://github.com/dotnet/orleans/pull/528
namespace RosleansSilo
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Threading.Tasks;
using Orleans;
@ReubenBond
ReubenBond / Firewall.cs
Created June 22, 2015 23:40
Snippet to open firewall ports in Windows.
// NOTE: Add a COM reference to NetFwTypeLib
namespace Site.Setup
{
using System;
using System.Linq;
using NetFwTypeLib;
/// <summary>
@ReubenBond
ReubenBond / TransactionExtensions.cs
Last active April 30, 2017 05:51
Taking part in Service Fabric transactions
using System;
using System.Collections.Concurrent;
using System.Fabric.Replication;
using System.Reflection;
using System.Reflection.Emit;
using Microsoft.ServiceFabric.Data;
internal static class TransactionExtensions
{
@ReubenBond
ReubenBond / ChatRoomGrain.cs
Created May 14, 2015 01:37
ChatRoomGrain snippet
"Don't expect this to compile - it's just a snippet"
/// <summary>
/// The chat room grain.
/// </summary>
[StorageProvider(ProviderName = "chats")]
[Reentrant]
@ReubenBond
ReubenBond / ClusterManifestTemplate.xml
Last active March 29, 2024 14:27
Speedy Service Fabric Dev Cluster Upgrades
<?xml version="1.0" encoding="utf-8"?>
<!--
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
The settings used within this ClusterManifest are expressly for use only
within a developer single-box environment. Any use of these settings outside
of that environment are highly likely to produce incorrect, and misperforming
@ReubenBond
ReubenBond / WorkerRole.cs
Created February 26, 2015 20:52
Orleans: modifying internal provider config
namespace Orleans.Azure.Silos
{
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net;
using System.Reflection;
using Microsoft.WindowsAzure;
@ReubenBond
ReubenBond / AzureJsonStore.cs
Created September 8, 2014 00:50
AzureJsonStore.cs
// --------------------------------------------------------------------------------------------------------------------
// <summary>
// The Azure JSON table storage provider.
// </summary>
// --------------------------------------------------------------------------------------------------------------------
namespace Grains.Utilities
{
using System.Configuration;
using System.Threading.Tasks;
public async Task SendSms(string phoneNumber, string body)
{
// Sanitize the phone number.
phoneNumber = Regex.Replace(phoneNumber, "[^0-9]", string.Empty);
// Build the request.
var builder = new UriBuilder("https://rest.nexmo.com/sms/json");
var parameters = new Dictionary<string, string>
{
{ "api_key", this.apiKey },
@ReubenBond
ReubenBond / docdb_signature.cs
Last active August 29, 2015 14:05
Azure DocumentDB: Compute Signature
public static string GetSignature(string masterKey, string resourceId, string resourceType, string xDate = null, string date = null)
{
if (string.IsNullOrEmpty(xDate) && string.IsNullOrEmpty(date))
{
throw new ArgumentException("Either xDate or date must be provided.");
}
const string AuthorizationFormat = "type={0}&ver={1}&sig={2}";
const string MasterToken = "master";
const string TokenVersion = "1.0";
@ReubenBond
ReubenBond / GrainObserverManager.cs
Last active December 5, 2017 12:27
Support grains & grain observers
// --------------------------------------------------------------------------------------------------------------------
// <summary>
// Maintains a collection of <see cref="IGrainObserver" /> instances.
// </summary>
// --------------------------------------------------------------------------------------------------------------------
namespace Grains.Utilities
{
using System;
using System.Collections;