Skip to content

Instantly share code, notes, and snippets.

@bhelx
bhelx / test.wat
Last active January 27, 2024 04:15
Just enough js code to parse and run a simple Wasm file. Very naive and just using this to learn the spec. don't use in a real system. `wat2wasm test.wat && node wam.js ./test.wasm`
(module
(func
(export "add41")
(param $n i32)
(result i32)
i32.const 41
local.get $n
i32.add
)
@bhelx
bhelx / improvements.md
Created December 5, 2023 19:43
0.5 -> 1.0 changes in extism
  • Port core of the runtime to wasm: Extism Kernel extism/extism#384
    • Extism is now a portable layer and we are no longer coupled to wasmtime!
  • New universal JS-SDK (browser, node, deno, & bun) https://github.com/extism/js-sdk
    • Universal library, no longer a separate node and a browser library
    • Uses native web platform Wasm support and threading (V8 in chrome, Deno, and Node; JSC in bun and Safari; and Spidermonkey in Firefox) instead of wasmtime
  • New Go-SDK https://github.com/extism/go-sdk
    • Switched out wasmtime with wazero thanks to the Extism kernel
    • Now no longer requires cgo and has a more idiomatic go API
  • Extism-CLI re-written in Go using new go-sdk https://github.com/extism/cli
  • Easier to install than python and installs as a single binary with no separate runtime object or python install
@bhelx
bhelx / recurly_bot.ex
Created November 30, 2016 01:50
Elixir Plug Cowboy Example
defmodule RecurlyBot do
use Application
# See http://elixir-lang.org/docs/stable/elixir/Application.html
# for more information on OTP Applications
def start(_type, _args) do
import Supervisor.Spec, warn: false
# Define workers and child supervisors to be supervised
children = [
#!/usr/bin/env python
#
# Converts any integer into a base [BASE] number. I have chosen 62
# as it is meant to represent the integers using all the alphanumeric
# characters, [no special characters] = {0..9}, {A..Z}, {a..z}
#
# I plan on using this to shorten the representation of possibly long ids,
# a la url shortenters
#
@bhelx
bhelx / plugin_server.ex
Created September 17, 2022 15:21
GenServer wrapper for Extism Plugin
defmodule ExtismElixirHost.PluginServer do
use GenServer
@impl true
def init() do
{:ok, nil}
end
@impl true
def handle_call({:new, manifest, wasi}, _from, plugin) do
@bhelx
bhelx / index.html
Created December 15, 2011 04:17
"tail -f" a file node 0.6.5 pipe to socket.io,
<!DOCTYPE html>
<html>
<head>
<title>Websockets tail Server</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<style type="text/css" rel="stylesheet">
body{background-color:#222;}
#info{ font-size: 32px; color:#000;text-shadow:#444 1px 1px 2px; text-align:right;margin:20px 10px;text-transform:lowercase;}
@bhelx
bhelx / annotate.py
Last active February 13, 2021 21:32
Refactoring the [neighborhood annotation script](https://github.com/codefornola/nola-neighborhood-annotation) to utilize [the nolabase](https://github.com/codefornola/nolabase/) instead of using all the data and doing the computation locally. This demonstrates using the nolabase as a dependency to a community run application or tool. Run it by p…
#!/usr/local/bin/python
# -*- coding: utf-8 -*-
# Refactoring the [neighborhood annotation script](https://github.com/codefornola/nola-neighborhood-annotation) to
# utilize [the nolabase](https://github.com/codefornola/nolabase/) instead of using all the data
# and doing the computation locally.
# This demonstrates using the nolabase as a dependency to a community run application or tool.
# Run it by passing a connection string and an input and output csv file:
# ```
# # get 2021 calls for service data as a test
@bhelx
bhelx / sql_canary.rb
Last active April 14, 2020 23:42
Pass a block of code to `while_enabled` to sniff out any SQL queries it might be making.
class SqlCanary
def self.enable!
Thread.current[:sql_canary] = true
end
def self.disable!
Thread.current[:sql_canary] = false
end
def self.enabled?
@bhelx
bhelx / test.php
Last active September 16, 2017 12:29
TLS Low Level Testing. You should expect to see it print TLS version 1.2.
<?php
// This example is for testing php with libcurl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.howsmyssl.com/a/check");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.