Skip to content

Instantly share code, notes, and snippets.

View mikebridge's full-sized avatar
🤔
Thinking

Mike Bridge mikebridge

🤔
Thinking
View GitHub Profile
@mikebridge
mikebridge / openapi.yaml
Created October 28, 2023 23:22
Test OpenAPI
openapi: 3.0.0
paths:
/:
get:
operationId: AppController_getHello
parameters: []
responses:
'200':
description: ''
/tracks/{id}:
@mikebridge
mikebridge / .zshrc
Created September 18, 2023 15:54
zshrc
# NVM
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
# NVM INTEGRATION
# https://github.com/nvm-sh/nvm#deeper-shell-integration
autoload -U add-zsh-hook
@mikebridge
mikebridge / exampleComponent.tsx
Created April 28, 2017 20:33
An example react component in TypeScript
import * as React from "react";
import * as PropTypes from "prop-types";
interface IExampleComponentProps {
text?: string;
onCounterIncrease: (count: number) => void;
}
interface IExampleComponentState {
clicks: number;
@mikebridge
mikebridge / deploy-operations.yml
Created March 15, 2019 19:10
Example Kubernetes config to deploy TeamCity server + three agents with mssql on azure
# Kubernetes deployment for teamcity server with three agents, each with mssql/development on azure.
# This assumes a two-node cluster
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: teamcity-server-premium-logs-disk
spec:
accessModes:
# https://docs.microsoft.com/en-us/azure/aks/azure-disks-dynamic-pv
@mikebridge
mikebridge / withQueryString.tsx
Created May 16, 2017 19:17
query string HOC for react-router 4
import * as React from "react";
type HOCWrapped<PWrapped, PHoc> = React.ComponentClass<PWrapped & PHoc> | React.SFC<PWrapped & PHoc>;
const queryString = require("query-string");
import {RouteComponentProps, withRouter} from "react-router";
export interface IQueryStringProps {
params: any;
@mikebridge
mikebridge / mouseOverComponent.tsx
Created June 26, 2017 03:42
listen to react mouseover events with rxjs
class MouseOverComponent extends React.Component {
componentDidMount() {
this.mouseMove$ = Rx.Observable.fromEvent(this.mouseDiv, "mousemove")
.throttleTime(1000)
.subscribe(() => console.log("throttled mouse move"));
}
componentWillUnmount() {
this.mouseMove$.unsubscribe();
@mikebridge
mikebridge / EventAggregator.cs
Last active March 10, 2021 02:28
A simple Event Aggregator that allows multiple subscribers per message type.
using System;
using System.Reactive.Linq;
using System.Reactive.Subjects;
// inspired by https://github.com/shiftkey/Reactive.EventAggregator/blob/master/src/Reactive.EventAggregator/EventAggregator.cs
namespace Messaging
{
public interface IEventAggregator : IDisposable
{
@mikebridge
mikebridge / NGrokHostname.psm1
Last active January 27, 2021 02:37
Get the running ngrok host name via PowerShell
function Get-NGrokHostName
{
Param(
[Parameter(Mandatory = $True)][String]$TunnelName
)
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$response = Invoke-WebRequest 'http://127.0.0.1:4040/api/tunnels'
$obj = $response.Content | ConvertFrom-Json
@mikebridge
mikebridge / cleanCache.ps1
Created February 7, 2019 19:27
Clear react-native android caches on windows with powershell
# This assumes that it's in a folder `scripts` beside the `build` folder.
#
# Try to address this error:
#
# Unable to resolve module `@blah/whatever` from `whatever.js`: Module `@blah/whatever` does not exist in the Haste module map
#
# This might be related to https://github.com/facebook/react-native/issues/4968
# To resolve try the following:
# 1. Clear watchman watches: `watchman watch-del-all`.
# 2. Delete the `node_modules` folder: `rm -rf node_modules && npm install`.
@mikebridge
mikebridge / withPersonalization2.tsx
Created May 4, 2017 22:30
A TypeScript HOC to inject props into a component from Redux
import * as React from "react";
import * as ReactRedux from "react-redux";
export interface IWithPersonalizationProps {
name: string;
}
type HOC<PWrapped, PHoc> = React.ComponentClass<PWrapped & PHoc> | React.SFC<PWrapped & PHoc>;
export function withPersonalization<P, S>(Component: HOC<P, IWithPersonalizationProps>): React.ComponentClass<P> {