Public vals
108
![yawnxyz avatar](https://images.clerk.dev/oauth_github/img_2NnaHhpxNuH1xWRIRjQNoo16TVc.jpeg)
dobby
@yawnxyz
Script
Simple wrapper class around valtown's sqlite https://www.val.town/v/yawnxyz/dobby // Example usage:
const dobby = new Dobby("myDatabase", [
{ name: "id", type: "INTEGER", primaryKey: true },
{ name: "name", type: "TEXT", notNull: true },
{ name: "age", type: "INTEGER" },
{ name: "balance", type: "REAL" },
]);
await dobby.createDatabase();
// Insert some sample data
await dobby.insert({ id: 1, name: "John Doe", age: 30, balance: 1000.50 });
await dobby.insert({ id: 2, name: "Jane Smith", age: 25, balance: 2000.75 });
await dobby.insert({ id: 3, name: "Bob Johnson", age: 40, balance: 1500.25 });
// Filter examples
const results1 = await dobby.filter({ age: { gt: 25 } });
console.log("Users older than 25:", results1);
const results2 = await dobby.filter({ name: { like: '%John%' } });
console.log("Users with 'John' in their name:", results2);
const results3 = await dobby.filter({ balance: { between: [1000, 2000] } });
console.log("Users with balance between 1000 and 2000:", results3);
const results4 = await dobby.filter({ age: { in: [25, 30, 35] } });
console.log("Users aged 25, 30, or 35:", results4);
const results5 = await dobby.filter({ name: { ne: 'John Doe' } }, { limit: 2 });
console.log("Up to 2 users not named John Doe:", results5);
// Search examples
const searchResults1 = await dobby.search("name", "John");
console.log("Users with 'John' in their name:", searchResults1);
const searchResults2 = await dobby.search("name", "son", { limit: 1 });
console.log("First user with 'son' in their name:", searchResults2);
// You can search in any text column
const searchResults3 = await dobby.search("age", "3");
console.log("Users with '3' in their age:", searchResults3);
// Example of using the new dropDatabase function
await dropDatabase("myDatabase");
![yawnxyz avatar](https://images.clerk.dev/oauth_github/img_2NnaHhpxNuH1xWRIRjQNoo16TVc.jpeg)
geminiBbox
@yawnxyz
HTTP
Gemini AI Object Detection and Bounding Box Visualizer This application visualizes object detection results by drawing bounding boxes on images using the Google's Gemini 1.5 Pro AI model . Try using this image of 8 bananas, with 1 row and 1/2/4 columns: https://f2.phage.directory/blogalog/bananas-8.png Or this image of a phage plaque assay, with 3x3 grid and high contrast turned on: https://f2.phage.directory/blogalog/pae7.png This app is an adaptation of Simon Willison's idea, which you can read more about here: https://simonwillison.net/2024/Aug/26/gemini-bounding-box-visualization/ API keys are only stored in your browser's local storage. Source code: https://www.val.town/v/yawnxyz/geminiBbox/ Original Source: https://github.com/simonw/tools/blob/main/gemini-bbox.html
![yawnxyz avatar](https://images.clerk.dev/oauth_github/img_2NnaHhpxNuH1xWRIRjQNoo16TVc.jpeg)
turnitdown
@yawnxyz
HTTP (preview)
HTML to Markdown Converter This is a simple web application that converts HTML to Markdown. It provides a clean and efficient way to transform HTML content into Markdown format, which is widely used for documentation and content creation. Features Easy-to-use Interface : Simple textarea inputs for HTML and Markdown output. Real-time Conversion : Converts HTML to Markdown instantly upon clicking the convert button. Clean Output : Removes scripts, styles, and other non-content elements from the HTML before conversion. Copy to Clipboard : One-click copying of the converted Markdown text. How It Works The application uses the Hono framework to create a simple web server. HTMX is used for handling AJAX requests without writing JavaScript. Alpine.js provides reactivity for the clipboard functionality. The Turndown library is used to convert HTML to Markdown. Usage Paste your HTML content into the "HTML Input" textarea. Click the "Convert to Markdown" button. The converted Markdown will appear in the "Markdown Output" textarea. Use the "Copy to Clipboard" button to easily copy the result. Technical Details The server removes <script> , <style> , and other non-content tags before conversion. HTML comments are also stripped out. The Markdown output is cleaned to remove excessive whitespace and newlines. View Source You can view the source code of this application by clicking the "View Source" link at the bottom of the page. Limitations The converter may not handle extremely complex HTML structures perfectly. Some HTML elements might not have a direct Markdown equivalent. Future Improvements Add options for customizing the Markdown output format. Implement file upload for HTML conversion. Add support for converting Markdown back to HTML. Feel free to use and modify this converter for your HTML to Markdown conversion needs!