Skip to content

Instantly share code, notes, and snippets.

Tyler JavadocMD

Block or report user

Report or block JavadocMD

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
@JavadocMD
JavadocMD / opt.ts
Last active Jul 25, 2019
Possible optional chaining gains?
View opt.ts
// Without optional chaining.
export const getInstance = async (instanceId: string): Promise<Instance> => {
const result = await ec2Client
.describeInstances({ InstanceIds: [instanceId] })
.promise()
if (!result.Reservations) {
throw new Error(`Could not find instance ${instanceId}`)
}
if (result.Reservations.length > 1) {
@JavadocMD
JavadocMD / store.ts
Created Jul 25, 2019
TypeScript React/Redux Example
View store.ts
// user/store.ts
import * as Redux from 'redux'
import { anonymous, authenticated, User, UserData } from './User'
/* State */
export interface State {
readonly user: User
}
@JavadocMD
JavadocMD / OptionWithNever.ts
Created Jul 22, 2019
A simple example demonstrating the use of never in TypeScript.
View OptionWithNever.ts
// Let's assume we're writing our own Option type (in practice, you should probably use fp-ts or something).
export abstract class Option<T> {
public abstract map<U>(f: (t: T) => U): Option<U>
}
// Some needs a type parameter so we know what value it has.
export class Some<T> extends Option<T> {
constructor(public readonly value: T) {
super()
}
@JavadocMD
JavadocMD / ObservablesExamples.cs
Last active Oct 20, 2017
UniRx Before and After Example: loading a catalog from a web API while falling back to two on-disk sources.
View ObservablesExamples.cs
// First the solution as provided, using UniRx.
public class ObservablesExample {
// The CatalogInfo, this is non-null immediately after calling LoadCatalog().
public IObservable<CatalogInfo> CatalogInfo;
// Helper methods, where the work of loading is done.
// UniRx makes it painless to execute these off the main thread.
// Errors are handled by Observable.OnError
private IObservable<CatalogInfo> LoadFromPlayFab() { /* ... */ }
@JavadocMD
JavadocMD / Login.cs
Created Jun 20, 2017
Use of a partial class to implement platform-specific logic in Unity.
View Login.cs
namespace Login {
public static partial class Login {
// Call this from the outside to log in
public static void LogIn() {
DoLogIn();
}
// Implementation delegate
@JavadocMD
JavadocMD / chrome_open_bookmark.py
Created Nov 12, 2016
A script to open Chrome bookmarks or entire folders of bookmarks by name. (Windows)
View chrome_open_bookmark.py
#!/usr/bin/env python
import os, subprocess, json
# Get all bookmarks matching the given name(s)
def get_bookmarks(profile_dir, names):
with open(os.path.join(profile_dir, 'Bookmarks')) as f:
j = json.load(f)
results = []
# There are two root-level bookmark folders: one for the bookmark bar and one for all others.
@JavadocMD
JavadocMD / sof.scala
Created Nov 3, 2016
Sequence of Futures
View sof.scala
def details(since: Option[LocalDate], until: Option[LocalDate], page: Int): Future[NumberedDetailsPage] = { ... }
details(since, until, 1).flatMap { page1 =>
val pagesFuture = Future.sequence(
for {
n <- (2 to page1.details.totalPages).toList
} yield {
details(since, until, n)
}
@JavadocMD
JavadocMD / CompileIndicator.cs
Last active Jul 11, 2019
A Unity script to play a sound effect when script compiling starts and ends.
View CompileIndicator.cs
using System;
using System.Reflection;
using UnityEditor;
using UnityEngine;
// I recommend dropping this script in an Editor folder.
// You should have two audio clips somewhere in the project.
// You'll need to edit-in the paths of those clips (from your project root folder) in the static initializer below.
// Example path: "Assets/Editor/CompileIndicator/start.mp3"
@JavadocMD
JavadocMD / UniRxCharacterV3.cs
Created Jul 20, 2016
Developing a first person controller for Unity3D with UniRx: Part 3
View UniRxCharacterV3.cs
using UnityEngine;
using UniRx;
using UniRx.Triggers;
namespace Assets.Scripts.v3 {
public class InputsV3 : MonoBehaviour {
// Singleton.
public static InputsV3 Instance { get; private set; }
@JavadocMD
JavadocMD / UniRxCharacterV2.cs
Last active Mar 13, 2019
Developing a first person controller for Unity3D with UniRx: Part 2
View UniRxCharacterV2.cs
using UnityEngine;
using UniRx;
using UniRx.Triggers;
// NOTE: Unity won't actually let you put two MonoBehaviours in one file.
// They're both listed here just for convenience.
namespace Assets.Scripts.v2 {
public class InputsV2 : MonoBehaviour {
You can’t perform that action at this time.