Skip to content

Instantly share code, notes, and snippets.

@Venryx
Venryx / DialogFlowExample.ts
Last active July 14, 2020 09:56
How to get a Google auth-token for DialogFlow, entirely from front-end JavaScript
import {GetAccessToken, ClaimSet} from "./GoogleAuth";
const projectID = "XXXXXX";
// session-id can apparently be set to an arbitrary value, eg. "abcd1234-abcd-abcd-abcd-abcd12345678".
const sessionID = "XXXXXX";
const serviceAccountEmail = `XXXXXX@${projectID}.iam.gserviceaccount.com`;
const serviceAccountPrivateKey = `-----BEGIN PRIVATE KEY-----\nXXXXXX\n-----END PRIVATE KEY-----`;
export async function ConvertSpeechToText(audioData_str_opus: string): Promise<string> {
const claimSet = new ClaimSet(["https://www.googleapis.com/auth/cloud-platform"], serviceAccountEmail);
@Venryx
Venryx / WebpackConfig.js
Created September 8, 2019 03:10
Example inline-plugin to replace CopyWebpackPlugin
[...]
let fs = require("fs-extra");
webpackConfig.plugins.push({
apply(compiler) {
console.log(`Valid hook names: ${Object.keys(compiler.hooks)}`);
//compiler.hooks.beforeRun.tap("CopyPlugin_Custom", params=>{
compiler.hooks.shouldEmit.tap("CopyPlugin_Custom", params=>{
console.log(`Copying some difficult files (eg. *.wasm) from "node_modules/..." to "Resources/FromNodeModules/...".`);
@Venryx
Venryx / Main.ts
Last active June 30, 2021 20:03
String.AsMultiline
declare global {
interface String {
/**
* Reformats a multi-line string to represent the actual intended "block" of text.
* @param desiredIndent How much to indent each line. (after removal of the first-line indent-length from each of them)
*/
AsMultiline(desiredIndent: number): string;
}
}
String.prototype.AsMultiline = function(this: string, desiredIndent: number = null) {
@Venryx
Venryx / AndroidManifest.xml
Last active May 1, 2024 05:59
Record audio on Android in the background (even when screen is off)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.myapp">
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme">
<service android:name=".ForegroundService" android:enabled="true" android:exported="true"></service>
<activity
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
@Venryx
Venryx / RomajiConverter.ts
Last active April 17, 2021 20:26
Hiragana/Katakana to Romaji Converter (Typescript/Javascript)
// Raw chart text obtained by simple copy-paste from: https://en.wikipedia.org/wiki/Hepburn_romanization#Romanization_charts
const rawChartText = `
あ ア a い イ i う ウ u え エ e お オ o
か カ ka き キ ki く ク ku け ケ ke こ コ ko きゃ キャ kya きゅ キュ kyu きょ キョ kyo
さ サ sa し シ shi す ス su せ セ se そ ソ so しゃ シャ sha しゅ シュ shu しょ ショ sho
た タ ta ち チ chi つ ツ tsu て テ te と ト to ちゃ チャ cha ちゅ チュ chu ちょ チョ cho
な ナ na に ニ ni ぬ ヌ nu ね ネ ne の ノ no にゃ ニャ nya にゅ ニュ nyu にょ ニョ nyo
は ハ ha ひ ヒ hi ふ フ fu へ ヘ he ほ ホ ho ひゃ ヒャ hya ひゅ ヒュ hyu ひょ ヒョ hyo
ま マ ma み ミ mi む ム mu め メ me も モ mo みゃ ミャ mya みゅ ミュ myu みょ ミョ myo
や ヤ ya ゆ ユ yu よ ヨ yo
@Venryx
Venryx / index.html
Created April 4, 2019 23:47 — forked from JobLeonard/index.html
Join vs Template - Venryx (http://jsbench.github.io/#a8a564f66be7840376640c3060846208) #jsbench #jsperf
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Join vs Template - Venryx</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/benchmark/1.0.0/benchmark.min.js"></script>
<script src="./suite.js"></script>
</head>
<body>
<h1>Open the console to view the results</h1>
@Venryx
Venryx / index.html
Created December 6, 2018 15:20
Electron Fiddle Gist
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
</head>
<body>
<h1>Hello World!</h1>
<!-- All of the Node.js APIs are available in this renderer process. -->
We are using Node.js <script>document.write(process.versions.node)</script>,
@Venryx
Venryx / index.html
Created December 6, 2018 15:20
Electron Fiddle Gist
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
</head>
<body>
<h1>Hello World!</h1>
<!-- All of the Node.js APIs are available in this renderer process. -->
We are using Node.js <script>document.write(process.versions.node)</script>,
@Venryx
Venryx / ReasonScore.ts
Created March 27, 2018 17:05
ReasonScore - Draft 4
import { MapNodeL3 } from "Store/firebase/nodes/@MapNode";
import { GetNodeChildrenL2, GetNodeChildrenL3 } from "Store/firebase/nodes";
import {MapNodeL2, Polarity, LayerPlusAnchorParentSet} from "../nodes/@MapNode";
import {IsSpecialEmptyArray, emptyArray_forLoading} from "../../../Frame/Store/ReducerUtils";
import {GetFinalPolarity} from "../nodes/$node";
import {MapNodeType} from "../nodes/@MapNodeType";
import { Lerp } from "js-vextensions";
import { ArgumentType } from "Store/firebase/nodes/@MapNodeRevision";
export function RS_CalculateTruthScore(node: MapNodeL3) {
@Venryx
Venryx / ReasonScore.ts
Created March 27, 2018 14:38
ReasonScore - Draft 3
import { MapNodeL3 } from "Store/firebase/nodes/@MapNode";
import { GetNodeChildrenL2, GetNodeChildrenL3 } from "Store/firebase/nodes";
import {MapNodeL2, Polarity} from "../nodes/@MapNode";
import {IsSpecialEmptyArray, emptyArray_forLoading} from "../../../Frame/Store/ReducerUtils";
import {GetFinalPolarity} from "../nodes/$node";
import {MapNodeType} from "../nodes/@MapNodeType";
export function RS_CalculateTruthScore(node: MapNodeL3) {
Assert(node.type == MapNodeType.Claim, "RS truth-score can only be calculated for a claim.");