Skip to content

Instantly share code, notes, and snippets.

console.log((+(+!+[]+[+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[
@crcdng
crcdng / main.dart
Last active February 8, 2020 12:22
Flutter Static Canvas Example
// flutter static canvas example
// by @crcdng
// adapted from https://medium.com/flutter-community/flutter-custom-painter-circular-wave-animation-bdc65c112690 by @divyanshub024
import 'dart:math' as math;
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
@crcdng
crcdng / main.dart
Last active February 8, 2020 12:56
Flutter Animated Canvas Example
// flutter animated canvas example
// by @crcdng
// adapted from https://medium.com/flutter-community/flutter-custom-painter-circular-wave-animation-bdc65c112690 by @divyanshub024
import 'dart:math' as math;
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
@crcdng
crcdng / main.dart
Last active February 22, 2020 03:59
Dart Future example
import 'dart:async';
import 'dart:math';
void main() {
print("The main UI thread starts here.");
print("Now it will take 10 seconds to display news headlines.");
displayNews();
print("The main UI thread ends.");
}
// http://www.99-bottles-of-beer.net/
void main() {
for (int beer = 99; beer >= 0; beer--) {
String bottles = beer > 1 ? "bottles" : "bottle";
String bottlesLeft = beer == 1 ? "no more" : (beer - 1).toString();
String leftBottles = beer == 2 ? "bottle" : "bottles";
String beerline =
'$beer $bottles of beer on the wall, $beer $bottles of beer.\nTake one down and pass it around, $bottlesLeft $leftBottles of beer on the wall.';
String lastline =
@crcdng
crcdng / pd_crash_on_startup.md
Last active June 14, 2020 23:06
An old bug that causes pure data (https://puredata.info/) to crash at startup.

pd startup crash

When pure data (https://puredata.info/) crashes at startup, open the sketch with a text editor.

If you see a minus in a line like this

#N canvas 38 -769 692 735 12;

delete the minus

@crcdng
crcdng / mta_td.md
Last active July 3, 2020 13:28
How to get MTA live data in TouchDesigner

How to get New York city subway live data in TouchDesigner

This is a short write up on how I am getting live data from the New York city subway https://new.mta.info/ (metro, underground, U-Bahn, however you call it) in TouchDesigner https://derivative.ca/. It is a bit terse and requires some tinkering, installing, using git and changing settings. Hit me up on Twitter if you have any questions (https://twitter.com/crcdng).

Many live data feeds come with a REST API where you can call a web service and get data back back in JSON format. The realtime subway data uses a different mechanism called GTFS Realtime, which is based on Protocol Buffers (https://developers.google.com/transit/gtfs-realtime/). I believe you can get the data in JSON format for Google Maps, but here I will retrieve it directly with Python, the included scripting language of choice in TouchDesigner.

Before retrieving the data within Touch, I will get it with a Python script running outside of Touch. The reasons are (1) in this way the ne

@crcdng
crcdng / Unity3D tips.md
Last active August 2, 2020 21:05
A few learnings from working with Unity3D https://unity.com/ (regularly updated)

Unity3D tips

1. Avoid creating objects inside the game loop.

Unfortunately one of the first things you see in many Unity game tutorials is a mistake.

Wrong:

using System.Collections;

A temporary note on machine vision with ML Kit and Flutter

  1. Firebase ML Kit is deprecated (https://developers.google.com/ml-kit/migration). All 3rd-party published tutorials I could find on September 6, 2020 are referring to the deprecated APIs.

  2. As of June 3, 2020 the new products / APIs are ML Kit (https://developers.google.com/ml-kit) and Firebase Machine Learning aka Firebase ML, in beta (https://firebase.google.com/products/ml).

  3. Flutter (https://flutter.dev/) features a plugin from the Firebase team named firebase_ml_vision, described as "A Flutter plugin to use the capabilities of Firebase ML, which includes all of Firebase's cloud-based ML features, and ML Kit, a standalone library for on-device ML, which can be used with or without Firebase" (https://pub.dev/packages/firebase_ml_vision). Thus the plugin is supposed to cover both ML Kit (which can be used without Firebase) and Firebase ML. Its name therefore could lead to confusion.

  4. As of September 6, 2020, the plugin, however, does no

@crcdng
crcdng / headless-pi.md
Last active February 1, 2021 11:06
How to set up your Raspberry Pi including WiFi without monitor and keyboard from a Mac.

Set up Your Raspberry Pi Headless in 10 Easy 🤔 Steps

Goal

You want to set up your Raspberry Pi without monitor and keyboard. This is sometimes called "headless". Don't worry, you'll keep your head if you follow these step-by-step instructions (however, see license and disclaimer below). We will install the Raspbian operating system and configure the Pi WiFi from a Terminal session on a Mac.

Prerequisites / Assumptions

You have:

  • A Mac with a SD card reader (either built in or an USB device).
  • A Raspberry Pi 3 B (A Pi 2 B with a compatible WiFi dongle works as well).