Skip to content

Instantly share code, notes, and snippets.

View Jaballadares's full-sized avatar

John Balladares Jaballadares

View GitHub Profile
@NatElkins
NatElkins / cloud-init.yaml
Created March 8, 2025 22:09
cloud-init script for VPS
#cloud-config
# Enable automatic package updates and upgrades during cloud-init execution
package_update: true
package_upgrade: true
packages:
# Security and Hardening
- ufw
- fail2ban
@rmtbb
rmtbb / ChatGPT Canvas HTML Renderer from Clipboard.url
Last active April 24, 2025 10:07
Bookmarklet that lets you render a full HTML page with any included css and javascript that is currently copied to your clipboard. Also works for SVG code. Useful with ChatGPT Canvas
javascript:(function(){try{navigator.clipboard.readText().then(function(t){if(t){var e=window.open("","_blank","width=800,height=600");e.document.open(),e.document.write(t),e.document.close()}else alert("Clipboard is empty. Please copy some text to the clipboard first.")}).catch(function(t){console.error("Failed to read clipboard contents: ",t),alert("An error occurred while trying to access the clipboard. Please ensure your browser allows clipboard access.")})}catch(t){console.error("An error occurred:",t),alert("An error occurred while trying to open the new window with the clipboard content.")}})();//bookmarklet_title: HTML Preview from Clipboard
@simonw
simonw / rag-demo.ts
Created June 20, 2024 17:17
Val.Town demo from this morning
import { basicAuth } from "https://esm.town/v/pomdtr/basicAuth?v=65";
import Anthropic from "npm:@anthropic-ai/[email protected]";
const anthropic = new Anthropic();
async function suggestKeywords(question) {
const message = await anthropic.messages.create({
max_tokens: 128,
model: "claude-3-5-sonnet-20240620",
tools: [{
@phechzzz
phechzzz / regexTutorial.md
Last active January 2, 2024 18:46
Regex Tutorial: Matching an Email

Regex: Matching an Email

Regular expressions are powerful search tools comprised of a sequence of defining characters. With regex, you can search, validate, replace, and extract strings of text based on these defining characters.

Summary

In this tutorial, we will break down a regex used to match an email using the following code snippet:
/^([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+)\.([a-zA-Z]{2,})$/
Going character by character, we will work through this snippet of code to understand how it is defining search parameters. Regular expressions can feel overwhelming at first, but by breaking the code down into different defining groups, we can easily understand how this expression is working.

@simonw
simonw / explain-selected.js
Last active October 26, 2024 04:30
JavaScript function to explain selected text on the page using GPT 3.5
(function() {
const OPENAI_API_KEY = 'sk-...';
let selectedText = window.getSelection().toString().trim();
if (selectedText.length > 0) {
let body = JSON.stringify({
model: 'gpt-3.5-turbo',
messages: [{role: 'system', content: 'explain this succinctly' },{ role: 'user', content: selectedText }]
});
fetch('https://api.openai.com/v1/chat/completions', {
method: 'POST',
@0xdevalias
0xdevalias / _deobfuscating-unminifying-obfuscated-web-app-code.md
Last active April 26, 2025 02:08
Some notes and tools for reverse engineering / deobfuscating / unminifying obfuscated web app code
@san-kumar
san-kumar / gist:b3604ca40905556b4135fee64ead58f2
Last active January 26, 2025 13:45
tampermonkey script to show summaries on hacker news
// ==UserScript==
// @name hn summary (kagi)
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://news.ycombinator.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=ycombinator.com
// @grant GM_xmlhttpRequest
// @require https://code.jquery.com/jquery-3.4.1.min.js
/*
Autosend Invites to anyone that shares X number of connections with you.
Way to use this script:
1. Save it as a bookmarklet
2. Go to 'People you may know'
3. Click on this bookmarklet.
4. Enter number of overlapping connections
5. Check your console
@NickDeckerDevs
NickDeckerDevs / hubspot-better-assocation-loop.js
Created December 7, 2022 18:04
looping through deal => contact assocations in hubspot, then associating them
const hubspot = require('@hubspot/api-client');
exports.main = async (event, callback) => {
const hubspotClient = new hubspot.Client({
accessToken: process.env.custom_code_private_app
});
try {
const request = require('request');
exports.main = async (event, callback) => {
/* BE SURE TO ADD THE CONTACT ID INTO THE 'PROPERTY TO INCLUDE IN CODE' SECTION OF THE CUSTOM CODED ACTION */
const contact_id = event.inputFields['hs_object_id'];
/* LOOK UP THE CONTACT VIA THE ID AND RETRIEVE THE PROPERTY 'hs_additional_emails' */
var options = {
"method": "GET",
"url": "https://api.hubapi.com/crm/v3/objects/contacts/" + contact_id + "?hapikey=" + process.env.HAPIKEY + "&properties=hs_additional_emails"