Avatar

maxm

🕳️
Joined January 12, 2023
Likes
43
iamseeley avatar
sendSMS
@iamseeley
Script
💬 Val Town Email-to-SMS Usage import { sendSMS } from 'https://esm.town/v/iamseeley/sendSMS'; sendSMS(phoneNumber: string, message: string, carrier: string): Promise<void> Parameters phoneNumber: The recipient's phone number (string of digits, no spaces or dashes) message: The text message you want to send carrier: The recipient's cell phone carrier. Supported carriers: 'att' (AT&T), 'tmobile' (T-Mobile), 'verizon' (Verizon), 'sprint' (Sprint) List of Email-To-SMS Addresses Comment on this val if you'd like me to add a carrier from the above list! Example import { sendSMS } from 'https://esm.town/v/iamseeley/sendSMS'; sendSMS('1234567890', 'Hello from Val Town!', 'verizon');
maxm avatar
asciiNycCameras
@maxm
HTTP
ASCII NYC Traffic Cameras All of NYC's traffic cameras available as streaming ASCII images: https://maxm-asciinyccameras.web.val.run/ NYC has a bunch of traffic cameras and makes them available through static images like this one . If you refresh the page you'll see the image update every 2 seconds or so. I thought it might be fun to make these cameras viewable as an ASCII art video feed. I made a small library that takes most of its logic from this repo . You can see a basic example of how to convert any image to ASCII here . I pull in NYC GeoJSON from here and then hook up a Server-Sent Events endpoint to stream the ASCII updates to the browser. (Polling would work just as well, I've just been on a bit of a SSE kick lately.) Hilariously (and expectedly) The ASCII representation is about 4x the size of the the source jpeg and harder to see, but it has a retro-nostalgia look to it that is cool to me :)
maxm avatar
multiplayerCircles
@maxm
HTTP
Multiplayer Circles Move circles around. State is synced with the server. Open a window in another tab and watch the circles update as you move them .
maxm avatar
streamingGif
@maxm
HTTP
An animated gif that streams the current time:
thesephist avatar
webgen
@thesephist
HTTP
Made on Val Town livestream. This project is a kind of a mini tribute to Websim . To-dos: Spruce up styles a bit Write this README ~Add a cache!~ ~Try moving style tag to the bottom by prompting so content appears immediately and then becomes styled~ didn't work b/c CSS parsing isn't progressive Need more prompting to get the model not to generate placeholder-y content Better root URL page / index page with links to some good sample generations
maxm avatar
valTownChatGPT
@maxm
HTTP
ChatGPT Implemented in Val Town Demonstrated how to use assistants and threads with the OpenAI SDK and how to stream the response with Server-Sent Events.
pomdtr avatar
setEnv
@pomdtr
Email
Set an env var In val.town, Deno.env.set does nothing. This val fixes it.
pomdtr avatar
devtools
@pomdtr
Script
Devtools shortcuts Add useful shortcuts to a val website. Usage /_edit -> go to the val editor /_raw -> view val source /_logs -> view val logs Example import { devtools } from "https://esm.town/v/pomdtr/devtools"; export default devtools((_req: Request) => { return new Response("hello world"); });
maxm avatar
freshChartsExample
@maxm
HTTP
Deno Fresh Charts Example Cobbled together from here: https://github.com/denoland/fresh_charts/tree/main/examples Render charts as HTML or as images. This image is rendered by the val below:
alvi avatar
SteamPlaytimeHistory_playHistoryToSqlite
@alvi
Cron
This val is part of the SteamPlaytimeHistory project which consists of logging your recently played games on steam everyday through valve's API. I wanted to log this data so I can analyse which days do I game the most ? which periods do I log the most hours in my confort game (Dead By Daylight) ? And so on. I think the data viz possibilities are super interesting, just like when Valve releases the "Steam in review" at the end of the year This val fetches your recent playtime history from valve's API and stores it in a database every day ! The project uses multiple vals to work: First you need to create the table to store the data: https://www.val.town/v/alvi/SteamPlaytimeHistory_createPlayHistoryTable You can then interact with the table using this drizzle schema: https://www.val.town/v/alvi/SteamPlaytimeHistory_playHistorySchema Optionnaly, you can backup your data with a csv file in your email every month: https://www.val.town/v/alvi/SteamPlaytimeHistory_exportDbToEmail Finally, you can run this val every day (or more) to log the data to the sqlite table To run this project, you'll need: A steam web api key: https://steamcommunity.com/login/home/?goto=%2Fdev%2Fapikey SteamID of the user (profile needs to be public) Discord websocket url (for error messages)
xkonti avatar
extractHttpEndpoint
@xkonti
Script
Slimmed down version of pomdtr/extractValInfo that focuses on extracting the HTTP endpoint URL of the Val. Example usage: const apiUrl = extractHttpEndpoint(import.meta.url);
wking avatar
generativeNoise
@wking
HTTP
Generative Noise Demo This is based on a post I wrote on Craft Lab The article breaks down the basic building blocks that go into most generative projects.
maxm avatar
bloomingButton
@maxm
Script
Add a blooming emoji effect when a button is clicked. Import this val as a module and add the bloom-button class to your button. Demo here: https://www.val.town/v/maxm/bloomingButtonDemo /** @jsxImportSource https://esm.sh/react */ import { renderToString } from "npm:react-dom/server"; export default async function(req: Request): Promise<Response> { return new Response( renderToString( <> <link rel="stylesheet" href="https://jenil.github.io/bulmaswatch/simplex/bulmaswatch.min.css" /> <div style={{ textAlign: "center", marginTop: "100px" }}> <button className="is-success button bloom-button" id="treeButton">Click Me</button> </div> <script type="module" src="https://esm.town/v/maxm/bloomingButton" /> </>, ), { headers: { "content-type": "text/html" } }, ); }
janpaul123 avatar
valtownsemanticsearch
@janpaul123
HTTP
😎 VAL VIBES: Val Town Semantic Search This val hosts an HTTP server that lets you search all vals based on vibes. If you search for "discord bot" it shows all vals that have "discord bot" vibes. It does this by comparing embeddings from OpenAI generated for the code of all public vals, to an embedding of your search query. This is an experiment to see if and how we want to incorporate semantic search in the actual Val Town search page. I implemented three backends, which you can switch between in the search UI. Check out these vals for details on their implementation. Neon: storing and searching embeddings using the pg_vector extension in Neon's Postgres database. Searching: janpaul123/semanticSearchNeon Indexing: janpaul123/indexValsNeon Blobs: storing embeddings in Val Town's standard blob storage , and iterating through all of them to compute distance. Slow and terrible, but it works! Searching: janpaul123/semanticSearchBlobs Indexing: janpaul123/indexValsBlobs Turso: storing and searching using the sqlite-vss extension. Abandoned because of a bug in Turso's implementation. Searching: janpaul123/semanticSearchTurso Indexing: janpaul123/indexValsTurso All implementations use the database of public vals , made by Achille Lacoin , which is refreshed every hour. The Neon implementation updates every 10 minutes, and the other ones are not updated. I also forked Achille's search UI for this val. Please share any feedback and suggestions, and feel free to fork our vals to improve them. This is a playground for semantic search before we implement it in the product for real!
maxm avatar
valTownAnalytics
@maxm
HTTP
Val Town Analytics WIP!
andrewgao avatar
imgGenUrl
@andrewgao
HTTP
URL to AI Image Source code credit: @maxm on val.town