Skip to content

Instantly share code, notes, and snippets.

View adityapurwa's full-sized avatar
🚀
Relearning everything

Aditya Purwa adityapurwa

🚀
Relearning everything
View GitHub Profile
@adityapurwa
adityapurwa / PresidentialDebateWhisperGPT4.md
Created December 14, 2023 01:19
First Presidential Debate: Whisper - GPT 4

DISCLAIMER: THIS IS A RAW GENERATED OUTPUT FROM WHISPER -> GPT PROCESSING IT MIGHT CONTAINS INACCURACIES AND HALLUCINATIONS FROM GPT THIS OUTPUT IS NOT A REPLACEMENT FOR THE ACTUAL DEBATE RECORDING YOU ARE NOT ALLOWED TO USE ANY PARTS OF THIS DOCUMENT AS A REFERENCE, QUOTATIONS, OR AN EXCERPT

Baik, berikut adalah transkrip debat yang sudah diolah agar lebih mudah dibaca:


Moderator:

@adityapurwa
adityapurwa / shared-cached-fetch.ts
Created June 8, 2020 04:34
Shared and Cached Fetch
// Simulate network call
function fetch(url: string): Promise<{ expired: boolean; url: string }> {
console.log(`NETWORK CALL (${url})`);
const randomDelay = Math.round(Math.random() * 1000 + 100);
return new Promise((res, rej) => {
setTimeout(
() =>
res({
expired: true,
url
@adityapurwa
adityapurwa / CMakeLists.txt
Created July 11, 2019 05:45
CMake Untuk Libuv
cmake_minimum_required(VERSION 3.14)
project(hello C)
# Sesuaikan dengan struktur direktori kalian
include_directories(../libuv-v1.9.1/include)
link_libraries(uv)
set(CMAKE_C_STANDARD 99)
add_executable(hello main.c)
@adityapurwa
adityapurwa / main.c
Last active July 11, 2019 05:14
Libuv HTTP Client Example
#include <stdio.h>
#include <stdlib.h>
#include <uv.h>
#include <assert.h>
void alloc_buffer(uv_handle_t *handle, size_t suggested_size, uv_buf_t *buf) {
// Di sini kita membantu uv untuk mengalokasikan buffer sesuai yang kita inginkan
buf->base = malloc(suggested_size);
buf->len = suggested_size;
}
@adityapurwa
adityapurwa / uang.js
Created April 6, 2019 02:13
Solving the denominators reasoning of Indonesia's Rupiah
// Targets adalah nilai yang harus dicapai oleh kombinasi angka
// disederhanakan menjadi satuan, karena pada dasarnya untuk ratusan
// dan ribuan dan seterusnya hanya berbeda kelipatan 10
const targets = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// dengan asumsi combinations adalah seperti:
// [1] [1,2] [1,2,3] [2,3] dst...
const combinations = [];
function ycombinator(size, prev, next) {
if (ctx.AWAIT()) {
// Kita copy semua yang ada di bawah await
const copyChildren = children.concat();
// This is required to prevent the core runner from continuing executing
// Hapus dari runner utama
children.splice(0, children.length);
// Evaluate the method call (for now this is just reply())
if (this.coreMethods.hasOwnProperty(variable.ID().text)) {
return this.coreMethods[variable.ID().text].apply(this, [
answer => {
public run(): void {
// Empat baris ini yang bisa kita gunakan untuk memanggil file yang dihasilkan oleh ANTLR
const charStream = new ANTLRInputStream(this.source);
const lexer = new ArubickLexer(charStream);
const tokenStream = new CommonTokenStream(lexer);
const parser = new ArubickParser(tokenStream);
RootSolver.workingDirectory = this.sourceDirectory;
// Kita memanggil rule `program` di parser kita, parser akan mengembalikan struktur program yang ada.
// Kita tentukan rule/aturan nama storage adalah ID/ID.
storage
: ID '/' ID
;
// Sedangkan aturan untuk pendeklarasian storage adalah dengan token DEF, diikuti nama storage
defStorage
: DEF storage
;
grammar Arubick;
// Whitespace, karena Arubick tidak menganggap whitespace penting, maka diberi tanda -> skip
WS
: [ \t]+ -> skip
;
// Sama seperti whitespace
EOL
: [\r\n]+ -> skip
@adityapurwa
adityapurwa / arubick-example.rbot
Last active January 25, 2019 14:28
Arubick's Bot Example
RandomBot:0.0.1 # Baris pertama adalah nama dan versi bot yang dibuat
def ext/random = extern("./js/random.js") # Digunakan untuk mengimpor sebuah fungsi JavaScript
# Intent di Arubick adalah pencarian string sederhana, jika ada string "random" di sebuah kalimat, berarti intentnya query
def intent/query = [
"random"
]
def intent/greet = [
"hi",