Skip to content

Instantly share code, notes, and snippets.

@JulianG
JulianG / ObjectPool.as
Last active December 10, 2015 16:28
General purpose AS3 Object Pool class
package
{
/**
* ObjectPool Class
* @author Julian
*/
public class ObjectPool
{
private var _list:Array;
/*
tslint:disable no-any
tslint:disable no-empty
*/
class MutedConsole implements Console {
memory: any;
Console: NodeJS.ConsoleConstructor;
assert(test?: boolean, message?: string, ...optionalParams: any[]): void { }

Keybase proof

I hereby claim:

  • I am juliang on github.
  • I am juliang (https://keybase.io/juliang) on keybase.
  • I have a public key ASC6w3PW2ig7pBT3EOlvCiqZnC4W60rPOG57MHiE4C807wo

To claim this, I am signing this object:

@JulianG
JulianG / null-checking.md
Last active February 8, 2019 15:34
Null Checking in TypeScript

Null Checking in TypeScript

Following up on the previous gist about avoiding non-null-assertion operator I think it would be good to see some examples of null checking in TypeScript.

Assumming we're using TypeScript with --strictNullChecks, and that this is what a banana looks like:

type Banana = {
  id: number,
  open: () => void
};
@JulianG
JulianG / introducing-bananatabs.md
Last active February 18, 2019 12:31
Introducing Banana Tabs!

Introducing Banana Tabs!

Has this ever happened to you?

You keep lots of tabs in a single window to the point where you can't tell what's what anymore.

too many tabs

Or worse: you try -like me- to group your tabs by task, or subject, or anything, and as a result you end up with too many windows instead:

@JulianG
JulianG / testing-opinions.md
Last active February 27, 2019 14:06
Testing Opinions

Testing Opinions

⚠️ Warning! This article is highly opinionated.

It happens often at work that my colleagues and I discuss the best way or the proper way to test a specific React component. We don't always agree.

Testing the output of a function is not the same as testing its implementation details.

Avoid Testing Implementation Details

@JulianG
JulianG / spread-vs-slice.md
Last active July 18, 2019 15:31
spread vs slice

DON'T DO THIS!

When working on legacy projects it may be tempting to go around changing

const myCopy = arr.slice();

with:

@JulianG
JulianG / no-implicit-any.md
Last active July 19, 2019 06:31
Catching bugs with stricter TypeScript

Catching bugs with stricter TypeScript

We recently enabled "noImplicitAny" in a relatively old TypeScript project. It resulted in 269 new errors. Most of those were missing type annotations but in a few cases, we found problems with the code. These had been around for months and were not caught by our test suite.

TL;DR;

We should prefer strict TypeScript configurations to catch issues, not just at compile-time, but (with a good IDE) as we type.

We should try to keep up-to-date with TypeScript versions to benefit from the ever-improving error messages; saving development time.

@JulianG
JulianG / machine.js
Created October 6, 2019 20:39
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
@JulianG
JulianG / escape-the-mines.ts
Last active November 11, 2019 15:04
Daily Challenge #107 - Escape the Mines
// Daily Challenge #107 - Escape the Mines
// A poor miner is trapped in a mine and you have to help him to get out!
// The mine is completely dark so you have to tell him where to go.
// https://dev.to/thepracticaldev/daily-challenge-107-escape-the-mines-2036
// Based on: https://www.redblobgames.com/pathfinding/a-star/introduction.html
// by @redblobgames