Skip to content

Instantly share code, notes, and snippets.

atifaziz / ByteSizeFormatProvider.cs
Last active Aug 29, 2015
Custom formatter in F# & C# for formatting byte (file/disk/stream) sizes/lengths (e.g. 1.1MB, 2.3GB, 4 bytes, etc.)
View ByteSizeFormatProvider.cs
using System;
// Adapted from:
// Credit:
public sealed class ByteSizeFormatProvider : IFormatProvider, ICustomFormatter
public object GetFormat(Type formatType)
return formatType == typeof(ICustomFormatter) ? this : null;
View WebClient.fs
open System
open System.Net
open System.Net.Mime
open System.Text
let opt x = if x = null then None else Some(x)
type WebClient() =
inherit System.Net.WebClient()
View svnarcst.fsx
// Copyright (c) 2014 Atif Aziz. All rights reserved.
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
atifaziz / WebQuery.bas
Created Feb 27, 2014
Add or update an Excel WebQuery
View WebQuery.bas
Function AddOrUpdateWebQuery(ByVal URL As String, Optional DontRefresh As Boolean = False) As QueryTable
Dim Connection As String: Connection = "URL;" & URL
Dim PostText As String: Dim Parts() As String
If Len(URL) > 1024 Then
' URL exceeds 1K so use HTTP POST to get around the limit
Parts = Split(URL, "?", 2)
URL = Parts(LBound(Parts))
If UBound(Parts) > LBound(Parts) Then PostText = Parts(UBound(Parts))
atifaziz / Program.cs
Last active Aug 29, 2015
Demo of enabling optional parameters support in Jayrock
View Program.cs
using System;
using System.Collections;
using System.Linq;
using System.Reflection;
using Jayrock;
using Jayrock.JsonRpc;
using Jayrock.Services;
static class Program
atifaziz / XlTableFormat.ClipboardId.cs
Last active Aug 29, 2015
XlTable clipboard format used by Excel in DDE
View XlTableFormat.ClipboardId.cs
using System.Windows.Forms;
static partial class XlTableFormat
static int? _clipboardId;
public static int ClipboardId { get { return (_clipboardId ?? (_clipboardId = DataFormats.GetFormat("XlTable").Id)).Value; }}
using System;
atifaziz / IYielder.cs
Created Mar 26, 2014
Alternate IYielder Rx with exception handling
View IYielder.cs
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
using System;
using System.Linq;
using System.Runtime.ExceptionServices;
using System.Security;
namespace System.Linq
atifaziz / groupAdjacent.fs
Last active Aug 29, 2015
GroupAdjacent for sequences in F#
View groupAdjacent.fs
open System.Collections.Generic
let groupAdjacent projection (source : _ seq) = seq {
let rec loop (e : IEnumerator<_>) g (members : List<_>) = seq {
if e.MoveNext() then
let key = projection e.Current
if key = g then
yield! loop e key members
atifaziz / ConsoleRedirection.cs
Created Apr 3, 2014
Standard streams (stdin, stdout, and stderr) redirection detection
View ConsoleRedirection.cs
using System;
using System.Runtime.InteropServices;
static class ConsoleRedirection
public static bool IsInputRedirected() { return IsRedirected(StdHandle.Stdin); }
View Swapper.cs
using System;
using System.Reactive.Disposables;
static partial class Swapper
public static Func<T, T> Create<T>(Func<T> getter, Action<T> setter)
if (getter == null) throw new ArgumentNullException("getter");
if (setter == null) throw new ArgumentNullException("setter");