Skip to content

Instantly share code, notes, and snippets.

View russcam's full-sized avatar
🤓
Always learning!

Russ Cam russcam

🤓
Always learning!
View GitHub Profile
using System.Globalization;
using System.IO.Compression;
using System.Text.Json;
using Azure.AI.OpenAI;
using CsvHelper;
using CsvHelper.Configuration;
using CsvHelper.Configuration.Attributes;
using CsvHelper.TypeConversion;
using Qdrant.Client;
using Qdrant.Client.Grpc;
@russcam
russcam / Ingesting_Attachments.cs
Last active April 20, 2023 12:37
Ingesting attachments with Elasticsearch and NEST 7.x
using System;
using Elasticsearch.Net;
using Nest;
namespace Example
{
private static void Main()
{
var defaultIndex = "attachments";
@russcam
russcam / Procmon.ps1
Created November 3, 2018 05:47
PowerShell Script module for interacting with Process Monitor (Procmon)
<#
.Synopsis
Functions for working with Process monitor
.Link
https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
#>
#Requires -Version 3.0
New-Module -Name Procmon -Scriptblock {
private static void Main()
{
var defaultIndex = "icecreams";
var settings = new ConnectionSettings(new Uri("http://localhost:9200"))
.DefaultIndex(defaultIndex)
.DisableDirectStreaming()
.PrettyJson()
.OnRequestCompleted(callDetails =>
{
@russcam
russcam / completion-suggester.cs
Last active November 1, 2021 00:52
Using Completion Suggester with NEST
void Main()
{
var indexName = "stackoverflow";
var node = new SingleNodeConnectionPool(new Uri("http://localhost:9200"));
var settings = new ConnectionSettings(node)
.InferMappingFor<Question>(m => m
.IndexName(indexName)
)
.PrettyJson()
.DisableDirectStreaming()
@russcam
russcam / NEST_7x_NetTopologySuite_Geometries.linq
Created January 12, 2021 00:39
Using NetTopologySuite Geometries with NEST 7.x
<Query Kind="Program">
<NuGetReference>Elasticsearch.Net</NuGetReference>
<NuGetReference>NEST</NuGetReference>
<NuGetReference>NEST.JsonNetSerializer</NuGetReference>
<NuGetReference>NetTopologySuite.IO.GeoJSON</NuGetReference>
<Namespace>Elasticsearch.Net</Namespace>
<Namespace>Elasticsearch.Net.Specification.CatApi</Namespace>
<Namespace>Nest</Namespace>
<Namespace>Nest.JsonNetSerializer</Namespace>
<Namespace>Newtonsoft.Json</Namespace>
@russcam
russcam / elastic-gnaf.fsx
Last active October 1, 2020 07:22
Building a realtime Australian address search with the G-NAF dataset
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you 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
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
@russcam
russcam / ThreadpoolStats.cs
Created August 24, 2020 01:59
Get Threadpool, worker and IOCP thread statistics
using System;
using System.Text;
using System.Threading;
public static class ThreadpoolStats
{
public static string GetThreadPoolStats()
{
ThreadPool.GetMaxThreads(out int maxWorkerThreads, out int maxIoThreads);
ThreadPool.GetAvailableThreads(out int freeWorkerThreads, out int freeIoThreads);
@russcam
russcam / TcpStats.cs
Created August 24, 2020 01:43
Get active TCP connection states and statistics
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.NetworkInformation
public static class TcpStats
{
private static int _stateLength = Enum.GetNames(typeof(TcpState)).Length;
private static int _longestState = Enum.GetNames(typeof(TcpState)).Max(s => s.Length);
@russcam
russcam / LinkChecker.linq
Created January 30, 2019 00:14
Checks for broken links in HTML pages
<Query Kind="Program">
<Reference>&lt;RuntimeDirectory&gt;\System.Net.Http.dll</Reference>
<NuGetReference>HtmlAgilityPack</NuGetReference>
<Namespace>HtmlAgilityPack</Namespace>
<Namespace>System.Net.Http</Namespace>
<Namespace>System.Threading.Tasks</Namespace>
<Namespace>System.Collections.Concurrent</Namespace>
</Query>
void Main()