-
23 votes
-
YOYOZO (or, how I made a Playdate game in 39KB)
23 votes -
PHP File Download Hit Counter
5 votes -
Sensible $WORDCHARS for Most Developers
16 votes -
My homemade self driving RC car finally drives itself!
14 votes -
Show Tildes: how I built the largest open database of Australian law
28 votes -
Rewriting a Chumsky Parser By Hand in Rust
8 votes -
A sane, batteries-included starter template for running NixOS on WSL
9 votes -
Working Through Crafting Interpreters (Java) in Rust
9 votes -
Creative Card Chaos - Core Rulebook out now with a 25% discount!
7 votes -
Bringing back the minimal web
112 votes -
Where can I see Hokusai's Great Wave today?
22 votes -
Sparrow Solitaire for Playdate
16 votes -
Casio CALEID XM-700 Mobile Navigator (1997)
8 votes -
A creative journey in creating a board game
My buddy and I grew up in the 80's and 90's together in a mostly analog world, so we spent a bunch of time outside on bikes and getting dirty. We played board games a lot with each other and our...
My buddy and I grew up in the 80's and 90's together in a mostly analog world, so we spent a bunch of time outside on bikes and getting dirty. We played board games a lot with each other and our family, but as the turn of the century hit we were more engrossed in technology.
We both ended up in careers around creative design and technology, but still have that nostalgia from our past. We have been hanging out this past year and started streaming on Twitch so we can put our skills to use in a fun hobby.
Since January we had the idea to see how far we could push AI to help us create a board game! It's been a fun time starting from nothing and producing something. While the AI craze and controversy are out there. We realized that going all AI to make a fun game wasn't going to work. We've been using it as a tool but adding a lot of ourselves to it.
We hope to give a free downloadable and 3d printable version out. We are excited to get where we are and have an actual fun game. We figured we'd share our progress of the game. Frostbite: The Curse of Doctor Frost
Does anybody know of communities that would be into downloading, printing, and playing board games?
8 votes -
Ball und Panzer Golf: Making a Playdate game in a week
16 votes -
Four hour mix of 200 "futuristic" songs from around 1980
22 votes -
Selected works of renowned Iranian painter, Mahmoud Farshchian
12 votes -
I made a little CLI app for backing up my Tildes comments
I made a little CLI app for backing up my tildes comments / topics. $ pip install xklb $ library tildes -h usage: library tildes DATABASE USER Backup tildes.net user comments and topics library...
I made a little CLI app for backing up my tildes comments / topics.
$ pip install xklb $ library tildes -h usage: library tildes DATABASE USER Backup tildes.net user comments and topics library tildes tildes.net.db xk3 Without cookies you are limited to the first page. You can use cookies like this: https://github.com/rotemdan/ExportCookies library tildes tildes.net.db xk3 --cookies ~/Downloads/cookies-tildes-net.txt
It creates a SQLITE file with HTML text in one of the columns. Nothing super fancy. Let me know what you think?
9 votes -
Voice control for tiling window managers concept
6 votes -
Make the web your sketchbook
24 votes -
New USSR camera and pictures
16 votes -
Tilweaks: A user style I made to "clean up" Tildes' interface
This was originally made just for personal use, but I decided to clean it up and share it. Should support all built-in themes (Themes other than Dracula were afterthoughts and might not be as...
This was originally made just for personal use, but I decided to clean it up and share it.
- Should support all built-in themes (Themes other than Dracula were afterthoughts and might not be as polished. Especially light themes)
- All changes are toggle-able
Changes
- Configurable font size
- Remove sidebar background
- Make the sidebar primary button clear (border only)
- Add a border to the "main" element
- Add extra spacing to various elements
- Remove the alternating background from thread colors
- Remove comment borders
- Add depth indicators (dotted left border for children only)
- Add comment backgrounds (to separate comments without borders)
- Hide votes (disabled by default)
Installation
- Install a custom style plugin of your choosing that supports UserCSS and the Stylus preprocessor.
- I used Stylus while making this (Firefox, Google Chromium)
- Click this link:
Configuration under Stylus
- Open the extension popup in when in tildes.net
- Click the cog next to Tilweaks
- Edit to your liking
20 votes -
Adventures with pf, nix darwin, and Tailscale on macOS Ventura
11 votes -
Introducing Backtick API: An open-source, unofficial Tildes API
Hi everyone! Today I am releasing Backtick API, an unofficial Tildes API. I originally wrote it to power Backtick but quickly realized that it could be useful for other clients and projects that...
Hi everyone! Today I am releasing Backtick API, an unofficial Tildes API. I originally wrote it to power Backtick but quickly realized that it could be useful for other clients and projects that require Tildes data. The project is open-sourced, both because I would love community contributions and because I want to make the project as transparent as possible.
Q: Does it require or store any user credentials?
No. All the endpoints that are implemented scrape publicly available data that do not require any user credentials.
Q: Will this overload Tildes?
To prevent Backtick API from being a nuisance to Tildes, the code caches calls to Tildes for a short period of time. Depending on usage, it should reduce the number of calls to Tildes (vs a client querying Tildes directly).
Q: How can I use it?
A hosted version of the code is available through RapidAPI here: https://rapidapi.com/asnewman/api/backtick-api
Q: Are there any limitations?
To prevent the project from being abused and becoming a financial burden on myself, I'm using RapidAPI to manage usage. There is a generous free tier and a reasonably priced paid tier which will be used to cover server costs. In addition, I will be donating a portion of the paid plan revenue (my goal is 50% but will depend on load and subscription count) directly to Tildes via Github Sponsors. It's really important to me to keep this project and Tildes as sustainable as possible. I really would love to provide everything for free, but unfortunately, there are countless examples where that doesn't work out down the road.
Of course, if you do not want to use the hosted version, you are welcome to deploy the code yourself!
Q: Isn't scraping prone to breaking?
Yes! Users beware! Obviously, I will try my best to fix things if the Tildes code changes in a way that breaks Backtick API, but it's definitely a possibility.
Q: Why not just work on and contribute to creating an official Tildes API?
An official Tildes API will always be better than something like this and I look forward to when/if it gets implemented. That being said, I'm choosing the route that would be the quickest to continue the development of the Backtick mobile app. In addition, it's also the choice that is most fun for me. To work on a Tildes API, if the powers that be even want to have one, would require lots of coordination and codebase learning, something that will take a lot of time. I highly commend anyone who chooses to take on that task, but I do too much of that kind of work for my real job š
Please report any issues or feature requests through Github, this post, or the Backtick Discord server. Finally, I just want to thank everyone in the community for all the great conversations I've had, for providing helpful feedback for Backtick, and for creating a place on the internet that I very much enjoy being a part of š
59 votes -
Running GameBoy Advance emulator on Terminal
17 votes -
Dynamic vs. Static Config for My Tiling Window Manager
9 votes -
Lunch fresh from the garden!
18 votes -
"Dark Sunflower"
12 votes -
Notado 07/2023 Update: API Price Gouging, New Services, Archiving
11 votes -
Flowering Wall
14 votes -
WebMesh: Yet Another WireGuard Mesh/VPN Solution
15 votes -
Ditching Docker for Local Development
34 votes -
Iām excited to try podcasting!
9 votes -
Shitty camera challenge
30 votes -
"Severed" [shittycamerachallenge]
9 votes -
komorebi - A tiling window manager for Windows 10+
25 votes -
Was asked to create a hole-by-hole tour of a local golf course. They wanted a flyover. I sent them this and they were blown away.
22 votes -
Hands-on with Freewheeling Apps
2 votes -
Comparing my favorite fonts for reading and writing code
37 votes -
Beginnings of a new category of clients I've been working on for Tildes!
52 votes -
My wife's beautiful garden
58 votes -
I wrote a book. What are the site rules on self promotion?
Not posting the link here, but I'm curious what the site rules are on stuff like that. I came from Reddit, and some of the subs there are ok with promotion, some aren't.
31 votes -
Releasebot - A new release notification service I've been working on
12 votes -
Git for Beginners: Zero to Hero
28 votes -
Tildes Userscript: Tildezy
Updated: June 29th 2023 Hello folks, Like many of the other people that have been around lately, I'm new to Tildes, I've been browsing it without an account since last Monday or so while waiting...
Updated: June 29th 2023
Hello folks,
Like many of the other people that have been around lately, I'm new to Tildes, I've been browsing it without an account since last Monday or so while waiting for an email response (thanks @Deimos), and in that time I've been working on a little tool to add some QOL features I thought would make my experiences with the site feel better.
I didn't plan on sharing it initially, because I didn't think I'd be able to get the javascript into a usable state, and I'm not fond of sharing my code in general, as I always get a big wave of impostor syndrome whenever I do, "What if they look at my messy code and see how silly I do some things", that sort of thing. But with Tildes I want to try to correct some of my internet behaviours, for years I've generally stayed as a lurker, never commenting or sharing content of my own, so, hello there, hopefully, I stick to my guns and you see more of me.
Onto the script itself, currently, I've built five main features into it all of them being rather minor on their own, I did do bug testing on everything and couldn't find anything else, but if you notice anything please feel free to report it to me or post an issue on the repo. It's easy to miss bugs when you've only got one set of eyes.
The GitHub contains installation instructions if you've never used a userscript before, and contains some images showing off each feature described below.
Comment Collapser
The comment collapser was built because, with my shakey hands, I had a few times when I would click someone's name instead of the [-] beside it. With this feature *Triple* clicking anywhere on a comment, be it text or header, will collapse it as if you used the [-] button. It's set to 3 clicks as sometimes I double-click to begin copying a line and didn't want the conflict, but it can be changed to any amount of clicks on line 132https://github.com/TeJayH/Tildezy/blob/main/Tildezy.user.js#L132
Group Stars/Favourites
Allows you to click a ā beside each ~group on the Tildes homepage to *favourite* it, moving it to the top of the list. Supports as many or as few favourites as you'd wish.Scroll to Top Button
Adds a button pinned in the top right of every Tildes thread that sends you back to the top of the page. No more scrolling or reaching for the home keyOpen Comments in New Tab
Replaces the default function of a posts "x comments" to open the page in a new tab instead of the current tabUser Colors
This one is the thing that I made the entire script for, an entirely useless feature but one I love for silly reasons. Replaces the stock username color with a randomized one based on a hash made from the user's username. So everyone gets assigned their own color which will always be their color anywhere you see them. This one helps multi-person conversations flow better in my headNew Comment Traveller
Gives you navigation buttons either beside the Collapse Replies/Expand all buttons when scrolled up, or pinned in the top right when scrolled past those buttons. Navigation buttons jump quickly between each new comment in a thread.Markdown Buttons
Adds a selection of various buttons under every comment box that automatically insert markdown for you. No more forgetting which bracket style goes first for a clickable URL.Settings
Not really a *feature* on its own, but it exists. Adds a "Tildezy Settings" beside the Log In/Username button in the top right of the header, which opens a settings window to enable/disable any and all features of the script. Features can also be disabled by modifying lines 26-41 in the script, allowing you to hard toggle everything *including the settings itself* off should you wish.https://github.com/TeJayH/Tildezy/blob/main/Tildezy.user.js#L26-L41
Hopefully, someone gets some use out of this with me, I look forward to chatting with you all.
EDIT
Refactored the code and added a new comment traveller feature based on some of the comments below.EDIT 2
Up to 1.3.0, we've got markdown buttons now, see comment explaining the change or check out the github readme120 votes -
I made a pass-like password manager thingy
8 votes -
Noticing when an app has servers in different regions
4 votes -
KeenWrite 3.3.2: MermaidJS diagrams (with caveat)
9 votes -
Lazy userscript
Just a hack job, but I'd seen some comment about it being inconvenient to ignore posts so I made a quick userscript (tested with Tampermonkey on Firefox) that adds hotkeys for...
Just a hack job, but I'd seen some comment about it being inconvenient to ignore posts so I made a quick userscript (tested with Tampermonkey on Firefox) that adds hotkeys for
b
ookmarking/i
gnoring/v
oting on a post. It can also navigate to thel
ink orc
omments or prev/next pages (ā
/ā
). Only implemented for posts 1-9 at the moment.Ex:
i+2
ignores and hides the 2nd post (or restores, if ignored)?
shows a summary of hotkeys// ==UserScript== // @name Tildes // @namespace http://tampermonkey.net/ // @version 0.1 // @description Quickie convenience hotkeys for tildes.net // @author TT // @match *://tildes.net/* // @icon https://www.google.com/s2/favicons?sz=64&domain=tildes.net // @grant none // @require https://unpkg.com/hotkeys-js/dist/hotkeys.min.js // ==/UserScript== (function () { "use strict"; let Action; (function (Action) { Action[Action["Invalid"] = 0] = "Invalid"; Action[Action["Bookmark"] = 1] = "Bookmark"; Action[Action["Comments"] = 2] = "Comments"; Action[Action["Ignore"] = 3] = "Ignore"; Action[Action["Open"] = 4] = "Open"; Action[Action["Vote"] = 5] = "Vote"; })(Action || (Action = {})); const regex = /tildes\.net(\/~(?<group>\w+))?/gi; let match = regex.exec(document.location); //In a group if I wanted to support hotkeys there? if (match.groups.group) { //alert(match.groups.group); } else { addArticleNumbers(); addMainHotkeys(); } //Route function routeAction(action, event, handler) { event.preventDefault(); //Grab index. Zero-index? let indexText = handler.key.substring(2); let index = parseInt(indexText) - 1; if (isNaN(index)) return; actOnArticle(action, index); } function actOnArticle(action, index) { //Get article for index let article = document.querySelector(".topic-listing").children[index].children[0]; //Do the thing switch (action) { case Action.Bookmark: if (article.style.borderStyle === 'solid') article.style.borderStyle = 'none'; else article.style.borderStyle = 'solid'; article.querySelector('button[data-ic-put-to$="bookmark"]').click(); break; case Action.Comments: article.querySelector(".topic-info-comments a").click(); break; case Action.Ignore: //Hide vs blank? if (article.style.visibility === "hidden") article.style.visibility = "visible"; else article.style.visibility = "hidden"; // article.style.display = 'none'; article.querySelector('button[data-ic-put-to$="ignore"]').click(); break; case Action.Open: article.querySelector(".topic-title a").click(); break; case Action.Vote: article.querySelector(".topic-voting").click(); break; } } function addArticleNumbers() { let titles = Array.from(document.querySelectorAll(".topic-title a")); for (let i = 1; i <= titles.length; i++) { let title = titles[i - 1]; title.text = i + " - " + title.text; } } function addMainHotkeys() { //Set up handlers const handleBookmark = (event, handler) => routeAction(Action.Bookmark, event, handler); const handleComments = (event, handler) => routeAction(Action.Comments, event, handler); const handleIgnore = (event, handler) => routeAction(Action.Ignore, event, handler); const handleOpen = (event, handler) => routeAction(Action.Open, event, handler); const handleVote = (event, handler) => routeAction(Action.Vote, event, handler); hotkeys("shift+/", (e, h) => alert(getHelpText())); //Page nav hotkeys("left", (e, h) => Array.from(document.querySelectorAll(".pagination a")).find((e) => e.textContent == "Prev").click()); hotkeys("right", (e, h) => Array.from(document.querySelectorAll(".pagination a")).find((e) => e.textContent == "Next").click()); for (let i = 1; i <= 9; i++) { hotkeys("b+" + i, handleBookmark); hotkeys("c+" + i, handleComments); hotkeys("i+" + i, handleIgnore); hotkeys("o+" + i, handleOpen); hotkeys("v+" + i, handleVote); } } function getHelpText() { return ` ā/ā = navigation b = Bookmark, i = Ignore, v = Vote, c = Open comments, o = Open link, Action+[1-9] calls that action on the corresponding article`; } })();
13 votes